Array.prototype.filter||(Array.prototype.filter=function(fun){"use strict";if(null==this)throw new TypeError;var t=Object(this),len=t.length>>>0;if("function"!=typeof fun)throw new TypeError;for(var val,res=[],thisp=arguments[1],i=0;i<len;i++){i in t&&(val=t[i],fun.call(thisp,val,i,t)&&res.push(val))}return res}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),len=o.length>>>0;if(0==len)return!1;var x,y,n=0|fromIndex,k=Math.max(0<=n?n:len-Math.abs(n),0);for(;k<len;){if((x=o[k])===(y=searchElement)||"number"==typeof x&&"number"==typeof y&&isNaN(x)&&isNaN(y))return!0;k++}return!1}}),Array.isArray||(Array.isArray=function(arg){"use strict";return"[object Array]"===Object.prototype.toString.call(arg)}),Array.prototype.some||(Array.prototype.some=function(fun,thisArg){"use strict";if(null==this)throw new TypeError("Array.prototype.some called on null or undefined");if("function"!=typeof fun)throw new TypeError;for(var t=Object(this),len=t.length>>>0,i=0;i<len;i++)if(i in t&&fun.call(thisArg,t[i],i,t))return!0;return!1});