/*! * Legacy browser support */ [].map || (Array.prototype.map = function (a, b) { for (var c = this, d = c.length, e = new Array(d), f = 0; d > f; f++) f in c && (e[f] = a.call(b, c[f], f, c)); return e }), [].filter || (Array.prototype.filter = function (a) { if (null == this) throw new TypeError; var b = Object(this), c = b.length >>> 0; if ("function" != typeof a) throw new TypeError; for (var d = [], e = arguments[1], f = 0; c > f; f++) if (f in b) { var g = b[f]; a.call(e, g, f, b) && d.push(g) } return d }), [].indexOf || (Array.prototype.indexOf = function (a) { if (null == this) throw new TypeError; var b = Object(this), c = b.length >>> 0; if (0 === c) return -1; var d = 0; if (arguments.length > 1 && (d = Number(arguments[1]), d != d ? d = 0 : 0 !== d && d != 1 / 0 && d != -(1 / 0) && (d = (d > 0 || -1) * Math.floor(Math.abs(d)))), d >= c) return -1; for (var e = d >= 0 ? d : Math.max(c - Math.abs(d), 0); c > e; e++) if (e in b && b[e] === a) return e; return -1 }); /*! * Cross-Browser Split 1.1.1 * Copyright 2007-2012 Steven Levithan * Available under the MIT License * http://blog.stevenlevithan.com/archives/cross-browser-split */ var nativeSplit = String.prototype.split, compliantExecNpcg = void 0 === /()??/.exec("")[1]; String.prototype.split = function (a, b) { var c = this; if ("[object RegExp]" !== Object.prototype.toString.call(a)) return nativeSplit.call(c, a, b); var d, e, f, g, h = [], i = (a.ignoreCase ? "i" : "") + (a.multiline ? "m" : "") + (a.extended ? "x" : "") + (a.sticky ? "y" : ""), j = 0; for (a = new RegExp(a.source, i + "g"), c += "", compliantExecNpcg || (d = new RegExp("^" + a.source + "$(?!\\s)", i)), b = void 0 === b ? -1 >>> 0 : b >>> 0; (e = a.exec(c)) && (f = e.index + e[0].length, !(f > j && (h.push(c.slice(j, e.index)), !compliantExecNpcg && e.length > 1 && e[0].replace(d, function () { for (var a = 1; a < arguments.length - 2; a++) void 0 === arguments[a] && (e[a] = void 0) }), e.length > 1 && e.index < c.length && Array.prototype.push.apply(h, e.slice(1)), g = e[0].length, j = f, h.length >= b)));) a.lastIndex === e.index && a.lastIndex++; return j === c.length ? (g || !a.test("")) && h.push("") : h.push(c.slice(j)), h.length > b ? h.slice(0, b) : h };