(function (i) { "function" === typeof define && define.amd ? define(["jquery", "datatables.net", "datatables.net-buttons"], function ( g ) { return i(g, window, document); }) : "object" === typeof exports ? (module.exports = function (g, k, q, r) { g || (g = window); if (!k || !k.fn.dataTable) k = require("datatables.net")(g, k).$; k.fn.dataTable.Buttons || require("datatables.net-buttons")(g, k); return i(k, g, g.document, q, r); }) : i(jQuery, window, document); })(function (i, g, k, q, r, p) { function y(a, c) { s === p && (s = -1 === v .serializeToString(i.parseXML(z["xl/worksheets/sheet1.xml"])) .indexOf("xmlns:r")); i.each(c, function (c, b) { if (i.isPlainObject(b)) { var e = a.folder(c); y(e, b); } else { if (s) { var e = b.childNodes[0], f, h, m = []; for (f = e.attributes.length - 1; 0 <= f; f--) { h = e.attributes[f].nodeName; var g = e.attributes[f].nodeValue; -1 !== h.indexOf(":") && (m.push({ name: h, value: g }), e.removeAttribute(h)); } f = 0; for (h = m.length; f < h; f++) (g = b.createAttribute( m[f].name.replace(":", "_dt_b_namespace_token_") )), (g.value = m[f].value), e.setAttributeNode(g); } e = v.serializeToString(b); s && (-1 === e.indexOf("' + e), (e = e.replace(/_dt_b_namespace_token_/g, ":"))); e = e.replace(/<(.*?) xmlns=""(.*?)>/g, "<$1 $2>"); a.file(c, e); } }); } function n(a, c, d) { var b = a.createElement(c); d && (d.attr && i(b).attr(d.attr), d.children && i.each(d.children, function (a, c) { b.appendChild(c); }), d.text && b.appendChild(a.createTextNode(d.text))); return b; } function I(a, c) { var d = a.header[c].length, b; a.footer && a.footer[c].length > d && (d = a.footer[c].length); for ( var e = 0, f = a.body.length; e < f && !((b = a.body[e][c].toString()), -1 !== b.indexOf("\n") ? ((b = b.split("\n")), b.sort(function (a, b) { return b.length - a.length; }), (b = b[0].length)) : (b = b.length), b > d && (d = b), 40 < d); e++ ); d *= 1.3; return 6 < d ? d : 6; } var l = i.fn.dataTable, o; var h = ("undefined" !== typeof self && self) || ("undefined" !== typeof g && g) || this.content; if ( "undefined" === typeof h || ("undefined" !== typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent)) ) o = void 0; else { var t = h.document.createElementNS("http://www.w3.org/1999/xhtml", "a"), J = "download" in t, K = /constructor/i.test(h.HTMLElement) || h.safari, A = /CriOS\/[\d]+/.test(navigator.userAgent), L = function (a) { (h.setImmediate || h.setTimeout)(function () { throw a; }, 0); }, B = function (a) { setTimeout(function () { "string" === typeof a ? (h.URL || h.webkitURL || h).revokeObjectURL(a) : a.remove(); }, 4e4); }, C = function (a) { return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test( a.type ) ? new Blob([String.fromCharCode(65279), a], { type: a.type }) : a; }, D = function (a, c, d) { d || (a = C(a)); var b = this, d = "application/octet-stream" === a.type, e, f = function () { for ( var a = ["writestart", "progress", "write", "writeend"], a = [].concat(a), c = a.length; c--; ) { var d = b["on" + a[c]]; if ("function" === typeof d) try { d.call(b, b); } catch (e) { L(e); } } }; b.readyState = b.INIT; if (J) (e = (h.URL || h.webkitURL || h).createObjectURL(a)), setTimeout(function () { t.href = e; t.download = c; var a = new MouseEvent("click"); t.dispatchEvent(a); f(); B(e); b.readyState = b.DONE; }); else if ((A || (d && K)) && h.FileReader) { var i = new FileReader(); i.onloadend = function () { var a = A ? i.result : i.result.replace(/^data:[^;]*;/, "data:attachment/file;"); h.open(a, "_blank") || (h.location.href = a); b.readyState = b.DONE; f(); }; i.readAsDataURL(a); b.readyState = b.INIT; } else e || (e = (h.URL || h.webkitURL || h).createObjectURL(a)), d ? (h.location.href = e) : h.open(e, "_blank") || (h.location.href = e), (b.readyState = b.DONE), f(), B(e); }, j = D.prototype; "undefined" !== typeof navigator && navigator.msSaveOrOpenBlob ? (o = function (a, c, d) { c = c || a.name || "download"; d || (a = C(a)); return navigator.msSaveOrOpenBlob(a, c); }) : ((j.abort = function () {}), (j.readyState = j.INIT = 0), (j.WRITING = 1), (j.DONE = 2), (j.error = j.onwritestart = j.onprogress = j.onwrite = j.onabort = j.onerror = j.onwriteend = null), (o = function (a, c, d) { return new D(a, c || a.name || "download", d); })); } l.fileSave = o; var u = function (a, c) { var d = "*" === a.filename && "*" !== a.title && a.title !== p ? a.title : a.filename; "function" === typeof d && (d = d()); -1 !== d.indexOf("*") && (d = i.trim(d.replace("*", i("title").text()))); d = d.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g, ""); return c === p || !0 === c ? d + a.extension : d; }, M = function (a) { var c = "Sheet1"; a.sheetName && (c = a.sheetName.replace(/[\[\]\*\/\\\?\:]/g, "")); return c; }, N = function (a) { a = a.title; "function" === typeof a && (a = a()); return -1 !== a.indexOf("*") ? a.replace("*", i("title").text() || "Exported data") : a; }, E = function (a) { return a.newline ? a.newline : navigator.userAgent.match(/Windows/) ? "\r\n" : "\n"; }, F = function (a, c) { for ( var d = E(c), b = a.buttons.exportData(c.exportOptions), e = c.fieldBoundary, f = c.fieldSeparator, i = RegExp(e, "g"), m = c.escapeChar !== p ? c.escapeChar : "\\", h = function (a) { for (var b = "", c = 0, d = a.length; c < d; c++) 0 < c && (b += f), (b += e ? e + ("" + a[c]).replace(i, m + e) + e : a[c]); return b; }, g = c.header ? h(b.header) + d : "", k = c.footer && b.footer ? d + h(b.footer) : "", w = [], x = 0, j = b.body.length; x < j; x++ ) w.push(h(b.body[x])); return { str: g + w.join(d) + k, rows: w.length }; }, G = function () { if ( !( -1 !== navigator.userAgent.indexOf("Safari") && -1 === navigator.userAgent.indexOf("Chrome") && -1 === navigator.userAgent.indexOf("Opera") ) ) return !1; var a = navigator.userAgent.match(/AppleWebKit\/(\d+\.\d+)/); return a && 1 < a.length && 603.1 > 1 * a[1] ? !0 : !1; }; try { var v = new XMLSerializer(), s; } catch (O) {} var z = { "_rels/.rels": '', "xl/_rels/workbook.xml.rels": '', "[Content_Types].xml": '', "xl/workbook.xml": '', "xl/worksheets/sheet1.xml": '', "xl/styles.xml": '', }, H = [ { match: /^\-?\d+\.\d%$/, style: 60, fmt: function (a) { return a / 100; }, }, { match: /^\-?\d+\.?\d*%$/, style: 56, fmt: function (a) { return a / 100; }, }, { match: /^\-?\$[\d,]+.?\d*$/, style: 57 }, { match: /^\-?£[\d,]+.?\d*$/, style: 58 }, { match: /^\-?€[\d,]+.?\d*$/, style: 59 }, { match: /^\([\d,]+\)$/, style: 61, fmt: function (a) { return -1 * a.replace(/[\(\)]/g, ""); }, }, { match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (a) { return -1 * a.replace(/[\(\)]/g, ""); }, }, { match: /^[\d,]+$/, style: 63 }, { match: /^[\d,]+\.\d{2}$/, style: 64 }, ]; l.ext.buttons.copyHtml5 = { className: "buttons-copy buttons-html5", text: function (a) { return a.i18n("buttons.copy", "Copy"); }, action: function (a, c, d, b) { var a = F(c, b), e = a.str, d = i("
").css({ height: 1, width: 1, overflow: "hidden", position: "fixed", top: 0, left: 0, }); b.customize && (e = b.customize(e, b)); b = i("