//fgnass.github.com/spin.js#v2.0.0
!function (a, b) {
"object" == typeof exports ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.Spinner = b()
}(this, function () {
"use strict";
function a(a, b) {
var c, d = document.createElement(a || "div");
for (c in b) d[c] = b[c];
return d
}
function b(a) {
for (var b = 1, c = arguments.length; c > b; b++) a.appendChild(arguments[b]);
return a
}
function c(a, b, c, d) {
var e = ["opacity", b, ~~(100 * a), c, d].join("-"), f = .01 + c / d * 100,
g = Math.max(1 - (1 - a) / b * (100 - f), a), h = j.substring(0, j.indexOf("Animation")).toLowerCase(),
i = h && "-" + h + "-" || "";
return l[e] || (m.insertRule("@" + i + "keyframes " + e + "{0%{opacity:" + g + "}" + f + "%{opacity:" + a + "}" + (f + .01) + "%{opacity:1}" + (f + b) % 100 + "%{opacity:" + a + "}100%{opacity:" + g + "}}", m.cssRules.length), l[e] = 1), e
}
function d(a, b) {
var c, d, e = a.style;
for (b = b.charAt(0).toUpperCase() + b.slice(1), d = 0; d < k.length; d++) if (c = k[d] + b, void 0 !== e[c]) return c;
return void 0 !== e[b] ? b : void 0
}
function e(a, b) {
for (var c in b) a.style[d(a, c) || c] = b[c];
return a
}
function f(a) {
for (var b = 1; b < arguments.length; b++) {
var c = arguments[b];
for (var d in c) void 0 === a[d] && (a[d] = c[d])
}
return a
}
function g(a, b) {
return "string" == typeof a ? a : a[b % a.length]
}
function h(a) {
this.opts = f(a || {}, h.defaults, n)
}
function i() {
function c(b, c) {
return a("<" + b + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', c)
}
m.addRule(".spin-vml", "behavior:url(#default#VML)"), h.prototype.lines = function (a, d) {
function f() {
return e(c("group", {coordsize: k + " " + k, coordorigin: -j + " " + -j}), {width: k, height: k})
}
function h(a, h, i) {
b(m, b(e(f(), {
rotation: 360 / d.lines * a + "deg",
left: ~~h
}), b(e(c("roundrect", {arcsize: d.corners}), {
width: j,
height: d.width,
left: d.radius,
top: -d.width >> 1,
filter: i
}), c("fill", {color: g(d.color, a), opacity: d.opacity}), c("stroke", {opacity: 0}))))
}
var i, j = d.length + d.width, k = 2 * j, l = 2 * -(d.width + d.length) + "px",
m = e(f(), {position: "absolute", top: l, left: l});
if (d.shadow) for (i = 1; i <= d.lines; i++) h(i, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");
for (i = 1; i <= d.lines; i++) h(i);
return b(a, m)
}, h.prototype.opacity = function (a, b, c, d) {
var e = a.firstChild;
d = d.shadow && d.lines || 0, e && b + d < e.childNodes.length && (e = e.childNodes[b + d], e = e && e.firstChild, e = e && e.firstChild, e && (e.opacity = c))
}
}
var j, k = ["webkit", "Moz", "ms", "O"], l = {}, m = function () {
var c = a("style", {type: "text/css"});
return b(document.getElementsByTagName("head")[0], c), c.sheet || c.styleSheet
}(), n = {
lines: 12,
length: 7,
width: 5,
radius: 10,
rotate: 0,
corners: 1,
color: "#000",
direction: 1,
speed: 1,
trail: 100,
opacity: .25,
fps: 20,
zIndex: 2e9,
className: "spinner",
top: "50%",
left: "50%",
position: "absolute"
};
h.defaults = {}, f(h.prototype, {
spin: function (b) {
this.stop();
{
var c = this, d = c.opts,
f = c.el = e(a(0, {className: d.className}), {position: d.position, width: 0, zIndex: d.zIndex});
d.radius + d.length + d.width
}
if (b && (b.insertBefore(f, b.firstChild || null), e(f, {
left: d.left,
top: d.top
})), f.setAttribute("role", "progressbar"), c.lines(f, c.opts), !j) {
var g, h = 0, i = (d.lines - 1) * (1 - d.direction) / 2, k = d.fps, l = k / d.speed,
m = (1 - d.opacity) / (l * d.trail / 100), n = l / d.lines;
!function o() {
h++;
for (var a = 0; a < d.lines; a++) g = Math.max(1 - (h + (d.lines - a) * n) % l * m, d.opacity), c.opacity(f, a * d.direction + i, g, d);
c.timeout = c.el && setTimeout(o, ~~(1e3 / k))
}()
}
return c
}, stop: function () {
var a = this.el;
return a && (clearTimeout(this.timeout), a.parentNode && a.parentNode.removeChild(a), this.el = void 0), this
}, lines: function (d, f) {
function h(b, c) {
return e(a(), {
position: "absolute",
width: f.length + f.width + "px",
height: f.width + "px",
background: b,
boxShadow: c,
transformOrigin: "left",
transform: "rotate(" + ~~(360 / f.lines * k + f.rotate) + "deg) translate(" + f.radius + "px,0)",
borderRadius: (f.corners * f.width >> 1) + "px"
})
}
for (var i, k = 0, l = (f.lines - 1) * (1 - f.direction) / 2; k < f.lines; k++) i = e(a(), {
position: "absolute",
top: 1 + ~(f.width / 2) + "px",
transform: f.hwaccel ? "translate3d(0,0,0)" : "",
opacity: f.opacity,
animation: j && c(f.opacity, f.trail, l + k * f.direction, f.lines) + " " + 1 / f.speed + "s linear infinite"
}), f.shadow && b(i, e(h("#000", "0 0 4px #000"), {top: "2px"})), b(d, b(i, h(g(f.color, k), "0 0 1px rgba(0,0,0,.1)")));
return d
}, opacity: function (a, b, c) {
b < a.childNodes.length && (a.childNodes[b].style.opacity = c)
}
});
var o = e(a("group"), {behavior: "url(#default#VML)"});
return !d(o, "transform") && o.adj ? i() : j = d(o, "animation"), h
});
/*! @license DOMPurify 3.0.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.8/LICENSE */
!function (e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).DOMPurify = t()
}(this, (function () {
"use strict";
const {entries: e, setPrototypeOf: t, isFrozen: n, getPrototypeOf: o, getOwnPropertyDescriptor: r} = Object;
let {freeze: i, seal: a, create: l} = Object, {apply: c, construct: s} = "undefined" != typeof Reflect && Reflect;
i || (i = function (e) {
return e
}), a || (a = function (e) {
return e
}), c || (c = function (e, t, n) {
return e.apply(t, n)
}), s || (s = function (e, t) {
return new e(...t)
});
const u = b(Array.prototype.forEach), m = b(Array.prototype.pop), f = b(Array.prototype.push),
p = b(String.prototype.toLowerCase), d = b(String.prototype.toString), h = b(String.prototype.match),
g = b(String.prototype.replace), T = b(String.prototype.indexOf), y = b(String.prototype.trim),
E = b(RegExp.prototype.test), A = (_ = TypeError, function () {
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n];
return s(_, t)
});
var _;
function b(e) {
return function (t) {
for (var n = arguments.length, o = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) o[r - 1] = arguments[r];
return c(e, t, o)
}
}
function N(e, o) {
let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : p;
t && t(e, null);
let i = o.length;
for (; i--;) {
let t = o[i];
if ("string" == typeof t) {
const e = r(t);
e !== t && (n(o) || (o[i] = e), t = e)
}
e[t] = !0
}
return e
}
function S(e) {
for (let t = 0; t < e.length; t++) void 0 === r(e, t) && (e[t] = null);
return e
}
function R(t) {
const n = l(null);
for (const [o, i] of e(t)) void 0 !== r(t, o) && (Array.isArray(i) ? n[o] = S(i) : i && "object" == typeof i && i.constructor === Object ? n[o] = R(i) : n[o] = i);
return n
}
function w(e, t) {
for (; null !== e;) {
const n = r(e, t);
if (n) {
if (n.get) return b(n.get);
if ("function" == typeof n.value) return b(n.value)
}
e = o(e)
}
return function (e) {
return console.warn("fallback value for", e), null
}
}
const D = i(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]),
L = i(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]),
v = i(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]),
x = i(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]),
k = i(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]),
C = i(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]),
O = i(["#text"]),
I = i(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]),
M = i(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]),
U = i(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]),
P = i(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), F = a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),
H = a(/<%[\w\W]*|[\w\W]*%>/gm), z = a(/\${[\w\W]*}/gm), B = a(/^data-[\-\w.\u00B7-\uFFFF]/),
W = a(/^aria-[\-\w]+$/),
G = a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),
Y = a(/^(?:\w+script|data):/i), j = a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),
q = a(/^html$/i);
var X = Object.freeze({
__proto__: null,
MUSTACHE_EXPR: F,
ERB_EXPR: H,
TMPLIT_EXPR: z,
DATA_ATTR: B,
ARIA_ATTR: W,
IS_ALLOWED_URI: G,
IS_SCRIPT_OR_DATA: Y,
ATTR_WHITESPACE: j,
DOCTYPE_NAME: q
});
const K = function () {
return "undefined" == typeof window ? null : window
}, V = function (e, t) {
if ("object" != typeof e || "function" != typeof e.createPolicy) return null;
let n = null;
const o = "data-tt-policy-suffix";
t && t.hasAttribute(o) && (n = t.getAttribute(o));
const r = "dompurify" + (n ? "#" + n : "");
try {
return e.createPolicy(r, {createHTML: e => e, createScriptURL: e => e})
} catch (e) {
return console.warn("TrustedTypes policy " + r + " could not be created."), null
}
};
var $ = function t() {
let n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : K();
const o = e => t(e);
if (o.version = "3.0.8", o.removed = [], !n || !n.document || 9 !== n.document.nodeType) return o.isSupported = !1, o;
let {document: r} = n;
const a = r, c = a.currentScript, {
DocumentFragment: s,
HTMLTemplateElement: _,
Node: b,
Element: S,
NodeFilter: F,
NamedNodeMap: H = n.NamedNodeMap || n.MozNamedAttrMap,
HTMLFormElement: z,
DOMParser: B,
trustedTypes: W
} = n, Y = S.prototype, j = w(Y, "cloneNode"), $ = w(Y, "nextSibling"), Z = w(Y, "childNodes"),
J = w(Y, "parentNode");
if ("function" == typeof _) {
const e = r.createElement("template");
e.content && e.content.ownerDocument && (r = e.content.ownerDocument)
}
let Q, ee = "";
const {
implementation: te,
createNodeIterator: ne,
createDocumentFragment: oe,
getElementsByTagName: re
} = r, {importNode: ie} = a;
let ae = {};
o.isSupported = "function" == typeof e && "function" == typeof J && te && void 0 !== te.createHTMLDocument;
const {
MUSTACHE_EXPR: le,
ERB_EXPR: ce,
TMPLIT_EXPR: se,
DATA_ATTR: ue,
ARIA_ATTR: me,
IS_SCRIPT_OR_DATA: fe,
ATTR_WHITESPACE: pe
} = X;
let {IS_ALLOWED_URI: de} = X, he = null;
const ge = N({}, [...D, ...L, ...v, ...k, ...O]);
let Te = null;
const ye = N({}, [...I, ...M, ...U, ...P]);
let Ee = Object.seal(l(null, {
tagNameCheck: {writable: !0, configurable: !1, enumerable: !0, value: null},
attributeNameCheck: {writable: !0, configurable: !1, enumerable: !0, value: null},
allowCustomizedBuiltInElements: {writable: !0, configurable: !1, enumerable: !0, value: !1}
})), Ae = null, _e = null, be = !0, Ne = !0, Se = !1, Re = !0, we = !1, De = !1, Le = !1, ve = !1, xe = !1,
ke = !1, Ce = !1, Oe = !0, Ie = !1;
const Me = "user-content-";
let Ue = !0, Pe = !1, Fe = {}, He = null;
const ze = N({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
let Be = null;
const We = N({}, ["audio", "video", "img", "source", "image", "track"]);
let Ge = null;
const Ye = N({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]),
je = "http://www.w3.org/1998/Math/MathML", qe = "http://www.w3.org/2000/svg",
Xe = "http://www.w3.org/1999/xhtml";
let Ke = Xe, Ve = !1, $e = null;
const Ze = N({}, [je, qe, Xe], d);
let Je = null;
const Qe = ["application/xhtml+xml", "text/html"], et = "text/html";
let tt = null, nt = null;
const ot = r.createElement("form"), rt = function (e) {
return e instanceof RegExp || e instanceof Function
}, it = function () {
let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
if (!nt || nt !== e) {
if (e && "object" == typeof e || (e = {}), e = R(e), Je = -1 === Qe.indexOf(e.PARSER_MEDIA_TYPE) ? et : e.PARSER_MEDIA_TYPE, tt = "application/xhtml+xml" === Je ? d : p, he = "ALLOWED_TAGS" in e ? N({}, e.ALLOWED_TAGS, tt) : ge, Te = "ALLOWED_ATTR" in e ? N({}, e.ALLOWED_ATTR, tt) : ye, $e = "ALLOWED_NAMESPACES" in e ? N({}, e.ALLOWED_NAMESPACES, d) : Ze, Ge = "ADD_URI_SAFE_ATTR" in e ? N(R(Ye), e.ADD_URI_SAFE_ATTR, tt) : Ye, Be = "ADD_DATA_URI_TAGS" in e ? N(R(We), e.ADD_DATA_URI_TAGS, tt) : We, He = "FORBID_CONTENTS" in e ? N({}, e.FORBID_CONTENTS, tt) : ze, Ae = "FORBID_TAGS" in e ? N({}, e.FORBID_TAGS, tt) : {}, _e = "FORBID_ATTR" in e ? N({}, e.FORBID_ATTR, tt) : {}, Fe = "USE_PROFILES" in e && e.USE_PROFILES, be = !1 !== e.ALLOW_ARIA_ATTR, Ne = !1 !== e.ALLOW_DATA_ATTR, Se = e.ALLOW_UNKNOWN_PROTOCOLS || !1, Re = !1 !== e.ALLOW_SELF_CLOSE_IN_ATTR, we = e.SAFE_FOR_TEMPLATES || !1, De = e.WHOLE_DOCUMENT || !1, xe = e.RETURN_DOM || !1, ke = e.RETURN_DOM_FRAGMENT || !1, Ce = e.RETURN_TRUSTED_TYPE || !1, ve = e.FORCE_BODY || !1, Oe = !1 !== e.SANITIZE_DOM, Ie = e.SANITIZE_NAMED_PROPS || !1, Ue = !1 !== e.KEEP_CONTENT, Pe = e.IN_PLACE || !1, de = e.ALLOWED_URI_REGEXP || G, Ke = e.NAMESPACE || Xe, Ee = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && rt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (Ee.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && rt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (Ee.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (Ee.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), we && (Ne = !1), ke && (xe = !0), Fe && (he = N({}, O), Te = [], !0 === Fe.html && (N(he, D), N(Te, I)), !0 === Fe.svg && (N(he, L), N(Te, M), N(Te, P)), !0 === Fe.svgFilters && (N(he, v), N(Te, M), N(Te, P)), !0 === Fe.mathMl && (N(he, k), N(Te, U), N(Te, P))), e.ADD_TAGS && (he === ge && (he = R(he)), N(he, e.ADD_TAGS, tt)), e.ADD_ATTR && (Te === ye && (Te = R(Te)), N(Te, e.ADD_ATTR, tt)), e.ADD_URI_SAFE_ATTR && N(Ge, e.ADD_URI_SAFE_ATTR, tt), e.FORBID_CONTENTS && (He === ze && (He = R(He)), N(He, e.FORBID_CONTENTS, tt)), Ue && (he["#text"] = !0), De && N(he, ["html", "head", "body"]), he.table && (N(he, ["tbody"]), delete Ae.tbody), e.TRUSTED_TYPES_POLICY) {
if ("function" != typeof e.TRUSTED_TYPES_POLICY.createHTML) throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
if ("function" != typeof e.TRUSTED_TYPES_POLICY.createScriptURL) throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
Q = e.TRUSTED_TYPES_POLICY, ee = Q.createHTML("")
} else void 0 === Q && (Q = V(W, c)), null !== Q && "string" == typeof ee && (ee = Q.createHTML(""));
i && i(e), nt = e
}
}, at = N({}, ["mi", "mo", "mn", "ms", "mtext"]),
lt = N({}, ["foreignobject", "desc", "title", "annotation-xml"]),
ct = N({}, ["title", "style", "font", "a", "script"]), st = N({}, [...L, ...v, ...x]),
ut = N({}, [...k, ...C]), mt = function (e) {
let t = J(e);
t && t.tagName || (t = {namespaceURI: Ke, tagName: "template"});
const n = p(e.tagName), o = p(t.tagName);
return !!$e[e.namespaceURI] && (e.namespaceURI === qe ? t.namespaceURI === Xe ? "svg" === n : t.namespaceURI === je ? "svg" === n && ("annotation-xml" === o || at[o]) : Boolean(st[n]) : e.namespaceURI === je ? t.namespaceURI === Xe ? "math" === n : t.namespaceURI === qe ? "math" === n && lt[o] : Boolean(ut[n]) : e.namespaceURI === Xe ? !(t.namespaceURI === qe && !lt[o]) && (!(t.namespaceURI === je && !at[o]) && (!ut[n] && (ct[n] || !st[n]))) : !("application/xhtml+xml" !== Je || !$e[e.namespaceURI]))
}, ft = function (e) {
f(o.removed, {element: e});
try {
e.parentNode.removeChild(e)
} catch (t) {
e.remove()
}
}, pt = function (e, t) {
try {
f(o.removed, {attribute: t.getAttributeNode(e), from: t})
} catch (e) {
f(o.removed, {attribute: null, from: t})
}
if (t.removeAttribute(e), "is" === e && !Te[e]) if (xe || ke) try {
ft(t)
} catch (e) {
} else try {
t.setAttribute(e, "")
} catch (e) {
}
}, dt = function (e) {
let t = null, n = null;
if (ve) e = "" + e; else {
const t = h(e, /^[\r\n\t ]+/);
n = t && t[0]
}
"application/xhtml+xml" === Je && Ke === Xe && (e = '
' + e + "");
const o = Q ? Q.createHTML(e) : e;
if (Ke === Xe) try {
t = (new B).parseFromString(o, Je)
} catch (e) {
}
if (!t || !t.documentElement) {
t = te.createDocument(Ke, "template", null);
try {
t.documentElement.innerHTML = Ve ? ee : o
} catch (e) {
}
}
const i = t.body || t.documentElement;
return e && n && i.insertBefore(r.createTextNode(n), i.childNodes[0] || null), Ke === Xe ? re.call(t, De ? "html" : "body")[0] : De ? t.documentElement : i
}, ht = function (e) {
return ne.call(e.ownerDocument || e, e, F.SHOW_ELEMENT | F.SHOW_COMMENT | F.SHOW_TEXT, null)
}, gt = function (e) {
return e instanceof z && ("string" != typeof e.nodeName || "string" != typeof e.textContent || "function" != typeof e.removeChild || !(e.attributes instanceof H) || "function" != typeof e.removeAttribute || "function" != typeof e.setAttribute || "string" != typeof e.namespaceURI || "function" != typeof e.insertBefore || "function" != typeof e.hasChildNodes)
}, Tt = function (e) {
return "function" == typeof b && e instanceof b
}, yt = function (e, t, n) {
ae[e] && u(ae[e], (e => {
e.call(o, t, n, nt)
}))
}, Et = function (e) {
let t = null;
if (yt("beforeSanitizeElements", e, null), gt(e)) return ft(e), !0;
const n = tt(e.nodeName);
if (yt("uponSanitizeElement", e, {
tagName: n,
allowedTags: he
}), e.hasChildNodes() && !Tt(e.firstElementChild) && E(/<[/\w]/g, e.innerHTML) && E(/<[/\w]/g, e.textContent)) return ft(e), !0;
if (!he[n] || Ae[n]) {
if (!Ae[n] && _t(n)) {
if (Ee.tagNameCheck instanceof RegExp && E(Ee.tagNameCheck, n)) return !1;
if (Ee.tagNameCheck instanceof Function && Ee.tagNameCheck(n)) return !1
}
if (Ue && !He[n]) {
const t = J(e) || e.parentNode, n = Z(e) || e.childNodes;
if (n && t) {
for (let o = n.length - 1; o >= 0; --o) t.insertBefore(j(n[o], !0), $(e))
}
}
return ft(e), !0
}
return e instanceof S && !mt(e) ? (ft(e), !0) : "noscript" !== n && "noembed" !== n && "noframes" !== n || !E(/<\/no(script|embed|frames)/i, e.innerHTML) ? (we && 3 === e.nodeType && (t = e.textContent, u([le, ce, se], (e => {
t = g(t, e, " ")
})), e.textContent !== t && (f(o.removed, {element: e.cloneNode()}), e.textContent = t)), yt("afterSanitizeElements", e, null), !1) : (ft(e), !0)
}, At = function (e, t, n) {
if (Oe && ("id" === t || "name" === t) && (n in r || n in ot)) return !1;
if (Ne && !_e[t] && E(ue, t)) ; else if (be && E(me, t)) ; else if (!Te[t] || _e[t]) {
if (!(_t(e) && (Ee.tagNameCheck instanceof RegExp && E(Ee.tagNameCheck, e) || Ee.tagNameCheck instanceof Function && Ee.tagNameCheck(e)) && (Ee.attributeNameCheck instanceof RegExp && E(Ee.attributeNameCheck, t) || Ee.attributeNameCheck instanceof Function && Ee.attributeNameCheck(t)) || "is" === t && Ee.allowCustomizedBuiltInElements && (Ee.tagNameCheck instanceof RegExp && E(Ee.tagNameCheck, n) || Ee.tagNameCheck instanceof Function && Ee.tagNameCheck(n)))) return !1
} else if (Ge[t]) ; else if (E(de, g(n, pe, ""))) ; else if ("src" !== t && "xlink:href" !== t && "href" !== t || "script" === e || 0 !== T(n, "data:") || !Be[e]) {
if (Se && !E(fe, g(n, pe, ""))) ; else if (n) return !1
} else ;
return !0
}, _t = function (e) {
return e.indexOf("-") > 0
}, bt = function (e) {
yt("beforeSanitizeAttributes", e, null);
const {attributes: t} = e;
if (!t) return;
const n = {attrName: "", attrValue: "", keepAttr: !0, allowedAttributes: Te};
let r = t.length;
for (; r--;) {
const i = t[r], {name: a, namespaceURI: l, value: c} = i, s = tt(a);
let f = "value" === a ? c : y(c);
if (n.attrName = s, n.attrValue = f, n.keepAttr = !0, n.forceKeepAttr = void 0, yt("uponSanitizeAttribute", e, n), f = n.attrValue, n.forceKeepAttr) continue;
if (pt(a, e), !n.keepAttr) continue;
if (!Re && E(/\/>/i, f)) {
pt(a, e);
continue
}
we && u([le, ce, se], (e => {
f = g(f, e, " ")
}));
const p = tt(e.nodeName);
if (At(p, s, f)) {
if (!Ie || "id" !== s && "name" !== s || (pt(a, e), f = Me + f), Q && "object" == typeof W && "function" == typeof W.getAttributeType) if (l) ; else switch (W.getAttributeType(p, s)) {
case"TrustedHTML":
f = Q.createHTML(f);
break;
case"TrustedScriptURL":
f = Q.createScriptURL(f)
}
try {
l ? e.setAttributeNS(l, a, f) : e.setAttribute(a, f), m(o.removed)
} catch (e) {
}
}
}
yt("afterSanitizeAttributes", e, null)
}, Nt = function e(t) {
let n = null;
const o = ht(t);
for (yt("beforeSanitizeShadowDOM", t, null); n = o.nextNode();) yt("uponSanitizeShadowNode", n, null), Et(n) || (n.content instanceof s && e(n.content), bt(n));
yt("afterSanitizeShadowDOM", t, null)
};
return o.sanitize = function (e) {
let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = null, r = null, i = null,
l = null;
if (Ve = !e, Ve && (e = "\x3c!--\x3e"), "string" != typeof e && !Tt(e)) {
if ("function" != typeof e.toString) throw A("toString is not a function");
if ("string" != typeof (e = e.toString())) throw A("dirty is not a string, aborting")
}
if (!o.isSupported) return e;
if (Le || it(t), o.removed = [], "string" == typeof e && (Pe = !1), Pe) {
if (e.nodeName) {
const t = tt(e.nodeName);
if (!he[t] || Ae[t]) throw A("root node is forbidden and cannot be sanitized in-place")
}
} else if (e instanceof b) n = dt("\x3c!----\x3e"), r = n.ownerDocument.importNode(e, !0), 1 === r.nodeType && "BODY" === r.nodeName || "HTML" === r.nodeName ? n = r : n.appendChild(r); else {
if (!xe && !we && !De && -1 === e.indexOf("<")) return Q && Ce ? Q.createHTML(e) : e;
if (n = dt(e), !n) return xe ? null : Ce ? ee : ""
}
n && ve && ft(n.firstChild);
const c = ht(Pe ? e : n);
for (; i = c.nextNode();) Et(i) || (i.content instanceof s && Nt(i.content), bt(i));
if (Pe) return e;
if (xe) {
if (ke) for (l = oe.call(n.ownerDocument); n.firstChild;) l.appendChild(n.firstChild); else l = n;
return (Te.shadowroot || Te.shadowrootmode) && (l = ie.call(a, l, !0)), l
}
let m = De ? n.outerHTML : n.innerHTML;
return De && he["!doctype"] && n.ownerDocument && n.ownerDocument.doctype && n.ownerDocument.doctype.name && E(q, n.ownerDocument.doctype.name) && (m = "\n" + m), we && u([le, ce, se], (e => {
m = g(m, e, " ")
})), Q && Ce ? Q.createHTML(m) : m
}, o.setConfig = function () {
let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
it(e), Le = !0
}, o.clearConfig = function () {
nt = null, Le = !1
}, o.isValidAttribute = function (e, t, n) {
nt || it({});
const o = tt(e), r = tt(t);
return At(o, r, n)
}, o.addHook = function (e, t) {
"function" == typeof t && (ae[e] = ae[e] || [], f(ae[e], t))
}, o.removeHook = function (e) {
if (ae[e]) return m(ae[e])
}, o.removeHooks = function (e) {
ae[e] && (ae[e] = [])
}, o.removeAllHooks = function () {
ae = {}
}, o
}();
return $
}));
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
var CryptoJS = CryptoJS || function (u, p) {
var d = {}, l = d.lib = {}, s = function () {
}, t = l.Base = {
extend: function (a) {
s.prototype = this;
var c = new s;
a && c.mixIn(a);
c.hasOwnProperty("init") || (c.init = function () {
c.$super.init.apply(this, arguments)
});
c.init.prototype = c;
c.$super = this;
return c
}, create: function () {
var a = this.extend();
a.init.apply(a, arguments);
return a
}, init: function () {
}, mixIn: function (a) {
for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);
a.hasOwnProperty("toString") && (this.toString = a.toString)
}, clone: function () {
return this.init.prototype.extend(this)
}
},
r = l.WordArray = t.extend({
init: function (a, c) {
a = this.words = a || [];
this.sigBytes = c != p ? c : 4 * a.length
}, toString: function (a) {
return (a || v).stringify(this)
}, concat: function (a) {
var c = this.words, e = a.words, j = this.sigBytes;
a = a.sigBytes;
this.clamp();
if (j % 4) for (var k = 0; k < a; k++) c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4); else if (65535 < e.length) for (k = 0; k < a; k += 4) c[j + k >>> 2] = e[k >>> 2]; else c.push.apply(c, e);
this.sigBytes += a;
return this
}, clamp: function () {
var a = this.words, c = this.sigBytes;
a[c >>> 2] &= 4294967295 <<
32 - 8 * (c % 4);
a.length = u.ceil(c / 4)
}, clone: function () {
var a = t.clone.call(this);
a.words = this.words.slice(0);
return a
}, random: function (a) {
for (var c = [], e = 0; e < a; e += 4) c.push(4294967296 * u.random() | 0);
return new r.init(c, a)
}
}), w = d.enc = {}, v = w.Hex = {
stringify: function (a) {
var c = a.words;
a = a.sigBytes;
for (var e = [], j = 0; j < a; j++) {
var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255;
e.push((k >>> 4).toString(16));
e.push((k & 15).toString(16))
}
return e.join("")
}, parse: function (a) {
for (var c = a.length, e = [], j = 0; j < c; j += 2) e[j >>> 3] |= parseInt(a.substr(j,
2), 16) << 24 - 4 * (j % 8);
return new r.init(e, c / 2)
}
}, b = w.Latin1 = {
stringify: function (a) {
var c = a.words;
a = a.sigBytes;
for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255));
return e.join("")
}, parse: function (a) {
for (var c = a.length, e = [], j = 0; j < c; j++) e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4);
return new r.init(e, c)
}
}, x = w.Utf8 = {
stringify: function (a) {
try {
return decodeURIComponent(escape(b.stringify(a)))
} catch (c) {
throw Error("Malformed UTF-8 data");
}
}, parse: function (a) {
return b.parse(unescape(encodeURIComponent(a)))
}
},
q = l.BufferedBlockAlgorithm = t.extend({
reset: function () {
this._data = new r.init;
this._nDataBytes = 0
}, _append: function (a) {
"string" == typeof a && (a = x.parse(a));
this._data.concat(a);
this._nDataBytes += a.sigBytes
}, _process: function (a) {
var c = this._data, e = c.words, j = c.sigBytes, k = this.blockSize, b = j / (4 * k),
b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0);
a = b * k;
j = u.min(4 * a, j);
if (a) {
for (var q = 0; q < a; q += k) this._doProcessBlock(e, q);
q = e.splice(0, a);
c.sigBytes -= j
}
return new r.init(q, j)
}, clone: function () {
var a = t.clone.call(this);
a._data = this._data.clone();
return a
}, _minBufferSize: 0
});
l.Hasher = q.extend({
cfg: t.extend(), init: function (a) {
this.cfg = this.cfg.extend(a);
this.reset()
}, reset: function () {
q.reset.call(this);
this._doReset()
}, update: function (a) {
this._append(a);
this._process();
return this
}, finalize: function (a) {
a && this._append(a);
return this._doFinalize()
}, blockSize: 16, _createHelper: function (a) {
return function (b, e) {
return (new a.init(e)).finalize(b)
}
}, _createHmacHelper: function (a) {
return function (b, e) {
return (new n.HMAC.init(a,
e)).finalize(b)
}
}
});
var n = d.algo = {};
return d
}(Math);
(function () {
var u = CryptoJS, p = u.lib.WordArray;
u.enc.Base64 = {
stringify: function (d) {
var l = d.words, p = d.sigBytes, t = this._map;
d.clamp();
d = [];
for (var r = 0; r < p; r += 3) for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) d.push(t.charAt(w >>> 6 * (3 - v) & 63));
if (l = t.charAt(64)) for (; d.length % 4;) d.push(l);
return d.join("")
}, parse: function (d) {
var l = d.length, s = this._map, t = s.charAt(64);
t && (t = d.indexOf(t), -1 != t && (l = t));
for (var t = [], r = 0, w = 0; w <
l; w++) if (w % 4) {
var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4);
t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4);
r++
}
return p.create(t, r)
}, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}
})();
(function (u) {
function p(b, n, a, c, e, j, k) {
b = b + (n & a | ~n & c) + e + k;
return (b << j | b >>> 32 - j) + n
}
function d(b, n, a, c, e, j, k) {
b = b + (n & c | a & ~c) + e + k;
return (b << j | b >>> 32 - j) + n
}
function l(b, n, a, c, e, j, k) {
b = b + (n ^ a ^ c) + e + k;
return (b << j | b >>> 32 - j) + n
}
function s(b, n, a, c, e, j, k) {
b = b + (a ^ (n | ~c)) + e + k;
return (b << j | b >>> 32 - j) + n
}
for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0;
r = r.MD5 = v.extend({
_doReset: function () {
this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878])
},
_doProcessBlock: function (q, n) {
for (var a = 0; 16 > a; a++) {
var c = n + a, e = q[c];
q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360
}
var a = this._hash.words, c = q[n + 0], e = q[n + 1], j = q[n + 2], k = q[n + 3], z = q[n + 4],
r = q[n + 5], t = q[n + 6], w = q[n + 7], v = q[n + 8], A = q[n + 9], B = q[n + 10], C = q[n + 11],
u = q[n + 12], D = q[n + 13], E = q[n + 14], x = q[n + 15], f = a[0], m = a[1], g = a[2], h = a[3],
f = p(f, m, g, h, c, 7, b[0]), h = p(h, f, m, g, e, 12, b[1]), g = p(g, h, f, m, j, 17, b[2]),
m = p(m, g, h, f, k, 22, b[3]), f = p(f, m, g, h, z, 7, b[4]), h = p(h, f, m, g, r, 12, b[5]),
g = p(g, h, f, m, t, 17, b[6]), m = p(m, g, h, f, w, 22, b[7]),
f = p(f, m, g, h, v, 7, b[8]), h = p(h, f, m, g, A, 12, b[9]), g = p(g, h, f, m, B, 17, b[10]),
m = p(m, g, h, f, C, 22, b[11]), f = p(f, m, g, h, u, 7, b[12]), h = p(h, f, m, g, D, 12, b[13]),
g = p(g, h, f, m, E, 17, b[14]), m = p(m, g, h, f, x, 22, b[15]), f = d(f, m, g, h, e, 5, b[16]),
h = d(h, f, m, g, t, 9, b[17]), g = d(g, h, f, m, C, 14, b[18]), m = d(m, g, h, f, c, 20, b[19]),
f = d(f, m, g, h, r, 5, b[20]), h = d(h, f, m, g, B, 9, b[21]), g = d(g, h, f, m, x, 14, b[22]),
m = d(m, g, h, f, z, 20, b[23]), f = d(f, m, g, h, A, 5, b[24]), h = d(h, f, m, g, E, 9, b[25]),
g = d(g, h, f, m, k, 14, b[26]), m = d(m, g, h, f, v, 20, b[27]), f = d(f, m, g, h, D, 5, b[28]),
h = d(h, f,
m, g, j, 9, b[29]), g = d(g, h, f, m, w, 14, b[30]), m = d(m, g, h, f, u, 20, b[31]),
f = l(f, m, g, h, r, 4, b[32]), h = l(h, f, m, g, v, 11, b[33]), g = l(g, h, f, m, C, 16, b[34]),
m = l(m, g, h, f, E, 23, b[35]), f = l(f, m, g, h, e, 4, b[36]), h = l(h, f, m, g, z, 11, b[37]),
g = l(g, h, f, m, w, 16, b[38]), m = l(m, g, h, f, B, 23, b[39]), f = l(f, m, g, h, D, 4, b[40]),
h = l(h, f, m, g, c, 11, b[41]), g = l(g, h, f, m, k, 16, b[42]), m = l(m, g, h, f, t, 23, b[43]),
f = l(f, m, g, h, A, 4, b[44]), h = l(h, f, m, g, u, 11, b[45]), g = l(g, h, f, m, x, 16, b[46]),
m = l(m, g, h, f, j, 23, b[47]), f = s(f, m, g, h, c, 6, b[48]), h = s(h, f, m, g, w, 10, b[49]),
g = s(g, h, f, m,
E, 15, b[50]), m = s(m, g, h, f, r, 21, b[51]), f = s(f, m, g, h, u, 6, b[52]),
h = s(h, f, m, g, k, 10, b[53]), g = s(g, h, f, m, B, 15, b[54]), m = s(m, g, h, f, e, 21, b[55]),
f = s(f, m, g, h, v, 6, b[56]), h = s(h, f, m, g, x, 10, b[57]), g = s(g, h, f, m, t, 15, b[58]),
m = s(m, g, h, f, D, 21, b[59]), f = s(f, m, g, h, z, 6, b[60]), h = s(h, f, m, g, C, 10, b[61]),
g = s(g, h, f, m, j, 15, b[62]), m = s(m, g, h, f, A, 21, b[63]);
a[0] = a[0] + f | 0;
a[1] = a[1] + m | 0;
a[2] = a[2] + g | 0;
a[3] = a[3] + h | 0
}, _doFinalize: function () {
var b = this._data, n = b.words, a = 8 * this._nDataBytes, c = 8 * b.sigBytes;
n[c >>> 5] |= 128 << 24 - c % 32;
var e = u.floor(a /
4294967296);
n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360;
n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360;
b.sigBytes = 4 * (n.length + 1);
this._process();
b = this._hash;
n = b.words;
for (a = 0; 4 > a; a++) c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360;
return b
}, clone: function () {
var b = v.clone.call(this);
b._hash = this._hash.clone();
return b
}
});
t.MD5 = v._createHelper(r);
t.HmacMD5 = v._createHmacHelper(r)
})(Math);
(function () {
var u = CryptoJS, p = u.lib, d = p.Base, l = p.WordArray, p = u.algo, s = p.EvpKDF = d.extend({
cfg: d.extend({keySize: 4, hasher: p.MD5, iterations: 1}), init: function (d) {
this.cfg = this.cfg.extend(d)
}, compute: function (d, r) {
for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) {
n && s.update(n);
var n = s.update(d).finalize(r);
s.reset();
for (var a = 1; a < p; a++) n = s.finalize(n), s.reset();
b.concat(n)
}
b.sigBytes = 4 * q;
return b
}
});
u.EvpKDF = function (d, l, p) {
return s.create(p).compute(d,
l)
}
})();
CryptoJS.lib.Cipher || function (u) {
var p = CryptoJS, d = p.lib, l = d.Base, s = d.WordArray, t = d.BufferedBlockAlgorithm, r = p.enc.Base64,
w = p.algo.EvpKDF, v = d.Cipher = t.extend({
cfg: l.extend(), createEncryptor: function (e, a) {
return this.create(this._ENC_XFORM_MODE, e, a)
}, createDecryptor: function (e, a) {
return this.create(this._DEC_XFORM_MODE, e, a)
}, init: function (e, a, b) {
this.cfg = this.cfg.extend(b);
this._xformMode = e;
this._key = a;
this.reset()
}, reset: function () {
t.reset.call(this);
this._doReset()
}, process: function (e) {
this._append(e);
return this._process()
},
finalize: function (e) {
e && this._append(e);
return this._doFinalize()
}, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (e) {
return {
encrypt: function (b, k, d) {
return ("string" == typeof k ? c : a).encrypt(e, b, k, d)
}, decrypt: function (b, k, d) {
return ("string" == typeof k ? c : a).decrypt(e, b, k, d)
}
}
}
});
d.StreamCipher = v.extend({
_doFinalize: function () {
return this._process(!0)
}, blockSize: 1
});
var b = p.mode = {}, x = function (e, a, b) {
var c = this._iv;
c ? this._iv = u : c = this._prevBlock;
for (var d = 0; d < b; d++) e[a + d] ^=
c[d]
}, q = (d.BlockCipherMode = l.extend({
createEncryptor: function (e, a) {
return this.Encryptor.create(e, a)
}, createDecryptor: function (e, a) {
return this.Decryptor.create(e, a)
}, init: function (e, a) {
this._cipher = e;
this._iv = a
}
})).extend();
q.Encryptor = q.extend({
processBlock: function (e, a) {
var b = this._cipher, c = b.blockSize;
x.call(this, e, a, c);
b.encryptBlock(e, a);
this._prevBlock = e.slice(a, a + c)
}
});
q.Decryptor = q.extend({
processBlock: function (e, a) {
var b = this._cipher, c = b.blockSize, d = e.slice(a, a + c);
b.decryptBlock(e, a);
x.call(this,
e, a, c);
this._prevBlock = d
}
});
b = b.CBC = q;
q = (p.pad = {}).Pkcs7 = {
pad: function (a, b) {
for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) l.push(d);
c = s.create(l, c);
a.concat(c)
}, unpad: function (a) {
a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255
}
};
d.BlockCipher = v.extend({
cfg: v.cfg.extend({mode: b, padding: q}), reset: function () {
v.reset.call(this);
var a = this.cfg, b = a.iv, a = a.mode;
if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor; else c = a.createDecryptor, this._minBufferSize = 1;
this._mode = c.call(a,
this, b && b.words)
}, _doProcessBlock: function (a, b) {
this._mode.processBlock(a, b)
}, _doFinalize: function () {
var a = this.cfg.padding;
if (this._xformMode == this._ENC_XFORM_MODE) {
a.pad(this._data, this.blockSize);
var b = this._process(!0)
} else b = this._process(!0), a.unpad(b);
return b
}, blockSize: 4
});
var n = d.CipherParams = l.extend({
init: function (a) {
this.mixIn(a)
}, toString: function (a) {
return (a || this.formatter).stringify(this)
}
}), b = (p.format = {}).OpenSSL = {
stringify: function (a) {
var b = a.ciphertext;
a = a.salt;
return (a ? s.create([1398893684,
1701076831]).concat(a).concat(b) : b).toString(r)
}, parse: function (a) {
a = r.parse(a);
var b = a.words;
if (1398893684 == b[0] && 1701076831 == b[1]) {
var c = s.create(b.slice(2, 4));
b.splice(0, 4);
a.sigBytes -= 16
}
return n.create({ciphertext: a, salt: c})
}
}, a = d.SerializableCipher = l.extend({
cfg: l.extend({format: b}), encrypt: function (a, b, c, d) {
d = this.cfg.extend(d);
var l = a.createEncryptor(c, d);
b = l.finalize(b);
l = l.cfg;
return n.create({
ciphertext: b,
key: c,
iv: l.iv,
algorithm: a,
mode: l.mode,
padding: l.padding,
blockSize: a.blockSize,
formatter: d.format
})
},
decrypt: function (a, b, c, d) {
d = this.cfg.extend(d);
b = this._parse(b, d.format);
return a.createDecryptor(c, d).finalize(b.ciphertext)
}, _parse: function (a, b) {
return "string" == typeof a ? b.parse(a, this) : a
}
}), p = (p.kdf = {}).OpenSSL = {
execute: function (a, b, c, d) {
d || (d = s.random(8));
a = w.create({keySize: b + c}).compute(a, d);
c = s.create(a.words.slice(b), 4 * c);
a.sigBytes = 4 * b;
return n.create({key: a, iv: c, salt: d})
}
}, c = d.PasswordBasedCipher = a.extend({
cfg: a.cfg.extend({kdf: p}), encrypt: function (b, c, d, l) {
l = this.cfg.extend(l);
d = l.kdf.execute(d,
b.keySize, b.ivSize);
l.iv = d.iv;
b = a.encrypt.call(this, b, c, d.key, l);
b.mixIn(d);
return b
}, decrypt: function (b, c, d, l) {
l = this.cfg.extend(l);
c = this._parse(c, l.format);
d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt);
l.iv = d.iv;
return a.decrypt.call(this, b, c, d.key, l)
}
})
}();
(function () {
for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) a[c] = 128 > c ? c << 1 : c << 1 ^ 283;
for (var e = 0, j = 0, c = 0; 256 > c; c++) {
var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, k = k >>> 8 ^ k & 255 ^ 99;
l[e] = k;
s[k] = e;
var z = a[e], F = a[z], G = a[F], y = 257 * a[k] ^ 16843008 * k;
t[e] = y << 24 | y >>> 8;
r[e] = y << 16 | y >>> 16;
w[e] = y << 8 | y >>> 24;
v[e] = y;
y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e;
b[k] = y << 24 | y >>> 8;
x[k] = y << 16 | y >>> 16;
q[k] = y << 8 | y >>> 24;
n[k] = y;
e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1
}
var H = [0, 1, 2, 4, 8,
16, 32, 64, 128, 27, 54], d = d.AES = p.extend({
_doReset: function () {
for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) if (j < d) e[j] = c[j]; else {
var k = e[j - 1];
j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24);
e[j] = e[j - d] ^ k
}
c = this._invKeySchedule = [];
for (d = 0; d < a; d++) j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>>
8 & 255]] ^ n[l[k & 255]]
}, encryptBlock: function (a, b) {
this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l)
}, decryptBlock: function (a, c) {
var d = a[c + 1];
a[c + 1] = a[c + 3];
a[c + 3] = d;
this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s);
d = a[c + 1];
a[c + 1] = a[c + 3];
a[c + 3] = d
}, _doCryptBlock: function (a, b, c, d, e, j, l, f) {
for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], t =
d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], g = q, h = s, k = t;
q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++];
s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++];
t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++];
n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++];
a[b] = q;
a[b + 1] = s;
a[b + 2] = t;
a[b + 3] = n
}, keySize: 8
});
u.AES = p._createHelper(d)
})();
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
!function (t, e) {
"object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).pako = {})
}(this, (function (t) {
"use strict";
function e(t) {
for (var e = t.length; --e >= 0;) t[e] = 0
}
var a = 256, n = 286, i = 30, r = 15,
s = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]),
o = new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]),
l = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]),
h = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), d = new Array(576);
e(d);
var _ = new Array(60);
e(_);
var f = new Array(512);
e(f);
var u = new Array(256);
e(u);
var c = new Array(29);
e(c);
var w, m, b, g = new Array(i);
function p(t, e, a, n, i) {
this.static_tree = t, this.extra_bits = e, this.extra_base = a, this.elems = n, this.max_length = i, this.has_stree = t && t.length
}
function v(t, e) {
this.dyn_tree = t, this.max_code = 0, this.stat_desc = e
}
e(g);
var k = function (t) {
return t < 256 ? f[t] : f[256 + (t >>> 7)]
}, y = function (t, e) {
t.pending_buf[t.pending++] = 255 & e, t.pending_buf[t.pending++] = e >>> 8 & 255
}, x = function (t, e, a) {
t.bi_valid > 16 - a ? (t.bi_buf |= e << t.bi_valid & 65535, y(t, t.bi_buf), t.bi_buf = e >> 16 - t.bi_valid, t.bi_valid += a - 16) : (t.bi_buf |= e << t.bi_valid & 65535, t.bi_valid += a)
}, z = function (t, e, a) {
x(t, a[2 * e], a[2 * e + 1])
}, A = function (t, e) {
var a = 0;
do {
a |= 1 & t, t >>>= 1, a <<= 1
} while (--e > 0);
return a >>> 1
}, E = function (t, e, a) {
var n, i, s = new Array(16), o = 0;
for (n = 1; n <= r; n++) o = o + a[n - 1] << 1, s[n] = o;
for (i = 0; i <= e; i++) {
var l = t[2 * i + 1];
0 !== l && (t[2 * i] = A(s[l]++, l))
}
}, R = function (t) {
var e;
for (e = 0; e < n; e++) t.dyn_ltree[2 * e] = 0;
for (e = 0; e < i; e++) t.dyn_dtree[2 * e] = 0;
for (e = 0; e < 19; e++) t.bl_tree[2 * e] = 0;
t.dyn_ltree[512] = 1, t.opt_len = t.static_len = 0, t.sym_next = t.matches = 0
}, Z = function (t) {
t.bi_valid > 8 ? y(t, t.bi_buf) : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0
}, S = function (t, e, a, n) {
var i = 2 * e, r = 2 * a;
return t[i] < t[r] || t[i] === t[r] && n[e] <= n[a]
}, U = function (t, e, a) {
for (var n = t.heap[a], i = a << 1; i <= t.heap_len && (i < t.heap_len && S(e, t.heap[i + 1], t.heap[i], t.depth) && i++, !S(e, n, t.heap[i], t.depth));) t.heap[a] = t.heap[i], a = i, i <<= 1;
t.heap[a] = n
}, D = function (t, e, n) {
var i, r, l, h, d = 0;
if (0 !== t.sym_next) do {
i = 255 & t.pending_buf[t.sym_buf + d++], i += (255 & t.pending_buf[t.sym_buf + d++]) << 8, r = t.pending_buf[t.sym_buf + d++], 0 === i ? z(t, r, e) : (l = u[r], z(t, l + a + 1, e), 0 !== (h = s[l]) && (r -= c[l], x(t, r, h)), i--, l = k(i), z(t, l, n), 0 !== (h = o[l]) && (i -= g[l], x(t, i, h)))
} while (d < t.sym_next);
z(t, 256, e)
}, T = function (t, e) {
var a, n, i, s = e.dyn_tree, o = e.stat_desc.static_tree, l = e.stat_desc.has_stree, h = e.stat_desc.elems,
d = -1;
for (t.heap_len = 0, t.heap_max = 573, a = 0; a < h; a++) 0 !== s[2 * a] ? (t.heap[++t.heap_len] = d = a, t.depth[a] = 0) : s[2 * a + 1] = 0;
for (; t.heap_len < 2;) s[2 * (i = t.heap[++t.heap_len] = d < 2 ? ++d : 0)] = 1, t.depth[i] = 0, t.opt_len--, l && (t.static_len -= o[2 * i + 1]);
for (e.max_code = d, a = t.heap_len >> 1; a >= 1; a--) U(t, s, a);
i = h;
do {
a = t.heap[1], t.heap[1] = t.heap[t.heap_len--], U(t, s, 1), n = t.heap[1], t.heap[--t.heap_max] = a, t.heap[--t.heap_max] = n, s[2 * i] = s[2 * a] + s[2 * n], t.depth[i] = (t.depth[a] >= t.depth[n] ? t.depth[a] : t.depth[n]) + 1, s[2 * a + 1] = s[2 * n + 1] = i, t.heap[1] = i++, U(t, s, 1)
} while (t.heap_len >= 2);
t.heap[--t.heap_max] = t.heap[1], function (t, e) {
var a, n, i, s, o, l, h = e.dyn_tree, d = e.max_code, _ = e.stat_desc.static_tree,
f = e.stat_desc.has_stree, u = e.stat_desc.extra_bits, c = e.stat_desc.extra_base,
w = e.stat_desc.max_length, m = 0;
for (s = 0; s <= r; s++) t.bl_count[s] = 0;
for (h[2 * t.heap[t.heap_max] + 1] = 0, a = t.heap_max + 1; a < 573; a++) (s = h[2 * h[2 * (n = t.heap[a]) + 1] + 1] + 1) > w && (s = w, m++), h[2 * n + 1] = s, n > d || (t.bl_count[s]++, o = 0, n >= c && (o = u[n - c]), l = h[2 * n], t.opt_len += l * (s + o), f && (t.static_len += l * (_[2 * n + 1] + o)));
if (0 !== m) {
do {
for (s = w - 1; 0 === t.bl_count[s];) s--;
t.bl_count[s]--, t.bl_count[s + 1] += 2, t.bl_count[w]--, m -= 2
} while (m > 0);
for (s = w; 0 !== s; s--) for (n = t.bl_count[s]; 0 !== n;) (i = t.heap[--a]) > d || (h[2 * i + 1] !== s && (t.opt_len += (s - h[2 * i + 1]) * h[2 * i], h[2 * i + 1] = s), n--)
}
}(t, e), E(s, d, t.bl_count)
}, O = function (t, e, a) {
var n, i, r = -1, s = e[1], o = 0, l = 7, h = 4;
for (0 === s && (l = 138, h = 3), e[2 * (a + 1) + 1] = 65535, n = 0; n <= a; n++) i = s, s = e[2 * (n + 1) + 1], ++o < l && i === s || (o < h ? t.bl_tree[2 * i] += o : 0 !== i ? (i !== r && t.bl_tree[2 * i]++, t.bl_tree[32]++) : o <= 10 ? t.bl_tree[34]++ : t.bl_tree[36]++, o = 0, r = i, 0 === s ? (l = 138, h = 3) : i === s ? (l = 6, h = 3) : (l = 7, h = 4))
}, I = function (t, e, a) {
var n, i, r = -1, s = e[1], o = 0, l = 7, h = 4;
for (0 === s && (l = 138, h = 3), n = 0; n <= a; n++) if (i = s, s = e[2 * (n + 1) + 1], !(++o < l && i === s)) {
if (o < h) do {
z(t, i, t.bl_tree)
} while (0 != --o); else 0 !== i ? (i !== r && (z(t, i, t.bl_tree), o--), z(t, 16, t.bl_tree), x(t, o - 3, 2)) : o <= 10 ? (z(t, 17, t.bl_tree), x(t, o - 3, 3)) : (z(t, 18, t.bl_tree), x(t, o - 11, 7));
o = 0, r = i, 0 === s ? (l = 138, h = 3) : i === s ? (l = 6, h = 3) : (l = 7, h = 4)
}
}, F = !1, L = function (t, e, a, n) {
x(t, 0 + (n ? 1 : 0), 3), Z(t), y(t, a), y(t, ~a), a && t.pending_buf.set(t.window.subarray(e, e + a), t.pending), t.pending += a
}, N = function (t, e, n, i) {
var r, s, o = 0;
t.level > 0 ? (2 === t.strm.data_type && (t.strm.data_type = function (t) {
var e, n = 4093624447;
for (e = 0; e <= 31; e++, n >>>= 1) if (1 & n && 0 !== t.dyn_ltree[2 * e]) return 0;
if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) return 1;
for (e = 32; e < a; e++) if (0 !== t.dyn_ltree[2 * e]) return 1;
return 0
}(t)), T(t, t.l_desc), T(t, t.d_desc), o = function (t) {
var e;
for (O(t, t.dyn_ltree, t.l_desc.max_code), O(t, t.dyn_dtree, t.d_desc.max_code), T(t, t.bl_desc), e = 18; e >= 3 && 0 === t.bl_tree[2 * h[e] + 1]; e--) ;
return t.opt_len += 3 * (e + 1) + 5 + 5 + 4, e
}(t), r = t.opt_len + 3 + 7 >>> 3, (s = t.static_len + 3 + 7 >>> 3) <= r && (r = s)) : r = s = n + 5, n + 4 <= r && -1 !== e ? L(t, e, n, i) : 4 === t.strategy || s === r ? (x(t, 2 + (i ? 1 : 0), 3), D(t, d, _)) : (x(t, 4 + (i ? 1 : 0), 3), function (t, e, a, n) {
var i;
for (x(t, e - 257, 5), x(t, a - 1, 5), x(t, n - 4, 4), i = 0; i < n; i++) x(t, t.bl_tree[2 * h[i] + 1], 3);
I(t, t.dyn_ltree, e - 1), I(t, t.dyn_dtree, a - 1)
}(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, o + 1), D(t, t.dyn_ltree, t.dyn_dtree)), R(t), i && Z(t)
}, B = {
_tr_init: function (t) {
F || (!function () {
var t, e, a, h, v, k = new Array(16);
for (a = 0, h = 0; h < 28; h++) for (c[h] = a, t = 0; t < 1 << s[h]; t++) u[a++] = h;
for (u[a - 1] = h, v = 0, h = 0; h < 16; h++) for (g[h] = v, t = 0; t < 1 << o[h]; t++) f[v++] = h;
for (v >>= 7; h < i; h++) for (g[h] = v << 7, t = 0; t < 1 << o[h] - 7; t++) f[256 + v++] = h;
for (e = 0; e <= r; e++) k[e] = 0;
for (t = 0; t <= 143;) d[2 * t + 1] = 8, t++, k[8]++;
for (; t <= 255;) d[2 * t + 1] = 9, t++, k[9]++;
for (; t <= 279;) d[2 * t + 1] = 7, t++, k[7]++;
for (; t <= 287;) d[2 * t + 1] = 8, t++, k[8]++;
for (E(d, 287, k), t = 0; t < i; t++) _[2 * t + 1] = 5, _[2 * t] = A(t, 5);
w = new p(d, s, 257, n, r), m = new p(_, o, 0, i, r), b = new p(new Array(0), l, 0, 19, 7)
}(), F = !0), t.l_desc = new v(t.dyn_ltree, w), t.d_desc = new v(t.dyn_dtree, m), t.bl_desc = new v(t.bl_tree, b), t.bi_buf = 0, t.bi_valid = 0, R(t)
}, _tr_stored_block: L, _tr_flush_block: N, _tr_tally: function (t, e, n) {
return t.pending_buf[t.sym_buf + t.sym_next++] = e, t.pending_buf[t.sym_buf + t.sym_next++] = e >> 8, t.pending_buf[t.sym_buf + t.sym_next++] = n, 0 === e ? t.dyn_ltree[2 * n]++ : (t.matches++, e--, t.dyn_ltree[2 * (u[n] + a + 1)]++, t.dyn_dtree[2 * k(e)]++), t.sym_next === t.sym_end
}, _tr_align: function (t) {
x(t, 2, 3), z(t, 256, d), function (t) {
16 === t.bi_valid ? (y(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : t.bi_valid >= 8 && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8)
}(t)
}
}, C = function (t, e, a, n) {
for (var i = 65535 & t | 0, r = t >>> 16 & 65535 | 0, s = 0; 0 !== a;) {
a -= s = a > 2e3 ? 2e3 : a;
do {
r = r + (i = i + e[n++] | 0) | 0
} while (--s);
i %= 65521, r %= 65521
}
return i | r << 16 | 0
}, M = new Uint32Array(function () {
for (var t, e = [], a = 0; a < 256; a++) {
t = a;
for (var n = 0; n < 8; n++) t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1;
e[a] = t
}
return e
}()), H = function (t, e, a, n) {
var i = M, r = n + a;
t ^= -1;
for (var s = n; s < r; s++) t = t >>> 8 ^ i[255 & (t ^ e[s])];
return -1 ^ t
}, j = {
2: "need dictionary",
1: "stream end",
0: "",
"-1": "file error",
"-2": "stream error",
"-3": "data error",
"-4": "insufficient memory",
"-5": "buffer error",
"-6": "incompatible version"
}, K = {
Z_NO_FLUSH: 0,
Z_PARTIAL_FLUSH: 1,
Z_SYNC_FLUSH: 2,
Z_FULL_FLUSH: 3,
Z_FINISH: 4,
Z_BLOCK: 5,
Z_TREES: 6,
Z_OK: 0,
Z_STREAM_END: 1,
Z_NEED_DICT: 2,
Z_ERRNO: -1,
Z_STREAM_ERROR: -2,
Z_DATA_ERROR: -3,
Z_MEM_ERROR: -4,
Z_BUF_ERROR: -5,
Z_NO_COMPRESSION: 0,
Z_BEST_SPEED: 1,
Z_BEST_COMPRESSION: 9,
Z_DEFAULT_COMPRESSION: -1,
Z_FILTERED: 1,
Z_HUFFMAN_ONLY: 2,
Z_RLE: 3,
Z_FIXED: 4,
Z_DEFAULT_STRATEGY: 0,
Z_BINARY: 0,
Z_TEXT: 1,
Z_UNKNOWN: 2,
Z_DEFLATED: 8
}, P = B._tr_init, Y = B._tr_stored_block, G = B._tr_flush_block, X = B._tr_tally, W = B._tr_align,
q = K.Z_NO_FLUSH, J = K.Z_PARTIAL_FLUSH, Q = K.Z_FULL_FLUSH, V = K.Z_FINISH, $ = K.Z_BLOCK, tt = K.Z_OK,
et = K.Z_STREAM_END, at = K.Z_STREAM_ERROR, nt = K.Z_DATA_ERROR, it = K.Z_BUF_ERROR,
rt = K.Z_DEFAULT_COMPRESSION, st = K.Z_FILTERED, ot = K.Z_HUFFMAN_ONLY, lt = K.Z_RLE, ht = K.Z_FIXED,
dt = K.Z_DEFAULT_STRATEGY, _t = K.Z_UNKNOWN, ft = K.Z_DEFLATED, ut = 258, ct = 262, wt = 42, mt = 113, bt = 666,
gt = function (t, e) {
return t.msg = j[e], e
}, pt = function (t) {
return 2 * t - (t > 4 ? 9 : 0)
}, vt = function (t) {
for (var e = t.length; --e >= 0;) t[e] = 0
}, kt = function (t) {
var e, a, n, i = t.w_size;
n = e = t.hash_size;
do {
a = t.head[--n], t.head[n] = a >= i ? a - i : 0
} while (--e);
n = e = i;
do {
a = t.prev[--n], t.prev[n] = a >= i ? a - i : 0
} while (--e)
}, yt = function (t, e, a) {
return (e << t.hash_shift ^ a) & t.hash_mask
}, xt = function (t) {
var e = t.state, a = e.pending;
a > t.avail_out && (a = t.avail_out), 0 !== a && (t.output.set(e.pending_buf.subarray(e.pending_out, e.pending_out + a), t.next_out), t.next_out += a, e.pending_out += a, t.total_out += a, t.avail_out -= a, e.pending -= a, 0 === e.pending && (e.pending_out = 0))
}, zt = function (t, e) {
G(t, t.block_start >= 0 ? t.block_start : -1, t.strstart - t.block_start, e), t.block_start = t.strstart, xt(t.strm)
}, At = function (t, e) {
t.pending_buf[t.pending++] = e
}, Et = function (t, e) {
t.pending_buf[t.pending++] = e >>> 8 & 255, t.pending_buf[t.pending++] = 255 & e
}, Rt = function (t, e, a, n) {
var i = t.avail_in;
return i > n && (i = n), 0 === i ? 0 : (t.avail_in -= i, e.set(t.input.subarray(t.next_in, t.next_in + i), a), 1 === t.state.wrap ? t.adler = C(t.adler, e, i, a) : 2 === t.state.wrap && (t.adler = H(t.adler, e, i, a)), t.next_in += i, t.total_in += i, i)
}, Zt = function (t, e) {
var a, n, i = t.max_chain_length, r = t.strstart, s = t.prev_length, o = t.nice_match,
l = t.strstart > t.w_size - ct ? t.strstart - (t.w_size - ct) : 0, h = t.window, d = t.w_mask, _ = t.prev,
f = t.strstart + ut, u = h[r + s - 1], c = h[r + s];
t.prev_length >= t.good_match && (i >>= 2), o > t.lookahead && (o = t.lookahead);
do {
if (h[(a = e) + s] === c && h[a + s - 1] === u && h[a] === h[r] && h[++a] === h[r + 1]) {
r += 2, a++;
do {
} while (h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && r < f);
if (n = ut - (f - r), r = f - ut, n > s) {
if (t.match_start = e, s = n, n >= o) break;
u = h[r + s - 1], c = h[r + s]
}
}
} while ((e = _[e & d]) > l && 0 != --i);
return s <= t.lookahead ? s : t.lookahead
}, St = function (t) {
var e, a, n, i = t.w_size;
do {
if (a = t.window_size - t.lookahead - t.strstart, t.strstart >= i + (i - ct) && (t.window.set(t.window.subarray(i, i + i - a), 0), t.match_start -= i, t.strstart -= i, t.block_start -= i, t.insert > t.strstart && (t.insert = t.strstart), kt(t), a += i), 0 === t.strm.avail_in) break;
if (e = Rt(t.strm, t.window, t.strstart + t.lookahead, a), t.lookahead += e, t.lookahead + t.insert >= 3) for (n = t.strstart - t.insert, t.ins_h = t.window[n], t.ins_h = yt(t, t.ins_h, t.window[n + 1]); t.insert && (t.ins_h = yt(t, t.ins_h, t.window[n + 3 - 1]), t.prev[n & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = n, n++, t.insert--, !(t.lookahead + t.insert < 3));) ;
} while (t.lookahead < ct && 0 !== t.strm.avail_in)
}, Ut = function (t, e) {
var a, n, i, r = t.pending_buf_size - 5 > t.w_size ? t.w_size : t.pending_buf_size - 5, s = 0,
o = t.strm.avail_in;
do {
if (a = 65535, i = t.bi_valid + 42 >> 3, t.strm.avail_out < i) break;
if (i = t.strm.avail_out - i, a > (n = t.strstart - t.block_start) + t.strm.avail_in && (a = n + t.strm.avail_in), a > i && (a = i), a < r && (0 === a && e !== V || e === q || a !== n + t.strm.avail_in)) break;
s = e === V && a === n + t.strm.avail_in ? 1 : 0, Y(t, 0, 0, s), t.pending_buf[t.pending - 4] = a, t.pending_buf[t.pending - 3] = a >> 8, t.pending_buf[t.pending - 2] = ~a, t.pending_buf[t.pending - 1] = ~a >> 8, xt(t.strm), n && (n > a && (n = a), t.strm.output.set(t.window.subarray(t.block_start, t.block_start + n), t.strm.next_out), t.strm.next_out += n, t.strm.avail_out -= n, t.strm.total_out += n, t.block_start += n, a -= n), a && (Rt(t.strm, t.strm.output, t.strm.next_out, a), t.strm.next_out += a, t.strm.avail_out -= a, t.strm.total_out += a)
} while (0 === s);
return (o -= t.strm.avail_in) && (o >= t.w_size ? (t.matches = 2, t.window.set(t.strm.input.subarray(t.strm.next_in - t.w_size, t.strm.next_in), 0), t.strstart = t.w_size, t.insert = t.strstart) : (t.window_size - t.strstart <= o && (t.strstart -= t.w_size, t.window.set(t.window.subarray(t.w_size, t.w_size + t.strstart), 0), t.matches < 2 && t.matches++, t.insert > t.strstart && (t.insert = t.strstart)), t.window.set(t.strm.input.subarray(t.strm.next_in - o, t.strm.next_in), t.strstart), t.strstart += o, t.insert += o > t.w_size - t.insert ? t.w_size - t.insert : o), t.block_start = t.strstart), t.high_water < t.strstart && (t.high_water = t.strstart), s ? 4 : e !== q && e !== V && 0 === t.strm.avail_in && t.strstart === t.block_start ? 2 : (i = t.window_size - t.strstart, t.strm.avail_in > i && t.block_start >= t.w_size && (t.block_start -= t.w_size, t.strstart -= t.w_size, t.window.set(t.window.subarray(t.w_size, t.w_size + t.strstart), 0), t.matches < 2 && t.matches++, i += t.w_size, t.insert > t.strstart && (t.insert = t.strstart)), i > t.strm.avail_in && (i = t.strm.avail_in), i && (Rt(t.strm, t.window, t.strstart, i), t.strstart += i, t.insert += i > t.w_size - t.insert ? t.w_size - t.insert : i), t.high_water < t.strstart && (t.high_water = t.strstart), i = t.bi_valid + 42 >> 3, r = (i = t.pending_buf_size - i > 65535 ? 65535 : t.pending_buf_size - i) > t.w_size ? t.w_size : i, ((n = t.strstart - t.block_start) >= r || (n || e === V) && e !== q && 0 === t.strm.avail_in && n <= i) && (a = n > i ? i : n, s = e === V && 0 === t.strm.avail_in && a === n ? 1 : 0, Y(t, t.block_start, a, s), t.block_start += a, xt(t.strm)), s ? 3 : 1)
}, Dt = function (t, e) {
for (var a, n; ;) {
if (t.lookahead < ct) {
if (St(t), t.lookahead < ct && e === q) return 1;
if (0 === t.lookahead) break
}
if (a = 0, t.lookahead >= 3 && (t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 !== a && t.strstart - a <= t.w_size - ct && (t.match_length = Zt(t, a)), t.match_length >= 3) if (n = X(t, t.strstart - t.match_start, t.match_length - 3), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= 3) {
t.match_length--;
do {
t.strstart++, t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart
} while (0 != --t.match_length);
t.strstart++
} else t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 1]); else n = X(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++;
if (n && (zt(t, !1), 0 === t.strm.avail_out)) return 1
}
return t.insert = t.strstart < 2 ? t.strstart : 2, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2
}, Tt = function (t, e) {
for (var a, n, i; ;) {
if (t.lookahead < ct) {
if (St(t), t.lookahead < ct && e === q) return 1;
if (0 === t.lookahead) break
}
if (a = 0, t.lookahead >= 3 && (t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = 2, 0 !== a && t.prev_length < t.max_lazy_match && t.strstart - a <= t.w_size - ct && (t.match_length = Zt(t, a), t.match_length <= 5 && (t.strategy === st || 3 === t.match_length && t.strstart - t.match_start > 4096) && (t.match_length = 2)), t.prev_length >= 3 && t.match_length <= t.prev_length) {
i = t.strstart + t.lookahead - 3, n = X(t, t.strstart - 1 - t.prev_match, t.prev_length - 3), t.lookahead -= t.prev_length - 1, t.prev_length -= 2;
do {
++t.strstart <= i && (t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart)
} while (0 != --t.prev_length);
if (t.match_available = 0, t.match_length = 2, t.strstart++, n && (zt(t, !1), 0 === t.strm.avail_out)) return 1
} else if (t.match_available) {
if ((n = X(t, 0, t.window[t.strstart - 1])) && zt(t, !1), t.strstart++, t.lookahead--, 0 === t.strm.avail_out) return 1
} else t.match_available = 1, t.strstart++, t.lookahead--
}
return t.match_available && (n = X(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < 2 ? t.strstart : 2, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2
};
function Ot(t, e, a, n, i) {
this.good_length = t, this.max_lazy = e, this.nice_length = a, this.max_chain = n, this.func = i
}
var It = [new Ot(0, 0, 0, 0, Ut), new Ot(4, 4, 8, 4, Dt), new Ot(4, 5, 16, 8, Dt), new Ot(4, 6, 32, 32, Dt), new Ot(4, 4, 16, 16, Tt), new Ot(8, 16, 32, 32, Tt), new Ot(8, 16, 128, 128, Tt), new Ot(8, 32, 128, 256, Tt), new Ot(32, 128, 258, 1024, Tt), new Ot(32, 258, 258, 4096, Tt)];
function Ft() {
this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = ft, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new Uint16Array(1146), this.dyn_dtree = new Uint16Array(122), this.bl_tree = new Uint16Array(78), vt(this.dyn_ltree), vt(this.dyn_dtree), vt(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new Uint16Array(16), this.heap = new Uint16Array(573), vt(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new Uint16Array(573), vt(this.depth), this.sym_buf = 0, this.lit_bufsize = 0, this.sym_next = 0, this.sym_end = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0
}
var Lt = function (t) {
if (!t) return 1;
var e = t.state;
return !e || e.strm !== t || e.status !== wt && 57 !== e.status && 69 !== e.status && 73 !== e.status && 91 !== e.status && 103 !== e.status && e.status !== mt && e.status !== bt ? 1 : 0
}, Nt = function (t) {
if (Lt(t)) return gt(t, at);
t.total_in = t.total_out = 0, t.data_type = _t;
var e = t.state;
return e.pending = 0, e.pending_out = 0, e.wrap < 0 && (e.wrap = -e.wrap), e.status = 2 === e.wrap ? 57 : e.wrap ? wt : mt, t.adler = 2 === e.wrap ? 0 : 1, e.last_flush = -2, P(e), tt
}, Bt = function (t) {
var e, a = Nt(t);
return a === tt && ((e = t.state).window_size = 2 * e.w_size, vt(e.head), e.max_lazy_match = It[e.level].max_lazy, e.good_match = It[e.level].good_length, e.nice_match = It[e.level].nice_length, e.max_chain_length = It[e.level].max_chain, e.strstart = 0, e.block_start = 0, e.lookahead = 0, e.insert = 0, e.match_length = e.prev_length = 2, e.match_available = 0, e.ins_h = 0), a
}, Ct = function (t, e, a, n, i, r) {
if (!t) return at;
var s = 1;
if (e === rt && (e = 6), n < 0 ? (s = 0, n = -n) : n > 15 && (s = 2, n -= 16), i < 1 || i > 9 || a !== ft || n < 8 || n > 15 || e < 0 || e > 9 || r < 0 || r > ht || 8 === n && 1 !== s) return gt(t, at);
8 === n && (n = 9);
var o = new Ft;
return t.state = o, o.strm = t, o.status = wt, o.wrap = s, o.gzhead = null, o.w_bits = n, o.w_size = 1 << o.w_bits, o.w_mask = o.w_size - 1, o.hash_bits = i + 7, o.hash_size = 1 << o.hash_bits, o.hash_mask = o.hash_size - 1, o.hash_shift = ~~((o.hash_bits + 3 - 1) / 3), o.window = new Uint8Array(2 * o.w_size), o.head = new Uint16Array(o.hash_size), o.prev = new Uint16Array(o.w_size), o.lit_bufsize = 1 << i + 6, o.pending_buf_size = 4 * o.lit_bufsize, o.pending_buf = new Uint8Array(o.pending_buf_size), o.sym_buf = o.lit_bufsize, o.sym_end = 3 * (o.lit_bufsize - 1), o.level = e, o.strategy = r, o.method = a, Bt(t)
}, Mt = {
deflateInit: function (t, e) {
return Ct(t, e, ft, 15, 8, dt)
}, deflateInit2: Ct, deflateReset: Bt, deflateResetKeep: Nt, deflateSetHeader: function (t, e) {
return Lt(t) || 2 !== t.state.wrap ? at : (t.state.gzhead = e, tt)
}, deflate: function (t, e) {
if (Lt(t) || e > $ || e < 0) return t ? gt(t, at) : at;
var a = t.state;
if (!t.output || 0 !== t.avail_in && !t.input || a.status === bt && e !== V) return gt(t, 0 === t.avail_out ? it : at);
var n = a.last_flush;
if (a.last_flush = e, 0 !== a.pending) {
if (xt(t), 0 === t.avail_out) return a.last_flush = -1, tt
} else if (0 === t.avail_in && pt(e) <= pt(n) && e !== V) return gt(t, it);
if (a.status === bt && 0 !== t.avail_in) return gt(t, it);
if (a.status === wt && 0 === a.wrap && (a.status = mt), a.status === wt) {
var i = ft + (a.w_bits - 8 << 4) << 8;
if (i |= (a.strategy >= ot || a.level < 2 ? 0 : a.level < 6 ? 1 : 6 === a.level ? 2 : 3) << 6, 0 !== a.strstart && (i |= 32), Et(a, i += 31 - i % 31), 0 !== a.strstart && (Et(a, t.adler >>> 16), Et(a, 65535 & t.adler)), t.adler = 1, a.status = mt, xt(t), 0 !== a.pending) return a.last_flush = -1, tt
}
if (57 === a.status) if (t.adler = 0, At(a, 31), At(a, 139), At(a, 8), a.gzhead) At(a, (a.gzhead.text ? 1 : 0) + (a.gzhead.hcrc ? 2 : 0) + (a.gzhead.extra ? 4 : 0) + (a.gzhead.name ? 8 : 0) + (a.gzhead.comment ? 16 : 0)), At(a, 255 & a.gzhead.time), At(a, a.gzhead.time >> 8 & 255), At(a, a.gzhead.time >> 16 & 255), At(a, a.gzhead.time >> 24 & 255), At(a, 9 === a.level ? 2 : a.strategy >= ot || a.level < 2 ? 4 : 0), At(a, 255 & a.gzhead.os), a.gzhead.extra && a.gzhead.extra.length && (At(a, 255 & a.gzhead.extra.length), At(a, a.gzhead.extra.length >> 8 & 255)), a.gzhead.hcrc && (t.adler = H(t.adler, a.pending_buf, a.pending, 0)), a.gzindex = 0, a.status = 69; else if (At(a, 0), At(a, 0), At(a, 0), At(a, 0), At(a, 0), At(a, 9 === a.level ? 2 : a.strategy >= ot || a.level < 2 ? 4 : 0), At(a, 3), a.status = mt, xt(t), 0 !== a.pending) return a.last_flush = -1, tt;
if (69 === a.status) {
if (a.gzhead.extra) {
for (var r = a.pending, s = (65535 & a.gzhead.extra.length) - a.gzindex; a.pending + s > a.pending_buf_size;) {
var o = a.pending_buf_size - a.pending;
if (a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex, a.gzindex + o), a.pending), a.pending = a.pending_buf_size, a.gzhead.hcrc && a.pending > r && (t.adler = H(t.adler, a.pending_buf, a.pending - r, r)), a.gzindex += o, xt(t), 0 !== a.pending) return a.last_flush = -1, tt;
r = 0, s -= o
}
var l = new Uint8Array(a.gzhead.extra);
a.pending_buf.set(l.subarray(a.gzindex, a.gzindex + s), a.pending), a.pending += s, a.gzhead.hcrc && a.pending > r && (t.adler = H(t.adler, a.pending_buf, a.pending - r, r)), a.gzindex = 0
}
a.status = 73
}
if (73 === a.status) {
if (a.gzhead.name) {
var h, d = a.pending;
do {
if (a.pending === a.pending_buf_size) {
if (a.gzhead.hcrc && a.pending > d && (t.adler = H(t.adler, a.pending_buf, a.pending - d, d)), xt(t), 0 !== a.pending) return a.last_flush = -1, tt;
d = 0
}
h = a.gzindex < a.gzhead.name.length ? 255 & a.gzhead.name.charCodeAt(a.gzindex++) : 0, At(a, h)
} while (0 !== h);
a.gzhead.hcrc && a.pending > d && (t.adler = H(t.adler, a.pending_buf, a.pending - d, d)), a.gzindex = 0
}
a.status = 91
}
if (91 === a.status) {
if (a.gzhead.comment) {
var _, f = a.pending;
do {
if (a.pending === a.pending_buf_size) {
if (a.gzhead.hcrc && a.pending > f && (t.adler = H(t.adler, a.pending_buf, a.pending - f, f)), xt(t), 0 !== a.pending) return a.last_flush = -1, tt;
f = 0
}
_ = a.gzindex < a.gzhead.comment.length ? 255 & a.gzhead.comment.charCodeAt(a.gzindex++) : 0, At(a, _)
} while (0 !== _);
a.gzhead.hcrc && a.pending > f && (t.adler = H(t.adler, a.pending_buf, a.pending - f, f))
}
a.status = 103
}
if (103 === a.status) {
if (a.gzhead.hcrc) {
if (a.pending + 2 > a.pending_buf_size && (xt(t), 0 !== a.pending)) return a.last_flush = -1, tt;
At(a, 255 & t.adler), At(a, t.adler >> 8 & 255), t.adler = 0
}
if (a.status = mt, xt(t), 0 !== a.pending) return a.last_flush = -1, tt
}
if (0 !== t.avail_in || 0 !== a.lookahead || e !== q && a.status !== bt) {
var u = 0 === a.level ? Ut(a, e) : a.strategy === ot ? function (t, e) {
for (var a; ;) {
if (0 === t.lookahead && (St(t), 0 === t.lookahead)) {
if (e === q) return 1;
break
}
if (t.match_length = 0, a = X(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, a && (zt(t, !1), 0 === t.strm.avail_out)) return 1
}
return t.insert = 0, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2
}(a, e) : a.strategy === lt ? function (t, e) {
for (var a, n, i, r, s = t.window; ;) {
if (t.lookahead <= ut) {
if (St(t), t.lookahead <= ut && e === q) return 1;
if (0 === t.lookahead) break
}
if (t.match_length = 0, t.lookahead >= 3 && t.strstart > 0 && (n = s[i = t.strstart - 1]) === s[++i] && n === s[++i] && n === s[++i]) {
r = t.strstart + ut;
do {
} while (n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && i < r);
t.match_length = ut - (r - i), t.match_length > t.lookahead && (t.match_length = t.lookahead)
}
if (t.match_length >= 3 ? (a = X(t, 1, t.match_length - 3), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (a = X(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), a && (zt(t, !1), 0 === t.strm.avail_out)) return 1
}
return t.insert = 0, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2
}(a, e) : It[a.level].func(a, e);
if (3 !== u && 4 !== u || (a.status = bt), 1 === u || 3 === u) return 0 === t.avail_out && (a.last_flush = -1), tt;
if (2 === u && (e === J ? W(a) : e !== $ && (Y(a, 0, 0, !1), e === Q && (vt(a.head), 0 === a.lookahead && (a.strstart = 0, a.block_start = 0, a.insert = 0))), xt(t), 0 === t.avail_out)) return a.last_flush = -1, tt
}
return e !== V ? tt : a.wrap <= 0 ? et : (2 === a.wrap ? (At(a, 255 & t.adler), At(a, t.adler >> 8 & 255), At(a, t.adler >> 16 & 255), At(a, t.adler >> 24 & 255), At(a, 255 & t.total_in), At(a, t.total_in >> 8 & 255), At(a, t.total_in >> 16 & 255), At(a, t.total_in >> 24 & 255)) : (Et(a, t.adler >>> 16), Et(a, 65535 & t.adler)), xt(t), a.wrap > 0 && (a.wrap = -a.wrap), 0 !== a.pending ? tt : et)
}, deflateEnd: function (t) {
if (Lt(t)) return at;
var e = t.state.status;
return t.state = null, e === mt ? gt(t, nt) : tt
}, deflateSetDictionary: function (t, e) {
var a = e.length;
if (Lt(t)) return at;
var n = t.state, i = n.wrap;
if (2 === i || 1 === i && n.status !== wt || n.lookahead) return at;
if (1 === i && (t.adler = C(t.adler, e, a, 0)), n.wrap = 0, a >= n.w_size) {
0 === i && (vt(n.head), n.strstart = 0, n.block_start = 0, n.insert = 0);
var r = new Uint8Array(n.w_size);
r.set(e.subarray(a - n.w_size, a), 0), e = r, a = n.w_size
}
var s = t.avail_in, o = t.next_in, l = t.input;
for (t.avail_in = a, t.next_in = 0, t.input = e, St(n); n.lookahead >= 3;) {
var h = n.strstart, d = n.lookahead - 2;
do {
n.ins_h = yt(n, n.ins_h, n.window[h + 3 - 1]), n.prev[h & n.w_mask] = n.head[n.ins_h], n.head[n.ins_h] = h, h++
} while (--d);
n.strstart = h, n.lookahead = 2, St(n)
}
return n.strstart += n.lookahead, n.block_start = n.strstart, n.insert = n.lookahead, n.lookahead = 0, n.match_length = n.prev_length = 2, n.match_available = 0, t.next_in = o, t.input = l, t.avail_in = s, n.wrap = i, tt
}, deflateInfo: "pako deflate (from Nodeca project)"
};
function Ht(t) {
return Ht = "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
}, Ht(t)
}
var jt = function (t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}, Kt = function (t) {
for (var e = Array.prototype.slice.call(arguments, 1); e.length;) {
var a = e.shift();
if (a) {
if ("object" !== Ht(a)) throw new TypeError(a + "must be non-object");
for (var n in a) jt(a, n) && (t[n] = a[n])
}
}
return t
}, Pt = function (t) {
for (var e = 0, a = 0, n = t.length; a < n; a++) e += t[a].length;
for (var i = new Uint8Array(e), r = 0, s = 0, o = t.length; r < o; r++) {
var l = t[r];
i.set(l, s), s += l.length
}
return i
}, Yt = !0;
try {
String.fromCharCode.apply(null, new Uint8Array(1))
} catch (t) {
Yt = !1
}
for (var Gt = new Uint8Array(256), Xt = 0; Xt < 256; Xt++) Gt[Xt] = Xt >= 252 ? 6 : Xt >= 248 ? 5 : Xt >= 240 ? 4 : Xt >= 224 ? 3 : Xt >= 192 ? 2 : 1;
Gt[254] = Gt[254] = 1;
var Wt = function (t) {
if ("function" == typeof TextEncoder && TextEncoder.prototype.encode) return (new TextEncoder).encode(t);
var e, a, n, i, r, s = t.length, o = 0;
for (i = 0; i < s; i++) 55296 == (64512 & (a = t.charCodeAt(i))) && i + 1 < s && 56320 == (64512 & (n = t.charCodeAt(i + 1))) && (a = 65536 + (a - 55296 << 10) + (n - 56320), i++), o += a < 128 ? 1 : a < 2048 ? 2 : a < 65536 ? 3 : 4;
for (e = new Uint8Array(o), r = 0, i = 0; r < o; i++) 55296 == (64512 & (a = t.charCodeAt(i))) && i + 1 < s && 56320 == (64512 & (n = t.charCodeAt(i + 1))) && (a = 65536 + (a - 55296 << 10) + (n - 56320), i++), a < 128 ? e[r++] = a : a < 2048 ? (e[r++] = 192 | a >>> 6, e[r++] = 128 | 63 & a) : a < 65536 ? (e[r++] = 224 | a >>> 12, e[r++] = 128 | a >>> 6 & 63, e[r++] = 128 | 63 & a) : (e[r++] = 240 | a >>> 18, e[r++] = 128 | a >>> 12 & 63, e[r++] = 128 | a >>> 6 & 63, e[r++] = 128 | 63 & a);
return e
}, qt = function (t, e) {
var a, n, i = e || t.length;
if ("function" == typeof TextDecoder && TextDecoder.prototype.decode) return (new TextDecoder).decode(t.subarray(0, e));
var r = new Array(2 * i);
for (n = 0, a = 0; a < i;) {
var s = t[a++];
if (s < 128) r[n++] = s; else {
var o = Gt[s];
if (o > 4) r[n++] = 65533, a += o - 1; else {
for (s &= 2 === o ? 31 : 3 === o ? 15 : 7; o > 1 && a < i;) s = s << 6 | 63 & t[a++], o--;
o > 1 ? r[n++] = 65533 : s < 65536 ? r[n++] = s : (s -= 65536, r[n++] = 55296 | s >> 10 & 1023, r[n++] = 56320 | 1023 & s)
}
}
}
return function (t, e) {
if (e < 65534 && t.subarray && Yt) return String.fromCharCode.apply(null, t.length === e ? t : t.subarray(0, e));
for (var a = "", n = 0; n < e; n++) a += String.fromCharCode(t[n]);
return a
}(r, n)
}, Jt = function (t, e) {
(e = e || t.length) > t.length && (e = t.length);
for (var a = e - 1; a >= 0 && 128 == (192 & t[a]);) a--;
return a < 0 || 0 === a ? e : a + Gt[t[a]] > e ? a : e
};
var Qt = function () {
this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0
}, Vt = Object.prototype.toString, $t = K.Z_NO_FLUSH, te = K.Z_SYNC_FLUSH, ee = K.Z_FULL_FLUSH, ae = K.Z_FINISH,
ne = K.Z_OK, ie = K.Z_STREAM_END, re = K.Z_DEFAULT_COMPRESSION, se = K.Z_DEFAULT_STRATEGY, oe = K.Z_DEFLATED;
function le(t) {
this.options = Kt({
level: re,
method: oe,
chunkSize: 16384,
windowBits: 15,
memLevel: 8,
strategy: se
}, t || {});
var e = this.options;
e.raw && e.windowBits > 0 ? e.windowBits = -e.windowBits : e.gzip && e.windowBits > 0 && e.windowBits < 16 && (e.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new Qt, this.strm.avail_out = 0;
var a = Mt.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy);
if (a !== ne) throw new Error(j[a]);
if (e.header && Mt.deflateSetHeader(this.strm, e.header), e.dictionary) {
var n;
if (n = "string" == typeof e.dictionary ? Wt(e.dictionary) : "[object ArrayBuffer]" === Vt.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary, (a = Mt.deflateSetDictionary(this.strm, n)) !== ne) throw new Error(j[a]);
this._dict_set = !0
}
}
function he(t, e) {
var a = new le(e);
if (a.push(t, !0), a.err) throw a.msg || j[a.err];
return a.result
}
le.prototype.push = function (t, e) {
var a, n, i = this.strm, r = this.options.chunkSize;
if (this.ended) return !1;
for (n = e === ~~e ? e : !0 === e ? ae : $t, "string" == typeof t ? i.input = Wt(t) : "[object ArrayBuffer]" === Vt.call(t) ? i.input = new Uint8Array(t) : i.input = t, i.next_in = 0, i.avail_in = i.input.length; ;) if (0 === i.avail_out && (i.output = new Uint8Array(r), i.next_out = 0, i.avail_out = r), (n === te || n === ee) && i.avail_out <= 6) this.onData(i.output.subarray(0, i.next_out)), i.avail_out = 0; else {
if ((a = Mt.deflate(i, n)) === ie) return i.next_out > 0 && this.onData(i.output.subarray(0, i.next_out)), a = Mt.deflateEnd(this.strm), this.onEnd(a), this.ended = !0, a === ne;
if (0 !== i.avail_out) {
if (n > 0 && i.next_out > 0) this.onData(i.output.subarray(0, i.next_out)), i.avail_out = 0; else if (0 === i.avail_in) break
} else this.onData(i.output)
}
return !0
}, le.prototype.onData = function (t) {
this.chunks.push(t)
}, le.prototype.onEnd = function (t) {
t === ne && (this.result = Pt(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg
};
var de = {
Deflate: le, deflate: he, deflateRaw: function (t, e) {
return (e = e || {}).raw = !0, he(t, e)
}, gzip: function (t, e) {
return (e = e || {}).gzip = !0, he(t, e)
}, constants: K
}, _e = 16209, fe = function (t, e) {
var a, n, i, r, s, o, l, h, d, _, f, u, c, w, m, b, g, p, v, k, y, x, z, A, E = t.state;
a = t.next_in, z = t.input, n = a + (t.avail_in - 5), i = t.next_out, A = t.output, r = i - (e - t.avail_out), s = i + (t.avail_out - 257), o = E.dmax, l = E.wsize, h = E.whave, d = E.wnext, _ = E.window, f = E.hold, u = E.bits, c = E.lencode, w = E.distcode, m = (1 << E.lenbits) - 1, b = (1 << E.distbits) - 1;
t:do {
u < 15 && (f += z[a++] << u, u += 8, f += z[a++] << u, u += 8), g = c[f & m];
e:for (; ;) {
if (f >>>= p = g >>> 24, u -= p, 0 === (p = g >>> 16 & 255)) A[i++] = 65535 & g; else {
if (!(16 & p)) {
if (0 == (64 & p)) {
g = c[(65535 & g) + (f & (1 << p) - 1)];
continue e
}
if (32 & p) {
E.mode = 16191;
break t
}
t.msg = "invalid literal/length code", E.mode = _e;
break t
}
v = 65535 & g, (p &= 15) && (u < p && (f += z[a++] << u, u += 8), v += f & (1 << p) - 1, f >>>= p, u -= p), u < 15 && (f += z[a++] << u, u += 8, f += z[a++] << u, u += 8), g = w[f & b];
a:for (; ;) {
if (f >>>= p = g >>> 24, u -= p, !(16 & (p = g >>> 16 & 255))) {
if (0 == (64 & p)) {
g = w[(65535 & g) + (f & (1 << p) - 1)];
continue a
}
t.msg = "invalid distance code", E.mode = _e;
break t
}
if (k = 65535 & g, u < (p &= 15) && (f += z[a++] << u, (u += 8) < p && (f += z[a++] << u, u += 8)), (k += f & (1 << p) - 1) > o) {
t.msg = "invalid distance too far back", E.mode = _e;
break t
}
if (f >>>= p, u -= p, k > (p = i - r)) {
if ((p = k - p) > h && E.sane) {
t.msg = "invalid distance too far back", E.mode = _e;
break t
}
if (y = 0, x = _, 0 === d) {
if (y += l - p, p < v) {
v -= p;
do {
A[i++] = _[y++]
} while (--p);
y = i - k, x = A
}
} else if (d < p) {
if (y += l + d - p, (p -= d) < v) {
v -= p;
do {
A[i++] = _[y++]
} while (--p);
if (y = 0, d < v) {
v -= p = d;
do {
A[i++] = _[y++]
} while (--p);
y = i - k, x = A
}
}
} else if (y += d - p, p < v) {
v -= p;
do {
A[i++] = _[y++]
} while (--p);
y = i - k, x = A
}
for (; v > 2;) A[i++] = x[y++], A[i++] = x[y++], A[i++] = x[y++], v -= 3;
v && (A[i++] = x[y++], v > 1 && (A[i++] = x[y++]))
} else {
y = i - k;
do {
A[i++] = A[y++], A[i++] = A[y++], A[i++] = A[y++], v -= 3
} while (v > 2);
v && (A[i++] = A[y++], v > 1 && (A[i++] = A[y++]))
}
break
}
}
break
}
} while (a < n && i < s);
a -= v = u >> 3, f &= (1 << (u -= v << 3)) - 1, t.next_in = a, t.next_out = i, t.avail_in = a < n ? n - a + 5 : 5 - (a - n), t.avail_out = i < s ? s - i + 257 : 257 - (i - s), E.hold = f, E.bits = u
}, ue = 15,
ce = new Uint16Array([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0]),
we = new Uint8Array([16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78]),
me = new Uint16Array([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0]),
be = new Uint8Array([16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]),
ge = function (t, e, a, n, i, r, s, o) {
var l, h, d, _, f, u, c, w, m, b = o.bits, g = 0, p = 0, v = 0, k = 0, y = 0, x = 0, z = 0, A = 0, E = 0,
R = 0, Z = null, S = new Uint16Array(16), U = new Uint16Array(16), D = null;
for (g = 0; g <= ue; g++) S[g] = 0;
for (p = 0; p < n; p++) S[e[a + p]]++;
for (y = b, k = ue; k >= 1 && 0 === S[k]; k--) ;
if (y > k && (y = k), 0 === k) return i[r++] = 20971520, i[r++] = 20971520, o.bits = 1, 0;
for (v = 1; v < k && 0 === S[v]; v++) ;
for (y < v && (y = v), A = 1, g = 1; g <= ue; g++) if (A <<= 1, (A -= S[g]) < 0) return -1;
if (A > 0 && (0 === t || 1 !== k)) return -1;
for (U[1] = 0, g = 1; g < ue; g++) U[g + 1] = U[g] + S[g];
for (p = 0; p < n; p++) 0 !== e[a + p] && (s[U[e[a + p]]++] = p);
if (0 === t ? (Z = D = s, u = 20) : 1 === t ? (Z = ce, D = we, u = 257) : (Z = me, D = be, u = 0), R = 0, p = 0, g = v, f = r, x = y, z = 0, d = -1, _ = (E = 1 << y) - 1, 1 === t && E > 852 || 2 === t && E > 592) return 1;
for (; ;) {
c = g - z, s[p] + 1 < u ? (w = 0, m = s[p]) : s[p] >= u ? (w = D[s[p] - u], m = Z[s[p] - u]) : (w = 96, m = 0), l = 1 << g - z, v = h = 1 << x;
do {
i[f + (R >> z) + (h -= l)] = c << 24 | w << 16 | m | 0
} while (0 !== h);
for (l = 1 << g - 1; R & l;) l >>= 1;
if (0 !== l ? (R &= l - 1, R += l) : R = 0, p++, 0 == --S[g]) {
if (g === k) break;
g = e[a + s[p]]
}
if (g > y && (R & _) !== d) {
for (0 === z && (z = y), f += v, A = 1 << (x = g - z); x + z < k && !((A -= S[x + z]) <= 0);) x++, A <<= 1;
if (E += 1 << x, 1 === t && E > 852 || 2 === t && E > 592) return 1;
i[d = R & _] = y << 24 | x << 16 | f - r | 0
}
}
return 0 !== R && (i[f + R] = g - z << 24 | 64 << 16 | 0), o.bits = y, 0
}, pe = K.Z_FINISH, ve = K.Z_BLOCK, ke = K.Z_TREES, ye = K.Z_OK, xe = K.Z_STREAM_END, ze = K.Z_NEED_DICT,
Ae = K.Z_STREAM_ERROR, Ee = K.Z_DATA_ERROR, Re = K.Z_MEM_ERROR, Ze = K.Z_BUF_ERROR, Se = K.Z_DEFLATED,
Ue = 16180, De = 16190, Te = 16191, Oe = 16192, Ie = 16194, Fe = 16199, Le = 16200, Ne = 16206, Be = 16209,
Ce = function (t) {
return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24)
};
function Me() {
this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0
}
var He, je, Ke = function (t) {
if (!t) return 1;
var e = t.state;
return !e || e.strm !== t || e.mode < Ue || e.mode > 16211 ? 1 : 0
}, Pe = function (t) {
if (Ke(t)) return Ae;
var e = t.state;
return t.total_in = t.total_out = e.total = 0, t.msg = "", e.wrap && (t.adler = 1 & e.wrap), e.mode = Ue, e.last = 0, e.havedict = 0, e.flags = -1, e.dmax = 32768, e.head = null, e.hold = 0, e.bits = 0, e.lencode = e.lendyn = new Int32Array(852), e.distcode = e.distdyn = new Int32Array(592), e.sane = 1, e.back = -1, ye
}, Ye = function (t) {
if (Ke(t)) return Ae;
var e = t.state;
return e.wsize = 0, e.whave = 0, e.wnext = 0, Pe(t)
}, Ge = function (t, e) {
var a;
if (Ke(t)) return Ae;
var n = t.state;
return e < 0 ? (a = 0, e = -e) : (a = 5 + (e >> 4), e < 48 && (e &= 15)), e && (e < 8 || e > 15) ? Ae : (null !== n.window && n.wbits !== e && (n.window = null), n.wrap = a, n.wbits = e, Ye(t))
}, Xe = function (t, e) {
if (!t) return Ae;
var a = new Me;
t.state = a, a.strm = t, a.window = null, a.mode = Ue;
var n = Ge(t, e);
return n !== ye && (t.state = null), n
}, We = !0, qe = function (t) {
if (We) {
He = new Int32Array(512), je = new Int32Array(32);
for (var e = 0; e < 144;) t.lens[e++] = 8;
for (; e < 256;) t.lens[e++] = 9;
for (; e < 280;) t.lens[e++] = 7;
for (; e < 288;) t.lens[e++] = 8;
for (ge(1, t.lens, 0, 288, He, 0, t.work, {bits: 9}), e = 0; e < 32;) t.lens[e++] = 5;
ge(2, t.lens, 0, 32, je, 0, t.work, {bits: 5}), We = !1
}
t.lencode = He, t.lenbits = 9, t.distcode = je, t.distbits = 5
}, Je = function (t, e, a, n) {
var i, r = t.state;
return null === r.window && (r.wsize = 1 << r.wbits, r.wnext = 0, r.whave = 0, r.window = new Uint8Array(r.wsize)), n >= r.wsize ? (r.window.set(e.subarray(a - r.wsize, a), 0), r.wnext = 0, r.whave = r.wsize) : ((i = r.wsize - r.wnext) > n && (i = n), r.window.set(e.subarray(a - n, a - n + i), r.wnext), (n -= i) ? (r.window.set(e.subarray(a - n, a), 0), r.wnext = n, r.whave = r.wsize) : (r.wnext += i, r.wnext === r.wsize && (r.wnext = 0), r.whave < r.wsize && (r.whave += i))), 0
}, Qe = {
inflateReset: Ye, inflateReset2: Ge, inflateResetKeep: Pe, inflateInit: function (t) {
return Xe(t, 15)
}, inflateInit2: Xe, inflate: function (t, e) {
var a, n, i, r, s, o, l, h, d, _, f, u, c, w, m, b, g, p, v, k, y, x, z, A, E = 0, R = new Uint8Array(4),
Z = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
if (Ke(t) || !t.output || !t.input && 0 !== t.avail_in) return Ae;
(a = t.state).mode === Te && (a.mode = Oe), s = t.next_out, i = t.output, l = t.avail_out, r = t.next_in, n = t.input, o = t.avail_in, h = a.hold, d = a.bits, _ = o, f = l, x = ye;
t:for (; ;) switch (a.mode) {
case Ue:
if (0 === a.wrap) {
a.mode = Oe;
break
}
for (; d < 16;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (2 & a.wrap && 35615 === h) {
0 === a.wbits && (a.wbits = 15), a.check = 0, R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0), h = 0, d = 0, a.mode = 16181;
break
}
if (a.head && (a.head.done = !1), !(1 & a.wrap) || (((255 & h) << 8) + (h >> 8)) % 31) {
t.msg = "incorrect header check", a.mode = Be;
break
}
if ((15 & h) !== Se) {
t.msg = "unknown compression method", a.mode = Be;
break
}
if (d -= 4, y = 8 + (15 & (h >>>= 4)), 0 === a.wbits && (a.wbits = y), y > 15 || y > a.wbits) {
t.msg = "invalid window size", a.mode = Be;
break
}
a.dmax = 1 << a.wbits, a.flags = 0, t.adler = a.check = 1, a.mode = 512 & h ? 16189 : Te, h = 0, d = 0;
break;
case 16181:
for (; d < 16;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (a.flags = h, (255 & a.flags) !== Se) {
t.msg = "unknown compression method", a.mode = Be;
break
}
if (57344 & a.flags) {
t.msg = "unknown header flags set", a.mode = Be;
break
}
a.head && (a.head.text = h >> 8 & 1), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0)), h = 0, d = 0, a.mode = 16182;
case 16182:
for (; d < 32;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
a.head && (a.head.time = h), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, R[2] = h >>> 16 & 255, R[3] = h >>> 24 & 255, a.check = H(a.check, R, 4, 0)), h = 0, d = 0, a.mode = 16183;
case 16183:
for (; d < 16;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
a.head && (a.head.xflags = 255 & h, a.head.os = h >> 8), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0)), h = 0, d = 0, a.mode = 16184;
case 16184:
if (1024 & a.flags) {
for (; d < 16;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
a.length = h, a.head && (a.head.extra_len = h), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0)), h = 0, d = 0
} else a.head && (a.head.extra = null);
a.mode = 16185;
case 16185:
if (1024 & a.flags && ((u = a.length) > o && (u = o), u && (a.head && (y = a.head.extra_len - a.length, a.head.extra || (a.head.extra = new Uint8Array(a.head.extra_len)), a.head.extra.set(n.subarray(r, r + u), y)), 512 & a.flags && 4 & a.wrap && (a.check = H(a.check, n, u, r)), o -= u, r += u, a.length -= u), a.length)) break t;
a.length = 0, a.mode = 16186;
case 16186:
if (2048 & a.flags) {
if (0 === o) break t;
u = 0;
do {
y = n[r + u++], a.head && y && a.length < 65536 && (a.head.name += String.fromCharCode(y))
} while (y && u < o);
if (512 & a.flags && 4 & a.wrap && (a.check = H(a.check, n, u, r)), o -= u, r += u, y) break t
} else a.head && (a.head.name = null);
a.length = 0, a.mode = 16187;
case 16187:
if (4096 & a.flags) {
if (0 === o) break t;
u = 0;
do {
y = n[r + u++], a.head && y && a.length < 65536 && (a.head.comment += String.fromCharCode(y))
} while (y && u < o);
if (512 & a.flags && 4 & a.wrap && (a.check = H(a.check, n, u, r)), o -= u, r += u, y) break t
} else a.head && (a.head.comment = null);
a.mode = 16188;
case 16188:
if (512 & a.flags) {
for (; d < 16;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (4 & a.wrap && h !== (65535 & a.check)) {
t.msg = "header crc mismatch", a.mode = Be;
break
}
h = 0, d = 0
}
a.head && (a.head.hcrc = a.flags >> 9 & 1, a.head.done = !0), t.adler = a.check = 0, a.mode = Te;
break;
case 16189:
for (; d < 32;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
t.adler = a.check = Ce(h), h = 0, d = 0, a.mode = De;
case De:
if (0 === a.havedict) return t.next_out = s, t.avail_out = l, t.next_in = r, t.avail_in = o, a.hold = h, a.bits = d, ze;
t.adler = a.check = 1, a.mode = Te;
case Te:
if (e === ve || e === ke) break t;
case Oe:
if (a.last) {
h >>>= 7 & d, d -= 7 & d, a.mode = Ne;
break
}
for (; d < 3;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
switch (a.last = 1 & h, d -= 1, 3 & (h >>>= 1)) {
case 0:
a.mode = 16193;
break;
case 1:
if (qe(a), a.mode = Fe, e === ke) {
h >>>= 2, d -= 2;
break t
}
break;
case 2:
a.mode = 16196;
break;
case 3:
t.msg = "invalid block type", a.mode = Be
}
h >>>= 2, d -= 2;
break;
case 16193:
for (h >>>= 7 & d, d -= 7 & d; d < 32;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if ((65535 & h) != (h >>> 16 ^ 65535)) {
t.msg = "invalid stored block lengths", a.mode = Be;
break
}
if (a.length = 65535 & h, h = 0, d = 0, a.mode = Ie, e === ke) break t;
case Ie:
a.mode = 16195;
case 16195:
if (u = a.length) {
if (u > o && (u = o), u > l && (u = l), 0 === u) break t;
i.set(n.subarray(r, r + u), s), o -= u, r += u, l -= u, s += u, a.length -= u;
break
}
a.mode = Te;
break;
case 16196:
for (; d < 14;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (a.nlen = 257 + (31 & h), h >>>= 5, d -= 5, a.ndist = 1 + (31 & h), h >>>= 5, d -= 5, a.ncode = 4 + (15 & h), h >>>= 4, d -= 4, a.nlen > 286 || a.ndist > 30) {
t.msg = "too many length or distance symbols", a.mode = Be;
break
}
a.have = 0, a.mode = 16197;
case 16197:
for (; a.have < a.ncode;) {
for (; d < 3;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
a.lens[Z[a.have++]] = 7 & h, h >>>= 3, d -= 3
}
for (; a.have < 19;) a.lens[Z[a.have++]] = 0;
if (a.lencode = a.lendyn, a.lenbits = 7, z = {bits: a.lenbits}, x = ge(0, a.lens, 0, 19, a.lencode, 0, a.work, z), a.lenbits = z.bits, x) {
t.msg = "invalid code lengths set", a.mode = Be;
break
}
a.have = 0, a.mode = 16198;
case 16198:
for (; a.have < a.nlen + a.ndist;) {
for (; b = (E = a.lencode[h & (1 << a.lenbits) - 1]) >>> 16 & 255, g = 65535 & E, !((m = E >>> 24) <= d);) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (g < 16) h >>>= m, d -= m, a.lens[a.have++] = g; else {
if (16 === g) {
for (A = m + 2; d < A;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (h >>>= m, d -= m, 0 === a.have) {
t.msg = "invalid bit length repeat", a.mode = Be;
break
}
y = a.lens[a.have - 1], u = 3 + (3 & h), h >>>= 2, d -= 2
} else if (17 === g) {
for (A = m + 3; d < A;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
d -= m, y = 0, u = 3 + (7 & (h >>>= m)), h >>>= 3, d -= 3
} else {
for (A = m + 7; d < A;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
d -= m, y = 0, u = 11 + (127 & (h >>>= m)), h >>>= 7, d -= 7
}
if (a.have + u > a.nlen + a.ndist) {
t.msg = "invalid bit length repeat", a.mode = Be;
break
}
for (; u--;) a.lens[a.have++] = y
}
}
if (a.mode === Be) break;
if (0 === a.lens[256]) {
t.msg = "invalid code -- missing end-of-block", a.mode = Be;
break
}
if (a.lenbits = 9, z = {bits: a.lenbits}, x = ge(1, a.lens, 0, a.nlen, a.lencode, 0, a.work, z), a.lenbits = z.bits, x) {
t.msg = "invalid literal/lengths set", a.mode = Be;
break
}
if (a.distbits = 6, a.distcode = a.distdyn, z = {bits: a.distbits}, x = ge(2, a.lens, a.nlen, a.ndist, a.distcode, 0, a.work, z), a.distbits = z.bits, x) {
t.msg = "invalid distances set", a.mode = Be;
break
}
if (a.mode = Fe, e === ke) break t;
case Fe:
a.mode = Le;
case Le:
if (o >= 6 && l >= 258) {
t.next_out = s, t.avail_out = l, t.next_in = r, t.avail_in = o, a.hold = h, a.bits = d, fe(t, f), s = t.next_out, i = t.output, l = t.avail_out, r = t.next_in, n = t.input, o = t.avail_in, h = a.hold, d = a.bits, a.mode === Te && (a.back = -1);
break
}
for (a.back = 0; b = (E = a.lencode[h & (1 << a.lenbits) - 1]) >>> 16 & 255, g = 65535 & E, !((m = E >>> 24) <= d);) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (b && 0 == (240 & b)) {
for (p = m, v = b, k = g; b = (E = a.lencode[k + ((h & (1 << p + v) - 1) >> p)]) >>> 16 & 255, g = 65535 & E, !(p + (m = E >>> 24) <= d);) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
h >>>= p, d -= p, a.back += p
}
if (h >>>= m, d -= m, a.back += m, a.length = g, 0 === b) {
a.mode = 16205;
break
}
if (32 & b) {
a.back = -1, a.mode = Te;
break
}
if (64 & b) {
t.msg = "invalid literal/length code", a.mode = Be;
break
}
a.extra = 15 & b, a.mode = 16201;
case 16201:
if (a.extra) {
for (A = a.extra; d < A;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
a.length += h & (1 << a.extra) - 1, h >>>= a.extra, d -= a.extra, a.back += a.extra
}
a.was = a.length, a.mode = 16202;
case 16202:
for (; b = (E = a.distcode[h & (1 << a.distbits) - 1]) >>> 16 & 255, g = 65535 & E, !((m = E >>> 24) <= d);) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (0 == (240 & b)) {
for (p = m, v = b, k = g; b = (E = a.distcode[k + ((h & (1 << p + v) - 1) >> p)]) >>> 16 & 255, g = 65535 & E, !(p + (m = E >>> 24) <= d);) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
h >>>= p, d -= p, a.back += p
}
if (h >>>= m, d -= m, a.back += m, 64 & b) {
t.msg = "invalid distance code", a.mode = Be;
break
}
a.offset = g, a.extra = 15 & b, a.mode = 16203;
case 16203:
if (a.extra) {
for (A = a.extra; d < A;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
a.offset += h & (1 << a.extra) - 1, h >>>= a.extra, d -= a.extra, a.back += a.extra
}
if (a.offset > a.dmax) {
t.msg = "invalid distance too far back", a.mode = Be;
break
}
a.mode = 16204;
case 16204:
if (0 === l) break t;
if (u = f - l, a.offset > u) {
if ((u = a.offset - u) > a.whave && a.sane) {
t.msg = "invalid distance too far back", a.mode = Be;
break
}
u > a.wnext ? (u -= a.wnext, c = a.wsize - u) : c = a.wnext - u, u > a.length && (u = a.length), w = a.window
} else w = i, c = s - a.offset, u = a.length;
u > l && (u = l), l -= u, a.length -= u;
do {
i[s++] = w[c++]
} while (--u);
0 === a.length && (a.mode = Le);
break;
case 16205:
if (0 === l) break t;
i[s++] = a.length, l--, a.mode = Le;
break;
case Ne:
if (a.wrap) {
for (; d < 32;) {
if (0 === o) break t;
o--, h |= n[r++] << d, d += 8
}
if (f -= l, t.total_out += f, a.total += f, 4 & a.wrap && f && (t.adler = a.check = a.flags ? H(a.check, i, f, s - f) : C(a.check, i, f, s - f)), f = l, 4 & a.wrap && (a.flags ? h : Ce(h)) !== a.check) {
t.msg = "incorrect data check", a.mode = Be;
break
}
h = 0, d = 0
}
a.mode = 16207;
case 16207:
if (a.wrap && a.flags) {
for (; d < 32;) {
if (0 === o) break t;
o--, h += n[r++] << d, d += 8
}
if (4 & a.wrap && h !== (4294967295 & a.total)) {
t.msg = "incorrect length check", a.mode = Be;
break
}
h = 0, d = 0
}
a.mode = 16208;
case 16208:
x = xe;
break t;
case Be:
x = Ee;
break t;
case 16210:
return Re;
default:
return Ae
}
return t.next_out = s, t.avail_out = l, t.next_in = r, t.avail_in = o, a.hold = h, a.bits = d, (a.wsize || f !== t.avail_out && a.mode < Be && (a.mode < Ne || e !== pe)) && Je(t, t.output, t.next_out, f - t.avail_out), _ -= t.avail_in, f -= t.avail_out, t.total_in += _, t.total_out += f, a.total += f, 4 & a.wrap && f && (t.adler = a.check = a.flags ? H(a.check, i, f, t.next_out - f) : C(a.check, i, f, t.next_out - f)), t.data_type = a.bits + (a.last ? 64 : 0) + (a.mode === Te ? 128 : 0) + (a.mode === Fe || a.mode === Ie ? 256 : 0), (0 === _ && 0 === f || e === pe) && x === ye && (x = Ze), x
}, inflateEnd: function (t) {
if (Ke(t)) return Ae;
var e = t.state;
return e.window && (e.window = null), t.state = null, ye
}, inflateGetHeader: function (t, e) {
if (Ke(t)) return Ae;
var a = t.state;
return 0 == (2 & a.wrap) ? Ae : (a.head = e, e.done = !1, ye)
}, inflateSetDictionary: function (t, e) {
var a, n = e.length;
return Ke(t) || 0 !== (a = t.state).wrap && a.mode !== De ? Ae : a.mode === De && C(1, e, n, 0) !== a.check ? Ee : Je(t, e, n, n) ? (a.mode = 16210, Re) : (a.havedict = 1, ye)
}, inflateInfo: "pako inflate (from Nodeca project)"
};
var Ve = function () {
this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1
}, $e = Object.prototype.toString, ta = K.Z_NO_FLUSH, ea = K.Z_FINISH, aa = K.Z_OK, na = K.Z_STREAM_END,
ia = K.Z_NEED_DICT, ra = K.Z_STREAM_ERROR, sa = K.Z_DATA_ERROR, oa = K.Z_MEM_ERROR;
function la(t) {
this.options = Kt({chunkSize: 65536, windowBits: 15, to: ""}, t || {});
var e = this.options;
e.raw && e.windowBits >= 0 && e.windowBits < 16 && (e.windowBits = -e.windowBits, 0 === e.windowBits && (e.windowBits = -15)), !(e.windowBits >= 0 && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32), e.windowBits > 15 && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new Qt, this.strm.avail_out = 0;
var a = Qe.inflateInit2(this.strm, e.windowBits);
if (a !== aa) throw new Error(j[a]);
if (this.header = new Ve, Qe.inflateGetHeader(this.strm, this.header), e.dictionary && ("string" == typeof e.dictionary ? e.dictionary = Wt(e.dictionary) : "[object ArrayBuffer]" === $e.call(e.dictionary) && (e.dictionary = new Uint8Array(e.dictionary)), e.raw && (a = Qe.inflateSetDictionary(this.strm, e.dictionary)) !== aa)) throw new Error(j[a])
}
function ha(t, e) {
var a = new la(e);
if (a.push(t), a.err) throw a.msg || j[a.err];
return a.result
}
la.prototype.push = function (t, e) {
var a, n, i, r = this.strm, s = this.options.chunkSize, o = this.options.dictionary;
if (this.ended) return !1;
for (n = e === ~~e ? e : !0 === e ? ea : ta, "[object ArrayBuffer]" === $e.call(t) ? r.input = new Uint8Array(t) : r.input = t, r.next_in = 0, r.avail_in = r.input.length; ;) {
for (0 === r.avail_out && (r.output = new Uint8Array(s), r.next_out = 0, r.avail_out = s), (a = Qe.inflate(r, n)) === ia && o && ((a = Qe.inflateSetDictionary(r, o)) === aa ? a = Qe.inflate(r, n) : a === sa && (a = ia)); r.avail_in > 0 && a === na && r.state.wrap > 0 && 0 !== t[r.next_in];) Qe.inflateReset(r), a = Qe.inflate(r, n);
switch (a) {
case ra:
case sa:
case ia:
case oa:
return this.onEnd(a), this.ended = !0, !1
}
if (i = r.avail_out, r.next_out && (0 === r.avail_out || a === na)) if ("string" === this.options.to) {
var l = Jt(r.output, r.next_out), h = r.next_out - l, d = qt(r.output, l);
r.next_out = h, r.avail_out = s - h, h && r.output.set(r.output.subarray(l, l + h), 0), this.onData(d)
} else this.onData(r.output.length === r.next_out ? r.output : r.output.subarray(0, r.next_out));
if (a !== aa || 0 !== i) {
if (a === na) return a = Qe.inflateEnd(this.strm), this.onEnd(a), this.ended = !0, !0;
if (0 === r.avail_in) break
}
}
return !0
}, la.prototype.onData = function (t) {
this.chunks.push(t)
}, la.prototype.onEnd = function (t) {
t === aa && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = Pt(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg
};
var da = {
Inflate: la, inflate: ha, inflateRaw: function (t, e) {
return (e = e || {}).raw = !0, ha(t, e)
}, ungzip: ha, constants: K
}, _a = de.Deflate, fa = de.deflate, ua = de.deflateRaw, ca = de.gzip, wa = da.Inflate, ma = da.inflate,
ba = da.inflateRaw, ga = da.ungzip, pa = K, va = {
Deflate: _a,
deflate: fa,
deflateRaw: ua,
gzip: ca,
Inflate: wa,
inflate: ma,
inflateRaw: ba,
ungzip: ga,
constants: pa
};
t.Deflate = _a, t.Inflate = wa, t.constants = pa, t.default = va, t.deflate = fa, t.deflateRaw = ua, t.gzip = ca, t.inflate = ma, t.inflateRaw = ba, t.ungzip = ga, Object.defineProperty(t, "__esModule", {value: !0})
}));
var $jscomp = {scope: {}};
$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function (d, h, l) {
if (l.get || l.set) throw new TypeError("ES3 does not support getters and setters.");
d != Array.prototype && d != Object.prototype && (d[h] = l.value)
};
$jscomp.getGlobal = function (d) {
return "undefined" != typeof window && window === d ? d : "undefined" != typeof global && null != global ? global : d
};
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.polyfill = function (d, h, l, p) {
if (h) {
l = $jscomp.global;
d = d.split(".");
for (p = 0; p < d.length - 1; p++) {
var v = d[p];
v in l || (l[v] = {});
l = l[v]
}
d = d[d.length - 1];
p = l[d];
h = h(p);
h != p && null != h && $jscomp.defineProperty(l, d, {configurable: !0, writable: !0, value: h})
}
};
$jscomp.polyfill("Math.imul", function (d) {
return d ? d : function (d, l) {
d = Number(d);
l = Number(l);
var h = d & 65535, v = l & 65535;
return h * v + ((d >>> 16 & 65535) * v + h * (l >>> 16 & 65535) << 16 >>> 0) | 0
}
}, "es6-impl", "es3");
$jscomp.polyfill("Object.setPrototypeOf", function (d) {
return d ? d : "object" != typeof "".__proto__ ? null : function (d, l) {
d.__proto__ = l;
if (d.__proto__ !== l) throw new TypeError(d + " is not extensible");
return d
}
}, "es6", "es5");
$jscomp.polyfill("Reflect.apply", function (d) {
if (d) return d;
var h = Function.prototype.apply;
return function (d, p, v) {
return h.call(d, p, v)
}
}, "es6", "es3");
$jscomp.polyfill("Reflect.construct", function (d) {
return d ? d : function (d, l, p) {
void 0 === p && (p = d);
p = Object.create(p.prototype || Object.prototype);
return Reflect.apply(d, p, l) || p
}
}, "es6", "es5");
$jscomp.SYMBOL_PREFIX = "jscomp_symbol_";
$jscomp.initSymbol = function () {
$jscomp.initSymbol = function () {
};
$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol)
};
$jscomp.symbolCounter_ = 0;
$jscomp.Symbol = function (d) {
return $jscomp.SYMBOL_PREFIX + (d || "") + $jscomp.symbolCounter_++
};
$jscomp.initSymbolIterator = function () {
$jscomp.initSymbol();
var d = $jscomp.global.Symbol.iterator;
d || (d = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator"));
"function" != typeof Array.prototype[d] && $jscomp.defineProperty(Array.prototype, d, {
configurable: !0,
writable: !0,
value: function () {
return $jscomp.arrayIterator(this)
}
});
$jscomp.initSymbolIterator = function () {
}
};
$jscomp.arrayIterator = function (d) {
var h = 0;
return $jscomp.iteratorPrototype(function () {
return h < d.length ? {done: !1, value: d[h++]} : {done: !0}
})
};
$jscomp.iteratorPrototype = function (d) {
$jscomp.initSymbolIterator();
d = {next: d};
d[$jscomp.global.Symbol.iterator] = function () {
return this
};
return d
};
$jscomp.polyfill("Array.from", function (d) {
return d ? d : function (d, l, p) {
$jscomp.initSymbolIterator();
l = null != l ? l : function (d) {
return d
};
var h = [], z = d[Symbol.iterator];
if ("function" == typeof z) for (d = z.call(d); !(z = d.next()).done;) h.push(l.call(p, z.value)); else for (var z = d.length, B = 0; B < z; B++) h.push(l.call(p, d[B]));
return h
}
}, "es6-impl", "es3");
$jscomp.polyfill("Number.MAX_SAFE_INTEGER", function () {
return 9007199254740991
}, "es6-impl", "es3");
$jscomp.owns = function (d, h) {
return Object.prototype.hasOwnProperty.call(d, h)
};
$jscomp.polyfill("Object.assign", function (d) {
return d ? d : function (d, l) {
for (var h = 1; h < arguments.length; h++) {
var v = arguments[h];
if (v) for (var z in v) $jscomp.owns(v, z) && (d[z] = v[z])
}
return d
}
}, "es6-impl", "es3");
$jscomp.polyfill("Array.prototype.fill", function (d) {
return d ? d : function (d, l, p) {
var h = this.length || 0;
0 > l && (l = Math.max(0, h + l));
if (null == p || p > h) p = h;
p = Number(p);
0 > p && (p = Math.max(0, h + p));
for (l = Number(l || 0); l < p; l++) this[l] = d;
return this
}
}, "es6-impl", "es3");
Array.from || (Array.from = function (d) {
return [].slice.call(d)
});
Math.imul = Math.imul || function (d, h) {
var l = d & 65535, p = h & 65535;
return l * p + ((d >>> 16 & 65535) * p + l * (h >>> 16 & 65535) << 16 >>> 0) | 0
};
function _instanceof(d, h) {
return null != h && "undefined" !== typeof Symbol && h[Symbol.hasInstance] ? !!h[Symbol.hasInstance](d) : d instanceof h
}
function _inherits(d, h) {
if ("function" !== typeof h && null !== h) throw new TypeError("Super expression must either be null or a function");
d.prototype = Object.create(h && h.prototype, {constructor: {value: d, writable: !0, configurable: !0}});
h && _setPrototypeOf(d, h)
}
function _setPrototypeOf(d, h) {
_setPrototypeOf = Object.setPrototypeOf || function (d, h) {
d.__proto__ = h;
return d
};
return _setPrototypeOf(d, h)
}
function _createSuper(d) {
var h = _isNativeReflectConstruct();
return function () {
var l = _getPrototypeOf(d);
if (h) var p = _getPrototypeOf(this).constructor,
l = Reflect.construct(l, arguments, p); else l = l.apply(this, arguments);
return _possibleConstructorReturn(this, l)
}
}
function _possibleConstructorReturn(d, h) {
return !h || "object" !== _typeof(h) && "function" !== typeof h ? _assertThisInitialized(d) : h
}
function _assertThisInitialized(d) {
if (void 0 === d) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return d
}
function _isNativeReflectConstruct() {
if ("undefined" === typeof Reflect || !Reflect.construct || Reflect.construct.sham) return !1;
if ("function" === typeof Proxy) return !0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], function () {
})), !0
} catch (d) {
return !1
}
}
function _getPrototypeOf(d) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function (d) {
return d.__proto__ || Object.getPrototypeOf(d)
};
return _getPrototypeOf(d)
}
function _createForOfIteratorHelper(d, h) {
var l;
if ("undefined" === typeof Symbol || null == d[Symbol.iterator]) {
if (Array.isArray(d) || (l = _unsupportedIterableToArray(d)) || h && d && "number" === typeof d.length) {
l && (d = l);
var p = 0, v = function () {
};
return {
s: v, n: function () {
return p >= d.length ? {done: !0} : {done: !1, value: d[p++]}
}, e: function (d) {
throw d;
}, f: v
}
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var z = !0,
B = !1, C;
return {
s: function () {
l = d[Symbol.iterator]()
}, n: function () {
var d = l.next();
z = d.done;
return d
}, e: function (d) {
B = !0;
C = d
}, f: function () {
try {
z || null == l["return"] || l["return"]()
} finally {
if (B) throw C;
}
}
}
}
function _classCallCheck(d, h) {
if (!_instanceof(d, h)) throw new TypeError("Cannot call a class as a function");
}
function _defineProperties(d, h) {
for (var l = 0; l < h.length; l++) {
var p = h[l];
p.enumerable = p.enumerable || !1;
p.configurable = !0;
"value" in p && (p.writable = !0);
Object.defineProperty(d, p.key, p)
}
}
function _createClass(d, h, l) {
h && _defineProperties(d.prototype, h);
l && _defineProperties(d, l);
return d
}
function _typeof(d) {
"@babel/helpers - typeof";
_typeof = "function" === typeof Symbol && "symbol" === typeof Symbol.iterator ? function (d) {
return typeof d
} : function (d) {
return d && "function" === typeof Symbol && d.constructor === Symbol && d !== Symbol.prototype ? "symbol" : typeof d
};
return _typeof(d)
}
function _toConsumableArray(d) {
return _arrayWithoutHoles(d) || _iterableToArray(d) || _unsupportedIterableToArray(d) || _nonIterableSpread()
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _iterableToArray(d) {
if ("undefined" !== typeof Symbol && Symbol.iterator in Object(d)) return Array.from(d)
}
function _arrayWithoutHoles(d) {
if (Array.isArray(d)) return _arrayLikeToArray(d)
}
function _slicedToArray(d, h) {
return _arrayWithHoles(d) || _iterableToArrayLimit(d, h) || _unsupportedIterableToArray(d, h) || _nonIterableRest()
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _unsupportedIterableToArray(d, h) {
if (d) {
if ("string" === typeof d) return _arrayLikeToArray(d, h);
var l = Object.prototype.toString.call(d).slice(8, -1);
"Object" === l && d.constructor && (l = d.constructor.name);
if ("Map" === l || "Set" === l) return Array.from(d);
if ("Arguments" === l || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)) return _arrayLikeToArray(d, h)
}
}
function _arrayLikeToArray(d, h) {
if (null == h || h > d.length) h = d.length;
for (var l = 0, p = Array(h); l < h; l++) p[l] = d[l];
return p
}
function _iterableToArrayLimit(d, h) {
if ("undefined" !== typeof Symbol && Symbol.iterator in Object(d)) {
var l = [], p = !0, v = !1, z = void 0;
try {
for (var B = d[Symbol.iterator](), C; !(p = (C = B.next()).done) && (l.push(C.value), !h || l.length !== h); p = !0) ;
} catch (H) {
v = !0, z = H
} finally {
try {
if (!p && null != B["return"]) B["return"]()
} finally {
if (v) throw z;
}
}
return l
}
}
function _arrayWithHoles(d) {
if (Array.isArray(d)) return d
}
var rough = function () {
function d(b, a, e) {
if (b && b.length) {
a = _slicedToArray(a, 2);
var c = a[0], f = a[1];
e *= Math.PI / 180;
var k = Math.cos(e), d = Math.sin(e);
b.forEach(function (a) {
var e = _slicedToArray(a, 2), b = e[0], e = e[1];
a[0] = (b - c) * k - (e - f) * d + c;
a[1] = (b - c) * d + (e - f) * k + f
})
}
}
function h(b) {
var a = b[0];
b = b[1];
return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2))
}
function l(b, a, e, c) {
var f = a[1] - b[1];
a = b[0] - a[0];
b = f * b[0] + a * b[1];
var k = c[1] - e[1];
c = e[0] - c[0];
e = k * e[0] + c * e[1];
var d = f * c - k * a;
return d ? [(c * b - a * e) / d, (f * e - k * b) /
d] : null
}
function p(b, a, e) {
var c = b.length;
if (3 > c) return !1;
var f = [Number.MAX_SAFE_INTEGER, e];
a = [a, e];
for (var k = e = 0; k < c; k++) {
var d = b[k], g = b[(k + 1) % c];
if (B(d, g, a, f)) {
if (0 === z(d, a, g)) return v(d, a, g);
e++
}
}
return 1 == e % 2
}
function v(b, a, e) {
return a[0] <= Math.max(b[0], e[0]) && a[0] >= Math.min(b[0], e[0]) && a[1] <= Math.max(b[1], e[1]) && a[1] >= Math.min(b[1], e[1])
}
function z(b, a, e) {
b = (a[1] - b[1]) * (e[0] - a[0]) - (a[0] - b[0]) * (e[1] - a[1]);
return 0 === b ? 0 : 0 < b ? 1 : 2
}
function B(b, a, e, c) {
var f = z(b, a, e), k = z(b, a, c), d = z(e, c, b), g = z(e, c, a);
return f !== k && d !== g || !(0 !== f || !v(b, e, a)) || !(0 !== k || !v(b, c, a)) || !(0 !== d || !v(e, b, c)) || !(0 !== g || !v(e, a, c))
}
function C(b, a) {
var e = [0, 0], c = Math.round(a.hachureAngle + 90);
c && d(b, e, c);
var f = function (a, e) {
var c = _toConsumableArray(a);
c[0].join(",") !== c[c.length - 1].join(",") && c.push([c[0][0], c[0][1]]);
var f = [];
if (c && 2 < c.length) {
var b = function () {
var a = e.hachureGap;
0 > a && (a = 4 * e.strokeWidth);
for (var a = Math.max(a, .1), b = [], k = 0; k < c.length - 1; k++) {
var g = c[k], d = c[k + 1];
if (g[1] !== d[1]) {
var n = Math.min(g[1], d[1]);
b.push({
ymin: n,
ymax: Math.max(g[1], d[1]),
x: n === g[1] ? g[0] : d[0],
islope: (d[0] - g[0]) / (d[1] - g[1])
})
}
}
if (b.sort(function (a, c) {
return a.ymin < c.ymin ? -1 : a.ymin > c.ymin ? 1 : a.x < c.x ? -1 : a.x > c.x ? 1 : a.ymax === c.ymax ? 0 : (a.ymax - c.ymax) / Math.abs(a.ymax - c.ymax)
}), !b.length) return {v: f};
for (var m = [], r = b[0].ymin; m.length || b.length;) {
if (b.length) {
k = -1;
for (g = 0; g < b.length && !(b[g].ymin > r); g++) k = g;
b.splice(0, k + 1).forEach(function (a) {
m.push({s: r, edge: a})
})
}
if (m = m.filter(function (a) {
return !(a.edge.ymax <= r)
}), m.sort(function (a, c) {
return a.edge.x ===
c.edge.x ? 0 : (a.edge.x - c.edge.x) / Math.abs(a.edge.x - c.edge.x)
}), 1 < m.length) for (k = 0; k < m.length; k += 2) {
g = k + 1;
if (g >= m.length) break;
f.push([[Math.round(m[k].edge.x), r], [Math.round(m[g].edge.x), r]])
}
r += a;
m.forEach(function (c) {
c.edge.x += a * c.edge.islope
})
}
}();
if ("object" === _typeof(b)) return b.v
}
return f
}(b, a);
return c && (d(b, e, -c), function (a, c, e) {
var f = [];
a.forEach(function (a) {
return f.push.apply(f, _toConsumableArray(a))
});
d(f, c, e)
}(f, e, -c)), f
}
function H(b) {
var a = [], e;
a:{
e = b;
for (var c = []; "" !== e;) {
if (!e.match(/^([ \t\r\n,]+)/)) if (e.match(/^([aAcChHlLmMqQsStTvVzZ])/)) c[c.length] =
{type: 0, text: RegExp.$1}; else {
if (!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) {
e = [];
break a
}
c[c.length] = {type: 1, text: "".concat(parseFloat(RegExp.$1))}
}
e = e.substr(RegExp.$1.length)
}
e = (c[c.length] = {type: 2, text: ""}, c)
}
for (var c = "BOD", f = 0, k = e[f]; 2 !== k.type;) {
var d = 0, g = [];
if ("BOD" === c) {
if ("M" !== k.text && "m" !== k.text) return H("M0,0" + b);
f++;
d = K[k.text];
c = k.text
} else 1 === k.type ? d = K[c] : (f++, d = K[k.text], c = k.text);
if (!(f + d < e.length)) throw Error("Path data ended short");
for (k = f; k < f + d; k++) {
var n =
e[k];
if (1 !== n.type) throw Error("Param not a number: " + c + "," + n.text);
g[g.length] = +n.text
}
if ("number" != typeof K[c]) throw Error("Bad segment: " + c);
a.push({key: c, data: g});
f += d;
k = e[f];
"M" === c && (c = "L");
"m" === c && (c = "l")
}
return a
}
function W(b) {
var a, e, c, f, k, d, g = 0, n = 0, m = 0, x = 0, w = [];
b = _createForOfIteratorHelper(b);
var t;
try {
for (b.s(); !(t = b.n()).done;) {
var h = t.value, q = h.data;
switch (h.key) {
case "M":
w.push({key: "M", data: _toConsumableArray(q)});
a = q;
e = _slicedToArray(a, 2);
g = e[0];
n = e[1];
a;
c = q;
f = _slicedToArray(c, 2);
m = f[0];
x = f[1];
c;
break;
case "m":
g += q[0];
n += q[1];
w.push({key: "M", data: [g, n]});
m = g;
x = n;
break;
case "L":
w.push({key: "L", data: _toConsumableArray(q)});
k = q;
d = _slicedToArray(k, 2);
g = d[0];
n = d[1];
k;
break;
case "l":
g += q[0];
n += q[1];
w.push({key: "L", data: [g, n]});
break;
case "C":
w.push({key: "C", data: _toConsumableArray(q)});
g = q[4];
n = q[5];
break;
case "c":
var l = q.map(function (a, c) {
return c % 2 ? a + n : a + g
});
w.push({key: "C", data: l});
g = l[4];
n = l[5];
break;
case "Q":
w.push({key: "Q", data: _toConsumableArray(q)});
g = q[2];
n = q[3];
break;
case "q":
var p = q.map(function (a, c) {
return c % 2 ? a + n : a + g
});
w.push({key: "Q", data: p});
g = p[2];
n = p[3];
break;
case "A":
w.push({key: "A", data: _toConsumableArray(q)});
g = q[5];
n = q[6];
break;
case "a":
g += q[5];
n += q[6];
w.push({key: "A", data: [q[0], q[1], q[2], q[3], q[4], g, n]});
break;
case "H":
w.push({key: "H", data: _toConsumableArray(q)});
g = q[0];
break;
case "h":
g += q[0];
w.push({key: "H", data: [g]});
break;
case "V":
w.push({key: "V", data: _toConsumableArray(q)});
n = q[0];
break;
case "v":
n += q[0];
w.push({key: "V", data: [n]});
break;
case "S":
w.push({
key: "S",
data: _toConsumableArray(q)
});
g = q[2];
n = q[3];
break;
case "s":
var u = q.map(function (a, c) {
return c % 2 ? a + n : a + g
});
w.push({key: "S", data: u});
g = u[2];
n = u[3];
break;
case "T":
w.push({key: "T", data: _toConsumableArray(q)});
g = q[0];
n = q[1];
break;
case "t":
g += q[0];
n += q[1];
w.push({key: "T", data: [g, n]});
break;
case "Z":
case "z":
w.push({key: "Z", data: []}), g = m, n = x
}
}
} catch (y) {
b.e(y)
} finally {
b.f()
}
return w
}
function X(b) {
var a, e, c, f, k, d, g = [], n = "", m = 0, x = 0, w = 0, t = 0, h = 0, q = 0;
b = _createForOfIteratorHelper(b);
var l;
try {
for (b.s(); !(l = b.n()).done;) {
var p =
l.value, u = p.key, y = p.data;
switch (u) {
case "M":
g.push({key: "M", data: _toConsumableArray(y)});
a = y;
e = _slicedToArray(a, 2);
m = e[0];
x = e[1];
a;
c = y;
f = _slicedToArray(c, 2);
w = f[0];
t = f[1];
c;
break;
case "C":
g.push({key: "C", data: _toConsumableArray(y)});
m = y[4];
x = y[5];
h = y[2];
q = y[3];
break;
case "L":
g.push({key: "L", data: _toConsumableArray(y)});
k = y;
d = _slicedToArray(k, 2);
m = d[0];
x = d[1];
k;
break;
case "H":
m = y[0];
g.push({key: "L", data: [m, x]});
break;
case "V":
x = y[0];
g.push({key: "L", data: [m, x]});
break;
case "S":
var F = 0, v = 0;
"C" === n ||
"S" === n ? (F = m + (m - h), v = x + (x - q)) : (F = m, v = x);
g.push({key: "C", data: [F, v].concat(_toConsumableArray(y))});
h = y[0];
q = y[1];
m = y[2];
x = y[3];
break;
case "T":
var z = _slicedToArray(y, 2), A = z[0], B = z[1], v = F = 0;
"Q" === n || "T" === n ? (F = m + (m - h), v = x + (x - q)) : (F = m, v = x);
g.push({
key: "C",
data: [m + 2 * (F - m) / 3, x + 2 * (v - x) / 3, A + 2 * (F - A) / 3, B + 2 * (v - B) / 3, A, B]
});
h = F;
q = v;
m = A;
x = B;
break;
case "Q":
var C = _slicedToArray(y, 4), D = C[0], G = C[1], E = C[2], H = C[3];
g.push({
key: "C",
data: [m + 2 * (D - m) / 3, x + 2 * (G - x) / 3, E + 2 * (D - E) / 3, H + 2 * (G - H) / 3, E, H]
});
h = D;
q = G;
m = E;
x = H;
break;
case "A":
var I =
Math.abs(y[0]), J = Math.abs(y[1]), K = y[2], N = y[3], O = y[4], L = y[5], M = y[6];
if (0 === I || 0 === J) g.push({
key: "C",
data: [m, x, L, M, L, M]
}), m = L, x = M; else if (m !== L || x !== M) Y(m, x, L, M, I, J, K, N, O).forEach(function (a) {
g.push({key: "C", data: a})
}), m = L, x = M;
break;
case "Z":
g.push({key: "Z", data: []}), m = w, x = t
}
n = u
}
} catch (ka) {
b.e(ka)
} finally {
b.f()
}
return g
}
function I(b, a, e) {
return [b * Math.cos(e) - a * Math.sin(e), b * Math.sin(e) + a * Math.cos(e)]
}
function Y(b, a, e, c, f, k, d, g, n, m) {
var r = (w = d, Math.PI * w / 180), w;
w = [];
var t, h, q;
if (m) q = _slicedToArray(m,
4), t = q[0], g = q[1], h = q[2], q = q[3]; else {
t = I(b, a, -r);
a = _slicedToArray(t, 2);
b = a[0];
a = a[1];
t;
t = I(e, c, -r);
c = _slicedToArray(t, 2);
e = c[0];
c = c[1];
t;
t = (b - e) / 2;
h = (a - c) / 2;
q = t * t / (f * f) + h * h / (k * k);
1 < q && (q = Math.sqrt(q), f *= q, k *= q);
q = f * f;
var l = k * k;
g = (g === n ? -1 : 1) * Math.sqrt(Math.abs((q * l - q * h * h - l * t * t) / (q * h * h + l * t * t)));
h = g * f * h / k + (b + e) / 2;
q = g * -k * t / f + (a + c) / 2;
t = Math.asin(parseFloat(((a - q) / k).toFixed(9)));
g = Math.asin(parseFloat(((c - q) / k).toFixed(9)));
b < h && (t = Math.PI - t);
e < h && (g = Math.PI - g);
0 > t && (t = 2 * Math.PI + t);
0 > g && (g = 2 * Math.PI + g);
n && t > g && (t -= 2 * Math.PI);
!n && g > t && (g -= 2 * Math.PI)
}
Math.abs(g - t) > 120 * Math.PI / 180 && (g = n && g > t ? t + 120 * Math.PI / 180 * 1 : t + 120 * Math.PI / 180 * -1, w = Y(e = h + f * Math.cos(g), c = q + k * Math.sin(g), e, c, f, k, d, 0, n, [g, g, h, q]));
d = Math.tan((g - t) / 4);
f = 4 / 3 * f * d;
d *= 4 / 3 * k;
k = [b, a];
b = [b + f * Math.sin(t), a - d * Math.cos(t)];
a = [e + f * Math.sin(g), c - d * Math.cos(g)];
e = [e, c];
if (b[0] = 2 * k[0] - b[0], b[1] = 2 * k[1] - b[1], m) return [b, a, e].concat(w);
w = [b, a, e].concat(w);
m = [];
for (e = 0; e < w.length; e += 3) c = I(w[e][0], w[e][1], r), b = I(w[e + 1][0], w[e + 1][1], r), a = I(w[e + 2][0], w[e +
2][1], r), m.push([c[0], c[1], b[0], b[1], a[0], a[1]]);
return m
}
function N(b, a, e) {
var c = (b || []).length;
if (2 < c) {
for (var f = [], k = 0; k < c - 1; k++) f.push.apply(f, _toConsumableArray(D(b[k][0], b[k][1], b[k + 1][0], b[k + 1][1], e)));
return a && f.push.apply(f, _toConsumableArray(D(b[c - 1][0], b[c - 1][1], b[0][0], b[0][1], e))), {
type: "path",
ops: f
}
}
return 2 === c ? {type: "path", ops: D(b[0][0], b[0][1], b[1][0], b[1][1], e)} : {type: "path", ops: []}
}
function la(b, a) {
var e = Z(b, 1 * (1 + .2 * a.roughness), a);
if (!a.disableMultiStroke) {
var c = 1.5 * (1 + .22 * a.roughness),
f = Object.assign({}, a);
f.randomizer = void 0;
a.seed && (f.seed = a.seed + 1);
c = Z(b, c, f);
e = e.concat(c)
}
return {type: "path", ops: e}
}
function aa(b, a, e) {
var c = 2 * Math.PI / Math.max(e.curveStepCount, e.curveStepCount / Math.sqrt(200) * Math.sqrt(2 * Math.PI * Math.sqrt((Math.pow(b / 2, 2) + Math.pow(a / 2, 2)) / 2)));
b = Math.abs(b / 2);
a = Math.abs(a / 2);
var f = 1 - e.curveFitting;
return b += u(b * f, e), a += u(a * f, e), {increment: c, rx: b, ry: a}
}
function T(b, a, e, c) {
var f = ba(c.increment, b, a, c.rx, c.ry, 1, c.increment * O(.1, O(.4, 1, e), e), e), k = _slicedToArray(f, 2),
f = k[1], k = P(k[0], null, e);
e.disableMultiStroke || (b = ba(c.increment, b, a, c.rx, c.ry, 1.5, 0, e), b = _slicedToArray(b, 1)[0], e = P(b, null, e), k = k.concat(e));
return {estimatedPoints: f, opset: {type: "path", ops: k}}
}
function ca(b, a, e, c, f, k, d, g, n) {
e = Math.abs(e / 2);
c = Math.abs(c / 2);
e += u(.01 * e, n);
for (c += u(.01 * c, n); 0 > f;) f += 2 * Math.PI, k += 2 * Math.PI;
k - f > 2 * Math.PI && (f = 0, k = 2 * Math.PI);
var m = Math.min(2 * Math.PI / n.curveStepCount / 2, (k - f) / 2), r = da(m, b, a, e, c, f, k, 1, n);
n.disableMultiStroke || (m = da(m, b, a, e, c, f, k, 1.5, n), r.push.apply(r, _toConsumableArray(m)));
return d && (g ? r.push.apply(r, _toConsumableArray(D(b, a, b + e * Math.cos(f), a + c * Math.sin(f), n)).concat(_toConsumableArray(D(b, a, b + e * Math.cos(k), a + c * Math.sin(k), n)))) : r.push({
op: "lineTo",
data: [b, a]
}, {op: "lineTo", data: [b + e * Math.cos(f), a + c * Math.sin(f)]})), {type: "path", ops: r}
}
function J(b, a) {
var e = [];
if (b.length) {
var c = a.maxRandomnessOffset || 0, f = b.length;
if (2 < f) {
e.push({op: "move", data: [b[0][0] + u(c, a), b[0][1] + u(c, a)]});
for (var k = 1; k < f; k++) e.push({op: "lineTo", data: [b[k][0] + u(c, a), b[k][1] + u(c, a)]})
}
}
return {
type: "fillPath",
ops: e
}
}
function G(b, a) {
var e = ma, c = a.fillStyle || "hachure";
if (!A[c]) switch (c) {
case "zigzag":
A[c] || (A[c] = new na(e));
break;
case "cross-hatch":
A[c] || (A[c] = new oa(e));
break;
case "dots":
A[c] || (A[c] = new pa(e));
break;
case "dashed":
A[c] || (A[c] = new qa(e));
break;
case "zigzag-line":
A[c] || (A[c] = new ra(e));
break;
default:
c = "hachure", A[c] || (A[c] = new U(e))
}
return A[c].fillPolygon(b, a)
}
function ea(b) {
return b.randomizer || (b.randomizer = new sa(b.seed || 0)), b.randomizer.next()
}
function O(b, a, e) {
return e.roughness * (3 < arguments.length &&
void 0 !== arguments[3] ? arguments[3] : 1) * (ea(e) * (a - b) + b)
}
function u(b, a) {
return O(-b, b, a, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1)
}
function D(b, a, e, c, f) {
var k = 5 < arguments.length && void 0 !== arguments[5] && arguments[5] ? f.disableMultiStrokeFill : f.disableMultiStroke,
d = fa(b, a, e, c, f, !0, !1);
if (k) return d;
k = fa(b, a, e, c, f, !0, !0);
return d.concat(k)
}
function fa(b, a, e, c, f, k, d) {
var g = Math.pow(b - e, 2) + Math.pow(a - c, 2), n = Math.sqrt(g), m = 1,
m = 200 > n ? 1 : 500 < n ? .4 : -.0016668 * n + 1.233334, r = f.maxRandomnessOffset || 0;
r * r * 100 > g && (r = n / 10);
var h = r / 2, g = .2 + .2 * ea(f), n = f.bowing * f.maxRandomnessOffset * (c - a) / 200,
t = f.bowing * f.maxRandomnessOffset * (b - e) / 200, n = u(n, f, m), t = u(t, f, m), l = [],
q = function () {
return u(h, f, m)
}, p = function () {
return u(r, f, m)
}, v = f.preserveVertices;
return k && (d ? l.push({op: "move", data: [b + (v ? 0 : q()), a + (v ? 0 : q())]}) : l.push({
op: "move",
data: [b + (v ? 0 : u(r, f, m)), a + (v ? 0 : u(r, f, m))]
})), d ? l.push({
op: "bcurveTo",
data: [n + b + (e - b) * g + q(), t + a + (c - a) * g + q(), n + b + 2 * (e - b) * g + q(), t + a + 2 * (c - a) * g + q(), e + (v ? 0 : q()), c + (v ? 0 : q())]
}) : l.push({
op: "bcurveTo",
data: [n + b + (e - b) * g + p(), t + a + (c - a) * g + p(), n + b + 2 * (e - b) * g + p(), t + a + 2 * (c - a) * g + p(), e + (v ? 0 : p()), c + (v ? 0 : p())]
}), l
}
function Z(b, a, e) {
var c = [];
c.push([b[0][0] + u(a, e), b[0][1] + u(a, e)]);
c.push([b[0][0] + u(a, e), b[0][1] + u(a, e)]);
for (var f = 1; f < b.length; f++) c.push([b[f][0] + u(a, e), b[f][1] + u(a, e)]), f === b.length - 1 && c.push([b[f][0] + u(a, e), b[f][1] + u(a, e)]);
return P(c, null, e)
}
function P(b, a, e) {
var c = b.length, f = [];
if (3 < c) {
var k = [], d = 1 - e.curveTightness;
f.push({op: "move", data: [b[1][0], b[1][1]]});
for (var g = 1; g + 2 < c; g++) {
var n = b[g];
k[0] = [n[0], n[1]];
k[1] = [n[0] + (d * b[g + 1][0] - d * b[g - 1][0]) / 6, n[1] + (d * b[g + 1][1] - d * b[g - 1][1]) / 6];
k[2] = [b[g + 1][0] + (d * b[g][0] - d * b[g + 2][0]) / 6, b[g + 1][1] + (d * b[g][1] - d * b[g + 2][1]) / 6];
k[3] = [b[g + 1][0], b[g + 1][1]];
f.push({op: "bcurveTo", data: [k[1][0], k[1][1], k[2][0], k[2][1], k[3][0], k[3][1]]})
}
a && 2 === a.length && (b = e.maxRandomnessOffset, f.push({
op: "lineTo",
data: [a[0] + u(b, e), a[1] + u(b, e)]
}))
} else 3 === c ? (f.push({op: "move", data: [b[1][0], b[1][1]]}), f.push({
op: "bcurveTo",
data: [b[1][0], b[1][1], b[2][0], b[2][1], b[2][0], b[2][1]]
})) :
2 === c && f.push.apply(f, _toConsumableArray(D(b[0][0], b[0][1], b[1][0], b[1][1], e)));
return f
}
function ba(b, a, e, c, f, k, d, g) {
var n = [], m = [], r = u(.5, g) - Math.PI / 2;
m.push([u(k, g) + a + .9 * c * Math.cos(r - b), u(k, g) + e + .9 * f * Math.sin(r - b)]);
for (var h = r; h < 2 * Math.PI + r - .01; h += b) {
var t = [u(k, g) + a + c * Math.cos(h), u(k, g) + e + f * Math.sin(h)];
n.push(t);
m.push(t)
}
return m.push([u(k, g) + a + c * Math.cos(r + 2 * Math.PI + .5 * d), u(k, g) + e + f * Math.sin(r + 2 * Math.PI + .5 * d)]), m.push([u(k, g) + a + .98 * c * Math.cos(r + d), u(k, g) + e + .98 * f * Math.sin(r + d)]), m.push([u(k,
g) + a + .9 * c * Math.cos(r + .5 * d), u(k, g) + e + .9 * f * Math.sin(r + .5 * d)]), [m, n]
}
function da(b, a, e, c, f, k, d, g, n) {
var m = k + u(.1, n);
k = [];
for (k.push([u(g, n) + a + .9 * c * Math.cos(m - b), u(g, n) + e + .9 * f * Math.sin(m - b)]); m <= d; m += b) k.push([u(g, n) + a + c * Math.cos(m), u(g, n) + e + f * Math.sin(m)]);
return k.push([a + c * Math.cos(d), e + f * Math.sin(d)]), k.push([a + c * Math.cos(d), e + f * Math.sin(d)]), P(k, null, n)
}
function ta(b, a, e, c, f, d, r, g) {
for (var k = [], m = [g.maxRandomnessOffset || 1, (g.maxRandomnessOffset || 1) + .3], h, w = g.disableMultiStroke ? 1 : 2, t = g.preserveVertices,
l = 0; l < w; l++) 0 === l ? k.push({op: "move", data: [r[0], r[1]]}) : k.push({
op: "move",
data: [r[0] + (t ? 0 : u(m[0], g)), r[1] + (t ? 0 : u(m[0], g))]
}), h = t ? [f, d] : [f + u(m[l], g), d + u(m[l], g)], k.push({
op: "bcurveTo",
data: [b + u(m[l], g), a + u(m[l], g), e + u(m[l], g), c + u(m[l], g), h[0], h[1]]
});
return k
}
function Q(b, a) {
return Math.pow(b[0] - a[0], 2) + Math.pow(b[1] - a[1], 2)
}
function E(b, a, e) {
return [b[0] + (a[0] - b[0]) * e, b[1] + (a[1] - b[1]) * e]
}
function V(b, a, e, c) {
c = c || [];
var f = b[a + 0], d = b[a + 1], r = b[a + 2], g = b[a + 3], n = 3 * d[0] - 2 * f[0] - g[0], n = n * n,
d = 3 * d[1] - 2 * f[1] - g[1],
d = d * d, m = 3 * r[0] - 2 * g[0] - f[0], m = m * m, f = 3 * r[1] - 2 * g[1] - f[1];
(f *= f, n < m && (n = m), d < f && (d = f), n + d) < e ? (e = b[a + 0], c.length ? 1 < (h = c[c.length - 1], l = e, Math.sqrt(Q(h, l))) && c.push(e) : c.push(e), c.push(b[a + 3])) : (h = b[a + 0], n = b[a + 1], l = b[a + 2], b = b[a + 3], a = E(h, n, .5), f = E(n, l, .5), l = E(l, b, .5), n = E(a, f, .5), f = E(f, l, .5), r = E(n, f, .5), V([h, a, n, r], 0, e, c), V([r, f, l, b], 0, e, c));
var h, l;
return c
}
function R(b, a, e, c, f) {
f = f || [];
for (var d = b[a], r = b[e - 1], g = 0, n = 1, m = a + 1; m < e - 1; ++m) {
var h;
h = b[m];
var l = d, t = r, p = Q(l, t);
0 === p ? h = Q(h, l) : (p = ((h[0] - l[0]) * (t[0] -
l[0]) + (h[1] - l[1]) * (t[1] - l[1])) / p, h = (p = Math.max(0, Math.min(1, p)), Q(h, E(l, t, p))));
h > g && (g = h, n = m)
}
return Math.sqrt(g) > c ? (R(b, a, n + 1, c, f), R(b, n, e, c, f)) : (f.length || f.push(d), f.push(r)), f
}
function ga(b) {
for (var a = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : .15, e = 2 < arguments.length ? arguments[2] : void 0, c = [], f = (b.length - 1) / 3, d = 0; d < f; d++) V(b, 3 * d, a, c);
return e && 0 < e ? R(c, 0, c.length, e) : c
}
var U = function () {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon", value: function (a,
e) {
return this._fillPolygon(a, e)
}
}, {
key: "_fillPolygon", value: function (a, e) {
var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !1, f = C(a, e);
c && (c = this.connectingLines(a, f), f = f.concat(c));
return {type: "fillSketch", ops: this.renderLines(f, e)}
}
}, {
key: "renderLines", value: function (a, e) {
var c = [], f = _createForOfIteratorHelper(a), b;
try {
for (f.s(); !(b = f.n()).done;) {
var d = b.value;
c.push.apply(c, _toConsumableArray(this.helper.doubleLineOps(d[0][0], d[0][1], d[1][0], d[1][1], e)))
}
} catch (g) {
f.e(g)
} finally {
f.f()
}
return c
}
},
{
key: "connectingLines", value: function (a, e) {
var c = [];
if (1 < e.length) for (var f = 1; f < e.length; f++) {
var b = e[f - 1];
3 > h(b) || (b = [e[f][0], b[1]], 3 < h(b) && (b = this.splitOnIntersections(a, b), c.push.apply(c, _toConsumableArray(b))))
}
return c
}
}, {
key: "midPointInPolygon", value: function (a, e) {
return p(a, (e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2)
}
}, {
key: "splitOnIntersections", value: function (a, e) {
for (var c = Math.max(5, .1 * h(e)), b = [], d = 0; d < a.length; d++) {
var r = a[d], g = a[(d + 1) % a.length];
if (B.apply(void 0, [r, g].concat(_toConsumableArray(e))) &&
(r = l(r, g, e[0], e[1]))) {
var g = h([r, e[0]]), n = h([r, e[1]]);
g > c && n > c && b.push({point: r, distance: g})
}
}
if (1 < b.length) {
c = b.sort(function (a, c) {
return a.distance - c.distance
}).map(function (a) {
return a.point
});
if (p.apply(void 0, [a].concat(_toConsumableArray(e[0]))) || c.shift(), p.apply(void 0, [a].concat(_toConsumableArray(e[1]))) || c.pop(), 1 >= c.length) return this.midPointInPolygon(a, e) ? [e] : [];
c = [e[0]].concat(_toConsumableArray(c), [e[1]]);
b = [];
for (d = 0; d < c.length - 1; d += 2) r = [c[d], c[d + 1]], this.midPointInPolygon(a, r) &&
b.push(r);
return b
}
return this.midPointInPolygon(a, e) ? [e] : []
}
}]);
return b
}(), na = function (b) {
function a() {
_classCallCheck(this, a);
return e.apply(this, arguments)
}
_inherits(a, b);
var e = _createSuper(a);
_createClass(a, [{
key: "fillPolygon", value: function (a, e) {
return this._fillPolygon(a, e, !0)
}
}]);
return a
}(U), oa = function (b) {
function a() {
_classCallCheck(this, a);
return e.apply(this, arguments)
}
_inherits(a, b);
var e = _createSuper(a);
_createClass(a, [{
key: "fillPolygon", value: function (a, e) {
var c = this._fillPolygon(a,
e), b = Object.assign({}, e, {hachureAngle: e.hachureAngle + 90}), b = this._fillPolygon(a, b);
return c.ops = c.ops.concat(b.ops), c
}
}]);
return a
}(U), pa = function () {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon", value: function (a, e) {
var c = C(a, e = Object.assign({}, e, {curveStepCount: 4, hachureAngle: 0, roughness: 1}));
return this.dotsOnLines(c, e)
}
}, {
key: "dotsOnLines", value: function (a, e) {
var c = [], b = e.hachureGap;
0 > b && (b = 4 * e.strokeWidth);
var b = Math.max(b, .1), d = e.fillWeight;
0 > d && (d = e.strokeWidth /
2);
var r = b / 4, g = _createForOfIteratorHelper(a), n;
try {
for (g.s(); !(n = g.n()).done;) for (var m = n.value, l = h(m), w = Math.ceil(l / b) - 1, t = l - w * b, p = (m[0][0] + m[1][0]) / 2 - b / 4, q = Math.min(m[0][1], m[1][1]), u = 0; u < w; u++) {
var v = q + t + u * b, z = this.helper.randOffsetWithRange(p - r, p + r, e),
y = this.helper.randOffsetWithRange(v - r, v + r, e),
F = this.helper.ellipse(z, y, d, d, e);
c.push.apply(c, _toConsumableArray(F.ops))
}
} catch (ha) {
g.e(ha)
} finally {
g.f()
}
return {type: "fillSketch", ops: c}
}
}]);
return b
}(), qa = function () {
function b(a) {
_classCallCheck(this,
b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon", value: function (a, e) {
var c = C(a, e);
return {type: "fillSketch", ops: this.dashedLine(c, e)}
}
}, {
key: "dashedLine", value: function (a, e) {
var c = this, b = 0 > e.dashOffset ? 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap : e.dashOffset,
d = 0 > e.dashGap ? 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap : e.dashGap, r = [];
return a.forEach(function (a) {
var f = h(a), g = Math.floor(f / (b + d)), f = (f + d - g * (b + d)) / 2, k = a[0], l = a[1];
k[0] > l[0] && (k = a[1], l = a[0]);
a = Math.atan((l[1] - k[1]) / (l[0] - k[0]));
for (l = 0; l <
g; l++) {
var t = l * (b + d), p = t + b,
t = [k[0] + t * Math.cos(a) + f * Math.cos(a), k[1] + t * Math.sin(a) + f * Math.sin(a)],
p = [k[0] + p * Math.cos(a) + f * Math.cos(a), k[1] + p * Math.sin(a) + f * Math.sin(a)];
r.push.apply(r, _toConsumableArray(c.helper.doubleLineOps(t[0], t[1], p[0], p[1], e)))
}
}), r
}
}]);
return b
}(), ra = function () {
function b(a) {
_classCallCheck(this, b);
this.helper = a
}
_createClass(b, [{
key: "fillPolygon", value: function (a, e) {
var c = 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap,
b = 0 > e.zigzagOffset ? c : e.zigzagOffset, c = C(a, e = Object.assign({},
e, {hachureGap: c + b}));
return {type: "fillSketch", ops: this.zigzagLines(c, b, e)}
}
}, {
key: "zigzagLines", value: function (a, e, c) {
var b = this, d = [];
return a.forEach(function (a) {
var f = h(a), f = Math.round(f / (2 * e)), k = a[0], m = a[1];
k[0] > m[0] && (k = a[1], m = a[0]);
a = Math.atan((m[1] - k[1]) / (m[0] - k[0]));
for (m = 0; m < f; m++) {
var l = 2 * m * e, r = 2 * (m + 1) * e, t = Math.sqrt(2 * Math.pow(e, 2)),
l = [k[0] + l * Math.cos(a), k[1] + l * Math.sin(a)],
r = [k[0] + r * Math.cos(a), k[1] + r * Math.sin(a)],
t = [l[0] + t * Math.cos(a + Math.PI / 4), l[1] + t * Math.sin(a + Math.PI / 4)];
d.push.apply(d,
_toConsumableArray(b.helper.doubleLineOps(l[0], l[1], t[0], t[1], c)).concat(_toConsumableArray(b.helper.doubleLineOps(t[0], t[1], r[0], r[1], c))))
}
}), d
}
}]);
return b
}(), A = {}, sa = function () {
function b(a) {
_classCallCheck(this, b);
this.seed = a
}
_createClass(b, [{
key: "next", value: function () {
return this.seed ? (Math.pow(2, 31) - 1 & (this.seed = Math.imul(48271, this.seed))) / Math.pow(2, 31) : Math.random()
}
}]);
return b
}(), K = {
A: 7,
a: 7,
C: 6,
c: 6,
H: 1,
h: 1,
L: 2,
l: 2,
M: 2,
m: 2,
Q: 4,
q: 4,
S: 4,
s: 4,
T: 2,
t: 2,
V: 1,
v: 1,
Z: 0,
z: 0
}, ma = {
randOffset: function (b,
a) {
return u(b, a)
}, randOffsetWithRange: function (b, a, e) {
return O(b, a, e)
}, ellipse: function (b, a, e, c, d) {
e = aa(e, c, d);
return T(b, a, d, e).opset
}, doubleLineOps: function (b, a, e, c, d) {
return D(b, a, e, c, d, !0)
}
}, S = function () {
function b(a) {
_classCallCheck(this, b);
this.defaultOptions = {
maxRandomnessOffset: 2,
roughness: 1,
bowing: 1,
stroke: "#000",
strokeWidth: 1,
curveTightness: 0,
curveFitting: .95,
curveStepCount: 9,
fillStyle: "hachure",
fillWeight: -1,
hachureAngle: -41,
hachureGap: -1,
dashOffset: -1,
dashGap: -1,
zigzagOffset: -1,
seed: 0,
combineNestedSvgPaths: !1,
disableMultiStroke: !1,
disableMultiStrokeFill: !1,
preserveVertices: !1
};
this.config = a || {};
this.config.options && (this.defaultOptions = this._o(this.config.options))
}
_createClass(b, [{
key: "_o", value: function (a) {
return a ? Object.assign({}, this.defaultOptions, a) : this.defaultOptions
}
}, {
key: "_d", value: function (a, e, c) {
return {shape: a, sets: e || [], options: c || this.defaultOptions}
}
}, {
key: "line", value: function (a, e, c, b, d) {
d = this._o(d);
return this._d("line", [{type: "path", ops: D(a, e, c, b, d)}], d)
}
},
{
key: "rectangle", value: function (a, e, c, b, d) {
d = this._o(d);
var f = [], g;
g = N([[a, e], [a + c, e], [a + c, e + b], [a, e + b]], !0, d);
d.fill && (a = [[a, e], [a + c, e], [a + c, e + b], [a, e + b]], "solid" === d.fillStyle ? f.push(J(a, d)) : f.push(G(a, d)));
return "none" !== d.stroke && f.push(g), this._d("rectangle", f, d)
}
}, {
key: "ellipse", value: function (a, e, c, b, d) {
d = this._o(d);
var f = [];
b = aa(c, b, d);
c = T(a, e, d, b);
d.fill && ("solid" === d.fillStyle ? (a = T(a, e, d, b).opset, a.type = "fillPath", f.push(a)) : f.push(G(c.estimatedPoints, d)));
return "none" !== d.stroke && f.push(c.opset),
this._d("ellipse", f, d)
}
}, {
key: "circle", value: function (a, e, c, b) {
a = this.ellipse(a, e, c, c, b);
return a.shape = "circle", a
}
}, {
key: "linearPath", value: function (a, e) {
var c = this._o(e);
return this._d("linearPath", [N(a, !1, c)], c)
}
}, {
key: "arc", value: function (a, e, c, b, d, h) {
var f = 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1,
k = this._o(7 < arguments.length ? arguments[7] : void 0), m = [],
l = ca(a, e, c, b, d, h, f, !0, k);
f && k.fill && ("solid" === k.fillStyle ? (f = ca(a, e, c, b, d, h, !0, !1, k), f.type = "fillPath", m.push(f)) : m.push(function (a,
c, e, b, d, f, g) {
e = Math.abs(e / 2);
b = Math.abs(b / 2);
e += u(.01 * e, g);
for (b += u(.01 * b, g); 0 > d;) d += 2 * Math.PI, f += 2 * Math.PI;
f - d > 2 * Math.PI && (d = 0, f = 2 * Math.PI);
for (var k = (f - d) / g.curveStepCount, m = []; d <= f; d += k) m.push([a + e * Math.cos(d), c + b * Math.sin(d)]);
return m.push([a + e * Math.cos(f), c + b * Math.sin(f)]), m.push([a, c]), G(m, g)
}(a, e, c, b, d, h, k)));
return "none" !== k.stroke && m.push(l), this._d("arc", m, k)
}
}, {
key: "curve", value: function (a, e) {
var c = this._o(e), b = [], d = la(a, c);
if (c.fill && "none" !== c.fill && 3 <= a.length) {
var h = ga(function (a) {
var c =
1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0, e = a.length;
if (3 > e) throw Error("A curve must have at least three points.");
var b = [];
if (3 === e) b.push(_toConsumableArray(a[0]), _toConsumableArray(a[1]), _toConsumableArray(a[2]), _toConsumableArray(a[2])); else {
e = [];
e.push(a[0], a[0]);
for (var d = 1; d < a.length; d++) e.push(a[d]), d === a.length - 1 && e.push(a[d]);
d = [];
c = 1 - c;
b.push(_toConsumableArray(e[0]));
for (var f = 1; f + 2 < e.length; f++) {
var g = e[f];
d[0] = [g[0], g[1]];
d[1] = [g[0] + (c * e[f + 1][0] - c * e[f - 1][0]) / 6, g[1] + (c *
e[f + 1][1] - c * e[f - 1][1]) / 6];
d[2] = [e[f + 1][0] + (c * e[f][0] - c * e[f + 2][0]) / 6, e[f + 1][1] + (c * e[f][1] - c * e[f + 2][1]) / 6];
d[3] = [e[f + 1][0], e[f + 1][1]];
b.push(d[1], d[2], d[3])
}
}
return b
}(a), 10, (1 + c.roughness) / 2);
"solid" === c.fillStyle ? b.push(J(h, c)) : b.push(G(h, c))
}
return "none" !== c.stroke && b.push(d), this._d("curve", b, c)
}
}, {
key: "polygon", value: function (a, e) {
var c = this._o(e), b = [], d = N(a, !0, c);
return c.fill && ("solid" === c.fillStyle ? b.push(J(a, c)) : b.push(G(a, c))), "none" !== c.stroke && b.push(d), this._d("polygon", b, c)
}
}, {
key: "path",
value: function (a, e) {
var c = this._o(e), b = [];
if (!a) return this._d("path", b, c);
a = (a || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " ");
var d = c.fill && "transparent" !== c.fill && "none" !== c.fill, h = "none" !== c.stroke,
g = !!(c.simplification && 1 > c.simplification), l = function (a, c, e) {
var b = X(W(H(a))), d = [], f = [];
a = [0, 0];
var g = [], k = function () {
var a;
4 <= g.length && (a = f).push.apply(a, _toConsumableArray(ga(g, c)));
g = []
}, h = function () {
k();
f.length && (d.push(f), f = [])
}, b = _createForOfIteratorHelper(b), l;
try {
for (b.s(); !(l =
b.n()).done;) {
var m = l.value, n = m.data;
switch (m.key) {
case "M":
h();
a = [n[0], n[1]];
f.push(a);
break;
case "L":
k();
f.push([n[0], n[1]]);
break;
case "C":
if (!g.length) {
var r = f.length ? f[f.length - 1] : a;
g.push([r[0], r[1]])
}
g.push([n[0], n[1]]);
g.push([n[2], n[3]]);
g.push([n[4], n[5]]);
break;
case "Z":
k(), f.push([a[0], a[1]])
}
}
} catch (ja) {
b.e(ja)
} finally {
b.f()
}
if (h(), !e) return d;
l = [];
for (m = 0; m < d.length; m++) n = d[m], n = R(n, 0, n.length, e), n.length && l.push(n);
return l
}(a, 1, g ? 4 - 4 * c.simplification : (1 + c.roughness) / 2);
if (d) if (c.combineNestedSvgPaths) {
var m =
[];
l.forEach(function (a) {
return m.push.apply(m, _toConsumableArray(a))
});
"solid" === c.fillStyle ? b.push(J(m, c)) : b.push(G(m, c))
} else l.forEach(function (a) {
"solid" === c.fillStyle ? b.push(J(a, c)) : b.push(G(a, c))
});
return h && (g ? l.forEach(function (a) {
b.push(N(a, !1, c))
}) : b.push(function (a, c) {
var e = X(W(H(a))), b = [], d = [0, 0], f = [0, 0], e = _createForOfIteratorHelper(e), g;
try {
for (e.s(); !(g = e.n()).done;) {
var k = g.value, h = k.data;
switch (k.key) {
case "M":
if ("break" === function () {
var a = 1 * (c.maxRandomnessOffset || 0), e = c.preserveVertices;
b.push({
op: "move", data: h.map(function (b) {
return b + (e ? 0 : u(a, c))
})
});
f = [h[0], h[1]];
d = [h[0], h[1]];
return "break"
}()) break;
case "L":
b.push.apply(b, _toConsumableArray(D(f[0], f[1], h[0], h[1], c)));
f = [h[0], h[1]];
break;
case "C":
var l = _slicedToArray(h, 6), m = l[4], n = l[5];
b.push.apply(b, _toConsumableArray(ta(l[0], l[1], l[2], l[3], m, n, f, c)));
f = [m, n];
break;
case "Z":
b.push.apply(b, _toConsumableArray(D(f[0], f[1], d[0], d[1], c))), f = [d[0], d[1]]
}
}
} catch (ia) {
e.e(ia)
} finally {
e.f()
}
return {type: "path", ops: b}
}(a, c))), this._d("path",
b, c)
}
}, {
key: "opsToPath", value: function (a, e) {
var c = "", b = _createForOfIteratorHelper(a.ops), d;
try {
for (b.s(); !(d = b.n()).done;) {
var h = d.value, g = "number" == typeof e && 0 <= e ? h.data.map(function (a) {
return +a.toFixed(e)
}) : h.data;
switch (h.op) {
case "move":
c += "M".concat(g[0], " ").concat(g[1], " ");
break;
case "bcurveTo":
c += "C".concat(g[0], " ").concat(g[1], ", ").concat(g[2], " ").concat(g[3], ", ").concat(g[4], " ").concat(g[5], " ");
break;
case "lineTo":
c += "L".concat(g[0], " ").concat(g[1], " ")
}
}
} catch (n) {
b.e(n)
} finally {
b.f()
}
return c.trim()
}
},
{
key: "toPaths", value: function (a) {
var e = a.options || this.defaultOptions, c = [];
a = _createForOfIteratorHelper(a.sets || []);
var b;
try {
for (a.s(); !(b = a.n()).done;) {
var d = b.value, h = null;
switch (d.type) {
case "path":
h = {
d: this.opsToPath(d),
stroke: e.stroke,
strokeWidth: e.strokeWidth,
fill: "none"
};
break;
case "fillPath":
h = {d: this.opsToPath(d), stroke: "none", strokeWidth: 0, fill: e.fill || "none"};
break;
case "fillSketch":
h = this.fillSketch(d, e)
}
h && c.push(h)
}
} catch (g) {
a.e(g)
} finally {
a.f()
}
return c
}
}, {
key: "fillSketch", value: function (a,
e) {
var c = e.fillWeight;
return 0 > c && (c = e.strokeWidth / 2), {
d: this.opsToPath(a),
stroke: e.fill || "none",
strokeWidth: c,
fill: "none"
}
}
}], [{
key: "newSeed", value: function () {
return Math.floor(Math.random() * Math.pow(2, 31))
}
}]);
return b
}(), ua = function () {
function b(a, e) {
_classCallCheck(this, b);
this.canvas = a;
this.ctx = this.canvas.getContext("2d");
this.gen = new S(e)
}
_createClass(b, [{
key: "draw", value: function (a) {
var e = a.sets || [], c = a.options || this.getDefaultOptions(), b = this.ctx,
e = _createForOfIteratorHelper(e), d;
try {
for (e.s(); !(d =
e.n()).done;) {
var h = d.value;
switch (h.type) {
case "path":
b.save();
b.strokeStyle = "none" === c.stroke ? "transparent" : c.stroke;
b.lineWidth = c.strokeWidth;
c.strokeLineDash && b.setLineDash(c.strokeLineDash);
c.strokeLineDashOffset && (b.lineDashOffset = c.strokeLineDashOffset);
this._drawToContext(b, h);
b.restore();
break;
case "fillPath":
b.save();
b.fillStyle = c.fill || "";
this._drawToContext(b, h, "curve" === a.shape || "polygon" === a.shape ? "evenodd" : "nonzero");
b.restore();
break;
case "fillSketch":
this.fillSketch(b, h, c)
}
}
} catch (g) {
e.e(g)
} finally {
e.f()
}
}
},
{
key: "fillSketch", value: function (a, e, c) {
var b = c.fillWeight;
0 > b && (b = c.strokeWidth / 2);
a.save();
c.fillLineDash && a.setLineDash(c.fillLineDash);
c.fillLineDashOffset && (a.lineDashOffset = c.fillLineDashOffset);
a.strokeStyle = c.fill || "";
a.lineWidth = b;
this._drawToContext(a, e);
a.restore()
}
}, {
key: "_drawToContext", value: function (a, e) {
var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "nonzero";
a.beginPath();
var b = _createForOfIteratorHelper(e.ops), d;
try {
for (b.s(); !(d = b.n()).done;) {
var h = d.value, g = h.data;
switch (h.op) {
case "move":
a.moveTo(g[0], g[1]);
break;
case "bcurveTo":
a.bezierCurveTo(g[0], g[1], g[2], g[3], g[4], g[5]);
break;
case "lineTo":
a.lineTo(g[0], g[1])
}
}
} catch (n) {
b.e(n)
} finally {
b.f()
}
"fillPath" === e.type ? a.fill(c) : a.stroke()
}
}, {
key: "getDefaultOptions", value: function () {
return this.gen.defaultOptions
}
}, {
key: "line", value: function (a, b, c, d, k) {
a = this.gen.line(a, b, c, d, k);
return this.draw(a), a
}
}, {
key: "rectangle", value: function (a, b, c, d, k) {
a = this.gen.rectangle(a, b, c, d, k);
return this.draw(a), a
}
}, {
key: "ellipse",
value: function (a, b, c, d, k) {
a = this.gen.ellipse(a, b, c, d, k);
return this.draw(a), a
}
}, {
key: "circle", value: function (a, b, c, d) {
a = this.gen.circle(a, b, c, d);
return this.draw(a), a
}
}, {
key: "linearPath", value: function (a, b) {
var c = this.gen.linearPath(a, b);
return this.draw(c), c
}
}, {
key: "polygon", value: function (a, b) {
var c = this.gen.polygon(a, b);
return this.draw(c), c
}
}, {
key: "arc", value: function (a, b, c, d, k, h) {
var e = this.gen.arc(a, b, c, d, k, h, 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, 7 < arguments.length ? arguments[7] :
void 0);
return this.draw(e), e
}
}, {
key: "curve", value: function (a, b) {
var c = this.gen.curve(a, b);
return this.draw(c), c
}
}, {
key: "path", value: function (a, b) {
var c = this.gen.path(a, b);
return this.draw(c), c
}
}, {
key: "generator", get: function () {
return this.gen
}
}]);
return b
}(), va = function () {
function b(a, e) {
_classCallCheck(this, b);
this.svg = a;
this.gen = new S(e)
}
_createClass(b, [{
key: "draw", value: function (a) {
var b = a.sets || [], c = a.options || this.getDefaultOptions(),
d = this.svg.ownerDocument || window.document, k = d.createElementNS("http://www.w3.org/2000/svg",
"g"), h = a.options.fixedDecimalPlaceDigits, b = _createForOfIteratorHelper(b), g;
try {
for (b.s(); !(g = b.n()).done;) {
var l = g.value, m = null;
switch (l.type) {
case "path":
m = d.createElementNS("http://www.w3.org/2000/svg", "path");
m.setAttribute("d", this.opsToPath(l, h));
m.setAttribute("stroke", c.stroke);
m.setAttribute("stroke-width", c.strokeWidth + "");
m.setAttribute("fill", "none");
c.strokeLineDash && m.setAttribute("stroke-dasharray", c.strokeLineDash.join(" ").trim());
c.strokeLineDashOffset && m.setAttribute("stroke-dashoffset",
"".concat(c.strokeLineDashOffset));
break;
case "fillPath":
m = d.createElementNS("http://www.w3.org/2000/svg", "path");
m.setAttribute("d", this.opsToPath(l, h));
m.setAttribute("stroke", "none");
m.setAttribute("stroke-width", "0");
m.setAttribute("fill", c.fill || "");
"curve" !== a.shape && "polygon" !== a.shape || m.setAttribute("fill-rule", "evenodd");
break;
case "fillSketch":
m = this.fillSketch(d, l, c)
}
m && k.appendChild(m)
}
} catch (x) {
b.e(x)
} finally {
b.f()
}
return k
}
}, {
key: "fillSketch", value: function (a, b, c) {
var e = c.fillWeight;
0 > e && (e = c.strokeWidth / 2);
a = a.createElementNS("http://www.w3.org/2000/svg", "path");
return a.setAttribute("d", this.opsToPath(b, c.fixedDecimalPlaceDigits)), a.setAttribute("stroke", c.fill || ""), a.setAttribute("stroke-width", e + ""), a.setAttribute("fill", "none"), c.fillLineDash && a.setAttribute("stroke-dasharray", c.fillLineDash.join(" ").trim()), c.fillLineDashOffset && a.setAttribute("stroke-dashoffset", "".concat(c.fillLineDashOffset)), a
}
}, {
key: "getDefaultOptions", value: function () {
return this.gen.defaultOptions
}
},
{
key: "opsToPath", value: function (a, b) {
return this.gen.opsToPath(a, b)
}
}, {
key: "line", value: function (a, b, c, d, h) {
a = this.gen.line(a, b, c, d, h);
return this.draw(a)
}
}, {
key: "rectangle", value: function (a, b, c, d, h) {
a = this.gen.rectangle(a, b, c, d, h);
return this.draw(a)
}
}, {
key: "ellipse", value: function (a, b, c, d, h) {
a = this.gen.ellipse(a, b, c, d, h);
return this.draw(a)
}
}, {
key: "circle", value: function (a, b, c, d) {
a = this.gen.circle(a, b, c, d);
return this.draw(a)
}
}, {
key: "linearPath", value: function (a, b) {
var c = this.gen.linearPath(a, b);
return this.draw(c)
}
}, {
key: "polygon", value: function (a, b) {
var c = this.gen.polygon(a, b);
return this.draw(c)
}
}, {
key: "arc", value: function (a, b, c, d, h, l) {
var e = this.gen.arc(a, b, c, d, h, l, 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, 7 < arguments.length ? arguments[7] : void 0);
return this.draw(e)
}
}, {
key: "curve", value: function (a, b) {
var c = this.gen.curve(a, b);
return this.draw(c)
}
}, {
key: "path", value: function (a, b) {
var c = this.gen.path(a, b);
return this.draw(c)
}
}, {
key: "generator", get: function () {
return this.gen
}
}]);
return b
}();
return {
canvas: function (b, a) {
return new ua(b, a)
}, svg: function (b, a) {
return new va(b, a)
}, generator: function (b) {
return new S(b)
}, newSeed: function () {
return S.newSeed()
}
}
}();
(() => {
"use strict";
var t = {};
function e(t, e, n, r = (t => t)) {
return t * r(.5 - e * (.5 - n))
}
function n(t, e) {
return [t[0] + e[0], t[1] + e[1]]
}
function r(t, e) {
return [t[0] - e[0], t[1] - e[1]]
}
function i(t, e) {
return [t[0] * e, t[1] * e]
}
function u(t) {
return [t[1], -t[0]]
}
function o(t, e) {
return t[0] * e[0] + t[1] * e[1]
}
function l(t, e) {
return t[0] === e[0] && t[1] === e[1]
}
function s(t, e) {
return function (t) {
return t[0] * t[0] + t[1] * t[1]
}(r(t, e))
}
function c(t) {
return function (t, e) {
return [t[0] / e, t[1] / e]
}(t, function (t) {
return Math.hypot(t[0], t[1])
}(t))
}
function h(t, e) {
return Math.hypot(t[1] - e[1], t[0] - e[0])
}
function f(t, e, n) {
let r = Math.sin(n), i = Math.cos(n), u = t[0] - e[0], o = t[1] - e[1], l = u * r + o * i;
return [u * i - o * r + e[0], l + e[1]]
}
function p(t, e, u) {
return n(t, i(r(e, t), u))
}
function a(t, e, r) {
return n(t, i(e, r))
}
t.g = function () {
if ("object" == typeof globalThis) return globalThis;
try {
return this || new Function("return this")()
} catch (t) {
if ("object" == typeof window) return window
}
}();
var {min: g, PI: v} = Math, d = v + 1e-4;
function M(t, v = {}) {
return function (t, l = {}) {
let {
size: h = 16,
smoothing: v = .5,
thinning: M = .5,
simulatePressure: m = !0,
easing: y = (t => t),
start: w = {},
end: P = {},
last: F = !1
} = l, {cap: b = !0, easing: x = (t => t * (2 - t))} = w, {
cap: L = !0,
easing: j = (t => --t * t * t + 1)
} = P;
if (0 === t.length || h <= 0) return [];
let S, k = t[t.length - 1].runningLength,
z = !1 === w.taper ? 0 : !0 === w.taper ? Math.max(h, k) : w.taper,
A = !1 === P.taper ? 0 : !0 === P.taper ? Math.max(h, k) : P.taper, T = Math.pow(h * v, 2), I = [],
Q = [], Z = t.slice(0, 10).reduce(((t, e) => {
let n = e.pressure;
if (m) {
let r = g(1, e.distance / h), i = g(1, 1 - r);
n = g(1, t + .275 * r * (i - t))
}
return (t + n) / 2
}), t[0].pressure), q = e(h, M, t[t.length - 1].pressure, y), B = t[0].vector, C = t[0].point, D = C, E = C,
G = D;
for (let l = 0; l < t.length; l++) {
let {pressure: c} = t[l], {point: a, vector: v, distance: w, runningLength: P} = t[l];
if (l < t.length - 1 && k - P < 3) continue;
if (M) {
if (m) {
let t = g(1, w / h), e = g(1, 1 - t);
c = g(1, Z + .275 * t * (e - Z))
}
q = e(h, M, c, y)
} else q = h / 2;
void 0 === S && (S = q);
let F = P < z ? x(P / z) : 1, b = k - P < A ? j((k - P) / A) : 1;
if (q = Math.max(.01, q * Math.min(F, b)), l === t.length - 1) {
let t = i(u(v), q);
I.push(r(a, t)), Q.push(n(a, t));
continue
}
let L = t[l + 1].vector, H = o(v, L);
if (H < 0) {
let t = i(u(B), q);
for (let e = 1 / 13, i = 0; i <= 1; i += e) E = f(r(a, t), a, d * i), I.push(E), G = f(n(a, t), a, d * -i), Q.push(G);
C = E, D = G;
continue
}
let J = i(u(p(L, v, H)), q);
E = r(a, J), (l <= 1 || s(C, E) > T) && (I.push(E), C = E), G = n(a, J), (l <= 1 || s(D, G) > T) && (Q.push(G), D = G), Z = c, B = v
}
let H = t[0].point.slice(0, 2),
J = t.length > 1 ? t[t.length - 1].point.slice(0, 2) : n(t[0].point, [1, 1]), K = [], N = [];
if (1 === t.length) {
if (!z && !A || F) {
let t = a(H, c(u(r(H, J))), -(S || q)), e = [];
for (let n = 1 / 13, r = n; r <= 1; r += n) e.push(f(t, H, 2 * d * r));
return e
}
} else {
if (!(z || A && 1 === t.length)) if (b) for (let t = 1 / 13, e = t; e <= 1; e += t) {
let t = f(Q[0], H, d * e);
K.push(t)
} else {
let t = r(I[0], Q[0]), e = i(t, .5), u = i(t, .51);
K.push(r(H, e), r(H, u), n(H, u), n(H, e))
}
let e = u(function (t) {
return [-t[0], -t[1]]
}(t[t.length - 1].vector));
if (A || z && 1 === t.length) N.push(J); else if (L) {
let t = a(J, e, q);
for (let e = 1 / 29, n = e; n < 1; n += e) N.push(f(t, J, 3 * d * n))
} else N.push(n(J, i(e, q)), n(J, i(e, .99 * q)), r(J, i(e, .99 * q)), r(J, i(e, q)))
}
return I.concat(N, Q.reverse(), K)
}(function (t, e = {}) {
var i;
let {streamline: u = .5, size: o = 16, last: s = !1} = e;
if (0 === t.length) return [];
let f = .15 + .85 * (1 - u),
a = Array.isArray(t[0]) ? t : t.map((({x: t, y: e, pressure: n = .5}) => [t, e, n]));
if (2 === a.length) {
let t = a[1];
a = a.slice(0, -1);
for (let e = 1; e < 5; e++) a.push(p(a[0], t, e / 4))
}
1 === a.length && (a = [...a, [...n(a[0], [1, 1]), ...a[0].slice(2)]]);
let g = [{
point: [a[0][0], a[0][1]],
pressure: a[0][2] >= 0 ? a[0][2] : .25,
vector: [1, 1],
distance: 0,
runningLength: 0
}], v = !1, d = 0, M = g[0], m = a.length - 1;
for (let t = 1; t < a.length; t++) {
let e = s && t === m ? a[t].slice(0, 2) : p(M.point, a[t], f);
if (l(M.point, e)) continue;
let n = h(e, M.point);
if (d += n, t < m && !v) {
if (d < o) continue;
v = !0
}
M = {
point: e,
pressure: a[t][2] >= 0 ? a[t][2] : .5,
vector: c(r(M.point, e)),
distance: n,
runningLength: d
}, g.push(M)
}
return g[0].vector = (null == (i = g[1]) ? void 0 : i.vector) || [0, 0], g
}(t, v), v)
}
t.g.PerfectFreehand = {}, PerfectFreehand.getStroke = function (t, e) {
return M(t, e)
}, PerfectFreehand.getSvgPathFromStroke = function (t, e) {
let n = M(t, e);
const r = n.reduce(((t, [e, n], r, i) => {
const [u, o] = i[(r + 1) % i.length];
return t.push(e, n, (e + u) / 2, (n + o) / 2), t
}), ["M", ...n[0], "Q"]);
return r.push("Z"), r.join(" ")
}
})();
var Base64 = {
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (a, b) {
var c = "", d = 0;
for (null != b && b || (a = Base64._utf8_encode(a)); d < a.length;) {
var e = a.charCodeAt(d++);
b = a.charCodeAt(d++);
var f = a.charCodeAt(d++);
var g = e >> 2;
e = (e & 3) << 4 | b >> 4;
var k = (b & 15) << 2 | f >> 6;
var l = f & 63;
isNaN(b) ? k = l = 64 : isNaN(f) && (l = 64);
c = c + this._keyStr.charAt(g) + this._keyStr.charAt(e) + this._keyStr.charAt(k) + this._keyStr.charAt(l)
}
return c
}, decode: function (a, b) {
b = null != b ? b : !1;
var c = "", d = 0;
for (a = a.replace(/[^A-Za-z0-9\+\/=]/g,
""); d < a.length;) {
var e = this._keyStr.indexOf(a.charAt(d++));
var f = this._keyStr.indexOf(a.charAt(d++));
var g = this._keyStr.indexOf(a.charAt(d++));
var k = this._keyStr.indexOf(a.charAt(d++));
e = e << 2 | f >> 4;
f = (f & 15) << 4 | g >> 2;
var l = (g & 3) << 6 | k;
c += String.fromCharCode(e);
64 != g && (c += String.fromCharCode(f));
64 != k && (c += String.fromCharCode(l))
}
b || (c = Base64._utf8_decode(c));
return c
}, _utf8_encode: function (a) {
a = a.replace(/\r\n/g, "\n");
for (var b = "", c = 0; c < a.length; c++) {
var d = a.charCodeAt(c);
128 > d ? b += String.fromCharCode(d) :
(127 < d && 2048 > d ? b += String.fromCharCode(d >> 6 | 192) : (b += String.fromCharCode(d >> 12 | 224), b += String.fromCharCode(d >> 6 & 63 | 128)), b += String.fromCharCode(d & 63 | 128))
}
return b
}, _utf8_decode: function (a) {
var b = "", c = 0;
for (c1 = c2 = 0; c < a.length;) {
var d = a.charCodeAt(c);
128 > d ? (b += String.fromCharCode(d), c++) : 191 < d && 224 > d ? (c2 = a.charCodeAt(c + 1), b += String.fromCharCode((d & 31) << 6 | c2 & 63), c += 2) : (c2 = a.charCodeAt(c + 1), c3 = a.charCodeAt(c + 2), b += String.fromCharCode((d & 15) << 12 | (c2 & 63) << 6 | c3 & 63), c += 3)
}
return b
}
};
window.urlParams = window.urlParams || {};
window.isLocalStorage = window.isLocalStorage || !1;
window.mxLoadSettings = window.mxLoadSettings || "1" != urlParams.configure;
window.isSvgBrowser = !0;
window.DRAWIO_BASE_URL = window.DRAWIO_BASE_URL || (/.*\.draw\.io$/.test(window.location.hostname) || /.*\.diagrams\.net$/.test(window.location.hostname) ? window.location.protocol + "//" + window.location.hostname : "https://app.diagrams.net");
window.DRAWIO_SERVER_URL = window.DRAWIO_SERVER_URL || ("test.draw.io" == window.location.hostname ? "https://ac.draw.io/" : "");
window.DRAWIO_LIGHTBOX_URL = window.DRAWIO_LIGHTBOX_URL || "https://viewer.diagrams.net";
window.EXPORT_URL = window.EXPORT_URL || "https://convert.diagrams.net/node/export";
window.PLANT_URL = window.PLANT_URL || "https://plant-aws.diagrams.net";
window.DRAW_MATH_URL = window.DRAW_MATH_URL || "math/es5";
window.VSD_CONVERT_URL = window.VSD_CONVERT_URL || "https://convert.diagrams.net/VsdConverter/api/converter";
window.EMF_CONVERT_URL = window.EMF_CONVERT_URL || "https://convert.diagrams.net/emf2png/convertEMF";
window.REALTIME_URL = window.REALTIME_URL || window.DRAWIO_SERVER_URL + "cache";
window.DRAWIO_GITLAB_URL = window.DRAWIO_GITLAB_URL || "https://gitlab.com";
window.DRAWIO_GITLAB_ID = window.DRAWIO_GITLAB_ID || "2b14debc5feeb18ba65358d863ec870e4cc9294b28c3c941cb3014eb4af9a9b4";
window.DRAWIO_GITHUB_URL = window.DRAWIO_GITHUB_URL || "https://github.com";
window.DRAWIO_GITHUB_API_URL = window.DRAWIO_GITHUB_API_URL || "https://api.github.com";
window.DRAWIO_GITHUB_ID = window.DRAWIO_GITHUB_ID || "Iv1.98d62f0431e40543";
window.DRAWIO_DROPBOX_ID = window.DRAWIO_DROPBOX_ID || "jg02tc0onwmhlgm";
window.SAVE_URL = window.SAVE_URL || window.DRAWIO_SERVER_URL + "save";
window.OPEN_URL = window.OPEN_URL || window.DRAWIO_SERVER_URL + "import";
window.PROXY_URL = window.PROXY_URL || window.DRAWIO_SERVER_URL + "proxy";
window.DRAWIO_VIEWER_URL = window.DRAWIO_VIEWER_URL || null;
window.NOTIFICATIONS_URL = window.NOTIFICATIONS_URL || window.DRAWIO_SERVER_URL + "notifications";
window.RT_WEBSOCKET_URL = window.RT_WEBSOCKET_URL || "wss://" + ("test.draw.io" == window.location.hostname ? "app.diagrams.net" : window.location.hostname) + "/rt";
window.SHAPES_PATH = window.SHAPES_PATH || "shapes";
window.GRAPH_IMAGE_PATH = window.GRAPH_IMAGE_PATH || "img";
window.ICONSEARCH_PATH = window.ICONSEARCH_PATH || (urlParams.dev && "file:" != window.location.protocol ? "iconSearch" : window.DRAWIO_SERVER_URL + "iconSearch");
window.TEMPLATE_PATH = window.TEMPLATE_PATH || "templates";
window.NEW_DIAGRAM_CATS_PATH = window.NEW_DIAGRAM_CATS_PATH || "newDiagramCats";
window.PLUGINS_BASE_PATH = window.PLUGINS_BASE_PATH || "";
window.ALLOW_CUSTOM_PLUGINS = window.ALLOW_CUSTOM_PLUGINS || !1;
window.RESOURCES_PATH = window.RESOURCES_PATH || "resources";
window.RESOURCE_BASE = window.RESOURCE_BASE || RESOURCES_PATH + "/dia";
window.DRAWIO_CONFIG = window.DRAWIO_CONFIG || null;
window.mxLoadResources = window.mxLoadResources || !1;
window.mxLanguage = window.mxLanguage || function () {
var a = urlParams.lang;
if (null == a && "undefined" != typeof JSON && isLocalStorage) try {
var b = localStorage.getItem(".drawio-config");
null != b && (a = JSON.parse(b).language || null);
if (!a && window.mxIsElectron && (a = urlParams.appLang, null != a)) {
var c = a.indexOf("-");
0 <= c && (a = a.substring(0, c));
a = a.toLowerCase()
}
} catch (d) {
isLocalStorage = !1
}
return a
}();
window.mxLanguageMap = window.mxLanguageMap || {
i18n: "",
id: "Bahasa Indonesia",
ms: "Bahasa Melayu",
bs: "Bosanski",
bg: "Bulgarian",
ca: "Català",
cs: "Čeština",
da: "Dansk",
de: "Deutsch",
et: "Eesti",
en: "English",
es: "Español",
eu: "Euskara",
fil: "Filipino",
fr: "Français",
gl: "Galego",
it: "Italiano",
hu: "Magyar",
lt: "Lietuvių",
lv: "Latviešu",
nl: "Nederlands",
no: "Norsk",
pl: "Polski",
"pt-br": "Português (Brasil)",
pt: "Português (Portugal)",
ro: "Română",
fi: "Suomi",
sv: "Svenska",
vi: "Tiếng Việt",
tr: "Türkçe",
el: "Ελληνικά",
ru: "Русский",
sr: "Српски",
uk: "Українська",
he: "עברית",
ar: "العربية",
fa: "فارسی",
th: "ไทย",
ko: "한국어",
ja: "日本語",
zh: "简体中文",
"zh-tw": "繁體中文"
};
"undefined" === typeof window.mxBasePath && (window.mxBasePath = "mxgraph", window.mxImageBasePath = "mxgraph/images");
if (null == window.mxLanguages) {
window.mxLanguages = [];
for (var lang in mxLanguageMap) "en" != lang && window.mxLanguages.push(lang);
if (null == window.mxLanguage && ("test.draw.io" == window.location.hostname || "www.draw.io" == window.location.hostname || "viewer.diagrams.net" == window.location.hostname || "embed.diagrams.net" == window.location.hostname || "app.diagrams.net" == window.location.hostname || "jgraph.github.io" == window.location.hostname) && (lang = navigator.language, null != lang)) {
var dash = lang.indexOf("-");
0 < dash && (lang =
lang.substring(0, dash));
0 <= window.mxLanguages.indexOf(lang) && (window.mxLanguage = lang)
}
}
"1" == urlParams.extAuth && /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent) && (urlParams.gapi = "0", urlParams.noDevice = "1", "1" != urlParams.lightbox && (urlParams.lightbox = "1", urlParams.layers = "1", urlParams.viewerOnlyMsg = "1"));
"viewer.diagrams.net" == window.location.hostname && (urlParams.lightbox = "1");
"1" == urlParams.lightbox && (urlParams.chrome = "0");
"1" == urlParams.embedInline && (urlParams.embed = "1", urlParams.ui = "sketch", urlParams.plugins = "0", urlParams.proto = "json", urlParams.prefetchFonts = "1");
function setCurrentXml(a, b) {
null != window.parent && null != window.parent.openFile && window.parent.openFile.setData(a, b)
}
window.uiTheme = window.uiTheme || function () {
var a = urlParams.ui;
"1" == urlParams.extAuth && (a = "sketch");
if (null == a && isLocalStorage && "undefined" !== typeof JSON && "1" != urlParams.lightbox) try {
var b = localStorage.getItem(".drawio-config");
null != b && (a = JSON.parse(b).ui || null)
} catch (d) {
isLocalStorage = !1
}
try {
if (null == a && "1" != urlParams.embed && (1 == urlParams.dev || 1 == urlParams.test || "test.draw.io" === window.location.hostname || "www.draw.io" === window.location.hostname || "preprod.diagrams.net" === window.location.hostname ||
"app.diagrams.net" === window.location.hostname || "jgraph.github.io" === window.location.hostname)) {
var c = navigator.userAgent || navigator.vendor || window.opera;
if (1024 >= (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) || /android/i.test(c) || /iPad|iPhone|iPod/.test(c) && !window.MSStream || navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints) a = "simple"
}
} catch (d) {
}
"sketch" == a && null == urlParams.sketch && "ac.draw.io" === window.location.hostname ? urlParams.sketch =
"1" : "1" != urlParams.dark || "" != a && "kennedy" != a || (a = "dark");
return a
}();
(function () {
if ("undefined" !== typeof JSON && isLocalStorage) try {
var a = localStorage.getItem("1" == urlParams.sketch ? ".sketch-config" : ".drawio-config"), b = !0;
null != a && (b = JSON.parse(a).showStartScreen);
0 == b && (urlParams.splash = "0")
} catch (d) {
}
a = urlParams["export"];
null != a && (a = decodeURIComponent(a), "http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && (a = "http://" + a), EXPORT_URL = a);
a = urlParams.gitlab;
null != a && (a = decodeURIComponent(a), "http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && (a = "http://" +
a), DRAWIO_GITLAB_URL = a);
a = urlParams["gitlab-id"];
null != a && (DRAWIO_GITLAB_ID = a);
window.DRAWIO_LOG_URL = window.DRAWIO_LOG_URL || "";
a = window.location.host;
if ("test.draw.io" != a) {
var c = "diagrams.net";
b = a.length - c.length;
c = a.lastIndexOf(c, b);
-1 !== c && c === b ? window.DRAWIO_LOG_URL = "https://log.diagrams.net" : (c = "draw.io", b = a.length - c.length, c = a.lastIndexOf(c, b), -1 !== c && c === b && (window.DRAWIO_LOG_URL = "https://log.draw.io"))
}
})();
if ("1" == urlParams.offline || "1" == urlParams.demo || "1" == urlParams.stealth || "1" == urlParams.local || "1" == urlParams.lockdown) urlParams.picker = "0", urlParams.gapi = "0", urlParams.db = "0", urlParams.od = "0", urlParams.gh = "0", urlParams.gl = "0", urlParams.tr = "0";
"se.diagrams.net" == window.location.hostname && (urlParams.db = "0", urlParams.od = "0", urlParams.gh = "0", urlParams.gl = "0", urlParams.tr = "0", urlParams.plugins = "0", urlParams.mode = "google", urlParams.lockdown = "1", window.DRAWIO_GOOGLE_APP_ID = window.DRAWIO_GOOGLE_APP_ID || "184079235871", window.DRAWIO_GOOGLE_CLIENT_ID = window.DRAWIO_GOOGLE_CLIENT_ID || "184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");
"trello" == urlParams.mode && (urlParams.tr = "1");
"embed.diagrams.net" == window.location.hostname && (urlParams.embed = "1");
(null == window.location.hash || 1 >= window.location.hash.length) && null != urlParams.open && (window.location.hash = urlParams.open);
window.urlParams = window.urlParams || {};
window.DOM_PURIFY_CONFIG = window.DOM_PURIFY_CONFIG || {
ADD_TAGS: ["use"],
FORBID_TAGS: ["form"],
ALLOWED_URI_REGEXP: /^((?!javascript:).)*$/i,
ADD_ATTR: ["target", "content"]
};
window.MAX_REQUEST_SIZE = window.MAX_REQUEST_SIZE || 10485760;
window.MAX_AREA = window.MAX_AREA || 225E6;
window.EXPORT_URL = window.EXPORT_URL || "/export";
window.SAVE_URL = window.SAVE_URL || "/save";
window.OPEN_URL = window.OPEN_URL || "/open";
window.RESOURCES_PATH = window.RESOURCES_PATH || "resources";
window.RESOURCE_BASE = window.RESOURCE_BASE || window.RESOURCES_PATH + "/grapheditor";
window.STENCIL_PATH = window.STENCIL_PATH || "stencils";
window.IMAGE_PATH = window.IMAGE_PATH || "images";
window.STYLE_PATH = window.STYLE_PATH || "styles";
window.CSS_PATH = window.CSS_PATH || "styles";
window.OPEN_FORM = window.OPEN_FORM || "open.html";
window.mxBasePath = window.mxBasePath || "mxgraph";
window.mxImageBasePath = window.mxImageBasePath || "mxgraph/images";
window.mxLanguage = window.mxLanguage || urlParams.lang;
window.mxLanguages = window.mxLanguages || ["de", "se"];
var mxClient = {
VERSION: "22.1.21",
IS_IE: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("MSIE"),
IS_IE11: null != navigator.userAgent && !!navigator.userAgent.match(/Trident\/7\./),
IS_EDGE: null != navigator.userAgent && !!navigator.userAgent.match(/Edge\//),
IS_EM: "spellcheck" in document.createElement("textarea") && 8 == document.documentMode,
VML_PREFIX: "v",
OFFICE_PREFIX: "o",
IS_NS: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("Mozilla/") && 0 > navigator.userAgent.indexOf("MSIE") && 0 > navigator.userAgent.indexOf("Edge/"),
IS_OP: null != navigator.userAgent && (0 <= navigator.userAgent.indexOf("Opera/") || 0 <= navigator.userAgent.indexOf("OPR/")),
IS_OT: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("Presto/") && 0 > navigator.userAgent.indexOf("Presto/2.4.") && 0 > navigator.userAgent.indexOf("Presto/2.3.") && 0 > navigator.userAgent.indexOf("Presto/2.2.") && 0 > navigator.userAgent.indexOf("Presto/2.1.") && 0 > navigator.userAgent.indexOf("Presto/2.0.") && 0 > navigator.userAgent.indexOf("Presto/1."),
IS_SF: /Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID: 0 <= navigator.appVersion.indexOf("Android"),
IS_IOS: /iP(hone|od|ad)/.test(navigator.platform) || navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints,
IS_WEBVIEW: /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),
IS_GC: /Google Inc/.test(navigator.vendor),
IS_CHROMEAPP: null != window.chrome && null != chrome.app && null != chrome.app.runtime,
IS_FF: -1 < navigator.userAgent.toLowerCase().indexOf("firefox"),
IS_MT: 0 <= navigator.userAgent.indexOf("Firefox/") &&
0 > navigator.userAgent.indexOf("Firefox/1.") && 0 > navigator.userAgent.indexOf("Firefox/2.") || 0 <= navigator.userAgent.indexOf("Iceweasel/") && 0 > navigator.userAgent.indexOf("Iceweasel/1.") && 0 > navigator.userAgent.indexOf("Iceweasel/2.") || 0 <= navigator.userAgent.indexOf("SeaMonkey/") && 0 > navigator.userAgent.indexOf("SeaMonkey/1.") || 0 <= navigator.userAgent.indexOf("Iceape/") && 0 > navigator.userAgent.indexOf("Iceape/1."),
IS_SVG: "MICROSOFT INTERNET EXPLORER" != navigator.appName.toUpperCase(),
NO_FO: !document.createElementNS ||
"[object SVGForeignObjectElement]" !== document.createElementNS("http://www.w3.org/2000/svg", "foreignObject").toString() || 0 <= navigator.userAgent.indexOf("Opera/"),
IS_WIN: 0 < navigator.appVersion.indexOf("Win"),
IS_MAC: 0 < navigator.appVersion.indexOf("Mac"),
IS_CHROMEOS: /\bCrOS\b/.test(navigator.appVersion),
IS_LINUX: /\bLinux\b/.test(navigator.appVersion),
IS_TOUCH: "ontouchstart" in document.documentElement,
IS_POINTER: null != window.PointerEvent && !(0 < navigator.appVersion.indexOf("Mac")),
IS_LOCAL: 0 > document.location.href.indexOf("http://") &&
0 > document.location.href.indexOf("https://"),
defaultBundles: [],
isBrowserSupported: function () {
return mxClient.IS_SVG
},
link: function (a, b, c, d) {
c = c || document;
var e = c.createElement("link");
e.setAttribute("rel", a);
e.setAttribute("href", b);
e.setAttribute("charset", "UTF-8");
e.setAttribute("type", "text/css");
d && e.setAttribute("id", d);
c.getElementsByTagName("head")[0].appendChild(e)
},
loadResources: function (a, b) {
function c() {
0 == --d && a()
}
for (var d = mxClient.defaultBundles.length, e = 0; e < mxClient.defaultBundles.length; e++) mxResources.add(mxClient.defaultBundles[e],
b, c)
},
include: function (a) {
document.write('