diff --git a/exampleSite/static/videos/1.mp4 b/exampleSite/static/videos/1.mp4
new file mode 100644
index 0000000..9754f6e
Binary files /dev/null and b/exampleSite/static/videos/1.mp4 differ
diff --git a/exampleSite/static/videos/poster/1.jpg b/exampleSite/static/videos/poster/1.jpg
new file mode 100644
index 0000000..ac45ec2
Binary files /dev/null and b/exampleSite/static/videos/poster/1.jpg differ
diff --git a/layouts/partials/head/scripts.html b/layouts/partials/head/scripts.html
index ee5958b..156f408 100644
--- a/layouts/partials/head/scripts.html
+++ b/layouts/partials/head/scripts.html
@@ -1,24 +1,24 @@
-{{ $fetchinject := resources.Get "js/fetch-inject.umd.min.js" }}
+{{ $fetchinject := resources.Get "js/fetch-inject.umd.min.js" | fingerprint -}}
-{{ $jquery := resources.Get "js/jquery.min.js" }}
+{{ $jquery := resources.Get "js/jquery.min.js" | fingerprint -}}
-{{ $enquire := resources.Get "js/enquire.min.js" }}
-{{ $prism := resources.Get "js/prism.min.js" | minify }}
-{{ $lunr := resources.Get "js/lunr.min.js" }}
-{{ $lazysizes := resources.Get "js/lazysizes.min.js" }}
-{{ $clipboard := resources.Get "js/clipboard.min.js" }}
-{{ $shave := resources.Get "js/jquery.shave.min.js" }}
-{{ $zzo := resources.Get "js/zzo.js" | minify }}
+{{ $enquire := resources.Get "js/enquire.min.js" | fingerprint -}}
+{{ $prism := resources.Get "js/prism.min.js" | minify | fingerprint -}}
+{{ $lunr := resources.Get "js/lunr.min.js" | fingerprint -}}
+{{ $lazysizes := resources.Get "js/lazysizes.min.js" | fingerprint -}}
+{{ $clipboard := resources.Get "js/clipboard.min.js" | fingerprint -}}
+{{ $shave := resources.Get "js/jquery.shave.min.js" | fingerprint -}}
+{{ $zzo := resources.Get "js/zzo.js" | minify | fingerprint -}}
\ No newline at end of file
diff --git a/static/js/clipboard.min.js b/static/js/clipboard.min.js
deleted file mode 100644
index 02c549e..0000000
--- a/static/js/clipboard.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * clipboard.js v2.0.4
- * https://zenorocha.github.io/clipboard.js
- *
- * Licensed MIT © Zeno Rocha
- */
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="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},i=function(){function o(t,e){for(var n=0;n (https://habd.as) | @license Zlib */
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).fetchInject=t()}(this,function(){"use strict";const e=function(e,t,n,r,o,c,i){c=t.createElement(n),i=t.getElementsByTagName(n)[0],c.appendChild(t.createTextNode(r.text)),c.onload=o(r),i?i.parentNode.insertBefore(c,i):t.head.appendChild(c)};return function(t,n){if(!arguments.length)return Promise.reject(new ReferenceError("Failed to execute 'fetchInject': 1 argument required but only 0 present."));if(arguments[0]&&arguments[0].constructor!==Array)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 1 must be of type 'Array'."));if(arguments[1]&&arguments[1].constructor!==Promise)return Promise.reject(new TypeError("Failed to execute 'fetchInject': argument 2 must be of type 'Promise'."));const r=[],o=n?[].concat(n):[],c=[];return t.forEach(e=>o.push(window.fetch(e).then(e=>[e.clone().text(),e.blob()]).then(e=>Promise.all(e).then(e=>{r.push({text:e[0],blob:e[1]})})))),Promise.all(o).then(()=>(r.forEach(t=>{c.push({then:n=>{t.blob.type.includes("text/css")?e(window,document,"style",t,n):e(window,document,"script",t,n)}})}),Promise.all(c)))}});
\ No newline at end of file
diff --git a/static/js/imagesloaded.pkgd.min.js b/static/js/imagesloaded.pkgd.min.js
deleted file mode 100644
index b040b29..0000000
--- a/static/js/imagesloaded.pkgd.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * imagesLoaded PACKAGED v4.1.4
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-!function (e, t) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t() }("undefined" != typeof window ? window : this, function () { function e() { } var t = e.prototype; return t.on = function (e, t) { if (e && t) { var i = this._events = this._events || {}, n = i[e] = i[e] || []; return n.indexOf(t) == -1 && n.push(t), this } }, t.once = function (e, t) { if (e && t) { this.on(e, t); var i = this._onceEvents = this._onceEvents || {}, n = i[e] = i[e] || {}; return n[t] = !0, this } }, t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return n != -1 && i.splice(n, 1), this } }, t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { i = i.slice(0), t = t || []; for (var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++) { var r = i[o], s = n && n[r]; s && (this.off(e, r), delete n[r]), r.apply(this, t) } return this } }, t.allOff = function () { delete this._events, delete this._onceEvents }, e }), function (e, t) { "use strict"; "function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter"], function (i) { return t(e, i) }) : "object" == typeof module && module.exports ? module.exports = t(e, require("ev-emitter")) : e.imagesLoaded = t(e, e.EvEmitter) }("undefined" != typeof window ? window : this, function (e, t) { function i(e, t) { for (var i in t) e[i] = t[i]; return e } function n(e) { if (Array.isArray(e)) return e; var t = "object" == typeof e && "number" == typeof e.length; return t ? d.call(e) : [e] } function o(e, t, r) { if (!(this instanceof o)) return new o(e, t, r); var s = e; return "string" == typeof e && (s = document.querySelectorAll(e)), s ? (this.elements = n(s), this.options = i({}, this.options), "function" == typeof t ? r = t : i(this.options, t), r && this.on("always", r), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout(this.check.bind(this))) : void a.error("Bad element for imagesLoaded " + (s || e)) } function r(e) { this.img = e } function s(e, t) { this.url = e, this.element = t, this.img = new Image } var h = e.jQuery, a = e.console, d = Array.prototype.slice; o.prototype = Object.create(t.prototype), o.prototype.options = {}, o.prototype.getImages = function () { this.images = [], this.elements.forEach(this.addElementImages, this) }, o.prototype.addElementImages = function (e) { "IMG" == e.nodeName && this.addImage(e), this.options.background === !0 && this.addElementBackgroundImages(e); var t = e.nodeType; if (t && u[t]) { for (var i = e.querySelectorAll("img"), n = 0; n < i.length; n++) { var o = i[n]; this.addImage(o) } if ("string" == typeof this.options.background) { var r = e.querySelectorAll(this.options.background); for (n = 0; n < r.length; n++) { var s = r[n]; this.addElementBackgroundImages(s) } } } }; var u = { 1: !0, 9: !0, 11: !0 }; return o.prototype.addElementBackgroundImages = function (e) { var t = getComputedStyle(e); if (t) for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(t.backgroundImage); null !== n;) { var o = n && n[2]; o && this.addBackground(o, e), n = i.exec(t.backgroundImage) } }, o.prototype.addImage = function (e) { var t = new r(e); this.images.push(t) }, o.prototype.addBackground = function (e, t) { var i = new s(e, t); this.images.push(i) }, o.prototype.check = function () { function e(e, i, n) { setTimeout(function () { t.progress(e, i, n) }) } var t = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function (t) { t.once("progress", e), t.check() }) : void this.complete() }, o.prototype.progress = function (e, t, i) { this.progressedCount++ , this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent("progress", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log("progress: " + i, e, t) }, o.prototype.complete = function () { var e = this.hasAnyBroken ? "fail" : "done"; if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent("always", [this]), this.jqDeferred) { var t = this.hasAnyBroken ? "reject" : "resolve"; this.jqDeferred[t](this) } }, r.prototype = Object.create(t.prototype), r.prototype.check = function () { var e = this.getIsImageComplete(); return e ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void (this.proxyImage.src = this.img.src)) }, r.prototype.getIsImageComplete = function () { return this.img.complete && this.img.naturalWidth }, r.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent("progress", [this, this.img, t]) }, r.prototype.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e) }, r.prototype.onload = function () { this.confirm(!0, "onload"), this.unbindEvents() }, r.prototype.onerror = function () { this.confirm(!1, "onerror"), this.unbindEvents() }, r.prototype.unbindEvents = function () { this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, s.prototype = Object.create(r.prototype), s.prototype.check = function () { this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url; var e = this.getIsImageComplete(); e && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()) }, s.prototype.unbindEvents = function () { this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, s.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent("progress", [this, this.element, t]) }, o.makeJQueryPlugin = function (t) { t = t || e.jQuery, t && (h = t, h.fn.imagesLoaded = function (e, t) { var i = new o(this, e, t); return i.jqDeferred.promise(h(this)) }) }, o.makeJQueryPlugin(), o });
\ No newline at end of file
diff --git a/static/js/jquery.mark.min.js b/static/js/jquery.mark.min.js
deleted file mode 100644
index 2a95b8f..0000000
--- a/static/js/jquery.mark.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*!***************************************************
-* mark.js v9.0.0
-* https://markjs.io/
-* Copyright (c) 2014–2018, Julian Kühnel
-* Released under the MIT license https://git.io/vwTVl
-*****************************************************/
-!function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t(require("jquery")) : "function" == typeof define && define.amd ? define(["jquery"], t) : e.Mark = t(e.jQuery) }(this, function (e) {
- "use strict"; function t(e) { return (t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) } function n(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function r(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) } } function o(e, t, n) { return t && r(e.prototype, t), n && r(e, n), e } function i() { return (i = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]) } return e }).apply(this, arguments) } e = e && e.hasOwnProperty("default") ? e.default : e; var a =
- /* */
- function () { function e(t) { var r = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [], i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 5e3; n(this, e), this.ctx = t, this.iframes = r, this.exclude = o, this.iframesTimeout = i } return o(e, [{ key: "getContexts", value: function () { var e = []; return (void 0 !== this.ctx && this.ctx ? NodeList.prototype.isPrototypeOf(this.ctx) ? Array.prototype.slice.call(this.ctx) : Array.isArray(this.ctx) ? this.ctx : "string" == typeof this.ctx ? Array.prototype.slice.call(document.querySelectorAll(this.ctx)) : [this.ctx] : []).forEach(function (t) { var n = e.filter(function (e) { return e.contains(t) }).length > 0; -1 !== e.indexOf(t) || n || e.push(t) }), e } }, { key: "getIframeContents", value: function (e, t) { var n, r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function () { }; try { var o = e.contentWindow; if (n = o.document, !o || !n) throw new Error("iframe inaccessible") } catch (e) { r() } n && t(n) } }, { key: "isIframeBlank", value: function (e) { var t = "about:blank", n = e.getAttribute("src").trim(); return e.contentWindow.location.href === t && n !== t && n } }, { key: "observeIframeLoad", value: function (e, t, n) { var r = this, o = !1, i = null, a = function a() { if (!o) { o = !0, clearTimeout(i); try { r.isIframeBlank(e) || (e.removeEventListener("load", a), r.getIframeContents(e, t, n)) } catch (e) { n() } } }; e.addEventListener("load", a), i = setTimeout(a, this.iframesTimeout) } }, { key: "onIframeReady", value: function (e, t, n) { try { "complete" === e.contentWindow.document.readyState ? this.isIframeBlank(e) ? this.observeIframeLoad(e, t, n) : this.getIframeContents(e, t, n) : this.observeIframeLoad(e, t, n) } catch (e) { n() } } }, { key: "waitForIframes", value: function (e, t) { var n = this, r = 0; this.forEachIframe(e, function () { return !0 }, function (e) { r++ , n.waitForIframes(e.querySelector("html"), function () { --r || t() }) }, function (e) { e || t() }) } }, { key: "forEachIframe", value: function (t, n, r) { var o = this, i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : function () { }, a = t.querySelectorAll("iframe"), s = a.length, c = 0; a = Array.prototype.slice.call(a); var u = function () { --s <= 0 && i(c) }; s || u(), a.forEach(function (t) { e.matches(t, o.exclude) ? u() : o.onIframeReady(t, function (e) { n(t) && (c++ , r(e)), u() }, u) }) } }, { key: "createIterator", value: function (e, t, n) { return document.createNodeIterator(e, t, n, !1) } }, { key: "createInstanceOnIframe", value: function (t) { return new e(t.querySelector("html"), this.iframes) } }, { key: "compareNodeIframe", value: function (e, t, n) { if (e.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_PRECEDING) { if (null === t) return !0; if (t.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_FOLLOWING) return !0 } return !1 } }, { key: "getIteratorNode", value: function (e) { var t = e.previousNode(); return { prevNode: t, node: null === t ? e.nextNode() : e.nextNode() && e.nextNode() } } }, { key: "checkIframeFilter", value: function (e, t, n, r) { var o = !1, i = !1; return r.forEach(function (e, t) { e.val === n && (o = t, i = e.handled) }), this.compareNodeIframe(e, t, n) ? (!1 !== o || i ? !1 === o || i || (r[o].handled = !0) : r.push({ val: n, handled: !0 }), !0) : (!1 === o && r.push({ val: n, handled: !1 }), !1) } }, { key: "handleOpenIframes", value: function (e, t, n, r) { var o = this; e.forEach(function (e) { e.handled || o.getIframeContents(e.val, function (e) { o.createInstanceOnIframe(e).forEachNode(t, n, r) }) }) } }, { key: "iterateThroughNodes", value: function (e, t, n, r, o) { for (var i, a, s, c = this, u = this.createIterator(t, e, r), l = [], h = []; s = void 0, s = c.getIteratorNode(u), a = s.prevNode, i = s.node;)this.iframes && this.forEachIframe(t, function (e) { return c.checkIframeFilter(i, a, e, l) }, function (t) { c.createInstanceOnIframe(t).forEachNode(e, function (e) { return h.push(e) }, r) }), h.push(i); h.forEach(function (e) { n(e) }), this.iframes && this.handleOpenIframes(l, e, n, r), o() } }, { key: "forEachNode", value: function (e, t, n) { var r = this, o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : function () { }, i = this.getContexts(), a = i.length; a || o(), i.forEach(function (i) { var s = function () { r.iterateThroughNodes(e, i, t, n, function () { --a <= 0 && o() }) }; r.iframes ? r.waitForIframes(i, s) : s() }) } }], [{ key: "matches", value: function (e, t) { var n = "string" == typeof t ? [t] : t, r = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.oMatchesSelector || e.webkitMatchesSelector; if (r) { var o = !1; return n.every(function (t) { return !r.call(e, t) || (o = !0, !1) }), o } return !1 } }]), e }(), s =
- /* */
- function () { function e(t) { n(this, e), this.opt = i({}, { diacritics: !0, synonyms: {}, accuracy: "partially", caseSensitive: !1, ignoreJoiners: !1, ignorePunctuation: [], wildcards: "disabled" }, t) } return o(e, [{ key: "create", value: function (e) { return "disabled" !== this.opt.wildcards && (e = this.setupWildcardsRegExp(e)), e = this.escapeStr(e), Object.keys(this.opt.synonyms).length && (e = this.createSynonymsRegExp(e)), (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) && (e = this.setupIgnoreJoinersRegExp(e)), this.opt.diacritics && (e = this.createDiacriticsRegExp(e)), e = this.createMergedBlanksRegExp(e), (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) && (e = this.createJoinersRegExp(e)), "disabled" !== this.opt.wildcards && (e = this.createWildcardsRegExp(e)), e = this.createAccuracyRegExp(e), new RegExp(e, "gm".concat(this.opt.caseSensitive ? "" : "i")) } }, { key: "sortByLength", value: function (e) { return e.sort(function (e, t) { return e.length === t.length ? e > t ? 1 : -1 : t.length - e.length }) } }, { key: "escapeStr", value: function (e) { return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") } }, { key: "createSynonymsRegExp", value: function (e) { var t = this, n = this.opt.synonyms, r = this.opt.caseSensitive ? "" : "i", o = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? "\0" : ""; for (var i in n) if (n.hasOwnProperty(i)) { var a = Array.isArray(n[i]) ? n[i] : [n[i]]; a.unshift(i), (a = this.sortByLength(a).map(function (e) { return "disabled" !== t.opt.wildcards && (e = t.setupWildcardsRegExp(e)), e = t.escapeStr(e) }).filter(function (e) { return "" !== e })).length > 1 && (e = e.replace(new RegExp("(".concat(a.map(function (e) { return t.escapeStr(e) }).join("|"), ")"), "gm".concat(r)), o + "(".concat(a.map(function (e) { return t.processSynonyms(e) }).join("|"), ")") + o)) } return e } }, { key: "processSynonyms", value: function (e) { return (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) && (e = this.setupIgnoreJoinersRegExp(e)), e } }, { key: "setupWildcardsRegExp", value: function (e) { return (e = e.replace(/(?:\\)*\?/g, function (e) { return "\\" === e.charAt(0) ? "?" : "" })).replace(/(?:\\)*\*/g, function (e) { return "\\" === e.charAt(0) ? "*" : "" }) } }, { key: "createWildcardsRegExp", value: function (e) { var t = "withSpaces" === this.opt.wildcards; return e.replace(/\u0001/g, t ? "[\\S\\s]?" : "\\S?").replace(/\u0002/g, t ? "[\\S\\s]*?" : "\\S*") } }, { key: "setupIgnoreJoinersRegExp", value: function (e) { return e.replace(/[^(|)\\]/g, function (e, t, n) { var r = n.charAt(t + 1); return /[(|)\\]/.test(r) || "" === r ? e : e + "\0" }) } }, { key: "createJoinersRegExp", value: function (e) { var t = [], n = this.opt.ignorePunctuation; return Array.isArray(n) && n.length && t.push(this.escapeStr(n.join(""))), this.opt.ignoreJoiners && t.push("\\u00ad\\u200b\\u200c\\u200d"), t.length ? e.split(/\u0000+/).join("[".concat(t.join(""), "]*")) : e } }, { key: "createDiacriticsRegExp", value: function (e) { var t = this.opt.caseSensitive ? "" : "i", n = this.opt.caseSensitive ? ["aàáảãạăằắẳẵặâầấẩẫậäåāą", "AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ", "cçćč", "CÇĆČ", "dđď", "DĐĎ", "eèéẻẽẹêềếểễệëěēę", "EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ", "iìíỉĩịîïī", "IÌÍỈĨỊÎÏĪ", "lł", "LŁ", "nñňń", "NÑŇŃ", "oòóỏõọôồốổỗộơởỡớờợöøō", "OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ", "rř", "RŘ", "sšśșş", "SŠŚȘŞ", "tťțţ", "TŤȚŢ", "uùúủũụưừứửữựûüůū", "UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ", "yýỳỷỹỵÿ", "YÝỲỶỸỴŸ", "zžżź", "ZŽŻŹ"] : ["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ", "cçćčCÇĆČ", "dđďDĐĎ", "eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ", "iìíỉĩịîïīIÌÍỈĨỊÎÏĪ", "lłLŁ", "nñňńNÑŇŃ", "oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ", "rřRŘ", "sšśșşSŠŚȘŞ", "tťțţTŤȚŢ", "uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ", "yýỳỷỹỵÿYÝỲỶỸỴŸ", "zžżźZŽŻŹ"], r = []; return e.split("").forEach(function (o) { n.every(function (n) { if (-1 !== n.indexOf(o)) { if (r.indexOf(n) > -1) return !1; e = e.replace(new RegExp("[".concat(n, "]"), "gm".concat(t)), "[".concat(n, "]")), r.push(n) } return !0 }) }), e } }, { key: "createMergedBlanksRegExp", value: function (e) { return e.replace(/[\s]+/gim, "[\\s]+") } }, { key: "createAccuracyRegExp", value: function (e) { var t = this, n = this.opt.accuracy, r = "string" == typeof n ? n : n.value, o = "string" == typeof n ? [] : n.limiters, i = ""; switch (o.forEach(function (e) { i += "|".concat(t.escapeStr(e)) }), r) { case "partially": default: return "()(".concat(e, ")"); case "complementary": return i = "\\s" + (i || this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")), "()([^".concat(i, "]*").concat(e, "[^").concat(i, "]*)"); case "exactly": return "(^|\\s".concat(i, ")(").concat(e, ")(?=$|\\s").concat(i, ")") } } }]), e }(), c =
- /* */
- function () { function e(t) { n(this, e), this.ctx = t, this.ie = !1; var r = window.navigator.userAgent; (r.indexOf("MSIE") > -1 || r.indexOf("Trident") > -1) && (this.ie = !0) } return o(e, [{ key: "log", value: function (e) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "debug", r = this.opt.log; this.opt.debug && "object" === t(r) && "function" == typeof r[n] && r[n]("mark.js: ".concat(e)) } }, { key: "getSeparatedKeywords", value: function (e) { var t = this, n = []; return e.forEach(function (e) { t.opt.separateWordSearch ? e.split(" ").forEach(function (e) { e.trim() && -1 === n.indexOf(e) && n.push(e) }) : e.trim() && -1 === n.indexOf(e) && n.push(e) }), { keywords: n.sort(function (e, t) { return t.length - e.length }), length: n.length } } }, { key: "isNumeric", value: function (e) { return Number(parseFloat(e)) == e } }, { key: "checkRanges", value: function (e) { var t = this; if (!Array.isArray(e) || "[object Object]" !== Object.prototype.toString.call(e[0])) return this.log("markRanges() will only accept an array of objects"), this.opt.noMatch(e), []; var n = [], r = 0; return e.sort(function (e, t) { return e.start - t.start }).forEach(function (e) { var o = t.callNoMatchOnInvalidRanges(e, r), i = o.start, a = o.end; o.valid && (e.start = i, e.length = a - i, n.push(e), r = a) }), n } }, { key: "callNoMatchOnInvalidRanges", value: function (e, t) { var n, r, o = !1; return e && void 0 !== e.start ? (r = (n = parseInt(e.start, 10)) + parseInt(e.length, 10), this.isNumeric(e.start) && this.isNumeric(e.length) && r - t > 0 && r - n > 0 ? o = !0 : (this.log("Ignoring invalid or overlapping range: " + "".concat(JSON.stringify(e))), this.opt.noMatch(e))) : (this.log("Ignoring invalid range: ".concat(JSON.stringify(e))), this.opt.noMatch(e)), { start: n, end: r, valid: o } } }, { key: "checkWhitespaceRanges", value: function (e, t, n) { var r, o = !0, i = n.length, a = t - i, s = parseInt(e.start, 10) - a; return (r = (s = s > i ? i : s) + parseInt(e.length, 10)) > i && (r = i, this.log("End range automatically set to the max value of ".concat(i))), s < 0 || r - s < 0 || s > i || r > i ? (o = !1, this.log("Invalid range: ".concat(JSON.stringify(e))), this.opt.noMatch(e)) : "" === n.substring(s, r).replace(/\s+/g, "") && (o = !1, this.log("Skipping whitespace only range: " + JSON.stringify(e)), this.opt.noMatch(e)), { start: s, end: r, valid: o } } }, { key: "getTextNodes", value: function (e) { var t = this, n = "", r = []; this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (e) { r.push({ start: n.length, end: (n += e.textContent).length, node: e }) }, function (e) { return t.matchesExclude(e.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT }, function () { e({ value: n, nodes: r }) }) } }, { key: "matchesExclude", value: function (e) { return a.matches(e, this.opt.exclude.concat(["script", "style", "title", "head", "html"])) } }, { key: "wrapRangeInTextNode", value: function (e, t, n) { var r = this.opt.element ? this.opt.element : "mark", o = e.splitText(t), i = o.splitText(n - t), a = document.createElement(r); return a.setAttribute("data-markjs", "true"), this.opt.className && a.setAttribute("class", this.opt.className), a.textContent = o.textContent, o.parentNode.replaceChild(a, o), i } }, { key: "wrapRangeInMappedTextNode", value: function (e, t, n, r, o) { var i = this; e.nodes.every(function (a, s) { var c = e.nodes[s + 1]; if (void 0 === c || c.start > t) { if (!r(a.node)) return !1; var u = t - a.start, l = (n > a.end ? a.end : n) - a.start, h = e.value.substr(0, a.start), f = e.value.substr(l + a.start); if (a.node = i.wrapRangeInTextNode(a.node, u, l), e.value = h + f, e.nodes.forEach(function (t, n) { n >= s && (e.nodes[n].start > 0 && n !== s && (e.nodes[n].start -= l), e.nodes[n].end -= l) }), n -= l, o(a.node.previousSibling, a.start), !(n > a.end)) return !1; t = a.end } return !0 }) } }, { key: "wrapGroups", value: function (e, t, n, r) { return r((e = this.wrapRangeInTextNode(e, t, t + n)).previousSibling), e } }, { key: "separateGroups", value: function (e, t, n, r, o) { for (var i = t.length, a = 1; a < i; a++) { var s = e.textContent.indexOf(t[a]); t[a] && s > -1 && r(t[a], e) && (e = this.wrapGroups(e, s, t[a].length, o)) } return e } }, { key: "wrapMatches", value: function (e, t, n, r, o) { var i = this, a = 0 === t ? 0 : t + 1; this.getTextNodes(function (t) { t.nodes.forEach(function (t) { var o; for (t = t.node; null !== (o = e.exec(t.textContent)) && "" !== o[a];) { if (i.opt.separateGroups) t = i.separateGroups(t, o, a, n, r); else { if (!n(o[a], t)) continue; var s = o.index; if (0 !== a) for (var c = 1; c < a; c++)s += o[c].length; t = i.wrapGroups(t, s, o[a].length, r) } e.lastIndex = 0 } }), o() }) } }, { key: "wrapMatchesAcrossElements", value: function (e, t, n, r, o) { var i = this, a = 0 === t ? 0 : t + 1; this.getTextNodes(function (t) { for (var s; null !== (s = e.exec(t.value)) && "" !== s[a];) { var c = s.index; if (0 !== a) for (var u = 1; u < a; u++)c += s[u].length; var l = c + s[a].length; i.wrapRangeInMappedTextNode(t, c, l, function (e) { return n(s[a], e) }, function (t, n) { e.lastIndex = n, r(t) }) } o() }) } }, { key: "wrapRangeFromIndex", value: function (e, t, n, r) { var o = this; this.getTextNodes(function (i) { var a = i.value.length; e.forEach(function (e, r) { var s = o.checkWhitespaceRanges(e, a, i.value), c = s.start, u = s.end; s.valid && o.wrapRangeInMappedTextNode(i, c, u, function (n) { return t(n, e, i.value.substring(c, u), r) }, function (t) { n(t, e) }) }), r() }) } }, { key: "unwrapMatches", value: function (e) { for (var t = e.parentNode, n = document.createDocumentFragment(); e.firstChild;)n.appendChild(e.removeChild(e.firstChild)); t.replaceChild(n, e), this.ie ? this.normalizeTextNode(t) : t.normalize() } }, { key: "normalizeTextNode", value: function (e) { if (e) { if (3 === e.nodeType) for (; e.nextSibling && 3 === e.nextSibling.nodeType;)e.nodeValue += e.nextSibling.nodeValue, e.parentNode.removeChild(e.nextSibling); else this.normalizeTextNode(e.firstChild); this.normalizeTextNode(e.nextSibling) } } }, { key: "markRegExp", value: function (e, t) { var n = this; this.opt = t, this.log('Searching with expression "'.concat(e, '"')); var r = 0, o = "wrapMatches"; this.opt.acrossElements && (o = "wrapMatchesAcrossElements"), this[o](e, this.opt.ignoreGroups, function (e, t) { return n.opt.filter(t, e, r) }, function (e) { r++ , n.opt.each(e) }, function () { 0 === r && n.opt.noMatch(e), n.opt.done(r) }) } }, { key: "mark", value: function (e, t) { var n = this; this.opt = t; var r = 0, o = "wrapMatches", i = this.getSeparatedKeywords("string" == typeof e ? [e] : e), a = i.keywords, c = i.length; this.opt.acrossElements && (o = "wrapMatchesAcrossElements"), 0 === c ? this.opt.done(r) : function e(t) { var i = new s(n.opt).create(t), u = 0; n.log('Searching with expression "'.concat(i, '"')), n[o](i, 1, function (e, o) { return n.opt.filter(o, t, r, u) }, function (e) { u++ , r++ , n.opt.each(e) }, function () { 0 === u && n.opt.noMatch(t), a[c - 1] === t ? n.opt.done(r) : e(a[a.indexOf(t) + 1]) }) }(a[0]) } }, { key: "markRanges", value: function (e, t) { var n = this; this.opt = t; var r = 0, o = this.checkRanges(e); o && o.length ? (this.log("Starting to mark with the following ranges: " + JSON.stringify(o)), this.wrapRangeFromIndex(o, function (e, t, r, o) { return n.opt.filter(e, t, r, o) }, function (e, t) { r++ , n.opt.each(e, t) }, function () { n.opt.done(r) })) : this.opt.done(r) } }, { key: "unmark", value: function (e) { var t = this; this.opt = e; var n = this.opt.element ? this.opt.element : "*"; n += "[data-markjs]", this.opt.className && (n += ".".concat(this.opt.className)), this.log('Removal selector "'.concat(n, '"')), this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (e) { t.unwrapMatches(e) }, function (e) { var r = a.matches(e, n), o = t.matchesExclude(e); return !r || o ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT }, this.opt.done) } }, { key: "opt", set: function (e) { this._opt = i({}, { element: "", className: "", exclude: [], iframes: !1, iframesTimeout: 5e3, separateWordSearch: !0, acrossElements: !1, ignoreGroups: 0, each: function () { }, noMatch: function () { }, filter: function () { return !0 }, done: function () { }, debug: !1, log: window.console }, e) }, get: function () { return this._opt } }, { key: "iterator", get: function () { return new a(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout) } }]), e }(); return e.fn.mark = function (e, t) { return new c(this.get()).mark(e, t), this }, e.fn.markRegExp = function (e, t) { return new c(this.get()).markRegExp(e, t), this }, e.fn.markRanges = function (e, t) { return new c(this.get()).markRanges(e, t), this }, e.fn.unmark = function (e) { return new c(this.get()).unmark(e), this }, e
-});
diff --git a/static/js/jquery.min.js b/static/js/jquery.min.js
deleted file mode 100644
index a1c07fd..0000000
--- a/static/js/jquery.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/