Last active
October 28, 2017 19:02
-
-
Save purag/feaba8734b491776221e264abf92be37 to your computer and use it in GitHub Desktop.
PacMan with Wick (http://wickeditor.com)
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
You've peeked inside the source code for a Wick project... you are clever! | |
This file was generated by the WickProject exporter. | |
(see src/editor/WickProject.Exporter.js) at https://github.com/zrispo/wick/ | |
Send any questions to https://twitter.com/zrispo !!! | |
--> | |
<head> | |
<style> | |
/* remove the top and left whitespace */ | |
* { margin:0; padding:0; } | |
/* just to be sure these are full screen */ | |
html, body { width:100%; height:100%; background-color: #FFFFFF; } | |
/* To remove the scrollbars */ | |
canvas { display:block; } | |
canvas:focus { | |
outline: none; | |
outline-style: none; | |
} | |
/* Cross browser cursor hide class */ | |
.hideCursor { | |
cursor: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjbQg61aAAAADUlEQVQYV2P4//8/IwAI/QL/+TZZdwAAAABJRU5ErkJggg=='), | |
none !important; | |
} | |
</style> | |
</head> | |
<script>wickEditor = null;</script> | |
<body> | |
<div id="playerCanvasContainer" readonly="readonly"></div> | |
</body> | |
<script>/*! | |
* pixi.js - v4.5.6 | |
* Compiled Wed, 20 Sep 2017 15:08:21 UTC | |
* | |
* pixi.js is licensed under the MIT License. | |
* http://www.opensource.org/licenses/mit-license | |
*/ | |
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.PIXI=t()}}(function(){var t;return function t(e,r,n){function i(s,a){if(!r[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var h=new Error("Cannot find module '"+s+"'");throw h.code="MODULE_NOT_FOUND",h}var l=r[s]={exports:{}};e[s][0].call(l.exports,function(t){var r=e[s][1][t];return i(r||t)},l,l.exports,t,e,r,n)}return r[s].exports}for(var o="function"==typeof require&&require,s=0;s<n.length;s++)i(n[s]);return i}({1:[function(t,e,r){"use strict";"use restrict";function n(t){var e=32;return t&=-t,t&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t<e)},r.max=function(t,e){return t^(t^e)&-(t<e)},r.isPow2=function(t){return!(t&t-1||!t)},r.log2=function(t){var e,r;return e=(t>65535)<<4,t>>>=e,r=(t>255)<<3,t>>>=r,e|=r,r=(t>15)<<2,t>>>=r,e|=r,r=(t>3)<<1,t>>>=r,(e|=r)|t>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return t-=t>>>1&1431655765,16843009*((t=(858993459&t)+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<<i&255}}(i),r.reverse=function(t){return i[255&t]<<24|i[t>>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return t&=65535,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e&=65535,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1},r.deinterleave2=function(t,e){return t=t>>>e&1431655765,t=858993459&(t|t>>>1),t=252645135&(t|t>>>2),t=16711935&(t|t>>>4),(t=65535&(t|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t&=1023,t=4278190335&(t|t<<16),t=251719695&(t|t<<8),t=3272356035&(t|t<<4),t=1227133513&(t|t<<2),e&=1023,e=4278190335&(e|e<<16),e=251719695&(e|e<<8),e=3272356035&(e|e<<4),e=1227133513&(e|e<<2),t|=e<<1,r&=1023,r=4278190335&(r|r<<16),r=251719695&(r|r<<8),r=3272356035&(r|r<<4),r=1227133513&(r|r<<2),t|r<<2},r.deinterleave3=function(t,e){return t=t>>>e&1227133513,t=3272356035&(t|t>>>2),t=251719695&(t|t>>>4),t=4278190335&(t|t>>>8),(t=1023&(t|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],2:[function(t,e,r){"use strict";function n(t,e,r){r=r||2;var n=e&&e.length,o=n?e[0]*r:t.length,a=i(t,0,o,r,!0),u=[];if(!a)return u;var h,l,d,f,p,v,y;if(n&&(a=c(t,e,a,r)),t.length>80*r){h=d=t[0],l=f=t[1];for(var g=r;g<o;g+=r)p=t[g],v=t[g+1],p<h&&(h=p),v<l&&(l=v),p>d&&(d=p),v>f&&(f=v);y=Math.max(d-h,f-l)}return s(a,u,r,h,l,y),u}function i(t,e,r,n,i){var o,s;if(i===A(t,e,r,n)>0)for(o=e;o<r;o+=n)s=P(o,t[o],t[o+1],s);else for(o=r-n;o>=e;o-=n)s=P(o,t[o],t[o+1],s);return s&&T(s,s.next)&&(C(s),s=s.next),s}function o(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!T(n,n.next)&&0!==x(n.prev,n,n.next))n=n.next;else{if(C(n),(n=e=n.prev)===n.next)return null;r=!0}}while(r||n!==e);return e}function s(t,e,r,n,i,c,d){if(t){!d&&c&&v(t,n,i,c);for(var f,p,y=t;t.prev!==t.next;)if(f=t.prev,p=t.next,c?u(t,n,i,c):a(t))e.push(f.i/r),e.push(t.i/r),e.push(p.i/r),C(t),t=p.next,y=p.next;else if((t=p)===y){d?1===d?(t=h(t,e,r),s(t,e,r,n,i,c,2)):2===d&&l(t,e,r,n,i,c):s(o(t),e,r,n,i,c,1);break}}}function a(t){var e=t.prev,r=t,n=t.next;if(x(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(_(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&x(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function u(t,e,r,n){var i=t.prev,o=t,s=t.next;if(x(i,o,s)>=0)return!1;for(var a=i.x<o.x?i.x<s.x?i.x:s.x:o.x<s.x?o.x:s.x,u=i.y<o.y?i.y<s.y?i.y:s.y:o.y<s.y?o.y:s.y,h=i.x>o.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,l=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,c=g(a,u,e,r,n),d=g(h,l,e,r,n),f=t.nextZ;f&&f.z<=d;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=c;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&x(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function h(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!T(i,o)&&w(i,n,n.next,o)&&S(i,o)&&S(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),C(n),C(n.next),n=t=o),n=n.next}while(n!==t);return n}function l(t,e,r,n,i,a){var u=t;do{for(var h=u.next.next;h!==u.prev;){if(u.i!==h.i&&b(u,h)){var l=M(u,h);return u=o(u,u.next),l=o(l,l.next),s(u,e,r,n,i,a),void s(l,e,r,n,i,a)}h=h.next}u=u.next}while(u!==t)}function c(t,e,r,n){var s,a,u,h,l,c=[];for(s=0,a=e.length;s<a;s++)u=e[s]*n,h=s<a-1?e[s+1]*n:t.length,l=i(t,u,h,n,!1),l===l.next&&(l.steiner=!0),c.push(m(l));for(c.sort(d),s=0;s<c.length;s++)f(c[s],r),r=o(r,r.next);return r}function d(t,e){return t.x-e.x}function f(t,e){if(e=p(t,e)){var r=M(e,t);o(r,r.next)}}function p(t,e){var r,n=e,i=t.x,o=t.y,s=-1/0;do{if(o<=n.y&&o>=n.next.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>s){if(s=a,a===i){if(o===n.y)return n;if(o===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(i===s)return r.prev;var u,h=r,l=r.x,c=r.y,d=1/0;for(n=r.next;n!==h;)i>=n.x&&n.x>=l&&_(o<c?i:s,o,l,c,o<c?s:i,o,n.x,n.y)&&((u=Math.abs(o-n.y)/(i-n.x))<d||u===d&&n.x>r.x)&&S(n,t)&&(r=n,d=u),n=n.next;return r}function v(t,e,r,n){var i=t;do{null===i.z&&(i.z=g(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,y(i)}function y(t){var e,r,n,i,o,s,a,u,h=1;do{for(r=t,t=null,o=null,s=0;r;){for(s++,n=r,a=0,e=0;e<h&&(a++,n=n.nextZ);e++);for(u=h;a>0||u>0&&n;)0===a?(i=n,n=n.nextZ,u--):0!==u&&n?r.z<=n.z?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,a--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,h*=2}while(s>1);return t}function g(t,e,r,n,i){return t=32767*(t-r)/i,e=32767*(e-n)/i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function m(t){var e=t,r=t;do{e.x<r.x&&(r=e),e=e.next}while(e!==t);return r}function _(t,e,r,n,i,o,s,a){return(i-s)*(e-a)-(t-s)*(o-a)>=0&&(t-s)*(n-a)-(r-s)*(e-a)>=0&&(r-s)*(o-a)-(i-s)*(n-a)>=0}function b(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!E(t,e)&&S(t,e)&&S(e,t)&&O(t,e)}function x(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function T(t,e){return t.x===e.x&&t.y===e.y}function w(t,e,r,n){return!!(T(t,e)&&T(r,n)||T(t,n)&&T(r,e))||x(t,e,r)>0!=x(t,e,n)>0&&x(r,n,t)>0!=x(r,n,e)>0}function E(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&w(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function S(t,e){return x(t.prev,t,t.next)<0?x(t,e,t.next)>=0&&x(t,t.prev,e)>=0:x(t,e,t.prev)<0||x(t,t.next,e)<0}function O(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{r.y>o!=r.next.y>o&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}function M(t,e){var r=new R(t.i,t.x,t.y),n=new R(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function P(t,e,r,n){var i=new R(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function C(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function R(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function A(t,e,r,n){for(var i=0,o=e,s=r-n;o<r;o+=n)i+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return i}e.exports=n,n.deviation=function(t,e,r,n){var i=e&&e.length,o=i?e[0]*r:t.length,s=Math.abs(A(t,0,o,r));if(i)for(var a=0,u=e.length;a<u;a++){var h=e[a]*r,l=a<u-1?e[a+1]*r:t.length;s-=Math.abs(A(t,h,l,r))}var c=0;for(a=0;a<n.length;a+=3){var d=n[a]*r,f=n[a+1]*r,p=n[a+2]*r;c+=Math.abs((t[d]-t[p])*(t[f+1]-t[d+1])-(t[d]-t[f])*(t[p+1]-t[d+1]))}return 0===s&&0===c?0:Math.abs((c-s)/s)},n.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)r.vertices.push(t[i][o][s]);i>0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],3:[function(t,e,r){"use strict";function n(){}function i(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function o(){this._events=new n,this._eventsCount=0}var s=Object.prototype.hasOwnProperty,a="~";Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(a=!1)),o.prototype.eventNames=function(){var t,e,r=[];if(0===this._eventsCount)return r;for(e in t=this._events)s.call(t,e)&&r.push(a?e.slice(1):e);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},o.prototype.listeners=function(t,e){var r=a?a+t:t,n=this._events[r];if(e)return!!n;if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s},o.prototype.emit=function(t,e,r,n,i,o){var s=a?a+t:t;if(!this._events[s])return!1;var u,h,l=this._events[s],c=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,n),!0;case 5:return l.fn.call(l.context,e,r,n,i),!0;case 6:return l.fn.call(l.context,e,r,n,i,o),!0}for(h=1,u=new Array(c-1);h<c;h++)u[h-1]=arguments[h];l.fn.apply(l.context,u)}else{var d,f=l.length;for(h=0;h<f;h++)switch(l[h].once&&this.removeListener(t,l[h].fn,void 0,!0),c){case 1:l[h].fn.call(l[h].context);break;case 2:l[h].fn.call(l[h].context,e);break;case 3:l[h].fn.call(l[h].context,e,r);break;case 4:l[h].fn.call(l[h].context,e,r,n);break;default:if(!u)for(d=1,u=new Array(c-1);d<c;d++)u[d-1]=arguments[d];l[h].fn.apply(l[h].context,u)}}return!0},o.prototype.on=function(t,e,r){var n=new i(e,r||this),o=a?a+t:t;return this._events[o]?this._events[o].fn?this._events[o]=[this._events[o],n]:this._events[o].push(n):(this._events[o]=n,this._eventsCount++),this},o.prototype.once=function(t,e,r){var n=new i(e,r||this,!0),o=a?a+t:t;return this._events[o]?this._events[o].fn?this._events[o]=[this._events[o],n]:this._events[o].push(n):(this._events[o]=n,this._eventsCount++),this},o.prototype.removeListener=function(t,e,r,i){var o=a?a+t:t;if(!this._events[o])return this;if(!e)return 0==--this._eventsCount?this._events=new n:delete this._events[o],this;var s=this._events[o];if(s.fn)s.fn!==e||i&&!s.once||r&&s.context!==r||(0==--this._eventsCount?this._events=new n:delete this._events[o]);else{for(var u=0,h=[],l=s.length;u<l;u++)(s[u].fn!==e||i&&!s[u].once||r&&s[u].context!==r)&&h.push(s[u]);h.length?this._events[o]=1===h.length?h[0]:h:0==--this._eventsCount?this._events=new n:delete this._events[o]}return this},o.prototype.removeAllListeners=function(t){var e;return t?(e=a?a+t:t,this._events[e]&&(0==--this._eventsCount?this._events=new n:delete this._events[e])):(this._events=new n,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prototype.setMaxListeners=function(){return this},o.prefixed=a,o.EventEmitter=o,void 0!==e&&(e.exports=o)},{}],4:[function(e,r,n){!function(e){var n=/iPhone/i,i=/iPod/i,o=/iPad/i,s=/(?=.*\bAndroid\b)(?=.*\bMobile\b)/i,a=/Android/i,u=/(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i,h=/(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i,l=/Windows Phone/i,c=/(?=.*\bWindows\b)(?=.*\bARM\b)/i,d=/BlackBerry/i,f=/BB10/i,p=/Opera Mini/i,v=/(CriOS|Chrome)(?=.*\bMobile\b)/i,y=/(?=.*\bFirefox\b)(?=.*\bMobile\b)/i,g=new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)","i"),m=function(t,e){return t.test(e)},_=function(t){var e=t||navigator.userAgent,r=e.split("[FBAN");if(void 0!==r[1]&&(e=r[0]),r=e.split("Twitter"),void 0!==r[1]&&(e=r[0]),this.apple={phone:m(n,e),ipod:m(i,e),tablet:!m(n,e)&&m(o,e),device:m(n,e)||m(i,e)||m(o,e)},this.amazon={phone:m(u,e),tablet:!m(u,e)&&m(h,e),device:m(u,e)||m(h,e)},this.android={phone:m(u,e)||m(s,e),tablet:!m(u,e)&&!m(s,e)&&(m(h,e)||m(a,e)),device:m(u,e)||m(h,e)||m(s,e)||m(a,e)},this.windows={phone:m(l,e),tablet:m(c,e),device:m(l,e)||m(c,e)},this.other={blackberry:m(d,e),blackberry10:m(f,e),opera:m(p,e),firefox:m(y,e),chrome:m(v,e),device:m(d,e)||m(f,e)||m(p,e)||m(y,e)||m(v,e)},this.seven_inch=m(g,e),this.any=this.apple.device||this.android.device||this.windows.device||this.other.device||this.seven_inch,this.phone=this.apple.phone||this.android.phone||this.windows.phone,this.tablet=this.apple.tablet||this.android.tablet||this.windows.tablet,"undefined"==typeof window)return this},b=function(){var t=new _;return t.Class=_,t};void 0!==r&&r.exports&&"undefined"==typeof window?r.exports=_:void 0!==r&&r.exports&&"undefined"!=typeof window?r.exports=b():"function"==typeof t&&t.amd?t("isMobile",[],e.isMobile=b()):e.isMobile=b()}(this)},{}],5:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){return t._head?(t._tail._next=e,e._prev=t._tail,t._tail=e):(t._head=e,t._tail=e),e._owner=t,e}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),s=function(){function t(e,r,i){void 0===r&&(r=!1),n(this,t),this._fn=e,this._once=r,this._thisArg=i,this._next=this._prev=this._owner=null}return o(t,[{key:"detach",value:function(){return null!==this._owner&&(this._owner.detach(this),!0)}}]),t}(),a=function(){function t(){n(this,t),this._head=this._tail=void 0}return o(t,[{key:"handlers",value:function(){var t=!(arguments.length<=0||void 0===arguments[0])&&arguments[0],e=this._head;if(t)return!!e;for(var r=[];e;)r.push(e),e=e._next;return r}},{key:"has",value:function(t){if(!(t instanceof s))throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object.");return t._owner===this}},{key:"dispatch",value:function(){var t=this._head;if(!t)return!1;for(;t;)t._once&&this.detach(t),t._fn.apply(t._thisArg,arguments),t=t._next;return!0}},{key:"add",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if("function"!=typeof t)throw new Error("MiniSignal#add(): First arg must be a Function.");return i(this,new s(t,!1,e))}},{key:"once",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if("function"!=typeof t)throw new Error("MiniSignal#once(): First arg must be a Function.");return i(this,new s(t,!0,e))}},{key:"detach",value:function(t){if(!(t instanceof s))throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object.");return t._owner!==this?this:(t._prev&&(t._prev._next=t._next),t._next&&(t._next._prev=t._prev),t===this._head?(this._head=t._next,null===t._next&&(this._tail=null)):t===this._tail&&(this._tail=t._prev,this._tail._next=null),t._owner=null,this)}},{key:"detachAll",value:function(){var t=this._head;if(!t)return this;for(this._head=this._tail=null;t;)t._owner=null,t=t._next;return this}}]),t}();a.MiniSignalBinding=s,r.default=a,e.exports=r.default},{}],6:[function(t,e,r){"use strict";function n(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,a,u=n(t),h=1;h<arguments.length;h++){r=Object(arguments[h]);for(var l in r)o.call(r,l)&&(u[l]=r[l]);if(i){a=i(r);for(var c=0;c<a.length;c++)s.call(r,a[c])&&(u[a[c]]=r[a[c]])}}return u}},{}],7:[function(t,e,r){"use strict";e.exports=function(t,e){e=e||{};for(var r={key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},n=r.parser[e.strictMode?"strict":"loose"].exec(t),i={},o=14;o--;)i[r.key[o]]=n[o]||"";return i[r.q.name]={},i[r.key[12]].replace(r.q.parser,function(t,e,n){e&&(i[r.q.name][e]=n)}),i}},{}],8:[function(t,e,r){(function(t){function e(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n<t.length;n++)e(t[n],n,t)&&r.push(t[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(t){return i.exec(t).slice(1)};r.resolve=function(){for(var r="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s=o>=0?arguments[o]:t.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(r=s+"/"+r,i="/"===s.charAt(0))}return r=e(n(r.split("/"),function(t){return!!t}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(t){var i=r.isAbsolute(t),o="/"===s(t,-1);return t=e(n(t.split("/"),function(t){return!!t}),!i).join("/"),t||i||(t="."),t&&o&&(t+="/"),(i?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(n(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function n(t){for(var e=0;e<t.length&&""===t[e];e++);for(var r=t.length-1;r>=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var i=n(t.split("/")),o=n(e.split("/")),s=Math.min(i.length,o.length),a=s,u=0;u<s;u++)if(i[u]!==o[u]){a=u;break}for(var h=[],u=a;u<i.length;u++)h.push("..");return h=h.concat(o.slice(a)),h.join("/")},r.sep="/",r.delimiter=":",r.dirname=function(t){var e=o(t),r=e[0],n=e[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},r.basename=function(t,e){var r=o(t)[2];return e&&r.substr(-1*e.length)===e&&(r=r.substr(0,r.length-e.length)),r},r.extname=function(t){return o(t)[3]};var s="b"==="ab".substr(-1)?function(t,e,r){return t.substr(e,r)}:function(t,e,r){return e<0&&(e=t.length+e),t.substr(e,r)}}).call(this,t("_process"))},{_process:26}],9:[function(t,e,r){var n=new ArrayBuffer(0),i=function(t,e,r,i){this.gl=t,this.buffer=t.createBuffer(),this.type=e||t.ARRAY_BUFFER,this.drawType=i||t.STATIC_DRAW,this.data=n,r&&this.upload(r),this._updateID=0};i.prototype.upload=function(t,e,r){r||this.bind();var n=this.gl;t=t||this.data,e=e||0,this.data.byteLength>=t.byteLength?n.bufferSubData(this.type,e,t):n.bufferData(this.type,t,this.drawType),this.data=t},i.prototype.bind=function(){this.gl.bindBuffer(this.type,this.buffer)},i.createVertexBuffer=function(t,e,r){return new i(t,t.ARRAY_BUFFER,e,r)},i.createIndexBuffer=function(t,e,r){return new i(t,t.ELEMENT_ARRAY_BUFFER,e,r)},i.create=function(t,e,r,n){return new i(t,e,r,n)},i.prototype.destroy=function(){this.gl.deleteBuffer(this.buffer)},e.exports=i},{}],10:[function(t,e,r){var n=t("./GLTexture"),i=function(t,e,r){this.gl=t,this.framebuffer=t.createFramebuffer(),this.stencil=null,this.texture=null,this.width=e||100,this.height=r||100};i.prototype.enableTexture=function(t){var e=this.gl;this.texture=t||new n(e),this.texture.bind(),this.bind(),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture.texture,0)},i.prototype.enableStencil=function(){if(!this.stencil){var t=this.gl;this.stencil=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,this.stencil),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,this.stencil),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,this.width,this.height)}},i.prototype.clear=function(t,e,r,n){this.bind();var i=this.gl;i.clearColor(t,e,r,n),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT)},i.prototype.bind=function(){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer)},i.prototype.unbind=function(){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,null)},i.prototype.resize=function(t,e){var r=this.gl;this.width=t,this.height=e,this.texture&&this.texture.uploadData(null,t,e),this.stencil&&(r.bindRenderbuffer(r.RENDERBUFFER,this.stencil),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,t,e))},i.prototype.destroy=function(){var t=this.gl;this.texture&&this.texture.destroy(),t.deleteFramebuffer(this.framebuffer),this.gl=null,this.stencil=null,this.texture=null},i.createRGBA=function(t,e,r,o){var s=n.fromData(t,null,e,r);s.enableNearestScaling(),s.enableWrapClamp();var a=new i(t,e,r);return a.enableTexture(s),a.unbind(),a},i.createFloat32=function(t,e,r,o){var s=new n.fromData(t,o,e,r);s.enableNearestScaling(),s.enableWrapClamp();var a=new i(t,e,r);return a.enableTexture(s),a.unbind(),a},e.exports=i},{"./GLTexture":12}],11:[function(t,e,r){var n=t("./shader/compileProgram"),i=t("./shader/extractAttributes"),o=t("./shader/extractUniforms"),s=t("./shader/setPrecision"),a=t("./shader/generateUniformAccessObject"),u=function(t,e,r,u,h){this.gl=t,u&&(e=s(e,u),r=s(r,u)),this.program=n(t,e,r,h),this.attributes=i(t,this.program),this.uniformData=o(t,this.program),this.uniforms=a(t,this.uniformData)};u.prototype.bind=function(){this.gl.useProgram(this.program)},u.prototype.destroy=function(){this.attributes=null,this.uniformData=null,this.uniforms=null,this.gl.deleteProgram(this.program)},e.exports=u},{"./shader/compileProgram":17,"./shader/extractAttributes":19,"./shader/extractUniforms":20,"./shader/generateUniformAccessObject":21,"./shader/setPrecision":25}],12:[function(t,e,r){var n=function(t,e,r,n,i){this.gl=t,this.texture=t.createTexture(),this.mipmap=!1,this.premultiplyAlpha=!1,this.width=e||-1,this.height=r||-1,this.format=n||t.RGBA,this.type=i||t.UNSIGNED_BYTE};n.prototype.upload=function(t){this.bind();var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha);var r=t.videoWidth||t.width,n=t.videoHeight||t.height;n!==this.height||r!==this.width?e.texImage2D(e.TEXTURE_2D,0,this.format,this.format,this.type,t):e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.format,this.type,t),this.width=r,this.height=n};var i=!1;n.prototype.uploadData=function(t,e,r){this.bind();var n=this.gl;if(t instanceof Float32Array){if(!i){if(!n.getExtension("OES_texture_float"))throw new Error("floating point textures not available");i=!0}this.type=n.FLOAT}else this.type=this.type||n.UNSIGNED_BYTE;n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),e!==this.width||r!==this.height?n.texImage2D(n.TEXTURE_2D,0,this.format,e,r,0,this.format,this.type,t||null):n.texSubImage2D(n.TEXTURE_2D,0,0,0,e,r,this.format,this.type,t||null),this.width=e,this.height=r},n.prototype.bind=function(t){var e=this.gl;void 0!==t&&e.activeTexture(e.TEXTURE0+t),e.bindTexture(e.TEXTURE_2D,this.texture)},n.prototype.unbind=function(){var t=this.gl;t.bindTexture(t.TEXTURE_2D,null)},n.prototype.minFilter=function(t){var e=this.gl;this.bind(),this.mipmap?e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t?e.LINEAR_MIPMAP_LINEAR:e.NEAREST_MIPMAP_NEAREST):e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t?e.LINEAR:e.NEAREST)},n.prototype.magFilter=function(t){var e=this.gl;this.bind(),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t?e.LINEAR:e.NEAREST)},n.prototype.enableMipmap=function(){var t=this.gl;this.bind(),this.mipmap=!0,t.generateMipmap(t.TEXTURE_2D)},n.prototype.enableLinearScaling=function(){this.minFilter(!0),this.magFilter(!0)},n.prototype.enableNearestScaling=function(){this.minFilter(!1),this.magFilter(!1)},n.prototype.enableWrapClamp=function(){var t=this.gl;this.bind(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE)},n.prototype.enableWrapRepeat=function(){var t=this.gl;this.bind(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.REPEAT)},n.prototype.enableWrapMirrorRepeat=function(){var t=this.gl;this.bind(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.MIRRORED_REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.MIRRORED_REPEAT)},n.prototype.destroy=function(){this.gl.deleteTexture(this.texture)},n.fromSource=function(t,e,r){var i=new n(t);return i.premultiplyAlpha=r||!1,i.upload(e),i},n.fromData=function(t,e,r,i){var o=new n(t);return o.uploadData(e,r,i),o},e.exports=n},{}],13:[function(t,e,r){function n(t,e){if(this.nativeVaoExtension=null,n.FORCE_NATIVE||(this.nativeVaoExtension=t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object")),this.nativeState=e,this.nativeVaoExtension){this.nativeVao=this.nativeVaoExtension.createVertexArrayOES();var r=t.getParameter(t.MAX_VERTEX_ATTRIBS);this.nativeState={tempAttribState:new Array(r),attribState:new Array(r)}}this.gl=t,this.attributes=[],this.indexBuffer=null,this.dirty=!1}var i=t("./setVertexAttribArrays");n.prototype.constructor=n,e.exports=n,n.FORCE_NATIVE=!1,n.prototype.bind=function(){return this.nativeVao?(this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao),this.dirty&&(this.dirty=!1,this.activate())):this.activate(),this},n.prototype.unbind=function(){return this.nativeVao&&this.nativeVaoExtension.bindVertexArrayOES(null),this},n.prototype.activate=function(){for(var t=this.gl,e=null,r=0;r<this.attributes.length;r++){var n=this.attributes[r];e!==n.buffer&&(n.buffer.bind(),e=n.buffer),t.vertexAttribPointer(n.attribute.location,n.attribute.size,n.type||t.FLOAT,n.normalized||!1,n.stride||0,n.start||0)}return i(t,this.attributes,this.nativeState),this.indexBuffer&&this.indexBuffer.bind(),this},n.prototype.addAttribute=function(t,e,r,n,i,o){return this.attributes.push({buffer:t,attribute:e,location:e.location,type:r||this.gl.FLOAT,normalized:n||!1,stride:i||0,start:o||0}),this.dirty=!0,this},n.prototype.addIndex=function(t){return this.indexBuffer=t,this.dirty=!0,this},n.prototype.clear=function(){return this.nativeVao&&this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao),this.attributes.length=0,this.indexBuffer=null,this},n.prototype.draw=function(t,e,r){var n=this.gl;return this.indexBuffer?n.drawElements(t,e||this.indexBuffer.data.length,n.UNSIGNED_SHORT,2*(r||0)):n.drawArrays(t,r,e||this.getSize()),this},n.prototype.destroy=function(){this.gl=null,this.indexBuffer=null,this.attributes=null,this.nativeState=null,this.nativeVao&&this.nativeVaoExtension.deleteVertexArrayOES(this.nativeVao),this.nativeVaoExtension=null,this.nativeVao=null},n.prototype.getSize=function(){var t=this.attributes[0];return t.buffer.data.length/(t.stride/4||t.attribute.size)}},{"./setVertexAttribArrays":16}],14:[function(t,e,r){var n=function(t,e){var r=t.getContext("webgl",e)||t.getContext("experimental-webgl",e);if(!r)throw new Error("This browser does not support webGL. Try using the canvas renderer");return r};e.exports=n},{}],15:[function(t,e,r){var n={createContext:t("./createContext"),setVertexAttribArrays:t("./setVertexAttribArrays"),GLBuffer:t("./GLBuffer"),GLFramebuffer:t("./GLFramebuffer"),GLShader:t("./GLShader"),GLTexture:t("./GLTexture"),VertexArrayObject:t("./VertexArrayObject"),shader:t("./shader")};void 0!==e&&e.exports&&(e.exports=n),"undefined"!=typeof window&&(window.PIXI=window.PIXI||{},window.PIXI.glCore=n)},{"./GLBuffer":9,"./GLFramebuffer":10,"./GLShader":11,"./GLTexture":12,"./VertexArrayObject":13,"./createContext":14,"./setVertexAttribArrays":16,"./shader":22}],16:[function(t,e,r){var n=function(t,e,r){var n;if(r){var i=r.tempAttribState,o=r.attribState;for(n=0;n<i.length;n++)i[n]=!1;for(n=0;n<e.length;n++)i[e[n].attribute.location]=!0;for(n=0;n<o.length;n++)o[n]!==i[n]&&(o[n]=i[n],r.attribState[n]?t.enableVertexAttribArray(n):t.disableVertexAttribArray(n))}else for(n=0;n<e.length;n++){var s=e[n];t.enableVertexAttribArray(s.attribute.location)}};e.exports=n},{}],17:[function(t,e,r){var n=function(t,e,r,n){var o=i(t,t.VERTEX_SHADER,e),s=i(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,o),t.attachShader(a,s),n)for(var u in n)t.bindAttribLocation(a,n[u],u);return t.linkProgram(a),t.getProgramParameter(a,t.LINK_STATUS)||(console.error("Pixi.js Error: Could not initialize shader."),console.error("gl.VALIDATE_STATUS",t.getProgramParameter(a,t.VALIDATE_STATUS)),console.error("gl.getError()",t.getError()),""!==t.getProgramInfoLog(a)&&console.warn("Pixi.js Warning: gl.getProgramInfoLog()",t.getProgramInfoLog(a)),t.deleteProgram(a),a=null),t.deleteShader(o),t.deleteShader(s),a},i=function(t,e,r){var n=t.createShader(e);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(console.log(t.getShaderInfoLog(n)),null)};e.exports=n},{}],18:[function(t,e,r){var n=function(t,e){switch(t){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"sampler2D":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"bool":return!1;case"bvec2":return i(2*e);case"bvec3":return i(3*e);case"bvec4":return i(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}},i=function(t){for(var e=new Array(t),r=0;r<e.length;r++)e[r]=!1;return e};e.exports=n},{}],19:[function(t,e,r){var n=t("./mapType"),i=t("./mapSize"),o=function(t,e){for(var r={},o=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),a=0;a<o;a++){var u=t.getActiveAttrib(e,a),h=n(t,u.type);r[u.name]={type:h,size:i(h),location:t.getAttribLocation(e,u.name),pointer:s}}return r},s=function(t,e,r,n){gl.vertexAttribPointer(this.location,this.size,t||gl.FLOAT,e||!1,r||0,n||0)};e.exports=o},{"./mapSize":23,"./mapType":24}],20:[function(t,e,r){var n=t("./mapType"),i=t("./defaultValue"),o=function(t,e){for(var r={},o=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),s=0;s<o;s++){var a=t.getActiveUniform(e,s),u=a.name.replace(/\[.*?\]/,""),h=n(t,a.type);r[u]={type:h,size:a.size,location:t.getUniformLocation(e,u),value:i(h,a.size)}}return r};e.exports=o},{"./defaultValue":18,"./mapType":24}],21:[function(t,e,r){var n=function(t,e){var r={data:{}};r.gl=t;for(var n=Object.keys(e),a=0;a<n.length;a++){var u=n[a],h=u.split("."),l=h[h.length-1],c=s(h,r),d=e[u];c.data[l]=d,c.gl=t,Object.defineProperty(c,l,{get:i(l),set:o(l,d)})}return r},i=function(t){var e=a.replace("%%",t);return new Function(e)},o=function(t,e){var r,n=u.replace(/%%/g,t);return r=1===e.size?h[e.type]:l[e.type],r&&(n+="\nthis.gl."+r+";"), | |
new Function("value",n)},s=function(t,e){for(var r=e,n=0;n<t.length-1;n++){var i=r[t[n]]||{data:{}};r[t[n]]=i,r=i}return r},a=["return this.data.%%.value;"].join("\n"),u=["this.data.%%.value = value;","var location = this.data.%%.location;"].join("\n"),h={float:"uniform1f(location, value)",vec2:"uniform2f(location, value[0], value[1])",vec3:"uniform3f(location, value[0], value[1], value[2])",vec4:"uniform4f(location, value[0], value[1], value[2], value[3])",int:"uniform1i(location, value)",ivec2:"uniform2i(location, value[0], value[1])",ivec3:"uniform3i(location, value[0], value[1], value[2])",ivec4:"uniform4i(location, value[0], value[1], value[2], value[3])",bool:"uniform1i(location, value)",bvec2:"uniform2i(location, value[0], value[1])",bvec3:"uniform3i(location, value[0], value[1], value[2])",bvec4:"uniform4i(location, value[0], value[1], value[2], value[3])",mat2:"uniformMatrix2fv(location, false, value)",mat3:"uniformMatrix3fv(location, false, value)",mat4:"uniformMatrix4fv(location, false, value)",sampler2D:"uniform1i(location, value)"},l={float:"uniform1fv(location, value)",vec2:"uniform2fv(location, value)",vec3:"uniform3fv(location, value)",vec4:"uniform4fv(location, value)",int:"uniform1iv(location, value)",ivec2:"uniform2iv(location, value)",ivec3:"uniform3iv(location, value)",ivec4:"uniform4iv(location, value)",bool:"uniform1iv(location, value)",bvec2:"uniform2iv(location, value)",bvec3:"uniform3iv(location, value)",bvec4:"uniform4iv(location, value)",sampler2D:"uniform1iv(location, value)"};e.exports=n},{}],22:[function(t,e,r){e.exports={compileProgram:t("./compileProgram"),defaultValue:t("./defaultValue"),extractAttributes:t("./extractAttributes"),extractUniforms:t("./extractUniforms"),generateUniformAccessObject:t("./generateUniformAccessObject"),setPrecision:t("./setPrecision"),mapSize:t("./mapSize"),mapType:t("./mapType")}},{"./compileProgram":17,"./defaultValue":18,"./extractAttributes":19,"./extractUniforms":20,"./generateUniformAccessObject":21,"./mapSize":23,"./mapType":24,"./setPrecision":25}],23:[function(t,e,r){var n=function(t){return i[t]},i={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};e.exports=n},{}],24:[function(t,e,r){var n=function(t,e){if(!i){var r=Object.keys(o);i={};for(var n=0;n<r.length;++n){var s=r[n];i[t[s]]=o[s]}}return i[e]},i=null,o={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D"};e.exports=n},{}],25:[function(t,e,r){var n=function(t,e){return"precision"!==t.substring(0,9)?"precision "+e+" float;\n"+t:t};e.exports=n},{}],26:[function(t,e,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(t){if(c===setTimeout)return setTimeout(t,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function s(t){if(d===clearTimeout)return clearTimeout(t);if((d===i||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(t);try{return d(t)}catch(e){try{return d.call(null,t)}catch(e){return d.call(this,t)}}}function a(){y&&p&&(y=!1,p.length?v=p.concat(v):g=-1,v.length&&u())}function u(){if(!y){var t=o(a);y=!0;for(var e=v.length;e;){for(p=v,v=[];++g<e;)p&&p[g].run();g=-1,e=v.length}p=null,y=!1,s(t)}}function h(t,e){this.fun=t,this.array=e}function l(){}var c,d,f=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:n}catch(t){c=n}try{d="function"==typeof clearTimeout?clearTimeout:i}catch(t){d=i}}();var p,v=[],y=!1,g=-1;f.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];v.push(new h(t,e)),1!==v.length||y||o(u)},h.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=l,f.addListener=l,f.once=l,f.off=l,f.removeListener=l,f.removeAllListeners=l,f.emit=l,f.prependListener=l,f.prependOnceListener=l,f.listeners=function(t){return[]},f.binding=function(t){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(t){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},{}],27:[function(e,r,n){(function(e){!function(i){function o(t){throw new RangeError(L[t])}function s(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function a(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),t=t.replace(D,"."),n+s(t.split("."),e).join(".")}function u(t){for(var e,r,n=[],i=0,o=t.length;i<o;)e=t.charCodeAt(i++),e>=55296&&e<=56319&&i<o?(r=t.charCodeAt(i++),56320==(64512&r)?n.push(((1023&e)<<10)+(1023&r)+65536):(n.push(e),i--)):n.push(e);return n}function h(t){return s(t,function(t){var e="";return t>65535&&(t-=65536,e+=B(t>>>10&1023|55296),t=56320|1023&t),e+=B(t)}).join("")}function l(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:w}function c(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function d(t,e,r){var n=0;for(t=r?F(t/M):t>>1,t+=F(t/e);t>N*S>>1;n+=w)t=F(t/N);return F(n+(N+1)*t/(t+O))}function f(t){var e,r,n,i,s,a,u,c,f,p,v=[],y=t.length,g=0,m=C,_=P;for(r=t.lastIndexOf(R),r<0&&(r=0),n=0;n<r;++n)t.charCodeAt(n)>=128&&o("not-basic"),v.push(t.charCodeAt(n));for(i=r>0?r+1:0;i<y;){for(s=g,a=1,u=w;i>=y&&o("invalid-input"),c=l(t.charCodeAt(i++)),(c>=w||c>F((T-g)/a))&&o("overflow"),g+=c*a,f=u<=_?E:u>=_+S?S:u-_,!(c<f);u+=w)p=w-f,a>F(T/p)&&o("overflow"),a*=p;e=v.length+1,_=d(g-s,e,0==s),F(g/e)>T-m&&o("overflow"),m+=F(g/e),g%=e,v.splice(g++,0,m)}return h(v)}function p(t){var e,r,n,i,s,a,h,l,f,p,v,y,g,m,_,b=[];for(t=u(t),y=t.length,e=C,r=0,s=P,a=0;a<y;++a)(v=t[a])<128&&b.push(B(v));for(n=i=b.length,i&&b.push(R);n<y;){for(h=T,a=0;a<y;++a)(v=t[a])>=e&&v<h&&(h=v);for(g=n+1,h-e>F((T-r)/g)&&o("overflow"),r+=(h-e)*g,e=h,a=0;a<y;++a)if(v=t[a],v<e&&++r>T&&o("overflow"),v==e){for(l=r,f=w;p=f<=s?E:f>=s+S?S:f-s,!(l<p);f+=w)_=l-p,m=w-p,b.push(B(c(p+_%m,0))),l=F(_/m);b.push(B(c(l,0))),s=d(r,g,n==i),r=0,++n}++r,++e}return b.join("")}function v(t){return a(t,function(t){return A.test(t)?f(t.slice(4).toLowerCase()):t})}function y(t){return a(t,function(t){return I.test(t)?"xn--"+p(t):t})}var g="object"==typeof n&&n&&!n.nodeType&&n,m="object"==typeof r&&r&&!r.nodeType&&r,_="object"==typeof e&&e;_.global!==_&&_.window!==_&&_.self!==_||(i=_);var b,x,T=2147483647,w=36,E=1,S=26,O=38,M=700,P=72,C=128,R="-",A=/^xn--/,I=/[^\x20-\x7E]/,D=/[\x2E\u3002\uFF0E\uFF61]/g,L={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},N=w-E,F=Math.floor,B=String.fromCharCode;if(b={version:"1.4.1",ucs2:{decode:u,encode:h},decode:f,encode:p,toASCII:y,toUnicode:v},"function"==typeof t&&"object"==typeof t.amd&&t.amd)t("punycode",function(){return b});else if(g&&m)if(r.exports==g)m.exports=b;else for(x in b)b.hasOwnProperty(x)&&(g[x]=b[x]);else i.punycode=b}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],28:[function(t,e,r){"use strict";function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.exports=function(t,e,r,o){e=e||"&",r=r||"=";var s={};if("string"!=typeof t||0===t.length)return s;var a=/\+/g;t=t.split(e);var u=1e3;o&&"number"==typeof o.maxKeys&&(u=o.maxKeys);var h=t.length;u>0&&h>u&&(h=u);for(var l=0;l<h;++l){var c,d,f,p,v=t[l].replace(a,"%20"),y=v.indexOf(r);y>=0?(c=v.substr(0,y),d=v.substr(y+1)):(c=v,d=""),f=decodeURIComponent(c),p=decodeURIComponent(d),n(s,f)?i(s[f])?s[f].push(p):s[f]=[s[f],p]:s[f]=p}return s};var i=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},{}],29:[function(t,e,r){"use strict";function n(t,e){if(t.map)return t.map(e);for(var r=[],n=0;n<t.length;n++)r.push(e(t[n],n));return r}var i=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};e.exports=function(t,e,r,a){return e=e||"&",r=r||"=",null===t&&(t=void 0),"object"==typeof t?n(s(t),function(s){var a=encodeURIComponent(i(s))+r;return o(t[s])?n(t[s],function(t){return a+encodeURIComponent(i(t))}).join(e):a+encodeURIComponent(i(t[s]))}).join(e):a?encodeURIComponent(i(a))+r+encodeURIComponent(i(t)):""};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},s=Object.keys||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(r);return e}},{}],30:[function(t,e,r){"use strict";r.decode=r.parse=t("./decode"),r.encode=r.stringify=t("./encode")},{"./decode":28,"./encode":29}],31:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n,i=t.length;if(!(e>=i||0===r)){r=e+r>i?i-e:r;var o=i-r;for(n=e;n<o;++n)t[n]=t[n+r];t.length=o}}},{}],32:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s=t("mini-signals"),a=n(s),u=t("parse-uri"),h=n(u),l=t("./async"),c=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(l),d=t("./Resource"),f=n(d),p=/(#[\w-]+)?$/,v=function(){function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;i(this,t),this.baseUrl=r,this.progress=0,this.loading=!1,this.defaultQueryString="",this._beforeMiddleware=[],this._afterMiddleware=[],this._resourcesParsing=[],this._boundLoadResource=function(t,r){return e._loadResource(t,r)},this._queue=c.queue(this._boundLoadResource,n),this._queue.pause(),this.resources={},this.onProgress=new a.default,this.onError=new a.default,this.onLoad=new a.default,this.onStart=new a.default,this.onComplete=new a.default}return t.prototype.add=function(t,e,r,n){if(Array.isArray(t)){for(var i=0;i<t.length;++i)this.add(t[i]);return this}if("object"===(void 0===t?"undefined":o(t))&&(n=e||t.callback||t.onComplete,r=t,e=t.url,t=t.name||t.key||t.url),"string"!=typeof e&&(n=r,r=e,e=t),"string"!=typeof e)throw new Error("No url passed to add resource to loader.");if("function"==typeof r&&(n=r,r=null),this.loading&&(!r||!r.parentResource))throw new Error("Cannot add resources while the loader is running.");if(this.resources[t])throw new Error('Resource named "'+t+'" already exists.');if(e=this._prepareUrl(e),this.resources[t]=new f.default(t,e,r),"function"==typeof n&&this.resources[t].onAfterMiddleware.once(n),this.loading){for(var s=r.parentResource,a=[],u=0;u<s.children.length;++u)s.children[u].isComplete||a.push(s.children[u]);var h=s.progressChunk*(a.length+1),l=h/(a.length+2);s.children.push(this.resources[t]),s.progressChunk=l;for(var c=0;c<a.length;++c)a[c].progressChunk=l;this.resources[t].progressChunk=l}return this._queue.push(this.resources[t]),this},t.prototype.pre=function(t){return this._beforeMiddleware.push(t),this},t.prototype.use=function(t){return this._afterMiddleware.push(t),this},t.prototype.reset=function(){this.progress=0,this.loading=!1,this._queue.kill(),this._queue.pause();for(var t in this.resources){var e=this.resources[t];e._onLoadBinding&&e._onLoadBinding.detach(),e.isLoading&&e.abort()}return this.resources={},this},t.prototype.load=function(t){if("function"==typeof t&&this.onComplete.once(t),this.loading)return this;for(var e=100/this._queue._tasks.length,r=0;r<this._queue._tasks.length;++r)this._queue._tasks[r].data.progressChunk=e;return this.loading=!0,this.onStart.dispatch(this),this._queue.resume(),this},t.prototype._prepareUrl=function(t){var e=(0,h.default)(t,{strictMode:!0}),r=void 0;if(r=e.protocol||!e.path||0===t.indexOf("//")?t:this.baseUrl.length&&this.baseUrl.lastIndexOf("/")!==this.baseUrl.length-1&&"/"!==t.charAt(0)?this.baseUrl+"/"+t:this.baseUrl+t,this.defaultQueryString){var n=p.exec(r)[0];r=r.substr(0,r.length-n.length),-1!==r.indexOf("?")?r+="&"+this.defaultQueryString:r+="?"+this.defaultQueryString,r+=n}return r},t.prototype._loadResource=function(t,e){var r=this;t._dequeue=e,c.eachSeries(this._beforeMiddleware,function(e,n){e.call(r,t,function(){n(t.isComplete?{}:null)})},function(){t.isComplete?r._onLoad(t):(t._onLoadBinding=t.onComplete.once(r._onLoad,r),t.load())},!0)},t.prototype._onComplete=function(){this.loading=!1,this.onComplete.dispatch(this,this.resources)},t.prototype._onLoad=function(t){var e=this;t._onLoadBinding=null,this._resourcesParsing.push(t),t._dequeue(),c.eachSeries(this._afterMiddleware,function(r,n){r.call(e,t,n)},function(){t.onAfterMiddleware.dispatch(t),e.progress+=t.progressChunk,e.onProgress.dispatch(e,t),t.error?e.onError.dispatch(t.error,e,t):e.onLoad.dispatch(e,t),e._resourcesParsing.splice(e._resourcesParsing.indexOf(t),1),e._queue.idle()&&0===e._resourcesParsing.length&&(e.progress=100,e._onComplete())},!0)},t}();r.default=v},{"./Resource":33,"./async":34,"mini-signals":5,"parse-uri":7}],33:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(){}function s(t,e,r){e&&0===e.indexOf(".")&&(e=e.substring(1)),e&&(t[e]=r)}function a(t){return t.toString().replace("object ","")}r.__esModule=!0;var u=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),h=t("parse-uri"),l=n(h),c=t("mini-signals"),d=n(c),f=!(!window.XDomainRequest||"withCredentials"in new XMLHttpRequest),p=null,v=function(){function t(e,r,n){if(i(this,t),"string"!=typeof e||"string"!=typeof r)throw new Error("Both name and url are required for constructing a resource.");n=n||{},this._flags=0,this._setFlag(t.STATUS_FLAGS.DATA_URL,0===r.indexOf("data:")),this.name=e,this.url=r,this.extension=this._getExtension(),this.data=null,this.crossOrigin=!0===n.crossOrigin?"anonymous":n.crossOrigin,this.loadType=n.loadType||this._determineLoadType(),this.xhrType=n.xhrType,this.metadata=n.metadata||{},this.error=null,this.xhr=null,this.children=[],this.type=t.TYPE.UNKNOWN,this.progressChunk=0,this._dequeue=o,this._onLoadBinding=null,this._boundComplete=this.complete.bind(this),this._boundOnError=this._onError.bind(this),this._boundOnProgress=this._onProgress.bind(this),this._boundXhrOnError=this._xhrOnError.bind(this),this._boundXhrOnAbort=this._xhrOnAbort.bind(this),this._boundXhrOnLoad=this._xhrOnLoad.bind(this),this._boundXdrOnTimeout=this._xdrOnTimeout.bind(this),this.onStart=new d.default,this.onProgress=new d.default,this.onComplete=new d.default,this.onAfterMiddleware=new d.default}return t.setExtensionLoadType=function(e,r){s(t._loadTypeMap,e,r)},t.setExtensionXhrType=function(e,r){s(t._xhrTypeMap,e,r)},t.prototype.complete=function(){if(this.data&&this.data.removeEventListener&&(this.data.removeEventListener("error",this._boundOnError,!1),this.data.removeEventListener("load",this._boundComplete,!1),this.data.removeEventListener("progress",this._boundOnProgress,!1),this.data.removeEventListener("canplaythrough",this._boundComplete,!1)),this.xhr&&(this.xhr.removeEventListener?(this.xhr.removeEventListener("error",this._boundXhrOnError,!1),this.xhr.removeEventListener("abort",this._boundXhrOnAbort,!1),this.xhr.removeEventListener("progress",this._boundOnProgress,!1),this.xhr.removeEventListener("load",this._boundXhrOnLoad,!1)):(this.xhr.onerror=null,this.xhr.ontimeout=null,this.xhr.onprogress=null,this.xhr.onload=null)),this.isComplete)throw new Error("Complete called again for an already completed resource.");this._setFlag(t.STATUS_FLAGS.COMPLETE,!0),this._setFlag(t.STATUS_FLAGS.LOADING,!1),this.onComplete.dispatch(this)},t.prototype.abort=function(e){if(!this.error){if(this.error=new Error(e),this.xhr)this.xhr.abort();else if(this.xdr)this.xdr.abort();else if(this.data)if(this.data.src)this.data.src=t.EMPTY_GIF;else for(;this.data.firstChild;)this.data.removeChild(this.data.firstChild);this.complete()}},t.prototype.load=function(e){var r=this;if(!this.isLoading){if(this.isComplete)return void(e&&setTimeout(function(){return e(r)},1));switch(e&&this.onComplete.once(e),this._setFlag(t.STATUS_FLAGS.LOADING,!0),this.onStart.dispatch(this),!1!==this.crossOrigin&&"string"==typeof this.crossOrigin||(this.crossOrigin=this._determineCrossOrigin(this.url)),this.loadType){case t.LOAD_TYPE.IMAGE:this.type=t.TYPE.IMAGE,this._loadElement("image");break;case t.LOAD_TYPE.AUDIO:this.type=t.TYPE.AUDIO,this._loadSourceElement("audio");break;case t.LOAD_TYPE.VIDEO:this.type=t.TYPE.VIDEO,this._loadSourceElement("video");break;case t.LOAD_TYPE.XHR:default:f&&this.crossOrigin?this._loadXdr():this._loadXhr()}}},t.prototype._hasFlag=function(t){return!!(this._flags&t)},t.prototype._setFlag=function(t,e){this._flags=e?this._flags|t:this._flags&~t},t.prototype._loadElement=function(t){this.metadata.loadElement?this.data=this.metadata.loadElement:"image"===t&&void 0!==window.Image?this.data=new Image:this.data=document.createElement(t),this.crossOrigin&&(this.data.crossOrigin=this.crossOrigin),this.metadata.skipSource||(this.data.src=this.url),this.data.addEventListener("error",this._boundOnError,!1),this.data.addEventListener("load",this._boundComplete,!1),this.data.addEventListener("progress",this._boundOnProgress,!1)},t.prototype._loadSourceElement=function(t){if(this.metadata.loadElement?this.data=this.metadata.loadElement:"audio"===t&&void 0!==window.Audio?this.data=new Audio:this.data=document.createElement(t),null===this.data)return void this.abort("Unsupported element: "+t);if(!this.metadata.skipSource)if(navigator.isCocoonJS)this.data.src=Array.isArray(this.url)?this.url[0]:this.url;else if(Array.isArray(this.url))for(var e=this.metadata.mimeType,r=0;r<this.url.length;++r)this.data.appendChild(this._createSource(t,this.url[r],Array.isArray(e)?e[r]:e));else{var n=this.metadata.mimeType;this.data.appendChild(this._createSource(t,this.url,Array.isArray(n)?n[0]:n))}this.data.addEventListener("error",this._boundOnError,!1),this.data.addEventListener("load",this._boundComplete,!1),this.data.addEventListener("progress",this._boundOnProgress,!1),this.data.addEventListener("canplaythrough",this._boundComplete,!1),this.data.load()},t.prototype._loadXhr=function(){"string"!=typeof this.xhrType&&(this.xhrType=this._determineXhrType());var e=this.xhr=new XMLHttpRequest;e.open("GET",this.url,!0),this.xhrType===t.XHR_RESPONSE_TYPE.JSON||this.xhrType===t.XHR_RESPONSE_TYPE.DOCUMENT?e.responseType=t.XHR_RESPONSE_TYPE.TEXT:e.responseType=this.xhrType,e.addEventListener("error",this._boundXhrOnError,!1),e.addEventListener("abort",this._boundXhrOnAbort,!1),e.addEventListener("progress",this._boundOnProgress,!1),e.addEventListener("load",this._boundXhrOnLoad,!1),e.send()},t.prototype._loadXdr=function(){"string"!=typeof this.xhrType&&(this.xhrType=this._determineXhrType());var t=this.xhr=new XDomainRequest;t.timeout=5e3,t.onerror=this._boundXhrOnError,t.ontimeout=this._boundXdrOnTimeout,t.onprogress=this._boundOnProgress,t.onload=this._boundXhrOnLoad,t.open("GET",this.url,!0),setTimeout(function(){return t.send()},1)},t.prototype._createSource=function(t,e,r){r||(r=t+"/"+this._getExtension(e));var n=document.createElement("source");return n.src=e,n.type=r,n},t.prototype._onError=function(t){this.abort("Failed to load element using: "+t.target.nodeName)},t.prototype._onProgress=function(t){t&&t.lengthComputable&&this.onProgress.dispatch(this,t.loaded/t.total)},t.prototype._xhrOnError=function(){var t=this.xhr;this.abort(a(t)+" Request failed. Status: "+t.status+', text: "'+t.statusText+'"')},t.prototype._xhrOnAbort=function(){this.abort(a(this.xhr)+" Request was aborted by the user.")},t.prototype._xdrOnTimeout=function(){this.abort(a(this.xhr)+" Request timed out.")},t.prototype._xhrOnLoad=function(){var e=this.xhr,r="",n=void 0===e.status?200:e.status;if(""!==e.responseType&&"text"!==e.responseType&&void 0!==e.responseType||(r=e.responseText),0===n&&r.length>0?n=200:1223===n&&(n=204),2!=(n/100|0))return void this.abort("["+e.status+"] "+e.statusText+": "+e.responseURL);if(this.xhrType===t.XHR_RESPONSE_TYPE.TEXT)this.data=r,this.type=t.TYPE.TEXT;else if(this.xhrType===t.XHR_RESPONSE_TYPE.JSON)try{this.data=JSON.parse(r),this.type=t.TYPE.JSON}catch(t){return void this.abort("Error trying to parse loaded json: "+t)}else if(this.xhrType===t.XHR_RESPONSE_TYPE.DOCUMENT)try{if(window.DOMParser){var i=new DOMParser;this.data=i.parseFromString(r,"text/xml")}else{var o=document.createElement("div");o.innerHTML=r,this.data=o}this.type=t.TYPE.XML}catch(t){return void this.abort("Error trying to parse loaded xml: "+t)}else this.data=e.response||r;this.complete()},t.prototype._determineCrossOrigin=function(t,e){if(0===t.indexOf("data:"))return"";e=e||window.location,p||(p=document.createElement("a")),p.href=t,t=(0,l.default)(p.href,{strictMode:!0});var r=!t.port&&""===e.port||t.port===e.port,n=t.protocol?t.protocol+":":"";return t.host===e.hostname&&r&&n===e.protocol?"":"anonymous"},t.prototype._determineXhrType=function(){return t._xhrTypeMap[this.extension]||t.XHR_RESPONSE_TYPE.TEXT},t.prototype._determineLoadType=function(){return t._loadTypeMap[this.extension]||t.LOAD_TYPE.XHR},t.prototype._getExtension=function(){var t=this.url,e="";if(this.isDataUrl){var r=t.indexOf("/");e=t.substring(r+1,t.indexOf(";",r))}else{var n=t.indexOf("?"),i=t.indexOf("#"),o=Math.min(n>-1?n:t.length,i>-1?i:t.length);t=t.substring(0,o),e=t.substring(t.lastIndexOf(".")+1)}return e.toLowerCase()},t.prototype._getMimeFromXhrType=function(e){switch(e){case t.XHR_RESPONSE_TYPE.BUFFER:return"application/octet-binary";case t.XHR_RESPONSE_TYPE.BLOB:return"application/blob";case t.XHR_RESPONSE_TYPE.DOCUMENT:return"application/xml";case t.XHR_RESPONSE_TYPE.JSON:return"application/json";case t.XHR_RESPONSE_TYPE.DEFAULT:case t.XHR_RESPONSE_TYPE.TEXT:default:return"text/plain"}},u(t,[{key:"isDataUrl",get:function(){return this._hasFlag(t.STATUS_FLAGS.DATA_URL)}},{key:"isComplete",get:function(){return this._hasFlag(t.STATUS_FLAGS.COMPLETE)}},{key:"isLoading",get:function(){return this._hasFlag(t.STATUS_FLAGS.LOADING)}}]),t}();r.default=v,v.STATUS_FLAGS={NONE:0,DATA_URL:1,COMPLETE:2,LOADING:4},v.TYPE={UNKNOWN:0,JSON:1,XML:2,IMAGE:3,AUDIO:4,VIDEO:5,TEXT:6},v.LOAD_TYPE={XHR:1,IMAGE:2,AUDIO:3,VIDEO:4},v.XHR_RESPONSE_TYPE={DEFAULT:"text",BUFFER:"arraybuffer",BLOB:"blob",DOCUMENT:"document",JSON:"json",TEXT:"text"},v._loadTypeMap={gif:v.LOAD_TYPE.IMAGE,png:v.LOAD_TYPE.IMAGE,bmp:v.LOAD_TYPE.IMAGE,jpg:v.LOAD_TYPE.IMAGE,jpeg:v.LOAD_TYPE.IMAGE,tif:v.LOAD_TYPE.IMAGE,tiff:v.LOAD_TYPE.IMAGE,webp:v.LOAD_TYPE.IMAGE,tga:v.LOAD_TYPE.IMAGE,svg:v.LOAD_TYPE.IMAGE,"svg+xml":v.LOAD_TYPE.IMAGE,mp3:v.LOAD_TYPE.AUDIO,ogg:v.LOAD_TYPE.AUDIO,wav:v.LOAD_TYPE.AUDIO,mp4:v.LOAD_TYPE.VIDEO,webm:v.LOAD_TYPE.VIDEO},v._xhrTypeMap={xhtml:v.XHR_RESPONSE_TYPE.DOCUMENT,html:v.XHR_RESPONSE_TYPE.DOCUMENT,htm:v.XHR_RESPONSE_TYPE.DOCUMENT,xml:v.XHR_RESPONSE_TYPE.DOCUMENT,tmx:v.XHR_RESPONSE_TYPE.DOCUMENT,svg:v.XHR_RESPONSE_TYPE.DOCUMENT,tsx:v.XHR_RESPONSE_TYPE.DOCUMENT,gif:v.XHR_RESPONSE_TYPE.BLOB,png:v.XHR_RESPONSE_TYPE.BLOB,bmp:v.XHR_RESPONSE_TYPE.BLOB,jpg:v.XHR_RESPONSE_TYPE.BLOB,jpeg:v.XHR_RESPONSE_TYPE.BLOB,tif:v.XHR_RESPONSE_TYPE.BLOB,tiff:v.XHR_RESPONSE_TYPE.BLOB,webp:v.XHR_RESPONSE_TYPE.BLOB,tga:v.XHR_RESPONSE_TYPE.BLOB,json:v.XHR_RESPONSE_TYPE.JSON,text:v.XHR_RESPONSE_TYPE.TEXT,txt:v.XHR_RESPONSE_TYPE.TEXT,ttf:v.XHR_RESPONSE_TYPE.BUFFER,otf:v.XHR_RESPONSE_TYPE.BUFFER},v.EMPTY_GIF="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="},{"mini-signals":5,"parse-uri":7}],34:[function(t,e,r){"use strict";function n(){}function i(t,e,r,n){var i=0,o=t.length;!function s(a){if(a||i===o)return void(r&&r(a));n?setTimeout(function(){e(t[i++],s)},1):e(t[i++],s)}()}function o(t){return function(){if(null===t)throw new Error("Callback was already called.");var e=t;t=null,e.apply(this,arguments)}}function s(t,e){function r(t,e,r){if(null!=r&&"function"!=typeof r)throw new Error("task callback must be a function");if(a.started=!0,null==t&&a.idle())return void setTimeout(function(){return a.drain()},1);var i={data:t,callback:"function"==typeof r?r:n};e?a._tasks.unshift(i):a._tasks.push(i),setTimeout(function(){return a.process()},1)}function i(t){return function(){s-=1,t.callback.apply(t,arguments),null!=arguments[0]&&a.error(arguments[0],t.data),s<=a.concurrency-a.buffer&&a.unsaturated(),a.idle()&&a.drain(),a.process()}}if(null==e)e=1;else if(0===e)throw new Error("Concurrency must not be zero");var s=0,a={_tasks:[],concurrency:e,saturated:n,unsaturated:n,buffer:e/4,empty:n,drain:n,error:n,started:!1,paused:!1,push:function(t,e){r(t,!1,e)},kill:function(){s=0,a.drain=n,a.started=!1,a._tasks=[]},unshift:function(t,e){r(t,!0,e)},process:function(){for(;!a.paused&&s<a.concurrency&&a._tasks.length;){var e=a._tasks.shift();0===a._tasks.length&&a.empty(),s+=1,s===a.concurrency&&a.saturated(),t(e.data,o(i(e)))}},length:function(){return a._tasks.length},running:function(){return s},idle:function(){return a._tasks.length+s===0},pause:function(){!0!==a.paused&&(a.paused=!0)},resume:function(){if(!1!==a.paused){a.paused=!1;for(var t=1;t<=a.concurrency;t++)a.process()}}};return a}r.__esModule=!0,r.eachSeries=i,r.queue=s},{}],35:[function(t,e,r){"use strict";function n(t){for(var e="",r=0;r<t.length;){for(var n=[0,0,0],o=[0,0,0,0],s=0;s<n.length;++s)r<t.length?n[s]=255&t.charCodeAt(r++):n[s]=0;o[0]=n[0]>>2,o[1]=(3&n[0])<<4|n[1]>>4,o[2]=(15&n[1])<<2|n[2]>>6,o[3]=63&n[2];switch(r-(t.length-1)){case 2:o[3]=64,o[2]=64;break;case 1:o[3]=64}for(var a=0;a<o.length;++a)e+=i.charAt(o[a])}return e}r.__esModule=!0,r.encodeBinary=n;var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},{}],36:[function(t,e,r){"use strict";var n=t("./Loader").default,i=t("./Resource").default,o=t("./async"),s=t("./b64");n.Resource=i,n.async=o,n.base64=s,e.exports=n,e.exports.default=n},{"./Loader":32,"./Resource":33,"./async":34,"./b64":35}],37:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(){return function(t,e){if(!t.data)return void e();if(t.xhr&&t.xhrType===a.default.XHR_RESPONSE_TYPE.BLOB)if(window.Blob&&"string"!=typeof t.data){if(0===t.data.type.indexOf("image")){var r=function(){var r=l.createObjectURL(t.data);return t.blob=t.data,t.data=new Image,t.data.src=r,t.type=a.default.TYPE.IMAGE,t.data.onload=function(){l.revokeObjectURL(r),t.data.onload=null,e()},{v:void 0}}();if("object"===(void 0===r?"undefined":o(r)))return r.v}}else{var n=t.xhr.getResponseHeader("content-type");if(n&&0===n.indexOf("image"))return t.data=new Image,t.data.src="data:"+n+";base64,"+h.default.encodeBinary(t.xhr.responseText),t.type=a.default.TYPE.IMAGE,void(t.data.onload=function(){t.data.onload=null,e()})}e()}}r.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};r.blobMiddlewareFactory=i;var s=t("../../Resource"),a=n(s),u=t("../../b64"),h=n(u),l=window.URL||window.webkitURL},{"../../Resource":33,"../../b64":35}],38:[function(t,e,r){"use strict";function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(t,e,r){if(t&&h.isObject(t)&&t instanceof n)return t;var i=new n;return i.parse(t,e,r),i}function o(t){return h.isString(t)&&(t=i(t)),t instanceof n?t.format():n.prototype.format.call(t)}function s(t,e){return i(t,!1,!0).resolve(e)}function a(t,e){return t?i(t,!1,!0).resolveObject(e):e}var u=t("punycode"),h=t("./util");r.parse=i,r.resolve=s,r.resolveObject=a,r.format=o,r.Url=n;var l=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,d=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,f=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(f),v=["'"].concat(p),y=["%","/","?",";","#"].concat(v),g=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,_=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},x={javascript:!0,"javascript:":!0},T={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=t("querystring");n.prototype.parse=function(t,e,r){if(!h.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),i=-1!==n&&n<t.indexOf("#")?"?":"#",o=t.split(i),s=/\\/g;o[0]=o[0].replace(s,"/"),t=o.join(i);var a=t;if(a=a.trim(),!r&&1===t.split("#").length){var c=d.exec(a);if(c)return this.path=a,this.href=a,this.pathname=c[1],c[2]?(this.search=c[2],this.query=e?w.parse(this.search.substr(1)):this.search.substr(1)):e&&(this.search="",this.query={}),this}var f=l.exec(a);if(f){f=f[0];var p=f.toLowerCase();this.protocol=p,a=a.substr(f.length)}if(r||f||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var E="//"===a.substr(0,2);!E||f&&x[f]||(a=a.substr(2),this.slashes=!0)}if(!x[f]&&(E||f&&!T[f])){for(var S=-1,O=0;O<g.length;O++){var M=a.indexOf(g[O]);-1!==M&&(-1===S||M<S)&&(S=M)}var P,C;C=-1===S?a.lastIndexOf("@"):a.lastIndexOf("@",S),-1!==C&&(P=a.slice(0,C),a=a.slice(C+1),this.auth=decodeURIComponent(P)),S=-1;for(var O=0;O<y.length;O++){var M=a.indexOf(y[O]);-1!==M&&(-1===S||M<S)&&(S=M)}-1===S&&(S=a.length),this.host=a.slice(0,S),a=a.slice(S),this.parseHost(),this.hostname=this.hostname||"";var R="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!R)for(var A=this.hostname.split(/\./),O=0,I=A.length;O<I;O++){var D=A[O];if(D&&!D.match(m)){for(var L="",N=0,F=D.length;N<F;N++)D.charCodeAt(N)>127?L+="x":L+=D[N];if(!L.match(m)){var B=A.slice(0,O),k=A.slice(O+1),j=D.match(_);j&&(B.push(j[1]),k.unshift(j[2])),k.length&&(a="/"+k.join(".")+a),this.hostname=B.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=u.toASCII(this.hostname));var U=this.port?":"+this.port:"",X=this.hostname||"";this.host=X+U,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==a[0]&&(a="/"+a))}if(!b[p])for(var O=0,I=v.length;O<I;O++){var G=v[O];if(-1!==a.indexOf(G)){var W=encodeURIComponent(G);W===G&&(W=escape(G)),a=a.split(G).join(W)}}var H=a.indexOf("#");-1!==H&&(this.hash=a.substr(H),a=a.slice(0,H));var Y=a.indexOf("?");if(-1!==Y?(this.search=a.substr(Y),this.query=a.substr(Y+1),e&&(this.query=w.parse(this.query)),a=a.slice(0,Y)):e&&(this.search="",this.query={}),a&&(this.pathname=a),T[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var U=this.pathname||"",V=this.search||"";this.path=U+V}return this.href=this.format(),this},n.prototype.format=function(){var t=this.auth||"";t&&(t=encodeURIComponent(t),t=t.replace(/%3A/i,":"),t+="@");var e=this.protocol||"",r=this.pathname||"",n=this.hash||"",i=!1,o="";this.host?i=t+this.host:this.hostname&&(i=t+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&h.isObject(this.query)&&Object.keys(this.query).length&&(o=w.stringify(this.query));var s=this.search||o&&"?"+o||"";return e&&":"!==e.substr(-1)&&(e+=":"),this.slashes||(!e||T[e])&&!1!==i?(i="//"+(i||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):i||(i=""),n&&"#"!==n.charAt(0)&&(n="#"+n),s&&"?"!==s.charAt(0)&&(s="?"+s),r=r.replace(/[?#]/g,function(t){ | |
return encodeURIComponent(t)}),s=s.replace("#","%23"),e+i+r+s+n},n.prototype.resolve=function(t){return this.resolveObject(i(t,!1,!0)).format()},n.prototype.resolveObject=function(t){if(h.isString(t)){var e=new n;e.parse(t,!1,!0),t=e}for(var r=new n,i=Object.keys(this),o=0;o<i.length;o++){var s=i[o];r[s]=this[s]}if(r.hash=t.hash,""===t.href)return r.href=r.format(),r;if(t.slashes&&!t.protocol){for(var a=Object.keys(t),u=0;u<a.length;u++){var l=a[u];"protocol"!==l&&(r[l]=t[l])}return T[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(t.protocol&&t.protocol!==r.protocol){if(!T[t.protocol]){for(var c=Object.keys(t),d=0;d<c.length;d++){var f=c[d];r[f]=t[f]}return r.href=r.format(),r}if(r.protocol=t.protocol,t.host||x[t.protocol])r.pathname=t.pathname;else{for(var p=(t.pathname||"").split("/");p.length&&!(t.host=p.shift()););t.host||(t.host=""),t.hostname||(t.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),r.pathname=p.join("/")}if(r.search=t.search,r.query=t.query,r.host=t.host||"",r.auth=t.auth,r.hostname=t.hostname||t.host,r.port=t.port,r.pathname||r.search){var v=r.pathname||"",y=r.search||"";r.path=v+y}return r.slashes=r.slashes||t.slashes,r.href=r.format(),r}var g=r.pathname&&"/"===r.pathname.charAt(0),m=t.host||t.pathname&&"/"===t.pathname.charAt(0),_=m||g||r.host&&t.pathname,b=_,w=r.pathname&&r.pathname.split("/")||[],p=t.pathname&&t.pathname.split("/")||[],E=r.protocol&&!T[r.protocol];if(E&&(r.hostname="",r.port=null,r.host&&(""===w[0]?w[0]=r.host:w.unshift(r.host)),r.host="",t.protocol&&(t.hostname=null,t.port=null,t.host&&(""===p[0]?p[0]=t.host:p.unshift(t.host)),t.host=null),_=_&&(""===p[0]||""===w[0])),m)r.host=t.host||""===t.host?t.host:r.host,r.hostname=t.hostname||""===t.hostname?t.hostname:r.hostname,r.search=t.search,r.query=t.query,w=p;else if(p.length)w||(w=[]),w.pop(),w=w.concat(p),r.search=t.search,r.query=t.query;else if(!h.isNullOrUndefined(t.search)){if(E){r.hostname=r.host=w.shift();var S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");S&&(r.auth=S.shift(),r.host=r.hostname=S.shift())}return r.search=t.search,r.query=t.query,h.isNull(r.pathname)&&h.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!w.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=w.slice(-1)[0],M=(r.host||t.host||w.length>1)&&("."===O||".."===O)||""===O,P=0,C=w.length;C>=0;C--)O=w[C],"."===O?w.splice(C,1):".."===O?(w.splice(C,1),P++):P&&(w.splice(C,1),P--);if(!_&&!b)for(;P--;P)w.unshift("..");!_||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),M&&"/"!==w.join("/").substr(-1)&&w.push("");var R=""===w[0]||w[0]&&"/"===w[0].charAt(0);if(E){r.hostname=r.host=R?"":w.length?w.shift():"";var S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");S&&(r.auth=S.shift(),r.host=r.hostname=S.shift())}return _=_||r.host&&w.length,_&&!R&&w.unshift(""),w.length?r.pathname=w.join("/"):(r.pathname=null,r.path=null),h.isNull(r.pathname)&&h.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var t=this.host,e=c.exec(t);e&&(e=e[0],":"!==e&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},{"./util":39,punycode:27,querystring:30}],39:[function(t,e,r){"use strict";e.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},{}],40:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=t("../core"),s=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(o),a=t("ismobilejs"),u=n(a),h=t("./accessibleTarget"),l=n(h);s.utils.mixins.delayMixin(s.DisplayObject.prototype,l.default);var c=100,d=0,f=0,p=2,v=function(){function t(e){i(this,t),!u.default.tablet&&!u.default.phone||navigator.isCocoonJS||this.createTouchHook();var r=document.createElement("div");r.style.width=c+"px",r.style.height=c+"px",r.style.position="absolute",r.style.top=d+"px",r.style.left=f+"px",r.style.zIndex=p,this.div=r,this.pool=[],this.renderId=0,this.debug=!1,this.renderer=e,this.children=[],this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this.isActive=!1,this.isMobileAccessabillity=!1,window.addEventListener("keydown",this._onKeyDown,!1)}return t.prototype.createTouchHook=function(){var t=this,e=document.createElement("button");e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.style.zIndex=2,e.style.backgroundColor="#FF0000",e.title="HOOK DIV",e.addEventListener("focus",function(){t.isMobileAccessabillity=!0,t.activate(),document.body.removeChild(e)}),document.body.appendChild(e)},t.prototype.activate=function(){this.isActive||(this.isActive=!0,window.document.addEventListener("mousemove",this._onMouseMove,!0),window.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),this.renderer.view.parentNode&&this.renderer.view.parentNode.appendChild(this.div))},t.prototype.deactivate=function(){this.isActive&&!this.isMobileAccessabillity&&(this.isActive=!1,window.document.removeEventListener("mousemove",this._onMouseMove),window.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),this.div.parentNode&&this.div.parentNode.removeChild(this.div))},t.prototype.updateAccessibleObjects=function(t){if(t.visible){t.accessible&&t.interactive&&(t._accessibleActive||this.addChild(t),t.renderId=this.renderId);for(var e=t.children,r=e.length-1;r>=0;r--)this.updateAccessibleObjects(e[r])}},t.prototype.update=function(){if(this.renderer.renderingToScreen){this.updateAccessibleObjects(this.renderer._lastObjectRendered);var t=this.renderer.view.getBoundingClientRect(),e=t.width/this.renderer.width,r=t.height/this.renderer.height,n=this.div;n.style.left=t.left+"px",n.style.top=t.top+"px",n.style.width=this.renderer.width+"px",n.style.height=this.renderer.height+"px";for(var i=0;i<this.children.length;i++){var o=this.children[i];if(o.renderId!==this.renderId)o._accessibleActive=!1,s.utils.removeItems(this.children,i,1),this.div.removeChild(o._accessibleDiv),this.pool.push(o._accessibleDiv),o._accessibleDiv=null,i--,0===this.children.length&&this.deactivate();else{n=o._accessibleDiv;var a=o.hitArea,u=o.worldTransform;o.hitArea?(n.style.left=(u.tx+a.x*u.a)*e+"px",n.style.top=(u.ty+a.y*u.d)*r+"px",n.style.width=a.width*u.a*e+"px",n.style.height=a.height*u.d*r+"px"):(a=o.getBounds(),this.capHitArea(a),n.style.left=a.x*e+"px",n.style.top=a.y*r+"px",n.style.width=a.width*e+"px",n.style.height=a.height*r+"px")}}this.renderId++}},t.prototype.capHitArea=function(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0),t.x+t.width>this.renderer.width&&(t.width=this.renderer.width-t.x),t.y+t.height>this.renderer.height&&(t.height=this.renderer.height-t.y)},t.prototype.addChild=function(t){var e=this.pool.pop();e||(e=document.createElement("button"),e.style.width=c+"px",e.style.height=c+"px",e.style.backgroundColor=this.debug?"rgba(255,0,0,0.5)":"transparent",e.style.position="absolute",e.style.zIndex=p,e.style.borderStyle="none",e.addEventListener("click",this._onClick.bind(this)),e.addEventListener("focus",this._onFocus.bind(this)),e.addEventListener("focusout",this._onFocusOut.bind(this))),t.accessibleTitle?e.title=t.accessibleTitle:t.accessibleTitle||t.accessibleHint||(e.title="displayObject "+this.tabIndex),t.accessibleHint&&e.setAttribute("aria-label",t.accessibleHint),t._accessibleActive=!0,t._accessibleDiv=e,e.displayObject=t,this.children.push(t),this.div.appendChild(t._accessibleDiv),t._accessibleDiv.tabIndex=t.tabIndex},t.prototype._onClick=function(t){var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"click",e.eventData)},t.prototype._onFocus=function(t){var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"mouseover",e.eventData)},t.prototype._onFocusOut=function(t){var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"mouseout",e.eventData)},t.prototype._onKeyDown=function(t){9===t.keyCode&&this.activate()},t.prototype._onMouseMove=function(){this.deactivate()},t.prototype.destroy=function(){this.div=null;for(var t=0;t<this.children.length;t++)this.children[t].div=null;window.document.removeEventListener("mousemove",this._onMouseMove),window.removeEventListener("keydown",this._onKeyDown),this.pool=null,this.children=null,this.renderer=null},t}();r.default=v,s.WebGLRenderer.registerPlugin("accessibility",v),s.CanvasRenderer.registerPlugin("accessibility",v)},{"../core":65,"./accessibleTarget":41,ismobilejs:4}],41:[function(t,e,r){"use strict";r.__esModule=!0,r.default={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:!1}},{}],42:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./accessibleTarget");Object.defineProperty(r,"accessibleTarget",{enumerable:!0,get:function(){return n(i).default}});var o=t("./AccessibilityManager");Object.defineProperty(r,"AccessibilityManager",{enumerable:!0,get:function(){return n(o).default}})},{"./AccessibilityManager":40,"./accessibleTarget":41}],43:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),s=t("./autoDetectRenderer"),a=t("./display/Container"),u=n(a),h=t("./ticker"),l=t("./settings"),c=n(l),d=t("./const"),f=function(){function t(e,r,n,o,a){i(this,t),"number"==typeof e&&(e=Object.assign({width:e,height:r||c.default.RENDER_OPTIONS.height,forceCanvas:!!o,sharedTicker:!!a},n)),this._options=e=Object.assign({autoStart:!0,sharedTicker:!1,forceCanvas:!1,sharedLoader:!1},e),this.renderer=(0,s.autoDetectRenderer)(e),this.stage=new u.default,this._ticker=null,this.ticker=e.sharedTicker?h.shared:new h.Ticker,e.autoStart&&this.start()}return t.prototype.render=function(){this.renderer.render(this.stage)},t.prototype.stop=function(){this._ticker.stop()},t.prototype.start=function(){this._ticker.start()},t.prototype.destroy=function(t){var e=this._ticker;this.ticker=null,e.destroy(),this.stage.destroy(),this.stage=null,this.renderer.destroy(t),this.renderer=null,this._options=null},o(t,[{key:"ticker",set:function(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,d.UPDATE_PRIORITY.LOW)},get:function(){return this._ticker}},{key:"view",get:function(){return this.renderer.view}},{key:"screen",get:function(){return this.renderer.screen}}]),t}();r.default=f},{"./autoDetectRenderer":45,"./const":46,"./display/Container":48,"./settings":101,"./ticker":120}],44:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){if(t instanceof Array){if("precision"!==t[0].substring(0,9)){var r=t.slice(0);return r.unshift("precision "+e+" float;"),r}}else if("precision"!==t.substring(0,9))return"precision "+e+" float;\n"+t;return t}r.__esModule=!0;var a=t("pixi-gl-core"),u=t("./settings"),h=function(t){return t&&t.__esModule?t:{default:t}}(u),l=function(t){function e(r,o,a){return n(this,e),i(this,t.call(this,r,s(o,h.default.PRECISION_VERTEX),s(a,h.default.PRECISION_FRAGMENT)))}return o(e,t),e}(a.GLShader);r.default=l},{"./settings":101,"pixi-gl-core":15}],45:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e,r,n){var i=t&&t.forceCanvas;return void 0!==n&&(i=n),!i&&s.isWebGLSupported()?new l.default(t,e,r):new u.default(t,e,r)}r.__esModule=!0,r.autoDetectRenderer=i;var o=t("./utils"),s=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(o),a=t("./renderers/canvas/CanvasRenderer"),u=n(a),h=t("./renderers/webgl/WebGLRenderer"),l=n(h)},{"./renderers/canvas/CanvasRenderer":77,"./renderers/webgl/WebGLRenderer":84,"./utils":124}],46:[function(t,e,r){"use strict";r.__esModule=!0;r.VERSION="4.5.6",r.PI_2=2*Math.PI,r.RAD_TO_DEG=180/Math.PI,r.DEG_TO_RAD=Math.PI/180,r.RENDERER_TYPE={UNKNOWN:0,WEBGL:1,CANVAS:2},r.BLEND_MODES={NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16,NORMAL_NPM:17,ADD_NPM:18,SCREEN_NPM:19},r.DRAW_MODES={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},r.SCALE_MODES={LINEAR:0,NEAREST:1},r.WRAP_MODES={CLAMP:0,REPEAT:1,MIRRORED_REPEAT:2},r.GC_MODES={AUTO:0,MANUAL:1},r.URL_FILE_EXTENSION=/\.(\w{3,4})(?:$|\?|#)/i,r.DATA_URI=/^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;(charset=[\w-]+|base64))?,(.*)/i,r.SVG_SIZE=/<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i,r.SHAPES={POLY:0,RECT:1,CIRC:2,ELIP:3,RREC:4},r.PRECISION={LOW:"lowp",MEDIUM:"mediump",HIGH:"highp"},r.TRANSFORM_MODE={STATIC:0,DYNAMIC:1},r.TEXT_GRADIENT={LINEAR_VERTICAL:0,LINEAR_HORIZONTAL:1},r.UPDATE_PRIORITY={INTERACTION:50,HIGH:25,NORMAL:0,LOW:-25,UTILITY:-50}},{}],47:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../math"),o=function(){function t(){n(this,t),this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null}return t.prototype.isEmpty=function(){return this.minX>this.maxX||this.minY>this.maxY},t.prototype.clear=function(){this.updateID++,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0},t.prototype.getRectangle=function(t){return this.minX>this.maxX||this.minY>this.maxY?i.Rectangle.EMPTY:(t=t||new i.Rectangle(0,0,1,1),t.x=this.minX,t.y=this.minY,t.width=this.maxX-this.minX,t.height=this.maxY-this.minY,t)},t.prototype.addPoint=function(t){this.minX=Math.min(this.minX,t.x),this.maxX=Math.max(this.maxX,t.x),this.minY=Math.min(this.minY,t.y),this.maxY=Math.max(this.maxY,t.y)},t.prototype.addQuad=function(t){var e=this.minX,r=this.minY,n=this.maxX,i=this.maxY,o=t[0],s=t[1];e=o<e?o:e,r=s<r?s:r,n=o>n?o:n,i=s>i?s:i,o=t[2],s=t[3],e=o<e?o:e,r=s<r?s:r,n=o>n?o:n,i=s>i?s:i,o=t[4],s=t[5],e=o<e?o:e,r=s<r?s:r,n=o>n?o:n,i=s>i?s:i,o=t[6],s=t[7],e=o<e?o:e,r=s<r?s:r,n=o>n?o:n,i=s>i?s:i,this.minX=e,this.minY=r,this.maxX=n,this.maxY=i},t.prototype.addFrame=function(t,e,r,n,i){var o=t.worldTransform,s=o.a,a=o.b,u=o.c,h=o.d,l=o.tx,c=o.ty,d=this.minX,f=this.minY,p=this.maxX,v=this.maxY,y=s*e+u*r+l,g=a*e+h*r+c;d=y<d?y:d,f=g<f?g:f,p=y>p?y:p,v=g>v?g:v,y=s*n+u*r+l,g=a*n+h*r+c,d=y<d?y:d,f=g<f?g:f,p=y>p?y:p,v=g>v?g:v,y=s*e+u*i+l,g=a*e+h*i+c,d=y<d?y:d,f=g<f?g:f,p=y>p?y:p,v=g>v?g:v,y=s*n+u*i+l,g=a*n+h*i+c,d=y<d?y:d,f=g<f?g:f,p=y>p?y:p,v=g>v?g:v,this.minX=d,this.minY=f,this.maxX=p,this.maxY=v},t.prototype.addVertices=function(t,e,r,n){for(var i=t.worldTransform,o=i.a,s=i.b,a=i.c,u=i.d,h=i.tx,l=i.ty,c=this.minX,d=this.minY,f=this.maxX,p=this.maxY,v=r;v<n;v+=2){var y=e[v],g=e[v+1],m=o*y+a*g+h,_=u*g+s*y+l;c=m<c?m:c,d=_<d?_:d,f=m>f?m:f,p=_>p?_:p}this.minX=c,this.minY=d,this.maxX=f,this.maxY=p},t.prototype.addBounds=function(t){var e=this.minX,r=this.minY,n=this.maxX,i=this.maxY;this.minX=t.minX<e?t.minX:e,this.minY=t.minY<r?t.minY:r,this.maxX=t.maxX>n?t.maxX:n,this.maxY=t.maxY>i?t.maxY:i},t.prototype.addBoundsMask=function(t,e){var r=t.minX>e.minX?t.minX:e.minX,n=t.minY>e.minY?t.minY:e.minY,i=t.maxX<e.maxX?t.maxX:e.maxX,o=t.maxY<e.maxY?t.maxY:e.maxY;if(r<=i&&n<=o){var s=this.minX,a=this.minY,u=this.maxX,h=this.maxY;this.minX=r<s?r:s,this.minY=n<a?n:a,this.maxX=i>u?i:u,this.maxY=o>h?o:h}},t.prototype.addBoundsArea=function(t,e){var r=t.minX>e.x?t.minX:e.x,n=t.minY>e.y?t.minY:e.y,i=t.maxX<e.x+e.width?t.maxX:e.x+e.width,o=t.maxY<e.y+e.height?t.maxY:e.y+e.height;if(r<=i&&n<=o){var s=this.minX,a=this.minY,u=this.maxX,h=this.maxY;this.minX=r<s?r:s,this.minY=n<a?n:a,this.maxX=i>u?i:u,this.maxY=o>h?o:h}},t}();r.default=o},{"../math":70}],48:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../utils"),u=t("./DisplayObject"),h=function(t){return t&&t.__esModule?t:{default:t}}(u),l=function(t){function e(){n(this,e);var r=i(this,t.call(this));return r.children=[],r}return o(e,t),e.prototype.onChildrenChange=function(){},e.prototype.addChild=function(t){var e=arguments.length;if(e>1)for(var r=0;r<e;r++)this.addChild(arguments[r]);else t.parent&&t.parent.removeChild(t),t.parent=this,t.transform._parentID=-1,this.children.push(t),this._boundsID++,this.onChildrenChange(this.children.length-1),t.emit("added",this);return t},e.prototype.addChildAt=function(t,e){if(e<0||e>this.children.length)throw new Error(t+"addChildAt: The index "+e+" supplied is out of bounds "+this.children.length);return t.parent&&t.parent.removeChild(t),t.parent=this,t.transform._parentID=-1,this.children.splice(e,0,t),this._boundsID++,this.onChildrenChange(e),t.emit("added",this),t},e.prototype.swapChildren=function(t,e){if(t!==e){var r=this.getChildIndex(t),n=this.getChildIndex(e);this.children[r]=e,this.children[n]=t,this.onChildrenChange(r<n?r:n)}},e.prototype.getChildIndex=function(t){var e=this.children.indexOf(t);if(-1===e)throw new Error("The supplied DisplayObject must be a child of the caller");return e},e.prototype.setChildIndex=function(t,e){if(e<0||e>=this.children.length)throw new Error("The supplied index is out of bounds");var r=this.getChildIndex(t);(0,a.removeItems)(this.children,r,1),this.children.splice(e,0,t),this.onChildrenChange(e)},e.prototype.getChildAt=function(t){if(t<0||t>=this.children.length)throw new Error("getChildAt: Index ("+t+") does not exist.");return this.children[t]},e.prototype.removeChild=function(t){var e=arguments.length;if(e>1)for(var r=0;r<e;r++)this.removeChild(arguments[r]);else{var n=this.children.indexOf(t);if(-1===n)return null;t.parent=null,t.transform._parentID=-1,(0,a.removeItems)(this.children,n,1),this._boundsID++,this.onChildrenChange(n),t.emit("removed",this)}return t},e.prototype.removeChildAt=function(t){var e=this.getChildAt(t);return e.parent=null,e.transform._parentID=-1,(0,a.removeItems)(this.children,t,1),this._boundsID++,this.onChildrenChange(t),e.emit("removed",this),e},e.prototype.removeChildren=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments[1],r=t,n="number"==typeof e?e:this.children.length,i=n-r,o=void 0;if(i>0&&i<=n){o=this.children.splice(r,i);for(var s=0;s<o.length;++s)o[s].parent=null,o[s].transform&&(o[s].transform._parentID=-1);this._boundsID++,this.onChildrenChange(t);for(var a=0;a<o.length;++a)o[a].emit("removed",this);return o}if(0===i&&0===this.children.length)return[];throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},e.prototype.updateTransform=function(){this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(var t=0,e=this.children.length;t<e;++t){var r=this.children[t];r.visible&&r.updateTransform()}},e.prototype.calculateBounds=function(){this._bounds.clear(),this._calculateBounds();for(var t=0;t<this.children.length;t++){var e=this.children[t];e.visible&&e.renderable&&(e.calculateBounds(),e._mask?(e._mask.calculateBounds(),this._bounds.addBoundsMask(e._bounds,e._mask._bounds)):e.filterArea?this._bounds.addBoundsArea(e._bounds,e.filterArea):this._bounds.addBounds(e._bounds))}this._lastBoundsID=this._boundsID},e.prototype._calculateBounds=function(){},e.prototype.renderWebGL=function(t){if(this.visible&&!(this.worldAlpha<=0)&&this.renderable)if(this._mask||this._filters)this.renderAdvancedWebGL(t);else{this._renderWebGL(t);for(var e=0,r=this.children.length;e<r;++e)this.children[e].renderWebGL(t)}},e.prototype.renderAdvancedWebGL=function(t){t.flush();var e=this._filters,r=this._mask;if(e){this._enabledFilters||(this._enabledFilters=[]),this._enabledFilters.length=0;for(var n=0;n<e.length;n++)e[n].enabled&&this._enabledFilters.push(e[n]);this._enabledFilters.length&&t.filterManager.pushFilter(this,this._enabledFilters)}r&&t.maskManager.pushMask(this,this._mask),this._renderWebGL(t);for(var i=0,o=this.children.length;i<o;i++)this.children[i].renderWebGL(t);t.flush(),r&&t.maskManager.popMask(this,this._mask),e&&this._enabledFilters&&this._enabledFilters.length&&t.filterManager.popFilter()},e.prototype._renderWebGL=function(t){},e.prototype._renderCanvas=function(t){},e.prototype.renderCanvas=function(t){if(this.visible&&!(this.worldAlpha<=0)&&this.renderable){this._mask&&t.maskManager.pushMask(this._mask),this._renderCanvas(t);for(var e=0,r=this.children.length;e<r;++e)this.children[e].renderCanvas(t);this._mask&&t.maskManager.popMask(t)}},e.prototype.destroy=function(e){t.prototype.destroy.call(this);var r="boolean"==typeof e?e:e&&e.children,n=this.removeChildren(0,this.children.length);if(r)for(var i=0;i<n.length;++i)n[i].destroy(e)},s(e,[{key:"width",get:function(){return this.scale.x*this.getLocalBounds().width},set:function(t){var e=this.getLocalBounds().width;this.scale.x=0!==e?t/e:1,this._width=t}},{key:"height",get:function(){return this.scale.y*this.getLocalBounds().height},set:function(t){var e=this.getLocalBounds().height;this.scale.y=0!==e?t/e:1,this._height=t}}]),e}(h.default);r.default=l,l.prototype.containerUpdateTransform=l.prototype.updateTransform},{"../utils":124,"./DisplayObject":49}],49:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("eventemitter3"),h=n(u),l=t("../const"),c=t("../settings"),d=n(c),f=t("./TransformStatic"),p=n(f),v=t("./Transform"),y=n(v),g=t("./Bounds"),m=n(g),_=t("../math"),b=function(t){function e(){i(this,e);var r=o(this,t.call(this)),n=d.default.TRANSFORM_MODE===l.TRANSFORM_MODE.STATIC?p.default:y.default;return r.tempDisplayObjectParent=null,r.transform=new n,r.alpha=1,r.visible=!0,r.renderable=!0,r.parent=null,r.worldAlpha=1,r.filterArea=null,r._filters=null,r._enabledFilters=null,r._bounds=new m.default,r._boundsID=0,r._lastBoundsID=-1,r._boundsRect=null,r._localBoundsRect=null,r._mask=null,r._destroyed=!1,r}return s(e,t),e.prototype.updateTransform=function(){this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha,this._bounds.updateID++},e.prototype._recursivePostUpdateTransform=function(){this.parent?(this.parent._recursivePostUpdateTransform(),this.transform.updateTransform(this.parent.transform)):this.transform.updateTransform(this._tempDisplayObjectParent.transform)},e.prototype.getBounds=function(t,e){return t||(this.parent?(this._recursivePostUpdateTransform(),this.updateTransform()):(this.parent=this._tempDisplayObjectParent,this.updateTransform(),this.parent=null)),this._boundsID!==this._lastBoundsID&&this.calculateBounds(),e||(this._boundsRect||(this._boundsRect=new _.Rectangle),e=this._boundsRect),this._bounds.getRectangle(e)},e.prototype.getLocalBounds=function(t){var e=this.transform,r=this.parent;this.parent=null,this.transform=this._tempDisplayObjectParent.transform,t||(this._localBoundsRect||(this._localBoundsRect=new _.Rectangle),t=this._localBoundsRect);var n=this.getBounds(!1,t);return this.parent=r,this.transform=e,n},e.prototype.toGlobal=function(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.apply(t,e)},e.prototype.toLocal=function(t,e,r,n){return e&&(t=e.toGlobal(t,r,n)),n||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.applyInverse(t,r)},e.prototype.renderWebGL=function(t){},e.prototype.renderCanvas=function(t){},e.prototype.setParent=function(t){if(!t||!t.addChild)throw new Error("setParent: Argument must be a Container");return t.addChild(this),t},e.prototype.setTransform=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:0,u=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0;return this.position.x=t,this.position.y=e,this.scale.x=r||1,this.scale.y=n||1,this.rotation=i,this.skew.x=o,this.skew.y=s,this.pivot.x=a,this.pivot.y=u,this},e.prototype.destroy=function(){this.removeAllListeners(),this.parent&&this.parent.removeChild(this),this.transform=null,this.parent=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.filterArea=null,this.interactive=!1,this.interactiveChildren=!1,this._destroyed=!0},a(e,[{key:"_tempDisplayObjectParent",get:function(){return null===this.tempDisplayObjectParent&&(this.tempDisplayObjectParent=new e),this.tempDisplayObjectParent}},{key:"x",get:function(){return this.position.x},set:function(t){this.transform.position.x=t}},{key:"y",get:function(){return this.position.y},set:function(t){this.transform.position.y=t}},{key:"worldTransform",get:function(){return this.transform.worldTransform}},{key:"localTransform",get:function(){return this.transform.localTransform}},{key:"position",get:function(){return this.transform.position},set:function(t){this.transform.position.copy(t)}},{key:"scale",get:function(){return this.transform.scale},set:function(t){this.transform.scale.copy(t)}},{key:"pivot",get:function(){return this.transform.pivot},set:function(t){this.transform.pivot.copy(t)}},{key:"skew",get:function(){return this.transform.skew},set:function(t){this.transform.skew.copy(t)}},{key:"rotation",get:function(){return this.transform.rotation},set:function(t){this.transform.rotation=t}},{key:"worldVisible",get:function(){var t=this;do{if(!t.visible)return!1;t=t.parent}while(t);return!0}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask&&(this._mask.renderable=!0),this._mask=t,this._mask&&(this._mask.renderable=!1)}},{key:"filters",get:function(){return this._filters&&this._filters.slice()},set:function(t){this._filters=t&&t.slice()}}]),e}(h.default);r.default=b,b.prototype.displayObjectUpdateTransform=b.prototype.updateTransform},{"../const":46,"../math":70,"../settings":101,"./Bounds":47,"./Transform":50,"./TransformStatic":52,eventemitter3:3}],50:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../math"),u=t("./TransformBase"),h=function(t){return t&&t.__esModule?t:{default:t}}(u),l=function(t){function e(){n(this,e);var r=i(this,t.call(this));return r.position=new a.Point(0,0),r.scale=new a.Point(1,1),r.skew=new a.ObservablePoint(r.updateSkew,r,0,0),r.pivot=new a.Point(0,0),r._rotation=0,r._cx=1,r._sx=0,r._cy=0,r._sy=1,r}return o(e,t),e.prototype.updateSkew=function(){this._cx=Math.cos(this._rotation+this.skew._y),this._sx=Math.sin(this._rotation+this.skew._y),this._cy=-Math.sin(this._rotation-this.skew._x),this._sy=Math.cos(this._rotation-this.skew._x)},e.prototype.updateLocalTransform=function(){var t=this.localTransform;t.a=this._cx*this.scale.x,t.b=this._sx*this.scale.x,t.c=this._cy*this.scale.y,t.d=this._sy*this.scale.y,t.tx=this.position.x-(this.pivot.x*t.a+this.pivot.y*t.c),t.ty=this.position.y-(this.pivot.x*t.b+this.pivot.y*t.d)},e.prototype.updateTransform=function(t){var e=this.localTransform;e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d);var r=t.worldTransform,n=this.worldTransform;n.a=e.a*r.a+e.b*r.c,n.b=e.a*r.b+e.b*r.d,n.c=e.c*r.a+e.d*r.c,n.d=e.c*r.b+e.d*r.d,n.tx=e.tx*r.a+e.ty*r.c+r.tx,n.ty=e.tx*r.b+e.ty*r.d+r.ty,this._worldID++},e.prototype.setFromMatrix=function(t){t.decompose(this)},s(e,[{key:"rotation",get:function(){return this._rotation},set:function(t){this._rotation=t,this.updateSkew()}}]),e}(h.default);r.default=l},{"../math":70,"./TransformBase":51}],51:[function(t,e,r){"use strict";function n(t,e){ | |
if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../math"),o=function(){function t(){n(this,t),this.worldTransform=new i.Matrix,this.localTransform=new i.Matrix,this._worldID=0,this._parentID=0}return t.prototype.updateLocalTransform=function(){},t.prototype.updateTransform=function(t){var e=t.worldTransform,r=this.worldTransform,n=this.localTransform;r.a=n.a*e.a+n.b*e.c,r.b=n.a*e.b+n.b*e.d,r.c=n.c*e.a+n.d*e.c,r.d=n.c*e.b+n.d*e.d,r.tx=n.tx*e.a+n.ty*e.c+e.tx,r.ty=n.tx*e.b+n.ty*e.d+e.ty,this._worldID++},t}();r.default=o,o.prototype.updateWorldTransform=o.prototype.updateTransform,o.IDENTITY=new o},{"../math":70}],52:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../math"),u=t("./TransformBase"),h=function(t){return t&&t.__esModule?t:{default:t}}(u),l=function(t){function e(){n(this,e);var r=i(this,t.call(this));return r.position=new a.ObservablePoint(r.onChange,r,0,0),r.scale=new a.ObservablePoint(r.onChange,r,1,1),r.pivot=new a.ObservablePoint(r.onChange,r,0,0),r.skew=new a.ObservablePoint(r.updateSkew,r,0,0),r._rotation=0,r._cx=1,r._sx=0,r._cy=0,r._sy=1,r._localID=0,r._currentLocalID=0,r}return o(e,t),e.prototype.onChange=function(){this._localID++},e.prototype.updateSkew=function(){this._cx=Math.cos(this._rotation+this.skew._y),this._sx=Math.sin(this._rotation+this.skew._y),this._cy=-Math.sin(this._rotation-this.skew._x),this._sy=Math.cos(this._rotation-this.skew._x),this._localID++},e.prototype.updateLocalTransform=function(){var t=this.localTransform;this._localID!==this._currentLocalID&&(t.a=this._cx*this.scale._x,t.b=this._sx*this.scale._x,t.c=this._cy*this.scale._y,t.d=this._sy*this.scale._y,t.tx=this.position._x-(this.pivot._x*t.a+this.pivot._y*t.c),t.ty=this.position._y-(this.pivot._x*t.b+this.pivot._y*t.d),this._currentLocalID=this._localID,this._parentID=-1)},e.prototype.updateTransform=function(t){var e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale._x,e.b=this._sx*this.scale._x,e.c=this._cy*this.scale._y,e.d=this._sy*this.scale._y,e.tx=this.position._x-(this.pivot._x*e.a+this.pivot._y*e.c),e.ty=this.position._y-(this.pivot._x*e.b+this.pivot._y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==t._worldID){var r=t.worldTransform,n=this.worldTransform;n.a=e.a*r.a+e.b*r.c,n.b=e.a*r.b+e.b*r.d,n.c=e.c*r.a+e.d*r.c,n.d=e.c*r.b+e.d*r.d,n.tx=e.tx*r.a+e.ty*r.c+r.tx,n.ty=e.tx*r.b+e.ty*r.d+r.ty,this._parentID=t._worldID,this._worldID++}},e.prototype.setFromMatrix=function(t){t.decompose(this),this._localID++},s(e,[{key:"rotation",get:function(){return this._rotation},set:function(t){this._rotation=t,this.updateSkew()}}]),e}(h.default);r.default=l},{"../math":70,"./TransformBase":51}],53:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../display/Container"),u=n(a),h=t("../textures/RenderTexture"),l=n(h),c=t("../textures/Texture"),d=n(c),f=t("./GraphicsData"),p=n(f),v=t("../sprites/Sprite"),y=n(v),g=t("../math"),m=t("../utils"),_=t("../const"),b=t("../display/Bounds"),x=n(b),T=t("./utils/bezierCurveTo"),w=n(T),E=t("../renderers/canvas/CanvasRenderer"),S=n(E),O=void 0,M=new g.Matrix,P=new g.Point,C=new Float32Array(4),R=new Float32Array(4),A=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];i(this,e);var n=o(this,t.call(this));return n.fillAlpha=1,n.lineWidth=0,n.nativeLines=r,n.lineColor=0,n.graphicsData=[],n.tint=16777215,n._prevTint=16777215,n.blendMode=_.BLEND_MODES.NORMAL,n.currentPath=null,n._webGL={},n.isMask=!1,n.boundsPadding=0,n._localBounds=new x.default,n.dirty=0,n.fastRectDirty=-1,n.clearDirty=0,n.boundsDirty=-1,n.cachedSpriteDirty=!1,n._spriteRect=null,n._fastRect=!1,n}return s(e,t),e.prototype.clone=function(){var t=new e;t.renderable=this.renderable,t.fillAlpha=this.fillAlpha,t.lineWidth=this.lineWidth,t.lineColor=this.lineColor,t.tint=this.tint,t.blendMode=this.blendMode,t.isMask=this.isMask,t.boundsPadding=this.boundsPadding,t.dirty=0,t.cachedSpriteDirty=this.cachedSpriteDirty;for(var r=0;r<this.graphicsData.length;++r)t.graphicsData.push(this.graphicsData[r].clone());return t.currentPath=t.graphicsData[t.graphicsData.length-1],t.updateLocalBounds(),t},e.prototype.lineStyle=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(this.lineWidth=t,this.lineColor=e,this.lineAlpha=r,this.currentPath)if(this.currentPath.shape.points.length){var n=new g.Polygon(this.currentPath.shape.points.slice(-2));n.closed=!1,this.drawShape(n)}else this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha;return this},e.prototype.moveTo=function(t,e){var r=new g.Polygon([t,e]);return r.closed=!1,this.drawShape(r),this},e.prototype.lineTo=function(t,e){return this.currentPath.shape.points.push(t,e),this.dirty++,this},e.prototype.quadraticCurveTo=function(t,e,r,n){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var i=this.currentPath.shape.points,o=0,s=0;0===i.length&&this.moveTo(0,0);for(var a=i[i.length-2],u=i[i.length-1],h=1;h<=20;++h){var l=h/20;o=a+(t-a)*l,s=u+(e-u)*l,i.push(o+(t+(r-t)*l-o)*l,s+(e+(n-e)*l-s)*l)}return this.dirty++,this},e.prototype.bezierCurveTo=function(t,e,r,n,i,o){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var s=this.currentPath.shape.points,a=s[s.length-2],u=s[s.length-1];return s.length-=2,(0,w.default)(a,u,t,e,r,n,i,o,s),this.dirty++,this},e.prototype.arcTo=function(t,e,r,n,i){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(t,e):this.moveTo(t,e);var o=this.currentPath.shape.points,s=o[o.length-2],a=o[o.length-1],u=a-e,h=s-t,l=n-e,c=r-t,d=Math.abs(u*c-h*l);if(d<1e-8||0===i)o[o.length-2]===t&&o[o.length-1]===e||o.push(t,e);else{var f=u*u+h*h,p=l*l+c*c,v=u*l+h*c,y=i*Math.sqrt(f)/d,g=i*Math.sqrt(p)/d,m=y*v/f,_=g*v/p,b=y*c+g*h,x=y*l+g*u,T=h*(g+m),w=u*(g+m),E=c*(y+_),S=l*(y+_),O=Math.atan2(w-x,T-b),M=Math.atan2(S-x,E-b);this.arc(b+t,x+e,i,O,M,h*l>c*u)}return this.dirty++,this},e.prototype.arc=function(t,e,r,n,i){var o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(n===i)return this;!o&&i<=n?i+=2*Math.PI:o&&n<=i&&(n+=2*Math.PI);var s=i-n,a=40*Math.ceil(Math.abs(s)/(2*Math.PI));if(0===s)return this;var u=t+Math.cos(n)*r,h=e+Math.sin(n)*r,l=this.currentPath?this.currentPath.shape.points:null;l?l[l.length-2]===u&&l[l.length-1]===h||l.push(u,h):(this.moveTo(u,h),l=this.currentPath.shape.points);for(var c=s/(2*a),d=2*c,f=Math.cos(c),p=Math.sin(c),v=a-1,y=v%1/v,g=0;g<=v;++g){var m=g+y*g,_=c+n+d*m,b=Math.cos(_),x=-Math.sin(_);l.push((f*b+p*x)*r+t,(f*-x+p*b)*r+e)}return this.dirty++,this},e.prototype.beginFill=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.filling=!0,this.fillColor=t,this.fillAlpha=e,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},e.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},e.prototype.drawRect=function(t,e,r,n){return this.drawShape(new g.Rectangle(t,e,r,n)),this},e.prototype.drawRoundedRect=function(t,e,r,n,i){return this.drawShape(new g.RoundedRectangle(t,e,r,n,i)),this},e.prototype.drawCircle=function(t,e,r){return this.drawShape(new g.Circle(t,e,r)),this},e.prototype.drawEllipse=function(t,e,r,n){return this.drawShape(new g.Ellipse(t,e,r,n)),this},e.prototype.drawPolygon=function(t){var e=t,r=!0;if(e instanceof g.Polygon&&(r=e.closed,e=e.points),!Array.isArray(e)){e=new Array(arguments.length);for(var n=0;n<e.length;++n)e[n]=arguments[n]}var i=new g.Polygon(e);return i.closed=r,this.drawShape(i),this},e.prototype.clear=function(){return(this.lineWidth||this.filling||this.graphicsData.length>0)&&(this.lineWidth=0,this.filling=!1,this.boundsDirty=-1,this.dirty++,this.clearDirty++,this.graphicsData.length=0),this.currentPath=null,this._spriteRect=null,this},e.prototype.isFastRect=function(){return 1===this.graphicsData.length&&this.graphicsData[0].shape.type===_.SHAPES.RECT&&!this.graphicsData[0].lineWidth},e.prototype._renderWebGL=function(t){this.dirty!==this.fastRectDirty&&(this.fastRectDirty=this.dirty,this._fastRect=this.isFastRect()),this._fastRect?this._renderSpriteRect(t):(t.setObjectRenderer(t.plugins.graphics),t.plugins.graphics.render(this))},e.prototype._renderSpriteRect=function(t){var e=this.graphicsData[0].shape;this._spriteRect||(this._spriteRect=new y.default(new d.default(d.default.WHITE)));var r=this._spriteRect;if(16777215===this.tint)r.tint=this.graphicsData[0].fillColor;else{var n=C,i=R;(0,m.hex2rgb)(this.graphicsData[0].fillColor,n),(0,m.hex2rgb)(this.tint,i),n[0]*=i[0],n[1]*=i[1],n[2]*=i[2],r.tint=(0,m.rgb2hex)(n)}r.alpha=this.graphicsData[0].fillAlpha,r.worldAlpha=this.worldAlpha*r.alpha,r.blendMode=this.blendMode,r._texture._frame.width=e.width,r._texture._frame.height=e.height,r.transform.worldTransform=this.transform.worldTransform,r.anchor.set(-e.x/e.width,-e.y/e.height),r._onAnchorUpdate(),r._renderWebGL(t)},e.prototype._renderCanvas=function(t){!0!==this.isMask&&t.plugins.graphics.render(this)},e.prototype._calculateBounds=function(){this.boundsDirty!==this.dirty&&(this.boundsDirty=this.dirty,this.updateLocalBounds(),this.cachedSpriteDirty=!0);var t=this._localBounds;this._bounds.addFrame(this.transform,t.minX,t.minY,t.maxX,t.maxY)},e.prototype.containsPoint=function(t){this.worldTransform.applyInverse(t,P);for(var e=this.graphicsData,r=0;r<e.length;++r){var n=e[r];if(n.fill&&(n.shape&&n.shape.contains(P.x,P.y))){if(n.holes)for(var i=0;i<n.holes.length;i++){var o=n.holes[i];if(o.contains(P.x,P.y))return!1}return!0}}return!1},e.prototype.updateLocalBounds=function(){var t=1/0,e=-1/0,r=1/0,n=-1/0;if(this.graphicsData.length)for(var i=0,o=0,s=0,a=0,u=0,h=0;h<this.graphicsData.length;h++){var l=this.graphicsData[h],c=l.type,d=l.lineWidth;if(i=l.shape,c===_.SHAPES.RECT||c===_.SHAPES.RREC)o=i.x-d/2,s=i.y-d/2,a=i.width+d,u=i.height+d,t=o<t?o:t,e=o+a>e?o+a:e,r=s<r?s:r,n=s+u>n?s+u:n;else if(c===_.SHAPES.CIRC)o=i.x,s=i.y,a=i.radius+d/2,u=i.radius+d/2,t=o-a<t?o-a:t,e=o+a>e?o+a:e,r=s-u<r?s-u:r,n=s+u>n?s+u:n;else if(c===_.SHAPES.ELIP)o=i.x,s=i.y,a=i.width+d/2,u=i.height+d/2,t=o-a<t?o-a:t,e=o+a>e?o+a:e,r=s-u<r?s-u:r,n=s+u>n?s+u:n;else for(var f=i.points,p=0,v=0,y=0,g=0,m=0,b=0,x=0,T=0,w=0;w+2<f.length;w+=2)o=f[w],s=f[w+1],p=f[w+2],v=f[w+3],y=Math.abs(p-o),g=Math.abs(v-s),u=d,(a=Math.sqrt(y*y+g*g))<1e-9||(m=(u/a*g+y)/2,b=(u/a*y+g)/2,x=(p+o)/2,T=(v+s)/2,t=x-m<t?x-m:t,e=x+m>e?x+m:e,r=T-b<r?T-b:r,n=T+b>n?T+b:n)}else t=0,e=0,r=0,n=0;var E=this.boundsPadding;this._localBounds.minX=t-E,this._localBounds.maxX=e+E,this._localBounds.minY=r-E,this._localBounds.maxY=n+E},e.prototype.drawShape=function(t){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null;var e=new p.default(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,this.nativeLines,t);return this.graphicsData.push(e),e.type===_.SHAPES.POLY&&(e.shape.closed=e.shape.closed||this.filling,this.currentPath=e),this.dirty++,e},e.prototype.generateCanvasTexture=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=this.getLocalBounds(),n=l.default.create(r.width,r.height,t,e);O||(O=new S.default),this.transform.updateLocalTransform(),this.transform.localTransform.copy(M),M.invert(),M.tx-=r.x,M.ty-=r.y,O.render(this,n,!0,M);var i=d.default.fromCanvas(n.baseTexture._canvasRenderTarget.canvas,t,"graphics");return i.baseTexture.resolution=e,i.baseTexture.update(),i},e.prototype.closePath=function(){var t=this.currentPath;return t&&t.shape&&t.shape.close(),this},e.prototype.addHole=function(){var t=this.graphicsData.pop();return this.currentPath=this.graphicsData[this.graphicsData.length-1],this.currentPath.addHole(t.shape),this.currentPath=null,this},e.prototype.destroy=function(e){t.prototype.destroy.call(this,e);for(var r=0;r<this.graphicsData.length;++r)this.graphicsData[r].destroy();for(var n in this._webgl)for(var i=0;i<this._webgl[n].data.length;++i)this._webgl[n].data[i].destroy();this._spriteRect&&this._spriteRect.destroy(),this.graphicsData=null,this.currentPath=null,this._webgl=null,this._localBounds=null},e}(u.default);r.default=A,A._SPRITE_TEXTURE=null},{"../const":46,"../display/Bounds":47,"../display/Container":48,"../math":70,"../renderers/canvas/CanvasRenderer":77,"../sprites/Sprite":102,"../textures/RenderTexture":113,"../textures/Texture":115,"../utils":124,"./GraphicsData":54,"./utils/bezierCurveTo":56}],54:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e,r,i,o,s,a,u,h){n(this,t),this.lineWidth=e,this.nativeLines=u,this.lineColor=r,this.lineAlpha=i,this._lineTint=r,this.fillColor=o,this.fillAlpha=s,this._fillTint=o,this.fill=a,this.holes=[],this.shape=h,this.type=h.type}return t.prototype.clone=function(){return new t(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.nativeLines,this.shape)},t.prototype.addHole=function(t){this.holes.push(t)},t.prototype.destroy=function(){this.shape=null,this.holes=null},t}();r.default=i},{}],55:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../renderers/canvas/CanvasRenderer"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(e){n(this,t),this.renderer=e}return t.prototype.render=function(t){var e=this.renderer,r=e.context,n=t.worldAlpha,i=t.transform.worldTransform,o=e.resolution;this._prevTint!==this.tint&&(this.dirty=!0),r.setTransform(i.a*o,i.b*o,i.c*o,i.d*o,i.tx*o,i.ty*o),t.dirty&&(this.updateGraphicsTint(t),t.dirty=!1),e.setBlendMode(t.blendMode);for(var a=0;a<t.graphicsData.length;a++){var u=t.graphicsData[a],h=u.shape,l=u._fillTint,c=u._lineTint;if(r.lineWidth=u.lineWidth,u.type===s.SHAPES.POLY){r.beginPath(),this.renderPolygon(h.points,h.closed,r);for(var d=0;d<u.holes.length;d++)this.renderPolygon(u.holes[d].points,!0,r);u.fill&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke())}else if(u.type===s.SHAPES.RECT)(u.fillColor||0===u.fillColor)&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fillRect(h.x,h.y,h.width,h.height)),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.strokeRect(h.x,h.y,h.width,h.height));else if(u.type===s.SHAPES.CIRC)r.beginPath(),r.arc(h.x,h.y,h.radius,0,2*Math.PI),r.closePath(),u.fill&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke());else if(u.type===s.SHAPES.ELIP){var f=2*h.width,p=2*h.height,v=h.x-f/2,y=h.y-p/2;r.beginPath();var g=f/2*.5522848,m=p/2*.5522848,_=v+f,b=y+p,x=v+f/2,T=y+p/2;r.moveTo(v,T),r.bezierCurveTo(v,T-m,x-g,y,x,y),r.bezierCurveTo(x+g,y,_,T-m,_,T),r.bezierCurveTo(_,T+m,x+g,b,x,b),r.bezierCurveTo(x-g,b,v,T+m,v,T),r.closePath(),u.fill&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke())}else if(u.type===s.SHAPES.RREC){var w=h.x,E=h.y,S=h.width,O=h.height,M=h.radius,P=Math.min(S,O)/2|0;M=M>P?P:M,r.beginPath(),r.moveTo(w,E+M),r.lineTo(w,E+O-M),r.quadraticCurveTo(w,E+O,w+M,E+O),r.lineTo(w+S-M,E+O),r.quadraticCurveTo(w+S,E+O,w+S,E+O-M),r.lineTo(w+S,E+M),r.quadraticCurveTo(w+S,E,w+S-M,E),r.lineTo(w+M,E),r.quadraticCurveTo(w,E,w,E+M),r.closePath(),(u.fillColor||0===u.fillColor)&&(r.globalAlpha=u.fillAlpha*n,r.fillStyle="#"+("00000"+(0|l).toString(16)).substr(-6),r.fill()),u.lineWidth&&(r.globalAlpha=u.lineAlpha*n,r.strokeStyle="#"+("00000"+(0|c).toString(16)).substr(-6),r.stroke())}}},t.prototype.updateGraphicsTint=function(t){t._prevTint=t.tint;for(var e=(t.tint>>16&255)/255,r=(t.tint>>8&255)/255,n=(255&t.tint)/255,i=0;i<t.graphicsData.length;++i){var o=t.graphicsData[i],s=0|o.fillColor,a=0|o.lineColor;o._fillTint=((s>>16&255)/255*e*255<<16)+((s>>8&255)/255*r*255<<8)+(255&s)/255*n*255,o._lineTint=((a>>16&255)/255*e*255<<16)+((a>>8&255)/255*r*255<<8)+(255&a)/255*n*255}},t.prototype.renderPolygon=function(t,e,r){r.moveTo(t[0],t[1]);for(var n=1;n<t.length/2;++n)r.lineTo(t[2*n],t[2*n+1]);e&&r.closePath()},t.prototype.destroy=function(){this.renderer=null},t}();r.default=a,o.default.registerPlugin("graphics",a)},{"../../const":46,"../../renderers/canvas/CanvasRenderer":77}],56:[function(t,e,r){"use strict";function n(t,e,r,n,i,o,s,a){var u=arguments.length>8&&void 0!==arguments[8]?arguments[8]:[],h=0,l=0,c=0,d=0,f=0;u.push(t,e);for(var p=1,v=0;p<=20;++p)v=p/20,h=1-v,l=h*h,c=l*h,d=v*v,f=d*v,u.push(c*t+3*l*v*r+3*h*d*i+f*s,c*e+3*l*v*n+3*h*d*o+f*a);return u}r.__esModule=!0,r.default=n},{}],57:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../../utils"),u=t("../../const"),h=t("../../renderers/webgl/utils/ObjectRenderer"),l=n(h),c=t("../../renderers/webgl/WebGLRenderer"),d=n(c),f=t("./WebGLGraphicsData"),p=n(f),v=t("./shaders/PrimitiveShader"),y=n(v),g=t("./utils/buildPoly"),m=n(g),_=t("./utils/buildRectangle"),b=n(_),x=t("./utils/buildRoundedRectangle"),T=n(x),w=t("./utils/buildCircle"),E=n(w),S=function(t){function e(r){i(this,e);var n=o(this,t.call(this,r));return n.graphicsDataPool=[],n.primitiveShader=null,n.gl=r.gl,n.CONTEXT_UID=0,n}return s(e,t),e.prototype.onContextChange=function(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.primitiveShader=new y.default(this.gl)},e.prototype.destroy=function(){l.default.prototype.destroy.call(this);for(var t=0;t<this.graphicsDataPool.length;++t)this.graphicsDataPool[t].destroy();this.graphicsDataPool=null},e.prototype.render=function(t){var e=this.renderer,r=e.gl,n=void 0,i=t._webGL[this.CONTEXT_UID];i&&t.dirty===i.dirty||(this.updateGraphics(t),i=t._webGL[this.CONTEXT_UID]);var o=this.primitiveShader;e.bindShader(o),e.state.setBlendMode(t.blendMode);for(var s=0,u=i.data.length;s<u;s++){n=i.data[s];var h=n.shader;e.bindShader(h),h.uniforms.translationMatrix=t.transform.worldTransform.toArray(!0),h.uniforms.tint=(0,a.hex2rgb)(t.tint),h.uniforms.alpha=t.worldAlpha,e.bindVao(n.vao),n.nativeLines?r.drawArrays(r.LINES,0,n.points.length/6):n.vao.draw(r.TRIANGLE_STRIP,n.indices.length)}},e.prototype.updateGraphics=function(t){var e=this.renderer.gl,r=t._webGL[this.CONTEXT_UID];if(r||(r=t._webGL[this.CONTEXT_UID]={lastIndex:0,data:[],gl:e,clearDirty:-1,dirty:-1}),r.dirty=t.dirty,t.clearDirty!==r.clearDirty){r.clearDirty=t.clearDirty;for(var n=0;n<r.data.length;n++)this.graphicsDataPool.push(r.data[n]);r.data.length=0,r.lastIndex=0}for(var i=void 0,o=void 0,s=r.lastIndex;s<t.graphicsData.length;s++){var a=t.graphicsData[s];i=this.getWebGLData(r,0),a.nativeLines&&a.lineWidth&&(o=this.getWebGLData(r,0,!0),r.lastIndex++),a.type===u.SHAPES.POLY&&(0,m.default)(a,i,o),a.type===u.SHAPES.RECT?(0,b.default)(a,i,o):a.type===u.SHAPES.CIRC||a.type===u.SHAPES.ELIP?(0,E.default)(a,i,o):a.type===u.SHAPES.RREC&&(0,T.default)(a,i,o),r.lastIndex++}this.renderer.bindVao(null);for(var h=0;h<r.data.length;h++)i=r.data[h],i.dirty&&i.upload()},e.prototype.getWebGLData=function(t,e,r){var n=t.data[t.data.length-1];return(!n||n.nativeLines!==r||n.points.length>32e4)&&(n=this.graphicsDataPool.pop()||new p.default(this.renderer.gl,this.primitiveShader,this.renderer.state.attribsState),n.nativeLines=r,n.reset(e),t.data.push(n)),n.dirty=!0,n},e}(l.default);r.default=S,d.default.registerPlugin("graphics",S)},{"../../const":46,"../../renderers/webgl/WebGLRenderer":84,"../../renderers/webgl/utils/ObjectRenderer":94,"../../utils":124,"./WebGLGraphicsData":58,"./shaders/PrimitiveShader":59,"./utils/buildCircle":60,"./utils/buildPoly":62,"./utils/buildRectangle":63,"./utils/buildRoundedRectangle":64}],58:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("pixi-gl-core"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=function(){function t(e,r,i){n(this,t),this.gl=e,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=o.default.GLBuffer.createVertexBuffer(e),this.indexBuffer=o.default.GLBuffer.createIndexBuffer(e),this.dirty=!0,this.nativeLines=!1,this.glPoints=null,this.glIndices=null,this.shader=r,this.vao=new o.default.VertexArrayObject(e,i).addIndex(this.indexBuffer).addAttribute(this.buffer,r.attributes.aVertexPosition,e.FLOAT,!1,24,0).addAttribute(this.buffer,r.attributes.aColor,e.FLOAT,!1,24,8)}return t.prototype.reset=function(){this.points.length=0,this.indices.length=0},t.prototype.upload=function(){this.glPoints=new Float32Array(this.points),this.buffer.upload(this.glPoints),this.glIndices=new Uint16Array(this.indices),this.indexBuffer.upload(this.glIndices),this.dirty=!1},t.prototype.destroy=function(){this.color=null,this.points=null,this.indices=null,this.vao.destroy(),this.buffer.destroy(),this.indexBuffer.destroy(),this.gl=null,this.buffer=null,this.indexBuffer=null,this.glPoints=null,this.glIndices=null},t}();r.default=s},{"pixi-gl-core":15}],59:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../../Shader"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r){return n(this,e),i(this,t.call(this,r,["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform mat3 projectionMatrix;","uniform float alpha;","uniform vec3 tint;","varying vec4 vColor;","void main(void){"," gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"].join("\n"),["varying vec4 vColor;","void main(void){"," gl_FragColor = vColor;","}"].join("\n")))}return o(e,t),e}(a.default);r.default=u},{"../../../Shader":44}],60:[function(t,e,r){"use strict";function n(t,e,r){var n=t.shape,i=n.x,u=n.y,h=void 0,l=void 0;if(t.type===s.SHAPES.CIRC?(h=n.radius,l=n.radius):(h=n.width,l=n.height),0!==h&&0!==l){var c=Math.floor(30*Math.sqrt(n.radius))||Math.floor(15*Math.sqrt(n.width+n.height)),d=2*Math.PI/c;if(t.fill){var f=(0,a.hex2rgb)(t.fillColor),p=t.fillAlpha,v=f[0]*p,y=f[1]*p,g=f[2]*p,m=e.points,_=e.indices,b=m.length/6;_.push(b);for(var x=0;x<c+1;x++)m.push(i,u,v,y,g,p),m.push(i+Math.sin(d*x)*h,u+Math.cos(d*x)*l,v,y,g,p),_.push(b++,b++);_.push(b-1)}if(t.lineWidth){var T=t.points;t.points=[];for(var w=0;w<c+1;w++)t.points.push(i+Math.sin(d*w)*h,u+Math.cos(d*w)*l);(0,o.default)(t,e,r),t.points=T}}}r.__esModule=!0,r.default=n;var i=t("./buildLine"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../../const"),a=t("../../../utils")},{"../../../const":46,"../../../utils":124,"./buildLine":61}],61:[function(t,e,r){"use strict";function n(t,e){var r=t.points;if(0!==r.length){var n=new o.Point(r[0],r[1]),i=new o.Point(r[r.length-2],r[r.length-1]);if(n.x===i.x&&n.y===i.y){r=r.slice(),r.pop(),r.pop(),i=new o.Point(r[r.length-2],r[r.length-1]);var a=i.x+.5*(n.x-i.x),u=i.y+.5*(n.y-i.y);r.unshift(a,u),r.push(a,u)}var h=e.points,l=e.indices,c=r.length/2,d=r.length,f=h.length/6,p=t.lineWidth/2,v=(0,s.hex2rgb)(t.lineColor),y=t.lineAlpha,g=v[0]*y,m=v[1]*y,_=v[2]*y,b=r[0],x=r[1],T=r[2],w=r[3],E=0,S=0,O=-(x-w),M=b-T,P=0,C=0,R=0,A=0,I=Math.sqrt(O*O+M*M);O/=I,M/=I,O*=p,M*=p,h.push(b-O,x-M,g,m,_,y),h.push(b+O,x+M,g,m,_,y);for(var D=1;D<c-1;++D){b=r[2*(D-1)],x=r[2*(D-1)+1],T=r[2*D],w=r[2*D+1],E=r[2*(D+1)],S=r[2*(D+1)+1],O=-(x-w),M=b-T,I=Math.sqrt(O*O+M*M),O/=I,M/=I,O*=p,M*=p,P=-(w-S),C=T-E,I=Math.sqrt(P*P+C*C),P/=I,C/=I,P*=p,C*=p;var L=-M+x-(-M+w),N=-O+T-(-O+b),F=(-O+b)*(-M+w)-(-O+T)*(-M+x),B=-C+S-(-C+w),k=-P+T-(-P+E),j=(-P+E)*(-C+w)-(-P+T)*(-C+S),U=L*k-B*N;if(Math.abs(U)<.1)U+=10.1,h.push(T-O,w-M,g,m,_,y),h.push(T+O,w+M,g,m,_,y);else{var X=(N*j-k*F)/U,G=(B*F-L*j)/U;(X-T)*(X-T)+(G-w)*(G-w)>196*p*p?(R=O-P,A=M-C,I=Math.sqrt(R*R+A*A),R/=I,A/=I,R*=p,A*=p,h.push(T-R,w-A),h.push(g,m,_,y),h.push(T+R,w+A),h.push(g,m,_,y),h.push(T-R,w-A),h.push(g,m,_,y),d++):(h.push(X,G),h.push(g,m,_,y),h.push(T-(X-T),w-(G-w)),h.push(g,m,_,y))}}b=r[2*(c-2)],x=r[2*(c-2)+1],T=r[2*(c-1)],w=r[2*(c-1)+1],O=-(x-w),M=b-T,I=Math.sqrt(O*O+M*M),O/=I,M/=I,O*=p,M*=p,h.push(T-O,w-M),h.push(g,m,_,y),h.push(T+O,w+M),h.push(g,m,_,y),l.push(f);for(var W=0;W<d;++W)l.push(f++);l.push(f-1)}}function i(t,e){var r=0,n=t.points;if(0!==n.length){var i=e.points,o=n.length/2,a=(0,s.hex2rgb)(t.lineColor),u=t.lineAlpha,h=a[0]*u,l=a[1]*u,c=a[2]*u;for(r=1;r<o;r++){var d=n[2*(r-1)],f=n[2*(r-1)+1],p=n[2*r],v=n[2*r+1];i.push(d,f),i.push(h,l,c,u),i.push(p,v),i.push(h,l,c,u)}}}r.__esModule=!0,r.default=function(t,e,r){t.nativeLines?i(t,r):n(t,e)};var o=t("../../../math"),s=t("../../../utils")},{"../../../math":70,"../../../utils":124}],62:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e,r){t.points=t.shape.points.slice();var n=t.points;if(t.fill&&n.length>=6){for(var i=[],o=t.holes,u=0;u<o.length;u++){var l=o[u];i.push(n.length/2),n=n.concat(l.points)}var c=e.points,d=e.indices,f=n.length/2,p=(0,a.hex2rgb)(t.fillColor),v=t.fillAlpha,y=p[0]*v,g=p[1]*v,m=p[2]*v,_=(0,h.default)(n,i,2);if(!_)return;for(var b=c.length/6,x=0;x<_.length;x+=3)d.push(_[x]+b),d.push(_[x]+b),d.push(_[x+1]+b),d.push(_[x+2]+b),d.push(_[x+2]+b);for(var T=0;T<f;T++)c.push(n[2*T],n[2*T+1],y,g,m,v)}t.lineWidth>0&&(0,s.default)(t,e,r)}r.__esModule=!0,r.default=i;var o=t("./buildLine"),s=n(o),a=t("../../../utils"),u=t("earcut"),h=n(u)},{"../../../utils":124,"./buildLine":61,earcut:2}],63:[function(t,e,r){"use strict";function n(t,e,r){var n=t.shape,i=n.x,a=n.y,u=n.width,h=n.height;if(t.fill){var l=(0,s.hex2rgb)(t.fillColor),c=t.fillAlpha,d=l[0]*c,f=l[1]*c,p=l[2]*c,v=e.points,y=e.indices,g=v.length/6;v.push(i,a),v.push(d,f,p,c),v.push(i+u,a),v.push(d,f,p,c),v.push(i,a+h),v.push(d,f,p,c),v.push(i+u,a+h),v.push(d,f,p,c),y.push(g,g,g+1,g+2,g+3,g+3)}if(t.lineWidth){var m=t.points;t.points=[i,a,i+u,a,i+u,a+h,i,a+h,i,a],(0,o.default)(t,e,r),t.points=m}}r.__esModule=!0,r.default=n;var i=t("./buildLine"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../../utils")},{"../../../utils":124,"./buildLine":61}],64:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e,r){var n=t.shape,i=n.x,o=n.y,a=n.width,h=n.height,d=n.radius,f=[];if(f.push(i,o+d),s(i,o+h-d,i,o+h,i+d,o+h,f),s(i+a-d,o+h,i+a,o+h,i+a,o+h-d,f),s(i+a,o+d,i+a,o,i+a-d,o,f),s(i+d,o,i,o,i,o+d+1e-10,f),t.fill){for(var p=(0,c.hex2rgb)(t.fillColor),v=t.fillAlpha,y=p[0]*v,g=p[1]*v,m=p[2]*v,_=e.points,b=e.indices,x=_.length/6,T=(0,u.default)(f,null,2),w=0,E=T.length;w<E;w+=3)b.push(T[w]+x),b.push(T[w]+x),b.push(T[w+1]+x),b.push(T[w+2]+x),b.push(T[w+2]+x);for(var S=0,O=f.length;S<O;S++)_.push(f[S],f[++S],y,g,m,v)}if(t.lineWidth){var M=t.points;t.points=f,(0,l.default)(t,e,r),t.points=M}}function o(t,e,r){return t+(e-t)*r}function s(t,e,r,n,i,s){for(var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[],u=a,h=0,l=0,c=0,d=0,f=0,p=0,v=0,y=0;v<=20;++v)y=v/20,h=o(t,r,y),l=o(e,n,y),c=o(r,i,y),d=o(n,s,y),f=o(h,c,y),p=o(l,d,y),u.push(f,p);return u}r.__esModule=!0,r.default=i;var a=t("earcut"),u=n(a),h=t("./buildLine"),l=n(h),c=t("../../../utils")},{"../../../utils":124,"./buildLine":61,earcut:2}],65:[function(t,e,r){"use strict";function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function i(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0,r.autoDetectRenderer=r.Application=r.Filter=r.SpriteMaskFilter=r.Quad=r.RenderTarget=r.ObjectRenderer=r.WebGLManager=r.Shader=r.CanvasRenderTarget=r.TextureUvs=r.VideoBaseTexture=r.BaseRenderTexture=r.RenderTexture=r.BaseTexture=r.Texture=r.Spritesheet=r.CanvasGraphicsRenderer=r.GraphicsRenderer=r.GraphicsData=r.Graphics=r.TextMetrics=r.TextStyle=r.Text=r.SpriteRenderer=r.CanvasTinter=r.CanvasSpriteRenderer=r.Sprite=r.TransformBase=r.TransformStatic=r.Transform=r.Container=r.DisplayObject=r.Bounds=r.glCore=r.WebGLRenderer=r.CanvasRenderer=r.ticker=r.utils=r.settings=void 0;var o=t("./const");Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(r,t,{enumerable:!0,get:function(){return o[t]}})});var s=t("./math");Object.keys(s).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(r,t,{enumerable:!0,get:function(){return s[t]}})});var a=t("pixi-gl-core");Object.defineProperty(r,"glCore",{enumerable:!0,get:function(){return i(a).default}});var u=t("./display/Bounds");Object.defineProperty(r,"Bounds",{enumerable:!0,get:function(){return i(u).default}}) | |
;var h=t("./display/DisplayObject");Object.defineProperty(r,"DisplayObject",{enumerable:!0,get:function(){return i(h).default}});var l=t("./display/Container");Object.defineProperty(r,"Container",{enumerable:!0,get:function(){return i(l).default}});var c=t("./display/Transform");Object.defineProperty(r,"Transform",{enumerable:!0,get:function(){return i(c).default}});var d=t("./display/TransformStatic");Object.defineProperty(r,"TransformStatic",{enumerable:!0,get:function(){return i(d).default}});var f=t("./display/TransformBase");Object.defineProperty(r,"TransformBase",{enumerable:!0,get:function(){return i(f).default}});var p=t("./sprites/Sprite");Object.defineProperty(r,"Sprite",{enumerable:!0,get:function(){return i(p).default}});var v=t("./sprites/canvas/CanvasSpriteRenderer");Object.defineProperty(r,"CanvasSpriteRenderer",{enumerable:!0,get:function(){return i(v).default}});var y=t("./sprites/canvas/CanvasTinter");Object.defineProperty(r,"CanvasTinter",{enumerable:!0,get:function(){return i(y).default}});var g=t("./sprites/webgl/SpriteRenderer");Object.defineProperty(r,"SpriteRenderer",{enumerable:!0,get:function(){return i(g).default}});var m=t("./text/Text");Object.defineProperty(r,"Text",{enumerable:!0,get:function(){return i(m).default}});var _=t("./text/TextStyle");Object.defineProperty(r,"TextStyle",{enumerable:!0,get:function(){return i(_).default}});var b=t("./text/TextMetrics");Object.defineProperty(r,"TextMetrics",{enumerable:!0,get:function(){return i(b).default}});var x=t("./graphics/Graphics");Object.defineProperty(r,"Graphics",{enumerable:!0,get:function(){return i(x).default}});var T=t("./graphics/GraphicsData");Object.defineProperty(r,"GraphicsData",{enumerable:!0,get:function(){return i(T).default}});var w=t("./graphics/webgl/GraphicsRenderer");Object.defineProperty(r,"GraphicsRenderer",{enumerable:!0,get:function(){return i(w).default}});var E=t("./graphics/canvas/CanvasGraphicsRenderer");Object.defineProperty(r,"CanvasGraphicsRenderer",{enumerable:!0,get:function(){return i(E).default}});var S=t("./textures/Spritesheet");Object.defineProperty(r,"Spritesheet",{enumerable:!0,get:function(){return i(S).default}});var O=t("./textures/Texture");Object.defineProperty(r,"Texture",{enumerable:!0,get:function(){return i(O).default}});var M=t("./textures/BaseTexture");Object.defineProperty(r,"BaseTexture",{enumerable:!0,get:function(){return i(M).default}});var P=t("./textures/RenderTexture");Object.defineProperty(r,"RenderTexture",{enumerable:!0,get:function(){return i(P).default}});var C=t("./textures/BaseRenderTexture");Object.defineProperty(r,"BaseRenderTexture",{enumerable:!0,get:function(){return i(C).default}});var R=t("./textures/VideoBaseTexture");Object.defineProperty(r,"VideoBaseTexture",{enumerable:!0,get:function(){return i(R).default}});var A=t("./textures/TextureUvs");Object.defineProperty(r,"TextureUvs",{enumerable:!0,get:function(){return i(A).default}});var I=t("./renderers/canvas/utils/CanvasRenderTarget");Object.defineProperty(r,"CanvasRenderTarget",{enumerable:!0,get:function(){return i(I).default}});var D=t("./Shader");Object.defineProperty(r,"Shader",{enumerable:!0,get:function(){return i(D).default}});var L=t("./renderers/webgl/managers/WebGLManager");Object.defineProperty(r,"WebGLManager",{enumerable:!0,get:function(){return i(L).default}});var N=t("./renderers/webgl/utils/ObjectRenderer");Object.defineProperty(r,"ObjectRenderer",{enumerable:!0,get:function(){return i(N).default}});var F=t("./renderers/webgl/utils/RenderTarget");Object.defineProperty(r,"RenderTarget",{enumerable:!0,get:function(){return i(F).default}});var B=t("./renderers/webgl/utils/Quad");Object.defineProperty(r,"Quad",{enumerable:!0,get:function(){return i(B).default}});var k=t("./renderers/webgl/filters/spriteMask/SpriteMaskFilter");Object.defineProperty(r,"SpriteMaskFilter",{enumerable:!0,get:function(){return i(k).default}});var j=t("./renderers/webgl/filters/Filter");Object.defineProperty(r,"Filter",{enumerable:!0,get:function(){return i(j).default}});var U=t("./Application");Object.defineProperty(r,"Application",{enumerable:!0,get:function(){return i(U).default}});var X=t("./autoDetectRenderer");Object.defineProperty(r,"autoDetectRenderer",{enumerable:!0,get:function(){return X.autoDetectRenderer}});var G=t("./utils"),W=n(G),H=t("./ticker"),Y=n(H),V=t("./settings"),z=i(V),q=t("./renderers/canvas/CanvasRenderer"),K=i(q),Z=t("./renderers/webgl/WebGLRenderer"),J=i(Z);r.settings=z.default,r.utils=W,r.ticker=Y,r.CanvasRenderer=K.default,r.WebGLRenderer=J.default},{"./Application":43,"./Shader":44,"./autoDetectRenderer":45,"./const":46,"./display/Bounds":47,"./display/Container":48,"./display/DisplayObject":49,"./display/Transform":50,"./display/TransformBase":51,"./display/TransformStatic":52,"./graphics/Graphics":53,"./graphics/GraphicsData":54,"./graphics/canvas/CanvasGraphicsRenderer":55,"./graphics/webgl/GraphicsRenderer":57,"./math":70,"./renderers/canvas/CanvasRenderer":77,"./renderers/canvas/utils/CanvasRenderTarget":79,"./renderers/webgl/WebGLRenderer":84,"./renderers/webgl/filters/Filter":86,"./renderers/webgl/filters/spriteMask/SpriteMaskFilter":89,"./renderers/webgl/managers/WebGLManager":93,"./renderers/webgl/utils/ObjectRenderer":94,"./renderers/webgl/utils/Quad":95,"./renderers/webgl/utils/RenderTarget":96,"./settings":101,"./sprites/Sprite":102,"./sprites/canvas/CanvasSpriteRenderer":103,"./sprites/canvas/CanvasTinter":104,"./sprites/webgl/SpriteRenderer":106,"./text/Text":108,"./text/TextMetrics":109,"./text/TextStyle":110,"./textures/BaseRenderTexture":111,"./textures/BaseTexture":112,"./textures/RenderTexture":113,"./textures/Spritesheet":114,"./textures/Texture":115,"./textures/TextureUvs":116,"./textures/VideoBaseTexture":117,"./ticker":120,"./utils":124,"pixi-gl-core":15}],66:[function(t,e,r){"use strict";function n(t){return t<0?-1:t>0?1:0}r.__esModule=!0;var i=t("./Matrix"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],a=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],u=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],h=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],l=[],c=[];!function(){for(var t=0;t<16;t++){var e=[];c.push(e);for(var r=0;r<16;r++)for(var i=n(s[t]*s[r]+u[t]*a[r]),d=n(a[t]*s[r]+h[t]*a[r]),f=n(s[t]*u[r]+u[t]*h[r]),p=n(a[t]*u[r]+h[t]*h[r]),v=0;v<16;v++)if(s[v]===i&&a[v]===d&&u[v]===f&&h[v]===p){e.push(v);break}}for(var y=0;y<16;y++){var g=new o.default;g.set(s[y],a[y],u[y],h[y],0,0),l.push(g)}}();var d={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MIRROR_HORIZONTAL:12,uX:function(t){return s[t]},uY:function(t){return a[t]},vX:function(t){return u[t]},vY:function(t){return h[t]},inv:function(t){return 8&t?15&t:7&-t},add:function(t,e){return c[t][e]},sub:function(t,e){return c[t][d.inv(e)]},rotate180:function(t){return 4^t},isSwapWidthHeight:function(t){return 2==(3&t)},byDirection:function(t,e){return 2*Math.abs(t)<=Math.abs(e)?e>=0?d.S:d.N:2*Math.abs(e)<=Math.abs(t)?t>0?d.E:d.W:e>0?t>0?d.SE:d.SW:t>0?d.NE:d.NW},matrixAppendRotationInv:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=l[d.inv(e)];i.tx=r,i.ty=n,t.append(i)}};r.default=d},{"./Matrix":67}],67:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=t("./Point"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;n(this,t),this.a=e,this.b=r,this.c=i,this.d=o,this.tx=s,this.ty=a,this.array=null}return t.prototype.fromArray=function(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]},t.prototype.set=function(t,e,r,n,i,o){return this.a=t,this.b=e,this.c=r,this.d=n,this.tx=i,this.ty=o,this},t.prototype.toArray=function(t,e){this.array||(this.array=new Float32Array(9));var r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r},t.prototype.apply=function(t,e){e=e||new s.default;var r=t.x,n=t.y;return e.x=this.a*r+this.c*n+this.tx,e.y=this.b*r+this.d*n+this.ty,e},t.prototype.applyInverse=function(t,e){e=e||new s.default;var r=1/(this.a*this.d+this.c*-this.b),n=t.x,i=t.y;return e.x=this.d*r*n+-this.c*r*i+(this.ty*this.c-this.tx*this.d)*r,e.y=this.a*r*i+-this.b*r*n+(-this.ty*this.a+this.tx*this.b)*r,e},t.prototype.translate=function(t,e){return this.tx+=t,this.ty+=e,this},t.prototype.scale=function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},t.prototype.rotate=function(t){var e=Math.cos(t),r=Math.sin(t),n=this.a,i=this.c,o=this.tx;return this.a=n*e-this.b*r,this.b=n*r+this.b*e,this.c=i*e-this.d*r,this.d=i*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this},t.prototype.append=function(t){var e=this.a,r=this.b,n=this.c,i=this.d;return this.a=t.a*e+t.b*n,this.b=t.a*r+t.b*i,this.c=t.c*e+t.d*n,this.d=t.c*r+t.d*i,this.tx=t.tx*e+t.ty*n+this.tx,this.ty=t.tx*r+t.ty*i+this.ty,this},t.prototype.setTransform=function(t,e,r,n,i,o,s,a,u){var h=Math.sin(s),l=Math.cos(s),c=Math.cos(u),d=Math.sin(u),f=-Math.sin(a),p=Math.cos(a),v=l*i,y=h*i,g=-h*o,m=l*o;return this.a=c*v+d*g,this.b=c*y+d*m,this.c=f*v+p*g,this.d=f*y+p*m,this.tx=t+(r*v+n*g),this.ty=e+(r*y+n*m),this},t.prototype.prepend=function(t){var e=this.tx;if(1!==t.a||0!==t.b||0!==t.c||1!==t.d){var r=this.a,n=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=n*t.a+this.d*t.c,this.d=n*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this},t.prototype.decompose=function(t){var e=this.a,r=this.b,n=this.c,i=this.d,o=-Math.atan2(-n,i),s=Math.atan2(r,e);return Math.abs(o+s)<1e-5?(t.rotation=s,e<0&&i>=0&&(t.rotation+=t.rotation<=0?Math.PI:-Math.PI),t.skew.x=t.skew.y=0):(t.skew.x=o,t.skew.y=s),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(n*n+i*i),t.position.x=this.tx,t.position.y=this.ty,t},t.prototype.invert=function(){var t=this.a,e=this.b,r=this.c,n=this.d,i=this.tx,o=t*n-e*r;return this.a=n/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-n*i)/o,this.ty=-(t*this.ty-e*i)/o,this},t.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},t.prototype.clone=function(){var e=new t;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e},t.prototype.copy=function(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t},i(t,null,[{key:"IDENTITY",get:function(){return new t}},{key:"TEMP_MATRIX",get:function(){return new t}}]),t}();r.default=a},{"./Point":69}],68:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=function(){function t(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;n(this,t),this._x=i,this._y=o,this.cb=e,this.scope=r}return t.prototype.set=function(t,e){var r=t||0,n=e||(0!==e?r:0);this._x===r&&this._y===n||(this._x=r,this._y=n,this.cb.call(this.scope))},t.prototype.copy=function(t){this._x===t.x&&this._y===t.y||(this._x=t.x,this._y=t.y,this.cb.call(this.scope))},i(t,[{key:"x",get:function(){return this._x},set:function(t){this._x!==t&&(this._x=t,this.cb.call(this.scope))}},{key:"y",get:function(){return this._y},set:function(t){this._y!==t&&(this._y=t,this.cb.call(this.scope))}}]),t}();r.default=o},{}],69:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;n(this,t),this.x=e,this.y=r}return t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.copy=function(t){this.set(t.x,t.y)},t.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},t.prototype.set=function(t,e){this.x=t||0,this.y=e||(0!==e?this.x:0)},t}();r.default=i},{}],70:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./Point");Object.defineProperty(r,"Point",{enumerable:!0,get:function(){return n(i).default}});var o=t("./ObservablePoint");Object.defineProperty(r,"ObservablePoint",{enumerable:!0,get:function(){return n(o).default}});var s=t("./Matrix");Object.defineProperty(r,"Matrix",{enumerable:!0,get:function(){return n(s).default}});var a=t("./GroupD8");Object.defineProperty(r,"GroupD8",{enumerable:!0,get:function(){return n(a).default}});var u=t("./shapes/Circle");Object.defineProperty(r,"Circle",{enumerable:!0,get:function(){return n(u).default}});var h=t("./shapes/Ellipse");Object.defineProperty(r,"Ellipse",{enumerable:!0,get:function(){return n(h).default}});var l=t("./shapes/Polygon");Object.defineProperty(r,"Polygon",{enumerable:!0,get:function(){return n(l).default}});var c=t("./shapes/Rectangle");Object.defineProperty(r,"Rectangle",{enumerable:!0,get:function(){return n(c).default}});var d=t("./shapes/RoundedRectangle");Object.defineProperty(r,"RoundedRectangle",{enumerable:!0,get:function(){return n(d).default}})},{"./GroupD8":66,"./Matrix":67,"./ObservablePoint":68,"./Point":69,"./shapes/Circle":71,"./shapes/Ellipse":72,"./shapes/Polygon":73,"./shapes/Rectangle":74,"./shapes/RoundedRectangle":75}],71:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("./Rectangle"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;n(this,t),this.x=e,this.y=r,this.radius=i,this.type=s.SHAPES.CIRC}return t.prototype.clone=function(){return new t(this.x,this.y,this.radius)},t.prototype.contains=function(t,e){if(this.radius<=0)return!1;var r=this.radius*this.radius,n=this.x-t,i=this.y-e;return n*=n,i*=i,n+i<=r},t.prototype.getBounds=function(){return new o.default(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},t}();r.default=a},{"../../const":46,"./Rectangle":74}],72:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("./Rectangle"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;n(this,t),this.x=e,this.y=r,this.width=i,this.height=o,this.type=s.SHAPES.ELIP}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;var r=(t-this.x)/this.width,n=(e-this.y)/this.height;return r*=r,n*=n,r+n<=1},t.prototype.getBounds=function(){return new o.default(this.x-this.width,this.y-this.height,this.width,this.height)},t}();r.default=a},{"../../const":46,"./Rectangle":74}],73:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../Point"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=t("../../const"),a=function(){function t(){for(var e=arguments.length,r=Array(e),i=0;i<e;i++)r[i]=arguments[i];if(n(this,t),Array.isArray(r[0])&&(r=r[0]),r[0]instanceof o.default){for(var a=[],u=0,h=r.length;u<h;u++)a.push(r[u].x,r[u].y);r=a}this.closed=!0,this.points=r,this.type=s.SHAPES.POLY}return t.prototype.clone=function(){return new t(this.points.slice())},t.prototype.close=function(){var t=this.points;t[0]===t[t.length-2]&&t[1]===t[t.length-1]||t.push(t[0],t[1])},t.prototype.contains=function(t,e){for(var r=!1,n=this.points.length/2,i=0,o=n-1;i<n;o=i++){var s=this.points[2*i],a=this.points[2*i+1],u=this.points[2*o],h=this.points[2*o+1];a>e!=h>e&&t<(e-a)/(h-a)*(u-s)+s&&(r=!r)}return r},t}();r.default=a},{"../../const":46,"../Point":69}],74:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=t("../../const"),s=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;n(this,t),this.x=Number(e),this.y=Number(r),this.width=Number(i),this.height=Number(s),this.type=o.SHAPES.RECT}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},t.prototype.contains=function(t,e){return!(this.width<=0||this.height<=0)&&(t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height)},t.prototype.pad=function(t,e){t=t||0,e=e||(0!==e?t:0),this.x-=t,this.y-=e,this.width+=2*t,this.height+=2*e},t.prototype.fit=function(t){this.x<t.x&&(this.width+=this.x,this.width<0&&(this.width=0),this.x=t.x),this.y<t.y&&(this.height+=this.y,this.height<0&&(this.height=0),this.y=t.y),this.x+this.width>t.x+t.width&&(this.width=t.width-this.x,this.width<0&&(this.width=0)),this.y+this.height>t.y+t.height&&(this.height=t.height-this.y,this.height<0&&(this.height=0))},t.prototype.enlarge=function(t){var e=Math.min(this.x,t.x),r=Math.max(this.x+this.width,t.x+t.width),n=Math.min(this.y,t.y),i=Math.max(this.y+this.height,t.y+t.height);this.x=e,this.width=r-e,this.y=n,this.height=i-n},i(t,[{key:"left",get:function(){return this.x}},{key:"right",get:function(){return this.x+this.width}},{key:"top",get:function(){return this.y}},{key:"bottom",get:function(){return this.y+this.height}}],[{key:"EMPTY",get:function(){return new t(0,0,0,0)}}]),t}();r.default=s},{"../../const":46}],75:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../const"),o=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:20;n(this,t),this.x=e,this.y=r,this.width=o,this.height=s,this.radius=a,this.type=i.SHAPES.RREC}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height,this.radius)},t.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){if(e>=this.y+this.radius&&e<=this.y+this.height-this.radius||t>=this.x+this.radius&&t<=this.x+this.width-this.radius)return!0;var r=t-(this.x+this.radius),n=e-(this.y+this.radius),i=this.radius*this.radius;if(r*r+n*n<=i)return!0;if((r=t-(this.x+this.width-this.radius))*r+n*n<=i)return!0;if(n=e-(this.y+this.height-this.radius),r*r+n*n<=i)return!0;if((r=t-(this.x+this.radius))*r+n*n<=i)return!0}return!1},t}();r.default=o},{"../../const":46}],76:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../utils"),h=t("../math"),l=t("../const"),c=t("../settings"),d=n(c),f=t("../display/Container"),p=n(f),v=t("../textures/RenderTexture"),y=n(v),g=t("eventemitter3"),m=n(g),_=new h.Matrix,b=function(t){function e(r,n,s,a){i(this,e);var c=o(this,t.call(this));return(0,u.sayHello)(r),"number"==typeof n&&(n=Object.assign({width:n,height:s||d.default.RENDER_OPTIONS.height},a)),n=Object.assign({},d.default.RENDER_OPTIONS,n),c.options=n,c.type=l.RENDERER_TYPE.UNKNOWN,c.screen=new h.Rectangle(0,0,n.width,n.height),c.view=n.view||document.createElement("canvas"),c.resolution=n.resolution||d.default.RESOLUTION,c.transparent=n.transparent,c.autoResize=n.autoResize||!1,c.blendModes=null,c.preserveDrawingBuffer=n.preserveDrawingBuffer,c.clearBeforeRender=n.clearBeforeRender,c.roundPixels=n.roundPixels,c._backgroundColor=0,c._backgroundColorRgba=[0,0,0,0],c._backgroundColorString="#000000",c.backgroundColor=n.backgroundColor||c._backgroundColor,c._tempDisplayObjectParent=new p.default,c._lastObjectRendered=c._tempDisplayObjectParent,c}return s(e,t),e.prototype.resize=function(t,e){this.screen.width=t,this.screen.height=e,this.view.width=t*this.resolution,this.view.height=e*this.resolution,this.autoResize&&(this.view.style.width=t+"px",this.view.style.height=e+"px")},e.prototype.generateTexture=function(t,e,r){var n=t.getLocalBounds(),i=y.default.create(0|n.width,0|n.height,e,r);return _.tx=-n.x,_.ty=-n.y,this.render(t,i,!1,_,!0),i},e.prototype.destroy=function(t){t&&this.view.parentNode&&this.view.parentNode.removeChild(this.view),this.type=l.RENDERER_TYPE.UNKNOWN,this.view=null,this.screen=null,this.resolution=0,this.transparent=!1,this.autoResize=!1,this.blendModes=null,this.options=null,this.preserveDrawingBuffer=!1,this.clearBeforeRender=!1,this.roundPixels=!1,this._backgroundColor=0,this._backgroundColorRgba=null,this._backgroundColorString=null,this._tempDisplayObjectParent=null,this._lastObjectRendered=null},a(e,[{key:"width",get:function(){return this.view.width}},{key:"height",get:function(){return this.view.height}},{key:"backgroundColor",get:function(){return this._backgroundColor},set:function(t){this._backgroundColor=t,this._backgroundColorString=(0,u.hex2string)(t),(0,u.hex2rgb)(t,this._backgroundColorRgba)}}]),e}(m.default);r.default=b},{"../const":46,"../display/Container":48,"../math":70,"../settings":101,"../textures/RenderTexture":113,"../utils":124,eventemitter3:3}],77:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../SystemRenderer"),u=n(a),h=t("./utils/CanvasMaskManager"),l=n(h),c=t("./utils/CanvasRenderTarget"),d=n(c),f=t("./utils/mapCanvasBlendModesToPixi"),p=n(f),v=t("../../utils"),y=t("../../const"),g=t("../../settings"),m=n(g),_=function(t){function e(r,n,s){i(this,e);var a=o(this,t.call(this,"Canvas",r,n,s));return a.type=y.RENDERER_TYPE.CANVAS,a.rootContext=a.view.getContext("2d",{alpha:a.transparent}),a.context=a.rootContext,a.refresh=!0,a.maskManager=new l.default(a),a.smoothProperty="imageSmoothingEnabled",a.rootContext.imageSmoothingEnabled||(a.rootContext.webkitImageSmoothingEnabled?a.smoothProperty="webkitImageSmoothingEnabled":a.rootContext.mozImageSmoothingEnabled?a.smoothProperty="mozImageSmoothingEnabled":a.rootContext.oImageSmoothingEnabled?a.smoothProperty="oImageSmoothingEnabled":a.rootContext.msImageSmoothingEnabled&&(a.smoothProperty="msImageSmoothingEnabled")),a.initPlugins(),a.blendModes=(0,p.default)(),a._activeBlendMode=null,a.renderingToScreen=!1,a.resize(a.options.width,a.options.height),a}return s(e,t),e.prototype.render=function(t,e,r,n,i){if(this.view){this.renderingToScreen=!e,this.emit("prerender");var o=this.resolution;e?(e=e.baseTexture||e,e._canvasRenderTarget||(e._canvasRenderTarget=new d.default(e.width,e.height,e.resolution),e.source=e._canvasRenderTarget.canvas,e.valid=!0),this.context=e._canvasRenderTarget.context,this.resolution=e._canvasRenderTarget.resolution):this.context=this.rootContext;var s=this.context;if(e||(this._lastObjectRendered=t),!i){var a=t.parent,u=this._tempDisplayObjectParent.transform.worldTransform;n?(n.copy(u),this._tempDisplayObjectParent.transform._worldID=-1):u.identity(),t.parent=this._tempDisplayObjectParent,t.updateTransform(),t.parent=a}s.setTransform(1,0,0,1,0,0),s.globalAlpha=1,this._activeBlendMode=y.BLEND_MODES.NORMAL,s.globalCompositeOperation=this.blendModes[y.BLEND_MODES.NORMAL],navigator.isCocoonJS&&this.view.screencanvas&&(s.fillStyle="black",s.clear()),(void 0!==r?r:this.clearBeforeRender)&&this.renderingToScreen&&(this.transparent?s.clearRect(0,0,this.width,this.height):(s.fillStyle=this._backgroundColorString,s.fillRect(0,0,this.width,this.height)));var h=this.context;this.context=s,t.renderCanvas(this),this.context=h,this.resolution=o,this.emit("postrender")}},e.prototype.clear=function(t){var e=this.context;t=t||this._backgroundColorString,!this.transparent&&t?(e.fillStyle=t,e.fillRect(0,0,this.width,this.height)):e.clearRect(0,0,this.width,this.height)},e.prototype.setBlendMode=function(t){this._activeBlendMode!==t&&(this._activeBlendMode=t,this.context.globalCompositeOperation=this.blendModes[t])},e.prototype.destroy=function(e){this.destroyPlugins(),t.prototype.destroy.call(this,e),this.context=null,this.refresh=!0,this.maskManager.destroy(),this.maskManager=null,this.smoothProperty=null},e.prototype.resize=function(e,r){t.prototype.resize.call(this,e,r),this.smoothProperty&&(this.rootContext[this.smoothProperty]=m.default.SCALE_MODE===y.SCALE_MODES.LINEAR)},e.prototype.invalidateBlendMode=function(){this._activeBlendMode=this.blendModes.indexOf(this.context.globalCompositeOperation)},e}(u.default);r.default=_,v.pluginTarget.mixin(_)},{"../../const":46,"../../settings":101,"../../utils":124,"../SystemRenderer":76,"./utils/CanvasMaskManager":78,"./utils/CanvasRenderTarget":79,"./utils/mapCanvasBlendModesToPixi":81}],78:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../../const"),o=function(){function t(e){n(this,t),this.renderer=e}return t.prototype.pushMask=function(t){var e=this.renderer;e.context.save();var r=t.alpha,n=t.transform.worldTransform,i=e.resolution;e.context.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i,n.ty*i),t._texture||(this.renderGraphicsShape(t),e.context.clip()),t.worldAlpha=r},t.prototype.renderGraphicsShape=function(t){var e=this.renderer.context,r=t.graphicsData.length;if(0!==r){e.beginPath();for(var n=0;n<r;n++){var o=t.graphicsData[n],s=o.shape;if(o.type===i.SHAPES.POLY){var a=s.points;e.moveTo(a[0],a[1]);for(var u=1;u<a.length/2;u++)e.lineTo(a[2*u],a[2*u+1]);a[0]===a[a.length-2]&&a[1]===a[a.length-1]&&e.closePath()}else if(o.type===i.SHAPES.RECT)e.rect(s.x,s.y,s.width,s.height),e.closePath();else if(o.type===i.SHAPES.CIRC)e.arc(s.x,s.y,s.radius,0,2*Math.PI),e.closePath();else if(o.type===i.SHAPES.ELIP){var h=2*s.width,l=2*s.height,c=s.x-h/2,d=s.y-l/2,f=h/2*.5522848,p=l/2*.5522848,v=c+h,y=d+l,g=c+h/2,m=d+l/2;e.moveTo(c,m),e.bezierCurveTo(c,m-p,g-f,d,g,d),e.bezierCurveTo(g+f,d,v,m-p,v,m),e.bezierCurveTo(v,m+p,g+f,y,g,y),e.bezierCurveTo(g-f,y,c,m+p,c,m),e.closePath()}else if(o.type===i.SHAPES.RREC){var _=s.x,b=s.y,x=s.width,T=s.height,w=s.radius,E=Math.min(x,T)/2|0;w=w>E?E:w,e.moveTo(_,b+w),e.lineTo(_,b+T-w),e.quadraticCurveTo(_,b+T,_+w,b+T),e.lineTo(_+x-w,b+T),e.quadraticCurveTo(_+x,b+T,_+x,b+T-w),e.lineTo(_+x,b+w),e.quadraticCurveTo(_+x,b,_+x-w,b),e.lineTo(_+w,b),e.quadraticCurveTo(_,b,_,b+w),e.closePath()}}}},t.prototype.popMask=function(t){t.context.restore(),t.invalidateBlendMode()},t.prototype.destroy=function(){},t}();r.default=o},{"../../../const":46}],79:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=t("../../../settings"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=function(){function t(e,r,i){n(this,t),this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.resolution=i||s.default.RESOLUTION,this.resize(e,r)}return t.prototype.clear=function(){this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.canvas.width,this.canvas.height)},t.prototype.resize=function(t,e){this.canvas.width=t*this.resolution,this.canvas.height=e*this.resolution},t.prototype.destroy=function(){this.context=null,this.canvas=null},i(t,[{key:"width",get:function(){return this.canvas.width},set:function(t){this.canvas.width=t}},{key:"height",get:function(){return this.canvas.height},set:function(t){this.canvas.height=t}}]),t}();r.default=a},{"../../../settings":101}],80:[function(t,e,r){"use strict";function n(t){var e=document.createElement("canvas");e.width=6,e.height=1;var r=e.getContext("2d");return r.fillStyle=t,r.fillRect(0,0,6,1),e}function i(){if("undefined"==typeof document)return!1;var t=n("#ff00ff"),e=n("#ffff00"),r=document.createElement("canvas");r.width=6,r.height=1;var i=r.getContext("2d");i.globalCompositeOperation="multiply",i.drawImage(t,0,0),i.drawImage(e,2,0);var o=i.getImageData(2,0,1,1);if(!o)return!1;var s=o.data;return 255===s[0]&&0===s[1]&&0===s[2]}r.__esModule=!0,r.default=i},{}],81:[function(t,e,r){"use strict";function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,s.default)()?(t[i.BLEND_MODES.NORMAL]="source-over",t[i.BLEND_MODES.ADD]="lighter",t[i.BLEND_MODES.MULTIPLY]="multiply",t[i.BLEND_MODES.SCREEN]="screen",t[i.BLEND_MODES.OVERLAY]="overlay",t[i.BLEND_MODES.DARKEN]="darken",t[i.BLEND_MODES.LIGHTEN]="lighten",t[i.BLEND_MODES.COLOR_DODGE]="color-dodge",t[i.BLEND_MODES.COLOR_BURN]="color-burn", | |
t[i.BLEND_MODES.HARD_LIGHT]="hard-light",t[i.BLEND_MODES.SOFT_LIGHT]="soft-light",t[i.BLEND_MODES.DIFFERENCE]="difference",t[i.BLEND_MODES.EXCLUSION]="exclusion",t[i.BLEND_MODES.HUE]="hue",t[i.BLEND_MODES.SATURATION]="saturate",t[i.BLEND_MODES.COLOR]="color",t[i.BLEND_MODES.LUMINOSITY]="luminosity"):(t[i.BLEND_MODES.NORMAL]="source-over",t[i.BLEND_MODES.ADD]="lighter",t[i.BLEND_MODES.MULTIPLY]="source-over",t[i.BLEND_MODES.SCREEN]="source-over",t[i.BLEND_MODES.OVERLAY]="source-over",t[i.BLEND_MODES.DARKEN]="source-over",t[i.BLEND_MODES.LIGHTEN]="source-over",t[i.BLEND_MODES.COLOR_DODGE]="source-over",t[i.BLEND_MODES.COLOR_BURN]="source-over",t[i.BLEND_MODES.HARD_LIGHT]="source-over",t[i.BLEND_MODES.SOFT_LIGHT]="source-over",t[i.BLEND_MODES.DIFFERENCE]="source-over",t[i.BLEND_MODES.EXCLUSION]="source-over",t[i.BLEND_MODES.HUE]="source-over",t[i.BLEND_MODES.SATURATION]="source-over",t[i.BLEND_MODES.COLOR]="source-over",t[i.BLEND_MODES.LUMINOSITY]="source-over"),t[i.BLEND_MODES.NORMAL_NPM]=t[i.BLEND_MODES.NORMAL],t[i.BLEND_MODES.ADD_NPM]=t[i.BLEND_MODES.ADD],t[i.BLEND_MODES.SCREEN_NPM]=t[i.BLEND_MODES.SCREEN],t}r.__esModule=!0,r.default=n;var i=t("../../../const"),o=t("./canUseNewCanvasBlendModes"),s=function(t){return t&&t.__esModule?t:{default:t}}(o)},{"../../../const":46,"./canUseNewCanvasBlendModes":80}],82:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../const"),o=t("../../settings"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=function(){function t(e){n(this,t),this.renderer=e,this.count=0,this.checkCount=0,this.maxIdle=s.default.GC_MAX_IDLE,this.checkCountMax=s.default.GC_MAX_CHECK_COUNT,this.mode=s.default.GC_MODE}return t.prototype.update=function(){this.count++,this.mode!==i.GC_MODES.MANUAL&&++this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())},t.prototype.run=function(){for(var t=this.renderer.textureManager,e=t._managedTextures,r=!1,n=0;n<e.length;n++){var i=e[n];!i._glRenderTargets&&this.count-i.touched>this.maxIdle&&(t.destroyTexture(i,!0),e[n]=null,r=!0)}if(r){for(var o=0,s=0;s<e.length;s++)null!==e[s]&&(e[o++]=e[s]);e.length=o}},t.prototype.unload=function(t){var e=this.renderer.textureManager;t._texture&&t._texture._glRenderTargets&&e.destroyTexture(t._texture,!0);for(var r=t.children.length-1;r>=0;r--)this.unload(t.children[r])},t}();r.default=a},{"../../const":46,"../../settings":101}],83:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("pixi-gl-core"),o=t("../../const"),s=t("./utils/RenderTarget"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=t("../../utils"),h=function(){function t(e){n(this,t),this.renderer=e,this.gl=e.gl,this._managedTextures=[]}return t.prototype.bindTexture=function(){},t.prototype.getTexture=function(){},t.prototype.updateTexture=function(t,e){var r=this.gl,n=!!t._glRenderTargets;if(!t.hasLoaded)return null;var s=this.renderer.boundTextures;if(void 0===e){e=0;for(var u=0;u<s.length;++u)if(s[u]===t){e=u;break}}s[e]=t,r.activeTexture(r.TEXTURE0+e);var h=t._glTextures[this.renderer.CONTEXT_UID];if(h)n?t._glRenderTargets[this.renderer.CONTEXT_UID].resize(t.width,t.height):h.upload(t.source);else{if(n){var l=new a.default(this.gl,t.width,t.height,t.scaleMode,t.resolution);l.resize(t.width,t.height),t._glRenderTargets[this.renderer.CONTEXT_UID]=l,h=l.texture}else h=new i.GLTexture(this.gl,null,null,null,null),h.bind(e),h.premultiplyAlpha=!0,h.upload(t.source);t._glTextures[this.renderer.CONTEXT_UID]=h,t.on("update",this.updateTexture,this),t.on("dispose",this.destroyTexture,this),this._managedTextures.push(t),t.isPowerOfTwo?(t.mipmap&&h.enableMipmap(),t.wrapMode===o.WRAP_MODES.CLAMP?h.enableWrapClamp():t.wrapMode===o.WRAP_MODES.REPEAT?h.enableWrapRepeat():h.enableWrapMirrorRepeat()):h.enableWrapClamp(),t.scaleMode===o.SCALE_MODES.NEAREST?h.enableNearestScaling():h.enableLinearScaling()}return h},t.prototype.destroyTexture=function(t,e){if(t=t.baseTexture||t,t.hasLoaded){var r=this.renderer.CONTEXT_UID,n=t._glTextures,i=t._glRenderTargets;if(n[r]&&(this.renderer.unbindTexture(t),n[r].destroy(),t.off("update",this.updateTexture,this),t.off("dispose",this.destroyTexture,this),delete n[r],!e)){var o=this._managedTextures.indexOf(t);-1!==o&&(0,u.removeItems)(this._managedTextures,o,1)}i&&i[r]&&(i[r].destroy(),delete i[r])}},t.prototype.removeAll=function(){for(var t=0;t<this._managedTextures.length;++t){var e=this._managedTextures[t];e._glTextures[this.renderer.CONTEXT_UID]&&delete e._glTextures[this.renderer.CONTEXT_UID]}},t.prototype.destroy=function(){for(var t=0;t<this._managedTextures.length;++t){var e=this._managedTextures[t];this.destroyTexture(e,!0),e.off("update",this.updateTexture,this),e.off("dispose",this.destroyTexture,this)}this._managedTextures=null},t}();r.default=h},{"../../const":46,"../../utils":124,"./utils/RenderTarget":96,"pixi-gl-core":15}],84:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../SystemRenderer"),u=n(a),h=t("./managers/MaskManager"),l=n(h),c=t("./managers/StencilManager"),d=n(c),f=t("./managers/FilterManager"),p=n(f),v=t("./utils/RenderTarget"),y=n(v),g=t("./utils/ObjectRenderer"),m=n(g),_=t("./TextureManager"),b=n(_),x=t("../../textures/BaseTexture"),T=n(x),w=t("./TextureGarbageCollector"),E=n(w),S=t("./WebGLState"),O=n(S),M=t("./utils/mapWebGLDrawModesToPixi"),P=n(M),C=t("./utils/validateContext"),R=n(C),A=t("../../utils"),I=t("pixi-gl-core"),D=n(I),L=t("../../const"),N=0,F=function(t){function e(r,n,s){i(this,e);var a=o(this,t.call(this,"WebGL",r,n,s));return a.legacy=a.options.legacy,a.legacy&&(D.default.VertexArrayObject.FORCE_NATIVE=!0),a.type=L.RENDERER_TYPE.WEBGL,a.handleContextLost=a.handleContextLost.bind(a),a.handleContextRestored=a.handleContextRestored.bind(a),a.view.addEventListener("webglcontextlost",a.handleContextLost,!1),a.view.addEventListener("webglcontextrestored",a.handleContextRestored,!1),a._contextOptions={alpha:a.transparent,antialias:a.options.antialias,premultipliedAlpha:a.transparent&&"notMultiplied"!==a.transparent,stencil:!0,preserveDrawingBuffer:a.options.preserveDrawingBuffer,powerPreference:a.options.powerPreference},a._backgroundColorRgba[3]=a.transparent?0:1,a.maskManager=new l.default(a),a.stencilManager=new d.default(a),a.emptyRenderer=new m.default(a),a.currentRenderer=a.emptyRenderer,a.textureManager=null,a.filterManager=null,a.initPlugins(),a.options.context&&(0,R.default)(a.options.context),a.gl=a.options.context||D.default.createContext(a.view,a._contextOptions),a.CONTEXT_UID=N++,a.state=new O.default(a.gl),a.renderingToScreen=!0,a.boundTextures=null,a._activeShader=null,a._activeVao=null,a._activeRenderTarget=null,a._initContext(),a.drawModes=(0,P.default)(a.gl),a._nextTextureLocation=0,a.setBlendMode(0),a}return s(e,t),e.prototype._initContext=function(){var t=this.gl;t.isContextLost()&&t.getExtension("WEBGL_lose_context")&&t.getExtension("WEBGL_lose_context").restoreContext();var e=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);this._activeShader=null,this._activeVao=null,this.boundTextures=new Array(e),this.emptyTextures=new Array(e),this.textureManager=new b.default(this),this.filterManager=new p.default(this),this.textureGC=new E.default(this),this.state.resetToDefault(),this.rootRenderTarget=new y.default(t,this.width,this.height,null,this.resolution,!0),this.rootRenderTarget.clearColor=this._backgroundColorRgba,this.bindRenderTarget(this.rootRenderTarget);var r=new D.default.GLTexture.fromData(t,null,1,1),n={_glTextures:{}};n._glTextures[this.CONTEXT_UID]={};for(var i=0;i<e;i++){var o=new T.default;o._glTextures[this.CONTEXT_UID]=r,this.boundTextures[i]=n,this.emptyTextures[i]=o,this.bindTexture(null,i)}this.emit("context",t),this.resize(this.screen.width,this.screen.height)},e.prototype.render=function(t,e,r,n,i){if(this.renderingToScreen=!e,this.emit("prerender"),this.gl&&!this.gl.isContextLost()){if(this._nextTextureLocation=0,e||(this._lastObjectRendered=t),!i){var o=t.parent;t.parent=this._tempDisplayObjectParent,t.updateTransform(),t.parent=o}this.bindRenderTexture(e,n),this.currentRenderer.start(),(void 0!==r?r:this.clearBeforeRender)&&this._activeRenderTarget.clear(),t.renderWebGL(this),this.currentRenderer.flush(),this.textureGC.update(),this.emit("postrender")}},e.prototype.setObjectRenderer=function(t){this.currentRenderer!==t&&(this.currentRenderer.stop(),this.currentRenderer=t,this.currentRenderer.start())},e.prototype.flush=function(){this.setObjectRenderer(this.emptyRenderer)},e.prototype.resize=function(t,e){u.default.prototype.resize.call(this,t,e),this.rootRenderTarget.resize(t,e),this._activeRenderTarget===this.rootRenderTarget&&(this.rootRenderTarget.activate(),this._activeShader&&(this._activeShader.uniforms.projectionMatrix=this.rootRenderTarget.projectionMatrix.toArray(!0)))},e.prototype.setBlendMode=function(t){this.state.setBlendMode(t)},e.prototype.clear=function(t){this._activeRenderTarget.clear(t)},e.prototype.setTransform=function(t){this._activeRenderTarget.transform=t},e.prototype.clearRenderTexture=function(t,e){var r=t.baseTexture,n=r._glRenderTargets[this.CONTEXT_UID];return n&&n.clear(e),this},e.prototype.bindRenderTexture=function(t,e){var r=void 0;if(t){var n=t.baseTexture;n._glRenderTargets[this.CONTEXT_UID]||this.textureManager.updateTexture(n,0),this.unbindTexture(n),r=n._glRenderTargets[this.CONTEXT_UID],r.setFrame(t.frame)}else r=this.rootRenderTarget;return r.transform=e,this.bindRenderTarget(r),this},e.prototype.bindRenderTarget=function(t){return t!==this._activeRenderTarget&&(this._activeRenderTarget=t,t.activate(),this._activeShader&&(this._activeShader.uniforms.projectionMatrix=t.projectionMatrix.toArray(!0)),this.stencilManager.setMaskStack(t.stencilMaskStack)),this},e.prototype.bindShader=function(t,e){return this._activeShader!==t&&(this._activeShader=t,t.bind(),!1!==e&&(t.uniforms.projectionMatrix=this._activeRenderTarget.projectionMatrix.toArray(!0))),this},e.prototype.bindTexture=function(t,e,r){if(t=t||this.emptyTextures[e],t=t.baseTexture||t,t.touched=this.textureGC.count,r)e=e||0;else{for(var n=0;n<this.boundTextures.length;n++)if(this.boundTextures[n]===t)return n;void 0===e&&(this._nextTextureLocation++,this._nextTextureLocation%=this.boundTextures.length,e=this.boundTextures.length-this._nextTextureLocation-1)}var i=this.gl,o=t._glTextures[this.CONTEXT_UID];return o?(this.boundTextures[e]=t,i.activeTexture(i.TEXTURE0+e),i.bindTexture(i.TEXTURE_2D,o.texture)):this.textureManager.updateTexture(t,e),e},e.prototype.unbindTexture=function(t){var e=this.gl;t=t.baseTexture||t;for(var r=0;r<this.boundTextures.length;r++)this.boundTextures[r]===t&&(this.boundTextures[r]=this.emptyTextures[r],e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,this.emptyTextures[r]._glTextures[this.CONTEXT_UID].texture));return this},e.prototype.createVao=function(){return new D.default.VertexArrayObject(this.gl,this.state.attribState)},e.prototype.bindVao=function(t){return this._activeVao===t?this:(t?t.bind():this._activeVao&&this._activeVao.unbind(),this._activeVao=t,this)},e.prototype.reset=function(){return this.setObjectRenderer(this.emptyRenderer),this._activeShader=null,this._activeRenderTarget=this.rootRenderTarget,this.rootRenderTarget.activate(),this.state.resetToDefault(),this},e.prototype.handleContextLost=function(t){t.preventDefault()},e.prototype.handleContextRestored=function(){this.textureManager.removeAll(),this.filterManager.destroy(!0),this._initContext()},e.prototype.destroy=function(e){this.destroyPlugins(),this.view.removeEventListener("webglcontextlost",this.handleContextLost),this.view.removeEventListener("webglcontextrestored",this.handleContextRestored),this.textureManager.destroy(),t.prototype.destroy.call(this,e),this.uid=0,this.maskManager.destroy(),this.stencilManager.destroy(),this.filterManager.destroy(),this.maskManager=null,this.filterManager=null,this.textureManager=null,this.currentRenderer=null,this.handleContextLost=null,this.handleContextRestored=null,this._contextOptions=null,this.gl.useProgram(null),this.gl.getExtension("WEBGL_lose_context")&&this.gl.getExtension("WEBGL_lose_context").loseContext(),this.gl=null},e}(u.default);r.default=F,A.pluginTarget.mixin(F)},{"../../const":46,"../../textures/BaseTexture":112,"../../utils":124,"../SystemRenderer":76,"./TextureGarbageCollector":82,"./TextureManager":83,"./WebGLState":85,"./managers/FilterManager":90,"./managers/MaskManager":91,"./managers/StencilManager":92,"./utils/ObjectRenderer":94,"./utils/RenderTarget":96,"./utils/mapWebGLDrawModesToPixi":99,"./utils/validateContext":100,"pixi-gl-core":15}],85:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("./utils/mapWebGLBlendModesToPixi"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=function(){function t(e){n(this,t),this.activeState=new Uint8Array(16),this.defaultState=new Uint8Array(16),this.defaultState[0]=1,this.stackIndex=0,this.stack=[],this.gl=e,this.maxAttribs=e.getParameter(e.MAX_VERTEX_ATTRIBS),this.attribState={tempAttribState:new Array(this.maxAttribs),attribState:new Array(this.maxAttribs)},this.blendModes=(0,o.default)(e),this.nativeVaoExtension=e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object")}return t.prototype.push=function(){var t=this.stack[this.stackIndex];t||(t=this.stack[this.stackIndex]=new Uint8Array(16)),++this.stackIndex;for(var e=0;e<this.activeState.length;e++)t[e]=this.activeState[e]},t.prototype.pop=function(){var t=this.stack[--this.stackIndex];this.setState(t)},t.prototype.setState=function(t){this.setBlend(t[0]),this.setDepthTest(t[1]),this.setFrontFace(t[2]),this.setCullFace(t[3]),this.setBlendMode(t[4])},t.prototype.setBlend=function(t){t=t?1:0,this.activeState[0]!==t&&(this.activeState[0]=t,this.gl[t?"enable":"disable"](this.gl.BLEND))},t.prototype.setBlendMode=function(t){if(t!==this.activeState[4]){this.activeState[4]=t;var e=this.blendModes[t];2===e.length?this.gl.blendFunc(e[0],e[1]):this.gl.blendFuncSeparate(e[0],e[1],e[2],e[3])}},t.prototype.setDepthTest=function(t){t=t?1:0,this.activeState[1]!==t&&(this.activeState[1]=t,this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST))},t.prototype.setCullFace=function(t){t=t?1:0,this.activeState[3]!==t&&(this.activeState[3]=t,this.gl[t?"enable":"disable"](this.gl.CULL_FACE))},t.prototype.setFrontFace=function(t){t=t?1:0,this.activeState[2]!==t&&(this.activeState[2]=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))},t.prototype.resetAttributes=function(){for(var t=0;t<this.attribState.tempAttribState.length;t++)this.attribState.tempAttribState[t]=0;for(var e=0;e<this.attribState.attribState.length;e++)this.attribState.attribState[e]=0;for(var r=1;r<this.maxAttribs;r++)this.gl.disableVertexAttribArray(r)},t.prototype.resetToDefault=function(){this.nativeVaoExtension&&this.nativeVaoExtension.bindVertexArrayOES(null),this.resetAttributes();for(var t=0;t<this.activeState.length;++t)this.activeState[t]=32;this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.setState(this.defaultState)},t}();r.default=s},{"./utils/mapWebGLBlendModesToPixi":98}],86:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),s=t("./extractUniformsFromSrc"),a=n(s),u=t("../../../utils"),h=t("../../../const"),l=t("../../../settings"),c=n(l),d={},f=function(){function t(e,r,n){i(this,t),this.vertexSrc=e||t.defaultVertexSrc,this.fragmentSrc=r||t.defaultFragmentSrc,this._blendMode=h.BLEND_MODES.NORMAL,this.uniformData=n||(0,a.default)(this.vertexSrc,this.fragmentSrc,"projectionMatrix|uSampler"),this.uniforms={};for(var o in this.uniformData)this.uniforms[o]=this.uniformData[o].value,this.uniformData[o].type&&(this.uniformData[o].type=this.uniformData[o].type.toLowerCase());this.glShaders={},d[this.vertexSrc+this.fragmentSrc]||(d[this.vertexSrc+this.fragmentSrc]=(0,u.uid)()),this.glShaderKey=d[this.vertexSrc+this.fragmentSrc],this.padding=4,this.resolution=c.default.RESOLUTION,this.enabled=!0,this.autoFit=!0}return t.prototype.apply=function(t,e,r,n,i){t.applyFilter(this,e,r,n)},o(t,[{key:"blendMode",get:function(){return this._blendMode},set:function(t){this._blendMode=t}}],[{key:"defaultVertexSrc",get:function(){return["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 projectionMatrix;","uniform mat3 filterMatrix;","varying vec2 vTextureCoord;","varying vec2 vFilterCoord;","void main(void){"," gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);"," vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0) ).xy;"," vTextureCoord = aTextureCoord ;","}"].join("\n")}},{key:"defaultFragmentSrc",get:function(){return["varying vec2 vTextureCoord;","varying vec2 vFilterCoord;","uniform sampler2D uSampler;","uniform sampler2D filterSampler;","void main(void){"," vec4 masky = texture2D(filterSampler, vFilterCoord);"," vec4 sample = texture2D(uSampler, vTextureCoord);"," vec4 color;"," if(mod(vFilterCoord.x, 1.0) > 0.5)"," {"," color = vec4(1.0, 0.0, 0.0, 1.0);"," }"," else"," {"," color = vec4(0.0, 1.0, 0.0, 1.0);"," }"," gl_FragColor = mix(sample, masky, 0.5);"," gl_FragColor *= sample.a;","}"].join("\n")}}]),t}();r.default=f},{"../../../const":46,"../../../settings":101,"../../../utils":124,"./extractUniformsFromSrc":87}],87:[function(t,e,r){"use strict";function n(t,e,r){var n=i(t),o=i(e);return Object.assign(n,o)}function i(t){for(var e=new RegExp("^(projectionMatrix|uSampler|filterArea|filterClamp)$"),r={},n=void 0,i=t.replace(/\s+/g," ").split(/\s*;\s*/),o=0;o<i.length;o++){var s=i[o].trim();if(s.indexOf("uniform")>-1){var u=s.split(" "),h=u[1],l=u[2],c=1;l.indexOf("[")>-1&&(n=l.split(/\[|]/),l=n[0],c*=Number(n[1])),l.match(e)||(r[l]={value:a(h,c),name:l,type:h})}}return r}r.__esModule=!0,r.default=n;var o=t("pixi-gl-core"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=s.default.shader.defaultValue},{"pixi-gl-core":15}],88:[function(t,e,r){"use strict";function n(t,e,r){var n=t.identity();return n.translate(e.x/r.width,e.y/r.height),n.scale(r.width,r.height),n}function i(t,e,r){var n=t.identity();n.translate(e.x/r.width,e.y/r.height);var i=r.width/e.width,o=r.height/e.height;return n.scale(i,o),n}function o(t,e,r,n){var i=n._texture.baseTexture,o=t.set(r.width,0,0,r.height,e.x,e.y),a=n.worldTransform.copy(s.Matrix.TEMP_MATRIX);return a.invert(),o.prepend(a),o.scale(1/i.width,1/i.height),o.translate(n.anchor.x,n.anchor.y),o}r.__esModule=!0,r.calculateScreenSpaceMatrix=n,r.calculateNormalizedScreenSpaceMatrix=i,r.calculateSpriteMatrix=o;var s=t("../../../math")},{"../../../math":70}],89:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../Filter"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=t("../../../../math"),h=(t("path"),function(t){function e(r){n(this,e);var o=new u.Matrix,s=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;\n}\n","varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float alpha;\nuniform sampler2D mask;\n\nvoid main(void)\n{\n // check clip! this will stop the mask bleeding out from the edges\n vec2 text = abs( vMaskCoord - 0.5 );\n text = step(0.5, text);\n\n float clip = 1.0 - max(text.y, text.x);\n vec4 original = texture2D(uSampler, vTextureCoord);\n vec4 masky = texture2D(mask, vMaskCoord);\n\n original *= (masky.r * masky.a * alpha * clip);\n\n gl_FragColor = original;\n}\n"));return r.renderable=!1,s.maskSprite=r,s.maskMatrix=o,s}return o(e,t),e.prototype.apply=function(t,e,r){var n=this.maskSprite;this.uniforms.mask=n._texture,this.uniforms.otherMatrix=t.calculateSpriteMatrix(this.maskMatrix,n),this.uniforms.alpha=n.worldAlpha,t.applyFilter(this,e,r)},e}(a.default));r.default=h},{"../../../../math":70,"../Filter":86,path:8}],90:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var a=t("./WebGLManager"),u=n(a),h=t("../utils/RenderTarget"),l=n(h),c=t("../utils/Quad"),d=n(c),f=t("../../../math"),p=t("../../../Shader"),v=n(p),y=t("../filters/filterTransforms"),g=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(y),m=t("bit-twiddle"),_=n(m),b=function t(){s(this,t),this.renderTarget=null,this.sourceFrame=new f.Rectangle,this.destinationFrame=new f.Rectangle,this.filters=[],this.target=null,this.resolution=1},x=function(t){function e(r){s(this,e);var n=i(this,t.call(this,r));return n.gl=n.renderer.gl,n.quad=new d.default(n.gl,r.state.attribState),n.shaderCache={},n.pool={},n.filterData=null,n.managedFilters=[],n}return o(e,t),e.prototype.pushFilter=function(t,e){var r=this.renderer,n=this.filterData;if(!n){n=this.renderer._activeRenderTarget.filterStack;var i=new b;i.sourceFrame=i.destinationFrame=this.renderer._activeRenderTarget.size,i.renderTarget=r._activeRenderTarget,this.renderer._activeRenderTarget.filterData=n={index:0,stack:[i]},this.filterData=n}var o=n.stack[++n.index];o||(o=n.stack[n.index]=new b);var s=e[0].resolution,a=0|e[0].padding,u=t.filterArea||t.getBounds(!0),h=o.sourceFrame,l=o.destinationFrame;h.x=(u.x*s|0)/s,h.y=(u.y*s|0)/s,h.width=(u.width*s|0)/s,h.height=(u.height*s|0)/s,n.stack[0].renderTarget.transform||e[0].autoFit&&h.fit(n.stack[0].destinationFrame),h.pad(a),l.width=h.width,l.height=h.height;var c=this.getPotRenderTarget(r.gl,h.width,h.height,s);o.target=t,o.filters=e,o.resolution=s,o.renderTarget=c,c.setFrame(l,h),r.bindRenderTarget(c),c.clear()},e.prototype.popFilter=function(){var t=this.filterData,e=t.stack[t.index-1],r=t.stack[t.index];this.quad.map(r.renderTarget.size,r.sourceFrame).upload();var n=r.filters;if(1===n.length)n[0].apply(this,r.renderTarget,e.renderTarget,!1,r),this.freePotRenderTarget(r.renderTarget);else{var i=r.renderTarget,o=this.getPotRenderTarget(this.renderer.gl,r.sourceFrame.width,r.sourceFrame.height,r.resolution);o.setFrame(r.destinationFrame,r.sourceFrame),o.clear();var s=0;for(s=0;s<n.length-1;++s){n[s].apply(this,i,o,!0,r);var a=i;i=o,o=a}n[s].apply(this,i,e.renderTarget,!1,r),this.freePotRenderTarget(i),this.freePotRenderTarget(o)}0===--t.index&&(this.filterData=null)},e.prototype.applyFilter=function(t,e,r,n){var i=this.renderer,o=i.gl,s=t.glShaders[i.CONTEXT_UID];s||(t.glShaderKey?(s=this.shaderCache[t.glShaderKey])||(s=new v.default(this.gl,t.vertexSrc,t.fragmentSrc),t.glShaders[i.CONTEXT_UID]=this.shaderCache[t.glShaderKey]=s):s=t.glShaders[i.CONTEXT_UID]=new v.default(this.gl,t.vertexSrc,t.fragmentSrc),this.managedFilters.push(t),i.bindVao(null),this.quad.initVao(s)),i.bindVao(this.quad.vao),i.bindRenderTarget(r),n&&(o.disable(o.SCISSOR_TEST),i.clear(),o.enable(o.SCISSOR_TEST)),r===i.maskManager.scissorRenderTarget&&i.maskManager.pushScissorMask(null,i.maskManager.scissorData),i.bindShader(s);var a=this.renderer.emptyTextures[0];this.renderer.boundTextures[0]=a,this.syncUniforms(s,t),i.state.setBlendMode(t.blendMode),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,e.texture.texture),this.quad.vao.draw(this.renderer.gl.TRIANGLES,6,0),o.bindTexture(o.TEXTURE_2D,a._glTextures[this.renderer.CONTEXT_UID].texture)},e.prototype.syncUniforms=function(t,e){var r=e.uniformData,n=e.uniforms,i=1,o=void 0;if(t.uniforms.filterArea){o=this.filterData.stack[this.filterData.index];var s=t.uniforms.filterArea;s[0]=o.renderTarget.size.width,s[1]=o.renderTarget.size.height,s[2]=o.sourceFrame.x,s[3]=o.sourceFrame.y,t.uniforms.filterArea=s}if(t.uniforms.filterClamp){o=o||this.filterData.stack[this.filterData.index];var a=t.uniforms.filterClamp;a[0]=0,a[1]=0,a[2]=(o.sourceFrame.width-1)/o.renderTarget.size.width,a[3]=(o.sourceFrame.height-1)/o.renderTarget.size.height,t.uniforms.filterClamp=a}for(var u in r){var h=r[u].type;if("sampler2d"===h&&0!==n[u]){if(n[u].baseTexture)t.uniforms[u]=this.renderer.bindTexture(n[u].baseTexture,i);else{t.uniforms[u]=i;var l=this.renderer.gl;this.renderer.boundTextures[i]=this.renderer.emptyTextures[i],l.activeTexture(l.TEXTURE0+i),n[u].texture.bind()}i++}else if("mat3"===h)void 0!==n[u].a?t.uniforms[u]=n[u].toArray(!0):t.uniforms[u]=n[u];else if("vec2"===h)if(void 0!==n[u].x){var c=t.uniforms[u]||new Float32Array(2);c[0]=n[u].x,c[1]=n[u].y,t.uniforms[u]=c}else t.uniforms[u]=n[u];else"float"===h?t.uniforms.data[u].value!==r[u]&&(t.uniforms[u]=n[u]):t.uniforms[u]=n[u]}},e.prototype.getRenderTarget=function(t,e){var r=this.filterData.stack[this.filterData.index],n=this.getPotRenderTarget(this.renderer.gl,r.sourceFrame.width,r.sourceFrame.height,e||r.resolution);return n.setFrame(r.destinationFrame,r.sourceFrame),n},e.prototype.returnRenderTarget=function(t){this.freePotRenderTarget(t)},e.prototype.calculateScreenSpaceMatrix=function(t){var e=this.filterData.stack[this.filterData.index];return g.calculateScreenSpaceMatrix(t,e.sourceFrame,e.renderTarget.size)},e.prototype.calculateNormalizedScreenSpaceMatrix=function(t){var e=this.filterData.stack[this.filterData.index];return g.calculateNormalizedScreenSpaceMatrix(t,e.sourceFrame,e.renderTarget.size,e.destinationFrame)},e.prototype.calculateSpriteMatrix=function(t,e){var r=this.filterData.stack[this.filterData.index];return g.calculateSpriteMatrix(t,r.sourceFrame,r.renderTarget.size,e)},e.prototype.destroy=function(){for(var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.renderer,r=this.managedFilters,n=0;n<r.length;n++)t||r[n].glShaders[e.CONTEXT_UID].destroy(),delete r[n].glShaders[e.CONTEXT_UID];this.shaderCache={},t?this.pool={}:this.emptyPool()},e.prototype.getPotRenderTarget=function(t,e,r,n){e=_.default.nextPow2(e*n),r=_.default.nextPow2(r*n);var i=(65535&e)<<16|65535&r;this.pool[i]||(this.pool[i]=[]);var o=this.pool[i].pop();if(!o){var s=this.renderer.boundTextures[0];t.activeTexture(t.TEXTURE0),o=new l.default(t,e,r,null,1),t.bindTexture(t.TEXTURE_2D,s._glTextures[this.renderer.CONTEXT_UID].texture)}return o.resolution=n,o.defaultFrame.width=o.size.width=e/n,o.defaultFrame.height=o.size.height=r/n,o},e.prototype.emptyPool=function(){for(var t in this.pool){var e=this.pool[t];if(e)for(var r=0;r<e.length;r++)e[r].destroy(!0)}this.pool={}},e.prototype.freePotRenderTarget=function(t){var e=t.size.width*t.resolution,r=t.size.height*t.resolution,n=(65535&e)<<16|65535&r;this.pool[n].push(t)},e}(u.default);r.default=x},{"../../../Shader":44,"../../../math":70,"../filters/filterTransforms":88,"../utils/Quad":95,"../utils/RenderTarget":96,"./WebGLManager":93,"bit-twiddle":1}],91:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("./WebGLManager"),u=n(a),h=t("../filters/spriteMask/SpriteMaskFilter"),l=n(h),c=function(t){function e(r){i(this,e);var n=o(this,t.call(this,r));return n.scissor=!1,n.scissorData=null,n.scissorRenderTarget=null,n.enableScissor=!0,n.alphaMaskPool=[],n.alphaMaskIndex=0,n}return s(e,t),e.prototype.pushMask=function(t,e){if(e.texture)this.pushSpriteMask(t,e);else if(this.enableScissor&&!this.scissor&&this.renderer._activeRenderTarget.root&&!this.renderer.stencilManager.stencilMaskStack.length&&e.isFastRect()){var r=e.worldTransform,n=Math.atan2(r.b,r.a);n=Math.round(n*(180/Math.PI)),n%90?this.pushStencilMask(e):this.pushScissorMask(t,e)}else this.pushStencilMask(e)},e.prototype.popMask=function(t,e){e.texture?this.popSpriteMask(t,e):this.enableScissor&&!this.renderer.stencilManager.stencilMaskStack.length?this.popScissorMask(t,e):this.popStencilMask(t,e)},e.prototype.pushSpriteMask=function(t,e){var r=this.alphaMaskPool[this.alphaMaskIndex];r||(r=this.alphaMaskPool[this.alphaMaskIndex]=[new l.default(e)]),r[0].resolution=this.renderer.resolution,r[0].maskSprite=e,t.filterArea=e.getBounds(!0),this.renderer.filterManager.pushFilter(t,r),this.alphaMaskIndex++},e.prototype.popSpriteMask=function(){this.renderer.filterManager.popFilter(),this.alphaMaskIndex--},e.prototype.pushStencilMask=function(t){this.renderer.currentRenderer.stop(),this.renderer.stencilManager.pushStencil(t)},e.prototype.popStencilMask=function(){this.renderer.currentRenderer.stop(),this.renderer.stencilManager.popStencil()},e.prototype.pushScissorMask=function(t,e){e.renderable=!0;var r=this.renderer._activeRenderTarget,n=e.getBounds();n.fit(r.size),e.renderable=!1,this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST);var i=this.renderer.resolution;this.renderer.gl.scissor(n.x*i,(r.root?r.size.height-n.y-n.height:n.y)*i,n.width*i,n.height*i),this.scissorRenderTarget=r,this.scissorData=e,this.scissor=!0},e.prototype.popScissorMask=function(){this.scissorRenderTarget=null,this.scissorData=null,this.scissor=!1;var t=this.renderer.gl;t.disable(t.SCISSOR_TEST)},e}(u.default);r.default=c},{"../filters/spriteMask/SpriteMaskFilter":89, | |
"./WebGLManager":93}],92:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("./WebGLManager"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r){n(this,e);var o=i(this,t.call(this,r));return o.stencilMaskStack=null,o}return o(e,t),e.prototype.setMaskStack=function(t){this.stencilMaskStack=t;var e=this.renderer.gl;0===t.length?e.disable(e.STENCIL_TEST):e.enable(e.STENCIL_TEST)},e.prototype.pushStencil=function(t){this.renderer.setObjectRenderer(this.renderer.plugins.graphics),this.renderer._activeRenderTarget.attachStencilBuffer();var e=this.renderer.gl,r=this.stencilMaskStack.length;0===r&&e.enable(e.STENCIL_TEST),this.stencilMaskStack.push(t),e.colorMask(!1,!1,!1,!1),e.stencilFunc(e.EQUAL,r,this._getBitwiseMask()),e.stencilOp(e.KEEP,e.KEEP,e.INCR),this.renderer.plugins.graphics.render(t),this._useCurrent()},e.prototype.popStencil=function(){this.renderer.setObjectRenderer(this.renderer.plugins.graphics);var t=this.renderer.gl,e=this.stencilMaskStack.pop();0===this.stencilMaskStack.length?(t.disable(t.STENCIL_TEST),t.clear(t.STENCIL_BUFFER_BIT),t.clearStencil(0)):(t.colorMask(!1,!1,!1,!1),t.stencilOp(t.KEEP,t.KEEP,t.DECR),this.renderer.plugins.graphics.render(e),this._useCurrent())},e.prototype._useCurrent=function(){var t=this.renderer.gl;t.colorMask(!0,!0,!0,!0),t.stencilFunc(t.EQUAL,this.stencilMaskStack.length,this._getBitwiseMask()),t.stencilOp(t.KEEP,t.KEEP,t.KEEP)},e.prototype._getBitwiseMask=function(){return(1<<this.stencilMaskStack.length)-1},e.prototype.destroy=function(){a.default.prototype.destroy.call(this),this.stencilMaskStack.stencilStack=null},e}(a.default);r.default=u},{"./WebGLManager":93}],93:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){n(this,t),this.renderer=e,this.renderer.on("context",this.onContextChange,this)}return t.prototype.onContextChange=function(){},t.prototype.destroy=function(){this.renderer.off("context",this.onContextChange,this),this.renderer=null},t}();r.default=i},{}],94:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../managers/WebGLManager"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(){return n(this,e),i(this,t.apply(this,arguments))}return o(e,t),e.prototype.start=function(){},e.prototype.stop=function(){this.flush()},e.prototype.flush=function(){},e.prototype.render=function(t){},e}(a.default);r.default=u},{"../managers/WebGLManager":93}],95:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=t("pixi-gl-core"),s=n(o),a=t("../../../utils/createIndicesForQuads"),u=n(a),h=function(){function t(e,r){i(this,t),this.gl=e,this.vertices=new Float32Array([-1,-1,1,-1,1,1,-1,1]),this.uvs=new Float32Array([0,0,1,0,1,1,0,1]),this.interleaved=new Float32Array(16);for(var n=0;n<4;n++)this.interleaved[4*n]=this.vertices[2*n],this.interleaved[4*n+1]=this.vertices[2*n+1],this.interleaved[4*n+2]=this.uvs[2*n],this.interleaved[4*n+3]=this.uvs[2*n+1];this.indices=(0,u.default)(1),this.vertexBuffer=s.default.GLBuffer.createVertexBuffer(e,this.interleaved,e.STATIC_DRAW),this.indexBuffer=s.default.GLBuffer.createIndexBuffer(e,this.indices,e.STATIC_DRAW),this.vao=new s.default.VertexArrayObject(e,r)}return t.prototype.initVao=function(t){this.vao.clear().addIndex(this.indexBuffer).addAttribute(this.vertexBuffer,t.attributes.aVertexPosition,this.gl.FLOAT,!1,16,0).addAttribute(this.vertexBuffer,t.attributes.aTextureCoord,this.gl.FLOAT,!1,16,8)},t.prototype.map=function(t,e){var r=0,n=0;return this.uvs[0]=r,this.uvs[1]=n,this.uvs[2]=r+e.width/t.width,this.uvs[3]=n,this.uvs[4]=r+e.width/t.width,this.uvs[5]=n+e.height/t.height,this.uvs[6]=r,this.uvs[7]=n+e.height/t.height,r=e.x,n=e.y,this.vertices[0]=r,this.vertices[1]=n,this.vertices[2]=r+e.width,this.vertices[3]=n,this.vertices[4]=r+e.width,this.vertices[5]=n+e.height,this.vertices[6]=r,this.vertices[7]=n+e.height,this},t.prototype.upload=function(){for(var t=0;t<4;t++)this.interleaved[4*t]=this.vertices[2*t],this.interleaved[4*t+1]=this.vertices[2*t+1],this.interleaved[4*t+2]=this.uvs[2*t],this.interleaved[4*t+3]=this.uvs[2*t+1];return this.vertexBuffer.upload(this.interleaved),this},t.prototype.destroy=function(){var t=this.gl;t.deleteBuffer(this.vertexBuffer),t.deleteBuffer(this.indexBuffer)},t}();r.default=h},{"../../../utils/createIndicesForQuads":122,"pixi-gl-core":15}],96:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../../math"),o=t("../../../const"),s=t("../../../settings"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=t("pixi-gl-core"),h=function(){function t(e,r,s,h,l,c){n(this,t),this.gl=e,this.frameBuffer=null,this.texture=null,this.clearColor=[0,0,0,0],this.size=new i.Rectangle(0,0,1,1),this.resolution=l||a.default.RESOLUTION,this.projectionMatrix=new i.Matrix,this.transform=null,this.frame=null,this.defaultFrame=new i.Rectangle,this.destinationFrame=null,this.sourceFrame=null,this.stencilBuffer=null,this.stencilMaskStack=[],this.filterData=null,this.scaleMode=void 0!==h?h:a.default.SCALE_MODE,this.root=c,this.root?(this.frameBuffer=new u.GLFramebuffer(e,100,100),this.frameBuffer.framebuffer=null):(this.frameBuffer=u.GLFramebuffer.createRGBA(e,100,100),this.scaleMode===o.SCALE_MODES.NEAREST?this.frameBuffer.texture.enableNearestScaling():this.frameBuffer.texture.enableLinearScaling(),this.texture=this.frameBuffer.texture),this.setFrame(),this.resize(r,s)}return t.prototype.clear=function(t){var e=t||this.clearColor;this.frameBuffer.clear(e[0],e[1],e[2],e[3])},t.prototype.attachStencilBuffer=function(){this.root||this.frameBuffer.enableStencil()},t.prototype.setFrame=function(t,e){this.destinationFrame=t||this.destinationFrame||this.defaultFrame,this.sourceFrame=e||this.sourceFrame||this.destinationFrame},t.prototype.activate=function(){var t=this.gl;this.frameBuffer.bind(),this.calculateProjection(this.destinationFrame,this.sourceFrame),this.transform&&this.projectionMatrix.append(this.transform),this.destinationFrame!==this.sourceFrame?(t.enable(t.SCISSOR_TEST),t.scissor(0|this.destinationFrame.x,0|this.destinationFrame.y,this.destinationFrame.width*this.resolution|0,this.destinationFrame.height*this.resolution|0)):t.disable(t.SCISSOR_TEST),t.viewport(0|this.destinationFrame.x,0|this.destinationFrame.y,this.destinationFrame.width*this.resolution|0,this.destinationFrame.height*this.resolution|0)},t.prototype.calculateProjection=function(t,e){var r=this.projectionMatrix;e=e||t,r.identity(),this.root?(r.a=1/t.width*2,r.d=-1/t.height*2,r.tx=-1-e.x*r.a,r.ty=1-e.y*r.d):(r.a=1/t.width*2,r.d=1/t.height*2,r.tx=-1-e.x*r.a,r.ty=-1-e.y*r.d)},t.prototype.resize=function(t,e){if(t|=0,e|=0,this.size.width!==t||this.size.height!==e){this.size.width=t,this.size.height=e,this.defaultFrame.width=t,this.defaultFrame.height=e,this.frameBuffer.resize(t*this.resolution,e*this.resolution);var r=this.frame||this.size;this.calculateProjection(r)}},t.prototype.destroy=function(){this.frameBuffer.destroy(),this.frameBuffer=null,this.texture=null},t}();r.default=h},{"../../../const":46,"../../../math":70,"../../../settings":101,"pixi-gl-core":15}],97:[function(t,e,r){"use strict";function n(t,e){var r=!e;if(r){var n=document.createElement("canvas");n.width=1,n.height=1,e=s.default.createContext(n)}for(var o=e.createShader(e.FRAGMENT_SHADER);;){var u=a.replace(/%forloop%/gi,i(t));if(e.shaderSource(o,u),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS))break;t=t/2|0}return r&&e.getExtension("WEBGL_lose_context")&&e.getExtension("WEBGL_lose_context").loseContext(),t}function i(t){for(var e="",r=0;r<t;++r)r>0&&(e+="\nelse "),r<t-1&&(e+="if(test == "+r+".0){}");return e}r.__esModule=!0,r.default=n;var o=t("pixi-gl-core"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join("\n")},{"pixi-gl-core":15}],98:[function(t,e,r){"use strict";function n(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e[i.BLEND_MODES.NORMAL]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.ADD]=[t.ONE,t.DST_ALPHA],e[i.BLEND_MODES.MULTIPLY]=[t.DST_COLOR,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.SCREEN]=[t.ONE,t.ONE_MINUS_SRC_COLOR],e[i.BLEND_MODES.OVERLAY]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.DARKEN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.LIGHTEN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.COLOR_DODGE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.COLOR_BURN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.HARD_LIGHT]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.SOFT_LIGHT]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.DIFFERENCE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.EXCLUSION]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.HUE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.SATURATION]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.COLOR]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.LUMINOSITY]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.NORMAL_NPM]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA],e[i.BLEND_MODES.ADD_NPM]=[t.SRC_ALPHA,t.DST_ALPHA,t.ONE,t.DST_ALPHA],e[i.BLEND_MODES.SCREEN_NPM]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_COLOR,t.ONE,t.ONE_MINUS_SRC_COLOR],e}r.__esModule=!0,r.default=n;var i=t("../../../const")},{"../../../const":46}],99:[function(t,e,r){"use strict";function n(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e[i.DRAW_MODES.POINTS]=t.POINTS,e[i.DRAW_MODES.LINES]=t.LINES,e[i.DRAW_MODES.LINE_LOOP]=t.LINE_LOOP,e[i.DRAW_MODES.LINE_STRIP]=t.LINE_STRIP,e[i.DRAW_MODES.TRIANGLES]=t.TRIANGLES,e[i.DRAW_MODES.TRIANGLE_STRIP]=t.TRIANGLE_STRIP,e[i.DRAW_MODES.TRIANGLE_FAN]=t.TRIANGLE_FAN,e}r.__esModule=!0,r.default=n;var i=t("../../../const")},{"../../../const":46}],100:[function(t,e,r){"use strict";function n(t){t.getContextAttributes().stencil||console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly")}r.__esModule=!0,r.default=n},{}],101:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./utils/maxRecommendedTextures"),o=n(i),s=t("./utils/canUploadSameBuffer"),a=n(s);r.default={TARGET_FPMS:.06,MIPMAP_TEXTURES:!0,RESOLUTION:1,FILTER_RESOLUTION:1,SPRITE_MAX_TEXTURES:(0,o.default)(32),SPRITE_BATCH_SIZE:4096,RETINA_PREFIX:/@([0-9\.]+)x/,RENDER_OPTIONS:{view:null,antialias:!1,forceFXAA:!1,autoResize:!1,transparent:!1,backgroundColor:0,clearBeforeRender:!0,preserveDrawingBuffer:!1,roundPixels:!1,width:800,height:600,legacy:!1},TRANSFORM_MODE:0,GC_MODE:0,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:0,SCALE_MODE:0,PRECISION_VERTEX:"highp",PRECISION_FRAGMENT:"mediump",CAN_UPLOAD_SAME_BUFFER:(0,a.default)()}},{"./utils/canUploadSameBuffer":121,"./utils/maxRecommendedTextures":126}],102:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../math"),h=t("../utils"),l=t("../const"),c=t("../textures/Texture"),d=n(c),f=t("../display/Container"),p=n(f),v=new u.Point,y=function(t){function e(r){i(this,e);var n=o(this,t.call(this));return n._anchor=new u.ObservablePoint(n._onAnchorUpdate,n),n._texture=null,n._width=0,n._height=0,n._tint=null,n._tintRGB=null,n.tint=16777215,n.blendMode=l.BLEND_MODES.NORMAL,n.shader=null,n.cachedTint=16777215,n.texture=r||d.default.EMPTY,n.vertexData=new Float32Array(8),n.vertexTrimmedData=null,n._transformID=-1,n._textureID=-1,n._transformTrimmedID=-1,n._textureTrimmedID=-1,n.pluginName="sprite",n}return s(e,t),e.prototype._onTextureUpdate=function(){this._textureID=-1,this._textureTrimmedID=-1,this.cachedTint=16777215,this._width&&(this.scale.x=(0,h.sign)(this.scale.x)*this._width/this._texture.orig.width),this._height&&(this.scale.y=(0,h.sign)(this.scale.y)*this._height/this._texture.orig.height)},e.prototype._onAnchorUpdate=function(){this._transformID=-1,this._transformTrimmedID=-1},e.prototype.calculateVertices=function(){if(this._transformID!==this.transform._worldID||this._textureID!==this._texture._updateID){this._transformID=this.transform._worldID,this._textureID=this._texture._updateID;var t=this._texture,e=this.transform.worldTransform,r=e.a,n=e.b,i=e.c,o=e.d,s=e.tx,a=e.ty,u=this.vertexData,h=t.trim,l=t.orig,c=this._anchor,d=0,f=0,p=0,v=0;h?(f=h.x-c._x*l.width,d=f+h.width,v=h.y-c._y*l.height,p=v+h.height):(f=-c._x*l.width,d=f+l.width,v=-c._y*l.height,p=v+l.height),u[0]=r*f+i*v+s,u[1]=o*v+n*f+a,u[2]=r*d+i*v+s,u[3]=o*v+n*d+a,u[4]=r*d+i*p+s,u[5]=o*p+n*d+a,u[6]=r*f+i*p+s,u[7]=o*p+n*f+a}},e.prototype.calculateTrimmedVertices=function(){if(this.vertexTrimmedData){if(this._transformTrimmedID===this.transform._worldID&&this._textureTrimmedID===this._texture._updateID)return}else this.vertexTrimmedData=new Float32Array(8);this._transformTrimmedID=this.transform._worldID,this._textureTrimmedID=this._texture._updateID;var t=this._texture,e=this.vertexTrimmedData,r=t.orig,n=this._anchor,i=this.transform.worldTransform,o=i.a,s=i.b,a=i.c,u=i.d,h=i.tx,l=i.ty,c=-n._x*r.width,d=c+r.width,f=-n._y*r.height,p=f+r.height;e[0]=o*c+a*f+h,e[1]=u*f+s*c+l,e[2]=o*d+a*f+h,e[3]=u*f+s*d+l,e[4]=o*d+a*p+h,e[5]=u*p+s*d+l,e[6]=o*c+a*p+h,e[7]=u*p+s*c+l},e.prototype._renderWebGL=function(t){this.calculateVertices(),t.setObjectRenderer(t.plugins[this.pluginName]),t.plugins[this.pluginName].render(this)},e.prototype._renderCanvas=function(t){t.plugins[this.pluginName].render(this)},e.prototype._calculateBounds=function(){var t=this._texture.trim,e=this._texture.orig;!t||t.width===e.width&&t.height===e.height?(this.calculateVertices(),this._bounds.addQuad(this.vertexData)):(this.calculateTrimmedVertices(),this._bounds.addQuad(this.vertexTrimmedData))},e.prototype.getLocalBounds=function(e){return 0===this.children.length?(this._bounds.minX=this._texture.orig.width*-this._anchor._x,this._bounds.minY=this._texture.orig.height*-this._anchor._y,this._bounds.maxX=this._texture.orig.width*(1-this._anchor._x),this._bounds.maxY=this._texture.orig.height*(1-this._anchor._y),e||(this._localBoundsRect||(this._localBoundsRect=new u.Rectangle),e=this._localBoundsRect),this._bounds.getRectangle(e)):t.prototype.getLocalBounds.call(this,e)},e.prototype.containsPoint=function(t){this.worldTransform.applyInverse(t,v);var e=this._texture.orig.width,r=this._texture.orig.height,n=-e*this.anchor.x,i=0;return v.x>=n&&v.x<n+e&&(i=-r*this.anchor.y,v.y>=i&&v.y<i+r)},e.prototype.destroy=function(e){if(t.prototype.destroy.call(this,e),this._anchor=null,"boolean"==typeof e?e:e&&e.texture){var r="boolean"==typeof e?e:e&&e.baseTexture;this._texture.destroy(!!r)}this._texture=null,this.shader=null},e.from=function(t){return new e(d.default.from(t))},e.fromFrame=function(t){var r=h.TextureCache[t];if(!r)throw new Error('The frameId "'+t+'" does not exist in the texture cache');return new e(r)},e.fromImage=function(t,r,n){return new e(d.default.fromImage(t,r,n))},a(e,[{key:"width",get:function(){return Math.abs(this.scale.x)*this._texture.orig.width},set:function(t){var e=(0,h.sign)(this.scale.x)||1;this.scale.x=e*t/this._texture.orig.width,this._width=t}},{key:"height",get:function(){return Math.abs(this.scale.y)*this._texture.orig.height},set:function(t){var e=(0,h.sign)(this.scale.y)||1;this.scale.y=e*t/this._texture.orig.height,this._height=t}},{key:"anchor",get:function(){return this._anchor},set:function(t){this._anchor.copy(t)}},{key:"tint",get:function(){return this._tint},set:function(t){this._tint=t,this._tintRGB=(t>>16)+(65280&t)+((255&t)<<16)}},{key:"texture",get:function(){return this._texture},set:function(t){this._texture!==t&&(this._texture=t,this.cachedTint=16777215,this._textureID=-1,this._textureTrimmedID=-1,t&&(t.baseTexture.hasLoaded?this._onTextureUpdate():t.once("update",this._onTextureUpdate,this)))}}]),e}(p.default);r.default=y},{"../const":46,"../display/Container":48,"../math":70,"../textures/Texture":115,"../utils":124}],103:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=t("../../renderers/canvas/CanvasRenderer"),s=n(o),a=t("../../const"),u=t("../../math"),h=t("./CanvasTinter"),l=n(h),c=new u.Matrix,d=function(){function t(e){i(this,t),this.renderer=e}return t.prototype.render=function(t){var e=t._texture,r=this.renderer,n=e._frame.width,i=e._frame.height,o=t.transform.worldTransform,s=0,h=0;if(!(e.orig.width<=0||e.orig.height<=0)&&e.baseTexture.source&&(r.setBlendMode(t.blendMode),e.valid)){r.context.globalAlpha=t.worldAlpha;var d=e.baseTexture.scaleMode===a.SCALE_MODES.LINEAR;r.smoothProperty&&r.context[r.smoothProperty]!==d&&(r.context[r.smoothProperty]=d),e.trim?(s=e.trim.width/2+e.trim.x-t.anchor.x*e.orig.width,h=e.trim.height/2+e.trim.y-t.anchor.y*e.orig.height):(s=(.5-t.anchor.x)*e.orig.width,h=(.5-t.anchor.y)*e.orig.height),e.rotate&&(o.copy(c),o=c,u.GroupD8.matrixAppendRotationInv(o,e.rotate,s,h),s=0,h=0),s-=n/2,h-=i/2,r.roundPixels?(r.context.setTransform(o.a,o.b,o.c,o.d,o.tx*r.resolution|0,o.ty*r.resolution|0),s|=0,h|=0):r.context.setTransform(o.a,o.b,o.c,o.d,o.tx*r.resolution,o.ty*r.resolution);var f=e.baseTexture.resolution;16777215!==t.tint?(t.cachedTint===t.tint&&t.tintedTexture.tintId===t._texture._updateID||(t.cachedTint=t.tint,t.tintedTexture=l.default.getTintedTexture(t,t.tint)),r.context.drawImage(t.tintedTexture,0,0,n*f,i*f,s*r.resolution,h*r.resolution,n*r.resolution,i*r.resolution)):r.context.drawImage(e.baseTexture.source,e._frame.x*f,e._frame.y*f,n*f,i*f,s*r.resolution,h*r.resolution,n*r.resolution,i*r.resolution)}},t.prototype.destroy=function(){this.renderer=null},t}();r.default=d,s.default.registerPlugin("sprite",d)},{"../../const":46,"../../math":70,"../../renderers/canvas/CanvasRenderer":77,"./CanvasTinter":104}],104:[function(t,e,r){"use strict";r.__esModule=!0;var n=t("../../utils"),i=t("../../renderers/canvas/utils/canUseNewCanvasBlendModes"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s={getTintedTexture:function(t,e){var r=t._texture;e=s.roundColor(e);var n="#"+("00000"+(0|e).toString(16)).substr(-6);r.tintCache=r.tintCache||{};var i=r.tintCache[n],o=void 0;if(i){if(i.tintId===r._updateID)return r.tintCache[n];o=r.tintCache[n]}else o=s.canvas||document.createElement("canvas");if(s.tintMethod(r,e,o),o.tintId=r._updateID,s.convertTintToImage){var a=new Image;a.src=o.toDataURL(),r.tintCache[n]=a}else r.tintCache[n]=o,s.canvas=null;return o},tintWithMultiply:function(t,e,r){var n=r.getContext("2d"),i=t._frame.clone(),o=t.baseTexture.resolution;i.x*=o,i.y*=o,i.width*=o,i.height*=o,r.width=Math.ceil(i.width),r.height=Math.ceil(i.height),n.save(),n.fillStyle="#"+("00000"+(0|e).toString(16)).substr(-6),n.fillRect(0,0,i.width,i.height),n.globalCompositeOperation="multiply",n.drawImage(t.baseTexture.source,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.globalCompositeOperation="destination-atop",n.drawImage(t.baseTexture.source,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.restore()},tintWithOverlay:function(t,e,r){var n=r.getContext("2d"),i=t._frame.clone(),o=t.baseTexture.resolution;i.x*=o,i.y*=o,i.width*=o,i.height*=o,r.width=Math.ceil(i.width),r.height=Math.ceil(i.height),n.save(),n.globalCompositeOperation="copy",n.fillStyle="#"+("00000"+(0|e).toString(16)).substr(-6),n.fillRect(0,0,i.width,i.height),n.globalCompositeOperation="destination-atop",n.drawImage(t.baseTexture.source,i.x,i.y,i.width,i.height,0,0,i.width,i.height),n.restore()},tintWithPerPixel:function(t,e,r){var i=r.getContext("2d"),o=t._frame.clone(),s=t.baseTexture.resolution;o.x*=s,o.y*=s,o.width*=s,o.height*=s,r.width=Math.ceil(o.width),r.height=Math.ceil(o.height),i.save(),i.globalCompositeOperation="copy",i.drawImage(t.baseTexture.source,o.x,o.y,o.width,o.height,0,0,o.width,o.height),i.restore();for(var a=(0,n.hex2rgb)(e),u=a[0],h=a[1],l=a[2],c=i.getImageData(0,0,o.width,o.height),d=c.data,f=0;f<d.length;f+=4)d[f+0]*=u,d[f+1]*=h,d[f+2]*=l;i.putImageData(c,0,0)},roundColor:function(t){var e=s.cacheStepsPerColorChannel,r=(0,n.hex2rgb)(t);return r[0]=Math.min(255,r[0]/e*e),r[1]=Math.min(255,r[1]/e*e),r[2]=Math.min(255,r[2]/e*e),(0,n.rgb2hex)(r)},cacheStepsPerColorChannel:8,convertTintToImage:!1,canUseMultiply:(0,o.default)(),tintMethod:0};s.tintMethod=s.canUseMultiply?s.tintWithMultiply:s.tintWithPerPixel,r.default=s},{"../../renderers/canvas/utils/canUseNewCanvasBlendModes":80,"../../utils":124}],105:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){n(this,t),this.vertices=new ArrayBuffer(e),this.float32View=new Float32Array(this.vertices),this.uint32View=new Uint32Array(this.vertices)}return t.prototype.destroy=function(){this.vertices=null,this.positions=null,this.uvs=null,this.colors=null},t}();r.default=i},{}],106:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../../renderers/webgl/utils/ObjectRenderer"),u=n(a),h=t("../../renderers/webgl/WebGLRenderer"),l=n(h),c=t("../../utils/createIndicesForQuads"),d=n(c),f=t("./generateMultiTextureShader"),p=n(f),v=t("../../renderers/webgl/utils/checkMaxIfStatmentsInShader"),y=n(v),g=t("./BatchBuffer"),m=n(g),_=t("../../settings"),b=n(_),x=t("../../utils"),T=t("pixi-gl-core"),w=n(T),E=t("bit-twiddle"),S=n(E),O=0,M=0,P=function(t){function e(r){i(this,e);var n=o(this,t.call(this,r));n.vertSize=5,n.vertByteSize=4*n.vertSize,n.size=b.default.SPRITE_BATCH_SIZE,n.buffers=[];for(var s=1;s<=S.default.nextPow2(n.size);s*=2)n.buffers.push(new m.default(4*s*n.vertByteSize));n.indices=(0,d.default)(n.size),n.shader=null,n.currentIndex=0,n.groups=[];for(var a=0;a<n.size;a++)n.groups[a]={textures:[],textureCount:0,ids:[],size:0,start:0,blend:0};return n.sprites=[],n.vertexBuffers=[],n.vaos=[],n.vaoMax=2,n.vertexCount=0,n.renderer.on("prerender",n.onPrerender,n),n}return s(e,t),e.prototype.onContextChange=function(){var t=this.renderer.gl;this.renderer.legacy?this.MAX_TEXTURES=1:(this.MAX_TEXTURES=Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),b.default.SPRITE_MAX_TEXTURES),this.MAX_TEXTURES=(0,y.default)(this.MAX_TEXTURES,t)),this.shader=(0,p.default)(t,this.MAX_TEXTURES),this.indexBuffer=w.default.GLBuffer.createIndexBuffer(t,this.indices,t.STATIC_DRAW),this.renderer.bindVao(null);for(var e=this.shader.attributes,r=0;r<this.vaoMax;r++){var n=this.vertexBuffers[r]=w.default.GLBuffer.createVertexBuffer(t,null,t.STREAM_DRAW),i=this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(n,e.aVertexPosition,t.FLOAT,!1,this.vertByteSize,0).addAttribute(n,e.aTextureCoord,t.UNSIGNED_SHORT,!0,this.vertByteSize,8).addAttribute(n,e.aColor,t.UNSIGNED_BYTE,!0,this.vertByteSize,12);e.aTextureId&&i.addAttribute(n,e.aTextureId,t.FLOAT,!1,this.vertByteSize,16),this.vaos[r]=i}this.vao=this.vaos[0],this.currentBlendMode=99999,this.boundTextures=new Array(this.MAX_TEXTURES)},e.prototype.onPrerender=function(){this.vertexCount=0},e.prototype.render=function(t){this.currentIndex>=this.size&&this.flush(),t._texture._uvs&&(this.sprites[this.currentIndex++]=t)},e.prototype.flush=function(){if(0!==this.currentIndex){var t=this.renderer.gl,e=this.MAX_TEXTURES,r=S.default.nextPow2(this.currentIndex),n=S.default.log2(r),i=this.buffers[n],o=this.sprites,s=this.groups,a=i.float32View,u=i.uint32View,h=this.boundTextures,l=this.renderer.boundTextures,c=this.renderer.textureGC.count,d=0,f=void 0,p=void 0,v=1,y=0,g=s[0],m=void 0,_=void 0,T=x.premultiplyBlendMode[o[0]._texture.baseTexture.premultipliedAlpha?1:0][o[0].blendMode];g.textureCount=0,g.start=0,g.blend=T,O++;var E=void 0;for(E=0;E<e;++E)h[E]=l[E],h[E]._virtalBoundId=E;for(E=0;E<this.currentIndex;++E){var P=o[E];f=P._texture.baseTexture;var C=x.premultiplyBlendMode[Number(f.premultipliedAlpha)][P.blendMode];if(T!==C&&(T=C,p=null,y=e,O++),p!==f&&(p=f,f._enabled!==O)){if(y===e&&(O++,g.size=E-g.start,y=0,g=s[v++],g.blend=T,g.textureCount=0,g.start=E),f.touched=c,-1===f._virtalBoundId)for(var R=0;R<e;++R){var A=(R+M)%e,I=h[A];if(I._enabled!==O){M++,I._virtalBoundId=-1,f._virtalBoundId=A,h[A]=f;break}}f._enabled=O,g.textureCount++,g.ids[y]=f._virtalBoundId,g.textures[y++]=f}if(m=P.vertexData,_=P._texture._uvs.uvsUint32,this.renderer.roundPixels){var D=this.renderer.resolution;a[d]=(m[0]*D|0)/D,a[d+1]=(m[1]*D|0)/D,a[d+5]=(m[2]*D|0)/D,a[d+6]=(m[3]*D|0)/D,a[d+10]=(m[4]*D|0)/D,a[d+11]=(m[5]*D|0)/D,a[d+15]=(m[6]*D|0)/D,a[d+16]=(m[7]*D|0)/D}else a[d]=m[0],a[d+1]=m[1],a[d+5]=m[2],a[d+6]=m[3],a[d+10]=m[4],a[d+11]=m[5],a[d+15]=m[6],a[d+16]=m[7];u[d+2]=_[0],u[d+7]=_[1],u[d+12]=_[2],u[d+17]=_[3];var L=Math.min(P.worldAlpha,1),N=L<1&&f.premultipliedAlpha?(0,x.premultiplyTint)(P._tintRGB,L):P._tintRGB+(255*L<<24);u[d+3]=u[d+8]=u[d+13]=u[d+18]=N,a[d+4]=a[d+9]=a[d+14]=a[d+19]=f._virtalBoundId,d+=20}if(g.size=E-g.start,b.default.CAN_UPLOAD_SAME_BUFFER)this.vertexBuffers[this.vertexCount].upload(i.vertices,0,!0);else{if(this.vaoMax<=this.vertexCount){this.vaoMax++;var F=this.shader.attributes,B=this.vertexBuffers[this.vertexCount]=w.default.GLBuffer.createVertexBuffer(t,null,t.STREAM_DRAW),k=this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(B,F.aVertexPosition,t.FLOAT,!1,this.vertByteSize,0).addAttribute(B,F.aTextureCoord,t.UNSIGNED_SHORT,!0,this.vertByteSize,8).addAttribute(B,F.aColor,t.UNSIGNED_BYTE,!0,this.vertByteSize,12);F.aTextureId&&k.addAttribute(B,F.aTextureId,t.FLOAT,!1,this.vertByteSize,16),this.vaos[this.vertexCount]=k}this.renderer.bindVao(this.vaos[this.vertexCount]),this.vertexBuffers[this.vertexCount].upload(i.vertices,0,!1),this.vertexCount++}for(E=0;E<e;++E)l[E]._virtalBoundId=-1;for(E=0;E<v;++E){for(var j=s[E],U=j.textureCount,X=0;X<U;X++)p=j.textures[X],l[j.ids[X]]!==p&&this.renderer.bindTexture(p,j.ids[X],!0),p._virtalBoundId=-1;this.renderer.state.setBlendMode(j.blend),t.drawElements(t.TRIANGLES,6*j.size,t.UNSIGNED_SHORT,6*j.start*2)}this.currentIndex=0}},e.prototype.start=function(){this.renderer.bindShader(this.shader),b.default.CAN_UPLOAD_SAME_BUFFER&&(this.renderer.bindVao(this.vaos[this.vertexCount]),this.vertexBuffers[this.vertexCount].bind())},e.prototype.stop=function(){this.flush()},e.prototype.destroy=function(){for(var e=0;e<this.vaoMax;e++)this.vertexBuffers[e]&&this.vertexBuffers[e].destroy(),this.vaos[e]&&this.vaos[e].destroy();this.indexBuffer&&this.indexBuffer.destroy(),this.renderer.off("prerender",this.onPrerender,this),t.prototype.destroy.call(this),this.shader&&(this.shader.destroy(),this.shader=null),this.vertexBuffers=null,this.vaos=null,this.indexBuffer=null,this.indices=null,this.sprites=null;for(var r=0;r<this.buffers.length;++r)this.buffers[r].destroy()},e}(u.default);r.default=P,l.default.registerPlugin("sprite",P)},{"../../renderers/webgl/WebGLRenderer":84,"../../renderers/webgl/utils/ObjectRenderer":94,"../../renderers/webgl/utils/checkMaxIfStatmentsInShader":97,"../../settings":101,"../../utils":124,"../../utils/createIndicesForQuads":122,"./BatchBuffer":105,"./generateMultiTextureShader":107,"bit-twiddle":1,"pixi-gl-core":15}],107:[function(t,e,r){"use strict";function n(t,e){var r=a;r=r.replace(/%count%/gi,e),r=r.replace(/%forloop%/gi,i(e));for(var n=new s.default(t,"precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vTextureId = aTextureId;\n vColor = aColor;\n}\n",r),o=[],u=0;u<e;u++)o[u]=u;return n.bind(),n.uniforms.uSamplers=o,n}function i(t){var e="";e+="\n",e+="\n";for(var r=0;r<t;r++)r>0&&(e+="\nelse "),r<t-1&&(e+="if(textureId == "+r+".0)"),e+="\n{",e+="\n\tcolor = texture2D(uSamplers["+r+"], vTextureCoord);",e+="\n}";return e+="\n",e+="\n"}r.__esModule=!0,r.default=n;var o=t("../../Shader"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=(t("path"),["varying vec2 vTextureCoord;","varying vec4 vColor;","varying float vTextureId;","uniform sampler2D uSamplers[%count%];","void main(void){","vec4 color;","float textureId = floor(vTextureId+0.5);","%forloop%","gl_FragColor = color * vColor;","}"].join("\n"))},{"../../Shader":44,path:8}],108:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0), | |
Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../sprites/Sprite"),h=n(u),l=t("../textures/Texture"),c=n(l),d=t("../math"),f=t("../utils"),p=t("../const"),v=t("../settings"),y=n(v),g=t("./TextStyle"),m=n(g),_=t("./TextMetrics"),b=n(_),x=t("../utils/trimCanvas"),T=n(x),w={texture:!0,children:!1,baseTexture:!0},E=function(t){function e(r,n,s){i(this,e),s=s||document.createElement("canvas"),s.width=3,s.height=3;var a=c.default.fromCanvas(s,y.default.SCALE_MODE,"text");a.orig=new d.Rectangle,a.trim=new d.Rectangle;var u=o(this,t.call(this,a));return c.default.addToCache(u._texture,u._texture.baseTexture.textureCacheIds[0]),u.canvas=s,u.context=u.canvas.getContext("2d"),u.resolution=y.default.RESOLUTION,u._text=null,u._style=null,u._styleListener=null,u._font="",u.text=r,u.style=n,u.localStyleID=-1,u}return s(e,t),e.prototype.updateText=function(t){var e=this._style;if(this.localStyleID!==e.styleID&&(this.dirty=!0,this.localStyleID=e.styleID),this.dirty||!t){this._font=this._style.toFontString();var r=this.context,n=b.default.measureText(this._text,this._style,this._style.wordWrap,this.canvas),i=n.width,o=n.height,s=n.lines,a=n.lineHeight,u=n.lineWidths,h=n.maxLineWidth,l=n.fontProperties;this.canvas.width=Math.ceil((i+2*e.padding)*this.resolution),this.canvas.height=Math.ceil((o+2*e.padding)*this.resolution),r.scale(this.resolution,this.resolution),r.clearRect(0,0,this.canvas.width,this.canvas.height),r.font=this._font,r.strokeStyle=e.stroke,r.lineWidth=e.strokeThickness,r.textBaseline=e.textBaseline,r.lineJoin=e.lineJoin,r.miterLimit=e.miterLimit;var c=void 0,d=void 0;if(e.dropShadow){r.fillStyle=e.dropShadowColor,r.globalAlpha=e.dropShadowAlpha,r.shadowBlur=e.dropShadowBlur,e.dropShadowBlur>0&&(r.shadowColor=e.dropShadowColor);for(var f=Math.cos(e.dropShadowAngle)*e.dropShadowDistance,p=Math.sin(e.dropShadowAngle)*e.dropShadowDistance,v=0;v<s.length;v++)c=e.strokeThickness/2,d=e.strokeThickness/2+v*a+l.ascent,"right"===e.align?c+=h-u[v]:"center"===e.align&&(c+=(h-u[v])/2),e.fill&&(this.drawLetterSpacing(s[v],c+f+e.padding,d+p+e.padding),e.stroke&&e.strokeThickness&&(r.strokeStyle=e.dropShadowColor,this.drawLetterSpacing(s[v],c+f+e.padding,d+p+e.padding,!0),r.strokeStyle=e.stroke))}r.shadowBlur=0,r.globalAlpha=1,r.fillStyle=this._generateFillStyle(e,s);for(var y=0;y<s.length;y++)c=e.strokeThickness/2,d=e.strokeThickness/2+y*a+l.ascent,"right"===e.align?c+=h-u[y]:"center"===e.align&&(c+=(h-u[y])/2),e.stroke&&e.strokeThickness&&this.drawLetterSpacing(s[y],c+e.padding,d+e.padding,!0),e.fill&&this.drawLetterSpacing(s[y],c+e.padding,d+e.padding);this.updateTexture()}},e.prototype.drawLetterSpacing=function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this._style,o=i.letterSpacing;if(0===o)return void(n?this.context.strokeText(t,e,r):this.context.fillText(t,e,r));for(var s=String.prototype.split.call(t,""),a=e,u=0,h="";u<t.length;)h=s[u++],n?this.context.strokeText(h,a,r):this.context.fillText(h,a,r),a+=this.context.measureText(h).width+o},e.prototype.updateTexture=function(){var t=this.canvas;if(this._style.trim){var e=(0,T.default)(t);t.width=e.width,t.height=e.height,this.context.putImageData(e.data,0,0)}var r=this._texture,n=this._style,i=n.trim?0:n.padding,o=r.baseTexture;o.hasLoaded=!0,o.resolution=this.resolution,o.realWidth=t.width,o.realHeight=t.height,o.width=t.width/this.resolution,o.height=t.height/this.resolution,r.trim.width=r._frame.width=t.width/this.resolution,r.trim.height=r._frame.height=t.height/this.resolution,r.trim.x=-i,r.trim.y=-i,r.orig.width=r._frame.width-2*i,r.orig.height=r._frame.height-2*i,this._onTextureUpdate(),o.emit("update",o),this.dirty=!1},e.prototype.renderWebGL=function(e){this.resolution!==e.resolution&&(this.resolution=e.resolution,this.dirty=!0),this.updateText(!0),t.prototype.renderWebGL.call(this,e)},e.prototype._renderCanvas=function(e){this.resolution!==e.resolution&&(this.resolution=e.resolution,this.dirty=!0),this.updateText(!0),t.prototype._renderCanvas.call(this,e)},e.prototype.getLocalBounds=function(e){return this.updateText(!0),t.prototype.getLocalBounds.call(this,e)},e.prototype._calculateBounds=function(){this.updateText(!0),this.calculateVertices(),this._bounds.addQuad(this.vertexData)},e.prototype._onStyleChange=function(){this.dirty=!0},e.prototype._generateFillStyle=function(t,e){if(!Array.isArray(t.fill))return t.fill;if(navigator.isCocoonJS)return t.fill[0];var r=void 0,n=void 0,i=void 0,o=void 0,s=this.canvas.width/this.resolution,a=this.canvas.height/this.resolution,u=t.fill.slice(),h=t.fillGradientStops.slice();if(!h.length)for(var l=u.length+1,c=1;c<l;++c)h.push(c/l);if(u.unshift(t.fill[0]),h.unshift(0),u.push(t.fill[t.fill.length-1]),h.push(1),t.fillGradientType===p.TEXT_GRADIENT.LINEAR_VERTICAL){r=this.context.createLinearGradient(s/2,0,s/2,a),n=(u.length+1)*e.length,i=0;for(var d=0;d<e.length;d++){i+=1;for(var f=0;f<u.length;f++)o="number"==typeof h[f]?h[f]/e.length+d/e.length:i/n,r.addColorStop(o,u[f]),i++}}else{r=this.context.createLinearGradient(0,a/2,s,a/2),n=u.length+1,i=1;for(var v=0;v<u.length;v++)o="number"==typeof h[v]?h[v]:i/n,r.addColorStop(o,u[v]),i++}return r},e.prototype.destroy=function(e){"boolean"==typeof e&&(e={children:e}),e=Object.assign({},w,e),t.prototype.destroy.call(this,e),this.context=null,this.canvas=null,this._style=null},a(e,[{key:"width",get:function(){return this.updateText(!0),Math.abs(this.scale.x)*this._texture.orig.width},set:function(t){this.updateText(!0);var e=(0,f.sign)(this.scale.x)||1;this.scale.x=e*t/this._texture.orig.width,this._width=t}},{key:"height",get:function(){return this.updateText(!0),Math.abs(this.scale.y)*this._texture.orig.height},set:function(t){this.updateText(!0);var e=(0,f.sign)(this.scale.y)||1;this.scale.y=e*t/this._texture.orig.height,this._height=t}},{key:"style",get:function(){return this._style},set:function(t){t=t||{},t instanceof m.default?this._style=t:this._style=new m.default(t),this.localStyleID=-1,this.dirty=!0}},{key:"text",get:function(){return this._text},set:function(t){t=String(""===t||null===t||void 0===t?" ":t),this._text!==t&&(this._text=t,this.dirty=!0)}}]),e}(h.default);r.default=E},{"../const":46,"../math":70,"../settings":101,"../sprites/Sprite":102,"../textures/Texture":115,"../utils":124,"../utils/trimCanvas":129,"./TextMetrics":109,"./TextStyle":110}],109:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e,r,i,o,s,a,u,h,l){n(this,t),this.text=e,this.style=r,this.width=i,this.height=o,this.lines=s,this.lineWidths=a,this.lineHeight=u,this.maxLineWidth=h,this.fontProperties=l}return t.measureText=function(e,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t._canvas;n=n||r.wordWrap;var o=r.toFontString(),s=t.measureFont(o),a=i.getContext("2d");a.font=o;for(var u=n?t.wordWrap(e,r,i):e,h=u.split(/(?:\r\n|\r|\n)/),l=new Array(h.length),c=0,d=0;d<h.length;d++){var f=a.measureText(h[d]).width+(h[d].length-1)*r.letterSpacing;l[d]=f,c=Math.max(c,f)}var p=c+r.strokeThickness;r.dropShadow&&(p+=r.dropShadowDistance);var v=r.lineHeight||s.fontSize+r.strokeThickness,y=Math.max(v,s.fontSize+r.strokeThickness)+(h.length-1)*(v+r.leading);return r.dropShadow&&(y+=r.dropShadowDistance),new t(e,r,p,y,h,l,v+r.leading,c,s)},t.wordWrap=function(e,r){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t._canvas,i=n.getContext("2d"),o="",s=e.split("\n"),a=r.wordWrapWidth,u={},h=0;h<s.length;h++){for(var l=a,c=s[h].split(" "),d=0;d<c.length;d++){var f=i.measureText(c[d]).width;if(r.breakWords&&f>a)for(var p=c[d].split(""),v=0;v<p.length;v++){var y=p[v],g=u[y];void 0===g&&(g=i.measureText(y).width,u[y]=g),g>l?(o+="\n"+y,l=a-g):(0===v&&(o+=" "),o+=y,l-=g)}else{var m=f+i.measureText(" ").width;0===d||m>l?(d>0&&(o+="\n"),o+=c[d],l=a-f):(l-=m,o+=" "+c[d])}}h<s.length-1&&(o+="\n")}return o},t.measureFont=function(e){if(t._fonts[e])return t._fonts[e];var r={},n=t._canvas,i=t._context;i.font=e;var o=Math.ceil(i.measureText("|MÉq").width),s=Math.ceil(i.measureText("M").width),a=2*s;s=1.4*s|0,n.width=o,n.height=a,i.fillStyle="#f00",i.fillRect(0,0,o,a),i.font=e,i.textBaseline="alphabetic",i.fillStyle="#000",i.fillText("|MÉq",0,s);var u=i.getImageData(0,0,o,a).data,h=u.length,l=4*o,c=0,d=0,f=!1;for(c=0;c<s;++c){for(var p=0;p<l;p+=4)if(255!==u[d+p]){f=!0;break}if(f)break;d+=l}for(r.ascent=s-c,d=h-l,f=!1,c=a;c>s;--c){for(var v=0;v<l;v+=4)if(255!==u[d+v]){f=!0;break}if(f)break;d-=l}return r.descent=c-s,r.fontSize=r.ascent+r.descent,t._fonts[e]=r,r},t}();r.default=i;var o=document.createElement("canvas");o.width=o.height=10,i._canvas=o,i._context=o.getContext("2d"),i._fonts={}},{}],110:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t){return"number"==typeof t?(0,h.hex2string)(t):("string"==typeof t&&0===t.indexOf("0x")&&(t=t.replace("0x","#")),t)}function o(t){if(Array.isArray(t)){for(var e=0;e<t.length;++e)t[e]=i(t[e]);return t}return i(t)}function s(t,e){if(!Array.isArray(t)||!Array.isArray(e))return!1;if(t.length!==e.length)return!1;for(var r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../const"),h=t("../utils"),l={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fillGradientType:u.TEXT_GRADIENT.LINEAR_VERTICAL,fillGradientStops:[],fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,lineJoin:"miter",miterLimit:10,padding:0,stroke:"black",strokeThickness:0,textBaseline:"alphabetic",trim:!1,wordWrap:!1,wordWrapWidth:100,leading:0},c=function(){function t(e){n(this,t),this.styleID=0,Object.assign(this,l,e)}return t.prototype.clone=function(){var e={};for(var r in l)e[r]=this[r];return new t(e)},t.prototype.reset=function(){Object.assign(this,l)},t.prototype.toFontString=function(){var t="number"==typeof this.fontSize?this.fontSize+"px":this.fontSize,e=this.fontFamily;Array.isArray(this.fontFamily)||(e=this.fontFamily.split(","));for(var r=e.length-1;r>=0;r--){var n=e[r].trim();/([\"\'])[^\'\"]+\1/.test(n)||(n='"'+n+'"'),e[r]=n}return this.fontStyle+" "+this.fontVariant+" "+this.fontWeight+" "+t+" "+e.join(",")},a(t,[{key:"align",get:function(){return this._align},set:function(t){this._align!==t&&(this._align=t,this.styleID++)}},{key:"breakWords",get:function(){return this._breakWords},set:function(t){this._breakWords!==t&&(this._breakWords=t,this.styleID++)}},{key:"dropShadow",get:function(){return this._dropShadow},set:function(t){this._dropShadow!==t&&(this._dropShadow=t,this.styleID++)}},{key:"dropShadowAlpha",get:function(){return this._dropShadowAlpha},set:function(t){this._dropShadowAlpha!==t&&(this._dropShadowAlpha=t,this.styleID++)}},{key:"dropShadowAngle",get:function(){return this._dropShadowAngle},set:function(t){this._dropShadowAngle!==t&&(this._dropShadowAngle=t,this.styleID++)}},{key:"dropShadowBlur",get:function(){return this._dropShadowBlur},set:function(t){this._dropShadowBlur!==t&&(this._dropShadowBlur=t,this.styleID++)}},{key:"dropShadowColor",get:function(){return this._dropShadowColor},set:function(t){var e=o(t);this._dropShadowColor!==e&&(this._dropShadowColor=e,this.styleID++)}},{key:"dropShadowDistance",get:function(){return this._dropShadowDistance},set:function(t){this._dropShadowDistance!==t&&(this._dropShadowDistance=t,this.styleID++)}},{key:"fill",get:function(){return this._fill},set:function(t){var e=o(t);this._fill!==e&&(this._fill=e,this.styleID++)}},{key:"fillGradientType",get:function(){return this._fillGradientType},set:function(t){this._fillGradientType!==t&&(this._fillGradientType=t,this.styleID++)}},{key:"fillGradientStops",get:function(){return this._fillGradientStops},set:function(t){s(this._fillGradientStops,t)||(this._fillGradientStops=t,this.styleID++)}},{key:"fontFamily",get:function(){return this._fontFamily},set:function(t){this.fontFamily!==t&&(this._fontFamily=t,this.styleID++)}},{key:"fontSize",get:function(){return this._fontSize},set:function(t){this._fontSize!==t&&(this._fontSize=t,this.styleID++)}},{key:"fontStyle",get:function(){return this._fontStyle},set:function(t){this._fontStyle!==t&&(this._fontStyle=t,this.styleID++)}},{key:"fontVariant",get:function(){return this._fontVariant},set:function(t){this._fontVariant!==t&&(this._fontVariant=t,this.styleID++)}},{key:"fontWeight",get:function(){return this._fontWeight},set:function(t){this._fontWeight!==t&&(this._fontWeight=t,this.styleID++)}},{key:"letterSpacing",get:function(){return this._letterSpacing},set:function(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.styleID++)}},{key:"lineHeight",get:function(){return this._lineHeight},set:function(t){this._lineHeight!==t&&(this._lineHeight=t,this.styleID++)}},{key:"leading",get:function(){return this._leading},set:function(t){this._leading!==t&&(this._leading=t,this.styleID++)}},{key:"lineJoin",get:function(){return this._lineJoin},set:function(t){this._lineJoin!==t&&(this._lineJoin=t,this.styleID++)}},{key:"miterLimit",get:function(){return this._miterLimit},set:function(t){this._miterLimit!==t&&(this._miterLimit=t,this.styleID++)}},{key:"padding",get:function(){return this._padding},set:function(t){this._padding!==t&&(this._padding=t,this.styleID++)}},{key:"stroke",get:function(){return this._stroke},set:function(t){var e=o(t);this._stroke!==e&&(this._stroke=e,this.styleID++)}},{key:"strokeThickness",get:function(){return this._strokeThickness},set:function(t){this._strokeThickness!==t&&(this._strokeThickness=t,this.styleID++)}},{key:"textBaseline",get:function(){return this._textBaseline},set:function(t){this._textBaseline!==t&&(this._textBaseline=t,this.styleID++)}},{key:"trim",get:function(){return this._trim},set:function(t){this._trim!==t&&(this._trim=t,this.styleID++)}},{key:"wordWrap",get:function(){return this._wordWrap},set:function(t){this._wordWrap!==t&&(this._wordWrap=t,this.styleID++)}},{key:"wordWrapWidth",get:function(){return this._wordWrapWidth},set:function(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.styleID++)}}]),t}();r.default=c},{"../const":46,"../utils":124}],111:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("./BaseTexture"),u=n(a),h=t("../settings"),l=n(h),c=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,s=arguments[2],a=arguments[3];i(this,e);var u=o(this,t.call(this,null,s));return u.resolution=a||l.default.RESOLUTION,u.width=r,u.height=n,u.realWidth=u.width*u.resolution,u.realHeight=u.height*u.resolution,u.scaleMode=void 0!==s?s:l.default.SCALE_MODE,u.hasLoaded=!0,u._glRenderTargets={},u._canvasRenderTarget=null,u.valid=!1,u}return s(e,t),e.prototype.resize=function(t,e){t===this.width&&e===this.height||(this.valid=t>0&&e>0,this.width=t,this.height=e,this.realWidth=this.width*this.resolution,this.realHeight=this.height*this.resolution,this.valid&&this.emit("update",this))},e.prototype.destroy=function(){t.prototype.destroy.call(this,!0),this.renderer=null},e}(u.default);r.default=c},{"../settings":101,"./BaseTexture":112}],112:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../utils"),u=t("../settings"),h=n(u),l=t("eventemitter3"),c=n(l),d=t("../utils/determineCrossOrigin"),f=n(d),p=t("bit-twiddle"),v=n(p),y=function(t){function e(r,n,s){i(this,e);var u=o(this,t.call(this));return u.uid=(0,a.uid)(),u.touched=0,u.resolution=s||h.default.RESOLUTION,u.width=100,u.height=100,u.realWidth=100,u.realHeight=100,u.scaleMode=void 0!==n?n:h.default.SCALE_MODE,u.hasLoaded=!1,u.isLoading=!1,u.source=null,u.origSource=null,u.imageType=null,u.sourceScale=1,u.premultipliedAlpha=!0,u.imageUrl=null,u.isPowerOfTwo=!1,u.mipmap=h.default.MIPMAP_TEXTURES,u.wrapMode=h.default.WRAP_MODE,u._glTextures={},u._enabled=0,u._virtalBoundId=-1,u._destroyed=!1,u.textureCacheIds=[],r&&u.loadSource(r),u}return s(e,t),e.prototype.update=function(){"svg"!==this.imageType&&(this.realWidth=this.source.naturalWidth||this.source.videoWidth||this.source.width,this.realHeight=this.source.naturalHeight||this.source.videoHeight||this.source.height,this._updateDimensions()),this.emit("update",this)},e.prototype._updateDimensions=function(){this.width=this.realWidth/this.resolution,this.height=this.realHeight/this.resolution,this.isPowerOfTwo=v.default.isPow2(this.realWidth)&&v.default.isPow2(this.realHeight)},e.prototype.loadSource=function(t){var e=this.isLoading;this.hasLoaded=!1,this.isLoading=!1,e&&this.source&&(this.source.onload=null,this.source.onerror=null);var r=!this.source;if(this.source=t,(t.src&&t.complete||t.getContext)&&t.width&&t.height)this._updateImageType(),"svg"===this.imageType?this._loadSvgSource():this._sourceLoaded(),r&&this.emit("loaded",this);else if(!t.getContext){this.isLoading=!0;var n=this;if(t.onload=function(){if(n._updateImageType(),t.onload=null,t.onerror=null,n.isLoading){if(n.isLoading=!1,n._sourceLoaded(),"svg"===n.imageType)return void n._loadSvgSource();n.emit("loaded",n)}},t.onerror=function(){t.onload=null,t.onerror=null,n.isLoading&&(n.isLoading=!1,n.emit("error",n))},t.complete&&t.src){if(t.onload=null,t.onerror=null,"svg"===n.imageType)return void n._loadSvgSource();this.isLoading=!1,t.width&&t.height?(this._sourceLoaded(),e&&this.emit("loaded",this)):e&&this.emit("error",this)}}},e.prototype._updateImageType=function(){if(this.imageUrl){var t=(0,a.decomposeDataUri)(this.imageUrl),e=void 0;if(t&&"image"===t.mediaType){var r=t.subType.split("+")[0];if(!(e=(0,a.getUrlFileExtension)("."+r)))throw new Error("Invalid image type in data URI.")}else(e=(0,a.getUrlFileExtension)(this.imageUrl))||(e="png");this.imageType=e}},e.prototype._loadSvgSource=function(){if("svg"===this.imageType){var t=(0,a.decomposeDataUri)(this.imageUrl);t?this._loadSvgSourceUsingDataUri(t):this._loadSvgSourceUsingXhr()}},e.prototype._loadSvgSourceUsingDataUri=function(t){var e=void 0;if("base64"===t.encoding){if(!atob)throw new Error("Your browser doesn't support base64 conversions.");e=atob(t.data)}else e=t.data;this._loadSvgSourceUsingString(e)},e.prototype._loadSvgSourceUsingXhr=function(){var t=this,e=new XMLHttpRequest;e.onload=function(){if(e.readyState!==e.DONE||200!==e.status)throw new Error("Failed to load SVG using XHR.");t._loadSvgSourceUsingString(e.response)},e.onerror=function(){return t.emit("error",t)},e.open("GET",this.imageUrl,!0),e.send()},e.prototype._loadSvgSourceUsingString=function(t){var r=(0,a.getSvgSize)(t),n=r.width,i=r.height;if(!n||!i)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");this.realWidth=Math.round(n*this.sourceScale),this.realHeight=Math.round(i*this.sourceScale),this._updateDimensions();var o=document.createElement("canvas");o.width=this.realWidth,o.height=this.realHeight,o._pixiId="canvas_"+(0,a.uid)(),o.getContext("2d").drawImage(this.source,0,0,n,i,0,0,this.realWidth,this.realHeight),this.origSource=this.source,this.source=o,e.addToCache(this,o._pixiId),this.isLoading=!1,this._sourceLoaded(),this.emit("loaded",this)},e.prototype._sourceLoaded=function(){this.hasLoaded=!0,this.update()},e.prototype.destroy=function(){this.imageUrl&&(delete a.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")),this.source=null,this.dispose(),e.removeFromCache(this),this.textureCacheIds=null,this._destroyed=!0},e.prototype.dispose=function(){this.emit("dispose",this)},e.prototype.updateSourceImage=function(t){this.source.src=t,this.loadSource(this.source)},e.fromImage=function(t,r,n,i){var o=a.BaseTextureCache[t];if(!o){var s=new Image;void 0===r&&0!==t.indexOf("data:")?s.crossOrigin=(0,f.default)(t):r&&(s.crossOrigin="string"==typeof r?r:"anonymous"),o=new e(s,n),o.imageUrl=t,i&&(o.sourceScale=i),o.resolution=(0,a.getResolutionOfUrl)(t),s.src=t,e.addToCache(o,t)}return o},e.fromCanvas=function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"canvas";t._pixiId||(t._pixiId=n+"_"+(0,a.uid)());var i=a.BaseTextureCache[t._pixiId];return i||(i=new e(t,r),e.addToCache(i,t._pixiId)),i},e.from=function(t,r,n){if("string"==typeof t)return e.fromImage(t,void 0,r,n);if(t instanceof HTMLImageElement){var i=t.src,o=a.BaseTextureCache[i];return o||(o=new e(t,r),o.imageUrl=i,n&&(o.sourceScale=n),o.resolution=(0,a.getResolutionOfUrl)(i),e.addToCache(o,i)),o}return t instanceof HTMLCanvasElement?e.fromCanvas(t,r):t},e.addToCache=function(t,e){e&&(-1===t.textureCacheIds.indexOf(e)&&t.textureCacheIds.push(e),a.BaseTextureCache[e]=t)},e.removeFromCache=function(t){if("string"==typeof t){var e=a.BaseTextureCache[t];if(e){var r=e.textureCacheIds.indexOf(t);return r>-1&&e.textureCacheIds.splice(r,1),delete a.BaseTextureCache[t],e}}else if(t&&t.textureCacheIds){for(var n=0;n<t.textureCacheIds.length;++n)delete a.BaseTextureCache[t.textureCacheIds[n]];return t.textureCacheIds.length=0,t}return null},e}(c.default);r.default=y},{"../settings":101,"../utils":124,"../utils/determineCrossOrigin":123,"bit-twiddle":1,eventemitter3:3}],113:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("./BaseRenderTexture"),u=n(a),h=t("./Texture"),l=n(h),c=function(t){function e(r,n){i(this,e);var s=null;if(!(r instanceof u.default)){var a=arguments[1],h=arguments[2],l=arguments[3],c=arguments[4];console.warn("Please use RenderTexture.create("+a+", "+h+") instead of the ctor directly."),s=arguments[0],n=null,r=new u.default(a,h,l,c)}var d=o(this,t.call(this,r,n));return d.legacyRenderer=s,d.valid=!0,d._updateUvs(),d}return s(e,t),e.prototype.resize=function(t,e,r){this.valid=t>0&&e>0,this._frame.width=this.orig.width=t,this._frame.height=this.orig.height=e,r||this.baseTexture.resize(t,e),this._updateUvs()},e.create=function(t,r,n,i){return new e(new u.default(t,r,n,i))},e}(l.default);r.default=c},{"./BaseRenderTexture":111,"./Texture":115}],114:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=t("../"),s=t("../utils"),a=function(){function t(e,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;n(this,t),this.baseTexture=e,this.textures={},this.data=r,this.resolution=this._updateResolution(i||this.baseTexture.imageUrl),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}return i(t,null,[{key:"BATCH_SIZE",get:function(){return 1e3}}]),t.prototype._updateResolution=function(t){var e=this.data.meta.scale,r=(0,s.getResolutionOfUrl)(t,null);return null===r&&(r=void 0!==e?parseFloat(e):1),1!==r&&(this.baseTexture.resolution=r,this.baseTexture.update()),r},t.prototype.parse=function(e){this._batchIndex=0,this._callback=e,this._frameKeys.length<=t.BATCH_SIZE?(this._processFrames(0),this._parseComplete()):this._nextBatch()},t.prototype._processFrames=function(e){for(var r=e,n=t.BATCH_SIZE,i=this.baseTexture.sourceScale;r-e<n&&r<this._frameKeys.length;){var s=this._frameKeys[r],a=this._frames[s].frame;if(a){var u=null,h=null,l=new o.Rectangle(0,0,Math.floor(this._frames[s].sourceSize.w*i)/this.resolution,Math.floor(this._frames[s].sourceSize.h*i)/this.resolution);u=this._frames[s].rotated?new o.Rectangle(Math.floor(a.x*i)/this.resolution,Math.floor(a.y*i)/this.resolution,Math.floor(a.h*i)/this.resolution,Math.floor(a.w*i)/this.resolution):new o.Rectangle(Math.floor(a.x*i)/this.resolution,Math.floor(a.y*i)/this.resolution,Math.floor(a.w*i)/this.resolution,Math.floor(a.h*i)/this.resolution),this._frames[s].trimmed&&(h=new o.Rectangle(Math.floor(this._frames[s].spriteSourceSize.x*i)/this.resolution,Math.floor(this._frames[s].spriteSourceSize.y*i)/this.resolution,Math.floor(a.w*i)/this.resolution,Math.floor(a.h*i)/this.resolution)),this.textures[s]=new o.Texture(this.baseTexture,u,l,h,this._frames[s].rotated?2:0),o.Texture.addToCache(this.textures[s],s)}r++}},t.prototype._parseComplete=function(){var t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)},t.prototype._nextBatch=function(){var e=this;this._processFrames(this._batchIndex*t.BATCH_SIZE),this._batchIndex++,setTimeout(function(){e._batchIndex*t.BATCH_SIZE<e._frameKeys.length?e._nextBatch():e._parseComplete()},0)},t.prototype.destroy=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];for(var e in this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&this.baseTexture.destroy(),this.baseTexture=null},t}();r.default=a},{"../":65,"../utils":124}],115:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){t.destroy=function(){},t.on=function(){},t.once=function(){},t.emit=function(){}}r.__esModule=!0;var u=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),h=t("./BaseTexture"),l=n(h),c=t("./VideoBaseTexture"),d=n(c),f=t("./TextureUvs"),p=n(f),v=t("eventemitter3"),y=n(v),g=t("../math"),m=t("../utils"),_=t("../settings"),b=n(_),x=function(t){function e(r,n,s,a,u){i(this,e);var h=o(this,t.call(this));if(h.noFrame=!1,n||(h.noFrame=!0,n=new g.Rectangle(0,0,1,1)),r instanceof e&&(r=r.baseTexture),h.baseTexture=r,h._frame=n,h.trim=a,h.valid=!1,h.requiresUpdate=!1,h._uvs=null,h.orig=s||n,h._rotate=Number(u||0),!0===u)h._rotate=2;else if(h._rotate%2!=0)throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");return r.hasLoaded?(h.noFrame&&(n=new g.Rectangle(0,0,r.width,r.height),r.on("update",h.onBaseTextureUpdated,h)),h.frame=n):r.once("loaded",h.onBaseTextureLoaded,h),h._updateID=0,h.transform=null,h.textureCacheIds=[],h}return s(e,t),e.prototype.update=function(){this.baseTexture.update()},e.prototype.onBaseTextureLoaded=function(t){this._updateID++,this.noFrame?this.frame=new g.Rectangle(0,0,t.width,t.height):this.frame=this._frame,this.baseTexture.on("update",this.onBaseTextureUpdated,this),this.emit("update",this)},e.prototype.onBaseTextureUpdated=function(t){this._updateID++,this._frame.width=t.width,this._frame.height=t.height,this.emit("update",this)},e.prototype.destroy=function(t){this.baseTexture&&(t&&(m.TextureCache[this.baseTexture.imageUrl]&&e.removeFromCache(this.baseTexture.imageUrl),this.baseTexture.destroy()),this.baseTexture.off("update",this.onBaseTextureUpdated,this),this.baseTexture.off("loaded",this.onBaseTextureLoaded,this),this.baseTexture=null),this._frame=null,this._uvs=null,this.trim=null,this.orig=null,this.valid=!1,e.removeFromCache(this),this.textureCacheIds=null},e.prototype.clone=function(){return new e(this.baseTexture,this.frame,this.orig,this.trim,this.rotate)},e.prototype._updateUvs=function(){this._uvs||(this._uvs=new p.default),this._uvs.set(this._frame,this.baseTexture,this.rotate),this._updateID++},e.fromImage=function(t,r,n,i){var o=m.TextureCache[t];return o||(o=new e(l.default.fromImage(t,r,n,i)),e.addToCache(o,t)),o},e.fromFrame=function(t){var e=m.TextureCache[t];if(!e)throw new Error('The frameId "'+t+'" does not exist in the texture cache');return e},e.fromCanvas=function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"canvas";return new e(l.default.fromCanvas(t,r,n))},e.fromVideo=function(t,r){return"string"==typeof t?e.fromVideoUrl(t,r):new e(d.default.fromVideo(t,r))},e.fromVideoUrl=function(t,r){return new e(d.default.fromUrl(t,r))},e.from=function(t){if("string"==typeof t){var r=m.TextureCache[t];if(!r){return null!==t.match(/\.(mp4|webm|ogg|h264|avi|mov)$/)?e.fromVideoUrl(t):e.fromImage(t)}return r}return t instanceof HTMLImageElement?new e(l.default.from(t)):t instanceof HTMLCanvasElement?e.fromCanvas(t,b.default.SCALE_MODE,"HTMLCanvasElement"):t instanceof HTMLVideoElement?e.fromVideo(t):t instanceof l.default?new e(t):t},e.fromLoader=function(t,r,n){var i=new l.default(t,void 0,(0,m.getResolutionOfUrl)(r)),o=new e(i);return i.imageUrl=r,n||(n=r),l.default.addToCache(o.baseTexture,n),e.addToCache(o,n),n!==r&&(l.default.addToCache(o.baseTexture,r),e.addToCache(o,r)),o},e.addToCache=function(t,e){e&&(-1===t.textureCacheIds.indexOf(e)&&t.textureCacheIds.push(e),m.TextureCache[e]=t)},e.removeFromCache=function(t){if("string"==typeof t){var e=m.TextureCache[t];if(e){var r=e.textureCacheIds.indexOf(t);return r>-1&&e.textureCacheIds.splice(r,1),delete m.TextureCache[t],e}}else if(t&&t.textureCacheIds){for(var n=0;n<t.textureCacheIds.length;++n)m.TextureCache[t.textureCacheIds[n]]===t&&delete m.TextureCache[t.textureCacheIds[n]];return t.textureCacheIds.length=0,t}return null},u(e,[{key:"frame",get:function(){return this._frame},set:function(t){this._frame=t,this.noFrame=!1 | |
;var e=t.x,r=t.y,n=t.width,i=t.height,o=e+n>this.baseTexture.width,s=r+i>this.baseTexture.height;if(o||s){var a=o&&s?"and":"or",u="X: "+e+" + "+n+" = "+(e+n)+" > "+this.baseTexture.width,h="Y: "+r+" + "+i+" = "+(r+i)+" > "+this.baseTexture.height;throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: "+u+" "+a+" "+h)}this.valid=n&&i&&this.baseTexture.hasLoaded,this.trim||this.rotate||(this.orig=t),this.valid&&this._updateUvs()}},{key:"rotate",get:function(){return this._rotate},set:function(t){this._rotate=t,this.valid&&this._updateUvs()}},{key:"width",get:function(){return this.orig.width}},{key:"height",get:function(){return this.orig.height}}]),e}(y.default);r.default=x,x.EMPTY=new x(new l.default),a(x.EMPTY),a(x.EMPTY.baseTexture),x.WHITE=function(){var t=document.createElement("canvas");t.width=10,t.height=10;var e=t.getContext("2d");return e.fillStyle="white",e.fillRect(0,0,10,10),new x(new l.default(t))}(),a(x.WHITE),a(x.WHITE.baseTexture)},{"../math":70,"../settings":101,"../utils":124,"./BaseTexture":112,"./TextureUvs":116,"./VideoBaseTexture":117,eventemitter3:3}],116:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../math/GroupD8"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=function(){function t(){n(this,t),this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsUint32=new Uint32Array(4)}return t.prototype.set=function(t,e,r){var n=e.width,i=e.height;if(r){var s=t.width/2/n,a=t.height/2/i,u=t.x/n+s,h=t.y/i+a;r=o.default.add(r,o.default.NW),this.x0=u+s*o.default.uX(r),this.y0=h+a*o.default.uY(r),r=o.default.add(r,2),this.x1=u+s*o.default.uX(r),this.y1=h+a*o.default.uY(r),r=o.default.add(r,2),this.x2=u+s*o.default.uX(r),this.y2=h+a*o.default.uY(r),r=o.default.add(r,2),this.x3=u+s*o.default.uX(r),this.y3=h+a*o.default.uY(r)}else this.x0=t.x/n,this.y0=t.y/i,this.x1=(t.x+t.width)/n,this.y1=t.y/i,this.x2=(t.x+t.width)/n,this.y2=(t.y+t.height)/i,this.x3=t.x/n,this.y3=(t.y+t.height)/i;this.uvsUint32[0]=(65535*this.y0&65535)<<16|65535*this.x0&65535,this.uvsUint32[1]=(65535*this.y1&65535)<<16|65535*this.x1&65535,this.uvsUint32[2]=(65535*this.y2&65535)<<16|65535*this.x2&65535,this.uvsUint32[3]=(65535*this.y3&65535)<<16|65535*this.x3&65535},t}();r.default=s},{"../math/GroupD8":66}],117:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){e||(e="video/"+t.substr(t.lastIndexOf(".")+1));var r=document.createElement("source");return r.src=t,r.type=e,r}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("./BaseTexture"),h=function(t){return t&&t.__esModule?t:{default:t}}(u),l=t("../utils"),c=t("../ticker"),d=t("../const"),f=function(t){function e(r,o){if(n(this,e),!r)throw new Error("No video source element specified.");(r.readyState===r.HAVE_ENOUGH_DATA||r.readyState===r.HAVE_FUTURE_DATA)&&r.width&&r.height&&(r.complete=!0);var s=i(this,t.call(this,r,o));return s.width=r.videoWidth,s.height=r.videoHeight,s._autoUpdate=!0,s._isAutoUpdating=!1,s.autoPlay=!0,s.update=s.update.bind(s),s._onCanPlay=s._onCanPlay.bind(s),r.addEventListener("play",s._onPlayStart.bind(s)),r.addEventListener("pause",s._onPlayStop.bind(s)),s.hasLoaded=!1,s.__loaded=!1,s._isSourceReady()?s._onCanPlay():(r.addEventListener("canplay",s._onCanPlay),r.addEventListener("canplaythrough",s._onCanPlay)),s}return o(e,t),e.prototype._isSourcePlaying=function(){var t=this.source;return t.currentTime>0&&!1===t.paused&&!1===t.ended&&t.readyState>2},e.prototype._isSourceReady=function(){return 3===this.source.readyState||4===this.source.readyState},e.prototype._onPlayStart=function(){this.hasLoaded||this._onCanPlay(),!this._isAutoUpdating&&this.autoUpdate&&(c.shared.add(this.update,this,d.UPDATE_PRIORITY.HIGH),this._isAutoUpdating=!0)},e.prototype._onPlayStop=function(){this._isAutoUpdating&&(c.shared.remove(this.update,this),this._isAutoUpdating=!1)},e.prototype._onCanPlay=function(){this.hasLoaded=!0,this.source&&(this.source.removeEventListener("canplay",this._onCanPlay),this.source.removeEventListener("canplaythrough",this._onCanPlay),this.width=this.source.videoWidth,this.height=this.source.videoHeight,this.__loaded||(this.__loaded=!0,this.emit("loaded",this)),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.source.play())},e.prototype.destroy=function(){this._isAutoUpdating&&c.shared.remove(this.update,this),this.source&&this.source._pixiId&&(h.default.removeFromCache(this.source._pixiId),delete this.source._pixiId),t.prototype.destroy.call(this)},e.fromVideo=function(t,r){t._pixiId||(t._pixiId="video_"+(0,l.uid)());var n=l.BaseTextureCache[t._pixiId];return n||(n=new e(t,r),h.default.addToCache(n,t._pixiId)),n},e.fromUrl=function(t,r){var n=document.createElement("video");if(n.setAttribute("webkit-playsinline",""),n.setAttribute("playsinline",""),Array.isArray(t))for(var i=0;i<t.length;++i)n.appendChild(s(t[i].src||t[i],t[i].mime));else n.appendChild(s(t.src||t,t.mime));return n.load(),e.fromVideo(n,r)},a(e,[{key:"autoUpdate",get:function(){return this._autoUpdate},set:function(t){t!==this._autoUpdate&&(this._autoUpdate=t,!this._autoUpdate&&this._isAutoUpdating?(c.shared.remove(this.update,this),this._isAutoUpdating=!1):this._autoUpdate&&!this._isAutoUpdating&&(c.shared.add(this.update,this,d.UPDATE_PRIORITY.HIGH),this._isAutoUpdating=!0))}}]),e}(h.default);r.default=f,f.fromUrls=f.fromUrl},{"../const":46,"../ticker":120,"../utils":124,"./BaseTexture":112}],118:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),s=t("../settings"),a=n(s),u=t("../const"),h=t("./TickerListener"),l=n(h),c=function(){function t(){var e=this;i(this,t),this._head=new l.default(null,null,1/0),this._requestId=null,this._maxElapsedMS=100,this.autoStart=!1,this.deltaTime=1,this.elapsedMS=1/a.default.TARGET_FPMS,this.lastTime=-1,this.speed=1,this.started=!1,this._tick=function(t){e._requestId=null,e.started&&(e.update(t),e.started&&null===e._requestId&&e._head.next&&(e._requestId=requestAnimationFrame(e._tick)))}}return t.prototype._requestIfNeeded=function(){null===this._requestId&&this._head.next&&(this.lastTime=performance.now(),this._requestId=requestAnimationFrame(this._tick))},t.prototype._cancelIfNeeded=function(){null!==this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=null)},t.prototype._startIfPossible=function(){this.started?this._requestIfNeeded():this.autoStart&&this.start()},t.prototype.add=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.UPDATE_PRIORITY.NORMAL;return this._addListener(new l.default(t,e,r))},t.prototype.addOnce=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.UPDATE_PRIORITY.NORMAL;return this._addListener(new l.default(t,e,r,!0))},t.prototype._addListener=function(t){var e=this._head.next,r=this._head;if(e){for(;e;){if(t.priority>e.priority){t.connect(r);break}r=e,e=e.next}t.previous||t.connect(r)}else t.connect(r);return this._startIfPossible(),this},t.prototype.remove=function(t,e){for(var r=this._head.next;r;)r=r.match(t,e)?r.destroy():r.next;return this._head.next||this._cancelIfNeeded(),this},t.prototype.start=function(){this.started||(this.started=!0,this._requestIfNeeded())},t.prototype.stop=function(){this.started&&(this.started=!1,this._cancelIfNeeded())},t.prototype.destroy=function(){this.stop();for(var t=this._head.next;t;)t=t.destroy(!0);this._head.destroy(),this._head=null},t.prototype.update=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:performance.now(),e=void 0;if(t>this.lastTime){e=this.elapsedMS=t-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),this.deltaTime=e*a.default.TARGET_FPMS*this.speed;for(var r=this._head,n=r.next;n;)n=n.emit(this.deltaTime);r.next||this._cancelIfNeeded()}else this.deltaTime=this.elapsedMS=0;this.lastTime=t},o(t,[{key:"FPS",get:function(){return 1e3/this.elapsedMS}},{key:"minFPS",get:function(){return 1e3/this._maxElapsedMS},set:function(t){var e=Math.min(Math.max(0,t)/1e3,a.default.TARGET_FPMS);this._maxElapsedMS=1/e}}]),t}();r.default=c},{"../const":46,"../settings":101,"./TickerListener":119}],119:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];n(this,t),this.fn=e,this.context=r,this.priority=i,this.once=o,this.next=null,this.previous=null,this._destroyed=!1}return t.prototype.match=function(t,e){return e=e||null,this.fn===t&&this.context===e},t.prototype.emit=function(t){this.fn&&(this.context?this.fn.call(this.context,t):this.fn(t));var e=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),e},t.prototype.connect=function(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this},t.prototype.destroy=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);var e=this.previous;return this.next=t?null:e,this.previous=null,e},t}();r.default=i},{}],120:[function(t,e,r){"use strict";r.__esModule=!0,r.Ticker=r.shared=void 0;var n=t("./Ticker"),i=function(t){return t&&t.__esModule?t:{default:t}}(n),o=new i.default;o.autoStart=!0,o.destroy=function(){},r.shared=o,r.Ticker=i.default},{"./Ticker":118}],121:[function(t,e,r){"use strict";function n(){return!(!!navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform))}r.__esModule=!0,r.default=n},{}],122:[function(t,e,r){"use strict";function n(t){for(var e=6*t,r=new Uint16Array(e),n=0,i=0;n<e;n+=6,i+=4)r[n+0]=i+0,r[n+1]=i+1,r[n+2]=i+2,r[n+3]=i+0,r[n+4]=i+2,r[n+5]=i+3;return r}r.__esModule=!0,r.default=n},{}],123:[function(t,e,r){"use strict";function n(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location;if(0===t.indexOf("data:"))return"";e=e||window.location,s||(s=document.createElement("a")),s.href=t,t=o.default.parse(s.href);var r=!t.port&&""===e.port||t.port===e.port;return t.hostname===e.hostname&&r&&t.protocol===e.protocol?"":"anonymous"}r.__esModule=!0,r.default=n;var i=t("url"),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s=void 0},{url:38}],124:[function(t,e,r){"use strict";function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}function i(t){return t&&t.__esModule?t:{default:t}}function o(){return++k}function s(t,e){return e=e||[],e[0]=(t>>16&255)/255,e[1]=(t>>8&255)/255,e[2]=(255&t)/255,e}function a(t){return t=t.toString(16),"#"+(t="000000".substr(0,6-t.length)+t)}function u(t){return(255*t[0]<<16)+(255*t[1]<<8)+(255*t[2]|0)}function h(t,e){var r=S.default.RETINA_PREFIX.exec(t);return r?parseFloat(r[1]):void 0!==e?e:1}function l(t){var e=w.DATA_URI.exec(t);if(e)return{mediaType:e[1]?e[1].toLowerCase():void 0,subType:e[2]?e[2].toLowerCase():void 0,encoding:e[3]?e[3].toLowerCase():void 0,data:e[4]}}function c(t){var e=w.URL_FILE_EXTENSION.exec(t);if(e)return e[1].toLowerCase()}function d(t){var e=w.SVG_SIZE.exec(t),r={};return e&&(r[e[1]]=Math.round(parseFloat(e[3])),r[e[5]]=Math.round(parseFloat(e[7]))),r}function f(){j=!0}function p(t){if(!j){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var e=["\n %c %c %c PixiJS "+w.VERSION+" - ✰ "+t+" ✰ %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ \n\n","background: #ff66a5; padding:5px 0;","background: #ff66a5; padding:5px 0;","color: #ff66a5; background: #030307; padding:5px 0;","background: #ff66a5; padding:5px 0;","background: #ffc3dc; padding:5px 0;","background: #ff66a5; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;"];window.console.log.apply(console,e)}else window.console&&window.console.log("PixiJS "+w.VERSION+" - "+t+" - http://www.pixijs.com/");j=!0}}function v(){var t={stencil:!0,failIfMajorPerformanceCaveat:!0};try{if(!window.WebGLRenderingContext)return!1;var e=document.createElement("canvas"),r=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),n=!(!r||!r.getContextAttributes().stencil);if(r){var i=r.getExtension("WEBGL_lose_context");i&&i.loseContext()}return r=null,n}catch(t){return!1}}function y(t){return 0===t?0:t<0?-1:1}function g(){var t=void 0;for(t in U)U[t].destroy();for(t in X)X[t].destroy()}function m(){var t=void 0;for(t in U)delete U[t];for(t in X)delete X[t]}function _(t,e){return G[e?1:0][t]}function b(t,e){if(1===e)return(255*e<<24)+t;if(0===e)return 0;var r=t>>16&255,n=t>>8&255,i=255&t;return r=r*e+.5|0,n=n*e+.5|0,i=i*e+.5|0,(255*e<<24)+(r<<16)+(n<<8)+i}function x(t,e,r,n){return r=r||new Float32Array(4),n||void 0===n?(r[0]=t[0]*e,r[1]=t[1]*e,r[2]=t[2]*e):(r[0]=t[0],r[1]=t[1],r[2]=t[2]),r[3]=e,r}function T(t,e,r,n){return r=r||new Float32Array(4),r[0]=(t>>16&255)/255,r[1]=(t>>8&255)/255,r[2]=(255&t)/255,(n||void 0===n)&&(r[0]*=e,r[1]*=e,r[2]*=e),r[3]=e,r}r.__esModule=!0,r.premultiplyBlendMode=r.BaseTextureCache=r.TextureCache=r.mixins=r.pluginTarget=r.EventEmitter=r.removeItems=r.isMobile=void 0,r.uid=o,r.hex2rgb=s,r.hex2string=a,r.rgb2hex=u,r.getResolutionOfUrl=h,r.decomposeDataUri=l,r.getUrlFileExtension=c,r.getSvgSize=d,r.skipHello=f,r.sayHello=p,r.isWebGLSupported=v,r.sign=y,r.destroyTextureCache=g,r.clearTextureCache=m,r.correctBlendMode=_,r.premultiplyTint=b,r.premultiplyRgba=x,r.premultiplyTintToRgba=T;var w=t("../const"),E=t("../settings"),S=i(E),O=t("eventemitter3"),M=i(O),P=t("./pluginTarget"),C=i(P),R=t("./mixin"),A=n(R),I=t("ismobilejs"),D=n(I),L=t("remove-array-items"),N=i(L),F=t("./mapPremultipliedBlendModes"),B=i(F),k=0,j=!1;r.isMobile=D,r.removeItems=N.default,r.EventEmitter=M.default,r.pluginTarget=C.default,r.mixins=A;var U=r.TextureCache=Object.create(null),X=r.BaseTextureCache=Object.create(null),G=r.premultiplyBlendMode=(0,B.default)()},{"../const":46,"../settings":101,"./mapPremultipliedBlendModes":125,"./mixin":127,"./pluginTarget":128,eventemitter3:3,ismobilejs:4,"remove-array-items":31}],125:[function(t,e,r){"use strict";function n(){for(var t=[],e=[],r=0;r<32;r++)t[r]=r,e[r]=r;t[i.BLEND_MODES.NORMAL_NPM]=i.BLEND_MODES.NORMAL,t[i.BLEND_MODES.ADD_NPM]=i.BLEND_MODES.ADD,t[i.BLEND_MODES.SCREEN_NPM]=i.BLEND_MODES.SCREEN,e[i.BLEND_MODES.NORMAL]=i.BLEND_MODES.NORMAL_NPM,e[i.BLEND_MODES.ADD]=i.BLEND_MODES.ADD_NPM,e[i.BLEND_MODES.SCREEN]=i.BLEND_MODES.SCREEN_NPM;var n=[];return n.push(e),n.push(t),n}r.__esModule=!0,r.default=n;var i=t("../const")},{"../const":46}],126:[function(t,e,r){"use strict";function n(t){return o.default.tablet||o.default.phone?4:t}r.__esModule=!0,r.default=n;var i=t("ismobilejs"),o=function(t){return t&&t.__esModule?t:{default:t}}(i)},{ismobilejs:4}],127:[function(t,e,r){"use strict";function n(t,e){if(t&&e)for(var r=Object.keys(e),n=0;n<r.length;++n){var i=r[n];Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(e,i))}}function i(t,e){s.push(t,e)}function o(){for(var t=0;t<s.length;t+=2)n(s[t],s[t+1]);s.length=0}r.__esModule=!0,r.mixin=n,r.delayMixin=i,r.performMixins=o;var s=[]},{}],128:[function(t,e,r){"use strict";function n(t){t.__plugins={},t.registerPlugin=function(e,r){t.__plugins[e]=r},t.prototype.initPlugins=function(){this.plugins=this.plugins||{};for(var e in t.__plugins)this.plugins[e]=new t.__plugins[e](this)},t.prototype.destroyPlugins=function(){for(var t in this.plugins)this.plugins[t].destroy(),this.plugins[t]=null;this.plugins=null}}r.__esModule=!0,r.default={mixin:function(t){n(t)}}},{}],129:[function(t,e,r){"use strict";function n(t){var e=t.width,r=t.height,n=t.getContext("2d"),i=n.getImageData(0,0,e,r),o=i.data,s=o.length,a={top:null,left:null,right:null,bottom:null},u=void 0,h=void 0,l=void 0;for(u=0;u<s;u+=4)0!==o[u+3]&&(h=u/4%e,l=~~(u/4/e),null===a.top&&(a.top=l),null===a.left?a.left=h:h<a.left&&(a.left=h),null===a.right?a.right=h+1:a.right<h&&(a.right=h+1),null===a.bottom?a.bottom=l:a.bottom<l&&(a.bottom=l));return e=a.right-a.left,r=a.bottom-a.top+1,{height:r,width:e,data:n.getImageData(a.left,a.top,e,r)}}r.__esModule=!0,r.default=n},{}],130:[function(t,e,r){"use strict";function n(t){}function i(t){var e=t.mesh,r=t.particles,i=t.extras,o=t.filters,s=t.prepare,a=t.loaders,u=t.interaction;Object.defineProperties(t,{SpriteBatch:{get:function(){throw new ReferenceError("SpriteBatch does not exist any more, please use the new ParticleContainer instead.")}},AssetLoader:{get:function(){throw new ReferenceError("The loader system was overhauled in PixiJS v3, please see the new PIXI.loaders.Loader class.")}},Stage:{get:function(){return n("You do not need to use a PIXI Stage any more, you can simply render any container."),t.Container}},DisplayObjectContainer:{get:function(){return n("DisplayObjectContainer has been shortened to Container, please use Container from now on."),t.Container}},Strip:{get:function(){return n("The Strip class has been renamed to Mesh and moved to mesh.Mesh, please use mesh.Mesh from now on."),e.Mesh}},Rope:{get:function(){return n("The Rope class has been moved to mesh.Rope, please use mesh.Rope from now on."),e.Rope}},ParticleContainer:{get:function(){return n("The ParticleContainer class has been moved to particles.ParticleContainer, please use particles.ParticleContainer from now on."),r.ParticleContainer}},MovieClip:{get:function(){return n("The MovieClip class has been moved to extras.AnimatedSprite, please use extras.AnimatedSprite."),i.AnimatedSprite}},TilingSprite:{get:function(){return n("The TilingSprite class has been moved to extras.TilingSprite, please use extras.TilingSprite from now on."),i.TilingSprite}},BitmapText:{get:function(){return n("The BitmapText class has been moved to extras.BitmapText, please use extras.BitmapText from now on."),i.BitmapText}},blendModes:{get:function(){return n("The blendModes has been moved to BLEND_MODES, please use BLEND_MODES from now on."),t.BLEND_MODES}},scaleModes:{get:function(){return n("The scaleModes has been moved to SCALE_MODES, please use SCALE_MODES from now on."),t.SCALE_MODES}},BaseTextureCache:{get:function(){return n("The BaseTextureCache class has been moved to utils.BaseTextureCache, please use utils.BaseTextureCache from now on."),t.utils.BaseTextureCache}},TextureCache:{get:function(){return n("The TextureCache class has been moved to utils.TextureCache, please use utils.TextureCache from now on."),t.utils.TextureCache}},math:{get:function(){return n("The math namespace is deprecated, please access members already accessible on PIXI."),t}},AbstractFilter:{get:function(){return n("AstractFilter has been renamed to Filter, please use PIXI.Filter"),t.Filter}},TransformManual:{get:function(){return n("TransformManual has been renamed to TransformBase, please update your pixi-spine"),t.TransformBase}},TARGET_FPMS:{get:function(){return n("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"),t.settings.TARGET_FPMS},set:function(e){n("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"),t.settings.TARGET_FPMS=e}},FILTER_RESOLUTION:{get:function(){return n("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"),t.settings.FILTER_RESOLUTION},set:function(e){n("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"),t.settings.FILTER_RESOLUTION=e}},RESOLUTION:{get:function(){return n("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"),t.settings.RESOLUTION},set:function(e){n("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"),t.settings.RESOLUTION=e}},MIPMAP_TEXTURES:{get:function(){return n("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"),t.settings.MIPMAP_TEXTURES},set:function(e){n("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"),t.settings.MIPMAP_TEXTURES=e}},SPRITE_BATCH_SIZE:{get:function(){return n("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"),t.settings.SPRITE_BATCH_SIZE},set:function(e){n("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"),t.settings.SPRITE_BATCH_SIZE=e}},SPRITE_MAX_TEXTURES:{get:function(){return n("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"),t.settings.SPRITE_MAX_TEXTURES},set:function(e){n("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"),t.settings.SPRITE_MAX_TEXTURES=e}},RETINA_PREFIX:{get:function(){return n("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"),t.settings.RETINA_PREFIX},set:function(e){n("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"),t.settings.RETINA_PREFIX=e}},DEFAULT_RENDER_OPTIONS:{get:function(){return n("PIXI.DEFAULT_RENDER_OPTIONS has been deprecated, please use PIXI.settings.DEFAULT_RENDER_OPTIONS"),t.settings.RENDER_OPTIONS}}});for(var h=[{parent:"TRANSFORM_MODE",target:"TRANSFORM_MODE"},{parent:"GC_MODES",target:"GC_MODE"},{parent:"WRAP_MODES",target:"WRAP_MODE"},{parent:"SCALE_MODES",target:"SCALE_MODE"},{parent:"PRECISION",target:"PRECISION_FRAGMENT"}],l=0;l<h.length;l++)!function(e){var r=h[e];Object.defineProperty(t[r.parent],"DEFAULT",{get:function(){return n("PIXI."+r.parent+".DEFAULT has been deprecated, please use PIXI.settings."+r.target),t.settings[r.target]},set:function(e){n("PIXI."+r.parent+".DEFAULT has been deprecated, please use PIXI.settings."+r.target),t.settings[r.target]=e}})}(l);Object.defineProperties(t.settings,{PRECISION:{get:function(){return n("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"),t.settings.PRECISION_FRAGMENT},set:function(e){n("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"),t.settings.PRECISION_FRAGMENT=e}}}),i.AnimatedSprite&&Object.defineProperties(i,{MovieClip:{get:function(){return n("The MovieClip class has been renamed to AnimatedSprite, please use AnimatedSprite from now on."),i.AnimatedSprite}}}),t.DisplayObject.prototype.generateTexture=function(t,e,r){return n("generateTexture has moved to the renderer, please use renderer.generateTexture(displayObject)"),t.generateTexture(this,e,r)},t.Graphics.prototype.generateTexture=function(t,e){return n("graphics generate texture has moved to the renderer. Or to render a graphics to a texture using canvas please use generateCanvasTexture"),this.generateCanvasTexture(t,e)},t.RenderTexture.prototype.render=function(t,e,r,i){this.legacyRenderer.render(t,this,r,e,!i),n("RenderTexture.render is now deprecated, please use renderer.render(displayObject, renderTexture)")},t.RenderTexture.prototype.getImage=function(t){return n("RenderTexture.getImage is now deprecated, please use renderer.extract.image(target)"),this.legacyRenderer.extract.image(t)},t.RenderTexture.prototype.getBase64=function(t){return n("RenderTexture.getBase64 is now deprecated, please use renderer.extract.base64(target)"),this.legacyRenderer.extract.base64(t)},t.RenderTexture.prototype.getCanvas=function(t){return n("RenderTexture.getCanvas is now deprecated, please use renderer.extract.canvas(target)"),this.legacyRenderer.extract.canvas(t)},t.RenderTexture.prototype.getPixels=function(t){return n("RenderTexture.getPixels is now deprecated, please use renderer.extract.pixels(target)"),this.legacyRenderer.pixels(t)},t.Sprite.prototype.setTexture=function(t){this.texture=t,n("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;")},i.BitmapText&&(i.BitmapText.prototype.setText=function(t){this.text=t,n("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';")}),t.Text.prototype.setText=function(t){this.text=t,n("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';")},t.Text.calculateFontProperties=function(e){return n("Text.calculateFontProperties is now deprecated, please use the TextMetrics.measureFont"),t.TextMetrics.measureFont(e)},Object.defineProperties(t.Text,{fontPropertiesCache:{get:function(){return n("Text.fontPropertiesCache is deprecated"),t.TextMetrics._fonts}},fontPropertiesCanvas:{get:function(){return n("Text.fontPropertiesCanvas is deprecated"),t.TextMetrics._canvas}},fontPropertiesContext:{get:function(){return n("Text.fontPropertiesContext is deprecated"),t.TextMetrics._context}}}),t.Text.prototype.setStyle=function(t){this.style=t,n("setStyle is now deprecated, please use the style property, e.g : myText.style = style;")},t.Text.prototype.determineFontProperties=function(e){return n("determineFontProperties is now deprecated, please use TextMetrics.measureFont method"),t.TextMetrics.measureFont(e)},t.Text.getFontStyle=function(e){return n("getFontStyle is now deprecated, please use TextStyle.toFontString() instead"),e=e||{},e instanceof t.TextStyle||(e=new t.TextStyle(e)),e.toFontString()},Object.defineProperties(t.TextStyle.prototype,{font:{get:function(){n("text style property 'font' is now deprecated, please use the 'fontFamily', 'fontSize', 'fontStyle', 'fontVariant' and 'fontWeight' properties from now on");var t="number"==typeof this._fontSize?this._fontSize+"px":this._fontSize;return this._fontStyle+" "+this._fontVariant+" "+this._fontWeight+" "+t+" "+this._fontFamily},set:function(t){n("text style property 'font' is now deprecated, please use the 'fontFamily','fontSize',fontStyle','fontVariant' and 'fontWeight' properties from now on"),t.indexOf("italic")>1?this._fontStyle="italic":t.indexOf("oblique")>-1?this._fontStyle="oblique":this._fontStyle="normal",t.indexOf("small-caps")>-1?this._fontVariant="small-caps":this._fontVariant="normal";var e=t.split(" "),r=-1;this._fontSize=26;for(var i=0;i<e.length;++i)if(e[i].match(/(px|pt|em|%)/)){r=i,this._fontSize=e[i];break}this._fontWeight="normal";for(var o=0;o<r;++o)if(e[o].match(/(bold|bolder|lighter|100|200|300|400|500|600|700|800|900)/)){this._fontWeight=e[o];break}if(r>-1&&r<e.length-1){this._fontFamily="";for(var s=r+1;s<e.length;++s)this._fontFamily+=e[s]+" ";this._fontFamily=this._fontFamily.slice(0,-1)}else this._fontFamily="Arial";this.styleID++}}}),t.Texture.prototype.setFrame=function(t){this.frame=t,n("setFrame is now deprecated, please use the frame property, e.g: myTexture.frame = frame;")},t.Texture.addTextureToCache=function(e,r){t.Texture.addToCache(e,r),n("Texture.addTextureToCache is deprecated, please use Texture.addToCache from now on.")},t.Texture.removeTextureFromCache=function(e){return n("Texture.removeTextureFromCache is deprecated, please use Texture.removeFromCache from now on. Be aware that Texture.removeFromCache does not automatically its BaseTexture from the BaseTextureCache. For that, use BaseTexture.removeFromCache"),t.BaseTexture.removeFromCache(e),t.Texture.removeFromCache(e)},Object.defineProperties(o,{AbstractFilter:{get:function(){return n("AstractFilter has been renamed to Filter, please use PIXI.Filter"),t.AbstractFilter}},SpriteMaskFilter:{get:function(){return n("filters.SpriteMaskFilter is an undocumented alias, please use SpriteMaskFilter from now on."),t.SpriteMaskFilter}}}),t.utils.uuid=function(){return n("utils.uuid() is deprecated, please use utils.uid() from now on."),t.utils.uid()},t.utils.canUseNewCanvasBlendModes=function(){return n("utils.canUseNewCanvasBlendModes() is deprecated, please use CanvasTinter.canUseMultiply from now on"),t.CanvasTinter.canUseMultiply};var c=!0;if(Object.defineProperty(t.utils,"_saidHello",{set:function(t){t&&(n("PIXI.utils._saidHello is deprecated, please use PIXI.utils.skipHello()"),this.skipHello()),c=t},get:function(){return c}}),s.BasePrepare&&(s.BasePrepare.prototype.register=function(t,e){return n("renderer.plugins.prepare.register is now deprecated, please use renderer.plugins.prepare.registerFindHook & renderer.plugins.prepare.registerUploadHook"),t&&this.registerFindHook(t),e&&this.registerUploadHook(e),this}),s.canvas&&Object.defineProperty(s.canvas,"UPLOADS_PER_FRAME",{set:function(){n("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")},get:function(){return n("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"),NaN}}),s.webgl&&Object.defineProperty(s.webgl,"UPLOADS_PER_FRAME",{set:function(){n("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")},get:function(){return n("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"),NaN}}),a.Loader){var d=a.Resource,f=a.Loader;Object.defineProperties(d.prototype,{isJson:{get:function(){return n("The isJson property is deprecated, please use `resource.type === Resource.TYPE.JSON`."),this.type===d.TYPE.JSON}},isXml:{get:function(){return n("The isXml property is deprecated, please use `resource.type === Resource.TYPE.XML`."),this.type===d.TYPE.XML}},isImage:{get:function(){return n("The isImage property is deprecated, please use `resource.type === Resource.TYPE.IMAGE`."),this.type===d.TYPE.IMAGE}},isAudio:{get:function(){return n("The isAudio property is deprecated, please use `resource.type === Resource.TYPE.AUDIO`."),this.type===d.TYPE.AUDIO}},isVideo:{get:function(){return n("The isVideo property is deprecated, please use `resource.type === Resource.TYPE.VIDEO`."),this.type===d.TYPE.VIDEO}}}),Object.defineProperties(f.prototype,{before:{get:function(){return n("The before() method is deprecated, please use pre()."),this.pre}},after:{get:function(){return n("The after() method is deprecated, please use use()."),this.use}}})}u.interactiveTarget&&Object.defineProperty(u.interactiveTarget,"defaultCursor",{set:function(t){n("Property defaultCursor has been replaced with 'cursor'. "),this.cursor=t},get:function(){return n("Property defaultCursor has been replaced with 'cursor'. "),this.cursor}}),u.InteractionManager&&(Object.defineProperty(u.InteractionManager,"defaultCursorStyle",{set:function(t){n("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "),this.cursorStyles.default=t},get:function(){return n("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "),this.cursorStyles.default}}),Object.defineProperty(u.InteractionManager,"currentCursorStyle",{set:function(t){n("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), | |
this.currentCursorMode=t},get:function(){return n("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."),this.currentCursorMode}}))}r.__esModule=!0,r.default=i},{}],131:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../core"),o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(i),s=new o.Rectangle,a=function(){function t(e){n(this,t),this.renderer=e,e.extract=this}return t.prototype.image=function(t){var e=new Image;return e.src=this.base64(t),e},t.prototype.base64=function(t){return this.canvas(t).toDataURL()},t.prototype.canvas=function(t){var e=this.renderer,r=void 0,n=void 0,i=void 0,a=void 0;t&&(a=t instanceof o.RenderTexture?t:e.generateTexture(t)),a?(r=a.baseTexture._canvasRenderTarget.context,n=a.baseTexture._canvasRenderTarget.resolution,i=a.frame):(r=e.rootContext,i=s,i.width=this.renderer.width,i.height=this.renderer.height);var u=i.width*n,h=i.height*n,l=new o.CanvasRenderTarget(u,h),c=r.getImageData(i.x*n,i.y*n,u,h);return l.context.putImageData(c,0,0),l.canvas},t.prototype.pixels=function(t){var e=this.renderer,r=void 0,n=void 0,i=void 0,a=void 0;return t&&(a=t instanceof o.RenderTexture?t:e.generateTexture(t)),a?(r=a.baseTexture._canvasRenderTarget.context,n=a.baseTexture._canvasRenderTarget.resolution,i=a.frame):(r=e.rootContext,i=s,i.width=e.width,i.height=e.height),r.getImageData(0,0,i.width*n,i.height*n).data},t.prototype.destroy=function(){this.renderer.extract=null,this.renderer=null},t}();r.default=a,o.CanvasRenderer.registerPlugin("extract",a)},{"../../core":65}],132:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./webgl/WebGLExtract");Object.defineProperty(r,"webgl",{enumerable:!0,get:function(){return n(i).default}});var o=t("./canvas/CanvasExtract");Object.defineProperty(r,"canvas",{enumerable:!0,get:function(){return n(o).default}})},{"./canvas/CanvasExtract":131,"./webgl/WebGLExtract":133}],133:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../core"),o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(i),s=new o.Rectangle,a=function(){function t(e){n(this,t),this.renderer=e,e.extract=this}return t.prototype.image=function(t){var e=new Image;return e.src=this.base64(t),e},t.prototype.base64=function(t){return this.canvas(t).toDataURL()},t.prototype.canvas=function(t){var e=this.renderer,r=void 0,n=void 0,i=void 0,a=!1,u=void 0;t&&(u=t instanceof o.RenderTexture?t:this.renderer.generateTexture(t)),u?(r=u.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID],n=r.resolution,i=u.frame,a=!1):(r=this.renderer.rootRenderTarget,n=r.resolution,a=!0,i=s,i.width=r.size.width,i.height=r.size.height);var h=i.width*n,l=i.height*n,c=new o.CanvasRenderTarget(h,l);if(r){e.bindRenderTarget(r);var d=new Uint8Array(4*h*l),f=e.gl;f.readPixels(i.x*n,i.y*n,h,l,f.RGBA,f.UNSIGNED_BYTE,d);var p=c.context.getImageData(0,0,h,l);p.data.set(d),c.context.putImageData(p,0,0),a&&(c.context.scale(1,-1),c.context.drawImage(c.canvas,0,-l))}return c.canvas},t.prototype.pixels=function(t){var e=this.renderer,r=void 0,n=void 0,i=void 0,a=void 0;t&&(a=t instanceof o.RenderTexture?t:this.renderer.generateTexture(t)),a?(r=a.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID],n=r.resolution,i=a.frame):(r=this.renderer.rootRenderTarget,n=r.resolution,i=s,i.width=r.size.width,i.height=r.size.height);var u=i.width*n,h=i.height*n,l=new Uint8Array(4*u*h);if(r){e.bindRenderTarget(r);var c=e.gl;c.readPixels(i.x*n,i.y*n,u,h,c.RGBA,c.UNSIGNED_BYTE,l)}return l},t.prototype.destroy=function(){this.renderer.extract=null,this.renderer=null},t}();r.default=a,o.WebGLRenderer.registerPlugin("extract",a)},{"../../core":65}],134:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=function(t){function e(r,o){n(this,e);var s=i(this,t.call(this,r[0]instanceof u.Texture?r[0]:r[0].texture));return s._textures=null,s._durations=null,s.textures=r,s._autoUpdate=!1!==o,s.animationSpeed=1,s.loop=!0,s.onComplete=null,s.onFrameChange=null,s.onLoop=null,s._currentTime=0,s.playing=!1,s}return o(e,t),e.prototype.stop=function(){this.playing&&(this.playing=!1,this._autoUpdate&&u.ticker.shared.remove(this.update,this))},e.prototype.play=function(){this.playing||(this.playing=!0,this._autoUpdate&&u.ticker.shared.add(this.update,this,u.UPDATE_PRIORITY.HIGH))},e.prototype.gotoAndStop=function(t){this.stop();var e=this.currentFrame;this._currentTime=t,e!==this.currentFrame&&this.updateTexture()},e.prototype.gotoAndPlay=function(t){var e=this.currentFrame;this._currentTime=t,e!==this.currentFrame&&this.updateTexture(),this.play()},e.prototype.update=function(t){var e=this.animationSpeed*t,r=this.currentFrame;if(null!==this._durations){var n=this._currentTime%1*this._durations[this.currentFrame];for(n+=e/60*1e3;n<0;)this._currentTime--,n+=this._durations[this.currentFrame];var i=Math.sign(this.animationSpeed*t);for(this._currentTime=Math.floor(this._currentTime);n>=this._durations[this.currentFrame];)n-=this._durations[this.currentFrame]*i,this._currentTime+=i;this._currentTime+=n/this._durations[this.currentFrame]}else this._currentTime+=e;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):r!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFrame<r?this.onLoop():this.animationSpeed<0&&this.currentFrame>r&&this.onLoop()),this.updateTexture())},e.prototype.updateTexture=function(){this._texture=this._textures[this.currentFrame],this._textureID=-1,this.cachedTint=16777215,this.onFrameChange&&this.onFrameChange(this.currentFrame)},e.prototype.destroy=function(e){this.stop(),t.prototype.destroy.call(this,e)},e.fromFrames=function(t){for(var r=[],n=0;n<t.length;++n)r.push(u.Texture.fromFrame(t[n]));return new e(r)},e.fromImages=function(t){for(var r=[],n=0;n<t.length;++n)r.push(u.Texture.fromImage(t[n]));return new e(r)},s(e,[{key:"totalFrames",get:function(){return this._textures.length}},{key:"textures",get:function(){return this._textures},set:function(t){if(t[0]instanceof u.Texture)this._textures=t,this._durations=null;else{this._textures=[],this._durations=[];for(var e=0;e<t.length;e++)this._textures.push(t[e].texture),this._durations.push(t[e].time)}this.gotoAndStop(0),this.updateTexture()}},{key:"currentFrame",get:function(){var t=Math.floor(this._currentTime)%this._textures.length;return t<0&&(t+=this._textures.length),t}}]),e}(u.Sprite);r.default=h},{"../core":65}],135:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../core"),h=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(u),l=t("../core/math/ObservablePoint"),c=n(l),d=t("../core/settings"),f=n(d),p=function(t){function e(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i(this,e);var s=o(this,t.call(this));return s._textWidth=0,s._textHeight=0,s._glyphs=[],s._font={tint:void 0!==n.tint?n.tint:16777215,align:n.align||"left",name:null,size:0},s.font=n.font,s._text=r,s._maxWidth=0,s._maxLineHeight=0,s._anchor=new c.default(function(){s.dirty=!0},s,0,0),s.dirty=!1,s.updateText(),s}return s(e,t),e.prototype.updateText=function(){for(var t=e.fonts[this._font.name],r=this._font.size/t.size,n=new h.Point,i=[],o=[],s=null,a=0,u=0,l=0,c=-1,d=0,f=0,p=0,v=0;v<this.text.length;v++){var y=this.text.charCodeAt(v);if(/(\s)/.test(this.text.charAt(v))&&(c=v,d=a),/(?:\r\n|\r|\n)/.test(this.text.charAt(v)))o.push(a),u=Math.max(u,a),l++,n.x=0,n.y+=t.lineHeight,s=null;else if(-1!==c&&this._maxWidth>0&&n.x*r>this._maxWidth)h.utils.removeItems(i,c-f,v-c),v=c,c=-1,++f,o.push(d),u=Math.max(u,d),l++,n.x=0,n.y+=t.lineHeight,s=null;else{var g=t.chars[y];g&&(s&&g.kerning[s]&&(n.x+=g.kerning[s]),i.push({texture:g.texture,line:l,charCode:y,position:new h.Point(n.x+g.xOffset,n.y+g.yOffset)}),a=n.x+(g.texture.width+g.xOffset),n.x+=g.xAdvance,p=Math.max(p,g.yOffset+g.texture.height),s=y)}}o.push(a),u=Math.max(u,a);for(var m=[],_=0;_<=l;_++){var b=0;"right"===this._font.align?b=u-o[_]:"center"===this._font.align&&(b=(u-o[_])/2),m.push(b)}for(var x=i.length,T=this.tint,w=0;w<x;w++){var E=this._glyphs[w];E?E.texture=i[w].texture:(E=new h.Sprite(i[w].texture),this._glyphs.push(E)),E.position.x=(i[w].position.x+m[i[w].line])*r,E.position.y=i[w].position.y*r,E.scale.x=E.scale.y=r,E.tint=T,E.parent||this.addChild(E)}for(var S=x;S<this._glyphs.length;++S)this.removeChild(this._glyphs[S]);if(this._textWidth=u*r,this._textHeight=(n.y+t.lineHeight)*r,0!==this.anchor.x||0!==this.anchor.y)for(var O=0;O<x;O++)this._glyphs[O].x-=this._textWidth*this.anchor.x,this._glyphs[O].y-=this._textHeight*this.anchor.y;this._maxLineHeight=p*r},e.prototype.updateTransform=function(){this.validate(),this.containerUpdateTransform()},e.prototype.getLocalBounds=function(){return this.validate(),t.prototype.getLocalBounds.call(this)},e.prototype.validate=function(){this.dirty&&(this.updateText(),this.dirty=!1)},e.registerFont=function(t,r){var n={},i=t.getElementsByTagName("info")[0],o=t.getElementsByTagName("common")[0],s=r.baseTexture.resolution||f.default.RESOLUTION;n.font=i.getAttribute("face"),n.size=parseInt(i.getAttribute("size"),10),n.lineHeight=parseInt(o.getAttribute("lineHeight"),10)/s,n.chars={};for(var a=t.getElementsByTagName("char"),u=0;u<a.length;u++){var l=a[u],c=parseInt(l.getAttribute("id"),10),d=new h.Rectangle(parseInt(l.getAttribute("x"),10)/s+r.frame.x/s,parseInt(l.getAttribute("y"),10)/s+r.frame.y/s,parseInt(l.getAttribute("width"),10)/s,parseInt(l.getAttribute("height"),10)/s);n.chars[c]={xOffset:parseInt(l.getAttribute("xoffset"),10)/s,yOffset:parseInt(l.getAttribute("yoffset"),10)/s,xAdvance:parseInt(l.getAttribute("xadvance"),10)/s,kerning:{},texture:new h.Texture(r.baseTexture,d)}}for(var p=t.getElementsByTagName("kerning"),v=0;v<p.length;v++){var y=p[v],g=parseInt(y.getAttribute("first"),10)/s,m=parseInt(y.getAttribute("second"),10)/s,_=parseInt(y.getAttribute("amount"),10)/s;n.chars[m]&&(n.chars[m].kerning[g]=_)}return e.fonts[n.font]=n,n},a(e,[{key:"tint",get:function(){return this._font.tint},set:function(t){this._font.tint="number"==typeof t&&t>=0?t:16777215,this.dirty=!0}},{key:"align",get:function(){return this._font.align},set:function(t){this._font.align=t||"left",this.dirty=!0}},{key:"anchor",get:function(){return this._anchor},set:function(t){"number"==typeof t?this._anchor.set(t):this._anchor.copy(t)}},{key:"font",get:function(){return this._font},set:function(t){t&&("string"==typeof t?(t=t.split(" "),this._font.name=1===t.length?t[0]:t.slice(1).join(" "),this._font.size=t.length>=2?parseInt(t[0],10):e.fonts[this._font.name].size):(this._font.name=t.name,this._font.size="number"==typeof t.size?t.size:parseInt(t.size,10)),this.dirty=!0)}},{key:"text",get:function(){return this._text},set:function(t){t=t.toString()||" ",this._text!==t&&(this._text=t,this.dirty=!0)}},{key:"maxWidth",get:function(){return this._maxWidth},set:function(t){this._maxWidth!==t&&(this._maxWidth=t,this.dirty=!0)}},{key:"maxLineHeight",get:function(){return this.validate(),this._maxLineHeight}},{key:"textWidth",get:function(){return this.validate(),this._textWidth}},{key:"textHeight",get:function(){return this.validate(),this._textHeight}}]),e}(h.Container);r.default=p,p.fonts={}},{"../core":65,"../core/math/ObservablePoint":68,"../core/settings":101}],136:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=t("../core/math/Matrix"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=new s.default,u=function(){function t(e,r){n(this,t),this._texture=e,this.mapCoord=new s.default,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._lastTextureID=-1,this.clampOffset=0,this.clampMargin=void 0===r?.5:r}return t.prototype.multiplyUvs=function(t,e){void 0===e&&(e=t);for(var r=this.mapCoord,n=0;n<t.length;n+=2){var i=t[n],o=t[n+1];e[n]=i*r.a+o*r.c+r.tx,e[n+1]=i*r.b+o*r.d+r.ty}return e},t.prototype.update=function(t){var e=this._texture;if(!e||!e.valid)return!1;if(!t&&this._lastTextureID===e._updateID)return!1;this._lastTextureID=e._updateID;var r=e._uvs;this.mapCoord.set(r.x1-r.x0,r.y1-r.y0,r.x3-r.x0,r.y3-r.y0,r.x0,r.y0);var n=e.orig,i=e.trim;i&&(a.set(n.width/i.width,0,0,n.height/i.height,-i.x/i.width,-i.y/i.height),this.mapCoord.append(a));var o=e.baseTexture,s=this.uClampFrame,u=this.clampMargin/o.resolution,h=this.clampOffset;return s[0]=(e._frame.x+u+h)/o.width,s[1]=(e._frame.y+u+h)/o.height,s[2]=(e._frame.x+e._frame.width-u+h)/o.width,s[3]=(e._frame.y+e._frame.height-u+h)/o.height,this.uClampOffset[0]=h/o.realWidth,this.uClampOffset[1]=h/o.realHeight,!0},i(t,[{key:"texture",get:function(){return this._texture},set:function(t){this._texture=t,this._lastTextureID=-1}}]),t}();r.default=u},{"../core/math/Matrix":67}],137:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../core"),h=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(u),l=t("../core/sprites/canvas/CanvasTinter"),c=n(l),d=t("./TextureTransform"),f=n(d),p=new h.Point,v=function(t){function e(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100;i(this,e);var a=o(this,t.call(this,r));return a.tileTransform=new h.TransformStatic,a._width=n,a._height=s,a._canvasPattern=null,a.uvTransform=r.transform||new f.default(r),a.pluginName="tilingSprite",a.uvRespectAnchor=!1,a}return s(e,t),e.prototype._onTextureUpdate=function(){this.uvTransform&&(this.uvTransform.texture=this._texture),this.cachedTint=16777215},e.prototype._renderWebGL=function(t){var e=this._texture;e&&e.valid&&(this.tileTransform.updateLocalTransform(),this.uvTransform.update(),t.setObjectRenderer(t.plugins[this.pluginName]),t.plugins[this.pluginName].render(this))},e.prototype._renderCanvas=function(t){var e=this._texture;if(e.baseTexture.hasLoaded){var r=t.context,n=this.worldTransform,i=t.resolution,o=e.baseTexture,s=o.resolution,a=this.tilePosition.x/this.tileScale.x%e._frame.width*s,u=this.tilePosition.y/this.tileScale.y%e._frame.height*s;if(this._textureID!==this._texture._updateID||this.cachedTint!==this.tint){this._textureID=this._texture._updateID;var l=new h.CanvasRenderTarget(e._frame.width,e._frame.height,s);16777215!==this.tint?(this.tintedTexture=c.default.getTintedTexture(this,this.tint),l.context.drawImage(this.tintedTexture,0,0)):l.context.drawImage(o.source,-e._frame.x*s,-e._frame.y*s),this.cachedTint=this.tint,this._canvasPattern=l.context.createPattern(l.canvas,"repeat")}r.globalAlpha=this.worldAlpha,r.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i,n.ty*i),t.setBlendMode(this.blendMode),r.fillStyle=this._canvasPattern,r.scale(this.tileScale.x/s,this.tileScale.y/s);var d=this.anchor.x*-this._width,f=this.anchor.y*-this._height;this.uvRespectAnchor?(r.translate(a,u),r.fillRect(-a+d,-u+f,this._width/this.tileScale.x*s,this._height/this.tileScale.y*s)):(r.translate(a+d,u+f),r.fillRect(-a,-u,this._width/this.tileScale.x*s,this._height/this.tileScale.y*s))}},e.prototype._calculateBounds=function(){var t=this._width*-this._anchor._x,e=this._height*-this._anchor._y,r=this._width*(1-this._anchor._x),n=this._height*(1-this._anchor._y);this._bounds.addFrame(this.transform,t,e,r,n)},e.prototype.getLocalBounds=function(e){return 0===this.children.length?(this._bounds.minX=this._width*-this._anchor._x,this._bounds.minY=this._height*-this._anchor._y,this._bounds.maxX=this._width*(1-this._anchor._x),this._bounds.maxY=this._height*(1-this._anchor._x),e||(this._localBoundsRect||(this._localBoundsRect=new h.Rectangle),e=this._localBoundsRect),this._bounds.getRectangle(e)):t.prototype.getLocalBounds.call(this,e)},e.prototype.containsPoint=function(t){this.worldTransform.applyInverse(t,p);var e=this._width,r=this._height,n=-e*this.anchor._x;if(p.x>=n&&p.x<n+e){var i=-r*this.anchor._y;if(p.y>=i&&p.y<i+r)return!0}return!1},e.prototype.destroy=function(e){t.prototype.destroy.call(this,e),this.tileTransform=null,this.uvTransform=null},e.from=function(t,r,n){return new e(h.Texture.from(t),r,n)},e.fromFrame=function(t,r,n){var i=h.utils.TextureCache[t];if(!i)throw new Error('The frameId "'+t+'" does not exist in the texture cache '+this);return new e(i,r,n)},e.fromImage=function(t,r,n,i,o){return new e(h.Texture.fromImage(t,i,o),r,n)},a(e,[{key:"clampMargin",get:function(){return this.uvTransform.clampMargin},set:function(t){this.uvTransform.clampMargin=t,this.uvTransform.update(!0)}},{key:"tileScale",get:function(){return this.tileTransform.scale},set:function(t){this.tileTransform.scale.copy(t)}},{key:"tilePosition",get:function(){return this.tileTransform.position},set:function(t){this.tileTransform.position.copy(t)}},{key:"width",get:function(){return this._width},set:function(t){this._width=t}},{key:"height",get:function(){return this._height},set:function(t){this._height=t}}]),e}(h.Sprite);r.default=v},{"../core":65,"../core/sprites/canvas/CanvasTinter":104,"./TextureTransform":136}],138:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=t("../core"),s=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(o),a=t("../core/textures/Texture"),u=n(a),h=t("../core/textures/BaseTexture"),l=n(h),c=t("../core/utils"),d=s.DisplayObject,f=new s.Matrix;d.prototype._cacheAsBitmap=!1,d.prototype._cacheData=!1;var p=function t(){i(this,t),this.textureCacheId=null,this.originalRenderWebGL=null,this.originalRenderCanvas=null,this.originalCalculateBounds=null,this.originalGetLocalBounds=null,this.originalUpdateTransform=null,this.originalHitTest=null,this.originalDestroy=null,this.originalMask=null,this.originalFilterArea=null,this.sprite=null};Object.defineProperties(d.prototype,{cacheAsBitmap:{get:function(){return this._cacheAsBitmap},set:function(t){if(this._cacheAsBitmap!==t){this._cacheAsBitmap=t;var e=void 0;t?(this._cacheData||(this._cacheData=new p),e=this._cacheData,e.originalRenderWebGL=this.renderWebGL,e.originalRenderCanvas=this.renderCanvas,e.originalUpdateTransform=this.updateTransform,e.originalCalculateBounds=this._calculateBounds,e.originalGetLocalBounds=this.getLocalBounds,e.originalDestroy=this.destroy,e.originalContainsPoint=this.containsPoint,e.originalMask=this._mask,e.originalFilterArea=this.filterArea,this.renderWebGL=this._renderCachedWebGL,this.renderCanvas=this._renderCachedCanvas,this.destroy=this._cacheAsBitmapDestroy):(e=this._cacheData,e.sprite&&this._destroyCachedDisplayObject(),this.renderWebGL=e.originalRenderWebGL,this.renderCanvas=e.originalRenderCanvas,this._calculateBounds=e.originalCalculateBounds,this.getLocalBounds=e.originalGetLocalBounds,this.destroy=e.originalDestroy,this.updateTransform=e.originalUpdateTransform,this.containsPoint=e.originalContainsPoint,this._mask=e.originalMask,this.filterArea=e.originalFilterArea)}}}}),d.prototype._renderCachedWebGL=function(t){!this.visible||this.worldAlpha<=0||!this.renderable||(this._initCachedDisplayObject(t),this._cacheData.sprite._transformID=-1,this._cacheData.sprite.worldAlpha=this.worldAlpha,this._cacheData.sprite._renderWebGL(t))},d.prototype._initCachedDisplayObject=function(t){if(!this._cacheData||!this._cacheData.sprite){var e=this.alpha;this.alpha=1,t.currentRenderer.flush();var r=this.getLocalBounds().clone();if(this._filters){var n=this._filters[0].padding;r.pad(n)}var i=t._activeRenderTarget,o=t.filterManager.filterStack,a=s.RenderTexture.create(0|r.width,0|r.height),h="cacheAsBitmap_"+(0,c.uid)();this._cacheData.textureCacheId=h,l.default.addToCache(a.baseTexture,h),u.default.addToCache(a,h);var d=f;d.tx=-r.x,d.ty=-r.y,this.transform.worldTransform.identity(),this.renderWebGL=this._cacheData.originalRenderWebGL,t.render(this,a,!0,d,!0),t.bindRenderTarget(i),t.filterManager.filterStack=o,this.renderWebGL=this._renderCachedWebGL,this.updateTransform=this.displayObjectUpdateTransform,this._mask=null,this.filterArea=null;var p=new s.Sprite(a);p.transform.worldTransform=this.transform.worldTransform,p.anchor.x=-r.x/r.width,p.anchor.y=-r.y/r.height,p.alpha=e,p._bounds=this._bounds,this._calculateBounds=this._calculateCachedBounds,this.getLocalBounds=this._getCachedLocalBounds,this._cacheData.sprite=p,this.transform._parentID=-1,this.parent?this.updateTransform():(this.parent=t._tempDisplayObjectParent,this.updateTransform(),this.parent=null),this.containsPoint=p.containsPoint.bind(p)}},d.prototype._renderCachedCanvas=function(t){!this.visible||this.worldAlpha<=0||!this.renderable||(this._initCachedDisplayObjectCanvas(t),this._cacheData.sprite.worldAlpha=this.worldAlpha,this._cacheData.sprite.renderCanvas(t))},d.prototype._initCachedDisplayObjectCanvas=function(t){if(!this._cacheData||!this._cacheData.sprite){var e=this.getLocalBounds(),r=this.alpha;this.alpha=1;var n=t.context,i=s.RenderTexture.create(0|e.width,0|e.height),o="cacheAsBitmap_"+(0,c.uid)();this._cacheData.textureCacheId=o,l.default.addToCache(i.baseTexture,o),u.default.addToCache(i,o);var a=f;this.transform.localTransform.copy(a),a.invert(),a.tx-=e.x,a.ty-=e.y,this.renderCanvas=this._cacheData.originalRenderCanvas,t.render(this,i,!0,a,!1),t.context=n,this.renderCanvas=this._renderCachedCanvas,this._calculateBounds=this._calculateCachedBounds,this._mask=null,this.filterArea=null;var h=new s.Sprite(i);h.transform.worldTransform=this.transform.worldTransform,h.anchor.x=-e.x/e.width,h.anchor.y=-e.y/e.height,h._bounds=this._bounds,h.alpha=r,this.parent?this.updateTransform():(this.parent=t._tempDisplayObjectParent,this.updateTransform(),this.parent=null),this.updateTransform=this.displayObjectUpdateTransform,this._cacheData.sprite=h,this.containsPoint=h.containsPoint.bind(h)}},d.prototype._calculateCachedBounds=function(){this._cacheData.sprite._calculateBounds()},d.prototype._getCachedLocalBounds=function(){return this._cacheData.sprite.getLocalBounds()},d.prototype._destroyCachedDisplayObject=function(){this._cacheData.sprite._texture.destroy(!0),this._cacheData.sprite=null,l.default.removeFromCache(this._cacheData.textureCacheId),u.default.removeFromCache(this._cacheData.textureCacheId),this._cacheData.textureCacheId=null},d.prototype._cacheAsBitmapDestroy=function(t){this.cacheAsBitmap=!1,this.destroy(t)}},{"../core":65,"../core/textures/BaseTexture":112,"../core/textures/Texture":115,"../core/utils":124}],139:[function(t,e,r){"use strict";var n=t("../core"),i=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(n);i.DisplayObject.prototype.name=null,i.Container.prototype.getChildByName=function(t){for(var e=0;e<this.children.length;e++)if(this.children[e].name===t)return this.children[e];return null}},{"../core":65}],140:[function(t,e,r){"use strict";var n=t("../core"),i=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(n);i.DisplayObject.prototype.getGlobalPosition=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new i.Point,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.parent?this.parent.toGlobal(this.position,t,e):(t.x=this.position.x,t.y=this.position.y),t}},{"../core":65}],141:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0,r.BitmapText=r.TilingSpriteRenderer=r.TilingSprite=r.TextureTransform=r.AnimatedSprite=void 0;var i=t("./AnimatedSprite");Object.defineProperty(r,"AnimatedSprite",{enumerable:!0,get:function(){return n(i).default}});var o=t("./TextureTransform");Object.defineProperty(r,"TextureTransform",{enumerable:!0,get:function(){return n(o).default}});var s=t("./TilingSprite");Object.defineProperty(r,"TilingSprite",{enumerable:!0,get:function(){return n(s).default}});var a=t("./webgl/TilingSpriteRenderer");Object.defineProperty(r,"TilingSpriteRenderer",{enumerable:!0,get:function(){return n(a).default}});var u=t("./BitmapText");Object.defineProperty(r,"BitmapText",{enumerable:!0,get:function(){return n(u).default}}),t("./cacheAsBitmap"),t("./getChildByName"),t("./getGlobalPosition")},{"./AnimatedSprite":134,"./BitmapText":135,"./TextureTransform":136,"./TilingSprite":137,"./cacheAsBitmap":138,"./getChildByName":139,"./getGlobalPosition":140,"./webgl/TilingSpriteRenderer":142}],142:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../core"),a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(s),u=t("../../core/const"),h=(t("path"),new a.Matrix),l=function(t){function e(r){n(this,e);var o=i(this,t.call(this,r));return o.shader=null,o.simpleShader=null,o.quad=null,o}return o(e,t),e.prototype.onContextChange=function(){var t=this.renderer.gl;this.shader=new a.Shader(t,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n","varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n vec4 sample = texture2D(uSampler, coord);\n gl_FragColor = sample * uColor;\n}\n"),this.simpleShader=new a.Shader(t,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n","varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n vec4 sample = texture2D(uSampler, vTextureCoord);\n gl_FragColor = sample * uColor;\n}\n"),this.renderer.bindVao(null),this.quad=new a.Quad(t,this.renderer.state.attribState),this.quad.initVao(this.shader)},e.prototype.render=function(t){var e=this.renderer,r=this.quad;e.bindVao(r.vao);var n=r.vertices;n[0]=n[6]=t._width*-t.anchor.x,n[1]=n[3]=t._height*-t.anchor.y,n[2]=n[4]=t._width*(1-t.anchor.x),n[5]=n[7]=t._height*(1-t.anchor.y),t.uvRespectAnchor&&(n=r.uvs,n[0]=n[6]=-t.anchor.x,n[1]=n[3]=-t.anchor.y,n[2]=n[4]=1-t.anchor.x,n[5]=n[7]=1-t.anchor.y),r.upload();var i=t._texture,o=i.baseTexture,s=t.tileTransform.localTransform,l=t.uvTransform,c=o.isPowerOfTwo&&i.frame.width===o.width&&i.frame.height===o.height;c&&(o._glTextures[e.CONTEXT_UID]?c=o.wrapMode!==u.WRAP_MODES.CLAMP:o.wrapMode===u.WRAP_MODES.CLAMP&&(o.wrapMode=u.WRAP_MODES.REPEAT));var d=c?this.simpleShader:this.shader;e.bindShader(d);var f=i.width,p=i.height,v=t._width,y=t._height;h.set(s.a*f/v,s.b*f/y,s.c*p/v,s.d*p/y,s.tx/v,s.ty/y),h.invert(),c?h.prepend(l.mapCoord):(d.uniforms.uMapCoord=l.mapCoord.toArray(!0),d.uniforms.uClampFrame=l.uClampFrame,d.uniforms.uClampOffset=l.uClampOffset),d.uniforms.uTransform=h.toArray(!0),d.uniforms.uColor=a.utils.premultiplyTintToRgba(t.tint,t.worldAlpha,d.uniforms.uColor,o.premultipliedAlpha),d.uniforms.translationMatrix=t.transform.worldTransform.toArray(!0),d.uniforms.uSampler=e.bindTexture(i), | |
e.setBlendMode(a.utils.correctBlendMode(t.blendMode,o.premultipliedAlpha)),r.vao.draw(this.renderer.gl.TRIANGLES,6,0)},e}(a.ObjectRenderer);r.default=l,a.WebGLRenderer.registerPlugin("tilingSprite",l)},{"../../core":65,"../../core/const":46,path:8}],143:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../../core"),h=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(u),l=t("./BlurXFilter"),c=n(l),d=t("./BlurYFilter"),f=n(d),p=function(t){function e(r,n,s,a){i(this,e);var u=o(this,t.call(this));return u.blurXFilter=new c.default(r,n,s,a),u.blurYFilter=new f.default(r,n,s,a),u.padding=0,u.resolution=s||h.settings.RESOLUTION,u.quality=n||4,u.blur=r||8,u}return s(e,t),e.prototype.apply=function(t,e,r){var n=t.getRenderTarget(!0);this.blurXFilter.apply(t,e,n,!0),this.blurYFilter.apply(t,n,r,!1),t.returnRenderTarget(n)},a(e,[{key:"blur",get:function(){return this.blurXFilter.blur},set:function(t){this.blurXFilter.blur=this.blurYFilter.blur=t,this.padding=2*Math.max(Math.abs(this.blurXFilter.strength),Math.abs(this.blurYFilter.strength))}},{key:"quality",get:function(){return this.blurXFilter.quality},set:function(t){this.blurXFilter.quality=this.blurYFilter.quality=t}},{key:"blurX",get:function(){return this.blurXFilter.blur},set:function(t){this.blurXFilter.blur=t,this.padding=2*Math.max(Math.abs(this.blurXFilter.strength),Math.abs(this.blurYFilter.strength))}},{key:"blurY",get:function(){return this.blurYFilter.blur},set:function(t){this.blurYFilter.blur=t,this.padding=2*Math.max(Math.abs(this.blurXFilter.strength),Math.abs(this.blurYFilter.strength))}},{key:"blendMode",get:function(){return this.blurYFilter._blendMode},set:function(t){this.blurYFilter._blendMode=t}}]),e}(h.Filter);r.default=p},{"../../core":65,"./BlurXFilter":144,"./BlurYFilter":145}],144:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../../core"),h=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(u),l=t("./generateBlurVertSource"),c=n(l),d=t("./generateBlurFragSource"),f=n(d),p=t("./getMaxBlurKernelSize"),v=n(p),y=function(t){function e(r,n,s,a){i(this,e),a=a||5;var u=(0,c.default)(a,!0),l=(0,f.default)(a),d=o(this,t.call(this,u,l));return d.resolution=s||h.settings.RESOLUTION,d._quality=0,d.quality=n||4,d.strength=r||8,d.firstRun=!0,d}return s(e,t),e.prototype.apply=function(t,e,r,n){if(this.firstRun){var i=t.renderer.gl,o=(0,v.default)(i);this.vertexSrc=(0,c.default)(o,!0),this.fragmentSrc=(0,f.default)(o),this.firstRun=!1}if(this.uniforms.strength=1/r.size.width*(r.size.width/e.size.width),this.uniforms.strength*=this.strength,this.uniforms.strength/=this.passes,1===this.passes)t.applyFilter(this,e,r,n);else{for(var s=t.getRenderTarget(!0),a=e,u=s,h=0;h<this.passes-1;h++){t.applyFilter(this,a,u,!0);var l=u;u=a,a=l}t.applyFilter(this,a,r,n),t.returnRenderTarget(s)}},a(e,[{key:"blur",get:function(){return this.strength},set:function(t){this.padding=2*Math.abs(t),this.strength=t}},{key:"quality",get:function(){return this._quality},set:function(t){this._quality=t,this.passes=t}}]),e}(h.Filter);r.default=y},{"../../core":65,"./generateBlurFragSource":146,"./generateBlurVertSource":147,"./getMaxBlurKernelSize":148}],145:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),u=t("../../core"),h=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(u),l=t("./generateBlurVertSource"),c=n(l),d=t("./generateBlurFragSource"),f=n(d),p=t("./getMaxBlurKernelSize"),v=n(p),y=function(t){function e(r,n,s,a){i(this,e),a=a||5;var u=(0,c.default)(a,!1),l=(0,f.default)(a),d=o(this,t.call(this,u,l));return d.resolution=s||h.settings.RESOLUTION,d._quality=0,d.quality=n||4,d.strength=r||8,d.firstRun=!0,d}return s(e,t),e.prototype.apply=function(t,e,r,n){if(this.firstRun){var i=t.renderer.gl,o=(0,v.default)(i);this.vertexSrc=(0,c.default)(o,!1),this.fragmentSrc=(0,f.default)(o),this.firstRun=!1}if(this.uniforms.strength=1/r.size.height*(r.size.height/e.size.height),this.uniforms.strength*=this.strength,this.uniforms.strength/=this.passes,1===this.passes)t.applyFilter(this,e,r,n);else{for(var s=t.getRenderTarget(!0),a=e,u=s,h=0;h<this.passes-1;h++){t.applyFilter(this,a,u,!0);var l=u;u=a,a=l}t.applyFilter(this,a,r,n),t.returnRenderTarget(s)}},a(e,[{key:"blur",get:function(){return this.strength},set:function(t){this.padding=2*Math.abs(t),this.strength=t}},{key:"quality",get:function(){return this._quality},set:function(t){this._quality=t,this.passes=t}}]),e}(h.Filter);r.default=y},{"../../core":65,"./generateBlurFragSource":146,"./generateBlurVertSource":147,"./getMaxBlurKernelSize":148}],146:[function(t,e,r){"use strict";function n(t){for(var e=i[t],r=e.length,n=o,s="",a="gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;",u=void 0,h=0;h<t;h++){var l=a.replace("%index%",h);u=h,h>=r&&(u=t-h-1),l=l.replace("%value%",e[u]),s+=l,s+="\n"}return n=n.replace("%blur%",s),n=n.replace("%size%",t)}r.__esModule=!0,r.default=n;var i={5:[.153388,.221461,.250301],7:[.071303,.131514,.189879,.214607],9:[.028532,.067234,.124009,.179044,.20236],11:[.0093,.028002,.065984,.121703,.175713,.198596],13:[.002406,.009255,.027867,.065666,.121117,.174868,.197641],15:[489e-6,.002403,.009246,.02784,.065602,.120999,.174697,.197448]},o=["varying vec2 vBlurTexCoords[%size%];","uniform sampler2D uSampler;","void main(void)","{"," gl_FragColor = vec4(0.0);"," %blur%","}"].join("\n")},{}],147:[function(t,e,r){"use strict";function n(t,e){var r=Math.ceil(t/2),n=i,o="",s=void 0;s=e?"vBlurTexCoords[%index%] = aTextureCoord + vec2(%sampleIndex% * strength, 0.0);":"vBlurTexCoords[%index%] = aTextureCoord + vec2(0.0, %sampleIndex% * strength);";for(var a=0;a<t;a++){var u=s.replace("%index%",a);u=u.replace("%sampleIndex%",a-(r-1)+".0"),o+=u,o+="\n"}return n=n.replace("%blur%",o),n=n.replace("%size%",t)}r.__esModule=!0,r.default=n;var i=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform float strength;","uniform mat3 projectionMatrix;","varying vec2 vBlurTexCoords[%size%];","void main(void)","{","gl_Position = vec4((projectionMatrix * vec3((aVertexPosition), 1.0)).xy, 0.0, 1.0);","%blur%","}"].join("\n")},{}],148:[function(t,e,r){"use strict";function n(t){for(var e=t.getParameter(t.MAX_VARYING_VECTORS),r=15;r>e;)r-=2;return r}r.__esModule=!0,r.default=n},{}],149:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=(t("path"),function(t){function e(){n(this,e);var r=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}","varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n vec4 c = texture2D(uSampler, vTextureCoord);\n\n if (uAlpha == 0.0) {\n gl_FragColor = c;\n return;\n }\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (c.a > 0.0) {\n c.rgb /= c.a;\n }\n\n vec4 result;\n\n result.r = (m[0] * c.r);\n result.r += (m[1] * c.g);\n result.r += (m[2] * c.b);\n result.r += (m[3] * c.a);\n result.r += m[4];\n\n result.g = (m[5] * c.r);\n result.g += (m[6] * c.g);\n result.g += (m[7] * c.b);\n result.g += (m[8] * c.a);\n result.g += m[9];\n\n result.b = (m[10] * c.r);\n result.b += (m[11] * c.g);\n result.b += (m[12] * c.b);\n result.b += (m[13] * c.a);\n result.b += m[14];\n\n result.a = (m[15] * c.r);\n result.a += (m[16] * c.g);\n result.a += (m[17] * c.b);\n result.a += (m[18] * c.a);\n result.a += m[19];\n\n vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n // Premultiply alpha again.\n rgb *= result.a;\n\n gl_FragColor = vec4(rgb, result.a);\n}\n"));return r.uniforms.m=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],r.alpha=1,r}return o(e,t),e.prototype._loadMatrix=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t;e&&(this._multiply(r,this.uniforms.m,t),r=this._colorMatrix(r)),this.uniforms.m=r},e.prototype._multiply=function(t,e,r){return t[0]=e[0]*r[0]+e[1]*r[5]+e[2]*r[10]+e[3]*r[15],t[1]=e[0]*r[1]+e[1]*r[6]+e[2]*r[11]+e[3]*r[16],t[2]=e[0]*r[2]+e[1]*r[7]+e[2]*r[12]+e[3]*r[17],t[3]=e[0]*r[3]+e[1]*r[8]+e[2]*r[13]+e[3]*r[18],t[4]=e[0]*r[4]+e[1]*r[9]+e[2]*r[14]+e[3]*r[19]+e[4],t[5]=e[5]*r[0]+e[6]*r[5]+e[7]*r[10]+e[8]*r[15],t[6]=e[5]*r[1]+e[6]*r[6]+e[7]*r[11]+e[8]*r[16],t[7]=e[5]*r[2]+e[6]*r[7]+e[7]*r[12]+e[8]*r[17],t[8]=e[5]*r[3]+e[6]*r[8]+e[7]*r[13]+e[8]*r[18],t[9]=e[5]*r[4]+e[6]*r[9]+e[7]*r[14]+e[8]*r[19]+e[9],t[10]=e[10]*r[0]+e[11]*r[5]+e[12]*r[10]+e[13]*r[15],t[11]=e[10]*r[1]+e[11]*r[6]+e[12]*r[11]+e[13]*r[16],t[12]=e[10]*r[2]+e[11]*r[7]+e[12]*r[12]+e[13]*r[17],t[13]=e[10]*r[3]+e[11]*r[8]+e[12]*r[13]+e[13]*r[18],t[14]=e[10]*r[4]+e[11]*r[9]+e[12]*r[14]+e[13]*r[19]+e[14],t[15]=e[15]*r[0]+e[16]*r[5]+e[17]*r[10]+e[18]*r[15],t[16]=e[15]*r[1]+e[16]*r[6]+e[17]*r[11]+e[18]*r[16],t[17]=e[15]*r[2]+e[16]*r[7]+e[17]*r[12]+e[18]*r[17],t[18]=e[15]*r[3]+e[16]*r[8]+e[17]*r[13]+e[18]*r[18],t[19]=e[15]*r[4]+e[16]*r[9]+e[17]*r[14]+e[18]*r[19]+e[19],t},e.prototype._colorMatrix=function(t){var e=new Float32Array(t);return e[4]/=255,e[9]/=255,e[14]/=255,e[19]/=255,e},e.prototype.brightness=function(t,e){var r=[t,0,0,0,0,0,t,0,0,0,0,0,t,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.greyscale=function(t,e){var r=[t,t,t,0,0,t,t,t,0,0,t,t,t,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.blackAndWhite=function(t){var e=[.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.hue=function(t,e){t=(t||0)/180*Math.PI;var r=Math.cos(t),n=Math.sin(t),i=Math.sqrt,o=1/3,s=i(o),a=r+(1-r)*o,u=o*(1-r)-s*n,h=o*(1-r)+s*n,l=o*(1-r)+s*n,c=r+o*(1-r),d=o*(1-r)-s*n,f=o*(1-r)-s*n,p=o*(1-r)+s*n,v=r+o*(1-r),y=[a,u,h,0,0,l,c,d,0,0,f,p,v,0,0,0,0,0,1,0];this._loadMatrix(y,e)},e.prototype.contrast=function(t,e){var r=(t||0)+1,n=-.5*(r-1),i=[r,0,0,0,n,0,r,0,0,n,0,0,r,0,n,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.saturate=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments[1],r=2*t/3+1,n=-.5*(r-1),i=[r,n,n,0,0,n,r,n,0,0,n,n,r,0,0,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.desaturate=function(){this.saturate(-1)},e.prototype.negative=function(t){var e=[0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.sepia=function(t){var e=[.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.technicolor=function(t){var e=[1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.polaroid=function(t){var e=[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.toBGR=function(t){var e=[0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.kodachrome=function(t){var e=[1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.browni=function(t){var e=[.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.vintage=function(t){var e=[.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.colorTone=function(t,e,r,n,i){t=t||.2,e=e||.15,r=r||16770432,n=n||3375104;var o=(r>>16&255)/255,s=(r>>8&255)/255,a=(255&r)/255,u=(n>>16&255)/255,h=(n>>8&255)/255,l=(255&n)/255,c=[.3,.59,.11,0,0,o,s,a,t,0,u,h,l,e,0,o-u,s-h,a-l,0,0];this._loadMatrix(c,i)},e.prototype.night=function(t,e){t=t||.1;var r=[-2*t,-t,0,0,0,-t,0,t,0,0,0,t,2*t,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.predator=function(t,e){var r=[11.224130630493164*t,-4.794486999511719*t,-2.8746118545532227*t,0*t,.40342438220977783*t,-3.6330697536468506*t,9.193157196044922*t,-2.951810836791992*t,0*t,-1.316135048866272*t,-3.2184197902679443*t,-4.2375030517578125*t,7.476448059082031*t,0*t,.8044459223747253*t,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.lsd=function(t){var e=[2,-.4,.5,0,0,-.5,2,-.4,0,0,-.4,-.5,3,0,0,0,0,0,1,0];this._loadMatrix(e,t)},e.prototype.reset=function(){var t=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0];this._loadMatrix(t,!1)},s(e,[{key:"matrix",get:function(){return this.uniforms.m},set:function(t){this.uniforms.m=t}},{key:"alpha",get:function(){return this.uniforms.uAlpha},set:function(t){this.uniforms.uAlpha=t}}]),e}(u.Filter));r.default=h,h.prototype.grayscale=h.prototype.greyscale},{"../../core":65,path:8}],150:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=(t("path"),function(t){function e(r,o){n(this,e);var s=new u.Matrix;r.renderable=!1;var a=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0) ).xy;\n vTextureCoord = aTextureCoord;\n}","varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\n\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform vec4 filterClamp;\n\nvoid main(void)\n{\n vec4 map = texture2D(mapSampler, vFilterCoord);\n\n map -= 0.5;\n map.xy *= scale;\n\n gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), filterClamp.xy, filterClamp.zw));\n}\n"));return a.maskSprite=r,a.maskMatrix=s,a.uniforms.mapSampler=r._texture,a.uniforms.filterMatrix=s,a.uniforms.scale={x:1,y:1},null!==o&&void 0!==o||(o=20),a.scale=new u.Point(o,o),a}return o(e,t),e.prototype.apply=function(t,e,r){var n=1/r.destinationFrame.width*(r.size.width/e.size.width);this.uniforms.filterMatrix=t.calculateSpriteMatrix(this.maskMatrix,this.maskSprite),this.uniforms.scale.x=this.scale.x*n,this.uniforms.scale.y=this.scale.y*n,t.applyFilter(this,e,r)},s(e,[{key:"map",get:function(){return this.uniforms.mapSampler},set:function(t){this.uniforms.mapSampler=t}}]),e}(u.Filter));r.default=h},{"../../core":65,path:8}],151:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../core"),a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(s),u=(t("path"),function(t){function e(){return n(this,e),i(this,t.call(this,"\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nuniform vec4 filterArea;\n\nvarying vec2 vTextureCoord;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvoid texcoords(vec2 fragCoord, vec2 resolution,\n out vec2 v_rgbNW, out vec2 v_rgbNE,\n out vec2 v_rgbSW, out vec2 v_rgbSE,\n out vec2 v_rgbM) {\n vec2 inverseVP = 1.0 / resolution.xy;\n v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void) {\n\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n\n vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n texcoords(fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}",'varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\n/**\n Basic FXAA implementation based on the code on geeks3d.com with the\n modification that the texture2DLod stuff was removed since it\'s\n unsupported by WebGL.\n \n --\n \n From:\n https://github.com/mitsuhiko/webgl-meincraft\n \n Copyright (c) 2011 by Armin Ronacher.\n \n Some rights reserved.\n \n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n \n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n \n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef FXAA_REDUCE_MIN\n#define FXAA_REDUCE_MIN (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n#define FXAA_REDUCE_MUL (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n#define FXAA_SPAN_MAX 8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution,\n vec2 v_rgbNW, vec2 v_rgbNE,\n vec2 v_rgbSW, vec2 v_rgbSE,\n vec2 v_rgbM) {\n vec4 color;\n mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n vec4 texColor = texture2D(tex, v_rgbM);\n vec3 rgbM = texColor.xyz;\n vec3 luma = vec3(0.299, 0.587, 0.114);\n float lumaNW = dot(rgbNW, luma);\n float lumaNE = dot(rgbNE, luma);\n float lumaSW = dot(rgbSW, luma);\n float lumaSE = dot(rgbSE, luma);\n float lumaM = dot(rgbM, luma);\n float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n \n mediump vec2 dir;\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n \n float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n \n float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n dir * rcpDirMin)) * inverseVP;\n \n vec3 rgbA = 0.5 * (\n texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n vec3 rgbB = rgbA * 0.5 + 0.25 * (\n texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n \n float lumaB = dot(rgbB, luma);\n if ((lumaB < lumaMin) || (lumaB > lumaMax))\n color = vec4(rgbA, texColor.a);\n else\n color = vec4(rgbB, texColor.a);\n return color;\n}\n\nvoid main() {\n\n vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n vec4 color;\n\n color = fxaa(uSampler, fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n gl_FragColor = color;\n}\n'))}return o(e,t),e}(a.Filter));r.default=u},{"../../core":65,path:8}],152:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./fxaa/FXAAFilter");Object.defineProperty(r,"FXAAFilter",{enumerable:!0,get:function(){return n(i).default}});var o=t("./noise/NoiseFilter");Object.defineProperty(r,"NoiseFilter",{enumerable:!0,get:function(){return n(o).default}});var s=t("./displacement/DisplacementFilter");Object.defineProperty(r,"DisplacementFilter",{enumerable:!0,get:function(){return n(s).default}});var a=t("./blur/BlurFilter");Object.defineProperty(r,"BlurFilter",{enumerable:!0,get:function(){return n(a).default}});var u=t("./blur/BlurXFilter");Object.defineProperty(r,"BlurXFilter",{enumerable:!0,get:function(){return n(u).default}});var h=t("./blur/BlurYFilter");Object.defineProperty(r,"BlurYFilter",{enumerable:!0,get:function(){return n(h).default}});var l=t("./colormatrix/ColorMatrixFilter");Object.defineProperty(r,"ColorMatrixFilter",{enumerable:!0,get:function(){return n(l).default}});var c=t("./void/VoidFilter");Object.defineProperty(r,"VoidFilter",{enumerable:!0,get:function(){return n(c).default}})},{"./blur/BlurFilter":143,"./blur/BlurXFilter":144,"./blur/BlurYFilter":145,"./colormatrix/ColorMatrixFilter":149,"./displacement/DisplacementFilter":150,"./fxaa/FXAAFilter":151,"./noise/NoiseFilter":153,"./void/VoidFilter":154}],153:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=(t("path"),function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.5,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.random();n(this,e);var s=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}","precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n float randomValue = rand(gl_FragCoord.xy * uSeed);\n float diff = (randomValue - 0.5) * uNoise;\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n gl_FragColor = color;\n}\n"));return s.noise=r,s.seed=o,s}return o(e,t),s(e,[{key:"noise",get:function(){return this.uniforms.uNoise},set:function(t){this.uniforms.uNoise=t}},{key:"seed",get:function(){return this.uniforms.uSeed},set:function(t){this.uniforms.uSeed=t}}]),e}(u.Filter));r.default=h},{"../../core":65,path:8}],154:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../core"),a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(s),u=(t("path"),function(t){function e(){n(this,e);var r=i(this,t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}","varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n"));return r.glShaderKey="void",r}return o(e,t),e}(a.Filter));r.default=u},{"../../core":65,path:8}],155:[function(t,e,r){"use strict";function n(t,e){ | |
if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=t("../core"),s=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(o),a=function(){function t(){n(this,t),this.global=new s.Point,this.target=null,this.originalEvent=null,this.identifier=null,this.isPrimary=!1,this.button=0,this.buttons=0,this.width=0,this.height=0,this.tiltX=0,this.tiltY=0,this.pointerType=null,this.pressure=0,this.rotationAngle=0,this.twist=0,this.tangentialPressure=0}return t.prototype.getLocalPosition=function(t,e,r){return t.worldTransform.applyInverse(r||this.global,e)},t.prototype._copyEvent=function(t){t.isPrimary&&(this.isPrimary=!0),this.button=t.button,this.buttons=t.buttons,this.width=t.width,this.height=t.height,this.tiltX=t.tiltX,this.tiltY=t.tiltY,this.pointerType=t.pointerType,this.pressure=t.pressure,this.rotationAngle=t.rotationAngle,this.twist=t.twist||0,this.tangentialPressure=t.tangentialPressure||0},t.prototype._reset=function(){this.isPrimary=!1},i(t,[{key:"pointerId",get:function(){return this.identifier}}]),t}();r.default=a},{"../core":65}],156:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(){n(this,t),this.stopped=!1,this.target=null,this.currentTarget=null,this.type=null,this.data=null}return t.prototype.stopPropagation=function(){this.stopped=!0},t.prototype._reset=function(){this.stopped=!1,this.currentTarget=null,this.target=null},t}();r.default=i},{}],157:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=t("../core"),h=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(u),l=t("./InteractionData"),c=n(l),d=t("./InteractionEvent"),f=n(d),p=t("./InteractionTrackingData"),v=n(p),y=t("eventemitter3"),g=n(y),m=t("./interactiveTarget"),_=n(m);h.utils.mixins.delayMixin(h.DisplayObject.prototype,_.default);var b="MOUSE",x={target:null,data:{global:null}},T=function(t){function e(r,n){i(this,e);var s=o(this,t.call(this));return n=n||{},s.renderer=r,s.autoPreventDefault=void 0===n.autoPreventDefault||n.autoPreventDefault,s.interactionFrequency=n.interactionFrequency||10,s.mouse=new c.default,s.mouse.identifier=b,s.mouse.global.set(-999999),s.activeInteractionData={},s.activeInteractionData[b]=s.mouse,s.interactionDataPool=[],s.eventData=new f.default,s.interactionDOMElement=null,s.moveWhenInside=!1,s.eventsAdded=!1,s.mouseOverRenderer=!1,s.supportsTouchEvents="ontouchstart"in window,s.supportsPointerEvents=!!window.PointerEvent,s.onPointerUp=s.onPointerUp.bind(s),s.processPointerUp=s.processPointerUp.bind(s),s.onPointerCancel=s.onPointerCancel.bind(s),s.processPointerCancel=s.processPointerCancel.bind(s),s.onPointerDown=s.onPointerDown.bind(s),s.processPointerDown=s.processPointerDown.bind(s),s.onPointerMove=s.onPointerMove.bind(s),s.processPointerMove=s.processPointerMove.bind(s),s.onPointerOut=s.onPointerOut.bind(s),s.processPointerOverOut=s.processPointerOverOut.bind(s),s.onPointerOver=s.onPointerOver.bind(s),s.cursorStyles={default:"inherit",pointer:"pointer"},s.currentCursorMode=null,s.cursor=null,s._tempPoint=new h.Point,s.resolution=1,s.setTargetElement(s.renderer.view,s.renderer.resolution),s}return s(e,t),e.prototype.hitTest=function(t,e){return x.target=null,x.data.global=t,e||(e=this.renderer._lastObjectRendered),this.processInteractive(x,e,null,!0),x.target},e.prototype.setTargetElement=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.removeEvents(),this.interactionDOMElement=t,this.resolution=e,this.addEvents()},e.prototype.addEvents=function(){this.interactionDOMElement&&(h.ticker.shared.add(this.update,this,h.UPDATE_PRIORITY.INTERACTION),window.navigator.msPointerEnabled?(this.interactionDOMElement.style["-ms-content-zooming"]="none",this.interactionDOMElement.style["-ms-touch-action"]="none"):this.supportsPointerEvents&&(this.interactionDOMElement.style["touch-action"]="none"),this.supportsPointerEvents?(window.document.addEventListener("pointermove",this.onPointerMove,!0),this.interactionDOMElement.addEventListener("pointerdown",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("pointerleave",this.onPointerOut,!0),this.interactionDOMElement.addEventListener("pointerover",this.onPointerOver,!0),window.addEventListener("pointercancel",this.onPointerCancel,!0),window.addEventListener("pointerup",this.onPointerUp,!0)):(window.document.addEventListener("mousemove",this.onPointerMove,!0),this.interactionDOMElement.addEventListener("mousedown",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("mouseout",this.onPointerOut,!0),this.interactionDOMElement.addEventListener("mouseover",this.onPointerOver,!0),window.addEventListener("mouseup",this.onPointerUp,!0)),this.supportsTouchEvents&&(this.interactionDOMElement.addEventListener("touchstart",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("touchcancel",this.onPointerCancel,!0),this.interactionDOMElement.addEventListener("touchend",this.onPointerUp,!0),this.interactionDOMElement.addEventListener("touchmove",this.onPointerMove,!0)),this.eventsAdded=!0)},e.prototype.removeEvents=function(){this.interactionDOMElement&&(h.ticker.shared.remove(this.update,this),window.navigator.msPointerEnabled?(this.interactionDOMElement.style["-ms-content-zooming"]="",this.interactionDOMElement.style["-ms-touch-action"]=""):this.supportsPointerEvents&&(this.interactionDOMElement.style["touch-action"]=""),this.supportsPointerEvents?(window.document.removeEventListener("pointermove",this.onPointerMove,!0),this.interactionDOMElement.removeEventListener("pointerdown",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("pointerleave",this.onPointerOut,!0),this.interactionDOMElement.removeEventListener("pointerover",this.onPointerOver,!0),window.removeEventListener("pointercancel",this.onPointerCancel,!0),window.removeEventListener("pointerup",this.onPointerUp,!0)):(window.document.removeEventListener("mousemove",this.onPointerMove,!0),this.interactionDOMElement.removeEventListener("mousedown",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("mouseout",this.onPointerOut,!0),this.interactionDOMElement.removeEventListener("mouseover",this.onPointerOver,!0),window.removeEventListener("mouseup",this.onPointerUp,!0)),this.supportsTouchEvents&&(this.interactionDOMElement.removeEventListener("touchstart",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("touchcancel",this.onPointerCancel,!0),this.interactionDOMElement.removeEventListener("touchend",this.onPointerUp,!0),this.interactionDOMElement.removeEventListener("touchmove",this.onPointerMove,!0)),this.interactionDOMElement=null,this.eventsAdded=!1)},e.prototype.update=function(t){if(this._deltaTime+=t,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this.interactionDOMElement)){if(this.didMove)return void(this.didMove=!1);this.cursor=null;for(var e in this.activeInteractionData)if(this.activeInteractionData.hasOwnProperty(e)){var r=this.activeInteractionData[e];if(r.originalEvent&&"touch"!==r.pointerType){var n=this.configureInteractionEventForDOMEvent(this.eventData,r.originalEvent,r);this.processInteractive(n,this.renderer._lastObjectRendered,this.processPointerOverOut,!0)}}this.setCursorMode(this.cursor)}},e.prototype.setCursorMode=function(t){if(t=t||"default",this.currentCursorMode!==t){this.currentCursorMode=t;var e=this.cursorStyles[t];if(e)switch(void 0===e?"undefined":a(e)){case"string":this.interactionDOMElement.style.cursor=e;break;case"function":e(t);break;case"object":Object.assign(this.interactionDOMElement.style,e)}else"string"!=typeof t||Object.prototype.hasOwnProperty.call(this.cursorStyles,t)||(this.interactionDOMElement.style.cursor=t)}},e.prototype.dispatchEvent=function(t,e,r){r.stopped||(r.currentTarget=t,r.type=e,t.emit(e,r),t[e]&&t[e](r))},e.prototype.mapPositionToPoint=function(t,e,r){var n=void 0;n=this.interactionDOMElement.parentElement?this.interactionDOMElement.getBoundingClientRect():{x:0,y:0,width:0,height:0};var i=navigator.isCocoonJS?this.resolution:1/this.resolution;t.x=(e-n.left)*(this.interactionDOMElement.width/n.width)*i,t.y=(r-n.top)*(this.interactionDOMElement.height/n.height)*i},e.prototype.processInteractive=function(t,e,r,n,i){if(!e||!e.visible)return!1;var o=t.data.global;i=e.interactive||i;var s=!1,a=i;if(e.hitArea?a=!1:n&&e._mask&&(e._mask.containsPoint(o)||(n=!1)),e.interactiveChildren&&e.children)for(var u=e.children,h=u.length-1;h>=0;h--){var l=u[h],c=this.processInteractive(t,l,r,n,a);if(c){if(!l.parent)continue;a=!1,c&&(t.target&&(n=!1),s=!0)}}return i&&(n&&!t.target&&(e.hitArea?(e.worldTransform.applyInverse(o,this._tempPoint),e.hitArea.contains(this._tempPoint.x,this._tempPoint.y)&&(s=!0)):e.containsPoint&&e.containsPoint(o)&&(s=!0)),e.interactive&&(s&&!t.target&&(t.target=e),r&&r(t,e,!!s))),s},e.prototype.onPointerDown=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t);this.autoPreventDefault&&e[0].isNormalized&&t.preventDefault();for(var r=e.length,n=0;n<r;n++){var i=e[n],o=this.getInteractionDataForPointerId(i),s=this.configureInteractionEventForDOMEvent(this.eventData,i,o);if(s.data.originalEvent=t,this.processInteractive(s,this.renderer._lastObjectRendered,this.processPointerDown,!0),this.emit("pointerdown",s),"touch"===i.pointerType)this.emit("touchstart",s);else if("mouse"===i.pointerType||"pen"===i.pointerType){var a=2===i.button;this.emit(a?"rightdown":"mousedown",this.eventData)}}}},e.prototype.processPointerDown=function(t,e,r){var n=t.data,i=t.data.identifier;if(r)if(e.trackedPointers[i]||(e.trackedPointers[i]=new v.default(i)),this.dispatchEvent(e,"pointerdown",t),"touch"===n.pointerType)this.dispatchEvent(e,"touchstart",t);else if("mouse"===n.pointerType||"pen"===n.pointerType){var o=2===n.button;o?e.trackedPointers[i].rightDown=!0:e.trackedPointers[i].leftDown=!0,this.dispatchEvent(e,o?"rightdown":"mousedown",t)}},e.prototype.onPointerComplete=function(t,e,r){for(var n=this.normalizeToPointerData(t),i=n.length,o=t.target!==this.interactionDOMElement?"outside":"",s=0;s<i;s++){var a=n[s],u=this.getInteractionDataForPointerId(a),h=this.configureInteractionEventForDOMEvent(this.eventData,a,u);if(h.data.originalEvent=t,this.processInteractive(h,this.renderer._lastObjectRendered,r,e||!o),this.emit(e?"pointercancel":"pointerup"+o,h),"mouse"===a.pointerType||"pen"===a.pointerType){var l=2===a.button;this.emit(l?"rightup"+o:"mouseup"+o,h)}else"touch"===a.pointerType&&(this.emit(e?"touchcancel":"touchend"+o,h),this.releaseInteractionDataForPointerId(a.pointerId,u))}},e.prototype.onPointerCancel=function(t){this.supportsTouchEvents&&"touch"===t.pointerType||this.onPointerComplete(t,!0,this.processPointerCancel)},e.prototype.processPointerCancel=function(t,e){var r=t.data,n=t.data.identifier;void 0!==e.trackedPointers[n]&&(delete e.trackedPointers[n],this.dispatchEvent(e,"pointercancel",t),"touch"===r.pointerType&&this.dispatchEvent(e,"touchcancel",t))},e.prototype.onPointerUp=function(t){this.supportsTouchEvents&&"touch"===t.pointerType||this.onPointerComplete(t,!1,this.processPointerUp)},e.prototype.processPointerUp=function(t,e,r){var n=t.data,i=t.data.identifier,o=e.trackedPointers[i],s="touch"===n.pointerType;if("mouse"===n.pointerType||"pen"===n.pointerType){var a=2===n.button,u=v.default.FLAGS,h=a?u.RIGHT_DOWN:u.LEFT_DOWN,l=void 0!==o&&o.flags&h;r?(this.dispatchEvent(e,a?"rightup":"mouseup",t),l&&this.dispatchEvent(e,a?"rightclick":"click",t)):l&&this.dispatchEvent(e,a?"rightupoutside":"mouseupoutside",t),o&&(a?o.rightDown=!1:o.leftDown=!1)}r?(this.dispatchEvent(e,"pointerup",t),s&&this.dispatchEvent(e,"touchend",t),o&&(this.dispatchEvent(e,"pointertap",t),s&&(this.dispatchEvent(e,"tap",t),o.over=!1))):o&&(this.dispatchEvent(e,"pointerupoutside",t),s&&this.dispatchEvent(e,"touchendoutside",t)),o&&o.none&&delete e.trackedPointers[i]},e.prototype.onPointerMove=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t);"mouse"===e[0].pointerType&&(this.didMove=!0,this.cursor=null);for(var r=e.length,n=0;n<r;n++){var i=e[n],o=this.getInteractionDataForPointerId(i),s=this.configureInteractionEventForDOMEvent(this.eventData,i,o);s.data.originalEvent=t;var a="touch"!==i.pointerType||this.moveWhenInside;this.processInteractive(s,this.renderer._lastObjectRendered,this.processPointerMove,a),this.emit("pointermove",s),"touch"===i.pointerType&&this.emit("touchmove",s),"mouse"!==i.pointerType&&"pen"!==i.pointerType||this.emit("mousemove",s)}"mouse"===e[0].pointerType&&this.setCursorMode(this.cursor)}},e.prototype.processPointerMove=function(t,e,r){var n=t.data,i="touch"===n.pointerType,o="mouse"===n.pointerType||"pen"===n.pointerType;o&&this.processPointerOverOut(t,e,r),this.moveWhenInside&&!r||(this.dispatchEvent(e,"pointermove",t),i&&this.dispatchEvent(e,"touchmove",t),o&&this.dispatchEvent(e,"mousemove",t))},e.prototype.onPointerOut=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t),r=e[0];"mouse"===r.pointerType&&(this.mouseOverRenderer=!1,this.setCursorMode(null));var n=this.getInteractionDataForPointerId(r),i=this.configureInteractionEventForDOMEvent(this.eventData,r,n);i.data.originalEvent=r,this.processInteractive(i,this.renderer._lastObjectRendered,this.processPointerOverOut,!1),this.emit("pointerout",i),"mouse"===r.pointerType||"pen"===r.pointerType?this.emit("mouseout",i):this.releaseInteractionDataForPointerId(n.identifier)}},e.prototype.processPointerOverOut=function(t,e,r){var n=t.data,i=t.data.identifier,o="mouse"===n.pointerType||"pen"===n.pointerType,s=e.trackedPointers[i];r&&!s&&(s=e.trackedPointers[i]=new v.default(i)),void 0!==s&&(r&&this.mouseOverRenderer?(s.over||(s.over=!0,this.dispatchEvent(e,"pointerover",t),o&&this.dispatchEvent(e,"mouseover",t)),o&&null===this.cursor&&(this.cursor=e.cursor)):s.over&&(s.over=!1,this.dispatchEvent(e,"pointerout",this.eventData),o&&this.dispatchEvent(e,"mouseout",t),s.none&&delete e.trackedPointers[i]))},e.prototype.onPointerOver=function(t){var e=this.normalizeToPointerData(t),r=e[0],n=this.getInteractionDataForPointerId(r),i=this.configureInteractionEventForDOMEvent(this.eventData,r,n);i.data.originalEvent=r,"mouse"===r.pointerType&&(this.mouseOverRenderer=!0),this.emit("pointerover",i),"mouse"!==r.pointerType&&"pen"!==r.pointerType||this.emit("mouseover",i)},e.prototype.getInteractionDataForPointerId=function(t){var e=t.pointerId,r=void 0;return e===b||"mouse"===t.pointerType?r=this.mouse:this.activeInteractionData[e]?r=this.activeInteractionData[e]:(r=this.interactionDataPool.pop()||new c.default,r.identifier=e,this.activeInteractionData[e]=r),r._copyEvent(t),r},e.prototype.releaseInteractionDataForPointerId=function(t){var e=this.activeInteractionData[t];e&&(delete this.activeInteractionData[t],e._reset(),this.interactionDataPool.push(e))},e.prototype.configureInteractionEventForDOMEvent=function(t,e,r){return t.data=r,this.mapPositionToPoint(r.global,e.clientX,e.clientY),navigator.isCocoonJS&&"touch"===e.pointerType&&(r.global.x=r.global.x/this.resolution,r.global.y=r.global.y/this.resolution),"touch"===e.pointerType&&(e.globalX=r.global.x,e.globalY=r.global.y),r.originalEvent=e,t._reset(),t},e.prototype.normalizeToPointerData=function(t){var e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(var r=0,n=t.changedTouches.length;r<n;r++){var i=t.changedTouches[r];void 0===i.button&&(i.button=t.touches.length?1:0),void 0===i.buttons&&(i.buttons=t.touches.length?1:0),void 0===i.isPrimary&&(i.isPrimary=1===t.touches.length&&"touchstart"===t.type),void 0===i.width&&(i.width=i.radiusX||1),void 0===i.height&&(i.height=i.radiusY||1),void 0===i.tiltX&&(i.tiltX=0),void 0===i.tiltY&&(i.tiltY=0),void 0===i.pointerType&&(i.pointerType="touch"),void 0===i.pointerId&&(i.pointerId=i.identifier||0),void 0===i.pressure&&(i.pressure=i.force||.5),i.twist=0,i.tangentialPressure=0,void 0===i.layerX&&(i.layerX=i.offsetX=i.clientX),void 0===i.layerY&&(i.layerY=i.offsetY=i.clientY),i.isNormalized=!0,e.push(i)}else!(t instanceof MouseEvent)||this.supportsPointerEvents&&t instanceof window.PointerEvent?e.push(t):(void 0===t.isPrimary&&(t.isPrimary=!0),void 0===t.width&&(t.width=1),void 0===t.height&&(t.height=1),void 0===t.tiltX&&(t.tiltX=0),void 0===t.tiltY&&(t.tiltY=0),void 0===t.pointerType&&(t.pointerType="mouse"),void 0===t.pointerId&&(t.pointerId=b),void 0===t.pressure&&(t.pressure=.5),t.twist=0,t.tangentialPressure=0,t.isNormalized=!0,e.push(t));return e},e.prototype.destroy=function(){this.removeEvents(),this.removeAllListeners(),this.renderer=null,this.mouse=null,this.eventData=null,this.interactionDOMElement=null,this.onPointerDown=null,this.processPointerDown=null,this.onPointerUp=null,this.processPointerUp=null,this.onPointerCancel=null,this.processPointerCancel=null,this.onPointerMove=null,this.processPointerMove=null,this.onPointerOut=null,this.processPointerOverOut=null,this.onPointerOver=null,this._tempPoint=null},e}(g.default);r.default=T,h.WebGLRenderer.registerPlugin("interaction",T),h.CanvasRenderer.registerPlugin("interaction",T)},{"../core":65,"./InteractionData":155,"./InteractionEvent":156,"./InteractionTrackingData":158,"./interactiveTarget":160,eventemitter3:3}],158:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),o=function(){function t(e){n(this,t),this._pointerId=e,this._flags=t.FLAGS.NONE}return t.prototype._doSet=function(t,e){this._flags=e?this._flags|t:this._flags&~t},i(t,[{key:"pointerId",get:function(){return this._pointerId}},{key:"flags",get:function(){return this._flags},set:function(t){this._flags=t}},{key:"none",get:function(){return this._flags===this.constructor.FLAGS.NONE}},{key:"over",get:function(){return 0!=(this._flags&this.constructor.FLAGS.OVER)},set:function(t){this._doSet(this.constructor.FLAGS.OVER,t)}},{key:"rightDown",get:function(){return 0!=(this._flags&this.constructor.FLAGS.RIGHT_DOWN)},set:function(t){this._doSet(this.constructor.FLAGS.RIGHT_DOWN,t)}},{key:"leftDown",get:function(){return 0!=(this._flags&this.constructor.FLAGS.LEFT_DOWN)},set:function(t){this._doSet(this.constructor.FLAGS.LEFT_DOWN,t)}}]),t}();r.default=o,o.FLAGS=Object.freeze({NONE:0,OVER:1,LEFT_DOWN:2,RIGHT_DOWN:4})},{}],159:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./InteractionData");Object.defineProperty(r,"InteractionData",{enumerable:!0,get:function(){return n(i).default}});var o=t("./InteractionManager");Object.defineProperty(r,"InteractionManager",{enumerable:!0,get:function(){return n(o).default}});var s=t("./interactiveTarget");Object.defineProperty(r,"interactiveTarget",{enumerable:!0,get:function(){return n(s).default}});var a=t("./InteractionTrackingData");Object.defineProperty(r,"InteractionTrackingData",{enumerable:!0,get:function(){return n(a).default}});var u=t("./InteractionEvent");Object.defineProperty(r,"InteractionEvent",{enumerable:!0,get:function(){return n(u).default}})},{"./InteractionData":155,"./InteractionEvent":156,"./InteractionManager":157,"./InteractionTrackingData":158,"./interactiveTarget":160}],160:[function(t,e,r){"use strict";r.__esModule=!0,r.default={interactive:!1,interactiveChildren:!0,hitArea:null,get buttonMode(){return"pointer"===this.cursor},set buttonMode(t){t?this.cursor="pointer":"pointer"===this.cursor&&(this.cursor=null)},cursor:null,get trackedPointers(){return void 0===this._trackedPointers&&(this._trackedPointers={}),this._trackedPointers},_trackedPointers:void 0}},{}],161:[function(t,e,r){"use strict";function n(t,e){t.bitmapFont=u.BitmapText.registerFont(t.data,e)}r.__esModule=!0,r.parse=n,r.default=function(){return function(t,e){if(!t.data||t.type!==a.Resource.TYPE.XML)return void e();if(0===t.data.getElementsByTagName("page").length||0===t.data.getElementsByTagName("info").length||null===t.data.getElementsByTagName("info")[0].getAttribute("face"))return void e();var r=t.isDataUrl?"":o.dirname(t.url);t.isDataUrl&&("."===r&&(r=""),this.baseUrl&&r&&"/"===this.baseUrl.charAt(this.baseUrl.length-1)&&(r+="/")),(r=r.replace(this.baseUrl,""))&&"/"!==r.charAt(r.length-1)&&(r+="/");var i=r+t.data.getElementsByTagName("page")[0].getAttribute("file");if(s.utils.TextureCache[i])n(t,s.utils.TextureCache[i]),e();else{var u={crossOrigin:t.crossOrigin,loadType:a.Resource.LOAD_TYPE.IMAGE,metadata:t.metadata.imageMetadata,parentResource:t};this.add(t.name+"_image",i,u,function(r){n(t,r.texture),e()})}}};var i=t("path"),o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(i),s=t("../core"),a=t("resource-loader"),u=t("../extras")},{"../core":65,"../extras":141,path:8,"resource-loader":36}],162:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0,r.shared=r.Resource=r.textureParser=r.getResourcePath=r.spritesheetParser=r.parseBitmapFontData=r.bitmapFontParser=r.Loader=void 0;var i=t("./bitmapFontParser");Object.defineProperty(r,"bitmapFontParser",{enumerable:!0,get:function(){return n(i).default}}),Object.defineProperty(r,"parseBitmapFontData",{enumerable:!0,get:function(){return i.parse}});var o=t("./spritesheetParser");Object.defineProperty(r,"spritesheetParser",{enumerable:!0,get:function(){return n(o).default}}),Object.defineProperty(r,"getResourcePath",{enumerable:!0,get:function(){return o.getResourcePath}});var s=t("./textureParser");Object.defineProperty(r,"textureParser",{enumerable:!0,get:function(){return n(s).default}});var a=t("resource-loader");Object.defineProperty(r,"Resource",{enumerable:!0,get:function(){return a.Resource}});var u=t("../core/Application"),h=n(u),l=t("./loader"),c=n(l);r.Loader=c.default;var d=new c.default;d.destroy=function(){},r.shared=d;var f=h.default.prototype;f._loader=null,Object.defineProperty(f,"loader",{get:function(){if(!this._loader){var t=this._options.sharedLoader;this._loader=t?d:new c.default}return this._loader}}),f._parentDestroy=f.destroy,f.destroy=function(t){this._loader&&(this._loader.destroy(),this._loader=null),this._parentDestroy(t)}},{"../core/Application":43,"./bitmapFontParser":161,"./loader":163,"./spritesheetParser":164,"./textureParser":165,"resource-loader":36}],163:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("resource-loader"),u=n(a),h=t("resource-loader/lib/middlewares/parsing/blob"),l=t("eventemitter3"),c=n(l),d=t("./textureParser"),f=n(d),p=t("./spritesheetParser"),v=n(p),y=t("./bitmapFontParser"),g=n(y),m=function(t){function e(r,n){i(this,e);var s=o(this,t.call(this,r,n));c.default.call(s);for(var a=0;a<e._pixiMiddleware.length;++a)s.use(e._pixiMiddleware[a]());return s.onStart.add(function(t){return s.emit("start",t)}),s.onProgress.add(function(t,e){return s.emit("progress",t,e)}),s.onError.add(function(t,e,r){return s.emit("error",t,e,r)}),s.onLoad.add(function(t,e){return s.emit("load",t,e)}),s.onComplete.add(function(t,e){return s.emit("complete",t,e)}),s}return s(e,t),e.addPixiMiddleware=function(t){e._pixiMiddleware.push(t)},e.prototype.destroy=function(){this.removeAllListeners(),this.reset()},e}(u.default);r.default=m;for(var _ in c.default.prototype)m.prototype[_]=c.default.prototype[_];m._pixiMiddleware=[h.blobMiddlewareFactory,f.default,v.default,g.default];var b=u.default.Resource;b.setExtensionXhrType("fnt",b.XHR_RESPONSE_TYPE.DOCUMENT)},{"./bitmapFontParser":161,"./spritesheetParser":164,"./textureParser":165,eventemitter3:3,"resource-loader":36,"resource-loader/lib/middlewares/parsing/blob":37}],164:[function(t,e,r){"use strict";function n(t,e){return t.isDataUrl?t.data.meta.image:s.default.resolve(t.url.replace(e,""),t.data.meta.image)}r.__esModule=!0,r.default=function(){return function(t,e){var r=t.name+"_image";if(!t.data||t.type!==i.Resource.TYPE.JSON||!t.data.frames||this.resources[r])return void e();var o={crossOrigin:t.crossOrigin,loadType:i.Resource.LOAD_TYPE.IMAGE,metadata:t.metadata.imageMetadata,parentResource:t},s=n(t,this.baseUrl);this.add(r,s,o,function(r){var n=new a.Spritesheet(r.texture.baseTexture,t.data,t.url);n.parse(function(){t.spritesheet=n,t.textures=n.textures,e()})})}},r.getResourcePath=n;var i=t("resource-loader"),o=t("url"),s=function(t){return t&&t.__esModule?t:{default:t}}(o),a=t("../core")},{"../core":65,"resource-loader":36,url:38}],165:[function(t,e,r){"use strict";r.__esModule=!0,r.default=function(){return function(t,e){t.data&&t.type===n.Resource.TYPE.IMAGE&&(t.texture=o.default.fromLoader(t.data,t.url,t.name)),e()}};var n=t("resource-loader"),i=t("../core/textures/Texture"),o=function(t){return t&&t.__esModule?t:{default:t}}(i)},{"../core/textures/Texture":115,"resource-loader":36}],166:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=t("../extras/TextureTransform"),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=new u.Point,d=new u.Polygon,f=function(t){function e(r,o,s,a,h){n(this,e);var c=i(this,t.call(this));return c._texture=r,c.uvs=s||new Float32Array([0,0,1,0,1,1,0,1]),c.vertices=o||new Float32Array([0,0,100,0,100,100,0,100]),c.indices=a||new Uint16Array([0,1,3,2]),c.dirty=0,c.indexDirty=0,c.blendMode=u.BLEND_MODES.NORMAL,c.canvasPadding=0,c.drawMode=h||e.DRAW_MODES.TRIANGLE_MESH,c.shader=null,c.tintRgb=new Float32Array([1,1,1]),c._glDatas={},c._uvTransform=new l.default(r),c.uploadUvTransform=!1,c.pluginName="mesh",c}return o(e,t),e.prototype._renderWebGL=function(t){this.refresh(),t.setObjectRenderer(t.plugins[this.pluginName]),t.plugins[this.pluginName].render(this)},e.prototype._renderCanvas=function(t){this.refresh(),t.plugins[this.pluginName].render(this)},e.prototype._onTextureUpdate=function(){this._uvTransform.texture=this._texture,this.refresh()},e.prototype.multiplyUvs=function(){this.uploadUvTransform||this._uvTransform.multiplyUvs(this.uvs)},e.prototype.refresh=function(t){this._uvTransform.update(t)&&this._refresh()},e.prototype._refresh=function(){},e.prototype._calculateBounds=function(){this._bounds.addVertices(this.transform,this.vertices,0,this.vertices.length)},e.prototype.containsPoint=function(t){if(!this.getBounds().contains(t.x,t.y))return!1;this.worldTransform.applyInverse(t,c);for(var r=this.vertices,n=d.points,i=this.indices,o=this.indices.length,s=this.drawMode===e.DRAW_MODES.TRIANGLES?3:1,a=0;a+2<o;a+=s){var u=2*i[a],h=2*i[a+1],l=2*i[a+2];if(n[0]=r[u],n[1]=r[u+1],n[2]=r[h],n[3]=r[h+1],n[4]=r[l],n[5]=r[l+1],d.contains(c.x,c.y))return!0}return!1},s(e,[{key:"texture",get:function(){return this._texture},set:function(t){this._texture!==t&&(this._texture=t,t&&(t.baseTexture.hasLoaded?this._onTextureUpdate():t.once("update",this._onTextureUpdate,this)))}},{key:"tint",get:function(){return u.utils.rgb2hex(this.tintRgb)},set:function(t){this.tintRgb=u.utils.hex2rgb(t,this.tintRgb)}}]),e}(u.Container);r.default=f,f.DRAW_MODES={TRIANGLE_MESH:0,TRIANGLES:1}},{"../core":65,"../extras/TextureTransform":136}],167:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("./Plane"),u=function(t){return t&&t.__esModule?t:{default:t}}(a),h=10,l=function(t){function e(r,o,s,a,u){n(this,e);var l=i(this,t.call(this,r,4,4));return l._origWidth=r.orig.width,l._origHeight=r.orig.height,l._width=l._origWidth,l._height=l._origHeight,l.leftWidth=void 0!==o?o:h,l.rightWidth=void 0!==a?a:h,l.topHeight=void 0!==s?s:h,l.bottomHeight=void 0!==u?u:h,l.refresh(!0),l}return o(e,t),e.prototype.updateHorizontalVertices=function(){var t=this.vertices;t[9]=t[11]=t[13]=t[15]=this._topHeight,t[17]=t[19]=t[21]=t[23]=this._height-this._bottomHeight,t[25]=t[27]=t[29]=t[31]=this._height},e.prototype.updateVerticalVertices=function(){var t=this.vertices;t[2]=t[10]=t[18]=t[26]=this._leftWidth,t[4]=t[12]=t[20]=t[28]=this._width-this._rightWidth,t[6]=t[14]=t[22]=t[30]=this._width},e.prototype._renderCanvas=function(t){var e=t.context;e.globalAlpha=this.worldAlpha | |
;var r=this.worldTransform,n=t.resolution;t.roundPixels?e.setTransform(r.a*n,r.b*n,r.c*n,r.d*n,r.tx*n|0,r.ty*n|0):e.setTransform(r.a*n,r.b*n,r.c*n,r.d*n,r.tx*n,r.ty*n);var i=this._texture.baseTexture,o=i.source,s=i.width,a=i.height;this.drawSegment(e,o,s,a,0,1,10,11),this.drawSegment(e,o,s,a,2,3,12,13),this.drawSegment(e,o,s,a,4,5,14,15),this.drawSegment(e,o,s,a,8,9,18,19),this.drawSegment(e,o,s,a,10,11,20,21),this.drawSegment(e,o,s,a,12,13,22,23),this.drawSegment(e,o,s,a,16,17,26,27),this.drawSegment(e,o,s,a,18,19,28,29),this.drawSegment(e,o,s,a,20,21,30,31)},e.prototype.drawSegment=function(t,e,r,n,i,o,s,a){var u=this.uvs,h=this.vertices,l=(u[s]-u[i])*r,c=(u[a]-u[o])*n,d=h[s]-h[i],f=h[a]-h[o];l<1&&(l=1),c<1&&(c=1),d<1&&(d=1),f<1&&(f=1),t.drawImage(e,u[i]*r,u[o]*n,l,c,h[i],h[o],d,f)},e.prototype._refresh=function(){t.prototype._refresh.call(this);var e=this.uvs,r=this._texture;this._origWidth=r.orig.width,this._origHeight=r.orig.height;var n=1/this._origWidth,i=1/this._origHeight;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1,e[2]=e[10]=e[18]=e[26]=n*this._leftWidth,e[4]=e[12]=e[20]=e[28]=1-n*this._rightWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.updateHorizontalVertices(),this.updateVerticalVertices(),this.dirty++,this.multiplyUvs()},s(e,[{key:"width",get:function(){return this._width},set:function(t){this._width=t,this._refresh()}},{key:"height",get:function(){return this._height},set:function(t){this._height=t,this._refresh()}},{key:"leftWidth",get:function(){return this._leftWidth},set:function(t){this._leftWidth=t,this._refresh()}},{key:"rightWidth",get:function(){return this._rightWidth},set:function(t){this._rightWidth=t,this._refresh()}},{key:"topHeight",get:function(){return this._topHeight},set:function(t){this._topHeight=t,this._refresh()}},{key:"bottomHeight",get:function(){return this._bottomHeight},set:function(t){this._bottomHeight=t,this._refresh()}}]),e}(u.default);r.default=l},{"./Plane":168}],168:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("./Mesh"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r,o,s){n(this,e);var u=i(this,t.call(this,r));return u._ready=!0,u.verticesX=o||10,u.verticesY=s||10,u.drawMode=a.default.DRAW_MODES.TRIANGLES,u.refresh(),u}return o(e,t),e.prototype._refresh=function(){for(var t=this._texture,e=this.verticesX*this.verticesY,r=[],n=[],i=[],o=[],s=this.verticesX-1,a=this.verticesY-1,u=t.width/s,h=t.height/a,l=0;l<e;l++){var c=l%this.verticesX,d=l/this.verticesX|0;r.push(c*u,d*h),i.push(c/s,d/a)}for(var f=s*a,p=0;p<f;p++){var v=p%s,y=p/s|0,g=y*this.verticesX+v,m=y*this.verticesX+v+1,_=(y+1)*this.verticesX+v,b=(y+1)*this.verticesX+v+1;o.push(g,m,_),o.push(m,b,_)}this.vertices=new Float32Array(r),this.uvs=new Float32Array(i),this.colors=new Float32Array(n),this.indices=new Uint16Array(o),this.indexDirty++,this.multiplyUvs()},e.prototype._onTextureUpdate=function(){a.default.prototype._onTextureUpdate.call(this),this._ready&&this.refresh()},e}(a.default);r.default=u},{"./Mesh":166}],169:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("./Mesh"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r,o){n(this,e);var s=i(this,t.call(this,r));return s.points=o,s.vertices=new Float32Array(4*o.length),s.uvs=new Float32Array(4*o.length),s.colors=new Float32Array(2*o.length),s.indices=new Uint16Array(2*o.length),s.autoUpdate=!0,s.refresh(),s}return o(e,t),e.prototype._refresh=function(){var t=this.points;if(!(t.length<1)&&this._texture._uvs){this.vertices.length/4!==t.length&&(this.vertices=new Float32Array(4*t.length),this.uvs=new Float32Array(4*t.length),this.colors=new Float32Array(2*t.length),this.indices=new Uint16Array(2*t.length));var e=this.uvs,r=this.indices,n=this.colors;e[0]=0,e[1]=0,e[2]=0,e[3]=1,n[0]=1,n[1]=1,r[0]=0,r[1]=1;for(var i=t.length,o=1;o<i;o++){var s=4*o,a=o/(i-1);e[s]=a,e[s+1]=0,e[s+2]=a,e[s+3]=1,s=2*o,n[s]=1,n[s+1]=1,s=2*o,r[s]=s,r[s+1]=s+1}this.dirty++,this.indexDirty++,this.multiplyUvs(),this.refreshVertices()}},e.prototype.refreshVertices=function(){var t=this.points;if(!(t.length<1))for(var e=t[0],r=void 0,n=0,i=0,o=this.vertices,s=t.length,a=0;a<s;a++){var u=t[a],h=4*a;r=a<t.length-1?t[a+1]:u,i=-(r.x-e.x),n=r.y-e.y;var l=10*(1-a/(s-1));l>1&&(l=1);var c=Math.sqrt(n*n+i*i),d=this._texture.height/2;n/=c,i/=c,n*=d,i*=d,o[h]=u.x+n,o[h+1]=u.y+i,o[h+2]=u.x-n,o[h+3]=u.y-i,e=u}},e.prototype.updateTransform=function(){this.autoUpdate&&this.refreshVertices(),this.containerUpdateTransform()},e}(a.default);r.default=u},{"./Mesh":166}],170:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=t("../../core"),o=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(i),s=t("../Mesh"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(){function t(e){n(this,t),this.renderer=e}return t.prototype.render=function(t){var e=this.renderer,r=e.context,n=t.worldTransform,i=e.resolution;e.roundPixels?r.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i|0,n.ty*i|0):r.setTransform(n.a*i,n.b*i,n.c*i,n.d*i,n.tx*i,n.ty*i),e.setBlendMode(t.blendMode),t.drawMode===a.default.DRAW_MODES.TRIANGLE_MESH?this._renderTriangleMesh(t):this._renderTriangles(t)},t.prototype._renderTriangleMesh=function(t){for(var e=t.vertices.length/2,r=0;r<e-2;r++){var n=2*r;this._renderDrawTriangle(t,n,n+2,n+4)}},t.prototype._renderTriangles=function(t){for(var e=t.indices,r=e.length,n=0;n<r;n+=3){var i=2*e[n],o=2*e[n+1],s=2*e[n+2];this._renderDrawTriangle(t,i,o,s)}},t.prototype._renderDrawTriangle=function(t,e,r,n){var i=this.renderer.context,o=t.uvs,s=t.vertices,a=t._texture;if(a.valid){var u=a.baseTexture,h=u.source,l=u.width,c=u.height,d=void 0,f=void 0,p=void 0,v=void 0,y=void 0,g=void 0;if(t.uploadUvTransform){var m=t._uvTransform.mapCoord;d=(o[e]*m.a+o[e+1]*m.c+m.tx)*u.width,f=(o[r]*m.a+o[r+1]*m.c+m.tx)*u.width,p=(o[n]*m.a+o[n+1]*m.c+m.tx)*u.width,v=(o[e]*m.b+o[e+1]*m.d+m.ty)*u.height,y=(o[r]*m.b+o[r+1]*m.d+m.ty)*u.height,g=(o[n]*m.b+o[n+1]*m.d+m.ty)*u.height}else d=o[e]*u.width,f=o[r]*u.width,p=o[n]*u.width,v=o[e+1]*u.height,y=o[r+1]*u.height,g=o[n+1]*u.height;var _=s[e],b=s[r],x=s[n],T=s[e+1],w=s[r+1],E=s[n+1];if(t.canvasPadding>0){var S=t.canvasPadding/t.worldTransform.a,O=t.canvasPadding/t.worldTransform.d,M=(_+b+x)/3,P=(T+w+E)/3,C=_-M,R=T-P,A=Math.sqrt(C*C+R*R);_=M+C/A*(A+S),T=P+R/A*(A+O),C=b-M,R=w-P,A=Math.sqrt(C*C+R*R),b=M+C/A*(A+S),w=P+R/A*(A+O),C=x-M,R=E-P,A=Math.sqrt(C*C+R*R),x=M+C/A*(A+S),E=P+R/A*(A+O)}i.save(),i.beginPath(),i.moveTo(_,T),i.lineTo(b,w),i.lineTo(x,E),i.closePath(),i.clip();var I=d*y+v*p+f*g-y*p-v*f-d*g,D=_*y+v*x+b*g-y*x-v*b-_*g,L=d*b+_*p+f*x-b*p-_*f-d*x,N=d*y*x+v*b*p+_*f*g-_*y*p-v*f*x-d*b*g,F=T*y+v*E+w*g-y*E-v*w-T*g,B=d*w+T*p+f*E-w*p-T*f-d*E,k=d*y*E+v*w*p+T*f*g-T*y*p-v*f*E-d*w*g;i.transform(D/I,F/I,L/I,B/I,N/I,k/I),i.drawImage(h,0,0,l*u.resolution,c*u.resolution,0,0,l,c),i.restore(),this.renderer.invalidateBlendMode()}},t.prototype.renderMeshFlat=function(t){var e=this.renderer.context,r=t.vertices,n=r.length/2;e.beginPath();for(var i=1;i<n-2;++i){var o=2*i,s=r[o],a=r[o+1],u=r[o+2],h=r[o+3],l=r[o+4],c=r[o+5];e.moveTo(s,a),e.lineTo(u,h),e.lineTo(l,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},t.prototype.destroy=function(){this.renderer=null},t}();r.default=u,o.CanvasRenderer.registerPlugin("mesh",u)},{"../../core":65,"../Mesh":166}],171:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./Mesh");Object.defineProperty(r,"Mesh",{enumerable:!0,get:function(){return n(i).default}});var o=t("./webgl/MeshRenderer");Object.defineProperty(r,"MeshRenderer",{enumerable:!0,get:function(){return n(o).default}});var s=t("./canvas/CanvasMeshRenderer");Object.defineProperty(r,"CanvasMeshRenderer",{enumerable:!0,get:function(){return n(s).default}});var a=t("./Plane");Object.defineProperty(r,"Plane",{enumerable:!0,get:function(){return n(a).default}});var u=t("./NineSlicePlane");Object.defineProperty(r,"NineSlicePlane",{enumerable:!0,get:function(){return n(u).default}});var h=t("./Rope");Object.defineProperty(r,"Rope",{enumerable:!0,get:function(){return n(h).default}})},{"./Mesh":166,"./NineSlicePlane":167,"./Plane":168,"./Rope":169,"./canvas/CanvasMeshRenderer":170,"./webgl/MeshRenderer":172}],172:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=t("pixi-gl-core"),l=n(h),c=t("../Mesh"),d=n(c),f=(t("path"),u.Matrix.IDENTITY),p=function(t){function e(r){i(this,e);var n=o(this,t.call(this,r));return n.shader=null,n}return s(e,t),e.prototype.onContextChange=function(){var t=this.renderer.gl;this.shader=new u.Shader(t,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n","varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n")},e.prototype.render=function(t){var e=this.renderer,r=e.gl,n=t._texture;if(n.valid){var i=t._glDatas[e.CONTEXT_UID];i||(e.bindVao(null),i={shader:this.shader,vertexBuffer:l.default.GLBuffer.createVertexBuffer(r,t.vertices,r.STREAM_DRAW),uvBuffer:l.default.GLBuffer.createVertexBuffer(r,t.uvs,r.STREAM_DRAW),indexBuffer:l.default.GLBuffer.createIndexBuffer(r,t.indices,r.STATIC_DRAW),vao:null,dirty:t.dirty,indexDirty:t.indexDirty},i.vao=new l.default.VertexArrayObject(r).addIndex(i.indexBuffer).addAttribute(i.vertexBuffer,i.shader.attributes.aVertexPosition,r.FLOAT,!1,8,0).addAttribute(i.uvBuffer,i.shader.attributes.aTextureCoord,r.FLOAT,!1,8,0),t._glDatas[e.CONTEXT_UID]=i),e.bindVao(i.vao),t.dirty!==i.dirty&&(i.dirty=t.dirty,i.uvBuffer.upload(t.uvs)),t.indexDirty!==i.indexDirty&&(i.indexDirty=t.indexDirty,i.indexBuffer.upload(t.indices)),i.vertexBuffer.upload(t.vertices),e.bindShader(i.shader),i.shader.uniforms.uSampler=e.bindTexture(n),e.state.setBlendMode(u.utils.correctBlendMode(t.blendMode,n.baseTexture.premultipliedAlpha)),i.shader.uniforms.uTransform&&(t.uploadUvTransform?i.shader.uniforms.uTransform=t._uvTransform.mapCoord.toArray(!0):i.shader.uniforms.uTransform=f.toArray(!0)),i.shader.uniforms.translationMatrix=t.worldTransform.toArray(!0),i.shader.uniforms.uColor=u.utils.premultiplyRgba(t.tintRgb,t.worldAlpha,i.shader.uniforms.uColor,n.baseTexture.premultipliedAlpha);var o=t.drawMode===d.default.DRAW_MODES.TRIANGLE_MESH?r.TRIANGLE_STRIP:r.TRIANGLES;i.vao.draw(o,t.indices.length,0)}},e}(u.ObjectRenderer);r.default=p,u.WebGLRenderer.registerPlugin("mesh",p)},{"../../core":65,"../Mesh":166,path:8,"pixi-gl-core":15}],173:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),a=t("../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=t("../core/utils"),l=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1500,o=arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16384,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];n(this,e);var h=i(this,t.call(this));return s>16384&&(s=16384),s>r&&(s=r),h._properties=[!1,!0,!1,!1,!1],h._maxSize=r,h._batchSize=s,h._glBuffers={},h._bufferToUpdate=0,h.interactiveChildren=!1,h.blendMode=u.BLEND_MODES.NORMAL,h.autoResize=a,h.roundPixels=!0,h.baseTexture=null,h.setProperties(o),h._tint=0,h.tintRgb=new Float32Array(4),h.tint=16777215,h}return o(e,t),e.prototype.setProperties=function(t){t&&(this._properties[0]="scale"in t?!!t.scale:this._properties[0],this._properties[1]="position"in t?!!t.position:this._properties[1],this._properties[2]="rotation"in t?!!t.rotation:this._properties[2],this._properties[3]="uvs"in t?!!t.uvs:this._properties[3],this._properties[4]="alpha"in t||"tint"in t?!!t.alpha||!!t.tint:this._properties[4])},e.prototype.updateTransform=function(){this.displayObjectUpdateTransform()},e.prototype.renderWebGL=function(t){var e=this;this.visible&&!(this.worldAlpha<=0)&&this.children.length&&this.renderable&&(this.baseTexture||(this.baseTexture=this.children[0]._texture.baseTexture,this.baseTexture.hasLoaded||this.baseTexture.once("update",function(){return e.onChildrenChange(0)})),t.setObjectRenderer(t.plugins.particle),t.plugins.particle.render(this))},e.prototype.onChildrenChange=function(t){var e=Math.floor(t/this._batchSize);e<this._bufferToUpdate&&(this._bufferToUpdate=e)},e.prototype.renderCanvas=function(t){if(this.visible&&!(this.worldAlpha<=0)&&this.children.length&&this.renderable){var e=t.context,r=this.worldTransform,n=!0,i=0,o=0,s=0,a=0;t.setBlendMode(this.blendMode),e.globalAlpha=this.worldAlpha,this.displayObjectUpdateTransform();for(var u=0;u<this.children.length;++u){var h=this.children[u];if(h.visible){var l=h._texture.frame;if(e.globalAlpha=this.worldAlpha*h.alpha,h.rotation%(2*Math.PI)==0)n&&(e.setTransform(r.a,r.b,r.c,r.d,r.tx*t.resolution,r.ty*t.resolution),n=!1),i=h.anchor.x*(-l.width*h.scale.x)+h.position.x+.5,o=h.anchor.y*(-l.height*h.scale.y)+h.position.y+.5,s=l.width*h.scale.x,a=l.height*h.scale.y;else{n||(n=!0),h.displayObjectUpdateTransform();var c=h.worldTransform;t.roundPixels?e.setTransform(c.a,c.b,c.c,c.d,c.tx*t.resolution|0,c.ty*t.resolution|0):e.setTransform(c.a,c.b,c.c,c.d,c.tx*t.resolution,c.ty*t.resolution),i=h.anchor.x*-l.width+.5,o=h.anchor.y*-l.height+.5,s=l.width,a=l.height}var d=h._texture.baseTexture.resolution;e.drawImage(h._texture.baseTexture.source,l.x*d,l.y*d,l.width*d,l.height*d,i*t.resolution,o*t.resolution,s*t.resolution,a*t.resolution)}}}},e.prototype.destroy=function(e){if(t.prototype.destroy.call(this,e),this._buffers)for(var r=0;r<this._buffers.length;++r)this._buffers[r].destroy();this._properties=null,this._buffers=null},s(e,[{key:"tint",get:function(){return this._tint},set:function(t){this._tint=t,(0,h.hex2rgb)(t,this.tintRgb)}}]),e}(u.Container);r.default=l},{"../core":65,"../core/utils":124}],174:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./ParticleContainer");Object.defineProperty(r,"ParticleContainer",{enumerable:!0,get:function(){return n(i).default}});var o=t("./webgl/ParticleRenderer");Object.defineProperty(r,"ParticleRenderer",{enumerable:!0,get:function(){return n(o).default}})},{"./ParticleContainer":173,"./webgl/ParticleRenderer":176}],175:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var o=t("pixi-gl-core"),s=n(o),a=t("../../core/utils/createIndicesForQuads"),u=n(a),h=function(){function t(e,r,n,o){i(this,t),this.gl=e,this.size=o,this.dynamicProperties=[],this.staticProperties=[];for(var s=0;s<r.length;++s){var a=r[s];a={attribute:a.attribute,size:a.size,uploadFunction:a.uploadFunction,unsignedByte:a.unsignedByte,offset:a.offset},n[s]?this.dynamicProperties.push(a):this.staticProperties.push(a)}this.staticStride=0,this.staticBuffer=null,this.staticData=null,this.staticDataUint32=null,this.dynamicStride=0,this.dynamicBuffer=null,this.dynamicData=null,this.dynamicDataUint32=null,this.initBuffers()}return t.prototype.initBuffers=function(){var t=this.gl,e=0;this.indices=(0,u.default)(this.size),this.indexBuffer=s.default.GLBuffer.createIndexBuffer(t,this.indices,t.STATIC_DRAW),this.dynamicStride=0;for(var r=0;r<this.dynamicProperties.length;++r){var n=this.dynamicProperties[r];n.offset=e,e+=n.size,this.dynamicStride+=n.size}var i=new ArrayBuffer(this.size*this.dynamicStride*4*4);this.dynamicData=new Float32Array(i),this.dynamicDataUint32=new Uint32Array(i),this.dynamicBuffer=s.default.GLBuffer.createVertexBuffer(t,i,t.STREAM_DRAW);var o=0;this.staticStride=0;for(var a=0;a<this.staticProperties.length;++a){var h=this.staticProperties[a];h.offset=o,o+=h.size,this.staticStride+=h.size}var l=new ArrayBuffer(this.size*this.staticStride*4*4);this.staticData=new Float32Array(l),this.staticDataUint32=new Uint32Array(l),this.staticBuffer=s.default.GLBuffer.createVertexBuffer(t,l,t.STATIC_DRAW),this.vao=new s.default.VertexArrayObject(t).addIndex(this.indexBuffer);for(var c=0;c<this.dynamicProperties.length;++c){var d=this.dynamicProperties[c];d.unsignedByte?this.vao.addAttribute(this.dynamicBuffer,d.attribute,t.UNSIGNED_BYTE,!0,4*this.dynamicStride,4*d.offset):this.vao.addAttribute(this.dynamicBuffer,d.attribute,t.FLOAT,!1,4*this.dynamicStride,4*d.offset)}for(var f=0;f<this.staticProperties.length;++f){var p=this.staticProperties[f];p.unsignedByte?this.vao.addAttribute(this.staticBuffer,p.attribute,t.UNSIGNED_BYTE,!0,4*this.staticStride,4*p.offset):this.vao.addAttribute(this.staticBuffer,p.attribute,t.FLOAT,!1,4*this.staticStride,4*p.offset)}},t.prototype.uploadDynamic=function(t,e,r){for(var n=0;n<this.dynamicProperties.length;n++){var i=this.dynamicProperties[n];i.uploadFunction(t,e,r,i.unsignedByte?this.dynamicDataUint32:this.dynamicData,this.dynamicStride,i.offset)}this.dynamicBuffer.upload()},t.prototype.uploadStatic=function(t,e,r){for(var n=0;n<this.staticProperties.length;n++){var i=this.staticProperties[n];i.uploadFunction(t,e,r,i.unsignedByte?this.staticDataUint32:this.staticData,this.staticStride,i.offset)}this.staticBuffer.upload()},t.prototype.destroy=function(){this.dynamicProperties=null,this.dynamicData=null,this.dynamicBuffer.destroy(),this.staticProperties=null,this.staticData=null,this.staticBuffer.destroy()},t}();r.default=h},{"../../core/utils/createIndicesForQuads":122,"pixi-gl-core":15}],176:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=t("./ParticleShader"),l=n(h),c=t("./ParticleBuffer"),d=n(c),f=t("../../core/utils"),p=function(t){function e(r){i(this,e);var n=o(this,t.call(this,r));return n.shader=null,n.indexBuffer=null,n.properties=null,n.tempMatrix=new u.Matrix,n.CONTEXT_UID=0,n}return s(e,t),e.prototype.onContextChange=function(){var t=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.shader=new l.default(t),this.properties=[{attribute:this.shader.attributes.aVertexPosition,size:2,uploadFunction:this.uploadVertices,offset:0},{attribute:this.shader.attributes.aPositionCoord,size:2,uploadFunction:this.uploadPosition,offset:0},{attribute:this.shader.attributes.aRotation,size:1,uploadFunction:this.uploadRotation,offset:0},{attribute:this.shader.attributes.aTextureCoord,size:2,uploadFunction:this.uploadUvs,offset:0},{attribute:this.shader.attributes.aColor,size:1,unsignedByte:!0,uploadFunction:this.uploadTint,offset:0}]},e.prototype.start=function(){this.renderer.bindShader(this.shader)},e.prototype.render=function(t){var e=t.children,r=t._maxSize,n=t._batchSize,i=this.renderer,o=e.length;if(0!==o){o>r&&(o=r);var s=t._glBuffers[i.CONTEXT_UID];s||(s=t._glBuffers[i.CONTEXT_UID]=this.generateBuffers(t));var a=e[0]._texture.baseTexture;this.renderer.setBlendMode(u.utils.correctBlendMode(t.blendMode,a.premultipliedAlpha));var h=i.gl,l=t.worldTransform.copy(this.tempMatrix);l.prepend(i._activeRenderTarget.projectionMatrix),this.shader.uniforms.projectionMatrix=l.toArray(!0),this.shader.uniforms.uColor=u.utils.premultiplyRgba(t.tintRgb,t.worldAlpha,this.shader.uniforms.uColor,a.premultipliedAlpha),this.shader.uniforms.uSampler=i.bindTexture(a);for(var c=0,d=0;c<o;c+=n,d+=1){var f=o-c;if(f>n&&(f=n),d>=s.length){if(!t.autoResize)break;s.push(this._generateOneMoreBuffer(t))}var p=s[d];p.uploadDynamic(e,c,f),t._bufferToUpdate===d&&(p.uploadStatic(e,c,f),t._bufferToUpdate=d+1),i.bindVao(p.vao),p.vao.draw(h.TRIANGLES,6*f)}}},e.prototype.generateBuffers=function(t){for(var e=this.renderer.gl,r=[],n=t._maxSize,i=t._batchSize,o=t._properties,s=0;s<n;s+=i)r.push(new d.default(e,this.properties,o,i));return r},e.prototype._generateOneMoreBuffer=function(t){var e=this.renderer.gl,r=t._batchSize,n=t._properties;return new d.default(e,this.properties,n,r)},e.prototype.uploadVertices=function(t,e,r,n,i,o){for(var s=0,a=0,u=0,h=0,l=0;l<r;++l){var c=t[e+l],d=c._texture,f=c.scale.x,p=c.scale.y,v=d.trim,y=d.orig;v?(a=v.x-c.anchor.x*y.width,s=a+v.width,h=v.y-c.anchor.y*y.height,u=h+v.height):(s=y.width*(1-c.anchor.x),a=y.width*-c.anchor.x,u=y.height*(1-c.anchor.y),h=y.height*-c.anchor.y),n[o]=a*f,n[o+1]=h*p,n[o+i]=s*f,n[o+i+1]=h*p,n[o+2*i]=s*f,n[o+2*i+1]=u*p,n[o+3*i]=a*f,n[o+3*i+1]=u*p,o+=4*i}},e.prototype.uploadPosition=function(t,e,r,n,i,o){for(var s=0;s<r;s++){var a=t[e+s].position;n[o]=a.x,n[o+1]=a.y,n[o+i]=a.x,n[o+i+1]=a.y,n[o+2*i]=a.x,n[o+2*i+1]=a.y,n[o+3*i]=a.x,n[o+3*i+1]=a.y,o+=4*i}},e.prototype.uploadRotation=function(t,e,r,n,i,o){for(var s=0;s<r;s++){var a=t[e+s].rotation;n[o]=a,n[o+i]=a,n[o+2*i]=a,n[o+3*i]=a,o+=4*i}},e.prototype.uploadUvs=function(t,e,r,n,i,o){for(var s=0;s<r;++s){var a=t[e+s]._texture._uvs;a?(n[o]=a.x0,n[o+1]=a.y0,n[o+i]=a.x1,n[o+i+1]=a.y1,n[o+2*i]=a.x2,n[o+2*i+1]=a.y2,n[o+3*i]=a.x3,n[o+3*i+1]=a.y3,o+=4*i):(n[o]=0,n[o+1]=0,n[o+i]=0,n[o+i+1]=0,n[o+2*i]=0,n[o+2*i+1]=0,n[o+3*i]=0,n[o+3*i+1]=0,o+=4*i)}},e.prototype.uploadTint=function(t,e,r,n,i,o){for(var s=0;s<r;++s){var a=t[e+s],u=a._texture.baseTexture.premultipliedAlpha,h=a.alpha,l=h<1&&u?(0,f.premultiplyTint)(a._tintRGB,h):a._tintRGB+(255*h<<24);n[o]=l,n[o+i]=l,n[o+2*i]=l,n[o+3*i]=l,o+=4*i}},e.prototype.destroy=function(){this.renderer.gl&&this.renderer.gl.deleteBuffer(this.indexBuffer),t.prototype.destroy.call(this),this.shader.destroy(),this.indices=null,this.tempMatrix=null},e}(u.ObjectRenderer);r.default=p,u.WebGLRenderer.registerPlugin("particle",p)},{"../../core":65,"../../core/utils":124,"./ParticleBuffer":175,"./ParticleShader":177}],177:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}r.__esModule=!0;var s=t("../../core/Shader"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=function(t){function e(r){return n(this,e),i(this,t.call(this,r,["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","uniform mat3 projectionMatrix;","uniform vec4 uColor;","varying vec2 vTextureCoord;","varying vec4 vColor;","void main(void){"," vec2 v = aVertexPosition;"," v.x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);"," v.y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);"," v = v + aPositionCoord;"," gl_Position = vec4((projectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor * uColor;","}"].join("\n"),["varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void){"," vec4 color = texture2D(uSampler, vTextureCoord) * vColor;"," if (color.a == 0.0) discard;"," gl_FragColor = color;","}"].join("\n")))}return o(e,t),e}(a.default);r.default=u},{"../../core/Shader":44}],178:[function(t,e,r){"use strict";Math.sign||(Math.sign=function(t){return t=Number(t),0===t||isNaN(t)?t:t>0?1:-1})},{}],179:[function(t,e,r){"use strict";var n=t("object-assign"),i=function(t){return t&&t.__esModule?t:{default:t}}(n);Object.assign||(Object.assign=i.default)},{"object-assign":6}],180:[function(t,e,r){"use strict";t("./Object.assign"),t("./requestAnimationFrame"),t("./Math.sign"),window.ArrayBuffer||(window.ArrayBuffer=Array),window.Float32Array||(window.Float32Array=Array),window.Uint32Array||(window.Uint32Array=Array),window.Uint16Array||(window.Uint16Array=Array)},{"./Math.sign":178,"./Object.assign":179,"./requestAnimationFrame":181}],181:[function(t,e,r){(function(t){"use strict";if(Date.now&&Date.prototype.getTime||(Date.now=function(){return(new Date).getTime()}),!t.performance||!t.performance.now){var e=Date.now();t.performance||(t.performance={}),t.performance.now=function(){return Date.now()-e}}for(var r=Date.now(),n=["ms","moz","webkit","o"],i=0;i<n.length&&!t.requestAnimationFrame;++i){var o=n[i];t.requestAnimationFrame=t[o+"RequestAnimationFrame"],t.cancelAnimationFrame=t[o+"CancelAnimationFrame"]||t[o+"CancelRequestAnimationFrame"]}t.requestAnimationFrame||(t.requestAnimationFrame=function(t){if("function"!=typeof t)throw new TypeError(t+"is not a function");var e=Date.now(),n=16+r-e;return n<0&&(n=0),r=e,setTimeout(function(){r=Date.now(),t(performance.now())},n)}),t.cancelAnimationFrame||(t.cancelAnimationFrame=function(t){return clearTimeout(t)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],182:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){var r=!1;if(t&&t._textures&&t._textures.length)for(var n=0;n<t._textures.length;n++)if(t._textures[n]instanceof d.Texture){var i=t._textures[n].baseTexture;-1===e.indexOf(i)&&(e.push(i),r=!0)}return r}function o(t,e){return t instanceof d.BaseTexture&&(-1===e.indexOf(t)&&e.push(t),!0)}function s(t,e){if(t._texture&&t._texture instanceof d.Texture){var r=t._texture.baseTexture;return-1===e.indexOf(r)&&e.push(r),!0}return!1}function a(t,e){return e instanceof d.Text&&(e.updateText(!0),!0)}function u(t,e){if(e instanceof d.TextStyle){var r=e.toFontString();return d.TextMetrics.measureFont(r),!0}return!1}function h(t,e){if(t instanceof d.Text){-1===e.indexOf(t.style)&&e.push(t.style),-1===e.indexOf(t)&&e.push(t);var r=t._texture.baseTexture;return-1===e.indexOf(r)&&e.push(r),!0}return!1}function l(t,e){return t instanceof d.TextStyle&&(-1===e.indexOf(t)&&e.push(t),!0)}r.__esModule=!0;var c=t("../core"),d=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(c),f=t("./limiters/CountLimiter"),p=function(t){return t&&t.__esModule?t:{default:t}}(f),v=d.ticker.shared;d.settings.UPLOADS_PER_FRAME=4;var y=function(){function t(e){var r=this;n(this,t),this.limiter=new p.default(d.settings.UPLOADS_PER_FRAME),this.renderer=e,this.uploadHookHelper=null,this.queue=[],this.addHooks=[],this.uploadHooks=[],this.completes=[],this.ticking=!1,this.delayedTick=function(){r.queue&&r.prepareItems()},this.registerFindHook(h),this.registerFindHook(l),this.registerFindHook(i),this.registerFindHook(o),this.registerFindHook(s),this.registerUploadHook(a),this.registerUploadHook(u)}return t.prototype.upload=function(t,e){"function"==typeof t&&(e=t,t=null),t&&this.add(t),this.queue.length?(e&&this.completes.push(e),this.ticking||(this.ticking=!0,v.addOnce(this.tick,this,d.UPDATE_PRIORITY.UTILITY))):e&&e()},t.prototype.tick=function(){setTimeout(this.delayedTick,0)},t.prototype.prepareItems=function(){for(this.limiter.beginFrame();this.queue.length&&this.limiter.allowedToUpload();){var t=this.queue[0],e=!1;if(t&&!t._destroyed)for(var r=0,n=this.uploadHooks.length;r<n;r++)if(this.uploadHooks[r](this.uploadHookHelper,t)){this.queue.shift(),e=!0;break}e||this.queue.shift()}if(this.queue.length)v.addOnce(this.tick,this,d.UPDATE_PRIORITY.UTILITY);else{this.ticking=!1;var i=this.completes.slice(0);this.completes.length=0;for(var o=0,s=i.length;o<s;o++)i[o]()}},t.prototype.registerFindHook=function(t){return t&&this.addHooks.push(t),this},t.prototype.registerUploadHook=function(t){return t&&this.uploadHooks.push(t),this},t.prototype.add=function(t){for(var e=0,r=this.addHooks.length;e<r&&!this.addHooks[e](t,this.queue);e++);if(t instanceof d.Container)for(var n=t.children.length-1;n>=0;n--)this.add(t.children[n]);return this},t.prototype.destroy=function(){this.ticking&&v.remove(this.tick,this),this.ticking=!1,this.addHooks=null, | |
this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null},t}();r.default=y},{"../core":65,"./limiters/CountLimiter":185}],183:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){if(e instanceof u.BaseTexture){var r=e.source,n=0===r.width?t.canvas.width:Math.min(t.canvas.width,r.width),i=0===r.height?t.canvas.height:Math.min(t.canvas.height,r.height);return t.ctx.drawImage(r,0,0,n,i,0,0,t.canvas.width,t.canvas.height),!0}return!1}r.__esModule=!0;var a=t("../../core"),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(a),h=t("../BasePrepare"),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=16,d=function(t){function e(r){n(this,e);var o=i(this,t.call(this,r));return o.uploadHookHelper=o,o.canvas=document.createElement("canvas"),o.canvas.width=c,o.canvas.height=c,o.ctx=o.canvas.getContext("2d"),o.registerUploadHook(s),o}return o(e,t),e.prototype.destroy=function(){t.prototype.destroy.call(this),this.ctx=null,this.canvas=null},e}(l.default);r.default=d,u.CanvasRenderer.registerPlugin("prepare",d)},{"../../core":65,"../BasePrepare":182}],184:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}r.__esModule=!0;var i=t("./webgl/WebGLPrepare");Object.defineProperty(r,"webgl",{enumerable:!0,get:function(){return n(i).default}});var o=t("./canvas/CanvasPrepare");Object.defineProperty(r,"canvas",{enumerable:!0,get:function(){return n(o).default}});var s=t("./BasePrepare");Object.defineProperty(r,"BasePrepare",{enumerable:!0,get:function(){return n(s).default}});var a=t("./limiters/CountLimiter");Object.defineProperty(r,"CountLimiter",{enumerable:!0,get:function(){return n(a).default}});var u=t("./limiters/TimeLimiter");Object.defineProperty(r,"TimeLimiter",{enumerable:!0,get:function(){return n(u).default}})},{"./BasePrepare":182,"./canvas/CanvasPrepare":183,"./limiters/CountLimiter":185,"./limiters/TimeLimiter":186,"./webgl/WebGLPrepare":187}],185:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){n(this,t),this.maxItemsPerFrame=e,this.itemsLeft=0}return t.prototype.beginFrame=function(){this.itemsLeft=this.maxItemsPerFrame},t.prototype.allowedToUpload=function(){return this.itemsLeft-- >0},t}();r.default=i},{}],186:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.__esModule=!0;var i=function(){function t(e){n(this,t),this.maxMilliseconds=e,this.frameStart=0}return t.prototype.beginFrame=function(){this.frameStart=Date.now()},t.prototype.allowedToUpload=function(){return Date.now()-this.frameStart<this.maxMilliseconds},t}();r.default=i},{}],187:[function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e){return e instanceof l.BaseTexture&&(e._glTextures[t.CONTEXT_UID]||t.textureManager.updateTexture(e),!0)}function a(t,e){return e instanceof l.Graphics&&((e.dirty||e.clearDirty||!e._webGL[t.plugins.graphics.CONTEXT_UID])&&t.plugins.graphics.updateGraphics(e),!0)}function u(t,e){return t instanceof l.Graphics&&(e.push(t),!0)}r.__esModule=!0;var h=t("../../core"),l=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}(h),c=t("../BasePrepare"),d=function(t){return t&&t.__esModule?t:{default:t}}(c),f=function(t){function e(r){n(this,e);var o=i(this,t.call(this,r));return o.uploadHookHelper=o.renderer,o.registerFindHook(u),o.registerUploadHook(s),o.registerUploadHook(a),o}return o(e,t),e}(d.default);r.default=f,l.WebGLRenderer.registerPlugin("prepare",f)},{"../../core":65,"../BasePrepare":182}],188:[function(t,e,r){(function(e){"use strict";function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}r.__esModule=!0,r.loader=r.prepare=r.particles=r.mesh=r.loaders=r.interaction=r.filters=r.extras=r.extract=r.accessibility=void 0;var i=t("./polyfill");Object.keys(i).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(r,t,{enumerable:!0,get:function(){return i[t]}})});var o=t("./core");Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(r,t,{enumerable:!0,get:function(){return o[t]}})});var s=t("./deprecation"),a=function(t){return t&&t.__esModule?t:{default:t}}(s),u=t("./accessibility"),h=n(u),l=t("./extract"),c=n(l),d=t("./extras"),f=n(d),p=t("./filters"),v=n(p),y=t("./interaction"),g=n(y),m=t("./loaders"),_=n(m),b=t("./mesh"),x=n(b),T=t("./particles"),w=n(T),E=t("./prepare"),S=n(E);o.utils.mixins.performMixins();var O=_.shared||null;r.accessibility=h,r.extract=c,r.extras=f,r.filters=v,r.interaction=g,r.loaders=_,r.mesh=x,r.particles=w,r.prepare=S,r.loader=O,"function"==typeof a.default&&(0,a.default)(r),e.PIXI=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./accessibility":42,"./core":65,"./deprecation":130,"./extract":132,"./extras":141,"./filters":152,"./interaction":159,"./loaders":162,"./mesh":171,"./particles":174,"./polyfill":180,"./prepare":184}]},{},[188])(188)}); | |
//# sourceMappingURL=pixi.min.js.map | |
</script> | |
<script>var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;n<o.length;n++)t[o][o.charAt(n)]=n}return t[o][r]}var r=String.fromCharCode,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",t={},i={compressToBase64:function(o){if(null==o)return"";var r=i._compress(o,6,function(o){return n.charAt(o)});switch(r.length%4){default:case 0:return r;case 1:return r+"===";case 2:return r+"==";case 3:return r+"="}},decompressFromBase64:function(r){return null==r?"":""==r?null:i._decompress(r.length,32,function(e){return o(n,r.charAt(e))})},compressToUTF16:function(o){return null==o?"":i._compress(o,15,function(o){return r(o+32)})+" "},decompressFromUTF16:function(o){return null==o?"":""==o?null:i._decompress(o.length,16384,function(r){return o.charCodeAt(r)-32})},compressToUint8Array:function(o){for(var r=i.compress(o),n=new Uint8Array(2*r.length),e=0,t=r.length;t>e;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;i<o.length;i+=1)if(u=o.charAt(i),Object.prototype.hasOwnProperty.call(s,u)||(s[u]=f++,p[u]=!0),c=a+u,Object.prototype.hasOwnProperty.call(s,c))a=c;else{if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); | |
</script> | |
<script>if (!String.prototype.startsWith) { | |
String.prototype.startsWith = function(searchString, position){ | |
position = position || 0; | |
return this.substr(position, searchString.length) === searchString; | |
}; | |
} | |
if (!Object.keys) { | |
Object.keys = function (obj) { | |
var keys = [], | |
k; | |
for (k in obj) { | |
if (Object.prototype.hasOwnProperty.call(obj, k)) { | |
keys.push(k); | |
} | |
} | |
return keys; | |
}; | |
} | |
// http://stackoverflow.com/questions/872310/javascript-swap-array-elements | |
Array.prototype.swap = function (x,y) { | |
var b = this[x]; | |
this[x] = this[y]; | |
this[y] = b; | |
return this; | |
} | |
// Production steps of ECMA-262, Edition 5, 15.4.4.18 | |
// Reference: http://es5.github.io/#x15.4.4.18 | |
if (!Array.prototype.forEachBackwards) { | |
Array.prototype.forEachBackwards = function(callback, thisArg) { | |
var T, k; | |
if (this === null) { | |
throw new TypeError('this is null or not defined'); | |
} | |
// 1. Let O be the result of calling toObject() passing the | |
// |this| value as the argument. | |
var O = Object(this); | |
// 2. Let lenValue be the result of calling the Get() internal | |
// method of O with the argument "length". | |
// 3. Let len be toUint32(lenValue). | |
var len = O.length >>> 0; | |
// 4. If isCallable(callback) is false, throw a TypeError exception. | |
// See: http://es5.github.com/#x9.11 | |
if (typeof callback !== 'function') { | |
throw new TypeError(callback + ' is not a function'); | |
} | |
// 5. If thisArg was supplied, let T be thisArg; else let | |
// T be undefined. | |
if (arguments.length > 1) { | |
T = thisArg; | |
} | |
// 6. Let k be 0 | |
k = len-1; | |
// 7. Repeat, while k < len | |
while (k >= 0) { | |
var kValue; | |
// a. Let Pk be ToString(k). | |
// This is implicit for LHS operands of the in operator | |
// b. Let kPresent be the result of calling the HasProperty | |
// internal method of O with argument Pk. | |
// This step can be combined with c | |
// c. If kPresent is true, then | |
if (k in O) { | |
// i. Let kValue be the result of calling the Get internal | |
// method of O with argument Pk. | |
kValue = O[k]; | |
// ii. Call the Call internal method of callback with T as | |
// the this value and argument list containing kValue, k, and O. | |
callback.call(T, kValue, k, O); | |
} | |
// d. Increase k by 1. | |
k--; | |
} | |
// 8. return undefined | |
}; | |
} | |
//http://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript | |
// Warn if overriding existing method | |
if(Array.prototype.equals) | |
console.warn("Overriding existing Array.prototype.equals. Possible causes: New API defines the method, there's a framework conflict or you've got double inclusions in your code."); | |
// attach the .equals method to Array's prototype to call it on any array | |
Array.prototype.equals = function (array) { | |
// if the other array is a falsy value, return | |
if (!array) | |
return false; | |
// compare lengths - can save a lot of time | |
if (this.length != array.length) | |
return false; | |
for (var i = 0, l=this.length; i < l; i++) { | |
// Check if we have nested arrays | |
if (this[i] instanceof Array && array[i] instanceof Array) { | |
// recurse into the nested arrays | |
if (!this[i].equals(array[i])) | |
return false; | |
} | |
else if (this[i] != array[i]) { | |
// Warning - two different object instances will never be equal: {x:20} != {x:20} | |
return false; | |
} | |
} | |
return true; | |
} | |
// Hide method from for-in loops | |
Object.defineProperty(Array.prototype, "equals", {enumerable: false}); | |
//if(!BrowserDetectionUtils.isChrome || !BrowserDetectionUtils.isFirefox) { | |
window.polyfillClipboardData = (function () { | |
var pcd = {}; | |
var data = {}; | |
pcd.types = []; | |
pcd.setData = function (type,newdata) { | |
data[type] = {type:type,data:newdata}; | |
if(pcd.types.indexOf(type) === -1) pcd.types.push(type); | |
} | |
pcd.getData = function (type) { | |
return data[type].data; | |
} | |
return pcd; | |
})(); | |
//} | |
var BrowserDetect = (function () { | |
var browserDetectionUtils = { }; | |
browserDetectionUtils.isFirefox = | |
navigator.userAgent.search("Firefox"); | |
browserDetectionUtils.isSafari = | |
navigator.appVersion.search('Safari') != -1 | |
&& navigator.appVersion.search('Chrome') == -1 | |
&& navigator.appVersion.search('CrMo') == -1 | |
&& navigator.appVersion.search('CriOS') == -1; | |
browserDetectionUtils.isIe = ( | |
navigator.userAgent.toLowerCase().indexOf("msie") != -1 | |
|| navigator.userAgent.toLowerCase().indexOf("trident") != -1 ); | |
browserDetectionUtils.isChrome = | |
/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); | |
browserDetectionUtils.inMobileMode = | |
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); | |
return browserDetectionUtils; | |
})(); | |
//http://stackoverflow.com/questions/5306680/move-an-array-element-from-one-array-position-to-another | |
Array.prototype.move = function (old_index, new_index) { | |
if (new_index >= this.length) { | |
var k = new_index - this.length; | |
while ((k--) + 1) { | |
this.push(undefined); | |
} | |
} | |
this.splice(new_index, 0, this.splice(old_index, 1)[0]); | |
return this; // for testing purposes | |
}; | |
// https://tc39.github.io/ecma262/#sec-array.prototype.includes | |
if (!Array.prototype.includes) { | |
Object.defineProperty(Array.prototype, 'includes', { | |
value: function(searchElement, fromIndex) { | |
// 1. Let O be ? ToObject(this value). | |
if (this == null) { | |
throw new TypeError('"this" is null or not defined'); | |
} | |
var o = Object(this); | |
// 2. Let len be ? ToLength(? Get(O, "length")). | |
var len = o.length >>> 0; | |
// 3. If len is 0, return false. | |
if (len === 0) { | |
return false; | |
} | |
// 4. Let n be ? ToInteger(fromIndex). | |
// (If fromIndex is undefined, this step produces the value 0.) | |
var n = fromIndex | 0; | |
// 5. If n ≥ 0, then | |
// a. Let k be n. | |
// 6. Else n < 0, | |
// a. Let k be len + n. | |
// b. If k < 0, let k be 0. | |
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); | |
// 7. Repeat, while k < len | |
while (k < len) { | |
// a. Let elementK be the result of ? Get(O, ! ToString(k)). | |
// b. If SameValueZero(searchElement, elementK) is true, return true. | |
// c. Increase k by 1. | |
// NOTE: === provides the correct "SameValueZero" comparison needed here. | |
if (o[k] === searchElement) { | |
return true; | |
} | |
k++; | |
} | |
// 8. Return false | |
return false; | |
} | |
}); | |
} | |
var isSafari = navigator.appVersion.search('Safari') != -1 && navigator.appVersion.search('Chrome') == -1 && navigator.appVersion.search('CrMo') == -1 && navigator.appVersion.search('CriOS') == -1; | |
var isIe = (navigator.userAgent.toLowerCase().indexOf("msie") != -1 || navigator.userAgent.toLowerCase().indexOf("trident") != -1); | |
var isChrome = /chrome/.test( navigator.userAgent.toLowerCase() ); | |
var roundToNearestN = function (val, n, d) { | |
if(d === undefined) d = 20; | |
return parseFloat((Math.round(val/n)*n).toFixed(d)); | |
} | |
var roundToHundredths = function (val) { | |
return roundToNearestN(val, 0.01, 2); | |
} | |
var buildDiv = function(className, parentElem) { | |
var div = document.createElement('div'); | |
div.className = className; | |
if(parentElem) { | |
parentElem.appendChild(div); | |
} | |
return div; | |
} | |
var buildSpan = function(className, parentElem) { | |
var div = document.createElement('span'); | |
div.className = className; | |
if(parentElem) { | |
parentElem.appendChild(div); | |
} | |
return div; | |
} | |
//http://stackoverflow.com/questions/11076975/insert-text-into-textarea-at-cursor-position-javascript | |
function insertAtCursor(myField, myValue) { | |
//IE support | |
if (document.selection) { | |
myField.focus(); | |
sel = document.selection.createRange(); | |
sel.text = myValue; | |
} | |
//MOZILLA and others | |
else if (myField.selectionStart || myField.selectionStart == '0') { | |
var startPos = myField.selectionStart; | |
var endPos = myField.selectionEnd; | |
myField.value = myField.value.substring(0, startPos) | |
+ myValue | |
+ myField.value.substring(endPos, myField.value.length); | |
} else { | |
myField.value += myValue; | |
} | |
} | |
var startMillis; | |
function resetElapsedTime () { | |
startMillis = new Date().getTime() | |
} | |
resetElapsedTime(); | |
function elapsedSeconds () { | |
return Math.floor(elapsedMilliseconds()/1000); | |
} | |
function elapsedMilliseconds () { | |
var d = new Date(); | |
var n = d.getTime(); | |
return n - startMillis; | |
} | |
function rotate_point(pointX, pointY, originX, originY, angle) { | |
angle = angle * Math.PI / 180.0; | |
return { | |
x: Math.cos(angle) * (pointX-originX) - Math.sin(angle) * (pointY-originY) + originX, | |
y: Math.sin(angle) * (pointX-originX) + Math.cos(angle) * (pointY-originY) + originY | |
}; | |
} | |
Element.prototype.remove = function() { | |
this.parentElement.removeChild(this); | |
} | |
NodeList.prototype.remove = HTMLCollection.prototype.remove = function() { | |
for(var i = this.length - 1; i >= 0; i--) { | |
if(this[i] && this[i].parentElement) { | |
this[i].parentElement.removeChild(this[i]); | |
} | |
} | |
} | |
// http://stackoverflow.com/questions/9705123/how-can-i-get-sin-cos-and-tan-to-use-degrees-instead-of-radians | |
function toRadians (angle) { | |
return angle * (Math.PI / 180); | |
} | |
function clamp (val, min, max) { | |
return Math.min(Math.max(val, min), max); | |
} | |
// | |
function hexToRgbA(hex, a){ | |
var c; | |
if(hex === 'none') return 'rgba(0,0,0,0)'; | |
if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){ | |
c= hex.substring(1).split(''); | |
if(c.length== 3){ | |
c= [c[0], c[0], c[1], c[1], c[2], c[2]]; | |
} | |
c= '0x'+c.join(''); | |
return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+','+a+')'; | |
} | |
console.log(hex); | |
throw new Error('Bad Hex'); | |
} | |
function dataURItoBlob(dataURI) { | |
// convert base64 to raw binary data held in a string | |
// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this | |
var byteString = atob(dataURI.split(',')[1]); | |
// separate out the mime component | |
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0] | |
// write the bytes of the string to an ArrayBuffer | |
var ab = new ArrayBuffer(byteString.length); | |
var ia = new Uint8Array(ab); | |
for (var i = 0; i < byteString.length; i++) { | |
ia[i] = byteString.charCodeAt(i); | |
} | |
// write the ArrayBuffer to a blob, and you're done | |
var blob = new Blob([ab], {type: mimeString}); | |
return blob; | |
// Old code | |
// var bb = new BlobBuilder(); | |
// bb.append(ab); | |
// return bb.getBlob(mimeString); | |
} | |
function deepCopy (val) { | |
if(typeof val === 'object') { | |
return JSON.parse(JSON.stringify(val)); | |
} else { | |
return val; | |
} | |
} | |
function getAvailableFonts () { | |
var availableFonts = [ | |
'Arial', | |
'Times New Roman', | |
'Comic Sans MS', | |
'Georgia', | |
'Palatino Linotype', | |
'Book Antiqua', | |
'Helvetica', | |
'Arial Black', | |
'Impact', | |
'Lucida Sans Unicode', | |
'Tahoma', | |
'Geneva', | |
'Trebuchet MS', | |
'Verdana', | |
'Courier New', | |
'Lucida Console' | |
]; | |
availableFonts.sort(); | |
return availableFonts; | |
} | |
function elementInsideElement (target, parent) { | |
if(target === parent) return true; | |
if(target.parentElement) { | |
if(target.parentElement === target) { | |
return true; | |
} else { | |
return elementInsideElement(target.parentElement, parent) | |
} | |
} else { | |
return false; | |
} | |
} | |
var SlideyNumberInput = function (args) { | |
var input = document.createElement('input'); | |
input.type = 'text'; | |
input.value = args.initValue; | |
var mouseIsDown = false; | |
var initXY = {}; | |
var oldValue; | |
input.addEventListener('mousedown', function (e) { | |
mouseIsDown = true; | |
initXY.x = e.screenX - parseFloat(input.value)/args.moveFactor; | |
initXY.y = e.screenY; | |
oldValue = parseFloat(input.value); | |
}); | |
input.addEventListener('mouseup', function (e) { | |
input.select(); | |
}); | |
window.addEventListener('mousemove', function (e) { | |
if(!mouseIsDown) return; | |
var diffXY = { | |
x:(e.screenX-initXY.x)*args.moveFactor, | |
y:(e.screenY-initXY.y)*args.moveFactor, | |
} | |
if(diffXY.x !== 0) { | |
input.value = roundToHundredths(Math.min(args.max, Math.max(args.min, diffXY.x))); | |
args.onsoftchange(input.value); | |
} | |
}); | |
window.addEventListener('mouseup', function (e) { | |
if(mouseIsDown) { | |
if(parseFloat(input.value) !== oldValue) { | |
args.onhardchange(parseFloat(input.value) || args.min); | |
document.getElementById('editorCanvasContainer').focus(); | |
} | |
} | |
mouseIsDown = false; | |
}); | |
input.addEventListener('change', function (e) { | |
args.onhardchange(parseFloat(input.value) || args.min); | |
}); | |
return input; | |
} | |
function getBrowserAndOSInfo () { | |
var nVer = navigator.appVersion; | |
var nAgt = navigator.userAgent; | |
var browserName = navigator.appName; | |
var fullVersion = ''+parseFloat(navigator.appVersion); | |
var majorVersion = parseInt(navigator.appVersion,10); | |
var nameOffset,verOffset,ix; | |
// In Opera, the true version is after "Opera" or after "Version" | |
if ((verOffset=nAgt.indexOf("Opera"))!=-1) { | |
browserName = "Opera"; | |
fullVersion = nAgt.substring(verOffset+6); | |
if ((verOffset=nAgt.indexOf("Version"))!=-1) | |
fullVersion = nAgt.substring(verOffset+8); | |
} | |
// In MSIE, the true version is after "MSIE" in userAgent | |
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { | |
browserName = "Microsoft Internet Explorer"; | |
fullVersion = nAgt.substring(verOffset+5); | |
} | |
// In Chrome, the true version is after "Chrome" | |
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { | |
browserName = "Chrome"; | |
fullVersion = nAgt.substring(verOffset+7); | |
} | |
// In Safari, the true version is after "Safari" or after "Version" | |
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { | |
browserName = "Safari"; | |
fullVersion = nAgt.substring(verOffset+7); | |
if ((verOffset=nAgt.indexOf("Version"))!=-1) | |
fullVersion = nAgt.substring(verOffset+8); | |
} | |
// In Firefox, the true version is after "Firefox" | |
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { | |
browserName = "Firefox"; | |
fullVersion = nAgt.substring(verOffset+8); | |
} | |
// In most other browsers, "name/version" is at the end of userAgent | |
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < | |
(verOffset=nAgt.lastIndexOf('/')) ) | |
{ | |
browserName = nAgt.substring(nameOffset,verOffset); | |
fullVersion = nAgt.substring(verOffset+1); | |
if (browserName.toLowerCase()==browserName.toUpperCase()) { | |
browserName = navigator.appName; | |
} | |
} | |
// trim the fullVersion string at semicolon/space if present | |
if ((ix=fullVersion.indexOf(";"))!=-1) | |
fullVersion=fullVersion.substring(0,ix); | |
if ((ix=fullVersion.indexOf(" "))!=-1) | |
fullVersion=fullVersion.substring(0,ix); | |
majorVersion = parseInt(''+fullVersion,10); | |
if (isNaN(majorVersion)) { | |
fullVersion = ''+parseFloat(navigator.appVersion); | |
majorVersion = parseInt(navigator.appVersion,10); | |
} | |
/*return'' | |
+'Browser name = '+browserName+'<br>' | |
+'Full version = '+fullVersion+'<br>' | |
+'Major version = '+majorVersion+'<br>' | |
+'navigator.appName = '+navigator.appName+'<br>' | |
+'navigator.userAgent = '+navigator.userAgent+'<br>';*/ | |
return { | |
browser: browserName, | |
browserVersion: fullVersion, | |
navigatorAppName: navigator.appName, | |
navigatorUserAgent: navigator.userAgent, | |
} | |
} | |
</script> | |
<script>// https://www.npmjs.com/package/keycode | |
// Original key mappings lifted from http://jsfiddle.net/vWx8V/ via http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes | |
var keyCharToCode = { | |
"BACKSPACE": 8, | |
"TAB": 9, | |
"ENTER": 13, | |
"SHIFT": 16, | |
"CTRL": 17, | |
"ALT": 18, | |
"PAUSE/BREAK": 19, | |
"CAPS LOCK": 20, | |
"ESC": 27, | |
"SPACE": 32, | |
"PAGE UP": 33, | |
"PAGE DOWN": 34, | |
"END": 35, | |
"HOME": 36, | |
"LEFT": 37, | |
"UP": 38, | |
"RIGHT": 39, | |
"DOWN": 40, | |
"INSERT": 45, | |
"DELETE": 46, | |
"0": 48, | |
"1": 49, | |
"2": 50, | |
"3": 51, | |
"4": 52, | |
"5": 53, | |
"6": 54, | |
"7": 55, | |
"8": 56, | |
"9": 57, | |
"A": 65, | |
"B": 66, | |
"C": 67, | |
"D": 68, | |
"E": 69, | |
"F": 70, | |
"G": 71, | |
"H": 72, | |
"I": 73, | |
"J": 74, | |
"K": 75, | |
"L": 76, | |
"M": 77, | |
"N": 78, | |
"O": 79, | |
"P": 80, | |
"Q": 81, | |
"R": 82, | |
"S": 83, | |
"T": 84, | |
"U": 85, | |
"V": 86, | |
"W": 87, | |
"X": 88, | |
"Y": 89, | |
"Z": 90, | |
"WINDOWS": 91, | |
"COMMAND": 91, | |
"FIREFOXCOMMAND":224, | |
"RIGHT CLICK": 93, | |
"NUM 0": 96, | |
"NUM 1": 97, | |
"NUM 2": 98, | |
"NUM 3": 99, | |
"NUM 4": 100, | |
"NUM 5": 101, | |
"NUM 6": 102, | |
"NUM 7": 103, | |
"NUM 8": 104, | |
"NUM 9": 105, | |
"NUM *": 106, | |
"NUM +": 107, | |
"NUM -": 109, | |
"NUM .": 110, | |
"NUM /": 111, | |
"F1": 112, | |
"F2": 113, | |
"F3": 114, | |
"F4": 115, | |
"F5": 116, | |
"F6": 117, | |
"F7": 118, | |
"F8": 119, | |
"F9": 120, | |
"F10": 121, | |
"F11": 122, | |
"F12": 123, | |
"NUM LOCK": 144, | |
"SCROLL LOCK": 145, | |
"MY COMPUTER": 182, | |
"MY CALCULATOR": 183, | |
";": 186, | |
"=": 187, | |
",": 188, | |
"-": 189, | |
".": 190, | |
"/": 191, | |
"`": 192, | |
"[": 219, | |
"\\": 220, | |
"]": 221, | |
"'": 222 | |
}; | |
var codeToKeyChar = {}; | |
for (var key in keyCharToCode) { | |
codeToKeyChar[keyCharToCode[key]] = key; | |
}</script> | |
<script>// Framerate keeper | |
// http://www.html5gamedevs.com/topic/1828-how-to-calculate-fps-in-plain-javascript/ | |
var fps = { startTime : 0, | |
frameNumber : 0, | |
getFPS : function() { | |
this.frameNumber++; | |
var d = new Date().getTime(); | |
var currentTime = ( d - this.startTime ) / 1000; | |
var result = Math.floor( ( this.frameNumber / currentTime ) ); | |
if( currentTime > 1 ) { | |
this.startTime = new Date().getTime(); | |
this.frameNumber = 0; | |
} | |
return result; | |
} | |
};</script> | |
<script>/* | |
* base64-arraybuffer | |
* https://github.com/niklasvh/base64-arraybuffer | |
* | |
* Copyright (c) 2012 Niklas von Hertzen | |
* Licensed under the MIT license. | |
*/ | |
var Base64ArrayBuffer = (function () { | |
"use strict"; | |
var base64ArrayBuffer = { }; | |
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; | |
// Use a lookup table to find the index. | |
var lookup = new Uint8Array(256); | |
for (var i = 0; i < chars.length; i++) { | |
lookup[chars.charCodeAt(i)] = i; | |
} | |
base64ArrayBuffer.encode = function(arraybuffer) { | |
var bytes = new Uint8Array(arraybuffer), | |
i, len = bytes.length, base64 = ""; | |
for (i = 0; i < len; i+=3) { | |
base64 += chars[bytes[i] >> 2]; | |
base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; | |
base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; | |
base64 += chars[bytes[i + 2] & 63]; | |
} | |
if ((len % 3) === 2) { | |
base64 = base64.substring(0, base64.length - 1) + "="; | |
} else if (len % 3 === 1) { | |
base64 = base64.substring(0, base64.length - 2) + "=="; | |
} | |
return base64; | |
}; | |
base64ArrayBuffer.decode = function(base64) { | |
var bufferLength = base64.length * 0.75, | |
len = base64.length, i, p = 0, | |
encoded1, encoded2, encoded3, encoded4; | |
if (base64[base64.length - 1] === "=") { | |
bufferLength--; | |
if (base64[base64.length - 2] === "=") { | |
bufferLength--; | |
} | |
} | |
var arraybuffer = new ArrayBuffer(bufferLength), | |
bytes = new Uint8Array(arraybuffer); | |
for (i = 0; i < len; i+=4) { | |
encoded1 = lookup[base64.charCodeAt(i)]; | |
encoded2 = lookup[base64.charCodeAt(i+1)]; | |
encoded3 = lookup[base64.charCodeAt(i+2)]; | |
encoded4 = lookup[base64.charCodeAt(i+3)]; | |
bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); | |
bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); | |
bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); | |
} | |
return arraybuffer; | |
}; | |
return base64ArrayBuffer; | |
})(); | |
</script> | |
<script>/* lil input checker by Josh */ | |
var CheckInput = (function () { | |
var checkInput = {}; | |
checkInput.isNumber = function (n) { | |
var num = parseInt(n); | |
return (typeof num === 'number') && !isNaN(num); | |
} | |
checkInput.isInteger = function (n) { | |
var num = parseInt(n); | |
return (typeof num === 'number') && (num % 1 == 0); | |
} | |
checkInput.isPositiveInteger = function (n) { | |
var num = parseInt(n); | |
return (typeof num === 'number') && (num % 1 == 0) && (num > 0) | |
} | |
checkInput.isString = function (str) { | |
return typeof str === 'string'; | |
} | |
checkInput.testPositiveInteger = function (n) { | |
var num = parseInt(n); | |
return ((typeof num === 'number') && (num % 1 == 0) && (num > 0)); | |
} | |
checkInput.isNonNegativeInteger = function (n) { | |
var num = parseInt(n); | |
return ((typeof num === 'number') && (num % 1 == 0) && (num >= 0)); | |
} | |
return checkInput; | |
})();</script> | |
<script>http://blog.acipo.com/blob-detection-js/ | |
function unique(arr){ | |
/// Returns an object with the counts of unique elements in arr | |
/// unique([1,2,1,1,1,2,3,4]) === { 1:4, 2:2, 3:1, 4:1 } | |
var value, counts = {}; | |
var i, l = arr.length; | |
for( i=0; i<l; i+=1) { | |
value = arr[i]; | |
if( counts[value] ){ | |
counts[value] += 1; | |
}else{ | |
counts[value] = 1; | |
} | |
} | |
return counts; | |
} | |
function FindBlobs(src) { | |
var xSize = src.width, | |
ySize = src.height, | |
srcPixels = src.data, | |
x, y, pos; | |
// This will hold the indecies of the regions we find | |
var blobMap = []; | |
var label = 1; | |
// The labelTable remember when blobs of differen labels merge | |
// so labelTabel[1] = 2; means that label 1 and 2 are the same blob | |
var labelTable = [0]; | |
// Start by labeling every pixel as blob 0 | |
for(y=0; y<ySize; y++){ | |
blobMap.push([]); | |
for(x=0; x<xSize; x++){ | |
blobMap[y].push(0); | |
} | |
} | |
// Temporary variables for neighboring pixels and other stuff | |
var nn, nw, ne, ww, ee, sw, ss, se, minIndex; | |
var luma = 0; | |
var isVisible = 0; | |
// We're going to run this algorithm twice | |
// The first time identifies all of the blobs candidates the second pass | |
// merges any blobs that the first pass failed to merge | |
var nIter = 2; | |
while( nIter-- ){ | |
// We leave a 1 pixel border which is ignored so we do not get array | |
// out of bounds errors | |
for( y=1; y<ySize-1; y++){ | |
for( x=1; x<xSize-1; x++){ | |
pos = (y*xSize+x)*4; | |
// We're only looking at the alpha channel in this case but you can | |
// use more complicated heuristics | |
isVisible = (srcPixels[pos+3] > 0); | |
if( isVisible ){ | |
// Find the lowest blob index nearest this pixel | |
nw = blobMap[y-1][x-1] || 0; | |
nn = blobMap[y-1][x-0] || 0; | |
ne = blobMap[y-1][x+1] || 0; | |
ww = blobMap[y-0][x-1] || 0; | |
ee = blobMap[y-0][x+1] || 0; | |
sw = blobMap[y+1][x-1] || 0; | |
ss = blobMap[y+1][x-0] || 0; | |
se = blobMap[y+1][x+1] || 0; | |
minIndex = ww; | |
if( 0 < ww && ww < minIndex ){ minIndex = ww; } | |
if( 0 < ee && ee < minIndex ){ minIndex = ee; } | |
if( 0 < nn && nn < minIndex ){ minIndex = nn; } | |
if( 0 < ne && ne < minIndex ){ minIndex = ne; } | |
if( 0 < nw && nw < minIndex ){ minIndex = nw; } | |
if( 0 < ss && ss < minIndex ){ minIndex = ss; } | |
if( 0 < se && se < minIndex ){ minIndex = se; } | |
if( 0 < sw && sw < minIndex ){ minIndex = sw; } | |
// This point starts a new blob -- increase the lable count and | |
// and an entry for it in the label table | |
if( minIndex === 0 ){ | |
blobMap[y][x] = label; | |
labelTable.push(label); | |
label += 1; | |
// This point is part of an old blob -- update the labels of the | |
// neighboring pixels in the label table so that we know a merge | |
// should occur and mark this pixel with the label. | |
}else{ | |
if( minIndex < labelTable[nw] ){ labelTable[nw] = minIndex; } | |
if( minIndex < labelTable[nn] ){ labelTable[nn] = minIndex; } | |
if( minIndex < labelTable[ne] ){ labelTable[ne] = minIndex; } | |
if( minIndex < labelTable[ww] ){ labelTable[ww] = minIndex; } | |
if( minIndex < labelTable[ee] ){ labelTable[ee] = minIndex; } | |
if( minIndex < labelTable[sw] ){ labelTable[sw] = minIndex; } | |
if( minIndex < labelTable[ss] ){ labelTable[ss] = minIndex; } | |
if( minIndex < labelTable[se] ){ labelTable[se] = minIndex; } | |
blobMap[y][x] = minIndex; | |
} | |
// This pixel isn't visible so we won't mark it as special | |
}else{ | |
blobMap[y][x] = 0; | |
} | |
} | |
} | |
// Compress the table of labels so that every location refers to only 1 | |
// matching location | |
var i = labelTable.length; | |
while( i-- ){ | |
label = labelTable[i]; | |
while( label !== labelTable[label] ){ | |
label = labelTable[label]; | |
} | |
labelTable[i] = label; | |
} | |
// Merge the blobs with multiple labels | |
for(y=0; y<ySize; y++){ | |
for(x=0; x<xSize; x++){ | |
label = blobMap[y][x]; | |
if( label === 0 ){ continue; } | |
while( label !== labelTable[label] ){ | |
label = labelTable[label]; | |
} | |
blobMap[y][x] = label; | |
} | |
} | |
} | |
// The blobs may have unusual labels: [1,38,205,316,etc..] | |
// Let's rename them: [1,2,3,4,etc..] | |
var uniqueLabels = unique(labelTable); | |
var labelCount = 0; | |
for(uniqueLabel in uniqueLabels) labelCount++; | |
var i = 0; | |
for( label in uniqueLabels ){ | |
labelTable[label] = i++; | |
} | |
// convert the blobs to the minimized labels | |
for(y=0; y<ySize; y++){ | |
for(x=0; x<xSize; x++){ | |
label = blobMap[y][x]; | |
blobMap[y][x] = labelTable[label]; | |
} | |
} | |
// Return the blob data: | |
return {blobMap:blobMap, nBlobs:labelCount}; | |
}; | |
function ColorTheBlobs(dst,blobs,colors){ | |
var xSize = dst.width, | |
ySize = dst.height, | |
dstPixels = dst.data, | |
x, y, pos; | |
var label, color, nColors = colors.length; | |
for(y=0; y<ySize; y++){ | |
for(x=0; x<xSize; x++){ | |
pos = (y*xSize+x)*4; | |
label = blobs[y][x]; | |
if( label !== 0 ){ | |
color = colors[ label % nColors ]; | |
dstPixels[ pos+0 ] = color[0]; | |
dstPixels[ pos+1 ] = color[1]; | |
dstPixels[ pos+2 ] = color[2]; | |
dstPixels[ pos+3 ] = color[3]; | |
}else{ | |
dstPixels[ pos+3 ] = 0; | |
} | |
} | |
} | |
} | |
function GetBlobMap (img, callback) { | |
ImageToCanvas(img, function (canvas,context) { | |
var canvas = canvas;//document.getElementById('canvas-draw'); | |
var contex = context;//canvas.getContext('2d'); | |
var imageData = contex.getImageData(0,0,canvas.width,canvas.height); | |
var blobResults = FindBlobs(imageData); | |
var blobLabels = blobResults.blobMap; | |
var nBlobs = blobResults.nBlobs; | |
var blobCanvas = document.createElement('canvas');//document.getElementById('canvas-blob'); | |
blobCanvas.width = canvas.width; | |
blobCanvas.height = canvas.height; | |
var blobContex = blobCanvas.getContext('2d'); | |
var blobImageData = contex.getImageData(0,0,canvas.width,canvas.height); | |
// this means you can only have 255 blobs, ya dummy! | |
var colors = []; | |
for(var i = 0; i <= 255; i+=1) { | |
colors.push([i,0,0,255]); | |
} | |
ColorTheBlobs(blobImageData,blobLabels,colors); | |
blobContex.putImageData(blobImageData,0,0); | |
var blobMap = new Image(); | |
blobMap.onload = function () { | |
callback({blobMap:blobMap, nBlobs:nBlobs}); | |
} | |
blobMap.src = blobCanvas.toDataURL(); | |
}); | |
} | |
function GetBlobImages (blobMap, nBlobs, image, callback) { | |
var imagesData = []; | |
var label; | |
for(label=1; label<=nBlobs; label++) { | |
imagesData[label] = GetBlobImage(blobMap, image, label); | |
} | |
var images = []; | |
var done = false; | |
function processBlobImage (i) { | |
var data = imagesData[i]; | |
if(data) { | |
ctx.putImageData(data,0,0); | |
var image = new Image(); | |
image.onload = function () { | |
//callback(image); | |
images.push(image); | |
if(images.length >= nBlobs-1) { | |
if(!done) callback(images); | |
done = true; | |
} | |
} | |
image.src = canvas.toDataURL(); | |
} | |
} | |
for(label=1; label<=nBlobs; label++) { | |
if(done) return; | |
var canvas = document.createElement('canvas'); | |
canvas.width = image.width; | |
canvas.height = image.height; | |
var ctx = canvas.getContext('2d'); | |
processBlobImage(label); | |
} | |
} | |
function GetBlobImage (blobMap, originalImg, label) { | |
var blobMapData = ImageToImageData(blobMap) | |
var originalImgData = ImageToImageData(originalImg) | |
var xSize = blobMapData.width, | |
ySize = blobMapData.height, | |
blobMapPixels = blobMapData.data, | |
x, y, pos; | |
var originalImgPixels = originalImgData.data; | |
var canvas = document.createElement('canvas'); | |
var ctx = canvas.getContext('2d'); | |
var newImgData = ctx.createImageData(originalImgData); | |
var newImagePixels = newImgData.data; | |
var blobExistsWithLabel = false; | |
for(y=0; y<ySize; y++){ | |
for(x=0; x<xSize; x++){ | |
pos = (y*xSize+x)*4; | |
if(blobMapPixels[ pos+0 ] === label) { | |
newImagePixels[ pos+0 ] = originalImgPixels[ pos+0 ]; | |
newImagePixels[ pos+1 ] = originalImgPixels[ pos+1 ]; | |
newImagePixels[ pos+2 ] = originalImgPixels[ pos+2 ]; | |
newImagePixels[ pos+3 ] = originalImgPixels[ pos+3 ]; | |
blobExistsWithLabel = true; | |
} else { | |
newImagePixels[ pos+0 ] = 0; | |
newImagePixels[ pos+1 ] = 0; | |
newImagePixels[ pos+2 ] = 0; | |
newImagePixels[ pos+3 ] = 0; | |
} | |
} | |
} | |
return blobExistsWithLabel ? newImgData : null; | |
} | |
function FindBlobsAndGetBlobImages (imgData, callback) { | |
GetBlobMap(imgData, function (blobResult) { | |
var img = new Image(); | |
img.onload = function () { | |
GetBlobImages(blobResult.blobMap, blobResult.nBlobs, img, function (blobImages) { | |
callback(blobImages); | |
}); | |
} | |
img.src = imgData; | |
}); | |
} | |
// Image cropping / padding (zrispo) | |
var CropImage = function (src, callback, args) { | |
var canvas = document.createElement('canvas'); | |
canvas.width = args.width; | |
canvas.height = args.height; | |
var context = canvas.getContext('2d'); | |
var imageObj = new Image(); | |
imageObj.onload = function() { | |
// draw cropped image | |
var sourceX = args.x; | |
var sourceY = args.y; | |
var sourceWidth = args.width; | |
var sourceHeight = args.height; | |
var destWidth = sourceWidth; | |
var destHeight = sourceHeight; | |
var destX = canvas.width / 2 - destWidth / 2; | |
var destY = canvas.height / 2 - destHeight / 2; | |
context.drawImage(imageObj, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight); | |
callback(canvas.toDataURL()); | |
}; | |
imageObj.src = src; | |
} | |
function AddPaddingToImage (img, callback) { | |
var oddWidth = img.width % 2 === 1; | |
var oddHeight = img.height % 2 === 1; | |
if (oddWidth && oddHeight) { | |
CropImage(img.src, callback, { | |
x: 0, | |
y: 0, | |
width: img.width+1, | |
height: img.height+1 | |
}); | |
} else if (oddWidth) { | |
CropImage(img.src, callback, { | |
x: 0, | |
y: 0, | |
width: img.width+1, | |
height: img.height | |
}); | |
} else if (oddHeight) { | |
CropImage(img.src, callback, { | |
x: 0, | |
y: 0, | |
width: img.width, | |
height: img.height+1 | |
}); | |
} else { | |
callback(img.src); | |
} | |
} | |
// Canvas <-> Image conversion (zrispo) | |
var ImageToCanvas = function (src, callback, args) { | |
var image = new Image(); | |
image.onload = function () { | |
var w = image.width; | |
var h = image.height; | |
if(args && args.width) w = args.width; | |
if(args && args.height) h = args.height; | |
var canvas = document.createElement('canvas'); | |
canvas.height = h; | |
canvas.width = w; | |
var ctx = canvas.getContext('2d'); | |
ctx.drawImage( image, 0, 0, w, h ); | |
callback(canvas,ctx); | |
}; | |
image.setAttribute('crossOrigin', 'anonymous'); | |
image.src = src; | |
} | |
function ImageToImageData (img) { | |
var canvas = document.createElement('canvas'); | |
canvas.width = img.width; | |
canvas.height = img.height; | |
var ctx = canvas.getContext('2d'); | |
ctx.drawImage(img, 0, 0) | |
return ctx.getImageData(0,0,canvas.width,canvas.height); | |
} | |
function PixelsToImageData (pixelData) { | |
} | |
// Color picking (unknown source??) | |
var GetColorAtCoords = function (img, x, y, format) { | |
if(x < 0 || y < 0 || x > img.width || y > img.height) { | |
console.error("GetColorAtCoords: coords out of bounds: ("+x+","+y+")") | |
} | |
var canvas = document.createElement('canvas'); | |
canvas.width = img.width; | |
canvas.height = img.height; | |
var context = canvas.getContext('2d'); | |
context.drawImage(img, 0, 0); | |
var data = context.getImageData(0, 0, canvas.width, canvas.height).data; | |
var i = (x + y*img.width) * 4; | |
var color = {}; | |
color.r = data[i+0]; | |
color.g = data[i+1]; | |
color.b = data[i+2]; | |
color.a = data[i+3]; | |
if (!format) { | |
return color; | |
} | |
if (format === "rgba") { | |
return color; | |
} else if (format === "hex") { | |
// http://jsfiddle.net/Mottie/xcqpF/1/light/ | |
function rgb2hex(rgb){ | |
rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i); | |
return (rgb && rgb.length === 4) ? "#" + | |
("0" + parseInt(rgb[1],10).toString(16)).slice(-2) + | |
("0" + parseInt(rgb[2],10).toString(16)).slice(-2) + | |
("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : ''; | |
} | |
return rgb2hex("rgb("+color.r+","+color.g+","+color.b+")").toUpperCase(); | |
} | |
} | |
// Blank pixel remover / cropper | |
// http://stackoverflow.com/questions/12175991/crop-image-white-space-automatically-using-jquery | |
var removeBlankPixels = function (img, imgWidth, imgHeight) { | |
var canvas = document.createElement('canvas'); | |
var context = canvas.getContext('2d'); | |
canvas.width = img.width; | |
canvas.height = img.height; | |
context.drawImage(img, 0, 0) | |
var imageData = context.getImageData(0, 0, imgWidth, imgHeight), | |
data = imageData.data, | |
getRBG = function(x, y) { | |
var offset = imgWidth * y + x; | |
return { | |
red: data[offset * 4], | |
green: data[offset * 4 + 1], | |
blue: data[offset * 4 + 2], | |
opacity: data[offset * 4 + 3] | |
}; | |
}, | |
isWhite = function (rgb) { | |
// many images contain noise, as the white is not a pure #fff white | |
//return rgb.red > 200 && rgb.green > 200 && rgb.blue > 200; | |
return rgb.opacity === 0; | |
}, | |
scanY = function (fromTop) { | |
var offset = fromTop ? 1 : -1; | |
// loop through each row | |
for(var y = fromTop ? 0 : imgHeight - 1; fromTop ? (y < imgHeight) : (y > -1); y += offset) { | |
// loop through each column | |
for(var x = 0; x < imgWidth; x++) { | |
var rgb = getRBG(x, y); | |
if (!isWhite(rgb)) { | |
return y; | |
} | |
} | |
} | |
return null; // all image is white | |
}, | |
scanX = function (fromLeft) { | |
var offset = fromLeft? 1 : -1; | |
// loop through each column | |
for(var x = fromLeft ? 0 : imgWidth - 1; fromLeft ? (x < imgWidth) : (x > -1); x += offset) { | |
// loop through each row | |
for(var y = 0; y < imgHeight; y++) { | |
var rgb = getRBG(x, y); | |
if (!isWhite(rgb)) { | |
return x; | |
} | |
} | |
} | |
return null; // all image is white | |
}; | |
var cropTop = scanY(true), | |
cropBottom = scanY(false), | |
cropLeft = scanX(true), | |
cropRight = scanX(false), | |
cropWidth = cropRight - cropLeft + 1, | |
cropHeight = cropBottom - cropTop + 1; | |
var croppedCanvas = document.createElement('canvas'); | |
croppedCanvas.width = cropWidth; | |
croppedCanvas.height = cropHeight; | |
//$("<canvas>").attr({ width: cropWidth, height: cropHeight }); | |
// finally crop the guy | |
croppedCanvas.getContext("2d").drawImage( | |
canvas, | |
cropLeft, cropTop, | |
cropWidth, cropHeight, | |
0, 0, | |
cropWidth, cropHeight ); | |
/*$("body"). | |
append("<p>same image with white spaces cropped:</p>"). | |
append($croppedCanvas);*/ | |
//console.log(cropTop, cropBottom, cropLeft, cropRight); | |
var dataURL = croppedCanvas.toDataURL(); | |
return {dataURL:dataURL, left:cropLeft, top:cropTop}; | |
}; | |
</script> | |
<script>/*jshint eqnull:true*/ | |
(function (root) { | |
"use strict"; | |
var GLOBAL_KEY = "Random"; | |
var imul = (typeof Math.imul !== "function" || Math.imul(0xffffffff, 5) !== -5 ? | |
function (a, b) { | |
var ah = (a >>> 16) & 0xffff; | |
var al = a & 0xffff; | |
var bh = (b >>> 16) & 0xffff; | |
var bl = b & 0xffff; | |
// the shift by 0 fixes the sign on the high part | |
// the final |0 converts the unsigned value into a signed value | |
return (al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0; | |
} : | |
Math.imul); | |
var stringRepeat = (typeof String.prototype.repeat === "function" && "x".repeat(3) === "xxx" ? | |
function (x, y) { | |
return x.repeat(y); | |
} : function (pattern, count) { | |
var result = ""; | |
while (count > 0) { | |
if (count & 1) { | |
result += pattern; | |
} | |
count >>= 1; | |
pattern += pattern; | |
} | |
return result; | |
}); | |
function Random(engine) { | |
if (!(this instanceof Random)) { | |
return new Random(engine); | |
} | |
if (engine == null) { | |
engine = Random.engines.nativeMath; | |
} else if (typeof engine !== "function") { | |
throw new TypeError("Expected engine to be a function, got " + typeof engine); | |
} | |
this.engine = engine; | |
} | |
var proto = Random.prototype; | |
Random.engines = { | |
nativeMath: function () { | |
return (Math.random() * 0x100000000) | 0; | |
}, | |
mt19937: (function (Int32Array) { | |
// http://en.wikipedia.org/wiki/Mersenne_twister | |
function refreshData(data) { | |
var k = 0; | |
var tmp = 0; | |
for (; | |
(k | 0) < 227; k = (k + 1) | 0) { | |
tmp = (data[k] & 0x80000000) | (data[(k + 1) | 0] & 0x7fffffff); | |
data[k] = data[(k + 397) | 0] ^ (tmp >>> 1) ^ ((tmp & 0x1) ? 0x9908b0df : 0); | |
} | |
for (; | |
(k | 0) < 623; k = (k + 1) | 0) { | |
tmp = (data[k] & 0x80000000) | (data[(k + 1) | 0] & 0x7fffffff); | |
data[k] = data[(k - 227) | 0] ^ (tmp >>> 1) ^ ((tmp & 0x1) ? 0x9908b0df : 0); | |
} | |
tmp = (data[623] & 0x80000000) | (data[0] & 0x7fffffff); | |
data[623] = data[396] ^ (tmp >>> 1) ^ ((tmp & 0x1) ? 0x9908b0df : 0); | |
} | |
function temper(value) { | |
value ^= value >>> 11; | |
value ^= (value << 7) & 0x9d2c5680; | |
value ^= (value << 15) & 0xefc60000; | |
return value ^ (value >>> 18); | |
} | |
function seedWithArray(data, source) { | |
var i = 1; | |
var j = 0; | |
var sourceLength = source.length; | |
var k = Math.max(sourceLength, 624) | 0; | |
var previous = data[0] | 0; | |
for (; | |
(k | 0) > 0; --k) { | |
data[i] = previous = ((data[i] ^ imul((previous ^ (previous >>> 30)), 0x0019660d)) + (source[j] | 0) + (j | 0)) | 0; | |
i = (i + 1) | 0; | |
++j; | |
if ((i | 0) > 623) { | |
data[0] = data[623]; | |
i = 1; | |
} | |
if (j >= sourceLength) { | |
j = 0; | |
} | |
} | |
for (k = 623; | |
(k | 0) > 0; --k) { | |
data[i] = previous = ((data[i] ^ imul((previous ^ (previous >>> 30)), 0x5d588b65)) - i) | 0; | |
i = (i + 1) | 0; | |
if ((i | 0) > 623) { | |
data[0] = data[623]; | |
i = 1; | |
} | |
} | |
data[0] = 0x80000000; | |
} | |
function mt19937() { | |
var data = new Int32Array(624); | |
var index = 0; | |
var uses = 0; | |
function next() { | |
if ((index | 0) >= 624) { | |
refreshData(data); | |
index = 0; | |
} | |
var value = data[index]; | |
index = (index + 1) | 0; | |
uses += 1; | |
return temper(value) | 0; | |
} | |
next.getUseCount = function() { | |
return uses; | |
}; | |
next.discard = function (count) { | |
uses += count; | |
if ((index | 0) >= 624) { | |
refreshData(data); | |
index = 0; | |
} | |
while ((count - index) > 624) { | |
count -= 624 - index; | |
refreshData(data); | |
index = 0; | |
} | |
index = (index + count) | 0; | |
return next; | |
}; | |
next.seed = function (initial) { | |
var previous = 0; | |
data[0] = previous = initial | 0; | |
for (var i = 1; i < 624; i = (i + 1) | 0) { | |
data[i] = previous = (imul((previous ^ (previous >>> 30)), 0x6c078965) + i) | 0; | |
} | |
index = 624; | |
uses = 0; | |
return next; | |
}; | |
next.seedWithArray = function (source) { | |
next.seed(0x012bd6aa); | |
seedWithArray(data, source); | |
return next; | |
}; | |
next.autoSeed = function () { | |
return next.seedWithArray(Random.generateEntropyArray()); | |
}; | |
return next; | |
} | |
return mt19937; | |
}(typeof Int32Array === "function" ? Int32Array : Array)), | |
browserCrypto: (typeof crypto !== "undefined" && typeof crypto.getRandomValues === "function" && typeof Int32Array === "function") ? (function () { | |
var data = null; | |
var index = 128; | |
return function () { | |
if (index >= 128) { | |
if (data === null) { | |
data = new Int32Array(128); | |
} | |
crypto.getRandomValues(data); | |
index = 0; | |
} | |
return data[index++] | 0; | |
}; | |
}()) : null | |
}; | |
Random.generateEntropyArray = function () { | |
var array = []; | |
var engine = Random.engines.nativeMath; | |
for (var i = 0; i < 16; ++i) { | |
array[i] = engine() | 0; | |
} | |
array.push(new Date().getTime() | 0); | |
return array; | |
}; | |
function returnValue(value) { | |
return function () { | |
return value; | |
}; | |
} | |
// [-0x80000000, 0x7fffffff] | |
Random.int32 = function (engine) { | |
return engine() | 0; | |
}; | |
proto.int32 = function () { | |
return Random.int32(this.engine); | |
}; | |
// [0, 0xffffffff] | |
Random.uint32 = function (engine) { | |
return engine() >>> 0; | |
}; | |
proto.uint32 = function () { | |
return Random.uint32(this.engine); | |
}; | |
// [0, 0x1fffffffffffff] | |
Random.uint53 = function (engine) { | |
var high = engine() & 0x1fffff; | |
var low = engine() >>> 0; | |
return (high * 0x100000000) + low; | |
}; | |
proto.uint53 = function () { | |
return Random.uint53(this.engine); | |
}; | |
// [0, 0x20000000000000] | |
Random.uint53Full = function (engine) { | |
while (true) { | |
var high = engine() | 0; | |
if (high & 0x200000) { | |
if ((high & 0x3fffff) === 0x200000 && (engine() | 0) === 0) { | |
return 0x20000000000000; | |
} | |
} else { | |
var low = engine() >>> 0; | |
return ((high & 0x1fffff) * 0x100000000) + low; | |
} | |
} | |
}; | |
proto.uint53Full = function () { | |
return Random.uint53Full(this.engine); | |
}; | |
// [-0x20000000000000, 0x1fffffffffffff] | |
Random.int53 = function (engine) { | |
var high = engine() | 0; | |
var low = engine() >>> 0; | |
return ((high & 0x1fffff) * 0x100000000) + low + (high & 0x200000 ? -0x20000000000000 : 0); | |
}; | |
proto.int53 = function () { | |
return Random.int53(this.engine); | |
}; | |
// [-0x20000000000000, 0x20000000000000] | |
Random.int53Full = function (engine) { | |
while (true) { | |
var high = engine() | 0; | |
if (high & 0x400000) { | |
if ((high & 0x7fffff) === 0x400000 && (engine() | 0) === 0) { | |
return 0x20000000000000; | |
} | |
} else { | |
var low = engine() >>> 0; | |
return ((high & 0x1fffff) * 0x100000000) + low + (high & 0x200000 ? -0x20000000000000 : 0); | |
} | |
} | |
}; | |
proto.int53Full = function () { | |
return Random.int53Full(this.engine); | |
}; | |
function add(generate, addend) { | |
if (addend === 0) { | |
return generate; | |
} else { | |
return function (engine) { | |
return generate(engine) + addend; | |
}; | |
} | |
} | |
Random.integer = (function () { | |
function isPowerOfTwoMinusOne(value) { | |
return ((value + 1) & value) === 0; | |
} | |
function bitmask(masking) { | |
return function (engine) { | |
return engine() & masking; | |
}; | |
} | |
function downscaleToLoopCheckedRange(range) { | |
var extendedRange = range + 1; | |
var maximum = extendedRange * Math.floor(0x100000000 / extendedRange); | |
return function (engine) { | |
var value = 0; | |
do { | |
value = engine() >>> 0; | |
} while (value >= maximum); | |
return value % extendedRange; | |
}; | |
} | |
function downscaleToRange(range) { | |
if (isPowerOfTwoMinusOne(range)) { | |
return bitmask(range); | |
} else { | |
return downscaleToLoopCheckedRange(range); | |
} | |
} | |
function isEvenlyDivisibleByMaxInt32(value) { | |
return (value | 0) === 0; | |
} | |
function upscaleWithHighMasking(masking) { | |
return function (engine) { | |
var high = engine() & masking; | |
var low = engine() >>> 0; | |
return (high * 0x100000000) + low; | |
}; | |
} | |
function upscaleToLoopCheckedRange(extendedRange) { | |
var maximum = extendedRange * Math.floor(0x20000000000000 / extendedRange); | |
return function (engine) { | |
var ret = 0; | |
do { | |
var high = engine() & 0x1fffff; | |
var low = engine() >>> 0; | |
ret = (high * 0x100000000) + low; | |
} while (ret >= maximum); | |
return ret % extendedRange; | |
}; | |
} | |
function upscaleWithinU53(range) { | |
var extendedRange = range + 1; | |
if (isEvenlyDivisibleByMaxInt32(extendedRange)) { | |
var highRange = ((extendedRange / 0x100000000) | 0) - 1; | |
if (isPowerOfTwoMinusOne(highRange)) { | |
return upscaleWithHighMasking(highRange); | |
} | |
} | |
return upscaleToLoopCheckedRange(extendedRange); | |
} | |
function upscaleWithinI53AndLoopCheck(min, max) { | |
return function (engine) { | |
var ret = 0; | |
do { | |
var high = engine() | 0; | |
var low = engine() >>> 0; | |
ret = ((high & 0x1fffff) * 0x100000000) + low + (high & 0x200000 ? -0x20000000000000 : 0); | |
} while (ret < min || ret > max); | |
return ret; | |
}; | |
} | |
return function (min, max) { | |
min = Math.floor(min); | |
max = Math.floor(max); | |
if (min < -0x20000000000000 || !isFinite(min)) { | |
throw new RangeError("Expected min to be at least " + (-0x20000000000000)); | |
} else if (max > 0x20000000000000 || !isFinite(max)) { | |
throw new RangeError("Expected max to be at most " + 0x20000000000000); | |
} | |
var range = max - min; | |
if (range <= 0 || !isFinite(range)) { | |
return returnValue(min); | |
} else if (range === 0xffffffff) { | |
if (min === 0) { | |
return Random.uint32; | |
} else { | |
return add(Random.int32, min + 0x80000000); | |
} | |
} else if (range < 0xffffffff) { | |
return add(downscaleToRange(range), min); | |
} else if (range === 0x1fffffffffffff) { | |
return add(Random.uint53, min); | |
} else if (range < 0x1fffffffffffff) { | |
return add(upscaleWithinU53(range), min); | |
} else if (max - 1 - min === 0x1fffffffffffff) { | |
return add(Random.uint53Full, min); | |
} else if (min === -0x20000000000000 && max === 0x20000000000000) { | |
return Random.int53Full; | |
} else if (min === -0x20000000000000 && max === 0x1fffffffffffff) { | |
return Random.int53; | |
} else if (min === -0x1fffffffffffff && max === 0x20000000000000) { | |
return add(Random.int53, 1); | |
} else if (max === 0x20000000000000) { | |
return add(upscaleWithinI53AndLoopCheck(min - 1, max - 1), 1); | |
} else { | |
return upscaleWithinI53AndLoopCheck(min, max); | |
} | |
}; | |
}()); | |
proto.integer = function (min, max) { | |
return Random.integer(min, max)(this.engine); | |
}; | |
// [0, 1] (floating point) | |
Random.realZeroToOneInclusive = function (engine) { | |
return Random.uint53Full(engine) / 0x20000000000000; | |
}; | |
proto.realZeroToOneInclusive = function () { | |
return Random.realZeroToOneInclusive(this.engine); | |
}; | |
// [0, 1) (floating point) | |
Random.realZeroToOneExclusive = function (engine) { | |
return Random.uint53(engine) / 0x20000000000000; | |
}; | |
proto.realZeroToOneExclusive = function () { | |
return Random.realZeroToOneExclusive(this.engine); | |
}; | |
Random.real = (function () { | |
function multiply(generate, multiplier) { | |
if (multiplier === 1) { | |
return generate; | |
} else if (multiplier === 0) { | |
return function () { | |
return 0; | |
}; | |
} else { | |
return function (engine) { | |
return generate(engine) * multiplier; | |
}; | |
} | |
} | |
return function (left, right, inclusive) { | |
if (!isFinite(left)) { | |
throw new RangeError("Expected left to be a finite number"); | |
} else if (!isFinite(right)) { | |
throw new RangeError("Expected right to be a finite number"); | |
} | |
return add( | |
multiply( | |
inclusive ? Random.realZeroToOneInclusive : Random.realZeroToOneExclusive, | |
right - left), | |
left); | |
}; | |
}()); | |
proto.real = function (min, max, inclusive) { | |
return Random.real(min, max, inclusive)(this.engine); | |
}; | |
Random.bool = (function () { | |
function isLeastBitTrue(engine) { | |
return (engine() & 1) === 1; | |
} | |
function lessThan(generate, value) { | |
return function (engine) { | |
return generate(engine) < value; | |
}; | |
} | |
function probability(percentage) { | |
if (percentage <= 0) { | |
return returnValue(false); | |
} else if (percentage >= 1) { | |
return returnValue(true); | |
} else { | |
var scaled = percentage * 0x100000000; | |
if (scaled % 1 === 0) { | |
return lessThan(Random.int32, (scaled - 0x80000000) | 0); | |
} else { | |
return lessThan(Random.uint53, Math.round(percentage * 0x20000000000000)); | |
} | |
} | |
} | |
return function (numerator, denominator) { | |
if (denominator == null) { | |
if (numerator == null) { | |
return isLeastBitTrue; | |
} | |
return probability(numerator); | |
} else { | |
if (numerator <= 0) { | |
return returnValue(false); | |
} else if (numerator >= denominator) { | |
return returnValue(true); | |
} | |
return lessThan(Random.integer(0, denominator - 1), numerator); | |
} | |
}; | |
}()); | |
proto.bool = function (numerator, denominator) { | |
return Random.bool(numerator, denominator)(this.engine); | |
}; | |
function toInteger(value) { | |
var number = +value; | |
if (number < 0) { | |
return Math.ceil(number); | |
} else { | |
return Math.floor(number); | |
} | |
} | |
function convertSliceArgument(value, length) { | |
if (value < 0) { | |
return Math.max(value + length, 0); | |
} else { | |
return Math.min(value, length); | |
} | |
} | |
Random.pick = function (engine, array, begin, end) { | |
var length = array.length; | |
var start = begin == null ? 0 : convertSliceArgument(toInteger(begin), length); | |
var finish = end === void 0 ? length : convertSliceArgument(toInteger(end), length); | |
if (start >= finish) { | |
return void 0; | |
} | |
var distribution = Random.integer(start, finish - 1); | |
return array[distribution(engine)]; | |
}; | |
proto.pick = function (array, begin, end) { | |
return Random.pick(this.engine, array, begin, end); | |
}; | |
function returnUndefined() { | |
return void 0; | |
} | |
var slice = Array.prototype.slice; | |
Random.picker = function (array, begin, end) { | |
var clone = slice.call(array, begin, end); | |
if (!clone.length) { | |
return returnUndefined; | |
} | |
var distribution = Random.integer(0, clone.length - 1); | |
return function (engine) { | |
return clone[distribution(engine)]; | |
}; | |
}; | |
Random.shuffle = function (engine, array, downTo) { | |
var length = array.length; | |
if (length) { | |
if (downTo == null) { | |
downTo = 0; | |
} | |
for (var i = (length - 1) >>> 0; i > downTo; --i) { | |
var distribution = Random.integer(0, i); | |
var j = distribution(engine); | |
if (i !== j) { | |
var tmp = array[i]; | |
array[i] = array[j]; | |
array[j] = tmp; | |
} | |
} | |
} | |
return array; | |
}; | |
proto.shuffle = function (array) { | |
return Random.shuffle(this.engine, array); | |
}; | |
Random.sample = function (engine, population, sampleSize) { | |
if (sampleSize < 0 || sampleSize > population.length || !isFinite(sampleSize)) { | |
throw new RangeError("Expected sampleSize to be within 0 and the length of the population"); | |
} | |
if (sampleSize === 0) { | |
return []; | |
} | |
var clone = slice.call(population); | |
var length = clone.length; | |
if (length === sampleSize) { | |
return Random.shuffle(engine, clone, 0); | |
} | |
var tailLength = length - sampleSize; | |
return Random.shuffle(engine, clone, tailLength - 1).slice(tailLength); | |
}; | |
proto.sample = function (population, sampleSize) { | |
return Random.sample(this.engine, population, sampleSize); | |
}; | |
Random.die = function (sideCount) { | |
return Random.integer(1, sideCount); | |
}; | |
proto.die = function (sideCount) { | |
return Random.die(sideCount)(this.engine); | |
}; | |
Random.dice = function (sideCount, dieCount) { | |
var distribution = Random.die(sideCount); | |
return function (engine) { | |
var result = []; | |
result.length = dieCount; | |
for (var i = 0; i < dieCount; ++i) { | |
result[i] = distribution(engine); | |
} | |
return result; | |
}; | |
}; | |
proto.dice = function (sideCount, dieCount) { | |
return Random.dice(sideCount, dieCount)(this.engine); | |
}; | |
// http://en.wikipedia.org/wiki/Universally_unique_identifier | |
Random.uuid4 = (function () { | |
function zeroPad(string, zeroCount) { | |
return stringRepeat("0", zeroCount - string.length) + string; | |
} | |
return function (engine) { | |
var a = engine() >>> 0; | |
var b = engine() | 0; | |
var c = engine() | 0; | |
var d = engine() >>> 0; | |
return ( | |
zeroPad(a.toString(16), 8) + | |
"-" + | |
zeroPad((b & 0xffff).toString(16), 4) + | |
"-" + | |
zeroPad((((b >> 4) & 0x0fff) | 0x4000).toString(16), 4) + | |
"-" + | |
zeroPad(((c & 0x3fff) | 0x8000).toString(16), 4) + | |
"-" + | |
zeroPad(((c >> 4) & 0xffff).toString(16), 4) + | |
zeroPad(d.toString(16), 8)); | |
}; | |
}()); | |
proto.uuid4 = function () { | |
return Random.uuid4(this.engine); | |
}; | |
Random.string = (function () { | |
// has 2**x chars, for faster uniform distribution | |
var DEFAULT_STRING_POOL = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-"; | |
return function (pool) { | |
if (pool == null) { | |
pool = DEFAULT_STRING_POOL; | |
} | |
var length = pool.length; | |
if (!length) { | |
throw new Error("Expected pool not to be an empty string"); | |
} | |
var distribution = Random.integer(0, length - 1); | |
return function (engine, length) { | |
var result = ""; | |
for (var i = 0; i < length; ++i) { | |
var j = distribution(engine); | |
result += pool.charAt(j); | |
} | |
return result; | |
}; | |
}; | |
}()); | |
proto.string = function (length, pool) { | |
return Random.string(pool)(this.engine, length); | |
}; | |
Random.hex = (function () { | |
var LOWER_HEX_POOL = "0123456789abcdef"; | |
var lowerHex = Random.string(LOWER_HEX_POOL); | |
var upperHex = Random.string(LOWER_HEX_POOL.toUpperCase()); | |
return function (upper) { | |
if (upper) { | |
return upperHex; | |
} else { | |
return lowerHex; | |
} | |
}; | |
}()); | |
proto.hex = function (length, upper) { | |
return Random.hex(upper)(this.engine, length); | |
}; | |
Random.date = function (start, end) { | |
if (!(start instanceof Date)) { | |
throw new TypeError("Expected start to be a Date, got " + typeof start); | |
} else if (!(end instanceof Date)) { | |
throw new TypeError("Expected end to be a Date, got " + typeof end); | |
} | |
var distribution = Random.integer(start.getTime(), end.getTime()); | |
return function (engine) { | |
return new Date(distribution(engine)); | |
}; | |
}; | |
proto.date = function (start, end) { | |
return Random.date(start, end)(this.engine); | |
}; | |
if (typeof define === "function" && define.amd) { | |
define(function () { | |
return Random; | |
}); | |
} else if (typeof module !== "undefined" && typeof require === "function") { | |
module.exports = Random; | |
} else { | |
(function () { | |
var oldGlobal = root[GLOBAL_KEY]; | |
Random.noConflict = function () { | |
root[GLOBAL_KEY] = oldGlobal; | |
return this; | |
}; | |
}()); | |
root[GLOBAL_KEY] = Random; | |
} | |
}(this)); | |
window.random = new Random(); | |
window.randomInt = function (min,max) { return random.integer(min,max); }; | |
window.randomBool = function () { return random.bool() }; | |
window.randomFloat = function (min,max) { return random.real(min,max); };</script> | |
<script>/* SAT.js - Version 0.6.0 - Copyright 2012 - 2016 - Jim Riecken <[email protected]> - released under the MIT License. https://github.com/jriecken/sat-js */ | |
function x(){function c(a,e){this.x=a||0;this.y=e||0}function B(a,e){this.pos=a||new c;this.r=e||0}function n(a,e){this.pos=a||new c;this.angle=0;this.offset=new c;this.u(e||[])}function q(a,e,b){this.pos=a||new c;this.w=e||0;this.h=b||0}function w(){this.b=this.a=null;this.overlapN=new c;this.overlapV=new c;this.clear()}function C(a,e,b){for(var h=Number.MAX_VALUE,c=-Number.MAX_VALUE,k=a.length,g=0;g<k;g++){var d=a[g].f(e);d<h&&(h=d);d>c&&(c=d)}b[0]=h;b[1]=c}function y(a,e,b,h,c,k){var g=r.pop(), | |
d=r.pop();a=m.pop().c(e).sub(a);e=a.f(c);C(b,c,g);C(h,c,d);d[0]+=e;d[1]+=e;if(g[0]>d[1]||d[0]>g[1])return m.push(a),r.push(g),r.push(d),!0;k&&(g[0]<d[0]?(k.aInB=!1,g[1]<d[1]?(b=g[1]-d[0],k.bInA=!1):(b=g[1]-d[0],h=d[1]-g[0],b=b<h?b:-h)):(k.bInA=!1,g[1]>d[1]?(b=g[0]-d[1],k.aInB=!1):(b=g[1]-d[0],h=d[1]-g[0],b=b<h?b:-h)),h=Math.abs(b),h<k.overlap&&(k.overlap=h,k.overlapN.c(c),0>b&&k.overlapN.reverse()));m.push(a);r.push(g);r.push(d);return!1}function z(a,e){var b=a.g(),c=e.f(a);return 0>c?-1:c>b?1:0} | |
function D(a,e,b){for(var c=m.pop().c(e.pos).sub(a.pos),l=e.r,k=l*l,g=a.calcPoints,d=g.length,u=m.pop(),f=m.pop(),n=0;n<d;n++){var v=n===d-1?0:n+1,r=0===n?d-1:n-1,q=0,t=null;u.c(a.edges[n]);f.c(c).sub(g[n]);b&&f.g()>k&&(b.aInB=!1);var p=z(u,f);if(-1===p){u.c(a.edges[r]);v=m.pop().c(c).sub(g[r]);p=z(u,v);if(1===p){p=f.j();if(p>l)return m.push(c),m.push(u),m.push(f),m.push(v),!1;b&&(b.bInA=!1,t=f.normalize(),q=l-p)}m.push(v)}else if(1===p){if(u.c(a.edges[v]),f.c(c).sub(g[v]),p=z(u,f),-1===p){p=f.j(); | |
if(p>l)return m.push(c),m.push(u),m.push(f),!1;b&&(b.bInA=!1,t=f.normalize(),q=l-p)}}else{v=u.m().normalize();p=f.f(v);r=Math.abs(p);if(0<p&&r>l)return m.push(c),m.push(v),m.push(f),!1;b&&(t=v,q=l-p,0<=p||q<2*l)&&(b.bInA=!1)}t&&b&&Math.abs(q)<Math.abs(b.overlap)&&(b.overlap=q,b.overlapN.c(t))}b&&(b.a=a,b.b=e,b.overlapV.c(b.overlapN).scale(b.overlap));m.push(c);m.push(u);m.push(f);return!0}function E(a,e,b){for(var c=a.calcPoints,l=c.length,k=e.calcPoints,g=k.length,d=0;d<l;d++)if(y(a.pos,e.pos,c, | |
k,a.normals[d],b))return!1;for(d=0;d<g;d++)if(y(a.pos,e.pos,c,k,e.normals[d],b))return!1;b&&(b.a=a,b.b=e,b.overlapV.c(b.overlapN).scale(b.overlap));return!0}var f={};f.Vector=c;f.V=c;c.prototype.copy=c.prototype.c=function(a){this.x=a.x;this.y=a.y;return this};c.prototype.clone=c.prototype.clone=function(){return new c(this.x,this.y)};c.prototype.perp=c.prototype.m=function(){var a=this.x;this.x=this.y;this.y=-a;return this};c.prototype.rotate=c.prototype.rotate=function(a){var e=this.x,b=this.y; | |
this.x=e*Math.cos(a)-b*Math.sin(a);this.y=e*Math.sin(a)+b*Math.cos(a);return this};c.prototype.reverse=c.prototype.reverse=function(){this.x=-this.x;this.y=-this.y;return this};c.prototype.normalize=c.prototype.normalize=function(){var a=this.j();0<a&&(this.x/=a,this.y/=a);return this};c.prototype.add=c.prototype.add=function(a){this.x+=a.x;this.y+=a.y;return this};c.prototype.sub=c.prototype.sub=function(a){this.x-=a.x;this.y-=a.y;return this};c.prototype.scale=c.prototype.scale=function(a,e){this.x*= | |
a;this.y*=e||a;return this};c.prototype.project=c.prototype.o=function(a){var e=this.f(a)/a.g();this.x=e*a.x;this.y=e*a.y;return this};c.prototype.projectN=c.prototype.s=function(a){var e=this.f(a);this.x=e*a.x;this.y=e*a.y;return this};c.prototype.reflect=function(a){var e=this.x,b=this.y;this.o(a).scale(2);this.x-=e;this.y-=b;return this};c.prototype.reflectN=function(a){var e=this.x,b=this.y;this.s(a).scale(2);this.x-=e;this.y-=b;return this};c.prototype.dot=c.prototype.f=function(a){return this.x* | |
a.x+this.y*a.y};c.prototype.len2=c.prototype.g=function(){return this.f(this)};c.prototype.len=c.prototype.j=function(){return Math.sqrt(this.g())};f.Circle=B;B.prototype.getAABB=function(){var a=this.r,e=this.pos.clone().sub(new c(a,a));return(new q(e,2*a,2*a)).l()};f.Polygon=n;n.prototype.setPoints=n.prototype.u=function(a){if(!this.points||this.points.length!==a.length){var e,b=this.calcPoints=[],h=this.edges=[],l=this.normals=[];for(e=0;e<a.length;e++)b.push(new c),h.push(new c),l.push(new c)}this.points= | |
a;this.i();return this};n.prototype.setAngle=function(a){this.angle=a;this.i();return this};n.prototype.setOffset=function(a){this.offset=a;this.i();return this};n.prototype.rotate=n.prototype.rotate=function(a){for(var e=this.points,b=e.length,c=0;c<b;c++)e[c].rotate(a);this.i();return this};n.prototype.translate=n.prototype.translate=function(a,c){for(var b=this.points,h=b.length,l=0;l<h;l++)b[l].x+=a,b[l].y+=c;this.i();return this};n.prototype.i=function(){var a=this.calcPoints,c=this.edges,b= | |
this.normals,h=this.points,l=this.offset,k=this.angle,g=h.length,d;for(d=0;d<g;d++){var f=a[d].c(h[d]);f.x+=l.x;f.y+=l.y;0!==k&&f.rotate(k)}for(d=0;d<g;d++)h=a[d],h=c[d].c(d<g-1?a[d+1]:a[0]).sub(h),b[d].c(h).m().normalize()};n.prototype.getAABB=function(){for(var a=this.calcPoints,e=a.length,b=a[0].x,h=a[0].y,f=a[0].x,k=a[0].y,g=1;g<e;g++){var d=a[g];d.x<b?b=d.x:d.x>f&&(f=d.x);d.y<h?h=d.y:d.y>k&&(k=d.y)}return(new q(this.pos.clone().add(new c(b,h)),f-b,k-h)).l()};f.Box=q;q.prototype.toPolygon=q.prototype.l= | |
function(){var a=this.pos,e=this.w,b=this.h;return new n(new c(a.x,a.y),[new c,new c(e,0),new c(e,b),new c(0,b)])};f.Response=w;w.prototype.clear=w.prototype.clear=function(){this.bInA=this.aInB=!0;this.overlap=Number.MAX_VALUE;return this};for(var m=[],t=0;10>t;t++)m.push(new c);for(var r=[],t=0;5>t;t++)r.push([]);var A=new w,F=(new q(new c,1E-6,1E-6)).l();f.isSeparatingAxis=y;f.pointInCircle=function(a,c){var b=m.pop().c(a).sub(c.pos),h=c.r*c.r,f=b.g();m.push(b);return f<=h};f.pointInPolygon=function(a, | |
c){F.pos.c(a);A.clear();var b=E(F,c,A);b&&(b=A.aInB);return b};f.testCircleCircle=function(a,c,b){var f=m.pop().c(c.pos).sub(a.pos),l=a.r+c.r,k=f.g();if(k>l*l)return m.push(f),!1;b&&(k=Math.sqrt(k),b.a=a,b.b=c,b.overlap=l-k,b.overlapN.c(f.normalize()),b.overlapV.c(f).scale(b.overlap),b.aInB=a.r<=c.r&&k<=c.r-a.r,b.bInA=c.r<=a.r&&k<=a.r-c.r);m.push(f);return!0};f.testPolygonCircle=D;f.testCirclePolygon=function(a,c,b){if((a=D(c,a,b))&&b){c=b.a;var f=b.aInB;b.overlapN.reverse();b.overlapV.reverse(); | |
b.a=b.b;b.b=c;b.aInB=b.bInA;b.bInA=f}return a};f.testPolygonPolygon=E;return f}"function"===typeof define&&define.amd?define(x):"object"===typeof exports?module.exports=x():this.SAT=x();</script> | |
<script>/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ | |
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ | |
return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)), | |
void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n}); | |
//# sourceMappingURL=jquery.min.map</script> | |
<script>/** | |
* Tween.js - Licensed under the MIT license | |
* https://github.com/tweenjs/tween.js | |
* ---------------------------------------------- | |
* | |
* See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors. | |
* Thank you all, you're awesome! | |
*/ | |
var TWEEN = TWEEN || (function () { | |
var _tweens = []; | |
return { | |
getAll: function () { | |
return _tweens; | |
}, | |
removeAll: function () { | |
_tweens = []; | |
}, | |
add: function (tween) { | |
_tweens.push(tween); | |
}, | |
remove: function (tween) { | |
var i = _tweens.indexOf(tween); | |
if (i !== -1) { | |
_tweens.splice(i, 1); | |
} | |
}, | |
update: function (time, preserve) { | |
if (_tweens.length === 0) { | |
return false; | |
} | |
var i = 0; | |
time = time !== undefined ? time : TWEEN.now(); | |
while (i < _tweens.length) { | |
if (_tweens[i].update(time) || preserve) { | |
i++; | |
} else { | |
_tweens.splice(i, 1); | |
} | |
} | |
return true; | |
} | |
}; | |
})(); | |
// Include a performance.now polyfill. | |
// In node.js, use process.hrtime. | |
if (typeof (window) === 'undefined' && typeof (process) !== 'undefined') { | |
TWEEN.now = function () { | |
var time = process.hrtime(); | |
// Convert [seconds, nanoseconds] to milliseconds. | |
return time[0] * 1000 + time[1] / 1000000; | |
}; | |
} | |
// In a browser, use window.performance.now if it is available. | |
else if (typeof (window) !== 'undefined' && | |
window.performance !== undefined && | |
window.performance.now !== undefined) { | |
// This must be bound, because directly assigning this function | |
// leads to an invocation exception in Chrome. | |
TWEEN.now = window.performance.now.bind(window.performance); | |
} | |
// Use Date.now if it is available. | |
else if (Date.now !== undefined) { | |
TWEEN.now = Date.now; | |
} | |
// Otherwise, use 'new Date().getTime()'. | |
else { | |
TWEEN.now = function () { | |
return new Date().getTime(); | |
}; | |
} | |
TWEEN.Tween = function (object) { | |
var _object = object; | |
var _valuesStart = {}; | |
var _valuesEnd = {}; | |
var _valuesStartRepeat = {}; | |
var _duration = 1000; | |
var _repeat = 0; | |
var _repeatDelayTime; | |
var _yoyo = false; | |
var _isPlaying = false; | |
var _reversed = false; | |
var _delayTime = 0; | |
var _startTime = null; | |
var _easingFunction = TWEEN.Easing.Linear.None; | |
var _interpolationFunction = TWEEN.Interpolation.Linear; | |
var _chainedTweens = []; | |
var _onStartCallback = null; | |
var _onStartCallbackFired = false; | |
var _onUpdateCallback = null; | |
var _onCompleteCallback = null; | |
var _onStopCallback = null; | |
this.to = function (properties, duration) { | |
_valuesEnd = properties; | |
if (duration !== undefined) { | |
_duration = duration; | |
} | |
return this; | |
}; | |
this.start = function (time) { | |
TWEEN.add(this); | |
_isPlaying = true; | |
_onStartCallbackFired = false; | |
_startTime = time !== undefined ? time : TWEEN.now(); | |
_startTime += _delayTime; | |
for (var property in _valuesEnd) { | |
// Check if an Array was provided as property value | |
if (_valuesEnd[property] instanceof Array) { | |
if (_valuesEnd[property].length === 0) { | |
continue; | |
} | |
// Create a local copy of the Array with the start value at the front | |
_valuesEnd[property] = [_object[property]].concat(_valuesEnd[property]); | |
} | |
// If `to()` specifies a property that doesn't exist in the source object, | |
// we should not set that property in the object | |
if (_object[property] === undefined) { | |
continue; | |
} | |
// Save the starting value. | |
_valuesStart[property] = _object[property]; | |
if ((_valuesStart[property] instanceof Array) === false) { | |
_valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings | |
} | |
_valuesStartRepeat[property] = _valuesStart[property] || 0; | |
} | |
return this; | |
}; | |
this.stop = function () { | |
if (!_isPlaying) { | |
return this; | |
} | |
TWEEN.remove(this); | |
_isPlaying = false; | |
if (_onStopCallback !== null) { | |
_onStopCallback.call(_object, _object); | |
} | |
this.stopChainedTweens(); | |
return this; | |
}; | |
this.end = function () { | |
this.update(_startTime + _duration); | |
return this; | |
}; | |
this.stopChainedTweens = function () { | |
for (var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++) { | |
_chainedTweens[i].stop(); | |
} | |
}; | |
this.delay = function (amount) { | |
_delayTime = amount; | |
return this; | |
}; | |
this.repeat = function (times) { | |
_repeat = times; | |
return this; | |
}; | |
this.repeatDelay = function (amount) { | |
_repeatDelayTime = amount; | |
return this; | |
}; | |
this.yoyo = function (yoyo) { | |
_yoyo = yoyo; | |
return this; | |
}; | |
this.easing = function (easing) { | |
_easingFunction = easing; | |
return this; | |
}; | |
this.interpolation = function (interpolation) { | |
_interpolationFunction = interpolation; | |
return this; | |
}; | |
this.chain = function () { | |
_chainedTweens = arguments; | |
return this; | |
}; | |
this.onStart = function (callback) { | |
_onStartCallback = callback; | |
return this; | |
}; | |
this.onUpdate = function (callback) { | |
_onUpdateCallback = callback; | |
return this; | |
}; | |
this.onComplete = function (callback) { | |
_onCompleteCallback = callback; | |
return this; | |
}; | |
this.onStop = function (callback) { | |
_onStopCallback = callback; | |
return this; | |
}; | |
this.update = function (time) { | |
var property; | |
var elapsed; | |
var value; | |
if (time < _startTime) { | |
return true; | |
} | |
if (_onStartCallbackFired === false) { | |
if (_onStartCallback !== null) { | |
_onStartCallback.call(_object, _object); | |
} | |
_onStartCallbackFired = true; | |
} | |
elapsed = (time - _startTime) / _duration; | |
elapsed = elapsed > 1 ? 1 : elapsed; | |
value = _easingFunction(elapsed); | |
for (property in _valuesEnd) { | |
// Don't update properties that do not exist in the source object | |
if (_valuesStart[property] === undefined) { | |
continue; | |
} | |
var start = _valuesStart[property] || 0; | |
var end = _valuesEnd[property]; | |
if (end instanceof Array) { | |
_object[property] = _interpolationFunction(end, value); | |
} else { | |
// Parses relative end values with start as base (e.g.: +10, -3) | |
if (typeof (end) === 'string') { | |
if (end.charAt(0) === '+' || end.charAt(0) === '-') { | |
end = start + parseFloat(end); | |
} else { | |
end = parseFloat(end); | |
} | |
} | |
// Protect against non numeric properties. | |
if (typeof (end) === 'number') { | |
_object[property] = start + (end - start) * value; | |
} | |
} | |
} | |
if (_onUpdateCallback !== null) { | |
_onUpdateCallback.call(_object, value); | |
} | |
if (elapsed === 1) { | |
if (_repeat > 0) { | |
if (isFinite(_repeat)) { | |
_repeat--; | |
} | |
// Reassign starting values, restart by making startTime = now | |
for (property in _valuesStartRepeat) { | |
if (typeof (_valuesEnd[property]) === 'string') { | |
_valuesStartRepeat[property] = _valuesStartRepeat[property] + parseFloat(_valuesEnd[property]); | |
} | |
if (_yoyo) { | |
var tmp = _valuesStartRepeat[property]; | |
_valuesStartRepeat[property] = _valuesEnd[property]; | |
_valuesEnd[property] = tmp; | |
} | |
_valuesStart[property] = _valuesStartRepeat[property]; | |
} | |
if (_yoyo) { | |
_reversed = !_reversed; | |
} | |
if (_repeatDelayTime !== undefined) { | |
_startTime = time + _repeatDelayTime; | |
} else { | |
_startTime = time + _delayTime; | |
} | |
return true; | |
} else { | |
if (_onCompleteCallback !== null) { | |
_onCompleteCallback.call(_object, _object); | |
} | |
for (var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++) { | |
// Make the chained tweens start exactly at the time they should, | |
// even if the `update()` method was called way past the duration of the tween | |
_chainedTweens[i].start(_startTime + _duration); | |
} | |
return false; | |
} | |
} | |
return true; | |
}; | |
}; | |
TWEEN.Easing = { | |
Linear: { | |
None: function (k) { | |
return k; | |
} | |
}, | |
Quadratic: { | |
In: function (k) { | |
return k * k; | |
}, | |
Out: function (k) { | |
return k * (2 - k); | |
}, | |
InOut: function (k) { | |
if ((k *= 2) < 1) { | |
return 0.5 * k * k; | |
} | |
return - 0.5 * (--k * (k - 2) - 1); | |
} | |
}, | |
Cubic: { | |
In: function (k) { | |
return k * k * k; | |
}, | |
Out: function (k) { | |
return --k * k * k + 1; | |
}, | |
InOut: function (k) { | |
if ((k *= 2) < 1) { | |
return 0.5 * k * k * k; | |
} | |
return 0.5 * ((k -= 2) * k * k + 2); | |
} | |
}, | |
Quartic: { | |
In: function (k) { | |
return k * k * k * k; | |
}, | |
Out: function (k) { | |
return 1 - (--k * k * k * k); | |
}, | |
InOut: function (k) { | |
if ((k *= 2) < 1) { | |
return 0.5 * k * k * k * k; | |
} | |
return - 0.5 * ((k -= 2) * k * k * k - 2); | |
} | |
}, | |
Quintic: { | |
In: function (k) { | |
return k * k * k * k * k; | |
}, | |
Out: function (k) { | |
return --k * k * k * k * k + 1; | |
}, | |
InOut: function (k) { | |
if ((k *= 2) < 1) { | |
return 0.5 * k * k * k * k * k; | |
} | |
return 0.5 * ((k -= 2) * k * k * k * k + 2); | |
} | |
}, | |
Sinusoidal: { | |
In: function (k) { | |
return 1 - Math.cos(k * Math.PI / 2); | |
}, | |
Out: function (k) { | |
return Math.sin(k * Math.PI / 2); | |
}, | |
InOut: function (k) { | |
return 0.5 * (1 - Math.cos(Math.PI * k)); | |
} | |
}, | |
Exponential: { | |
In: function (k) { | |
return k === 0 ? 0 : Math.pow(1024, k - 1); | |
}, | |
Out: function (k) { | |
return k === 1 ? 1 : 1 - Math.pow(2, - 10 * k); | |
}, | |
InOut: function (k) { | |
if (k === 0) { | |
return 0; | |
} | |
if (k === 1) { | |
return 1; | |
} | |
if ((k *= 2) < 1) { | |
return 0.5 * Math.pow(1024, k - 1); | |
} | |
return 0.5 * (- Math.pow(2, - 10 * (k - 1)) + 2); | |
} | |
}, | |
Circular: { | |
In: function (k) { | |
return 1 - Math.sqrt(1 - k * k); | |
}, | |
Out: function (k) { | |
return Math.sqrt(1 - (--k * k)); | |
}, | |
InOut: function (k) { | |
if ((k *= 2) < 1) { | |
return - 0.5 * (Math.sqrt(1 - k * k) - 1); | |
} | |
return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); | |
} | |
}, | |
Elastic: { | |
In: function (k) { | |
if (k === 0) { | |
return 0; | |
} | |
if (k === 1) { | |
return 1; | |
} | |
return -Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI); | |
}, | |
Out: function (k) { | |
if (k === 0) { | |
return 0; | |
} | |
if (k === 1) { | |
return 1; | |
} | |
return Math.pow(2, -10 * k) * Math.sin((k - 0.1) * 5 * Math.PI) + 1; | |
}, | |
InOut: function (k) { | |
if (k === 0) { | |
return 0; | |
} | |
if (k === 1) { | |
return 1; | |
} | |
k *= 2; | |
if (k < 1) { | |
return -0.5 * Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI); | |
} | |
return 0.5 * Math.pow(2, -10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI) + 1; | |
} | |
}, | |
Back: { | |
In: function (k) { | |
var s = 1.70158; | |
return k * k * ((s + 1) * k - s); | |
}, | |
Out: function (k) { | |
var s = 1.70158; | |
return --k * k * ((s + 1) * k + s) + 1; | |
}, | |
InOut: function (k) { | |
var s = 1.70158 * 1.525; | |
if ((k *= 2) < 1) { | |
return 0.5 * (k * k * ((s + 1) * k - s)); | |
} | |
return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); | |
} | |
}, | |
Bounce: { | |
In: function (k) { | |
return 1 - TWEEN.Easing.Bounce.Out(1 - k); | |
}, | |
Out: function (k) { | |
if (k < (1 / 2.75)) { | |
return 7.5625 * k * k; | |
} else if (k < (2 / 2.75)) { | |
return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75; | |
} else if (k < (2.5 / 2.75)) { | |
return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375; | |
} else { | |
return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375; | |
} | |
}, | |
InOut: function (k) { | |
if (k < 0.5) { | |
return TWEEN.Easing.Bounce.In(k * 2) * 0.5; | |
} | |
return TWEEN.Easing.Bounce.Out(k * 2 - 1) * 0.5 + 0.5; | |
} | |
} | |
}; | |
TWEEN.Interpolation = { | |
Linear: function (v, k) { | |
var m = v.length - 1; | |
var f = m * k; | |
var i = Math.floor(f); | |
var fn = TWEEN.Interpolation.Utils.Linear; | |
if (k < 0) { | |
return fn(v[0], v[1], f); | |
} | |
if (k > 1) { | |
return fn(v[m], v[m - 1], m - f); | |
} | |
return fn(v[i], v[i + 1 > m ? m : i + 1], f - i); | |
}, | |
Bezier: function (v, k) { | |
var b = 0; | |
var n = v.length - 1; | |
var pw = Math.pow; | |
var bn = TWEEN.Interpolation.Utils.Bernstein; | |
for (var i = 0; i <= n; i++) { | |
b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i); | |
} | |
return b; | |
}, | |
CatmullRom: function (v, k) { | |
var m = v.length - 1; | |
var f = m * k; | |
var i = Math.floor(f); | |
var fn = TWEEN.Interpolation.Utils.CatmullRom; | |
if (v[0] === v[m]) { | |
if (k < 0) { | |
i = Math.floor(f = m * (1 + k)); | |
} | |
return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i); | |
} else { | |
if (k < 0) { | |
return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]); | |
} | |
if (k > 1) { | |
return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]); | |
} | |
return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i); | |
} | |
}, | |
Utils: { | |
Linear: function (p0, p1, t) { | |
return (p1 - p0) * t + p0; | |
}, | |
Bernstein: function (n, i) { | |
var fc = TWEEN.Interpolation.Utils.Factorial; | |
return fc(n) / fc(i) / fc(n - i); | |
}, | |
Factorial: (function () { | |
var a = [1]; | |
return function (n) { | |
var s = 1; | |
if (a[n]) { | |
return a[n]; | |
} | |
for (var i = n; i > 1; i--) { | |
s *= i; | |
} | |
a[n] = s; | |
return s; | |
}; | |
})(), | |
CatmullRom: function (p0, p1, p2, p3, t) { | |
var v0 = (p2 - p0) * 0.5; | |
var v1 = (p3 - p1) * 0.5; | |
var t2 = t * t; | |
var t3 = t * t2; | |
return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (- 3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1; | |
} | |
} | |
}; | |
// UMD (Universal Module Definition) | |
(function (root) { | |
if (typeof define === 'function' && define.amd) { | |
// AMD | |
define([], function () { | |
return TWEEN; | |
}); | |
} else if (typeof module !== 'undefined' && typeof exports === 'object') { | |
// Node.js | |
module.exports = TWEEN; | |
} else if (root !== undefined) { | |
// Global variable | |
root.TWEEN = TWEEN; | |
} | |
})(this); | |
</script> | |
<script>//https://github.com/mattdesl/lerp/blob/master/index.js | |
var lerp = function (v0, v1, t) { return v0*(1-t)+v1*t; };</script> | |
<script>/*! | |
* Bowser - a browser detector | |
* https://github.com/ded/bowser | |
* MIT License | (c) Dustin Diaz 2015 | |
*/ | |
!function (root, name, definition) { | |
if (typeof module != 'undefined' && module.exports) module.exports = definition() | |
else if (typeof define == 'function' && define.amd) define(name, definition) | |
else root[name] = definition() | |
}(this, 'bowser', function () { | |
/** | |
* See useragents.js for examples of navigator.userAgent | |
*/ | |
var t = true | |
function detect(ua) { | |
function getFirstMatch(regex) { | |
var match = ua.match(regex); | |
return (match && match.length > 1 && match[1]) || ''; | |
} | |
function getSecondMatch(regex) { | |
var match = ua.match(regex); | |
return (match && match.length > 1 && match[2]) || ''; | |
} | |
var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase() | |
, likeAndroid = /like android/i.test(ua) | |
, android = !likeAndroid && /android/i.test(ua) | |
, nexusMobile = /nexus\s*[0-6]\s*/i.test(ua) | |
, nexusTablet = !nexusMobile && /nexus\s*[0-9]+/i.test(ua) | |
, chromeos = /CrOS/.test(ua) | |
, silk = /silk/i.test(ua) | |
, sailfish = /sailfish/i.test(ua) | |
, tizen = /tizen/i.test(ua) | |
, webos = /(web|hpw)os/i.test(ua) | |
, windowsphone = /windows phone/i.test(ua) | |
, samsungBrowser = /SamsungBrowser/i.test(ua) | |
, windows = !windowsphone && /windows/i.test(ua) | |
, mac = !iosdevice && !silk && /macintosh/i.test(ua) | |
, linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua) | |
, edgeVersion = getFirstMatch(/edge\/(\d+(\.\d+)?)/i) | |
, versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i) | |
, tablet = /tablet/i.test(ua) | |
, mobile = !tablet && /[^-]mobi/i.test(ua) | |
, xbox = /xbox/i.test(ua) | |
, result | |
if (/opera/i.test(ua)) { | |
// an old Opera | |
result = { | |
name: 'Opera' | |
, opera: t | |
, version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i) | |
} | |
} else if (/opr|opios/i.test(ua)) { | |
// a new Opera | |
result = { | |
name: 'Opera' | |
, opera: t | |
, version: getFirstMatch(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i) || versionIdentifier | |
} | |
} | |
else if (/SamsungBrowser/i.test(ua)) { | |
result = { | |
name: 'Samsung Internet for Android' | |
, samsungBrowser: t | |
, version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/coast/i.test(ua)) { | |
result = { | |
name: 'Opera Coast' | |
, coast: t | |
, version: versionIdentifier || getFirstMatch(/(?:coast)[\s\/](\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/yabrowser/i.test(ua)) { | |
result = { | |
name: 'Yandex Browser' | |
, yandexbrowser: t | |
, version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/ucbrowser/i.test(ua)) { | |
result = { | |
name: 'UC Browser' | |
, ucbrowser: t | |
, version: getFirstMatch(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i) | |
} | |
} | |
else if (/mxios/i.test(ua)) { | |
result = { | |
name: 'Maxthon' | |
, maxthon: t | |
, version: getFirstMatch(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i) | |
} | |
} | |
else if (/epiphany/i.test(ua)) { | |
result = { | |
name: 'Epiphany' | |
, epiphany: t | |
, version: getFirstMatch(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i) | |
} | |
} | |
else if (/puffin/i.test(ua)) { | |
result = { | |
name: 'Puffin' | |
, puffin: t | |
, version: getFirstMatch(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i) | |
} | |
} | |
else if (/sleipnir/i.test(ua)) { | |
result = { | |
name: 'Sleipnir' | |
, sleipnir: t | |
, version: getFirstMatch(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i) | |
} | |
} | |
else if (/k-meleon/i.test(ua)) { | |
result = { | |
name: 'K-Meleon' | |
, kMeleon: t | |
, version: getFirstMatch(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i) | |
} | |
} | |
else if (windowsphone) { | |
result = { | |
name: 'Windows Phone' | |
, windowsphone: t | |
} | |
if (edgeVersion) { | |
result.msedge = t | |
result.version = edgeVersion | |
} | |
else { | |
result.msie = t | |
result.version = getFirstMatch(/iemobile\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/msie|trident/i.test(ua)) { | |
result = { | |
name: 'Internet Explorer' | |
, msie: t | |
, version: getFirstMatch(/(?:msie |rv:)(\d+(\.\d+)?)/i) | |
} | |
} else if (chromeos) { | |
result = { | |
name: 'Chrome' | |
, chromeos: t | |
, chromeBook: t | |
, chrome: t | |
, version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) | |
} | |
} else if (/chrome.+? edge/i.test(ua)) { | |
result = { | |
name: 'Microsoft Edge' | |
, msedge: t | |
, version: edgeVersion | |
} | |
} | |
else if (/vivaldi/i.test(ua)) { | |
result = { | |
name: 'Vivaldi' | |
, vivaldi: t | |
, version: getFirstMatch(/vivaldi\/(\d+(\.\d+)?)/i) || versionIdentifier | |
} | |
} | |
else if (sailfish) { | |
result = { | |
name: 'Sailfish' | |
, sailfish: t | |
, version: getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/seamonkey\//i.test(ua)) { | |
result = { | |
name: 'SeaMonkey' | |
, seamonkey: t | |
, version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/firefox|iceweasel|fxios/i.test(ua)) { | |
result = { | |
name: 'Firefox' | |
, firefox: t | |
, version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i) | |
} | |
if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) { | |
result.firefoxos = t | |
} | |
} | |
else if (silk) { | |
result = { | |
name: 'Amazon Silk' | |
, silk: t | |
, version : getFirstMatch(/silk\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/phantom/i.test(ua)) { | |
result = { | |
name: 'PhantomJS' | |
, phantom: t | |
, version: getFirstMatch(/phantomjs\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/slimerjs/i.test(ua)) { | |
result = { | |
name: 'SlimerJS' | |
, slimer: t | |
, version: getFirstMatch(/slimerjs\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (/blackberry|\bbb\d+/i.test(ua) || /rim\stablet/i.test(ua)) { | |
result = { | |
name: 'BlackBerry' | |
, blackberry: t | |
, version: versionIdentifier || getFirstMatch(/blackberry[\d]+\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (webos) { | |
result = { | |
name: 'WebOS' | |
, webos: t | |
, version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i) | |
}; | |
/touchpad\//i.test(ua) && (result.touchpad = t) | |
} | |
else if (/bada/i.test(ua)) { | |
result = { | |
name: 'Bada' | |
, bada: t | |
, version: getFirstMatch(/dolfin\/(\d+(\.\d+)?)/i) | |
}; | |
} | |
else if (tizen) { | |
result = { | |
name: 'Tizen' | |
, tizen: t | |
, version: getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || versionIdentifier | |
}; | |
} | |
else if (/qupzilla/i.test(ua)) { | |
result = { | |
name: 'QupZilla' | |
, qupzilla: t | |
, version: getFirstMatch(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || versionIdentifier | |
} | |
} | |
else if (/chromium/i.test(ua)) { | |
result = { | |
name: 'Chromium' | |
, chromium: t | |
, version: getFirstMatch(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i) || versionIdentifier | |
} | |
} | |
else if (/chrome|crios|crmo/i.test(ua)) { | |
result = { | |
name: 'Chrome' | |
, chrome: t | |
, version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) | |
} | |
} | |
else if (android) { | |
result = { | |
name: 'Android' | |
, version: versionIdentifier | |
} | |
} | |
else if (/safari|applewebkit/i.test(ua)) { | |
result = { | |
name: 'Safari' | |
, safari: t | |
} | |
if (versionIdentifier) { | |
result.version = versionIdentifier | |
} | |
} | |
else if (iosdevice) { | |
result = { | |
name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod' | |
} | |
// WTF: version is not part of user agent in web apps | |
if (versionIdentifier) { | |
result.version = versionIdentifier | |
} | |
} | |
else if(/googlebot/i.test(ua)) { | |
result = { | |
name: 'Googlebot' | |
, googlebot: t | |
, version: getFirstMatch(/googlebot\/(\d+(\.\d+))/i) || versionIdentifier | |
} | |
} | |
else { | |
result = { | |
name: getFirstMatch(/^(.*)\/(.*) /), | |
version: getSecondMatch(/^(.*)\/(.*) /) | |
}; | |
} | |
// set webkit or gecko flag for browsers based on these engines | |
if (!result.msedge && /(apple)?webkit/i.test(ua)) { | |
if (/(apple)?webkit\/537\.36/i.test(ua)) { | |
result.name = result.name || "Blink" | |
result.blink = t | |
} else { | |
result.name = result.name || "Webkit" | |
result.webkit = t | |
} | |
if (!result.version && versionIdentifier) { | |
result.version = versionIdentifier | |
} | |
} else if (!result.opera && /gecko\//i.test(ua)) { | |
result.name = result.name || "Gecko" | |
result.gecko = t | |
result.version = result.version || getFirstMatch(/gecko\/(\d+(\.\d+)?)/i) | |
} | |
// set OS flags for platforms that have multiple browsers | |
if (!result.windowsphone && !result.msedge && (android || result.silk)) { | |
result.android = t | |
} else if (!result.windowsphone && !result.msedge && iosdevice) { | |
result[iosdevice] = t | |
result.ios = t | |
} else if (mac) { | |
result.mac = t | |
} else if (xbox) { | |
result.xbox = t | |
} else if (windows) { | |
result.windows = t | |
} else if (linux) { | |
result.linux = t | |
} | |
// OS version extraction | |
var osVersion = ''; | |
if (result.windowsphone) { | |
osVersion = getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i); | |
} else if (iosdevice) { | |
osVersion = getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i); | |
osVersion = osVersion.replace(/[_\s]/g, '.'); | |
} else if (android) { | |
osVersion = getFirstMatch(/android[ \/-](\d+(\.\d+)*)/i); | |
} else if (result.webos) { | |
osVersion = getFirstMatch(/(?:web|hpw)os\/(\d+(\.\d+)*)/i); | |
} else if (result.blackberry) { | |
osVersion = getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i); | |
} else if (result.bada) { | |
osVersion = getFirstMatch(/bada\/(\d+(\.\d+)*)/i); | |
} else if (result.tizen) { | |
osVersion = getFirstMatch(/tizen[\/\s](\d+(\.\d+)*)/i); | |
} | |
if (osVersion) { | |
result.osversion = osVersion; | |
} | |
// device type extraction | |
var osMajorVersion = osVersion.split('.')[0]; | |
if ( | |
tablet | |
|| nexusTablet | |
|| iosdevice == 'ipad' | |
|| (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile))) | |
|| result.silk | |
) { | |
result.tablet = t | |
} else if ( | |
mobile | |
|| iosdevice == 'iphone' | |
|| iosdevice == 'ipod' | |
|| android | |
|| nexusMobile | |
|| result.blackberry | |
|| result.webos | |
|| result.bada | |
) { | |
result.mobile = t | |
} | |
// Graded Browser Support | |
// http://developer.yahoo.com/yui/articles/gbs | |
if (result.msedge || | |
(result.msie && result.version >= 10) || | |
(result.yandexbrowser && result.version >= 15) || | |
(result.vivaldi && result.version >= 1.0) || | |
(result.chrome && result.version >= 20) || | |
(result.samsungBrowser && result.version >= 4) || | |
(result.firefox && result.version >= 20.0) || | |
(result.safari && result.version >= 6) || | |
(result.opera && result.version >= 10.0) || | |
(result.ios && result.osversion && result.osversion.split(".")[0] >= 6) || | |
(result.blackberry && result.version >= 10.1) | |
|| (result.chromium && result.version >= 20) | |
) { | |
result.a = t; | |
} | |
else if ((result.msie && result.version < 10) || | |
(result.chrome && result.version < 20) || | |
(result.firefox && result.version < 20.0) || | |
(result.safari && result.version < 6) || | |
(result.opera && result.version < 10.0) || | |
(result.ios && result.osversion && result.osversion.split(".")[0] < 6) | |
|| (result.chromium && result.version < 20) | |
) { | |
result.c = t | |
} else result.x = t | |
return result | |
} | |
var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '') | |
bowser.test = function (browserList) { | |
for (var i = 0; i < browserList.length; ++i) { | |
var browserItem = browserList[i]; | |
if (typeof browserItem=== 'string') { | |
if (browserItem in bowser) { | |
return true; | |
} | |
} | |
} | |
return false; | |
} | |
/** | |
* Get version precisions count | |
* | |
* @example | |
* getVersionPrecision("1.10.3") // 3 | |
* | |
* @param {string} version | |
* @return {number} | |
*/ | |
function getVersionPrecision(version) { | |
return version.split(".").length; | |
} | |
/** | |
* Array::map polyfill | |
* | |
* @param {Array} arr | |
* @param {Function} iterator | |
* @return {Array} | |
*/ | |
function map(arr, iterator) { | |
var result = [], i; | |
if (Array.prototype.map) { | |
return Array.prototype.map.call(arr, iterator); | |
} | |
for (i = 0; i < arr.length; i++) { | |
result.push(iterator(arr[i])); | |
} | |
return result; | |
} | |
/** | |
* Calculate browser version weight | |
* | |
* @example | |
* compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1 | |
* compareVersions(['1.010.2.1', '1.09.2.1.90']); // 1 | |
* compareVersions(['1.10.2.1', '1.10.2.1']); // 0 | |
* compareVersions(['1.10.2.1', '1.0800.2']); // -1 | |
* | |
* @param {Array<String>} versions versions to compare | |
* @return {Number} comparison result | |
*/ | |
function compareVersions(versions) { | |
// 1) get common precision for both versions, for example for "10.0" and "9" it should be 2 | |
var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1])); | |
var chunks = map(versions, function (version) { | |
var delta = precision - getVersionPrecision(version); | |
// 2) "9" -> "9.0" (for precision = 2) | |
version = version + new Array(delta + 1).join(".0"); | |
// 3) "9.0" -> ["000000000"", "000000009"] | |
return map(version.split("."), function (chunk) { | |
return new Array(20 - chunk.length).join("0") + chunk; | |
}).reverse(); | |
}); | |
// iterate in reverse order by reversed chunks array | |
while (--precision >= 0) { | |
// 4) compare: "000000009" > "000000010" = false (but "9" > "10" = true) | |
if (chunks[0][precision] > chunks[1][precision]) { | |
return 1; | |
} | |
else if (chunks[0][precision] === chunks[1][precision]) { | |
if (precision === 0) { | |
// all version chunks are same | |
return 0; | |
} | |
} | |
else { | |
return -1; | |
} | |
} | |
} | |
/** | |
* Check if browser is unsupported | |
* | |
* @example | |
* bowser.isUnsupportedBrowser({ | |
* msie: "10", | |
* firefox: "23", | |
* chrome: "29", | |
* safari: "5.1", | |
* opera: "16", | |
* phantom: "534" | |
* }); | |
* | |
* @param {Object} minVersions map of minimal version to browser | |
* @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map | |
* @param {String} [ua] user agent string | |
* @return {Boolean} | |
*/ | |
function isUnsupportedBrowser(minVersions, strictMode, ua) { | |
var _bowser = bowser; | |
// make strictMode param optional with ua param usage | |
if (typeof strictMode === 'string') { | |
ua = strictMode; | |
strictMode = void(0); | |
} | |
if (strictMode === void(0)) { | |
strictMode = false; | |
} | |
if (ua) { | |
_bowser = detect(ua); | |
} | |
var version = "" + _bowser.version; | |
for (var browser in minVersions) { | |
if (minVersions.hasOwnProperty(browser)) { | |
if (_bowser[browser]) { | |
if (typeof minVersions[browser] !== 'string') { | |
throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions)); | |
} | |
// browser version and min supported version. | |
return compareVersions([version, minVersions[browser]]) < 0; | |
} | |
} | |
} | |
return strictMode; // not found | |
} | |
/** | |
* Check if browser is supported | |
* | |
* @param {Object} minVersions map of minimal version to browser | |
* @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map | |
* @param {String} [ua] user agent string | |
* @return {Boolean} | |
*/ | |
function check(minVersions, strictMode, ua) { | |
return !isUnsupportedBrowser(minVersions, strictMode, ua); | |
} | |
bowser.isUnsupportedBrowser = isUnsupportedBrowser; | |
bowser.compareVersions = compareVersions; | |
bowser.check = check; | |
/* | |
* Set our detect method to the main bowser object so we can | |
* reuse it to test other user agents. | |
* This is needed to implement future tests. | |
*/ | |
bowser._detect = detect; | |
return bowser | |
}); | |
</script> | |
<script>/*! howler.js v2.0.3 | (c) 2013-2017, 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=0,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.mobileAutoEnable=!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.value=e);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.value=e?0:o._volume);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},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||"running":"running",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$/,""),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},_enableMobileAudio:function(){var e=this||n,o=/iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi/i.test(e._navigator&&e._navigator.userAgent),t=!!("ontouchend"in window||e._navigator&&e._navigator.maxTouchPoints>0||e._navigator&&e._navigator.msMaxTouchPoints>0);if(!e._mobileEnabled&&e.ctx&&(o||t)){e._mobileEnabled=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var r=function(){var n=e.ctx.createBufferSource();n.buffer=e._scratchBuffer,n.connect(e.ctx.destination),void 0===n.start?n.noteOn(0):n.start(0),n.onended=function(){n.disconnect(0),e._mobileEnabled=!0,e.mobileAutoEnable=!1,document.removeEventListener("touchend",r,!0)}};return document.addEventListener("touchend",r,!0),e}},_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(){e.autoSuspend&&(e._suspendTimer=null,e.state="suspending",e.ctx.suspend().then(function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())}))},3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state?(e.state="resuming",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||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._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],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._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._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.mobileAutoEnable&&n._enableMobileAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){o.play()}}),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";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&&!t._sprite[e])return t._queue.push({event:"play",action:function(){t.play(t._soundById(i._id)?i._id:void 0)}}),i._id;if(r&&!i._paused)return o||setTimeout(function(){t._emit("play",i._id)},0),i._id;t._webAudio&&n._autoResume();var d=Math.max(0,i._seek>0?i._seek:t._sprite[e][0]/1e3),_=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-d),s=1e3*_/Math.abs(i._rate);i._paused=!1,i._ended=!1,i._sprite=e,i._seek=d,i._start=t._sprite[e][0]/1e3,i._stop=(t._sprite[e][0]+t._sprite[e][1])/1e3,i._loop=!(!i._loop&&!t._sprite[e][2]);var l=i._node;if(t._webAudio){var c=function(){t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;l.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===l.bufferSource.start?i._loop?l.bufferSource.noteGrainOn(0,d,86400):l.bufferSource.noteGrainOn(0,d,_):i._loop?l.bufferSource.start(0,d,86400):l.bufferSource.start(0,d,_),s!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),s)),o||setTimeout(function(){t._emit("play",i._id)},0)},f="running"===n.state;if("loaded"===t._state&&f)c();else{var p=f||"loaded"!==t._state?"load":"resume";t.once(p,c,f?i._id:null),t._clearTimer(i._id)}}else{var v=function(){l.currentTime=d,l.muted=i._muted||t._muted||n._muted||l.muted,l.volume=i._volume*n.volume(),l.playbackRate=i._rate,l.play(),s!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),s)),o||t._emit("play",i._id)},m="loaded"===t._state&&(window&&window.ejecta||!l.readyState&&n._navigator.isCocoonJS);if(4===l.readyState||m)v();else{var h=function(){v(),l.removeEventListener(n._canPlayEvent,h,!1)};l.addEventListener(n._canPlayEvent,h,!1),t._clearTimer(i._id)}}return i._id},pause:function(e){var n=this;if("loaded"!==n._state)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)return n;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)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]);if(a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node))if(o._webAudio){if(!a._node.bufferSource)return n||o._emit("stop",a._id),o;void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)}else isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause());a&&!n&&o._emit("stop",a._id)}return o},mute:function(e,o){var t=this;if("loaded"!==t._state)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,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)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,u=Math.abs(e-o),i=e>o?"out":"in",d=u/.01,_=d>0?t/d:t;if(_<4&&(d=Math.ceil(d/(4/_)),_=4),"loaded"!==a._state)return a._queue.push({event:"fade",action:function(){a.fade(e,o,t,r)}}),a;a.volume(e,r);for(var s=a._getSoundIds(r),l=0;l<s.length;l++){var c=a._soundById(s[l]);if(c){if(r||a._stopFade(s[l]),a._webAudio&&!c._muted){var f=n.ctx.currentTime,p=f+t/1e3;c._volume=e,c._node.gain.setValueAtTime(e,f),c._node.gain.linearRampToValueAtTime(o,p)}var v=e;c._interval=setInterval(function(n,t){d>0&&(v+="in"===i?.01:-.01),v=Math.max(0,v),v=Math.min(1,v),v=Math.round(100*v)/100,a._webAudio?(void 0===r&&(a._volume=v),t._volume=v):a.volume(v,n,!0),(o<e&&v<=o||o>e&&v>=o)&&(clearInterval(t._interval),t._interval=null,a.volume(o,n),a._emit("fade",n))}.bind(a,s[l],c),_)}}return a},_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._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)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])){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.value=e: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):(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)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),s&&t.play(o,!0),!t._webAudio&&i._node&&(i._node.currentTime=e),t._emit("seek",o)}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||(o[t]._node.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA",o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1)),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){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(n){for(a=0;a<r.length;a++)if(n===r[a].fn&&o===r[a].id){r.splice(a,1);break}}else if(e)t["_on"+e]=[];else{var u=Object.keys(t);for(a=0;a<u.length;a++)0===u[a].indexOf("_on")&&Array.isArray(t[u[a]])&&(t[u[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:function(){var e=this;if(e._queue.length>0){var n=e._queue[0];e.once(n.event,function(){e._queue.shift(),e._loadQueue()}),n.action()}return e},_ended:function(e){var o=this,t=e._sprite,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),o},_clearTimer:function(e){var n=this;return n._endTimers[e]&&(clearTimeout(n._endTimers[e]),delete n._endTimers[e]),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),e._node.bufferSource.playbackRate.value=e._rate,o},_cleanBuffer:function(e){var n=this;if(n._scratchBuffer){e.bufferSource.onended=null,e.bufferSource.disconnect(0);try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}}return e.bufferSource=null,n}};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._muted=o._muted,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)):(e._node=new Audio,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="auto",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._muted=o._muted,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._errorListener,!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("GET",n,!0),_.responseType="arraybuffer",_.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){n.ctx.decodeAudioData(e,function(e){e&&o._sounds.length>0&&(r[o._src]=e,d(o,e))},function(){o._emit("loaderror",null,"Decoding audio data failed.")})},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(){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){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&&n._navigator.standalone&&!r||n._navigator&&!n._navigator.standalone&&!r)&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.value=1,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 window?(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t):"undefined"!=typeof global&&(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.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(n){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var o=e._howls.length-1;o>=0;o--)e._howls[o].stereo(n);return e},HowlerGlobal.prototype.pos=function(n,e,o){var t=this;return t.ctx&&t.ctx.listener?(e="number"!=typeof e?t._pos[1]:e,o="number"!=typeof o?t._pos[2]:o,"number"!=typeof n?t._pos:(t._pos=[n,e,o],t.ctx.listener.setPosition(t._pos[0],t._pos[1],t._pos[2]),t)):t},HowlerGlobal.prototype.orientation=function(n,e,o,t,r,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var p=a._orientation;return e="number"!=typeof e?p[1]:e,o="number"!=typeof o?p[2]:o,t="number"!=typeof t?p[3]:t,r="number"!=typeof r?p[4]:r,i="number"!=typeof i?p[5]:i,"number"!=typeof n?p:(a._orientation=[n,e,o,t,r,i],a.ctx.listener.setOrientation(n,e,o,t,r,i),a)},Howl.prototype.init=function(n){return function(e){var o=this;return o._orientation=e.orientation||[1,0,0],o._stereo=e.stereo||null,o._pos=e.pos||null,o._pannerAttr={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:360,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:360,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:0,distanceModel:void 0!==e.distanceModel?e.distanceModel:"inverse",maxDistance:void 0!==e.maxDistance?e.maxDistance:1e4,panningModel:void 0!==e.panningModel?e.panningModel:"HRTF",refDistance:void 0!==e.refDistance?e.refDistance:1,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:1},o._onstereo=e.onstereo?[{fn:e.onstereo}]:[],o._onpos=e.onpos?[{fn:e.onpos}]:[],o._onorientation=e.onorientation?[{fn:e.onorientation}]:[],n.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(e,o){var t=this;if(!t._webAudio)return t;if("loaded"!==t._state)return t._queue.push({event:"stereo",action:function(){t.stereo(e,o)}}),t;var r=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===o){if("number"!=typeof e)return t._stereo;t._stereo=e,t._pos=[e,0,0]}for(var i=t._getSoundIds(o),a=0;a<i.length;a++){var p=t._soundById(i[a]);if(p){if("number"!=typeof e)return p._stereo;p._stereo=e,p._pos=[e,0,0],p._node&&(p._pannerAttr.panningModel="equalpower",p._panner&&p._panner.pan||n(p,r),"spatial"===r?p._panner.setPosition(e,0,0):p._panner.pan.value=e),t._emit("stereo",p._id)}}return t},Howl.prototype.pos=function(e,o,t,r){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"pos",action:function(){i.pos(e,o,t,r)}}),i;if(o="number"!=typeof o?0:o,t="number"!=typeof t?-.5:t,void 0===r){if("number"!=typeof e)return i._pos;i._pos=[e,o,t]}for(var a=i._getSoundIds(r),p=0;p<a.length;p++){var s=i._soundById(a[p]);if(s){if("number"!=typeof e)return s._pos;s._pos=[e,o,t],s._node&&(s._panner&&!s._panner.pan||n(s,"spatial"),s._panner.setPosition(e,o,t)),i._emit("pos",s._id)}}return i},Howl.prototype.orientation=function(e,o,t,r){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"orientation",action:function(){i.orientation(e,o,t,r)}}),i;if(o="number"!=typeof o?i._orientation[1]:o,t="number"!=typeof t?i._orientation[2]:t,void 0===r){if("number"!=typeof e)return i._orientation;i._orientation=[e,o,t]}for(var a=i._getSoundIds(r),p=0;p<a.length;p++){var s=i._soundById(a[p]);if(s){if("number"!=typeof e)return s._orientation;s._orientation=[e,o,t],s._node&&(s._panner||(s._pos||(s._pos=i._pos||[0,0,-.5]),n(s,"spatial")),s._panner.setOrientation(e,o,t)),i._emit("orientation",s._id)}}return i},Howl.prototype.pannerAttr=function(){var e,o,t,r=this,i=arguments;if(!r._webAudio)return r;if(0===i.length)return r._pannerAttr;if(1===i.length){if("object"!=typeof i[0])return t=r._soundById(parseInt(i[0],10)),t?t._pannerAttr:r._pannerAttr;e=i[0],void 0===o&&(r._pannerAttr={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:r._coneInnerAngle,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:r._coneOuterAngle,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:r._coneOuterGain,distanceModel:void 0!==e.distanceModel?e.distanceModel:r._distanceModel,maxDistance:void 0!==e.maxDistance?e.maxDistance:r._maxDistance,panningModel:void 0!==e.panningModel?e.panningModel:r._panningModel,refDistance:void 0!==e.refDistance?e.refDistance:r._refDistance,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:r._rolloffFactor})}else 2===i.length&&(e=i[0],o=parseInt(i[1],10));for(var a=r._getSoundIds(o),p=0;p<a.length;p++)if(t=r._soundById(a[p])){var s=t._pannerAttr;s={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:s.coneInnerAngle,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:s.coneOuterAngle,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:s.coneOuterGain,distanceModel:void 0!==e.distanceModel?e.distanceModel:s.distanceModel,maxDistance:void 0!==e.maxDistance?e.maxDistance:s.maxDistance,panningModel:void 0!==e.panningModel?e.panningModel:s.panningModel,refDistance:void 0!==e.refDistance?e.refDistance:s.refDistance,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:s.rolloffFactor};var l=t._panner;l?(l.coneInnerAngle=s.coneInnerAngle,l.coneOuterAngle=s.coneOuterAngle,l.coneOuterGain=s.coneOuterGain,l.distanceModel=s.distanceModel,l.maxDistance=s.maxDistance,l.panningModel=s.panningModel,l.refDistance=s.refDistance,l.rolloffFactor=s.rolloffFactor):(t._pos||(t._pos=r._pos||[0,0,-.5]),n(t,"spatial"))}return r},Sound.prototype.init=function(n){return function(){var e=this,o=e._parent;e._orientation=o._orientation,e._stereo=o._stereo,e._pos=o._pos,e._pannerAttr=o._pannerAttr,n.call(this),e._stereo?o.stereo(e._stereo):e._pos&&o.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(n){return function(){var e=this,o=e._parent;return e._orientation=o._orientation,e._pos=o._pos,e._pannerAttr=o._pannerAttr,n.call(this)}}(Sound.prototype.reset);var n=function(n,e){e=e||"spatial","spatial"===e?(n._panner=Howler.ctx.createPanner(),n._panner.coneInnerAngle=n._pannerAttr.coneInnerAngle,n._panner.coneOuterAngle=n._pannerAttr.coneOuterAngle,n._panner.coneOuterGain=n._pannerAttr.coneOuterGain,n._panner.distanceModel=n._pannerAttr.distanceModel,n._panner.maxDistance=n._pannerAttr.maxDistance,n._panner.panningModel=n._pannerAttr.panningModel,n._panner.refDistance=n._pannerAttr.refDistance,n._panner.rolloffFactor=n._pannerAttr.rolloffFactor,n._panner.setPosition(n._pos[0],n._pos[1],n._pos[2]),n._panner.setOrientation(n._orientation[0],n._orientation[1],n._orientation[2])):(n._panner=Howler.ctx.createStereoPanner(),n._panner.pan.value=n._stereo),n._panner.connect(n._node),n._paused||n._parent.pause(n._id,!0).play(n._id)}}();</script> | |
<script>var URLParameterUtils = (function () { | |
var urlParameterUtils = { }; | |
urlParameterUtils.getParameterByName = function (name, url) { | |
if (!url) url = window.location.href; | |
name = name.replace(/[\[\]]/g, "\\$&"); | |
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), | |
results = regex.exec(url); | |
if (!results) return null; | |
if (!results[2]) return ''; | |
return decodeURIComponent(results[2].replace(/\+/g, " ")); | |
} | |
//http://stackoverflow.com/questions/1634748/how-can-i-delete-a-query-string-parameter-in-javascript | |
urlParameterUtils.clearURLParam = function (parameter) { | |
//prefer to use l.search if you have a location/link object | |
var url = window.location.href; | |
var urlparts= url.split('?'); | |
if (urlparts.length>=2) { | |
var prefix= encodeURIComponent(parameter)+'='; | |
var pars= urlparts[1].split(/[&;]/g); | |
//reverse iteration as may be destructive | |
for (var i= pars.length; i-- > 0;) { | |
//idiom for string.startsWith | |
if (pars[i].lastIndexOf(prefix, 0) !== -1) { | |
pars.splice(i, 1); | |
} | |
} | |
url= urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : ""); | |
//console.log(url) | |
//window.location.href = url; | |
history.pushState(null, null, url); | |
return url; | |
} else { | |
return url; | |
} | |
} | |
return urlParameterUtils; | |
})();</script> | |
<script>// stats.js - http://github.com/mrdoob/stats.js | |
(function(f,e){"object"===typeof exports&&"undefined"!==typeof module?module.exports=e():"function"===typeof define&&define.amd?define(e):f.Stats=e()})(this,function(){var f=function(){function e(a){c.appendChild(a.dom);return a}function u(a){for(var d=0;d<c.children.length;d++)c.children[d].style.display=d===a?"block":"none";l=a}var l=0,c=document.createElement("div");c.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000";c.addEventListener("click",function(a){a.preventDefault(); | |
u(++l%c.children.length)},!1);var k=(performance||Date).now(),g=k,a=0,r=e(new f.Panel("FPS","#0ff","#002")),h=e(new f.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var t=e(new f.Panel("MB","#f08","#201"));u(0);return{REVISION:16,dom:c,addPanel:e,showPanel:u,begin:function(){k=(performance||Date).now()},end:function(){a++;var c=(performance||Date).now();h.update(c-k,200);if(c>g+1E3&&(r.update(1E3*a/(c-g),100),g=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/ | |
1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){k=this.end()},domElement:c,setMode:u}};f.Panel=function(e,f,l){var c=Infinity,k=0,g=Math.round,a=g(window.devicePixelRatio||1),r=80*a,h=48*a,t=3*a,v=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement("canvas");q.width=r;q.height=h;q.style.cssText="width:80px;height:48px";var b=q.getContext("2d");b.font="bold "+9*a+"px Helvetica,Arial,sans-serif";b.textBaseline="top";b.fillStyle=l;b.fillRect(0,0,r,h);b.fillStyle=f;b.fillText(e,t,v); | |
b.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(h,w){c=Math.min(c,h);k=Math.max(k,h);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=f;b.fillText(g(h)+" "+e+" ("+g(c)+"-"+g(k)+")",t,v);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,g((1-h/w)*p))}}};return f}); | |
</script> | |
<script>window.saveData = function (key, data) { | |
if(!localStorage.savedData) | |
localStorage.savedData = JSON.stringify({}); | |
var savedData = JSON.parse(localStorage.savedData) | |
var type = typeof data; | |
savedData[key] = { | |
type: type, | |
data: (type === 'object') ? JSON.stringify(data) : data | |
}; | |
localStorage.savedData = JSON.stringify(savedData); | |
} | |
window.getData = function (key) { | |
var savedData = JSON.parse(localStorage.savedData) | |
if(savedData[key] !== undefined) { | |
var value = savedData[key]; | |
if(value.type === 'number') { | |
return parseFloat(value.data) | |
} else if (value.type === 'string') { | |
return value.data; | |
} else if (value.type === 'object') { | |
return JSON.parse(value.data); | |
} | |
} else { | |
throw (new Error(key + " does not exist in saved data.")) | |
} | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var tweenValueNames = ["x","y","scaleX","scaleY","rotation","opacity"]; | |
var WickTween = function() { | |
this.x = 0; | |
this.y = 0; | |
this.z = 0; | |
this.scaleX = 1; | |
this.scaleY = 1; | |
this.rotation = 0; | |
this.opacity = 1; | |
this.playheadPosition = 0; | |
this.rotations = 0; | |
this.uuid = random.uuid4(); | |
this.tweenType = 'Linear'; | |
this.tweenDir = 'None'; | |
} | |
WickTween.fromWickObjectState = function (wickObject) { | |
var tween = new WickTween(); | |
tweenValueNames.forEach(function (name) { | |
tween[name] = wickObject[name]; | |
}); | |
return tween; | |
} | |
WickTween.prototype.copy = function () { | |
var copy = new WickTween(); | |
copy.x = this.x; | |
copy.y = this.y; | |
copy.z = this.z; | |
copy.scaleX = this.scaleX; | |
copy.scaleY = this.scaleY; | |
copy.rotation = this.rotation; | |
copy.opacity = this.opacity; | |
copy.playheadPosition = this.playheadPosition; | |
copy.tweenType = this.tweenType; | |
copy.tweenDir = this.tweenDir; | |
return copy; | |
} | |
WickTween.prototype.updateFromWickObjectState = function (wickObject) { | |
var self = this; | |
tweenValueNames.forEach(function (name) { | |
self[name] = wickObject[name]; | |
}); | |
} | |
WickTween.prototype.applyTweenToWickObject = function(wickObject) { | |
var that = this; | |
tweenValueNames.forEach(function (name) { | |
wickObject[name] = that[name]; | |
}); | |
}; | |
WickTween.interpolateTweens = function (tweenA, tweenB, t) { | |
var interpTween = new WickTween(); | |
var tweenFunc = (tweenA.tweenType === "Linear") ? (TWEEN.Easing.Linear.None) : (TWEEN.Easing[tweenA.tweenType][tweenA.tweenDir]); | |
tweenValueNames.forEach(function (name) { | |
var tt = tweenFunc(t); | |
var valA = tweenA[name]; | |
var valB = tweenB[name]; | |
if(name === 'rotation') { | |
while(valA < -180) valA += 360; | |
while(valB < -180) valB += 360; | |
while(valA > 180) valA -= 360; | |
while(valB > 180) valB -= 360; | |
valB += tweenA.rotations * 360; | |
} | |
interpTween[name] = lerp(valA, valB, tt); | |
}); | |
return interpTween; | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickFrame = function () { | |
// Identifier so we can do e.g. movePlayheadTo("menu") | |
this.identifier = ""; | |
// Store all objects in frame. | |
this.wickObjects = []; | |
this.tweens = []; | |
// All path data of the frame (Stored as SVG) | |
this.pathData = null; | |
// Where this frame exists on the timeline | |
this.playheadPosition = null; | |
// Frame length for long frames | |
this.length = 1; | |
// Should the frame reset on being entered? | |
this.alwaysSaveState = false; | |
// Generate unique id | |
this.uuid = random.uuid4(); | |
// The layer that this frame belongs to | |
this.parentLayer = null; | |
// Set all scripts to defaults | |
//this.wickScript = "function load() {\n\t\n}\n\nfunction update() {\n\t\n}\n"; | |
this.wickScript = ""; | |
}; | |
WickFrame.prototype.tick = function () { | |
var self = this; | |
// Inactive -> Inactive | |
// Do nothing, frame is still inactive | |
if (!this._wasActiveLastTick && !this._active) { | |
} | |
// Inactive -> Active | |
// Frame just became active! It's fresh! | |
else if (!this._wasActiveLastTick && this._active) { | |
(wickPlayer || wickEditor).project.loadScriptOfObject(this); | |
(wickPlayer || wickEditor).project.runScript(this, 'load'); | |
(wickPlayer || wickEditor).project.runScript(this, 'update'); | |
if(wickPlayer) wickPlayer.audioPlayer.playSound(this); | |
} | |
// Active -> Active | |
// Frame is active! | |
else if (this._wasActiveLastTick && this._active) { | |
(wickPlayer || wickEditor).project.runScript(this, 'update'); | |
} | |
// Active -> Inactive | |
// Frame just stopped being active. Clean up! | |
else if (this._wasActiveLastTick && !this._active) { | |
} | |
if(this._wasClicked) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mousedown'); | |
this._wasClicked = false; | |
} | |
if(this._wasHoveredOver) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mouseover'); | |
this._wasHoveredOver = false; | |
} | |
if(this._mouseJustLeft) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mouseout'); | |
this._mouseJustLeft = false; | |
} | |
if(this._wasClickedOff) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mouseup'); | |
this._wasClickedOff = false; | |
} | |
wickPlayer.inputHandler.getAllKeysJustReleased().forEach(function (key) { | |
(wickPlayer || wickEditor).project.runScript(self, 'keyreleased', key); | |
}); | |
wickPlayer.inputHandler.getAllKeysJustPressed().forEach(function (key) { | |
(wickPlayer || wickEditor).project.runScript(self, 'keypressed', key); | |
}); | |
wickPlayer.inputHandler.getAllKeysDown().forEach(function (key) { | |
(wickPlayer || wickEditor).project.runScript(self, 'keydown', key); | |
}); | |
this.wickObjects.forEach(function (wickObject) { | |
wickObject.tick(); | |
}); | |
} | |
WickFrame.prototype.isActive = function () { | |
var parent = this.parentLayer.parentWickObject; | |
//if(parent.isRoot) console.log(parent.playheadPosition) | |
/*console.log("---") | |
console.log("ph "+(parent.playheadPosition)) | |
console.log("s "+(this.playheadPosition)) | |
console.log("e "+(this.playheadPosition+this.length)) | |
console.log("---")*/ | |
return parent.playheadPosition >= this.playheadPosition | |
&& parent.playheadPosition < this.playheadPosition+this.length | |
&& parent.isActive(); | |
} | |
WickFrame.prototype.hasScript = function () { | |
return this.wickScript !== ""; | |
} | |
// Extend our frame to encompass more frames. | |
WickFrame.prototype.extend = function(length) { | |
this.length += length; | |
} | |
// Reduce the number of frames this WickFrame Occupies. | |
WickFrame.prototype.shrink = function(length) { | |
// Never "shrink" by a negative amount. | |
if (length <= 0) { | |
return; | |
} | |
originalLength = this.length; | |
this.length -= length; | |
// determine and return the actual change in frames. | |
if (this.length <= 0) { | |
this.length = 1; | |
return originalLength - 1; | |
} else { | |
return length; | |
} | |
} | |
WickFrame.prototype.copy = function () { | |
var copiedFrame = new WickFrame(); | |
copiedFrame.identifier = this.identifier; | |
copiedFrame.playheadPosition = this.playheadPosition; | |
copiedFrame.length = this.length; | |
copiedFrame.wickScript = this.wickScript; | |
copiedFrame.uuid = random.uuid4(); | |
this.wickObjects.forEach(function (wickObject) { | |
copiedFrame.wickObjects.push(wickObject.copy()); | |
}) | |
this.tweens.forEach(function (tween) { | |
copiedFrame.tweens.push(tween.copy()); | |
}) | |
return copiedFrame; | |
} | |
WickFrame.prototype.remove = function () { | |
this.parentLayer.removeFrame(this); | |
} | |
WickFrame.prototype.touchesFrame = function (frame) { | |
var A = this; | |
var B = frame; | |
if(A._beingMoved || B._beingMoved) return false; | |
var AStart = A.playheadPosition; | |
var AEnd = A.playheadPosition + A.length; | |
var BStart = B.playheadPosition; | |
var BEnd = B.playheadPosition + B.length; | |
return !(BStart >= AEnd || BEnd <= AStart); | |
} | |
WickFrame.prototype.encodeStrings = function () { | |
if(this.wickScripts) { | |
for (var key in this.wickScripts) { | |
this.wickScripts[key] = WickProject.Compressor.encodeString(this.wickScripts[key]); | |
} | |
} | |
if(this.wickScript) { | |
this.wickScript = WickProject.Compressor.encodeString(this.wickScript); | |
} | |
if(this.pathData) this.pathData = WickProject.Compressor.encodeString(this.pathData); | |
} | |
WickFrame.prototype.decodeStrings = function () { | |
if(this.wickScripts) { | |
for (var key in this.wickScripts) { | |
this.wickScripts[key] = WickProject.Compressor.decodeString(this.wickScripts[key]); | |
} | |
} | |
if(this.wickScript) { | |
this.wickScript = WickProject.Compressor.decodeString(this.wickScript); | |
} | |
if(this.pathData) this.pathData = WickProject.Compressor.decodeString(this.pathData); | |
} | |
WickFrame.prototype.getFrameEnd = function () { | |
return this.playheadPosition + this.length; | |
} | |
WickFrame.prototype.getObjectByUUID = function () { | |
var foundWickObject; | |
this.wickObjects.forEach(function (wickObject) { | |
if(wickObject.uuid === uuid) { | |
foundWickObject = wickObject; | |
} | |
}); | |
return foundWickObject; | |
} | |
WickFrame.prototype.getAsJSON = function () { | |
this.wickObjects.forEach(function (wickObject) { | |
wickObject.encodeStrings(); | |
}); | |
var frameJSON = JSON.stringify(this, WickProject.Exporter.JSONReplacerObject); | |
this.wickObjects.forEach(function (wickObject) { | |
wickObject.decodeStrings(); | |
}); | |
return frameJSON; | |
} | |
WickFrame.fromJSON = function (frameJSON) { | |
var frame = JSON.parse(frameJSON); | |
frame.__proto__ = WickFrame.prototype; | |
frame.uuid = random.uuid4(); | |
frame.wickObjects.forEach(function (wickObject) { | |
WickObject.addPrototypes(wickObject); | |
wickObject.generateParentObjectReferences(); | |
wickObject.decodeStrings(); | |
wickObject.uuid = random.uuid4(); | |
}) | |
return frame; | |
} | |
WickFrame.fromJSONArray = function (jsonArrayObject) { | |
var frames = []; | |
var framesJSONArray = jsonArrayObject.wickObjectArray; | |
framesJSONArray.forEach(function (frameJSON) { | |
var newframe = WickFrame.fromJSON(frameJSON) | |
frames.push(newframe) | |
}); | |
return frames; | |
} | |
WickFrame.prototype.getNextOpenPlayheadPosition = function () { | |
return this.parentLayer.getNextOpenPlayheadPosition(this.playheadPosition); | |
} | |
WickFrame.prototype.addTween = function (newTween) { | |
var self = this; | |
var replacedTween = false; | |
self.tweens.forEach(function (tween) { | |
if (tween.playheadPosition === newTween.playheadPosition) { | |
self.tweens[self.tweens.indexOf(tween)] = newTween; | |
replacedTween = true; | |
} | |
}); | |
if(!replacedTween) | |
self.tweens.push(newTween); | |
} | |
WickFrame.prototype.removeTween = function (tweenToDelete) { | |
var self = this; | |
var deleteTweenIndex = null; | |
self.tweens.forEach(function (tween) { | |
if(deleteTweenIndex) return; | |
if (tweenToDelete === tween) { | |
deleteTweenIndex = self.tweens.indexOf(tween); | |
} | |
}); | |
if(deleteTweenIndex !== null) { | |
self.tweens.splice(deleteTweenIndex, 1); | |
} | |
} | |
WickFrame.prototype.getCurrentTween = function () { | |
return this.getTweenAtFrame(this.parentObject.playheadPosition-this.playheadPosition) | |
} | |
WickFrame.prototype.getTweenAtPlayheadPosition = function (playheadPosition) { | |
var foundTween; | |
this.tweens.forEach(function (tween) { | |
if(foundTween) return; | |
if(tween.playheadPosition === playheadPosition) foundTween = tween; | |
}) | |
return foundTween; | |
} | |
WickFrame.prototype.hasTweenAtFrame = function () { | |
var playheadPosition = this.parentObject.playheadPosition-this.playheadPosition; | |
var foundTween = false | |
this.tweens.forEach(function (tween) { | |
if(foundTween) return; | |
if(tween.playheadPosition === playheadPosition) foundTween = true; | |
}) | |
return foundTween; | |
} | |
WickFrame.prototype.getTweenAtFrame = function (playheadPosition) { | |
var playheadPosition = this.parentObject.playheadPosition-this.playheadPosition; | |
var foundTween; | |
this.tweens.forEach(function (tween) { | |
if(foundTween) return; | |
if(tween.playheadPosition === playheadPosition) foundTween = tween; | |
}) | |
return foundTween; | |
} | |
WickFrame.prototype.getFromTween = function () { | |
var foundTween = null; | |
var relativePlayheadPosition = this.parentObject.playheadPosition-this.playheadPosition; | |
var seekPlayheadPosition = relativePlayheadPosition; | |
while (!foundTween && seekPlayheadPosition >= 0) { | |
this.tweens.forEach(function (tween) { | |
if(tween.playheadPosition === seekPlayheadPosition) { | |
foundTween = tween; | |
} | |
}); | |
seekPlayheadPosition--; | |
} | |
return foundTween; | |
} | |
WickFrame.prototype.getToTween = function () { | |
var foundTween = null; | |
var relativePlayheadPosition = this.parentObject.playheadPosition-this.playheadPosition; | |
var seekPlayheadPosition = relativePlayheadPosition; | |
var parentFrameLength = this.length; | |
while (!foundTween && seekPlayheadPosition < parentFrameLength) { | |
this.tweens.forEach(function (tween) { | |
if(tween.playheadPosition === seekPlayheadPosition) { | |
foundTween = tween; | |
} | |
}); | |
seekPlayheadPosition++; | |
} | |
return foundTween; | |
} | |
WickFrame.prototype.applyTween = function () { | |
var self = this; | |
var tweenToApply; | |
if(self.tweens.length === 1) { | |
tweenToApply = self.tweens[0]; | |
} else if (self.tweens.length > 1) { | |
var tweenFrom = self.getFromTween(); | |
var tweenTo = self.getToTween(); | |
if (tweenFrom && tweenTo) { | |
// yuck | |
var A = tweenFrom.playheadPosition; | |
var B = tweenTo.playheadPosition; | |
var L = B-A; | |
var P = (this.parentObject.playheadPosition-this.playheadPosition)-A; | |
var T = P/L; | |
if(B-A === 0) T = 1; | |
tweenToApply = WickTween.interpolateTweens(tweenFrom, tweenTo, T); | |
} | |
if (!tweenFrom && tweenTo) { | |
tweenToApply = tweenTo; | |
} | |
if (!tweenTo && tweenFrom) { | |
tweenToApply = tweenFrom; | |
} | |
} | |
if(!tweenToApply) return; | |
self.wickObjects.forEach(function (wickObject) { | |
tweenToApply.applyTweenToWickObject(wickObject); | |
}); | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickLayer = function () { | |
this.frames = [new WickFrame()]; | |
this.frames[0].playheadPosition = 0; | |
this.identifier = "Layer 1" | |
this.locked = false; | |
this.hidden = false; | |
this.parentWickObject = null; // The WickObject that this layer belongs to | |
}; | |
WickLayer.prototype.getTotalLength = function () { | |
var length = 0; | |
this.frames.forEach(function (frame) { | |
var frameEnd = frame.playheadPosition + frame.length; | |
if(frameEnd > length) length = frameEnd; | |
}); | |
return length; | |
} | |
WickLayer.prototype.getFrameAtPlayheadPosition = function (playheadPosition) { | |
var foundFrame = null; | |
this.frames.forEach(function (frame) { | |
if(foundFrame) return; | |
if(playheadPosition >= frame.playheadPosition && playheadPosition < frame.playheadPosition+frame.length) { | |
foundFrame = frame; | |
} | |
}); | |
return foundFrame; | |
} | |
WickLayer.prototype.getCurrentFrame = function () { | |
return this.getFrameAtPlayheadPosition(this.parentWickObject.playheadPosition); | |
} | |
WickLayer.prototype.addFrame = function(newFrame, i) { | |
if(i) console.error("DEPERACATED! TELL ZJ!"); | |
this.frames.push(newFrame); | |
} | |
WickLayer.prototype.removeFrame = function(frame) { | |
var i = this.frames.indexOf(frame); | |
this.frames.splice(i, 1); | |
} | |
WickLayer.prototype.copy = function () { | |
var copiedLayer = new WickLayer(); | |
copiedLayer.frames = []; | |
this.frames.forEach(function (frame) { | |
copiedLayer.frames.push(frame.copy()); | |
}) | |
return copiedLayer; | |
} | |
WickLayer.prototype.getFrameByIdentifier = function (id) { | |
var foundFrame = null; | |
this.frames.forEach(function (frame) { | |
if(frame.identifier === id) { | |
foundFrame = frame; | |
} | |
}); | |
return foundFrame; | |
} | |
WickLayer.prototype.getRelativePlayheadPosition = function (wickObj, args) { | |
var playheadRelativePosition = this.playheadPosition - wickObj.parentFrame.playheadPosition; | |
if(args && args.normalized) playheadRelativePosition /= wickObj.parentFrame.length-1; | |
return playheadRelativePosition; | |
} | |
WickLayer.prototype.getFramesAtPlayheadPosition = function(pos, args) { | |
var frames = []; | |
var counter = 0; | |
for(var f = 0; f < this.frames.length; f++) { | |
var frame = this.frames[f]; | |
for(var i = 0; i < frame.length; i++) { | |
if(counter == pos) { | |
frames.push(frame); | |
} | |
counter++; | |
} | |
} | |
return frames; | |
} | |
WickLayer.prototype.getNextOpenPlayheadPosition = function (startPosition) { | |
var targetPosition = startPosition; | |
while(this.getFrameAtPlayheadPosition(targetPosition)) { | |
targetPosition ++; | |
} | |
return targetPosition; | |
} | |
WickLayer.prototype.getLastFrame = function (playheadPosition) { | |
var lastFrame = null; | |
if(!playheadPosition) playheadPosition = 0; | |
// Look backwards | |
this.frames.forEach(function (frame) { | |
if(!lastFrame) lastFrame = frame; | |
if(frame.playheadPosition > lastFrame.playheadPosition && frame.playheadPosition < playheadPosition) { | |
lastFrame = frame; | |
} | |
}); | |
if(lastFrame.playheadPosition > playheadPosition) return null; | |
return lastFrame; | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickObject = function () { | |
// Internals | |
// Unique id | |
this.uuid = random.uuid4(); | |
// Name is optional, added by user | |
this.name = undefined; | |
// Positioning | |
this.x = 0; | |
this.y = 0; | |
this.width = undefined; | |
this.height = undefined; | |
this.scaleX = 1; | |
this.scaleY = 1; | |
this.rotation = 0; | |
this.flipX = false; | |
this.flipY = false; | |
this.opacity = 1; | |
// Common | |
//this.wickScript = "function load() {\n\t\n}\n\nfunction update() {\n\t\n}\n"; | |
this.wickScript = ""; | |
// Static | |
this.assetUUID = null; | |
this.loop = false; | |
// Text | |
this.isText = false; | |
// Symbols | |
this.isSymbol = false; | |
this.isButton = false; | |
this.isGroup = false; | |
// Used to keep track of what frame is being edited | |
this.playheadPosition = null; | |
this.currentLayer = null; | |
// List of layers, only used by symbols | |
this.layers = undefined; | |
this.playRanges = undefined; | |
}; | |
WickObject.fromJSON = function (jsonString) { | |
// Parse JSON | |
var newWickObject = JSON.parse(jsonString); | |
// Put prototypes back on object ('class methods'), they don't get JSONified on project export. | |
WickObject.addPrototypes(newWickObject); | |
// Decode scripts back to human-readble and eval()-able format | |
newWickObject.decodeStrings(); | |
return newWickObject; | |
} | |
WickObject.fromJSONArray = function (jsonArrayObject) { | |
var newWickObjects = []; | |
var wickObjectJSONArray = jsonArrayObject.wickObjectArray; | |
for (var i = 0; i < wickObjectJSONArray.length; i++) { | |
var newWickObject = WickObject.fromJSON(wickObjectJSONArray[i]); | |
if(wickObjectJSONArray.length > 1) { | |
newWickObject.x += jsonArrayObject.groupPosition.x; | |
newWickObject.y += jsonArrayObject.groupPosition.y; | |
} | |
newWickObjects.push(newWickObject); | |
} | |
return newWickObjects; | |
} | |
WickObject.createPathObject = function (svg) { | |
var obj = new WickObject(); | |
obj.isPath = true; | |
obj.pathData = svg; | |
return obj; | |
} | |
WickObject.createTextObject = function (text) { | |
var obj = new WickObject(); | |
obj.isText = true; | |
obj.width = 400; | |
obj.textData = { | |
fontFamily: 'Arial', | |
fontSize: 40, | |
fontStyle: 'normal', | |
fontWeight: 'normal', | |
lineHeight: 1.0, | |
fill: '#000000', | |
textAlign: 'left', | |
text: text | |
}; | |
return obj; | |
} | |
WickObject.createNewSymbol = function (name) { | |
var symbol = new WickObject(); | |
symbol.isSymbol = true; | |
symbol.playheadPosition = 0; | |
symbol.currentLayer = 0; | |
symbol.layers = [new WickLayer()]; | |
symbol.playRanges = []; | |
symbol.name = name; | |
return symbol; | |
} | |
// Create a new symbol and add every object in wickObjects as children | |
WickObject.createSymbolFromWickObjects = function (wickObjects) { | |
var symbol = WickObject.createNewSymbol(); | |
// Calculate center of all WickObjects | |
var topLeft = {x:Number.MAX_SAFE_INTEGER, y:Number.MAX_SAFE_INTEGER}; | |
var bottomRight = {x:-Number.MAX_SAFE_INTEGER,y:-Number.MAX_SAFE_INTEGER}; | |
wickObjects.forEach(function (wickObj) { | |
topLeft.x = Math.min(topLeft.x, wickObj.x - wickObj.width /2); | |
topLeft.y = Math.min(topLeft.y, wickObj.y - wickObj.height/2); | |
bottomRight.x = Math.max(bottomRight.x, wickObj.x + wickObj.width /2); | |
bottomRight.y = Math.max(bottomRight.y, wickObj.y + wickObj.height/2); | |
}); | |
var center = { | |
x: topLeft.x + (bottomRight.x - topLeft.x)/2, | |
y: topLeft.y + (bottomRight.y - topLeft.y)/2 | |
} | |
symbol.x = center.x; | |
symbol.y = center.y; | |
var firstFrame = symbol.layers[0].frames[0]; | |
for(var i = 0; i < wickObjects.length; i++) { | |
firstFrame.wickObjects[i] = wickObjects[i]; | |
firstFrame.wickObjects[i].x = wickObjects[i].x - symbol.x; | |
firstFrame.wickObjects[i].y = wickObjects[i].y - symbol.y; | |
} | |
symbol.width = firstFrame.wickObjects[0].width; | |
symbol.height = firstFrame.wickObjects[0].height; | |
return symbol; | |
} | |
// Create a new symbol and add every frame into the new symbol's timeline | |
WickObject.createSymbolFromWickFrames = function (wickFrames) { | |
/*wickFrames.forEach(function (wickFrame) { | |
console.log(wickFrame.parentLayer) | |
})*/ | |
var newSymbol = WickObject.createNewSymbol(); | |
newSymbol.layers = []; | |
var nLayersNeeded = 0; | |
wickFrames.forEach(function (wickFrame) { | |
var layerIndex = wickFrame.parentLayer.parentWickObject.layers.indexOf(wickFrame.parentLayer); | |
console.log(layerIndex) | |
if(layerIndex > nLayersNeeded) nLayersNeeded = layerIndex; | |
}); | |
console.log(nLayersNeeded) | |
for(var i = 0; i <= nLayersNeeded; i++) { | |
var newLayer = new WickLayer(); | |
newLayer.frames = []; | |
newSymbol.layers.push(newLayer); | |
} | |
wickFrames.forEach(function (wickFrame) { | |
var parentWickObject = wickFrame.parentLayer.parentWickObject | |
var layerIndex = parentWickObject.layers.indexOf(wickFrame.parentLayer); | |
newSymbol.layers[layerIndex].frames.push(wickFrame); | |
}); | |
return newSymbol; | |
} | |
WickObject.prototype.copy = function () { | |
var copiedObject = new WickObject(); | |
if(this.name) | |
copiedObject.name = this.name + " copy"; | |
copiedObject.x = this.x; | |
copiedObject.y = this.y; | |
copiedObject.width = this.width; | |
copiedObject.height = this.height; | |
copiedObject.scaleX = this.scaleX; | |
copiedObject.scaleY = this.scaleY; | |
copiedObject.rotation = this.rotation; | |
copiedObject.flipX = this.flipX; | |
copiedObject.flipY = this.flipY; | |
copiedObject.opacity = this.opacity; | |
copiedObject.uuid = random.uuid4(); | |
copiedObject.sourceUUID = this.uuid; | |
copiedObject.assetUUID = this.assetUUID; | |
copiedObject.svgX = this.svgX; | |
copiedObject.svgY = this.svgY; | |
copiedObject.pathData = this.pathData; | |
copiedObject.isImage = this.isImage; | |
copiedObject.isPath = this.isPath; | |
copiedObject.isText = this.isText; | |
copiedObject.isButton = this.isButton; | |
copiedObject.isGroup = this.isGroup; | |
copiedObject.cachedAbsolutePosition = this.getAbsolutePosition(); | |
copiedObject.svgStrokeWidth = this.svgStrokeWidth; | |
if(this.isText) | |
copiedObject.textData = JSON.parse(JSON.stringify(this.textData)); | |
copiedObject.wickScript = this.wickScript | |
if(this.isSymbol) { | |
copiedObject.isSymbol = true; | |
copiedObject.playheadPosition = 0; | |
copiedObject.currentLayer = 0; | |
copiedObject.layers = []; | |
this.layers.forEach(function (layer) { | |
copiedObject.layers.push(layer.copy()); | |
}); | |
copiedObject.playRanges = []; | |
this.playRanges.forEach(function (playRange) { | |
copiedObject.playRanges.push(playRange.copy()); | |
}); | |
} else { | |
copiedObject.isSymbol = false; | |
} | |
return copiedObject; | |
} | |
WickObject.prototype.getAsJSON = function () { | |
var oldX = this.x; | |
var oldY = this.y; | |
var absPos = this.getAbsolutePosition(); | |
this.x = absPos.x; | |
this.y = absPos.y; | |
// Encode scripts to avoid JSON format problems | |
this.encodeStrings(); | |
var JSONWickObject = JSON.stringify(this, WickProject.Exporter.JSONReplacerObject); | |
// Put prototypes back on object ('class methods'), they don't get JSONified on project export. | |
WickObject.addPrototypes(this); | |
// Decode scripts back to human-readble and eval()-able format | |
this.decodeStrings(); | |
this.x = oldX; | |
this.y = oldY; | |
return JSONWickObject; | |
} | |
WickObject.prototype.downloadAsFile = function () { | |
var filename = this.name || "wickobject"; | |
if(this.isSymbol) { | |
var blob = new Blob([this.getAsJSON()], {type: "text/plain;charset=utf-8"}); | |
saveAs(blob, filename+".json"); | |
return; | |
} | |
var asset = wickEditor.project.library.getAsset(this.assetUUID); | |
if(asset.type === 'image') { | |
var ext = asset.getData().split("/")[1].split(';')[0]; | |
saveAs(dataURItoBlob(asset.getData()), filename+"."+ext); | |
return; | |
} | |
console.error("export not supported for this type of wickobject yet"); | |
} | |
WickObject.addPrototypes = function (obj) { | |
// Put the prototype back on this object | |
obj.__proto__ = WickObject.prototype; | |
if(obj.isSymbol) { | |
obj.playRanges.forEach(function (playRange) { | |
playRange.__proto__ = WickPlayRange.prototype; | |
}); | |
obj.layers.forEach(function (layer) { | |
layer.__proto__ = WickLayer.prototype; | |
layer.frames.forEach(function(frame) { | |
frame.__proto__ = WickFrame.prototype; | |
if(frame.tweens) { | |
frame.tweens.forEach(function (tween) { | |
tween.__proto__ = WickTween.prototype; | |
}); | |
} | |
}); | |
}); | |
obj.getAllChildObjects().forEach(function(currObj) { | |
WickObject.addPrototypes(currObj); | |
}); | |
} | |
} | |
/* Encodes scripts and strings to avoid JSON format problems */ | |
WickObject.prototype.encodeStrings = function () { | |
if(this.wickScript) { | |
this.wickScript = WickProject.Compressor.encodeString(this.wickScript); | |
} | |
if(this.textData) { | |
this.textData.text = WickProject.Compressor.encodeString(this.textData.text); | |
} | |
if(this.pathData) { | |
this.pathData = WickProject.Compressor.encodeString(this.pathData); | |
} | |
if(this.isSymbol) { | |
this.getAllFrames().forEach(function (frame) { | |
frame.encodeStrings(); | |
}); | |
this.getAllChildObjects().forEach(function(child) { | |
child.encodeStrings(); | |
}); | |
} | |
} | |
/* Decodes scripts and strings back to human-readble and eval()-able format */ | |
WickObject.prototype.decodeStrings = function () { | |
if(this.wickScript) { | |
this.wickScript = WickProject.Compressor.decodeString(this.wickScript); | |
} | |
if(this.textData) { | |
this.textData.text = WickProject.Compressor.decodeString(this.textData.text); | |
} | |
if(this.pathData) { | |
this.pathData = WickProject.Compressor.decodeString(this.pathData); | |
} | |
if(this.isSymbol) { | |
this.getAllFrames().forEach(function (frame) { | |
frame.decodeStrings(); | |
}); | |
this.getAllChildObjects().forEach(function(child) { | |
child.decodeStrings(); | |
}); | |
} | |
} | |
WickObject.prototype.generateParentObjectReferences = function() { | |
var self = this; | |
if(!self.isSymbol) return; | |
self.layers.forEach(function (layer) { | |
layer.parentWickObject = self; | |
layer.frames.forEach(function (frame) { | |
frame.parentLayer = layer; | |
frame.parentObject = self; | |
frame.wickObjects.forEach(function (wickObject) { | |
wickObject.parentObject = self; | |
wickObject.parentFrame = frame; | |
wickObject.generateParentObjectReferences(); | |
}); | |
}); | |
}); | |
} | |
WickObject.prototype.generateObjectNameReferences = function () { | |
var that = this; | |
this.getAllChildObjects().forEach(function(child) { | |
that[child.name] = child; | |
if(child.isSymbol) { | |
child.generateObjectNameReferences(); | |
} | |
}); | |
} | |
WickObject.prototype.getCurrentLayer = function() { | |
return this.layers[this.currentLayer]; | |
} | |
WickObject.prototype.addLayer = function (layer) { | |
var currentLayerNum = 0; | |
this.layers.forEach(function (layer) { | |
var splitName = layer.identifier.split("Layer ") | |
if(splitName && splitName.length > 1) { | |
layerNum = parseInt(splitName[1]); | |
if(layerNum > currentLayerNum) { | |
currentLayerNum = layerNum; | |
} | |
} | |
}); | |
layer.identifier = "Layer " + (currentLayerNum+1); | |
this.layers.push(layer); | |
} | |
WickObject.prototype.removeLayer = function (layer) { | |
var that = this; | |
this.layers.forEach(function (currLayer) { | |
if(layer === currLayer) { | |
that.layers.splice(that.layers.indexOf(layer), 1); | |
} | |
}); | |
} | |
WickObject.prototype.getTotalTimelineLength = function () { | |
var longestLayerLength = 0; | |
this.layers.forEach(function (layer) { | |
var layerLength = layer.getTotalLength(); | |
if(layerLength > longestLayerLength) { | |
longestLayerLength = layerLength; | |
} | |
}); | |
return longestLayerLength; | |
} | |
WickObject.prototype.updateFrameTween = function (relativePlayheadPosition) { | |
var frame = this.parentFrame; | |
var tween = frame.getTweenAtFrame(relativePlayheadPosition); | |
if(tween) { | |
tween.updateFromWickObjectState(this); | |
} | |
} | |
WickObject.prototype.addPlayRange = function (playRange) { | |
if (!this.isSymbol) return; | |
this.playRanges.push(playRange); | |
} | |
WickObject.prototype.removePlayRange = function (playRangeToDelete) { | |
var self = this; | |
if (!self.isSymbol) return; | |
var deletePlayRangeIndex = null; | |
for (var i = 0; i < self.playRanges.length; i++) { | |
if (playRangeToDelete === self.playRanges[i]) { | |
deletePlayRangeIndex = i; | |
break; | |
} | |
} | |
if(deletePlayRangeIndex !== null) self.playRanges.splice(deletePlayRangeIndex, 1); | |
} | |
/* Return all child objects of a parent object */ | |
WickObject.prototype.getAllChildObjects = function () { | |
if (!this.isSymbol) { | |
return []; | |
} | |
var children = []; | |
for(var l = this.layers.length-1; l >= 0; l--) { | |
var layer = this.layers[l]; | |
for(var f = 0; f < layer.frames.length; f++) { | |
var frame = layer.frames[f]; | |
for(var o = 0; o < frame.wickObjects.length; o++) { | |
children.push(frame.wickObjects[o]); | |
} | |
} | |
} | |
return children; | |
} | |
/* Return all child objects in the parent objects current frame. */ | |
WickObject.prototype.getAllActiveChildObjects = function () { | |
if (!this.isSymbol) { | |
return []; | |
} | |
var children = []; | |
for (var l = this.layers.length-1; l >= 0; l--) { | |
var layer = this.layers[l]; | |
var frame = layer.getFrameAtPlayheadPosition(this.playheadPosition); | |
if(frame) { | |
frame.wickObjects.forEach(function (obj) { | |
children.push(obj); | |
}); | |
} | |
} | |
return children; | |
} | |
/* Return all child objects of a parent object (and their children) */ | |
WickObject.prototype.getAllChildObjectsRecursive = function () { | |
if (!this.isSymbol) { | |
return [this]; | |
} | |
var children = [this]; | |
this.layers.forEachBackwards(function (layer) { | |
layer.frames.forEach(function (frame) { | |
frame.wickObjects.forEach(function (wickObject) { | |
children = children.concat(wickObject.getAllChildObjectsRecursive()); | |
}); | |
}); | |
}); | |
return children; | |
} | |
/* Return all active child objects of a parent object (and their children) */ | |
WickObject.prototype.getAllActiveChildObjectsRecursive = function (includeParents) { | |
if (!this.isSymbol) { | |
return []; | |
} | |
var children = []; | |
for (var l = this.layers.length-1; l >= 0; l--) { | |
var frame = this.layers[l].getFrameAtPlayheadPosition(this.playheadPosition); | |
if(frame) { | |
for(var o = 0; o < frame.wickObjects.length; o++) { | |
var obj = frame.wickObjects[o]; | |
if(includeParents || !obj.isSymbol) children.push(obj); | |
children = children.concat(obj.getAllActiveChildObjectsRecursive(includeParents)); | |
} | |
} | |
} | |
return children; | |
} | |
/* Return all child objects in the parent objects current layer. */ | |
WickObject.prototype.getAllActiveLayerChildObjects = function () { | |
if (!this.isSymbol) { | |
return []; | |
} | |
var children = []; | |
var layer = this.getCurrentLayer(); | |
var frame = layer.getFrameAtPlayheadPosition(this.playheadPosition); | |
if(frame) { | |
frame.wickObjects.forEach(function (obj) { | |
children.push(obj); | |
}); | |
} | |
return children; | |
} | |
// Use this to get objects on other layers | |
WickObject.prototype.getAllInactiveSiblings = function () { | |
if(!this.parentObject) { | |
return []; | |
} | |
var that = this; | |
var siblings = []; | |
this.parentObject.getAllActiveChildObjects().forEach(function (child) { | |
if(child !== that) { | |
siblings.push(child); | |
} | |
}); | |
siblings = siblings.concat(this.parentObject.getAllInactiveSiblings()); | |
return siblings; | |
} | |
// Use this for onion skinning | |
WickObject.prototype.getNearbyObjects = function (numFramesBack, numFramesForward) { | |
// Get nearby frames | |
var nearbyFrames = []; | |
var startPlayheadPosition = Math.max(0, this.playheadPosition - numFramesBack); | |
var endPlayheadPosition = this.playheadPosition + numFramesForward; | |
var tempPlayheadPosition = startPlayheadPosition; | |
while(tempPlayheadPosition <= endPlayheadPosition) { | |
var frame = this.getCurrentLayer().getFrameAtPlayheadPosition(tempPlayheadPosition); | |
if(frame && tempPlayheadPosition !== this.playheadPosition && nearbyFrames.indexOf(frame) == -1) { | |
nearbyFrames.push(frame); | |
} | |
tempPlayheadPosition ++; | |
} | |
// Get objects in nearby frames | |
var nearbyObjects = []; | |
nearbyFrames.forEach(function(frame) { | |
nearbyObjects = nearbyObjects.concat(frame.wickObjects); | |
}); | |
return nearbyObjects; | |
} | |
// | |
WickObject.prototype.getObjectsOnFirstFrame = function () { | |
var objectsOnFirstFrame = []; | |
this.layers.forEach(function (layer) { | |
layer.frames[0].wickObjects.forEach(function (wickObj) { | |
objectsOnFirstFrame.push(wickObj); | |
}); | |
}); | |
return objectsOnFirstFrame; | |
} | |
WickObject.prototype.getParents = function () { | |
if(!this.isSymbol) { | |
return []; | |
} else if(this.isRoot) { | |
return [this]; | |
} else { | |
return this.parentObject.getParents().concat([this]); | |
} | |
} | |
/* Excludes children of children */ | |
WickObject.prototype.getTotalNumChildren = function () { | |
var count = 0; | |
for(var l = 0; l < this.layers.length; l++) { | |
for(var f = 0; f < this.layers[l].frames.length; f++) { | |
for(var o = 0; o < this.layers[l].frames[f].wickObjects.length; o++) { | |
count++; | |
} | |
} | |
} | |
return count; | |
} | |
WickObject.prototype.getAllFrames = function () { | |
if(!this.isSymbol) return []; | |
var allFrames = []; | |
this.layers.forEach(function (layer) { | |
layer.frames.forEach(function (frame) { | |
allFrames.push(frame); | |
}); | |
}); | |
return allFrames; | |
} | |
WickObject.prototype.getAllPlayRanges = function () { | |
if(!this.playRanges) return []; | |
var allranges = []; | |
this.playRanges.forEach(function (playrange) { | |
allranges.push(playrange) | |
}) | |
return allranges; | |
} | |
WickObject.prototype.getFrameWithChild = function (child) { | |
var foundFrame = null; | |
this.layers.forEach(function (layer) { | |
layer.frames.forEach(function (frame) { | |
frame.wickObjects.forEach(function (wickObject) { | |
if(wickObject.uuid === child.uuid) { | |
foundFrame = frame; | |
} | |
}); | |
}); | |
}); | |
return foundFrame; | |
} | |
WickObject.prototype.getLayerWithChild = function (child) { | |
var foundLayer = null; | |
this.layers.forEach(function (layer) { | |
layer.frames.forEach(function (frame) { | |
if(frame.wickObjects.indexOf(child) !== -1) { | |
foundLayer = layer; | |
} | |
}); | |
}); | |
return foundLayer; | |
} | |
WickObject.prototype.remove = function () { | |
this.parentObject.removeChild(this); | |
} | |
WickObject.prototype.removeChild = function (childToRemove) { | |
if(!this.isSymbol) { | |
return; | |
} | |
var that = this; | |
this.getAllActiveChildObjects().forEach(function(child) { | |
if(child == childToRemove) { | |
var index = child.parentFrame.wickObjects.indexOf(child); | |
child.parentFrame.wickObjects.splice(index, 1); | |
} | |
}); | |
} | |
WickObject.prototype.getZIndex = function () { | |
return this.parentFrame.wickObjects.indexOf(this); | |
} | |
/* Get the absolute position of this object (the position not relative to the parents) */ | |
WickObject.prototype.getAbsolutePosition = function () { | |
if(this.isRoot) { | |
return { | |
x: this.x, | |
y: this.y | |
}; | |
} else if (!this.parentObject) { | |
return this.cachedAbsolutePosition; | |
} else { | |
var parent = this.parentObject; | |
var parentPosition = parent.getAbsolutePosition(); | |
return { | |
x: this.x + parentPosition.x, | |
y: this.y + parentPosition.y | |
}; | |
} | |
} | |
/* Get the absolute position of this object taking into account the scale of the parent */ | |
WickObject.prototype.getAbsolutePositionTransformed = function () { | |
if(this.isRoot) { | |
return { | |
x: this.x, | |
y: this.y | |
}; | |
} else { | |
var parent = this.parentObject; | |
var parentPosition = parent.getAbsolutePositionTransformed(); | |
var parentScale = parent.getAbsoluteScale() | |
var parentFlip = parent.getAbsoluteFlip(); | |
var rotatedPosition = {x:this.x*parentScale.x, y:this.y*parentScale.y}; | |
if(parentFlip.x) rotatedPosition.x *= -1; | |
if(parentFlip.y) rotatedPosition.y *= -1; | |
rotatedPosition = rotate_point(rotatedPosition.x, rotatedPosition.y, 0, 0, parent.getAbsoluteRotation()); | |
return { | |
x: rotatedPosition.x + parentPosition.x, | |
y: rotatedPosition.y + parentPosition.y | |
}; | |
} | |
} | |
WickObject.prototype.getAbsoluteScale = function () { | |
if(this.isRoot) { | |
return { | |
x: this.scaleX, | |
y: this.scaleY | |
}; | |
} else { | |
var parentScale = this.parentObject.getAbsoluteScale(); | |
return { | |
x: this.scaleX * parentScale.x, | |
y: this.scaleY * parentScale.y | |
}; | |
} | |
} | |
WickObject.prototype.getAbsoluteRotation = function () { | |
if(this.isRoot) { | |
return this.rotation; | |
} else { | |
var parentRotation = this.parentObject.getAbsoluteRotation(); | |
return this.rotation + parentRotation; | |
} | |
} | |
WickObject.prototype.getAbsoluteOpacity = function () { | |
if(this.isRoot) { | |
return this.opacity; | |
} else { | |
var parentOpacity = this.parentObject.getAbsoluteOpacity(); | |
return this.opacity * parentOpacity; | |
} | |
} | |
WickObject.prototype.getAbsoluteFlip = function () { | |
if(this.isRoot) { | |
return { | |
x: this.flipX, | |
y: this.flipY | |
}; | |
} else { | |
var parentFlip = this.parentObject.getAbsoluteFlip(); | |
return { | |
x: this.flipX || parentFlip.x, | |
y: this.flipY || parentFlip.y | |
}; | |
} | |
} | |
WickObject.prototype.getAbsoluteTransformations = function () { | |
return { | |
position: this.getAbsolutePositionTransformed(), | |
scale: this.getAbsoluteScale(), | |
rotation: this.getAbsoluteRotation(), | |
opacity: this.getAbsoluteOpacity(), | |
flip: this.getAbsoluteFlip(), | |
} | |
} | |
WickObject.prototype.isOnActiveLayer = function (activeLayer) { | |
return this.parentFrame.parentLayer === activeLayer; | |
} | |
WickObject.prototype.getPlayRanges = function () { | |
if (!this.isSymbol) {return;} | |
return this.playRanges; | |
} | |
WickObject.prototype.play = function () { | |
this._playing = true; | |
} | |
WickObject.prototype.stop = function () { | |
this._playing = false; | |
} | |
WickObject.prototype.getFrameById = function (identifier) { | |
var foundFrame = null; | |
this.getAllFrames().forEach(function (frame) { | |
if(frame.name === identifier) { | |
foundFrame = frame; | |
} | |
}); | |
return foundFrame; | |
} | |
WickObject.prototype.getPlayrangeById = function (identifier) { | |
var foundPlayRange = null; | |
this.playRanges.forEach(function (playRange) { | |
if(playRange.identifier === identifier) { | |
foundPlayRange = playRange; | |
} | |
}); | |
return foundPlayRange; | |
} | |
WickObject.prototype.getFramesInPlayrange = function (playrange) { | |
var frames = []; | |
this.layers.forEach(function (layer) { | |
if(!playrange) return; | |
for(var i = playrange.start; i < playrange.end; i++) { | |
var frame = layer.getFrameAtPlayheadPosition(i); | |
if(frame && !frames.includes(frame)) { | |
frames.push(frame); | |
} | |
} | |
}); | |
return frames; | |
} | |
WickObject.prototype.gotoAndStop = function (frame) { | |
this.movePlayheadTo(frame); | |
this.stop(); | |
} | |
WickObject.prototype.gotoAndPlay = function (frame) { | |
this.movePlayheadTo(frame); | |
this.play(); | |
} | |
WickObject.prototype.movePlayheadTo = function (frame) { | |
this._forceNewPlayheadPosition = true; | |
var oldFrame = this.getCurrentLayer().getCurrentFrame(); | |
// Frames are zero-indexed internally but start at one in the editor GUI, so you gotta subtract 1. | |
if (CheckInput.isNonNegativeInteger(frame) && frame !== 0) { | |
var actualFrame = frame-1; | |
var endOfFrames = this.getFramesEnd(); | |
// Only navigate to an integer frame if it is nonnegative and a valid frame | |
if(actualFrame < endOfFrames) { | |
this._newPlayheadPosition = actualFrame; | |
} else { | |
throw (new Error("Failed to navigate to frame \'" + actualFrame + "\': is not a valid frame.")); | |
} | |
} else if (CheckInput.isString(frame)) { | |
var foundPlayRange = this.getPlayrangeById(frame) | |
var foundFrame = this.getFrameById(frame) | |
if(foundPlayRange) { | |
if(this.playheadPosition < foundPlayRange.start || this.playheadPosition >= foundPlayRange.end) { | |
this._newPlayheadPosition = foundPlayRange.start; | |
} | |
} else if (foundFrame) { | |
this._newPlayheadPosition = foundFrame.playheadPosition; | |
} | |
} else { | |
throw "Failed to navigate to frame \'" + frame + "\': is neither a string nor a nonnegative integer"; | |
} | |
} | |
WickObject.prototype.gotoNextFrame = function () { | |
var nextFramePos = this.playheadPosition+1; | |
var totalLength = this.layers[this.currentLayer].getTotalLength(); | |
if(nextFramePos >= totalLength) { | |
nextFramePos = 0; | |
} | |
this._newPlayheadPosition = nextFramePos; | |
} | |
WickObject.prototype.gotoPrevFrame = function () { | |
var nextFramePos = this.playheadPosition-1; | |
if(nextFramePos < 0) { | |
nextFramePos = this.layers[this.currentLayer].getTotalLength()-1; | |
} | |
this._newPlayheadPosition = nextFramePos; | |
} | |
WickObject.prototype.getFramesEnd = function() { | |
endFrame = 0; | |
this.getCurrentLayer().frames.forEach( function (frame) { | |
endFrame = Math.max (frame.getFrameEnd(), endFrame); | |
}) | |
return endFrame; | |
} | |
/* Determine if two wick objects collide using rectangular hit detection on their | |
farthest border */ | |
WickObject.prototype.hitTestRectangles = function (otherObj) { | |
// Create a circle whose center is (10,10) with radius of 20 | |
var objA = this; | |
var objB = otherObj; | |
var objAAbsPos = objA.getAbsolutePositionTransformed(); | |
var objBAbsPos = objB.getAbsolutePositionTransformed(); | |
var objAScale = objA.getAbsoluteScale(); | |
var objAWidth = objA.width * objAScale.x; | |
var objAHeight = objA.height * objAScale.y; | |
objAAbsPos.x -= objA.width * objAScale.x/2; | |
objAAbsPos.y -= objA.height * objAScale.y/2; | |
var objBScale = objB.getAbsoluteScale(); | |
var objBWidth = objB.width * objBScale.x; | |
var objBHeight = objB.height * objBScale.y; | |
objBAbsPos.x -= objB.width * objBScale.x/2; | |
objBAbsPos.y -= objB.height * objBScale.y/2; | |
var left = objAAbsPos.x < (objBAbsPos.x + objBWidth); | |
var right = (objAAbsPos.x + objAWidth) > objBAbsPos.x; | |
var top = objAAbsPos.y < (objBAbsPos.y + objBHeight); | |
var bottom = (objAAbsPos.y + objAHeight) > objBAbsPos.y; | |
return left && right && top && bottom; | |
} | |
/* Determine if two wickObjects Collide using circular hit detection from their | |
centroid using their full width and height. */ | |
WickObject.prototype.hitTestCircles = function (otherObj) { | |
var objA = this; | |
var objB = otherObj; | |
var objAAbsPos = objA.getAbsolutePositionTransformed(); | |
var objBAbsPos = objB.getAbsolutePositionTransformed(); | |
var dx = objAAbsPos.x - objBAbsPos.x; | |
var dy = objAAbsPos.y - objBAbsPos.y; | |
var objAWidth = objA.width * objA.scaleX; | |
var objBWidth = objB.width * objB.scaleX; | |
var distance = Math.sqrt(dx * dx + dy * dy); | |
if (distance < ((objAWidth/2) + (objBWidth/2))) { | |
return true; | |
} | |
return false; | |
} | |
/* Returns a boolean alerting whether or not this object or any of it's children in frame, | |
have collided with the given object or any of it's children in frame. */ | |
WickObject.prototype.hitTest = function (otherObj, hitTestType, args) { | |
if (otherObj === undefined || !otherObj._active) { | |
return false; | |
} | |
// Generate lists of all children of both objects | |
var otherObjChildren = otherObj.getAllActiveChildObjectsRecursive(false); | |
if(!otherObj.isSymbol) { | |
otherObjChildren.push(otherObj); | |
} | |
var thisObjChildren = this.getAllActiveChildObjectsRecursive(false); | |
if(!this.isSymbol) { | |
thisObjChildren.push(this); | |
} | |
// Load the collision detection function for the type of collision we want to check for | |
var checkMethod; | |
var hitTestMethods = { | |
"rectangles" : "hitTestRectangles", | |
"circles" : "hitTestCircles" | |
} | |
if(!hitTestType) { | |
// Use default (rectangular hittest) if no hitTestType is provided | |
checkMethod = hitTestMethods["rectangles"]; | |
} else { | |
checkMethod = hitTestMethods[hitTestType]; | |
if(!checkMethod) { | |
console.error("Invalid hitTest collision type: " + hitTestType); | |
} | |
} | |
// Ready to go! Check for collisions!! | |
for (var i = 0; i < otherObjChildren.length; i++) { | |
for (var j = 0; j < thisObjChildren.length; j++) { | |
var objA = thisObjChildren[j]; | |
var objB = otherObjChildren[i]; | |
if (objA[checkMethod](objB)) { | |
return true; | |
} | |
} | |
} | |
return false; | |
} | |
WickObject.prototype.isPointInside = function(point) { | |
var objects = this.getAllActiveChildObjectsRecursive(false); | |
if(!this.isSymbol) { | |
objects.push(this); | |
} | |
var hit = false; | |
objects.forEach(function(object) { | |
if(hit) return; | |
var transformedPosition = object.getAbsolutePositionTransformed(); | |
var transformedPoint = {x:point.x, y:point.y}; | |
var transformedScale = object.getAbsoluteScale(); | |
var transformedWidth = (object.width+object.svgStrokeWidth)*transformedScale.x; | |
var transformedHeight = (object.height+object.svgStrokeWidth)*transformedScale.y; | |
transformedPoint = rotate_point( | |
transformedPoint.x, | |
transformedPoint.y, | |
transformedPosition.x, | |
transformedPosition.y, | |
-object.getAbsoluteRotation() | |
); | |
// Bounding box check | |
if ( transformedPoint.x >= transformedPosition.x - transformedWidth /2 && | |
transformedPoint.y >= transformedPosition.y - transformedHeight/2 && | |
transformedPoint.x <= transformedPosition.x + transformedWidth /2 && | |
transformedPoint.y <= transformedPosition.y + transformedHeight/2 ) { | |
if(!object.alphaMask) { | |
hit = true; | |
return; | |
} | |
var relativePoint = { | |
x: transformedPoint.x - transformedPosition.x + transformedWidth /2, | |
y: transformedPoint.y - transformedPosition.y + transformedHeight/2 | |
} | |
// Alpha mask check | |
var objectAlphaMaskIndex = | |
(Math.floor(relativePoint.x/transformedScale.x)%Math.floor(object.width+object.svgStrokeWidth)) + | |
(Math.floor(relativePoint.y/transformedScale.y)*Math.floor(object.width+object.svgStrokeWidth)); | |
if(!object.alphaMask[(objectAlphaMaskIndex)] && | |
objectAlphaMaskIndex < object.alphaMask.length && | |
objectAlphaMaskIndex >= 0) { | |
hit = true; | |
return; | |
} | |
} | |
}); | |
return hit; | |
} | |
WickObject.prototype.clone = function () { | |
return wickPlayer.cloneObject(this); | |
}; | |
WickObject.prototype.delete = function () { | |
return wickPlayer.deleteObject(this); | |
}; | |
WickObject.prototype.setCursor = function (cursor) { | |
this.cursor = cursor; | |
} | |
WickObject.prototype.isHoveredOver = function () { | |
return this.hoveredOver; | |
} | |
WickObject.prototype.setValidator = function (validator) { | |
var self = this; | |
this.parentObject.layers.forEach(function (layer) { | |
layer.frames.forEach(function (frame) { | |
for (var i = 0; i < frame.wickObjects.length; i++) { | |
if(frame.wickObjects[i] === self) { | |
frame.wickObjects[i] = new Proxy(self, validator); | |
} | |
} | |
}); | |
}); | |
} | |
WickObject.prototype.prepareForPlayer = function () { | |
// Set all playhead vars | |
if(this.isSymbol) { | |
// Set this object to it's first frame | |
this.playheadPosition = 0; | |
// Start the object playing | |
this._playing = true; | |
this._active = false; | |
this._wasActiveLastTick = false; | |
this.getAllFrames().forEach(function (frame) { | |
//frame.prepareForPlayer(); | |
}); | |
} | |
// Reset the mouse hovered over state flag | |
this.hoveredOver = false; | |
} | |
/* Generate alpha mask for per-pixel hit detection */ | |
WickObject.prototype.generateAlphaMask = function (imageData) { | |
var that = this; | |
var alphaMaskSrc = imageData || that.asset.getData(); | |
if(!alphaMaskSrc) return; | |
//window.open(alphaMaskSrc) | |
ImageToCanvas(alphaMaskSrc, function (canvas,ctx) { | |
//if(window.wickPlayer) window.open(canvas.toDataURL()) | |
var w = canvas.width; | |
var h = canvas.height; | |
var rgba = ctx.getImageData(0,0,w,h).data; | |
that.alphaMask = []; | |
for (var y = 0; y < h; y ++) { | |
for (var x = 0; x < w; x ++) { | |
var alphaMaskIndex = x+y*w; | |
that.alphaMask[alphaMaskIndex] = rgba[alphaMaskIndex*4+3] <= 10; | |
} | |
} | |
}, {width:Math.floor(that.width+that.svgStrokeWidth), height:Math.floor(that.height+that.svgStrokeWidth)} ); | |
} | |
WickObject.prototype.getCurrentFrames = function () { | |
var currentFrames = []; | |
this.layers.forEach(function (layer) { | |
var frame = layer.getCurrentFrame(); | |
if(frame) currentFrames.push(frame) | |
}); | |
return currentFrames; | |
} | |
WickObject.prototype.getFramesAtPlayheadPosition = function () { | |
} | |
WickObject.prototype.tick = function () { | |
var self = this; | |
if(this._deleted) return; | |
if(this.isSymbol) { | |
this.layers.forEach(function (layer) { | |
layer.frames.forEach(function (frame) { | |
frame.tick(); | |
}); | |
}); | |
} | |
if(this.isButton) { | |
this.stop(); | |
if(this._beingClicked) { | |
if(this.getFramesInPlayrange(this.getPlayrangeById('mousedown')).length > 0) | |
this.movePlayheadTo('mousedown'); | |
} else if (this.hoveredOver) { | |
if(this.getFramesInPlayrange(this.getPlayrangeById('mouseover')).length > 0) | |
this.movePlayheadTo('mouseover'); | |
} else { | |
if(this.getFramesInPlayrange(this.getPlayrangeById('mouseup')).length > 0) | |
this.movePlayheadTo('mouseup'); | |
} | |
} | |
// Input events | |
if(this._wasClicked) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mousedown'); | |
this._wasClicked = false; | |
} | |
if(this._wasHoveredOver) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mouseover'); | |
this._wasHoveredOver = false; | |
} | |
if(this._mouseJustLeft) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mouseout'); | |
this._mouseJustLeft = false; | |
} | |
if(this._wasClickedOff) { | |
(wickPlayer || wickEditor).project.runScript(this, 'mouseup'); | |
this._wasClickedOff = false; | |
} | |
wickPlayer.inputHandler.getAllKeysJustReleased().forEach(function (key) { | |
(wickPlayer || wickEditor).project.runScript(self, 'keyreleased', key); | |
}); | |
wickPlayer.inputHandler.getAllKeysJustPressed().forEach(function (key) { | |
(wickPlayer || wickEditor).project.runScript(self, 'keypressed', key); | |
}); | |
wickPlayer.inputHandler.getAllKeysDown().forEach(function (key) { | |
(wickPlayer || wickEditor).project.runScript(self, 'keydown', key); | |
}); | |
// Inactive -> Inactive | |
if (!this._wasActiveLastTick && !this._active) { | |
} | |
// Inactive -> Active | |
else if (!this._wasActiveLastTick && this._active) { | |
(wickPlayer || wickEditor).project.loadScriptOfObject(this); | |
(wickPlayer || wickEditor).project.runScript(this, 'load'); | |
(wickPlayer || wickEditor).project.runScript(this, 'update'); | |
this.advanceTimeline(); | |
} | |
// Active -> Active | |
else if (this._wasActiveLastTick && this._active) { | |
(wickPlayer || wickEditor).project.runScript(this, 'update'); | |
this.advanceTimeline(); | |
} | |
// Active -> Inactive | |
else if (this._wasActiveLastTick && !this._active) { | |
if(!this.parentFrame.alwaysSaveState) { | |
wickPlayer.resetStateOfObject(this); | |
} | |
} | |
// Update currentFrameNumber and currentFrameName for API | |
if(this.isSymbol) { | |
this.currentFrameNumber = this.playheadPosition+1; | |
var currentFrame = this.getCurrentLayer().getCurrentFrame(); | |
if(currentFrame) { | |
this.currentFrameName = this.getCurrentLayer().getCurrentFrame().name; | |
} | |
} | |
} | |
WickObject.prototype.advanceTimeline = function () { | |
if(this._playing && this.isSymbol && this._newPlayheadPosition === undefined) { | |
this._newPlayheadPosition = this.playheadPosition+1; | |
if(this._newPlayheadPosition >= this.getTotalTimelineLength()) { | |
this._newPlayheadPosition = 0; | |
} | |
} | |
} | |
WickObject.prototype.isActive = function () { | |
if(this.isRoot) return true; | |
return this.parentFrame._active; | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickAsset = function (data, type, filename, compress) { | |
this.data = data; | |
this.type = type; | |
this.filename = filename; | |
this.compressed = compress; | |
if(compress) { | |
console.log("big file size: " + this.data.length); | |
this.data = LZString.compressToBase64(this.data); | |
console.log("compressed file size: " + this.data.length); | |
console.log("Look how much space we saved wow!"); | |
} | |
} | |
WickAsset.prototype.getData = function () { | |
if(this.compressed) { | |
return LZString.decompressFromBase64(this.data); | |
} else { | |
return this.data; | |
} | |
} | |
WickAsset.prototype.getType = function () { | |
return this.type; | |
} | |
WickAsset.prototype.getFilename = function () { | |
return this.filename; | |
}</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickPlayRange = function (start, end, identifier, color) { | |
this.start = start; | |
this.end = end; | |
this.identifier = identifier || "PlayRange"; | |
this.color = color || (function getRandomColor() { | |
var letters = '0123456789ABCDEF'; | |
var color = '#'; | |
for (var i = 0; i < 6; i++ ) { | |
color += letters[Math.floor(Math.random() * 16)]; | |
} | |
return color; | |
})(); | |
this.uuid = random.uuid4(); | |
} | |
// index : number - Index to start playrange. Must be less then end and at least 1. | |
WickPlayRange.prototype.changeStart = function (index) { | |
if (index >= this.end-1) { | |
this.start = this.end-1; | |
} else if (index < 0) { | |
this.start = 0; | |
} else { | |
this.start = index; | |
} | |
} | |
// index : number - Index to end playrange. Must be greater than or equal to start. | |
WickPlayRange.prototype.changeEnd = function (index) { | |
if (index <= this.start+1) { | |
this.end = this.start+1; | |
} else { | |
this.end = index; | |
} | |
} | |
WickPlayRange.prototype.changeStartAndEnd = function (newStart, newEnd) { | |
newStart = Math.max(newStart, 0); | |
if (newStart < newEnd) { | |
this.start = newStart; | |
this.end = newEnd; | |
} | |
} | |
WickPlayRange.prototype.getStart = function () { | |
return this.start; | |
} | |
WickPlayRange.prototype.getEnd = function () { | |
return this.end; | |
} | |
WickPlayRange.prototype.getLength = function () { | |
return this.end - this.start; | |
} | |
WickPlayRange.prototype.touchingPlayrange = function (other) { | |
var A = this; | |
var B = other; | |
return !(B.start >= A.end || B.end <= A.start); | |
} | |
WickPlayRange.prototype.copy = function () { | |
var copied = new WickPlayRange(this.start, this.end, this.identifier, this.color); | |
return copied; | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickProject = function () { | |
// Create the root object. The editor is always editing the root | |
// object or its sub-objects and cannot ever leave the root object. | |
this.createNewRootObject(); | |
// Only used by the editor. Keeps track of current object editor is editing. | |
this.currentObject = this.rootObject; | |
this.rootObject.currentFrame = 0; | |
this.library = new AssetLibrary(); | |
this.name = "NewProject"; | |
this.onionSkinning = false; | |
this.smallFramesMode = false; | |
this.width = 720; | |
this.height = 480; | |
this.backgroundColor = "#FFFFFF"; | |
this.transparent = false; | |
this.pixelPerfectRendering = false; | |
this.framerate = 12; | |
this.fitScreen = false; | |
this.uuid = random.uuid4(); | |
//this.assets = {}; | |
this._selection = []; | |
if(window.wickVersion) this.wickVersion = window.wickVersion; | |
}; | |
WickProject.prototype.createNewRootObject = function () { | |
var rootObject = new WickObject(); | |
rootObject.isSymbol = true; | |
rootObject.isRoot = true; | |
rootObject.playheadPosition = 0; | |
rootObject.currentLayer = 0; | |
rootObject.playRanges = []; | |
var firstLayer = new WickLayer(); | |
firstLayer.identifier = "Layer 1"; | |
rootObject.layers = [firstLayer]; | |
rootObject.x = 0; | |
rootObject.y = 0; | |
rootObject.opacity = 1.0; | |
this.rootObject = rootObject; | |
this.rootObject.generateParentObjectReferences(); | |
} | |
/***************************** | |
Import/Export | |
*****************************/ | |
WickProject.fromFile = function (file, callback) { | |
var reader = new FileReader(); | |
reader.onload = function(e) { | |
if (file.type === "text/html") { | |
callback(WickProject.fromWebpage(e.target.result)); | |
} else if (file.type === "application/json") { | |
callback(WickProject.fromJSON(e.target.result)); | |
} | |
}; | |
reader.readAsText(file); | |
} | |
WickProject.fromZIP = function (file, callback) { | |
JSZip.loadAsync(file).then(function (zip) { | |
return zip.file("index.html").async("text"); | |
}).then(function (txt) { | |
callback(WickProject.fromWebpage(txt)); | |
}); | |
} | |
WickProject.fromWebpage = function (webpageString) { | |
var extractedProjectJSON; | |
var webpageStringLines = webpageString.split('\n'); | |
webpageStringLines.forEach(function (line) { | |
if(line.startsWith("<script>var wickPlayer = new WickPlayer(); wickPlayer.runProject(")) { | |
extractedProjectJSON = line.split("'")[1]; | |
} | |
}); | |
if(!extractedProjectJSON) { | |
// Oh no, something went wrong | |
console.error("Bundled JSON project not found in specified HTML file (webpageString). The HTML supplied might not be a Wick project, or zach might have changed the way projects are bundled. See WickProject.Exporter.js!"); | |
return null; | |
} else { | |
// Found a bundled project's JSON, let's load it! | |
return WickProject.fromJSON(extractedProjectJSON); | |
} | |
} | |
WickProject.fromJSON = function (rawJSONProject) { | |
var JSONString = WickProject.Compressor.decompressProject(rawJSONProject); | |
// Replace current project with project in JSON | |
var projectFromJSON = JSON.parse(JSONString); | |
// Put prototypes back on object ('class methods'), they don't get JSONified on project export. | |
projectFromJSON.__proto__ = WickProject.prototype; | |
WickObject.addPrototypes(projectFromJSON.rootObject); | |
WickProject.fixForBackwardsCompatibility(projectFromJSON); | |
projectFromJSON.library.__proto__ = AssetLibrary.prototype; | |
AssetLibrary.addPrototypes(projectFromJSON.library); | |
// Decode scripts back to human-readble and eval()-able format | |
projectFromJSON.rootObject.decodeStrings(); | |
// Add references to wickobject's parents (optimization) | |
projectFromJSON.rootObject.generateParentObjectReferences(); | |
projectFromJSON.regenAssetReferences(); | |
// Start at the first from of the root object | |
projectFromJSON.currentObject = projectFromJSON.rootObject; | |
projectFromJSON.rootObject.playheadPosition = 0; | |
projectFromJSON.currentObject.currentLayer = 0; | |
projectFromJSON.currentObject = projectFromJSON.rootObject; | |
return projectFromJSON; | |
} | |
// Backwards compatibility for old Wick projects | |
WickProject.fixForBackwardsCompatibility = function (project) { | |
var allObjectsInProject = project.rootObject.getAllChildObjectsRecursive(); | |
allObjectsInProject.push(project.rootObject); | |
allObjectsInProject.forEach(function (wickObj) { | |
if(wickObj.tweens) wickObj.tweens = null; | |
if(!wickObj.isSymbol) return | |
wickObj.layers.forEach(function (layer) { | |
if(!layer.locked) layer.locked = false; | |
if(!layer.hidden) layer.hidden = false; | |
layer.frames.forEach(function (frame) { | |
if(!frame.tweens) frame.tweens = []; | |
frame.tweens.forEach(function (tween) { | |
if(!tween.rotations) tween.rotations = 0; | |
}); | |
}); | |
}); | |
}); | |
if(!project._selection){ | |
project._selection = []; | |
} | |
if(!project.smallFramesMode) { | |
project.smallFramesMode = false; | |
} | |
if(!project.library) { | |
project.library = new AssetLibrary(); | |
allObjectsInProject.forEach(function (wickObject) { | |
if(wickObject.imageData) { | |
var asset = new WickAsset(wickObject.imageData, 'image', 'untitled'); | |
wickObject.assetUUID = project.library.addAsset(asset); | |
wickObject.isImage = true; | |
wickObject.imageData = null; | |
wickObject.name = 'untitled'; | |
} else if(wickObject.audioData) { | |
var asset = new WickAsset(wickObject.imageData, 'audio', 'untitled'); | |
var assetUUID = project.library.addAsset(asset); | |
} | |
}) | |
} | |
project.library.__proto__ = AssetLibrary.prototype; | |
project.library.regenAssetUUIDs(); | |
} | |
/*WickProject.fromLocalStorage = function () { | |
if(!localStorage) { | |
console.error("LocalStorage not available. Loading blank project"); | |
return new WickProject(); | |
} | |
var autosavedProjectJSON = localStorage.getItem('wickProject'); | |
if(!autosavedProjectJSON) { | |
console.log("No autosaved project. Loading blank project."); | |
return new WickProject(); | |
} | |
var project = WickProject.fromJSON(autosavedProjectJSON); | |
if(!project.wickVersion) { | |
return new WickProject(); | |
} else { | |
return project; | |
} | |
}*/ | |
WickProject.prototype.getAsJSON = function (callback, format) { | |
var self = this; | |
// Encode scripts/text to avoid JSON format problems | |
self.rootObject.encodeStrings(); | |
// Add some browser/OS/wick editor version info for debugging other ppl's projects | |
self.metaInfo = getBrowserAndOSInfo(); | |
self.metaInfo.wickVersion = wickEditor.version | |
var JSONProject = JSON.stringify(self, WickProject.Exporter.JSONReplacer, format); | |
// Decode scripts back to human-readble and eval()-able format | |
self.rootObject.decodeStrings(); | |
callback(JSONProject); | |
} | |
WickProject.prototype.getCopyData = function () { | |
var objectJSONs = []; | |
var objects = this.getSelectedObjects(); | |
for(var i = 0; i < objects.length; i++) { | |
objectJSONs.push(objects[i].getAsJSON()); | |
} | |
var clipboardObject = { | |
/*position: {top : group.top + group.height/2, | |
left : group.left + group.width/2},*/ | |
groupPosition: {x : 0, | |
y : 0}, | |
wickObjectArray: objectJSONs | |
} | |
return JSON.stringify(clipboardObject); | |
} | |
/********************************* | |
Access project wickobjects | |
*********************************/ | |
WickProject.prototype.getCurrentObject = function () { | |
return this.currentObject; | |
} | |
WickProject.prototype.getCurrentLayer = function () { | |
return this.getCurrentObject().getCurrentLayer(); | |
} | |
WickProject.prototype.getCurrentFrame = function () { | |
return this.getCurrentObject().getCurrentLayer().getCurrentFrame(); | |
} | |
WickProject.prototype.getAllObjects = function () { | |
var allObjectsInProject = this.rootObject.getAllChildObjectsRecursive(); | |
return allObjectsInProject; | |
} | |
WickProject.prototype.getAllFrames = function () { | |
var frames = []; | |
var allObjectsInProject = this.getAllObjects(); | |
allObjectsInProject.forEach(function (obj) { | |
frames = frames.concat(obj.getAllFrames()); | |
}); | |
return frames; | |
} | |
WickProject.prototype.getObjectByUUID = function (uuid) { | |
var allObjectsInProject = this.rootObject.getAllChildObjectsRecursive(); | |
allObjectsInProject.push(this.rootObject); | |
var foundObj = null; | |
allObjectsInProject.forEach(function (object) { | |
if(foundObj) return; | |
if(object.uuid === uuid) { | |
foundObj = object; | |
} | |
}); | |
return foundObj; | |
} | |
WickProject.prototype.getObject = function (name) { | |
return this.getObjectByName(name); | |
} | |
WickProject.prototype.getObjectByName = function (name) { | |
var allObjectsInProject = this.rootObject.getAllChildObjectsRecursive(); | |
allObjectsInProject.push(this.rootObject); | |
var foundObj = null; | |
allObjectsInProject.forEach(function (object) { | |
if(foundObj) return; | |
if(object.name === name) { | |
foundObj = object; | |
} | |
}); | |
return foundObj; | |
} | |
WickProject.prototype.getFrameByUUID = function (uuid) { | |
var allObjectsInProject = this.rootObject.getAllChildObjectsRecursive(); | |
allObjectsInProject.push(this.rootObject); | |
var foundFrame = null; | |
allObjectsInProject.forEach(function (object) { | |
if(!object.isSymbol) return; | |
object.layers.forEach(function (layer) { | |
layer.frames.forEach(function (frame) { | |
if(frame.uuid === uuid) { | |
foundFrame = frame; | |
} | |
}); | |
}) | |
}); | |
return foundFrame; | |
} | |
WickProject.prototype.addObject = function (wickObject, zIndex, ignoreSymbolOffset) { | |
var frame = this.getCurrentFrame(); | |
if(!ignoreSymbolOffset) { | |
var insideSymbolOffset = this.currentObject.getAbsolutePosition(); | |
wickObject.x -= insideSymbolOffset.x; | |
wickObject.y -= insideSymbolOffset.y; | |
} | |
if(!wickObject.uuid) wickObject.uuid = random.uuid4(); | |
if(zIndex === undefined || zIndex === null) { | |
frame.wickObjects.push(wickObject); | |
} else { | |
frame.wickObjects.splice(zIndex, 0, wickObject); | |
} | |
this.rootObject.generateParentObjectReferences(); | |
} | |
WickProject.prototype.getNextAvailableName = function (baseName) { | |
var nextName = baseName; | |
var number = 0; | |
this.getAllObjects().forEach(function (object) { | |
if(!object.name) return; | |
var nameSuffix = object.name.split(baseName)[1] | |
if(nameSuffix === "") { | |
if(number === 0) | |
number = 1; | |
} else { | |
var prefixNumber = parseInt(nameSuffix); | |
if(!isNaN(prefixNumber) && prefixNumber > number) | |
number = prefixNumber; | |
} | |
}); | |
if(number === 0) { | |
return baseName; | |
} else { | |
return baseName + " " + (number+1); | |
} | |
} | |
WickProject.prototype.jumpToObject = function (obj) { | |
var that = this; | |
this.rootObject.getAllChildObjectsRecursive().forEach(function (child) { | |
if(child.uuid === obj.uuid) { | |
that.currentObject = child.parentObject; | |
} | |
}); | |
var currentObject = this.currentObject; | |
var frameWithChild = currentObject.getFrameWithChild(obj); | |
var playheadPositionWithChild = frameWithChild.playheadPosition | |
currentObject.playheadPosition = playheadPositionWithChild; | |
} | |
WickProject.prototype.jumpToFrame = function (frame) { | |
var that = this; | |
var allObjectsInProject = this.rootObject.getAllChildObjectsRecursive(); | |
allObjectsInProject.push(this.rootObject); | |
allObjectsInProject.forEach(function (child) { | |
if(!child.isSymbol) return; | |
child.layers.forEach(function (layer) { | |
layer.frames.forEach(function (currframe) { | |
if(frame === currframe) { | |
that.currentObject = child; | |
} | |
}) | |
}) | |
}); | |
var currentObject = this.currentObject; | |
var frameWithChild = frame; | |
var playheadPositionWithChild = frameWithChild.playheadPosition | |
currentObject.playheadPosition = playheadPositionWithChild; | |
} | |
WickProject.prototype.hasSyntaxErrors = function () { | |
var projectHasSyntaxErrors = false; | |
this.rootObject.getAllChildObjectsRecursive().forEach(function (child) { | |
child.getAllFrames().forEach(function (frame) { | |
if(frame.scriptError && frame.scriptError.type === 'syntax') { | |
projectHasSyntaxErrors = true; | |
} | |
}); | |
if(child.scriptError && child.scriptError.type === 'syntax') { | |
projectHasSyntaxErrors = true; | |
} | |
}); | |
return projectHasSyntaxErrors; | |
} | |
WickProject.prototype.handleWickError = function (e, objectCausedError) { | |
if (window.wickEditor) { | |
//if(!wickEditor.builtinplayer.running) return; | |
console.log("Exception thrown while running script of WickObject: " + this.name); | |
console.log(e); | |
var lineNumber = null; | |
if(e.stack) { | |
e.stack.split('\n').forEach(function (line) { | |
if(lineNumber) return; | |
if(!line.includes("<anonymous>:")) return; | |
lineNumber = parseInt(line.split("<anonymous>:")[1].split(":")[0]); | |
}); | |
} | |
//console.log(e.stack.split("\n")[1].split('<anonymous>:')[1].split(":")[0]); | |
//console.log(e.stack.split("\n")) | |
//if(wickEditor.builtinplayer.running) wickEditor.builtinplayer.stopRunningProject() | |
wickEditor.builtinplayer.stopRunningProject() | |
wickEditor.scriptingide.showError(objectCausedError, { | |
message: e, | |
line: lineNumber, | |
type: 'runtime' | |
}); | |
objectCausedError.scriptError = { | |
message: e, | |
line: lineNumber, | |
type: 'runtime' | |
} | |
} else { | |
alert("An exception was thrown while running a WickObject script. See console!"); | |
console.log(e); | |
} | |
} | |
WickProject.prototype.isObjectSelected = function (obj) { | |
var selected = false; | |
this._selection.forEach(function (uuid) { | |
if(obj.uuid === uuid) selected = true; | |
}); | |
return selected; | |
} | |
WickProject.prototype.isTypeSelected = function (type) { | |
var self = this; | |
var selected = false; | |
this._selection.forEach(function (uuid) { | |
var obj = self.getObjectByUUID(uuid) | |
|| self.getFrameByUUID(uuid); | |
if(obj instanceof type) selected = true; | |
}); | |
return selected; | |
} | |
WickProject.prototype.getSelectedObject = function () { | |
var selectedObjects = this.getSelectedObjects(); | |
if(selectedObjects.length !== 1) { | |
return null; | |
} else { | |
return selectedObjects[0]; | |
} | |
} | |
WickProject.prototype.getSelectedObjectByType = function (type) { | |
var selectedObjects = this.getSelectedObjects(); | |
returnObject = null; | |
selectedObjects.forEach(function (obj) { | |
if(obj instanceof type) { | |
returnObject = obj; | |
} | |
}) | |
return returnObject; | |
} | |
WickProject.prototype.getSelectedObjects = function () { | |
var self = this; | |
var objs = []; | |
this._selection.forEach(function (uuid) { | |
var obj = self.getObjectByUUID(uuid) | |
|| self.getFrameByUUID(uuid); | |
//|| self.getTweenByUUID(uuid); | |
if(obj) objs.push(obj); | |
}); | |
return objs; | |
} | |
WickProject.prototype.getSelectedWickObjects = function () { | |
var self = this; | |
var objs = []; | |
this._selection.forEach(function (uuid) { | |
var obj = self.getObjectByUUID(uuid); | |
if(obj) objs.push(obj); | |
}); | |
return objs; | |
} | |
WickProject.prototype.getSelectedObjectsUUIDs = function () { | |
var self = this; | |
var objs = []; | |
this._selection.forEach(function (uuid) { | |
var obj = self.getObjectByUUID(uuid) | |
|| self.getFrameByUUID(uuid); | |
if(obj) objs.push(obj.uuids); | |
}); | |
return objs; | |
} | |
WickProject.prototype.getNumSelectedObjects = function (obj) { | |
return this.getSelectedObjects().length; | |
} | |
WickProject.prototype.selectObject = function (obj) { | |
wickEditor.inspector.clearSpecialMode(); | |
if(this._selection.indexOf(obj.uuid) === -1) | |
this._selection.push(obj.uuid); | |
} | |
WickProject.prototype.clearSelection = function () { | |
this._selection = []; | |
} | |
WickProject.prototype.deselectObjectType = function (type) { | |
var deselectionHappened = false; | |
for ( var i = 0; i < this._selection.length; i++ ) { | |
var uuid = this._selection[i]; | |
var obj = this.getObjectByUUID(uuid) | |
|| this.getFrameByUUID(uuid); | |
if(obj instanceof type) { | |
this._selection[i] = null; | |
deselectionHappened = true; | |
} | |
} | |
this._selection = this._selection.filter(function (obj) { | |
return obj !== null; | |
}); | |
return deselectionHappened; | |
} | |
WickProject.prototype.getIntersectingPaths = function (path) { | |
return []; | |
} | |
WickProject.prototype.loadBuiltinFunctions = function (contextObject) { | |
var objectScope = null; | |
if(contextObject instanceof WickObject) { | |
objectScope = contextObject.parentObject; | |
} else if (contextObject instanceof WickFrame) { | |
objectScope = contextObject.parentLayer.parentWickObject; | |
} | |
window.project = wickPlayer.project || wickEditor.project; | |
window.parentObject = contextObject.parentObject; | |
window.root = project.rootObject; | |
window.play = function () { objectScope.play(); } | |
window.stop = function () { objectScope.stop(); } | |
window.movePlayheadTo = function (frame) { objectScope.movePlayheadTo(frame); } | |
window.gotoAndStop = function (frame) { objectScope.gotoAndStop(frame); } | |
window.gotoAndPlay = function (frame) { objectScope.gotoAndPlay(frame); } | |
window.gotoNextFrame = function () { objectScope.gotoNextFrame(); } | |
window.gotoPrevFrame = function () { objectScope.gotoPrevFrame(); } | |
window.keyIsDown = function (keyString) { return wickPlayer.inputHandler.keyIsDown(keyString); }; | |
window.keyJustPressed = function (keyString) { return wickPlayer.inputHandler.keyJustPressed(keyString); } | |
window.mouseX = wickPlayer.inputHandler.getMouse().x; | |
window.mouseY = wickPlayer.inputHandler.getMouse().y; | |
window.mouseMoveX = wickPlayer.inputHandler.getMouseDiff().x; | |
window.mouseMoveY = wickPlayer.inputHandler.getMouseDiff().y; | |
window.hideCursor = function () { wickPlayer.hideCursor(); }; | |
window.showCursor = function () { wickPlayer.showCursor(); }; | |
// WickObjects in same frame (scope) are accessable without using root./parent. | |
if(objectScope) { | |
objectScope.getAllActiveChildObjects().forEach(function(child) { | |
if(child.name) window[child.name] = child; | |
}); | |
} | |
} | |
WickProject.prototype.runScript = function (obj, fnName, arg1, arg2, arg3) { | |
this.loadBuiltinFunctions(obj); | |
try { | |
if(obj[fnName]) obj[fnName](arg1, arg2, arg3); | |
} catch (e) { | |
this.handleWickError(e,obj); | |
} | |
} | |
var WickObjectBuiltins = [ | |
'load', | |
'update', | |
'mousedown', | |
'mouseover', | |
'mouseup', | |
"mouseout", | |
"keypressed", | |
"keydown", | |
"keyreleased", | |
]; | |
WickProject.prototype.loadScriptOfObject = function (obj) { | |
try { | |
var dummy = {}; | |
var load = undefined; | |
var update = undefined; | |
var mousedown = undefined; | |
var mouseover = undefined; | |
var mouseup = undefined; | |
var mouseout = undefined; | |
var keydown = undefined; | |
var keypressed = undefined; | |
var keyreleased = undefined; | |
obj._scopeWrapper = function () { | |
var dummyLoaderScript = ""; | |
WickObjectBuiltins.forEach(function (builtinName) { | |
dummyLoaderScript += '\ndummy.'+builtinName+"="+builtinName+";" | |
}); | |
(wickPlayer || wickEditor).project.loadBuiltinFunctions(obj); | |
var evalScript = /*'"use strict"; ' + */obj.wickScript + dummyLoaderScript; | |
eval(evalScript); | |
} | |
obj._scopeWrapper(); | |
WickObjectBuiltins.forEach(function (builtinName) { | |
var fn = dummy[builtinName]; | |
if(fn) { | |
obj[builtinName] = fn; | |
} else { | |
obj[builtinName] = function () { return; }; | |
} | |
}) | |
} catch (e) { | |
console.log(window.wickEditor) | |
if (window.wickEditor) { | |
//if(!wickEditor.builtinplayer.running) return; | |
console.log("Exception thrown while running script of WickObject: " + obj.name); | |
console.log(e); | |
var lineNumber = null; | |
if(e.stack) { | |
e.stack.split('\n').forEach(function (line) { | |
if(lineNumber) return; | |
if(!line.includes("<anonymous>:")) return; | |
lineNumber = parseInt(line.split("<anonymous>:")[1].split(":")[0]); | |
}); | |
} | |
//console.log(e.stack.split("\n")[1].split('<anonymous>:')[1].split(":")[0]); | |
//console.log(e.stack.split("\n")) | |
//if(wickEditor.builtinplayer.running) wickEditor.builtinplayer.stopRunningProject() | |
wickEditor.builtinplayer.stopRunningProject() | |
wickEditor.scriptingide.showError(obj, { | |
message: e, | |
line: lineNumber, | |
type: 'runtime' | |
}); | |
} else { | |
alert("An exception was thrown while running a WickObject script. See console!"); | |
console.log(e); | |
} | |
}; | |
} | |
WickProject.prototype.regenAssetReferences = function () { | |
var self = this; | |
self.getAllObjects().forEach(function (obj) { | |
obj.asset = self.library.getAsset(obj.assetUUID); | |
}); | |
} | |
WickProject.prototype.getDuplicateName = function () { | |
var foundDuplicate = null; | |
this.getAllObjects().forEach(function (object) { | |
object.getAllFrames().forEach(function (frame) { | |
var names = []; | |
frame.wickObjects.forEach(function (obj) { | |
names.push(obj.name); | |
}); | |
names = names.filter(function (n) { | |
return n !== undefined && n !== ''; | |
}); | |
//http://stackoverflow.com/questions/840781/easiest-way-to-find-duplicate-values-in-a-javascript-array | |
var uniq = names | |
.map(function (name) { | |
return {count: 1, name: name} | |
}) | |
.reduce(function (a, b) { | |
a[b.name] = (a[b.name] || 0) + b.count | |
return a | |
}, {}) | |
//var duplicates = Object.keys(uniq).filter((a) => uniq[a] > 1) | |
var duplicates = Object.keys(uniq).filter(function (a) { | |
return uniq[a] > 1; | |
}); | |
if(duplicates.length > 0) foundDuplicate = duplicates[0]; | |
}); | |
}); | |
return foundDuplicate; | |
} | |
WickProject.prototype.prepareForPlayer = function () { | |
var self = this; | |
self.regenAssetReferences(); | |
self.getAllObjects().forEach(function (obj) { | |
obj.prepareForPlayer(); | |
}); | |
} | |
WickProject.prototype.tick = function () { | |
this.applyTweens(); | |
var allObjectsInProject = this.rootObject.getAllChildObjectsRecursive(); | |
// Make sure all playhead positions are up to date | |
// (this is deferred to outside the main tick code so things don't get confusing) | |
allObjectsInProject.forEach(function (obj) { | |
if(obj._newPlayheadPosition !== undefined) | |
obj.playheadPosition = obj._newPlayheadPosition; | |
}); | |
allObjectsInProject.forEach(function (obj) { | |
obj._newPlayheadPosition = undefined; | |
obj._forceNewPlayheadPosition = undefined; | |
}); | |
allObjectsInProject.forEach(function (obj) { | |
obj.getAllFrames().forEach(function (frame) { | |
frame._wasActiveLastTick = frame._active; | |
frame._active = frame.isActive(); | |
}); | |
}); | |
allObjectsInProject.forEach(function (obj) { | |
obj._wasActiveLastTick = obj._active; | |
obj._active = obj.isActive(); | |
}); | |
this.rootObject.tick(); | |
// If a playhead position was changed through a script, make sure the | |
// change is reflected on next render (things look more responsive) | |
allObjectsInProject.forEach(function (obj) { | |
if(obj._newPlayheadPosition !== undefined && obj._forceNewPlayheadPosition) { | |
//obj.playheadPosition = obj._newPlayheadPosition; | |
//obj._newPlayheadPosition = null; | |
//obj._forceNewPlayheadPosition = null; | |
} | |
}); | |
} | |
WickProject.prototype.applyTweens = function () { | |
this.getAllFrames().forEach(function (frame) { | |
frame.applyTween(); | |
}); | |
}</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var AssetLibrary = function () { | |
this.assets = {}; | |
}; | |
AssetLibrary.prototype.addAsset = function (asset) { | |
if(asset.uuid) { | |
this.assets[asset.uuid] = asset; | |
} else { | |
var uuid = random.uuid4(); | |
this.assets[uuid] = asset; | |
asset.uuid = uuid; | |
return uuid; | |
} | |
} | |
AssetLibrary.prototype.deleteAsset = function (uuid) { | |
this.assets[uuid] = null; | |
delete this.assets[uuid]; | |
} | |
AssetLibrary.prototype.getAsset = function (uuid) { | |
return this.assets[uuid]; | |
} | |
AssetLibrary.prototype.getAllAssets = function (type) { | |
var allAssets = []; | |
for (assetUUID in this.assets) { | |
var asset = this.assets[assetUUID]; | |
if(type && asset.type === type) { | |
allAssets.push(asset); | |
} | |
} | |
return allAssets; | |
} | |
/* For backwards compatibility... */ | |
AssetLibrary.prototype.regenAssetUUIDs = function () { | |
for (assetUUID in this.assets) { | |
var asset = this.assets[assetUUID]; | |
asset.uuid = assetUUID; | |
} | |
} | |
AssetLibrary.prototype.printInfo = function () { | |
var totalSize = 0; | |
for (assetUUID in this.assets) { | |
var asset = this.assets[assetUUID]; | |
totalSize += asset.data.length; | |
console.log("Filename: "+asset.filename); | |
console.log("Type: "+asset.type); | |
console.log("Size: "+asset.data.length); | |
console.log("---") | |
} | |
console.log("Total library size: " + totalSize) | |
} | |
AssetLibrary.addPrototypes = function (library) { | |
for (assetUUID in library.assets) { | |
library.assets[assetUUID].__proto__ = WickAsset.prototype; | |
} | |
} | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
WickProject.Compressor = (function () { | |
var projectCompressor = { }; | |
var printFilesize = false; | |
var compressionRoutines = { | |
'LZSTRING-BASE64': { | |
compress:LZString.compressToBase64, | |
decompress:LZString.decompressFromBase64 | |
}, | |
'LZSTRING-UTF16': { | |
compress:LZString.compressToUTF16, | |
decompress:LZString.decompressFromUTF16 | |
} | |
} | |
projectCompressor.compressProject = function (projectJSON, compressionRoutineName) { | |
if(printFilesize) console.log("Compressing project of size " + projectJSON.length); | |
var compressionRoutine = compressionRoutines[compressionRoutineName]; | |
var compressedProjectJSON = compressionRoutineName+compressionRoutine.compress(projectJSON) | |
if(printFilesize) console.log("Done! Result size " + compressedProjectJSON.length); | |
return compressedProjectJSON; | |
} | |
projectCompressor.decompressProject = function (compressedProjectJSON) { | |
if(printFilesize) console.log("Decompressing project...") | |
var projectJSON = compressedProjectJSON; | |
for (var compressionRoutineName in compressionRoutines) { | |
if(compressedProjectJSON.startsWith(compressionRoutineName)) { | |
console.log("Project compressed with " + compressionRoutineName) | |
var compressionRoutine = compressionRoutines[compressionRoutineName]; | |
var rawCompressedProjectJSON = compressedProjectJSON.substring(compressionRoutineName.length, compressedProjectJSON.length); | |
projectJSON = compressionRoutine.decompress(rawCompressedProjectJSON); | |
} | |
} | |
if(printFilesize) console.log("Done!"); | |
return projectJSON; | |
} | |
projectCompressor.encodeString = function (str) { | |
var newStr = str; | |
newStr = encodeURI(str); | |
newStr = newStr.replace(/'/g, "%27"); | |
return newStr; | |
} | |
projectCompressor.decodeString = function (str) { | |
var newStr = str; | |
newStr = newStr.replace(/%27/g, "'"); | |
newStr = decodeURI(str); | |
return newStr; | |
} | |
return projectCompressor; | |
})();</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
window.percentComplete = 0; | |
var WickPreloader = function (wickEditor) { | |
//http://stackoverflow.com/questions/2592092/executing-script-elements-inserted-with-innerhtml | |
var exec_body_scripts = function(body_el) { | |
// Finds and executes scripts in a newly added element's body. | |
// Needed since innerHTML does not run scripts. | |
// | |
// Argument body_el is an element in the dom. | |
function nodeName(elem, name) { | |
return elem.nodeName && elem.nodeName.toUpperCase() === | |
name.toUpperCase(); | |
}; | |
function evalScript(elem) { | |
var data = (elem.text || elem.textContent || elem.innerHTML || "" ), | |
head = document.getElementsByTagName("head")[0] || | |
document.documentElement, | |
script = document.createElement("script"); | |
script.type = "text/javascript"; | |
try { | |
// doesn't work on ie... | |
script.appendChild(document.createTextNode(data)); | |
} catch(e) { | |
// IE has funky script nodes | |
script.text = data; | |
} | |
head.insertBefore(script, head.firstChild); | |
head.removeChild(script); | |
}; | |
// main section of function | |
var scripts = [], | |
script, | |
children_nodes = body_el.childNodes, | |
child, | |
i; | |
for (i = 0; children_nodes[i]; i++) { | |
child = children_nodes[i]; | |
if (nodeName(child, "script" ) && | |
(!child.type || child.type.toLowerCase() === "text/javascript")) { | |
scripts.push(child); | |
} | |
} | |
for (i = 0; scripts[i]; i++) { | |
script = scripts[i]; | |
if (script.parentNode) {script.parentNode.removeChild(script);} | |
evalScript(scripts[i]); | |
} | |
}; | |
var preloadProjectName = URLParameterUtils.getParameterByName('loadProject'); | |
if(preloadProjectName) { | |
$.ajax({ | |
url: preloadProjectName, | |
success: function(result){ | |
//console.log("done") | |
//setTimeout(function () { | |
WickPlayer.stopRunningCurrentProject(); | |
document.documentElement.innerHTML = result; | |
exec_body_scripts(document.body); | |
//}, 1000); | |
}, | |
xhr: function() | |
{ | |
var xhr = new window.XMLHttpRequest(); | |
//Upload progress | |
xhr.upload.addEventListener("progress", function(evt){ | |
if (evt.lengthComputable) { | |
var percentComplete = evt.loaded / evt.total; | |
//Do something with upload progress | |
window.percentComplete = percentComplete; | |
} | |
}, false); | |
//Download progress | |
xhr.addEventListener("progress", function(evt){ | |
if (evt.lengthComputable) { | |
var percentComplete = evt.loaded / evt.total; | |
//Do something with download progress | |
window.percentComplete = percentComplete; | |
} | |
}, false); | |
return xhr; | |
} | |
}); | |
} | |
}</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
// TODO: | |
// Update changed ordering | |
var WickPixiRenderer = function (canvasContainer) { | |
var self = this; | |
var SVG_SCALE = 1.4; | |
renderer = PIXI.autoDetectRenderer(720, 480, { | |
backgroundColor : "#FFFFFF", | |
resolution: window.devicePixelRatio, | |
preserveDrawingBuffer: true, | |
antialias: true, | |
}); | |
renderer.clearBeforeRender = false; | |
renderer.roundPixels = false; | |
renderer.view.setAttribute('tabindex', 0); | |
canvasContainer.appendChild(renderer.view); | |
renderer.view.focus() | |
var currentProjectUUID = null; | |
var container = new PIXI.Container(); | |
var pixiSprites = {}; | |
var pixiTextures = {}; | |
var wickProject; | |
self.renderWickObjects = function (project, wickObjects) { | |
wickProject = project; | |
if(currentProjectUUID !== project.uuid) { | |
currentProjectUUID = project.uuid; | |
preloadAllAssets(project); | |
} | |
if(renderer.width !== project.width || renderer.height !== project.height) { | |
renderer.resize(project.width, project.height); | |
renderer.view.style.width = project.width + "px"; | |
renderer.view.style.height = project.height + "px"; | |
} | |
var graphics = new PIXI.Graphics(); | |
graphics.beginFill(parseInt(project.backgroundColor.replace("#","0x"))); | |
graphics.drawRect(0, 0, project.width, project.height); | |
graphics.endFill(); | |
renderer.render(graphics); | |
for (uuid in pixiSprites) { | |
pixiSprites[uuid].visible = false; | |
} | |
wickObjects.forEach(function (wickObject) { | |
renderWickObject(wickObject); | |
}); | |
renderer.render(container); | |
} | |
function renderWickObject (wickObject) { | |
var sprite = pixiSprites[wickObject.uuid]; | |
if(!sprite && !wickObject.isSymbol) { | |
createPixiSprite(wickObject); | |
} | |
if(sprite && wickObject._renderDirty && wickObject.isPath) { | |
regenPixiPath(wickObject, sprite); | |
wickObject._renderDirty = false; | |
} | |
if(sprite && wickObject._renderDirty && wickObject.isText) { | |
sprite = regenPixiText(wickObject, sprite); | |
wickObject._renderDirty = false; | |
} | |
if(sprite) { | |
sprite.visible = true; | |
sprite.anchor = new PIXI.Point(0.5, 0.5); | |
var textureScale = (wickObject.pathData || wickObject.isText ? SVG_SCALE : 1); | |
var absTransforms = wickObject.getAbsoluteTransformations(); | |
var textOffset = wickObject.isText ? | |
rotate_point(sprite.textboxOffset, 0, 0, 0, absTransforms.rotation) : | |
{x:0,y:0}; | |
sprite.position.x = absTransforms.position.x - textOffset.x; | |
sprite.position.y = absTransforms.position.y - textOffset.y; | |
sprite.rotation = absTransforms.rotation/360*2*3.14159; | |
sprite.scale.x = absTransforms.scale.x/textureScale; | |
sprite.scale.y = absTransforms.scale.y/textureScale; | |
sprite.alpha = absTransforms.opacity; | |
sprite.scale.x *= (absTransforms.flip.x ? -1 : 1); | |
sprite.scale.y *= (absTransforms.flip.y ? -1 : 1); | |
} | |
wickObject.getAllActiveChildObjects().forEach(function (child) { | |
renderWickObject(child); | |
}); | |
} | |
function preloadAllAssets (project) { | |
project.getAllObjects().forEach(function (wickObject) { | |
createPixiSprite(wickObject); | |
}) | |
} | |
function createPixiSprite (wickObject) { | |
if(wickObject.sourceUUID) { | |
var pixiTexture = pixiTextures[wickObject.sourceUUID]; | |
if(pixiTexture) { | |
console.log('loaded cached') | |
var pixiSprite = new PIXI.Sprite(pixiTexture); | |
wickObject.alphaMask = wickProject.getObjectByUUID(wickObject.sourceUUID).alphaMask | |
container.addChild(pixiSprite); | |
pixiSprites[wickObject.uuid] = pixiSprite; | |
pixiSprites[wickObject.uuid].visible = false; | |
return; | |
} | |
} | |
var type; | |
if (wickObject.asset && wickObject.asset.type === 'image') { | |
type = 'image'; | |
} else if (wickObject.pathData) { | |
type = 'svg'; | |
} else if (wickObject.isText) { | |
type = 'text'; | |
} | |
if(type) { | |
var newPixiSprite = WickToPixiSprite[type](wickObject); | |
container.addChild(newPixiSprite); | |
pixiSprites[wickObject.uuid] = newPixiSprite; | |
var textureSrc = newPixiSprite.texture.baseTexture.imageUrl; | |
if(textureSrc) | |
wickObject.generateAlphaMask(textureSrc); | |
} | |
} | |
function regenPixiPath (wickObject, pixiSprite) { | |
var base64svg = getBase64SVG(wickObject); | |
var texture = PIXI.Texture.fromImage(base64svg, undefined, undefined, SVG_SCALE); | |
pixiSprite.setTexture(texture); | |
} | |
function regenPixiText (wickObject, pixiSprite) { | |
container.removeChild(pixiSprite); | |
var newPixiText = WickToPixiSprite['text'](wickObject); | |
container.addChild(newPixiText); | |
pixiSprites[wickObject.uuid] = newPixiText; | |
return newPixiText; | |
} | |
var WickToPixiSprite = { | |
'image': function (wickObject) { | |
var pixiTexture = PIXI.Texture.fromImage(wickObject.asset.getData()); | |
var pixiSprite = new PIXI.Sprite(pixiTexture); | |
pixiTextures[wickObject.uuid] = pixiTexture; | |
return pixiSprite; | |
}, | |
'svg': function (wickObject) { | |
var base64svg = getBase64SVG(wickObject); | |
var pixiTexture = PIXI.Texture.fromImage(base64svg, undefined, undefined, SVG_SCALE); | |
var newSprite = new PIXI.Sprite(pixiTexture); | |
pixiTextures[wickObject.uuid] = pixiTexture; | |
return newSprite; | |
}, | |
'text': function (wickObject) { | |
var textData = wickObject.textData; | |
var style = { | |
font : textData.fontWeight + " " + textData.fontStyle + " " + (textData.fontSize*SVG_SCALE) + "px " + textData.fontFamily, | |
fill : textData.fill, | |
wordWrap : true, | |
wordWrapWidth : wickObject.width*SVG_SCALE, | |
align: textData.textAlign | |
}; | |
var pixiText = new PIXI.Text(textData.text, style); | |
var textWidth = pixiText.width/SVG_SCALE; | |
var textboxWidth = wickObject.width; | |
if(textData.textAlign === 'left') { | |
pixiText.textboxOffset = (textboxWidth-textWidth)/2; | |
} else if (textData.textAlign === 'center') { | |
pixiText.textboxOffset = 0; | |
} else if (textData.textAlign === 'right') { | |
pixiText.textboxOffset = -(textboxWidth-textWidth)/2; | |
} | |
return pixiText; | |
} | |
} | |
function getBase64SVG (wickObject) { | |
var parser = new DOMParser(); | |
var x = (wickObject.svgX || 0); | |
var y = (wickObject.svgY || 0); | |
if(!wickObject.svgStrokeWidth) wickObject.svgStrokeWidth = 0; | |
x -= wickObject.svgStrokeWidth/2; | |
y -= wickObject.svgStrokeWidth/2; | |
var w = (wickObject.width + wickObject.svgStrokeWidth*1); | |
var h = (wickObject.height + wickObject.svgStrokeWidth*1); | |
var svgDoc = parser.parseFromString('<svg id="svg" viewBox="'+x+' '+y+' '+w+' '+h+'" version="1.1" width="'+w+'" height="'+h+'" xmlns="http://www.w3.org/2000/svg">'+wickObject.pathData+'</svg>', "image/svg+xml"); | |
var s = new XMLSerializer().serializeToString(svgDoc); | |
var base64svg = 'data:image/svg+xml;base64,' + window.btoa(s); | |
return base64svg; | |
} | |
}; | |
</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickHowlerAudioPlayer = function (project) { | |
var self = this; | |
var sounds = {}; | |
var muted; | |
self.setup = function () { | |
muted = false; | |
var allFrames = project.getAllFrames(); | |
allFrames.forEach(function (wickFrame) { | |
if(!wickFrame.audioAssetUUID) return; | |
var asset = project.library.getAsset(wickFrame.audioAssetUUID); | |
var audioData = asset.getData(); | |
sounds[wickFrame.uuid] = new Howl({ | |
src: [audioData], | |
loop: false, | |
volume: 1.0, | |
onend: function(id) { self.onSoundEnd(id); }, | |
onStop: function(id) { self.onSoundStop(id); }, | |
onPlay: function(id) { self.onSoundPlay(id); } | |
}); | |
}); | |
} | |
self.playSound = function (wickFrame) { | |
if(muted) return; | |
if(!sounds[wickFrame.uuid]) return; | |
wickFrame.currentHowlID = sounds[wickFrame.uuid].play(); | |
} | |
// TODO : Do this only for playing sounds | |
this.stopAllSounds = function () { | |
for (var sound in sounds) { | |
sounds[sound].stop(); | |
} | |
} | |
self.stopSound = function (wickFrame) { | |
sounds[wickFrame.uuid].stop(); | |
} | |
self.cleanup = function () { | |
} | |
self.onSoundEnd = function (howlid) { | |
} | |
self.onSoundStop = function (howlid) { | |
} | |
self.onSoundPlay = function (howlid) { | |
} | |
window.mute = function () { | |
self.stopAllSounds(); | |
muted = true; | |
} | |
window.unmute = function () { | |
muted = false; | |
} | |
}</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
WickPlayerInputHandler = function (canvasContainer, wickProject) { | |
var self = this; | |
var mouse; | |
var mouseDiff; | |
var lastMouse; | |
var newMouse; | |
var keys; | |
var keysJustPressed; | |
var keysJustReleased; | |
var _cachedKeysDown; | |
var _cachedKeysJustPressed; | |
var _cachedKeysJustReleased; | |
var project; | |
var canvas = canvasContainer.children[0]; | |
self.setup = function () { | |
mouse = null; | |
keys = []; | |
keysJustPressed = []; | |
keysJustReleased = []; | |
if(bowser.mobile || bowser.tablet) { | |
// Touch event (one touch = like a mouse click) | |
document.body.addEventListener("touchstart", onTouchStart, false); | |
document.body.addEventListener("touchmove", onTouchMove, false); | |
// Squash gesture events | |
document.body.addEventListener('gesturestart', function(e) { e.preventDefault(); }); | |
document.body.addEventListener('gesturechange', function(e) { e.preventDefault(); }); | |
document.body.addEventListener('gestureend', function(e) { e.preventDefault(); }); | |
} else { | |
document.body.addEventListener('mousemove', onMouseMove, false); | |
document.body.addEventListener("mousedown", onMouseDown, false); | |
document.body.addEventListener("mouseup", onMouseUp, false); | |
document.body.addEventListener("keydown", onKeyDown); | |
document.body.addEventListener("keyup", onKeyUp); | |
} | |
} | |
self.update = function () { | |
keysJustPressed = []; | |
keysJustReleased = []; | |
_cachedKeysDown = null; | |
_cachedKeysJustPressed = null; | |
_cachedKeysJustReleased = null; | |
lastMouse = mouse; | |
if(newMouse) mouse = newMouse; | |
if(mouse && lastMouse) { | |
mouseDiff = { | |
x: mouse.x - lastMouse.x, | |
y: mouse.y - lastMouse.y | |
} | |
} | |
if(mouse && lastMouse) { | |
lastMouse.x = mouse.x; | |
lastMouse.y = mouse.y; | |
} | |
} | |
self.cleanup = function () { | |
document.body.removeEventListener("mousedown", onMouseDown); | |
document.body.removeEventListener("mousemove", onMouseMove); | |
document.body.removeEventListener("mouseup", onMouseUp); | |
document.body.removeEventListener("touchstart", onTouchStart); | |
document.body.removeEventListener("touchmove", onTouchMove); | |
document.body.removeEventListener("keydown", onKeyDown); | |
document.body.removeEventListener("keyup", onKeyUp); | |
} | |
self.getMouse = function () { | |
return mouse || {x:0,y:0}; | |
} | |
self.getMouseDiff = function () { | |
return mouseDiff || {x:0,y:0}; | |
} | |
self.getKeys = function () { | |
return keys || []; | |
} | |
self.getKeysJustPressed = function () { | |
return keysJustPressed || []; | |
} | |
self.getKeysJustReleased = function () { | |
return keysJustReleased || []; | |
} | |
self.keyIsDown = function (keyString) { | |
return self.getKeys()[keyCharToCode[keyString.toUpperCase()]]; | |
} | |
self.keyJustPressed = function (keyString) { | |
return self.getKeysJustPressed()[keyCharToCode[keyString.toUpperCase()]]; | |
} | |
self.getAllKeysDown = function () { | |
if(_cachedKeysDown) return _cachedKeysDown; | |
_cachedKeysDown = []; | |
var _keys = self.getKeys(); | |
for(var i = 0; i < _keys.length; i++) { | |
if(_keys[i]) { | |
var c = codeToKeyChar[i]; | |
_cachedKeysDown.push(c); | |
} | |
} | |
return _cachedKeysDown; | |
} | |
self.getAllKeysJustPressed = function () { | |
if(_cachedKeysJustPressed) return _cachedKeysJustPressed; | |
_cachedKeysJustPressed = []; | |
var _keys = self.getKeysJustPressed(); | |
for(var i = 0; i < _keys.length; i++) { | |
if(_keys[i]) { | |
var c = codeToKeyChar[i]; | |
_cachedKeysJustPressed.push(c); | |
} | |
} | |
return _cachedKeysJustPressed; | |
} | |
self.getAllKeysJustReleased = function () { | |
if(_cachedKeysJustReleased) return _cachedKeysJustReleased; | |
_cachedKeysJustReleased = []; | |
var _keys = self.getKeysJustReleased(); | |
for(var i = 0; i < _keys.length; i++) { | |
if(_keys[i]) { | |
var c = codeToKeyChar[i]; | |
_cachedKeysJustReleased.push(c); | |
} | |
} | |
return _cachedKeysJustReleased; | |
} | |
self.hideCursor = function () { | |
canvasContainer.className = 'hideCursor' | |
} | |
self.showCursor = function () { | |
canvasContainer.className = '' | |
} | |
var onMouseMove = function (evt) { | |
setMousePos(getMousePos(canvasContainer, evt)); | |
canvasContainer.style.cursor = "default"; | |
// Check if we're hovered over a clickable object... | |
var hoveredOverObj = null; | |
wickProject.rootObject.getAllActiveChildObjectsRecursive(true).forEachBackwards(function(child) { | |
if(!(hoveredOverObj && hoveredOverObj.isButton) && child.isPointInside(self.getMouse())) { | |
if(!child.hoveredOver) { | |
child._wasHoveredOver = true; | |
} | |
if(child.isButton) canvasContainer.style.cursor = child.cursor || "pointer"; | |
child.hoveredOver = true; | |
hoveredOverObj = child; | |
} else { | |
if(child.hoveredOver) { | |
child._mouseJustLeft = true; | |
} | |
child.hoveredOver = false; | |
} | |
}); | |
} | |
var onMouseDown = function (evt) { | |
canvasContainer.focus(); | |
// Hack to avoid "'requestFullscreen' can only be initiated by a user gesture." error | |
if(wickPlayer.fullscreenRequested) { | |
wickPlayer.enterFullscreen(); | |
wickPlayer.fullscreenRequested = false; | |
} | |
var currFrame = wickProject.getCurrentFrame(); | |
if(currFrame) { | |
currFrame._wasClicked = true; | |
currFrame._beingClicked = true; | |
} | |
var clickedObj; | |
wickProject.rootObject.getAllActiveChildObjectsRecursive(true).forEachBackwards(function(child) { | |
if(!(clickedObj && clickedObj.isButton) && child.isPointInside(self.getMouse())) { | |
child._wasClicked = true; | |
child._beingClicked = true; | |
clickedObj = child; | |
} | |
}); | |
} | |
var onMouseUp = function (evt) { | |
var currFrame = wickProject.getCurrentFrame(); | |
if(currFrame) { | |
currFrame._beingClicked = false; | |
currFrame._wasClickedOff = true; | |
} | |
wickProject.rootObject.getAllActiveChildObjectsRecursive(true).forEachBackwards(function(child) { | |
child._beingClicked = false; | |
if(child.isPointInside(self.getMouse())) { | |
child._wasClickedOff = true; | |
} | |
}); | |
} | |
var onKeyDown = function (event) { | |
event.preventDefault(); | |
// Quit builtin editor | |
if(window.wickEditor && event.keyCode === 27) { | |
window.wickEditor.guiActionHandler.doAction('stopRunningProject') | |
} | |
// Check for new keyDown... | |
if (!keys[event.keyCode]) { | |
keysJustPressed[event.keyCode] = true; | |
} | |
keys[event.keyCode] = true; | |
} | |
var onKeyUp = function (event) { | |
event.preventDefault(); | |
keysJustReleased[event.keyCode] = true; | |
keys[event.keyCode] = false; | |
} | |
var onTouchStart = function (evt) { | |
document.getElementById('rendererCanvas').focus(); | |
evt.preventDefault(); | |
// on iOS, WebAudio context only gets 'unmuted' after first user interaction | |
if(!audioContext) { | |
wickPlayer.audioPlayer.setup(wickProject); | |
} | |
var touchPos = getTouchPos(canvasContainer, evt); | |
setMousePos(touchPos); | |
wickProject.rootObject.getAllActiveChildObjects().forEach(function(child) { | |
if(child.isPointInside(touchPos)) { | |
child._wasClicked = true; | |
} | |
}); | |
} | |
var onTouchMove = function (evt) { | |
evt.preventDefault(); | |
var touchPos = getTouchPos(canvasContainer, evt); | |
setMousePos(touchPos); | |
} | |
var getMousePos = function (canvas, evt) { | |
var canvasBoundingClientRect = canvas.getBoundingClientRect(); | |
var mouseX = evt.clientX; | |
var mouseY = evt.clientY; | |
if(wickProject.fitScreen) { | |
mouseX -= canvasBoundingClientRect.left; | |
mouseY -= canvasBoundingClientRect.top; | |
} | |
var centeredCanvasOffsetX = 0//(window.innerWidth - wickProject.width) / 2; | |
var centeredCanvasOffsetY = 0//(window.innerHeight - wickProject.height) / 2; | |
if(!wickProject.fitScreen) { | |
mouseX -= centeredCanvasOffsetX; | |
mouseY -= centeredCanvasOffsetY; | |
} | |
return { | |
x: mouseX, | |
y: mouseY | |
}; | |
} | |
var getTouchPos = function (canvas, evt) { | |
var canvasBoundingClientRect = canvas.getBoundingClientRect(); | |
var touch = evt.targetTouches[0]; | |
var touchX = touch.pageX; | |
var touchY = touch.pageY; | |
if(wickProject.fitScreen) { | |
touchX -= canvasBoundingClientRect.left; | |
touchY -= canvasBoundingClientRect.top; | |
} | |
var centeredCanvasOffsetX = 0//(window.innerWidth - wickProject.width) / 2; | |
var centeredCanvasOffsetY = 0//(window.innerHeight - wickProject.height) / 2; | |
if(!wickProject.fitScreen) { | |
touchX -= centeredCanvasOffsetX; | |
touchY -= centeredCanvasOffsetY; | |
} | |
return { | |
x: touchX, | |
y: touchY | |
}; | |
} | |
var setMousePos = function (newPos) { | |
newMouse = newPos; | |
} | |
}</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickHTMLElemInjector = function (project) { | |
var self = this; | |
var htmlElems; | |
self.setup = function () { | |
htmlElems = []; | |
project.getAllObjects().forEach(function (wickObject) { | |
if(!wickObject.htmlElemData) return; | |
var elem = document.createElement(wickObject.htmlElemData.tagName); | |
elem.style.position = 'absolute'; | |
elem.style.top = '0px'; | |
elem.style.left = '0px'; | |
elem.width = wickObject.width; | |
elem.height = wickObject.height; | |
elem.style.width = (wickObject.width+5)+'px'; | |
elem.style.height = wickObject.height+'px'; | |
document.body.appendChild(elem); | |
htmlElems[wickObject.uuid] = elem; | |
}); | |
} | |
self.update = function () { | |
for( uuid in htmlElems ) { | |
var elem = htmlElems[uuid]; | |
var wickObject = project.getObjectByUUID(uuid); | |
if(!wickObject) return; | |
if(wickObject.isActive()) { | |
var transform = buildCSSTransformValueFromWickObject(wickObject); | |
elem.style.transform = transform; | |
elem.style.display = 'block'; | |
} else { | |
elem.style.display = 'none'; | |
} | |
}; | |
} | |
// util | |
var buildCSSTransformValueFromWickObject = function (wickObject) { | |
var absPos = wickObject.getAbsolutePositionTransformed(); | |
var absScale = wickObject.getAbsoluteScale(); | |
var absRotate = wickObject.getAbsoluteRotation(); | |
absPos.x -= wickObject.width/2; | |
absPos.y -= wickObject.height/2; | |
return buildCSSTransformValue(absPos.x, absPos.y, absScale.x, absScale.y, absRotate) | |
} | |
var buildCSSTransformValue = function (x, y, scaleX, scaleY, rotate) { | |
var transform = ""; | |
transform += "translateX("+x+"px) " | |
transform += "translateY("+y+"px) " | |
transform += "scaleX("+scaleX+") " | |
transform += "scaleY("+scaleY+") " | |
transform += "rotate("+rotate+"deg) " | |
return transform; | |
} | |
};</script> | |
<script>/* Wick - (c) 2017 Zach Rispoli, Luca Damasco, and Josh Rispoli */ | |
/* This file is part of Wick. | |
Wick is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
Wick is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with Wick. If not, see <http://www.gnu.org/licenses/>. */ | |
var WickPlayer = function () { | |
var self = this; | |
self.running = false; | |
var initialStateProject; | |
var stats; | |
var statsEnabled = false; | |
self.runProject = function (projectJSON) { | |
try { | |
if(window.parent && window.parent.wickEditor) window.wickEditor = window.parent.wickEditor; | |
} catch (e) { | |
console.log(e) | |
} | |
self.running = true; | |
self.canvasContainer = document.getElementById('playerCanvasContainer'); | |
if(statsEnabled) { | |
stats = new Stats(); | |
stats.showPanel( 0 ); // 0: fps, 1: ms, 2: mb, 3+: custom | |
document.body.appendChild( stats.dom ); | |
} | |
resetElapsedTime(); | |
// Load the project! | |
self.project = WickProject.fromJSON(projectJSON); | |
initialStateProject = WickProject.fromJSON(projectJSON); | |
self.project.fitScreen = bowser.tablet || bowser.mobile; | |
initialStateProject.fitScreen = bowser.tablet || bowser.mobile; | |
self.canvasContainer.style.width = self.project.width+'px'; | |
self.canvasContainer.style.height = self.project.height+'px'; | |
self.project.rootObject.generateObjectNameReferences(self.project.rootObject); | |
initialStateProject.rootObject.generateObjectNameReferences(initialStateProject.rootObject); | |
self.project.prepareForPlayer(); | |
initialStateProject.prepareForPlayer(); | |
// Setup renderer/input/audio player | |
self.renderer = new WickPixiRenderer(self.canvasContainer); | |
self.inputHandler = new WickPlayerInputHandler(self.canvasContainer, self.project); | |
self.audioPlayer = new WickHowlerAudioPlayer(self.project); | |
self.htmlElemInjector = new WickHTMLElemInjector(self.project); | |
self.inputHandler.setup(); | |
if(!bowser.mobile && !bowser.tablet) self.audioPlayer.setup(); | |
self.htmlElemInjector.setup(); | |
var preloader = new WickPreloader(); | |
update(false); | |
} | |
window.runProject = function (projectJSON) { | |
self.runProject(projectJSON) | |
} | |
self.stopRunningProject = function () { | |
self.running = false; | |
update(); | |
clearTimeout(loopTimeout); | |
self.project = null; | |
self.inputHandler.cleanup(); | |
self.audioPlayer.cleanup(); | |
} | |
var loopTimeout; | |
var update = function (firstTick) { | |
if(!self.running) return; | |
if(statsEnabled) stats.begin(); | |
if(self.project.framerate < 60) { | |
loopTimeout = setTimeout(function() { | |
if(self.running) { | |
if(!firstTick) self.project.tick(); | |
if(self.project) self.renderer.renderWickObjects(self.project, self.project.rootObject.getAllActiveChildObjects()); | |
if(self.project) self.htmlElemInjector.update(); | |
self.inputHandler.update(false); | |
update(); | |
} | |
}, 1000 / self.project.framerate); | |
} else { | |
if(self.running) { | |
requestAnimationFrame(function () { update(false) }); | |
} | |
if(!firstTick) self.project.tick(); | |
self.renderer.renderWickObjects(self.project, self.project.rootObject.getAllActiveChildObjects()); | |
self.htmlElemInjector.update(); | |
self.inputHandler.update(); | |
} | |
if(statsEnabled) stats.end(); | |
} | |
///////////// DEPRECATED ZOOOOOONE!!!!!!!!!!!!!!!!!!!!!!! | |
self.cloneObject = function (wickObj) { | |
var clone = wickObj.copy(); | |
clone.isClone = true; | |
clone.asset = wickObj.asset; | |
clone.prepareForPlayer() | |
clone.parentObject = wickObj.parentObject; | |
clone.parentObject.getCurrentLayer().getCurrentFrame().wickObjects.push(clone); | |
self.project.rootObject.generateParentObjectReferences(); | |
return clone; | |
} | |
self.deleteObject = function (wickObj) { | |
//project.currentObject.removeChildByID(wickObj.id); | |
// So for now don't actually delete it, just make it go away somehow cos i'm lazy | |
wickObj._deleted = true; | |
// JUST GET IT OUTTA HERE I DONT CARE ................. | |
// it's like 8am pls forgive me for this | |
wickObj.x = 80608060 + Math.random()*10000; | |
wickObj.y = 80608060 + Math.random()*10000; | |
wickObj.name = undefined; | |
} | |
self.resetStateOfObject = function (wickObject) { | |
// Clones go away because they have no original state! :O | |
if(wickObject.isClone) { | |
project.currentObject.removeChild(wickObject); | |
return; | |
} | |
var initialStateObject = initialStateProject.getObjectByUUID(wickObject.uuid); | |
if(!initialStateObject) return; | |
// TOXXXIC | |
//console.log("-------------"); | |
var blacklist = ['asset', 'alphaMask', 'pixiSprite', 'pixiContainer', 'pixiText', 'audioData', 'wickScripts', 'parentObject', 'layers', '_active', '_wasActiveLastTick', '_scopeWrapper', 'parentFrame', 'bbox', 'tweens']; | |
for (var name in wickObject) { | |
if (name !== 'undefined' && wickObject.hasOwnProperty(name) && blacklist.indexOf(name) === -1) { | |
if(initialStateObject[name] !== wickObject[name]) { | |
wickObject[name] = initialStateObject[name]; | |
} | |
} | |
} | |
wickObject.hoveredOver = false; | |
wickObject.playheadPosition = 0; | |
wickObject._playing = true; | |
// Don't forget to reset the childrens states | |
if(wickObject.isSymbol) { | |
wickObject.getAllChildObjects().forEach(function (child) { | |
wickPlayer.resetStateOfObject(child); | |
}); | |
} | |
} | |
} | |
// this is temporary, need a better system for this... | |
function runProject (json) { | |
window.wickPlayer = new WickPlayer(); | |
window.wickPlayer.runProject(json); | |
} | |
</script> | |
<script>var wickPlayer = new WickPlayer(); wickPlayer.runProject('{"rootObject":{"uuid":"c5c3405f-3804-4380-8b5d-10b56c6b5bc5","x":0,"y":0,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":true,"isButton":false,"isGroup":false,"playheadPosition":0,"currentLayer":0,"layers":[{"frames":[{"identifier":"","wickObjects":[{"x":500.5,"y":237.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":0,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"4618d4d7-0611-4061-b453-bb454fa7872e"},{"x":544.5,"y":237.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":1,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"e3a2fdf3-3524-4352-8392-5039ccfb3093"},{"x":584.5,"y":237.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":2,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"83c1f492-0a2a-40a2-8f79-b8f730164991"},{"x":130.5,"y":238.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":3,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"69e83d5a-bd93-4bd9-b0ac-b70ace239495"},{"x":176.5,"y":238.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":4,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"a7630be4-8708-4870-a563-4656d98bf5a8"},{"x":222.5,"y":238.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":5,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"469d9252-e9cb-4e9c-8ee3-d8ee80f9f540"},{"x":266.5,"y":238.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":6,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"cfc55ecb-b465-4b46-a24a-d224a25256f3"},{"x":306.5,"y":238.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":7,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"aa2056ba-11d2-411d-a6ae-9a6a11b7e1c5"},{"x":357.774426940022,"y":203.49957210040623,"width":15.000001581202241,"height":15.000001581202014,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.79782,332.99954c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.2744261494209,"svgY":317.9995713098052,"svgStrokeWidth":5,"svgWidth":20.00000158120224,"svgHeight":20.000001581202014,"_zindex":8,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"a46f7c01-4ed7-44ed-ada1-02da4213bf07"},{"x":357.63097649410145,"y":158.499795775194,"width":15.000001581201957,"height":15.00000158120207,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.65437,286.99976c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.13097570350044,"svgY":271.99979498459294,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.00000158120207,"_zindex":9,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"6e57a677-8f7d-48f7-a9f0-0a9f10a32d1c"},{"x":357.4875260481807,"y":115.50001944998175,"width":15.00000158120207,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.51091,240.99998c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.9875252575797,"svgY":226.0000186593807,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.000001581202127,"_zindex":10,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"5d173eb4-fef9-4fef-93e4-693ef582401a"},{"x":357.3503125781698,"y":75.50023339977855,"width":15.00000158120207,"height":15.000001581202099,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.3737,197.0002c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.8503117875687,"svgY":182.0002326091775,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.0000015812021,"_zindex":11,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"dc8ed115-21a4-421a-b55d-ef55962914de"},{"x":357.22557305997805,"y":33.50042789959389,"width":15.000001581202014,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.24896,157.00039c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.72557226937704,"svgY":142.00042710899282,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.000001581202127,"_zindex":12,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"b03028e9-ed1e-4ed1-b332-473391e47bd2"},{"x":356.774426940022,"y":445.4995721004062,"width":15.000001581202241,"height":15.000001581202014,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.79782,332.99954c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.2744261494209,"svgY":317.9995713098052,"svgStrokeWidth":5,"svgWidth":20.00000158120224,"svgHeight":20.000001581202014,"_zindex":13,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"71969099-e018-4e01-b02d-a702315d508b"},{"x":356.63097649410145,"y":400.499795775194,"width":15.000001581201957,"height":15.00000158120207,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.65437,286.99976c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.13097570350044,"svgY":271.99979498459294,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.000001581202127,"_zindex":14,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"c2cb87cc-33e9-433e-ad64-0ad642ade78a"},{"x":356.4875260481807,"y":357.5000194499817,"width":15.00000158120207,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.51091,240.99998c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.9875252575797,"svgY":226.0000186593807,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.000001581202127,"_zindex":15,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"047c8f11-63bf-463b-a958-c29563e431d7"},{"x":356.3503125781698,"y":317.5002333997785,"width":15.00000158120207,"height":15.000001581202099,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.3737,197.0002c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.8503117875687,"svgY":182.0002326091775,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.000001581202127,"_zindex":16,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"2a3409af-a696-4a69-b41e-a341b90e99b4"},{"x":356.22557305997805,"y":277.5004278995939,"width":15.000001581202014,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.24896,157.00039c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.72557226937704,"svgY":142.00042710899282,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.000001581202127,"_zindex":17,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"99b7c36f-c4e2-4c4e-b706-63709685e38b"},{"x":408.5,"y":446.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":18,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"dece8b32-5386-4538-bbe9-0bbef898b2b0"},{"x":454.5,"y":446.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":19,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"6007139f-1921-4192-8c48-54c4df3d2c98"},{"x":500.5,"y":446.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":20,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"55b9a862-e277-4e27-8a94-80a9c8bfa353"},{"x":544.5,"y":446.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":21,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"138a1e97-c10c-4c10-bf87-07f832d55e57"},{"x":584.5,"y":446.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":22,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"90f3afe5-bec0-4bec-aedb-0eed4ccc577d"},{"x":408.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":23,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"e984d6ac-d114-4d11-9a13-c9a1e2ccc45c"},{"x":454.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":24,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"4b6ee633-0620-4062-b920-6b92e09272c0"},{"x":500.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":25,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"cd3d4a4e-77e0-477e-9222-49224e647db7"},{"x":544.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":26,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"bc25558d-2458-4245-bd3e-bbd306e857de"},{"x":584.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":27,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"58e32815-dfe8-4dfe-8feb-54fefca751d0"},{"x":130.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":28,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"c585f24a-fc65-4fc6-b826-1f82d1714091"},{"x":176.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":29,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"79ec2971-b0b9-4b0b-8430-8443946d5844"},{"x":222.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":30,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"e31f7d33-dee6-4dee-964d-fd64b5a25c3b"},{"x":266.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":31,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"2b247c08-9e98-49e9-8bc3-3cbc1def0f47"},{"x":306.5,"y":33.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":32,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"253dbc62-81fd-481f-a2f8-e22f8ca2823e"},{"x":130.5,"y":445.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":33,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"05184b36-7d2a-47d2-9275-39274f103e05"},{"x":176.5,"y":445.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":34,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"d0e7f9d5-29e4-429e-a4e7-964ef1c8f38a"},{"x":222.5,"y":445.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":35,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"03c89c22-3faa-43fa-9125-35125ece5db5"},{"x":266.5,"y":445.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":36,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"de0ee3d5-2e4e-42e4-97ca-517c9d56ee93"},{"x":306.5,"y":445.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":37,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"43f2c33c-e1ed-4e1e-82f7-d82fec47329a"},{"x":130.774426940022,"y":203.49957210040623,"width":15.000001581202241,"height":15.000001581202014,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.79782,332.99954c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.2744261494209,"svgY":317.9995713098052,"svgStrokeWidth":5,"svgWidth":20.00000158120224,"svgHeight":20.000001581202014,"_zindex":38,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"b0ebe535-50dc-450d-a0b9-9e0b8cee0774"},{"x":130.63097649410145,"y":158.499795775194,"width":15.000001581201957,"height":15.00000158120207,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.65437,286.99976c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.13097570350044,"svgY":271.99979498459294,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.00000158120207,"_zindex":39,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"cc979f4f-9bcb-49bc-a914-2691b9858a75"},{"x":130.4875260481807,"y":115.50001944998175,"width":15.00000158120207,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.51091,240.99998c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.9875252575797,"svgY":226.0000186593807,"svgStrokeWidth":5,"svgWidth":20.00000158120207,"svgHeight":20.000001581202127,"_zindex":40,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"6672d603-ce05-4ce0-8d8b-60d899a83b01"},{"x":130.3503125781698,"y":75.50023339977855,"width":15.00000158120207,"height":15.000001581202099,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.3737,197.0002c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.8503117875687,"svgY":182.0002326091775,"svgStrokeWidth":5,"svgWidth":20.00000158120207,"svgHeight":20.0000015812021,"_zindex":41,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"51b5f271-b7bf-4b7b-a7de-a27dc52d924c"},{"x":585.7744269400221,"y":203.49957210040623,"width":15.000001581202241,"height":15.000001581202014,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.79782,332.99954c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.2744261494209,"svgY":317.9995713098052,"svgStrokeWidth":5,"svgWidth":20.00000158120224,"svgHeight":20.000001581202014,"_zindex":42,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"f91dfbcc-b1e8-4b1e-8b45-24b4eb6ed6cd"},{"x":585.6309764941014,"y":158.499795775194,"width":15.000001581201957,"height":15.00000158120207,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.65437,286.99976c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.13097570350044,"svgY":271.99979498459294,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.00000158120207,"_zindex":43,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"d9b49f51-c6fe-4c6f-bb95-0bb97c3116e8"},{"x":585.4875260481807,"y":115.50001944998175,"width":15.00000158120207,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.51091,240.99998c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.9875252575797,"svgY":226.0000186593807,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.000001581202127,"_zindex":44,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"cf12f237-942d-4942-8ed5-fcedc3187b5a"},{"x":585.3503125781698,"y":75.50023339977855,"width":15.00000158120207,"height":15.000001581202099,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.3737,197.0002c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.8503117875687,"svgY":182.0002326091775,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.0000015812021,"_zindex":45,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"11cf07f2-4f6e-44f6-8878-6c876e4c368c"},{"x":585.7744269400221,"y":406.4995721004062,"width":15.000001581202241,"height":15.000001581202014,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.79782,332.99954c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.2744261494209,"svgY":317.9995713098052,"svgStrokeWidth":5,"svgWidth":20.00000158120224,"svgHeight":20.000001581202014,"_zindex":46,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"80e1ac89-eade-4ead-83cf-983c5205b44b"},{"x":585.6309764941014,"y":361.499795775194,"width":15.000001581201957,"height":15.00000158120207,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.65437,286.99976c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.13097570350044,"svgY":271.99979498459294,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.000001581202127,"_zindex":47,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"0ecdfd95-83fd-483f-954e-cd5413d42e62"},{"x":585.4875260481807,"y":318.5000194499818,"width":15.00000158120207,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.51091,240.99998c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.9875252575797,"svgY":226.0000186593807,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.000001581202127,"_zindex":48,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"602ad3c9-2a86-42a8-bcb1-bbcbff67e80e"},{"x":585.3503125781698,"y":278.50023339977855,"width":15.00000158120207,"height":15.000001581202099,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.3737,197.0002c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.8503117875687,"svgY":182.0002326091775,"svgStrokeWidth":5,"svgWidth":20.000001581202127,"svgHeight":20.000001581202127,"_zindex":49,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"5417abd3-2994-4299-9458-1945f60218b4"},{"x":130.77442694002207,"y":406.4995721004062,"width":15.000001581202241,"height":15.000001581202014,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.79782,332.99954c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.2744261494209,"svgY":317.9995713098052,"svgStrokeWidth":5,"svgWidth":20.00000158120224,"svgHeight":20.000001581202014,"_zindex":50,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"055df308-b5e0-4b5e-851a-a8517aad2bf5"},{"x":130.63097649410145,"y":361.499795775194,"width":15.000001581201957,"height":15.00000158120207,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.65437,286.99976c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":489.13097570350044,"svgY":271.99979498459294,"svgStrokeWidth":5,"svgWidth":20.000001581202014,"svgHeight":20.000001581202127,"_zindex":51,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"804e2159-7847-4784-a79a-aa79688dc416"},{"x":130.4875260481807,"y":318.5000194499818,"width":15.00000158120207,"height":15.000001581202127,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.51091,240.99998c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.9875252575797,"svgY":226.0000186593807,"svgStrokeWidth":5,"svgWidth":20.00000158120207,"svgHeight":20.000001581202127,"_zindex":52,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"81f3e73f-e93c-4e93-990b-1d907931663d"},{"x":130.3503125781698,"y":278.50023339977855,"width":15.00000158120207,"height":15.000001581202099,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M496.3737,197.0002c-4.14212,0.01292%20-7.51043,-3.33446%20-7.52335,-7.47657c-0.01292,-4.14212%203.33446,-7.51043%207.47657,-7.52335c4.14212,-0.01292%207.51043,3.33446%207.52335,7.47657c0.01292,4.14212%20-3.33446,7.51043%20-7.47657,7.52335z%22/%3E%3C/g%3E","svgX":488.8503117875687,"svgY":182.0002326091775,"svgStrokeWidth":5,"svgWidth":20.00000158120207,"svgHeight":20.000001581202127,"_zindex":53,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"3d446c15-ec06-4ec0-a599-ce59c33d2cd1"},{"uuid":"997f93aa-9b7e-49b7-8e49-68e4fe3f3668","name":"pacman","x":356,"y":239.5,"width":26,"height":26,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"var%20moving%20=%20false;%0Avar%20direction%20=%20%22%22;%0Avar%20speed%20=%2015;%0Avar%20pacman%20=%20this;%0A%0Afunction%20keydown(key)%20%7B%0A%20%20%20%20//%20When%20a%20user%20presses%20an%20arrow%20key,%20rotate%20PacMan%20and%20set%20the%20direction%20to%20move%20in%0A%20%20%20%20if(key%20===%20%22RIGHT%22)%20%7B%0A%20%20%20%20%20%20%20%20direction%20=%20%22RIGHT%22;%0A%20%20%20%20%20%20%20%20this.rotation%20=%200;%0A%20%20%20%20%7D%20else%20if%20(key%20===%20%22LEFT%22)%20%7B%0A%20%20%20%20%20%20%20%20direction%20=%20%22LEFT%22;%0A%20%20%20%20%20%20%20%20this.rotation%20=%20180;%0A%20%20%20%20%7D%20else%20if%20(key%20===%20%22UP%22)%20%7B%0A%20%20%20%20%20%20%20%20direction%20=%20%22UP%22;%0A%20%20%20%20%20%20%20%20this.rotation%20=%20-90;%0A%20%20%20%20%7D%20else%20if%20(key%20===%20%22DOWN%22)%20%7B%0A%20%20%20%20%20%20%20%20direction%20=%20%22DOWN%22;%0A%20%20%20%20%20%20%20%20this.rotation%20=%2090;%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20direction%20=%20%22%22;%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20//%20If%20we%20actually%20set%20a%20direction,%20start%20moving%20PacMan%0A%20%20%20%20if%20(direction%20!==%20%22%22)%20%7B%0A%20%20%20%20%20%20%20%20moving%20=%20true;%0A%20%20%20%20%7D%0A%7D%0A%0Afunction%20update%20()%20%7B%0A%20%20%20%20//%20If%20PacMan%20is%20supposed%20to%20move...%0A%20%20%20%20if%20(moving%20===%20true)%20%7B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20//%20Move%20in%20the%20right%20direction%0A%20%20%20%20%20%20%20%20if%20(direction%20===%20%22RIGHT%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pacman.x%20+=%2015;%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(direction%20===%20%22LEFT%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pacman.x%20-=%2015;%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(direction%20===%20%22UP%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pacman.y%20-=%2015;%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(direction%20===%20%22DOWN%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pacman.y%20+=%2015;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20//%20If%20after%20moving,%20we%27re%20on%20top%20of%20a%20wall...%0A%20%20%20%20%20%20%20%20if%20(pacman.hitTest(project.getObject(%22World%22)))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Stop%20moving%20PacMan%0A%20%20%20%20%20%20%20%20%20%20%20%20moving%20=%20false;%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20And%20move%20PacMan%20back%20a%20bit%20(so%20he%27s%20no%20longer%20touching%20the%20wall)%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(direction%20===%20%22RIGHT%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pacman.x%20-=%2015;%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20(direction%20===%20%22LEFT%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pacman.x%20+=%2015;%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20(direction%20===%20%22UP%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pacman.y%20+=%2015;%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20(direction%20===%20%22DOWN%22)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pacman.y%20-=%2015;%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Reset%20the%20direction%0A%20%20%20%20%20%20%20%20%20%20%20%20direction%20=%20%22%22;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":true,"isButton":false,"isGroup":false,"playheadPosition":0,"currentLayer":0,"layers":[{"frames":[{"identifier":"","wickObjects":[{"uuid":"8699839b-b0a0-4b0a-b104-b310f615e349","name":"pacman_1","x":0,"y":0,"width":911,"height":960,"scaleX":0.027442371020856202,"scaleY":0.026041666666666668,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":"482450c8-00c6-400c-aa12-1aa1fab9c6bb","loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isImage":true,"svgWidth":911,"svgHeight":960,"svgStrokeWidth":0,"_zindex":57,"forceFabricCanvasRegen":false,"scriptError":null,"_tempZIndex":1,"bbox":{"left":129,"top":88.5,"width":25,"height":25}}],"tweens":[],"pathData":null,"playheadPosition":0,"length":5,"alwaysSaveState":false,"uuid":"3521271c-aeb0-4aeb-bf31-27f3994c9d34","wickScript":"","name":"pacman_mouth_open"},{"identifier":"","wickObjects":[{"uuid":"f9e24642-4bc0-44bc-b899-ff8907e48782","x":0.5,"y":0,"width":21,"height":21,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#ffcc00%22%20fill-rule=%22nonzero%22%20stroke=%22#ffcc00%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M345,238.5c0,-5.79899%204.70101,-10.5%2010.5,-10.5c5.79899,0%2010.5,4.70101%2010.5,10.5c0,5.79899%20-4.70101,10.5%20-10.5,10.5c-5.79899,0%20-10.5,-4.70101%20-10.5,-10.5z%22/%3E%3C/g%3E","svgX":345,"svgY":228,"svgStrokeWidth":5,"svgWidth":26,"svgHeight":26,"_zindex":57,"forceFabricCanvasRegen":false}],"tweens":[],"pathData":null,"playheadPosition":5,"length":5,"alwaysSaveState":false,"uuid":"dac7c712-13d0-413d-a742-1a743add23d5","wickScript":"","name":"pacman_mouth_closed"}],"identifier":"Layer 1","locked":false,"hidden":false}],"playRanges":[],"svgWidth":26,"svgHeight":26,"svgStrokeWidth":0,"_zindex":54,"framesDirty":false,"forceFabricCanvasRegen":false,"scriptError":null},{"x":408.5,"y":237.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":55,"uuid":"35854a40-cac8-4cac-8d07-f0d0e1c071d9","forceFabricCanvasRegen":false,"scriptError":null,"name":"food","_tempZIndex":0,"bbox":{"left":181.5,"top":86.5,"width":20,"height":20}},{"x":454.5,"y":237.5,"width":15,"height":15,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"function%20update()%20%7B%0A%20%20%20%20if%20(this.hitTest(project.getObject(%22pacman%22)))%20%7B%0A%20%20%20%20%20%20%20%20this.delete();%0A%20%20%20%20%7D%0A%7D","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22#00b5ff%22%20fill-rule=%22nonzero%22%20stroke=%22#006893%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M401,237.5c0,-4.14214%203.35786,-7.5%207.5,-7.5c4.14214,0%207.5,3.35786%207.5,7.5c0,4.14214%20-3.35786,7.5%20-7.5,7.5c-4.14214,0%20-7.5,-3.35786%20-7.5,-7.5z%22/%3E%3C/g%3E","svgX":401,"svgY":230,"svgStrokeWidth":5,"svgWidth":20,"svgHeight":20,"_zindex":56,"forceFabricCanvasRegen":false,"scriptError":null,"uuid":"c9b1369d-bc96-4bc9-9b89-29b8c6e4fe57","name":"","_tempZIndex":1,"bbox":{"left":227.5,"top":86.5,"width":20,"height":20}},{"uuid":"0d1954ad-9945-4994-b426-0b42d9d79dfc","name":"World","x":359.511566972693,"y":240,"width":510.976866054614,"height":464,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":true,"isButton":false,"isGroup":true,"playheadPosition":0,"currentLayer":0,"layers":[{"frames":[{"identifier":"","wickObjects":[{"uuid":"57e0618e-3ce7-43ce-a419-4e41ab61c1bd","x":0.48843302730699634,"y":-229,"width":504,"height":0,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M108,15h504%22/%3E%3C/g%3E","svgX":108,"svgY":15,"svgStrokeWidth":5,"svgWidth":509,"svgHeight":5,"_zindex":57,"forceFabricCanvasRegen":false,"_tempZIndex":57,"bbox":{"left":133,"top":-140,"width":509,"height":5}},{"x":203.988433027307,"y":-105.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M564,60l-1,163%22/%3E%3C/g%3E","svgX":563,"svgY":60,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.0000000000005,"_zindex":58,"_tempZIndex":58,"forceFabricCanvasRegen":false,"bbox":{"left":336.5,"top":-16.500000000000256,"width":6,"height":168.00000000000048},"uuid":"97f94232-971c-4971-ad84-1ad811cf093f"},{"x":0.48843302730699634,"y":229,"width":504,"height":0,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M108,476h504%22/%3E%3C/g%3E","svgX":108,"svgY":476,"svgStrokeWidth":5,"svgWidth":509,"svgHeight":5,"_zindex":59,"uuid":"072fccc7-1f8e-41f8-9bb3-51bba4c01497","forceFabricCanvasRegen":false,"_tempZIndex":59,"bbox":{"left":133,"top":318,"width":509,"height":5}},{"x":111.488433027307,"y":-187.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M380,53l182,-1%22/%3E%3C/g%3E","svgX":380,"svgY":52,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":60,"uuid":"bc1c1f96-efba-4efb-810d-24106ea8fcdd","_tempZIndex":60,"forceFabricCanvasRegen":false,"bbox":{"left":244,"top":-98.5,"width":187,"height":6}},{"x":252.07358208006826,"y":0.343411231125458,"width":0.039520059426195076,"height":453.7153358288557,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M611.60491,13.48574l-0.03952,453.71534%22/%3E%3C/g%3E","svgX":611.5653890230482,"svgY":13.4857433166976,"svgStrokeWidth":5,"svgWidth":5.039520000000039,"svgHeight":458.7153400000001,"_zindex":61,"_tempZIndex":61,"forceFabricCanvasRegen":false,"bbox":{"left":384.58514905276127,"top":89.34341123112421,"width":5.039520059426195,"height":458.71533582885814},"uuid":"1207a08c-d399-4d39-8c1d-5cc197edc193"},{"x":-252.4862072842768,"y":1.4220185857077752,"width":0.004451486060389698,"height":454.8644355567832,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M107.02759,13.9898l-0.00445,454.86444%22/%3E%3C/g%3E","svgX":107.02313394538602,"svgY":13.989800807316193,"svgStrokeWidth":5,"svgWidth":5.00445000000002,"svgHeight":459.86444,"_zindex":62,"_tempZIndex":62,"forceFabricCanvasRegen":false,"bbox":{"left":-119.97464031158378,"top":90.4220185857065,"width":5.00445148606039,"height":459.8644355567858},"uuid":"0ebfa234-f34d-4f34-ac11-4ac1a37ee74e"},{"x":203.988433027307,"y":103.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M564,269l-1,163%22/%3E%3C/g%3E","svgX":563,"svgY":269,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.00000000000045,"_zindex":63,"_tempZIndex":63,"forceFabricCanvasRegen":false,"bbox":{"left":336.5,"top":192.49999999999977,"width":6,"height":168.00000000000045},"uuid":"337223c7-75aa-475a-b184-871897be9935"},{"x":110.488433027307,"y":-23.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,60l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":59,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":64,"uuid":"7dbd95d2-c50a-4c50-83f3-c83f533a1267","_tempZIndex":64,"forceFabricCanvasRegen":false,"bbox":{"left":243,"top":65.5,"width":187,"height":6}},{"x":18.988433027306996,"y":-105.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M373,53l-1,163%22/%3E%3C/g%3E","svgX":372,"svgY":53,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.0000000000005,"_zindex":65,"_tempZIndex":65,"forceFabricCanvasRegen":false,"bbox":{"left":151.5,"top":-16.500000000000256,"width":6,"height":168.00000000000048},"uuid":"962f539c-1193-4119-b097-6f0953346804"},{"x":-26.011566972693004,"y":-105.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M109,53l-1,163%22/%3E%3C/g%3E","svgX":108,"svgY":53,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.0000000000005,"_zindex":66,"_tempZIndex":66,"forceFabricCanvasRegen":false,"bbox":{"left":106.5,"top":-16.500000000000256,"width":6,"height":168.00000000000048},"uuid":"9318e6b0-04df-404d-a7e1-b27ef3e64c44"},{"x":-116.511566972693,"y":-24.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,60l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":59,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":67,"uuid":"2c819910-a6ff-4a6f-a3a8-5a3ad65996ee","_tempZIndex":67,"forceFabricCanvasRegen":false,"bbox":{"left":16,"top":64.5,"width":187,"height":6}},{"x":-206.011566972693,"y":-105.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,53l-1,163%22/%3E%3C/g%3E","svgX":153,"svgY":53,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.0000000000005,"_zindex":68,"_tempZIndex":68,"forceFabricCanvasRegen":false,"bbox":{"left":-73.5,"top":-16.500000000000256,"width":6,"height":168.00000000000048},"uuid":"03ca4fc2-02f0-402f-bc7f-9bc788ed7bea"},{"x":-206.011566972693,"y":103.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,269l-1,163%22/%3E%3C/g%3E","svgX":153,"svgY":269,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.00000000000045,"_zindex":69,"_tempZIndex":69,"forceFabricCanvasRegen":false,"bbox":{"left":-73.5,"top":192.49999999999977,"width":6,"height":168.00000000000045},"uuid":"734b51f0-b18e-4b18-9589-8d58bd96c4f1"},{"uuid":"11aa69dd-6398-4639-a03f-6e03e52b7156","x":-114.511566972693,"y":-187.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,53l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":52,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":70,"_tempZIndex":70,"forceFabricCanvasRegen":false,"bbox":{"left":18,"top":-98.5,"width":187,"height":6}},{"x":-115.511566972693,"y":22.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,60l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":59,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":71,"uuid":"204f7fa3-ec0b-4ec0-b5c8-eb5cf44721c9","_tempZIndex":71,"forceFabricCanvasRegen":false,"bbox":{"left":17,"top":111.5,"width":187,"height":6}},{"x":-116.511566972693,"y":184.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,60l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":59,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":72,"uuid":"d63c9153-a99c-4a99-9796-4179f12924d2","_tempZIndex":72,"forceFabricCanvasRegen":false,"bbox":{"left":16,"top":273.5,"width":187,"height":6}},{"x":-26.011566972693004,"y":103.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M109,53l-1,163%22/%3E%3C/g%3E","svgX":108,"svgY":53,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.0000000000005,"_zindex":73,"_tempZIndex":73,"forceFabricCanvasRegen":false,"bbox":{"left":106.5,"top":192.49999999999977,"width":6,"height":168.00000000000045},"uuid":"ce7860b9-f283-4f28-b6a2-536a52dbc8a9"},{"x":18.988433027306996,"y":103.5,"width":1,"height":163,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M109,53l-1,163%22/%3E%3C/g%3E","svgX":108,"svgY":53,"svgStrokeWidth":5,"svgWidth":6,"svgHeight":168.0000000000005,"_zindex":74,"_tempZIndex":74,"forceFabricCanvasRegen":false,"bbox":{"left":151.5,"top":192.49999999999977,"width":6,"height":168.00000000000045},"uuid":"7ec23550-1362-4136-bf67-5ff66d11ab9c"},{"x":110.488433027307,"y":185.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,60l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":59,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":75,"uuid":"df5519e1-1c8c-41c8-84f7-e84f351720b4","_tempZIndex":75,"forceFabricCanvasRegen":false,"bbox":{"left":243,"top":274.5,"width":187,"height":6}},{"x":114.488433027307,"y":21.5,"width":182,"height":1,"scaleX":1,"scaleY":1,"rotation":0,"flipX":false,"flipY":false,"opacity":1,"wickScript":"","assetUUID":null,"loop":false,"isText":false,"isSymbol":false,"isButton":false,"isGroup":false,"playheadPosition":null,"currentLayer":null,"isPath":true,"pathData":"%3Cg%20xmlns=%22http://www.w3.org/2000/svg%22%20fill=%22none%22%20fill-rule=%22nonzero%22%20stroke=%22#ffffff%22%20stroke-width=%225%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20stroke-dasharray=%22%22%20stroke-dashoffset=%220%22%20font-family=%22none%22%20font-weight=%22none%22%20font-size=%22none%22%20text-anchor=%22none%22%20style=%22mix-blend-mode:%20normal%22%3E%3Cpath%20d=%22M154,60l182,-1%22/%3E%3C/g%3E","svgX":154,"svgY":59,"svgStrokeWidth":5,"svgWidth":187,"svgHeight":6,"_zindex":76,"uuid":"f6b8689c-1b4f-41b4-8519-ec5153592b8f","_tempZIndex":76,"forceFabricCanvasRegen":false,"bbox":{"left":247,"top":110.5,"width":187,"height":6}}],"tweens":[],"pathData":null,"playheadPosition":0,"length":1,"alwaysSaveState":false,"uuid":"62eb4930-c9b3-4c9b-90fd-450f2bad61b3","wickScript":""}],"identifier":"Layer 1","locked":false,"hidden":false}],"playRanges":[],"svgWidth":510.976866054614,"svgHeight":463.99999999999994,"svgStrokeWidth":0,"_zindex":57}],"tweens":[],"pathData":null,"playheadPosition":0,"length":1,"alwaysSaveState":false,"uuid":"ea437b84-0069-4006-b0fa-7b0f86dc3bce","wickScript":"stop();"}],"identifier":"Layer 2","locked":false,"hidden":false}],"playRanges":[],"isRoot":true,"currentFrame":0,"framesDirty":false},"library":{"assets":{"482450c8-00c6-400c-aa12-1aa1fab9c6bb":{"data":"data:image/png;base64,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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment