{"version":3,"file":"app.js","sources":["app.js"],"sourcesContent":["/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */\r\n!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\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[\":\"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\\/\\0>:\\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=/\\s*$/g;function Oe(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&k(e).children(\"tbody\")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Re(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n\")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\\?(?=&|$)|\\?\\?/;k.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Gt.pop()||k.expando+\"_\"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Yt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||k.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,\"position\"),c=k(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=k.css(e,\"top\"),u=k.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===k.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===k.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,\"borderTopWidth\",!0),i.left+=k.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-k.css(r,\"marginTop\",!0),left:t.left-i.left-k.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===k.css(e,\"position\"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each([\"top\",\"left\"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+\"px\":t})}),k.each({Height:\"height\",Width:\"width\"},function(a,s){k.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){k.fn[n]=function(e,t){return 0=o.clientWidth&&n>=o.clientHeight}),l=0n[e]&&!t.escapeWithReference&&(i=X(p[o],n[e]-('right'===e?p.width:p.height))),se({},o,i)}};return i.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=J,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',g=a?'bottom':'right',u=L(i)[l];d[g]-us[g]&&(e.offsets.popper[m]+=d[m]+u-s[g]),e.offsets.popper=c(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=Q(X(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},se(n,m,Math.round(v)),se(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(P(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=E(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=S(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[n,i];break;case fe.CLOCKWISE:p=V(n);break;case fe.COUNTERCLOCKWISE:p=V(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=S(n);var a=e.offsets.popper,l=e.offsets.reference,f=J,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=K(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,T(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=S(t),e.offsets.popper=c(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightthis._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+\"px\"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+\"px\")},t._resetAdjustments=function(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:\"hover focus\",title:\"\",delay:0,html:!1,selector:!1,placement:\"top\",offset:0,container:!1,fallbackPlacement:\"flip\",boundary:\"scrollParent\"},De=\"show\",we=\"out\",Ae={HIDE:\"hide\"+Ee,HIDDEN:\"hidden\"+Ee,SHOW:\"show\"+Ee,SHOWN:\"shown\"+Ee,INSERTED:\"inserted\"+Ee,CLICK:\"click\"+Ee,FOCUSIN:\"focusin\"+Ee,FOCUSOUT:\"focusout\"+Ee,MOUSEENTER:\"mouseenter\"+Ee,MOUSELEAVE:\"mouseleave\"+Ee},Ne=\"fade\",Oe=\"show\",ke=\".tooltip-inner\",Pe=\".arrow\",Le=\"hover\",je=\"focus\",He=\"click\",Re=\"manual\",Ue=function(){function i(t,e){if(\"undefined\"==typeof u)throw new TypeError(\"Bootstrap's tooltips require Popper.js (https://popper.js.org/)\");this._isEnabled=!0,this._timeout=0,this._hoverState=\"\",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Oe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(\".modal\").off(\"hide.bs.modal\"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if(\"none\"===g(this.element).css(\"display\"))throw new Error(\"Please use show on visible elements\");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute(\"id\",r),this.element.setAttribute(\"aria-describedby\",r),this.setContent(),this.config.animation&&g(o).addClass(Ne);var s=\"function\"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Pe},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Oe),\"ontouchstart\"in document.documentElement&&g(document.body).children().on(\"mouseover\",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===we&&e._leave(null,e)};if(g(this.tip).hasClass(Ne)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==De&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute(\"aria-describedby\"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Oe),\"ontouchstart\"in document.documentElement&&g(document.body).children().off(\"mouseover\",null,g.noop),this._activeTrigger[He]=!1,this._activeTrigger[je]=!1,this._activeTrigger[Le]=!1,g(this.tip).hasClass(Ne)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=\"\"}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Ce+\"-\"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(ke)),this.getTitle()),g(t).removeClass(Ne+\" \"+Oe)},t.setElementContent=function(t,e){var n=this.config.html;\"object\"==typeof e&&(e.nodeType||e.jquery)?n?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text()):t[n?\"html\":\"text\"](e)},t.getTitle=function(){var t=this.element.getAttribute(\"data-original-title\");return t||(t=\"function\"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return be[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(\" \").forEach(function(t){if(\"click\"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Re){var e=t===Le?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Le?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(\".modal\").on(\"hide.bs.modal\",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:\"manual\",selector:\"\"}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute(\"data-original-title\");(this.element.getAttribute(\"title\")||\"string\"!==t)&&(this.element.setAttribute(\"data-original-title\",this.element.getAttribute(\"title\")||\"\"),this.element.setAttribute(\"title\",\"\"))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger[\"focusin\"===t.type?je:Le]=!0),g(e.getTipElement()).hasClass(Oe)||e._hoverState===De?e._hoverState=De:(clearTimeout(e._timeout),e._hoverState=De,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===De&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger[\"focusout\"===t.type?je:Le]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=we,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===we&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return\"number\"==typeof(t=l({},this.constructor.Default,g(this.element).data(),\"object\"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(pe,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr(\"class\").match(Te);null!==e&&e.length&&t.removeClass(e.join(\"\"))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute(\"x-placement\")&&(g(t).removeClass(Ne),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(ve),e=\"object\"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(ve,t)),\"string\"==typeof n)){if(\"undefined\"==typeof t[n])throw new TypeError('No method named \"'+n+'\"');t[n]()}})},s(i,null,[{key:\"VERSION\",get:function(){return\"4.2.1\"}},{key:\"Default\",get:function(){return Ie}},{key:\"NAME\",get:function(){return pe}},{key:\"DATA_KEY\",get:function(){return ve}},{key:\"Event\",get:function(){return Ae}},{key:\"EVENT_KEY\",get:function(){return Ee}},{key:\"DefaultType\",get:function(){return Se}}]),i}();g.fn[pe]=Ue._jQueryInterface,g.fn[pe].Constructor=Ue,g.fn[pe].noConflict=function(){return g.fn[pe]=ye,Ue._jQueryInterface};var We=\"popover\",xe=\"bs.popover\",Fe=\".\"+xe,qe=g.fn[We],Me=\"bs-popover\",Ke=new RegExp(\"(^|\\\\s)\"+Me+\"\\\\S+\",\"g\"),Qe=l({},Ue.Default,{placement:\"right\",trigger:\"click\",content:\"\",template:'

'}),Be=l({},Ue.DefaultType,{content:\"(string|element|function)\"}),Ve=\"fade\",Ye=\"show\",Xe=\".popover-header\",ze=\".popover-body\",Ge={HIDE:\"hide\"+Fe,HIDDEN:\"hidden\"+Fe,SHOW:\"show\"+Fe,SHOWN:\"shown\"+Fe,INSERTED:\"inserted\"+Fe,CLICK:\"click\"+Fe,FOCUSIN:\"focusin\"+Fe,FOCUSOUT:\"focusout\"+Fe,MOUSEENTER:\"mouseenter\"+Fe,MOUSELEAVE:\"mouseleave\"+Fe},Je=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Me+\"-\"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(Xe),this.getTitle());var e=this._getContent();\"function\"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ze),e),t.removeClass(Ve+\" \"+Ye)},o._getContent=function(){return this.element.getAttribute(\"data-content\")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr(\"class\").match(Ke);null!==e&&0=this._offsets[o]&&(\"undefined\"==typeof this._offsets[o+1]||t li > .active\",Pn='[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',Ln=\".dropdown-toggle\",jn=\"> .dropdown-menu .active\",Hn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&g(this._element).hasClass(bn)||g(this._element).hasClass(In))){var t,i,e=g(this._element).closest(Nn)[0],o=_.getSelectorFromElement(this._element);if(e){var r=\"UL\"===e.nodeName||\"OL\"===e.nodeName?kn:On;i=(i=g.makeArray(g(e).find(r)))[i.length-1]}var s=g.Event(Tn.HIDE,{relatedTarget:this._element}),a=g.Event(Tn.SHOW,{relatedTarget:i});if(i&&g(i).trigger(s),g(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=g.Event(Tn.HIDDEN,{relatedTarget:n._element}),e=g.Event(Tn.SHOWN,{relatedTarget:i});g(i).trigger(t),g(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){g.removeData(this._element,En),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||\"UL\"!==e.nodeName&&\"OL\"!==e.nodeName?g(e).children(On):g(e).find(kn))[0],r=n&&o&&g(o).hasClass(Dn),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=_.getTransitionDurationFromElement(o);g(o).removeClass(wn).one(_.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){g(e).removeClass(bn);var i=g(e.parentNode).find(jn)[0];i&&g(i).removeClass(bn),\"tab\"===e.getAttribute(\"role\")&&e.setAttribute(\"aria-selected\",!1)}if(g(t).addClass(bn),\"tab\"===t.getAttribute(\"role\")&&t.setAttribute(\"aria-selected\",!0),_.reflow(t),g(t).addClass(wn),t.parentNode&&g(t.parentNode).hasClass(Sn)){var o=g(t).closest(An)[0];if(o){var r=[].slice.call(o.querySelectorAll(Ln));g(r).addClass(bn)}t.setAttribute(\"aria-expanded\",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(En);if(e||(e=new i(this),t.data(En,e)),\"string\"==typeof n){if(\"undefined\"==typeof e[n])throw new TypeError('No method named \"'+n+'\"');e[n]()}})},s(i,null,[{key:\"VERSION\",get:function(){return\"4.2.1\"}}]),i}();g(document).on(Tn.CLICK_DATA_API,Pn,function(t){t.preventDefault(),Hn._jQueryInterface.call(g(this),\"show\")}),g.fn.tab=Hn._jQueryInterface,g.fn.tab.Constructor=Hn,g.fn.tab.noConflict=function(){return g.fn.tab=Cn,Hn._jQueryInterface};var Rn=\"toast\",Un=\"bs.toast\",Wn=\".\"+Un,xn=g.fn[Rn],Fn={CLICK_DISMISS:\"click.dismiss\"+Wn,HIDE:\"hide\"+Wn,HIDDEN:\"hidden\"+Wn,SHOW:\"show\"+Wn,SHOWN:\"shown\"+Wn},qn=\"fade\",Mn=\"hide\",Kn=\"show\",Qn=\"showing\",Bn={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},Vn={animation:!0,autohide:!0,delay:500},Yn='[data-dismiss=\"toast\"]',Xn=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;g(this._element).trigger(Fn.SHOW),this._config.animation&&this._element.classList.add(qn);var e=function(){t._element.classList.remove(Qn),t._element.classList.add(Kn),g(t._element).trigger(Fn.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(Mn),this._element.classList.add(Qn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(Kn)&&(g(this._element).trigger(Fn.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Kn)&&this._element.classList.remove(Kn),g(this._element).off(Fn.CLICK_DISMISS),g.removeData(this._element,Un),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},Vn,g(this._element).data(),\"object\"==typeof t&&t?t:{}),_.typeCheckConfig(Rn,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;g(this._element).on(Fn.CLICK_DISMISS,Yn,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add(Mn),g(t._element).trigger(Fn.HIDDEN)};if(this._element.classList.remove(Kn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(Un);if(e||(e=new i(this,\"object\"==typeof n&&n),t.data(Un,e)),\"string\"==typeof n){if(\"undefined\"==typeof e[n])throw new TypeError('No method named \"'+n+'\"');e[n](this)}})},s(i,null,[{key:\"VERSION\",get:function(){return\"4.2.1\"}},{key:\"DefaultType\",get:function(){return Bn}}]),i}();g.fn[Rn]=Xn._jQueryInterface,g.fn[Rn].Constructor=Xn,g.fn[Rn].noConflict=function(){return g.fn[Rn]=xn,Xn._jQueryInterface},function(){if(\"undefined\"==typeof g)throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\");var t=g.fn.jquery.split(\" \")[0].split(\".\");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\")}(),t.Util=_,t.Alert=p,t.Button=P,t.Carousel=lt,t.Collapse=bt,t.Dropdown=Zt,t.Modal=me,t.Popover=Je,t.Scrollspy=vn,t.Tab=Hn,t.Toast=Xn,t.Tooltip=Ue,Object.defineProperty(t,\"__esModule\",{value:!0})});\r\n//# sourceMappingURL=bootstrap.min.js.map\n/*\r\n * File: iframeResizer.js\r\n * Desc: Force iframes to size to content.\r\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\r\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\r\n * Author: David J. Bradshaw - dave@bradshaw.net\r\n * Contributor: Jure Mav - jure.mav@gmail.com\r\n * Contributor: Reed Dadoune - reed@dadoune.com\r\n */\r\n\r\n\r\n;(function(undefined) {\r\n 'use strict';\r\n\r\n if(typeof window === 'undefined') return; // don't run for server side render\r\n\r\n var\r\n count = 0,\r\n logEnabled = false,\r\n hiddenCheckEnabled = false,\r\n msgHeader = 'message',\r\n msgHeaderLen = msgHeader.length,\r\n msgId = '[iFrameSizer]', //Must match iframe msg ID\r\n msgIdLen = msgId.length,\r\n pagePosition = null,\r\n requestAnimationFrame = window.requestAnimationFrame,\r\n resetRequiredMethods = {max:1,scroll:1,bodyScroll:1,documentElementScroll:1},\r\n settings = {},\r\n timer = null,\r\n logId = 'Host Page',\r\n\r\n defaults = {\r\n autoResize : true,\r\n bodyBackground : null,\r\n bodyMargin : null,\r\n bodyMarginV1 : 8,\r\n bodyPadding : null,\r\n checkOrigin : true,\r\n inPageLinks : false,\r\n enablePublicMethods : true,\r\n heightCalculationMethod : 'bodyOffset',\r\n id : 'iFrameResizer',\r\n interval : 32,\r\n log : false,\r\n maxHeight : Infinity,\r\n maxWidth : Infinity,\r\n minHeight : 0,\r\n minWidth : 0,\r\n resizeFrom : 'parent',\r\n scrolling : false,\r\n sizeHeight : true,\r\n sizeWidth : false,\r\n warningTimeout : 5000,\r\n tolerance : 0,\r\n widthCalculationMethod : 'scroll',\r\n closedCallback : function() {},\r\n initCallback : function() {},\r\n messageCallback : function() {warn('MessageCallback function not defined');},\r\n resizedCallback : function() {},\r\n scrollCallback : function() {return true;}\r\n };\r\n\r\n function addEventListener(obj,evt,func) {\r\n /* istanbul ignore else */ // Not testable in PhantonJS\r\n if ('addEventListener' in window) {\r\n obj.addEventListener(evt,func, false);\r\n } else if ('attachEvent' in window) {//IE\r\n obj.attachEvent('on'+evt,func);\r\n }\r\n }\r\n\r\n function removeEventListener(el,evt,func) {\r\n /* istanbul ignore else */ // Not testable in phantonJS\r\n if ('removeEventListener' in window) {\r\n el.removeEventListener(evt,func, false);\r\n } else if ('detachEvent' in window) { //IE\r\n el.detachEvent('on'+evt,func);\r\n }\r\n }\r\n\r\n function setupRequestAnimationFrame() {\r\n var\r\n vendors = ['moz', 'webkit', 'o', 'ms'],\r\n x;\r\n\r\n // Remove vendor prefixing if prefixed and break early if not\r\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\r\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n }\r\n\r\n if (!(requestAnimationFrame)) {\r\n log('setup','RequestAnimationFrame not supported');\r\n }\r\n }\r\n\r\n function getMyID(iframeId) {\r\n var retStr = 'Host page: '+iframeId;\r\n\r\n if (window.top !== window.self) {\r\n if (window.parentIFrame && window.parentIFrame.getId) {\r\n retStr = window.parentIFrame.getId()+': '+iframeId;\r\n } else {\r\n retStr = 'Nested host page: '+iframeId;\r\n }\r\n }\r\n\r\n return retStr;\r\n }\r\n\r\n function formatLogHeader(iframeId) {\r\n return msgId + '[' + getMyID(iframeId) + ']';\r\n }\r\n\r\n function isLogEnabled(iframeId) {\r\n return settings[iframeId] ? settings[iframeId].log : logEnabled;\r\n }\r\n\r\n function log(iframeId,msg) {\r\n output('log',iframeId,msg,isLogEnabled(iframeId));\r\n }\r\n\r\n function info(iframeId,msg) {\r\n output('info',iframeId,msg,isLogEnabled(iframeId));\r\n }\r\n\r\n function warn(iframeId,msg) {\r\n output('warn',iframeId,msg,true);\r\n }\r\n\r\n function output(type,iframeId,msg,enabled) {\r\n if (true === enabled && 'object' === typeof window.console) {\r\n console[type](formatLogHeader(iframeId),msg);\r\n }\r\n }\r\n\r\n function iFrameListener(event) {\r\n function resizeIFrame() {\r\n function resize() {\r\n setSize(messageData);\r\n setPagePosition(iframeId);\r\n callback('resizedCallback',messageData);\r\n }\r\n\r\n ensureInRange('Height');\r\n ensureInRange('Width');\r\n\r\n syncResize(resize,messageData,'init');\r\n }\r\n\r\n function processMsg() {\r\n var data = msg.substr(msgIdLen).split(':');\r\n\r\n return {\r\n iframe: settings[data[0]] && settings[data[0]].iframe,\r\n id: data[0],\r\n height: data[1],\r\n width: data[2],\r\n type: data[3]\r\n };\r\n }\r\n\r\n function ensureInRange(Dimension) {\r\n var\r\n max = Number(settings[iframeId]['max' + Dimension]),\r\n min = Number(settings[iframeId]['min' + Dimension]),\r\n dimension = Dimension.toLowerCase(),\r\n size = Number(messageData[dimension]);\r\n\r\n log(iframeId,'Checking ' + dimension + ' is in range ' + min + '-' + max);\r\n\r\n if (sizemax) {\r\n size=max;\r\n log(iframeId,'Set ' + dimension + ' to max value');\r\n }\r\n\r\n messageData[dimension] = '' + size;\r\n }\r\n\r\n\r\n function isMessageFromIFrame() {\r\n function checkAllowedOrigin() {\r\n function checkList() {\r\n var\r\n i = 0,\r\n retCode = false;\r\n\r\n log(iframeId,'Checking connection is from allowed list of origins: ' + checkOrigin);\r\n\r\n for (; i < checkOrigin.length; i++) {\r\n if (checkOrigin[i] === origin) {\r\n retCode = true;\r\n break;\r\n }\r\n }\r\n return retCode;\r\n }\r\n\r\n function checkSingle() {\r\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost;\r\n log(iframeId,'Checking connection is from: '+remoteHost);\r\n return origin === remoteHost;\r\n }\r\n\r\n return checkOrigin.constructor === Array ? checkList() : checkSingle();\r\n }\r\n\r\n var\r\n origin = event.origin,\r\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin;\r\n\r\n if (checkOrigin && (''+origin !== 'null') && !checkAllowedOrigin()) {\r\n throw new Error(\r\n 'Unexpected message received from: ' + origin +\r\n ' for ' + messageData.iframe.id +\r\n '. Message was: ' + event.data +\r\n '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function isMessageForUs() {\r\n return msgId === (('' + msg).substr(0,msgIdLen)) && (msg.substr(msgIdLen).split(':')[0] in settings); //''+Protects against non-string msg\r\n }\r\n\r\n function isMessageFromMetaParent() {\r\n //Test if this message is from a parent above us. This is an ugly test, however, updating\r\n //the message format would break backwards compatibity.\r\n var retCode = messageData.type in {'true':1,'false':1,'undefined':1};\r\n\r\n if (retCode) {\r\n log(iframeId,'Ignoring init message from meta parent page');\r\n }\r\n\r\n return retCode;\r\n }\r\n\r\n function getMsgBody(offset) {\r\n return msg.substr(msg.indexOf(':')+msgHeaderLen+offset);\r\n }\r\n\r\n function forwardMsgFromIFrame(msgBody) {\r\n log(iframeId,'MessageCallback passed: {iframe: '+ messageData.iframe.id + ', message: ' + msgBody + '}');\r\n callback('messageCallback',{\r\n iframe: messageData.iframe,\r\n message: JSON.parse(msgBody)\r\n });\r\n log(iframeId,'--');\r\n }\r\n\r\n function getPageInfo() {\r\n var\r\n bodyPosition = document.body.getBoundingClientRect(),\r\n iFramePosition = messageData.iframe.getBoundingClientRect();\r\n\r\n return JSON.stringify({\r\n iframeHeight: iFramePosition.height,\r\n iframeWidth: iFramePosition.width,\r\n clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\r\n clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\r\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\r\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\r\n scrollTop: window.pageYOffset,\r\n scrollLeft: window.pageXOffset\r\n });\r\n }\r\n\r\n function sendPageInfoToIframe(iframe,iframeId) {\r\n function debouncedTrigger() {\r\n trigger(\r\n 'Send Page Info',\r\n 'pageInfo:' + getPageInfo(),\r\n iframe,\r\n iframeId\r\n );\r\n }\r\n debounceFrameEvents(debouncedTrigger,32,iframeId);\r\n }\r\n\r\n\r\n function startPageInfoMonitor() {\r\n function setListener(type,func) {\r\n function sendPageInfo() {\r\n if (settings[id]) {\r\n sendPageInfoToIframe(settings[id].iframe,id);\r\n } else {\r\n stop();\r\n }\r\n }\r\n\r\n ['scroll','resize'].forEach(function(evt) {\r\n log(id, type + evt + ' listener for sendPageInfo');\r\n func(window,evt,sendPageInfo);\r\n });\r\n }\r\n\r\n function stop() {\r\n setListener('Remove ', removeEventListener);\r\n }\r\n\r\n function start() {\r\n setListener('Add ', addEventListener);\r\n }\r\n\r\n var id = iframeId; //Create locally scoped copy of iFrame ID\r\n\r\n start();\r\n\r\n if (settings[id]) {\r\n settings[id].stopPageInfo = stop;\r\n }\r\n }\r\n\r\n function stopPageInfoMonitor() {\r\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\r\n settings[iframeId].stopPageInfo();\r\n delete settings[iframeId].stopPageInfo;\r\n }\r\n }\r\n\r\n function checkIFrameExists() {\r\n var retBool = true;\r\n\r\n if (null === messageData.iframe) {\r\n warn(iframeId,'IFrame ('+messageData.id+') not found');\r\n retBool = false;\r\n }\r\n return retBool;\r\n }\r\n\r\n function getElementPosition(target) {\r\n var iFramePosition = target.getBoundingClientRect();\r\n\r\n getPagePosition(iframeId);\r\n\r\n return {\r\n x: Math.floor( Number(iFramePosition.left) + Number(pagePosition.x) ),\r\n y: Math.floor( Number(iFramePosition.top) + Number(pagePosition.y) )\r\n };\r\n }\r\n\r\n function scrollRequestFromChild(addOffset) {\r\n /* istanbul ignore next */ //Not testable in Karma\r\n function reposition() {\r\n pagePosition = newPosition;\r\n scrollTo();\r\n log(iframeId,'--');\r\n }\r\n\r\n function calcOffset() {\r\n return {\r\n x: Number(messageData.width) + offset.x,\r\n y: Number(messageData.height) + offset.y\r\n };\r\n }\r\n\r\n function scrollParent() {\r\n if (window.parentIFrame) {\r\n window.parentIFrame['scrollTo'+(addOffset?'Offset':'')](newPosition.x,newPosition.y);\r\n } else {\r\n warn(iframeId,'Unable to scroll to requested position, window.parentIFrame not found');\r\n }\r\n }\r\n\r\n var\r\n offset = addOffset ? getElementPosition(messageData.iframe) : {x:0,y:0},\r\n newPosition = calcOffset();\r\n\r\n log(iframeId,'Reposition requested from iFrame (offset x:'+offset.x+' y:'+offset.y+')');\r\n\r\n if(window.top !== window.self) {\r\n scrollParent();\r\n } else {\r\n reposition();\r\n }\r\n }\r\n\r\n function scrollTo() {\r\n if (false !== callback('scrollCallback',pagePosition)) {\r\n setPagePosition(iframeId);\r\n } else {\r\n unsetPagePosition();\r\n }\r\n }\r\n\r\n function findTarget(location) {\r\n function jumpToTarget() {\r\n var jumpPosition = getElementPosition(target);\r\n\r\n log(iframeId,'Moving to in page link (#'+hash+') at x: '+jumpPosition.x+' y: '+jumpPosition.y);\r\n pagePosition = {\r\n x: jumpPosition.x,\r\n y: jumpPosition.y\r\n };\r\n\r\n scrollTo();\r\n log(iframeId,'--');\r\n }\r\n\r\n function jumpToParent() {\r\n if (window.parentIFrame) {\r\n window.parentIFrame.moveToAnchor(hash);\r\n } else {\r\n log(iframeId,'In page link #'+hash+' not found and window.parentIFrame not found');\r\n }\r\n }\r\n\r\n var\r\n hash = location.split('#')[1] || '',\r\n hashData = decodeURIComponent(hash),\r\n target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\r\n\r\n if (target) {\r\n jumpToTarget();\r\n } else if(window.top!==window.self) {\r\n jumpToParent();\r\n } else {\r\n log(iframeId,'In page link #'+hash+' not found');\r\n }\r\n }\r\n\r\n function callback(funcName,val) {\r\n return chkCallback(iframeId,funcName,val);\r\n }\r\n\r\n function actionMsg() {\r\n\r\n if(settings[iframeId] && settings[iframeId].firstRun) firstRun();\r\n\r\n switch(messageData.type) {\r\n case 'close':\r\n if(settings[iframeId].closeRequestCallback) chkCallback(iframeId, 'closeRequestCallback', settings[iframeId].iframe);\r\n else closeIFrame(messageData.iframe);\r\n break;\r\n case 'message':\r\n forwardMsgFromIFrame(getMsgBody(6));\r\n break;\r\n case 'scrollTo':\r\n scrollRequestFromChild(false);\r\n break;\r\n case 'scrollToOffset':\r\n scrollRequestFromChild(true);\r\n break;\r\n case 'pageInfo':\r\n sendPageInfoToIframe(settings[iframeId] && settings[iframeId].iframe,iframeId);\r\n startPageInfoMonitor();\r\n break;\r\n case 'pageInfoStop':\r\n stopPageInfoMonitor();\r\n break;\r\n case 'inPageLink':\r\n findTarget(getMsgBody(9));\r\n break;\r\n case 'reset':\r\n resetIFrame(messageData);\r\n break;\r\n case 'init':\r\n resizeIFrame();\r\n callback('initCallback',messageData.iframe);\r\n break;\r\n default:\r\n resizeIFrame();\r\n }\r\n }\r\n\r\n function hasSettings(iframeId) {\r\n var retBool = true;\r\n\r\n if (!settings[iframeId]) {\r\n retBool = false;\r\n warn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);\r\n }\r\n\r\n return retBool;\r\n }\r\n\r\n function iFrameReadyMsgReceived() {\r\n for (var iframeId in settings) {\r\n trigger('iFrame requested init',createOutgoingMsg(iframeId),document.getElementById(iframeId),iframeId);\r\n }\r\n }\r\n\r\n function firstRun() {\r\n if (settings[iframeId]) {\r\n settings[iframeId].firstRun = false;\r\n }\r\n }\r\n\r\n function clearWarningTimeout() {\r\n if (settings[iframeId]) {\r\n clearTimeout(settings[iframeId].msgTimeout);\r\n settings[iframeId].warningTimeout = 0;\r\n }\r\n }\r\n\r\n var\r\n msg = event.data,\r\n messageData = {},\r\n iframeId = null;\r\n\r\n if('[iFrameResizerChild]Ready' === msg) {\r\n iFrameReadyMsgReceived();\r\n } else if (isMessageForUs()) {\r\n messageData = processMsg();\r\n iframeId = logId = messageData.id;\r\n if (settings[iframeId]) {\r\n settings[iframeId].loaded = true;\r\n }\r\n\r\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\r\n log(iframeId,'Received: '+msg);\r\n\r\n if ( checkIFrameExists() && isMessageFromIFrame() ) {\r\n actionMsg();\r\n }\r\n }\r\n } else {\r\n info(iframeId,'Ignored: '+msg);\r\n }\r\n\r\n }\r\n\r\n\r\n function chkCallback(iframeId,funcName,val) {\r\n var\r\n func = null,\r\n retVal = null;\r\n\r\n if(settings[iframeId]) {\r\n func = settings[iframeId][funcName];\r\n\r\n if( 'function' === typeof func) {\r\n retVal = func(val);\r\n } else {\r\n throw new TypeError(funcName+' on iFrame['+iframeId+'] is not a function');\r\n }\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n function closeIFrame(iframe) {\r\n var iframeId = iframe.id;\r\n\r\n log(iframeId,'Removing iFrame: '+iframeId);\r\n if (iframe.parentNode) { iframe.parentNode.removeChild(iframe); }\r\n chkCallback(iframeId,'closedCallback',iframeId);\r\n log(iframeId,'--');\r\n delete settings[iframeId];\r\n }\r\n\r\n function getPagePosition(iframeId) {\r\n if(null === pagePosition) {\r\n pagePosition = {\r\n x: (window.pageXOffset !== undefined) ? window.pageXOffset : document.documentElement.scrollLeft,\r\n y: (window.pageYOffset !== undefined) ? window.pageYOffset : document.documentElement.scrollTop\r\n };\r\n log(iframeId,'Get page position: '+pagePosition.x+','+pagePosition.y);\r\n }\r\n }\r\n\r\n function setPagePosition(iframeId) {\r\n if(null !== pagePosition) {\r\n window.scrollTo(pagePosition.x,pagePosition.y);\r\n log(iframeId,'Set page position: '+pagePosition.x+','+pagePosition.y);\r\n unsetPagePosition();\r\n }\r\n }\r\n\r\n function unsetPagePosition() {\r\n pagePosition = null;\r\n }\r\n\r\n function resetIFrame(messageData) {\r\n function reset() {\r\n setSize(messageData);\r\n trigger('reset','reset',messageData.iframe,messageData.id);\r\n }\r\n\r\n log(messageData.id,'Size reset requested by '+('init'===messageData.type?'host page':'iFrame'));\r\n getPagePosition(messageData.id);\r\n syncResize(reset,messageData,'reset');\r\n }\r\n\r\n function setSize(messageData) {\r\n function setDimension(dimension) {\r\n messageData.iframe.style[dimension] = messageData[dimension] + 'px';\r\n log(\r\n messageData.id,\r\n 'IFrame (' + iframeId +\r\n ') ' + dimension +\r\n ' set to ' + messageData[dimension] + 'px'\r\n );\r\n }\r\n\r\n function chkZero(dimension) {\r\n //FireFox sets dimension of hidden iFrames to zero.\r\n //So if we detect that set up an event to check for\r\n //when iFrame becomes visible.\r\n\r\n /* istanbul ignore next */ //Not testable in PhantomJS\r\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\r\n hiddenCheckEnabled = true;\r\n log(iframeId,'Hidden iFrame detected, creating visibility listener');\r\n fixHiddenIFrames();\r\n }\r\n }\r\n\r\n function processDimension(dimension) {\r\n setDimension(dimension);\r\n chkZero(dimension);\r\n }\r\n\r\n var iframeId = messageData.iframe.id;\r\n\r\n if(settings[iframeId]) {\r\n if( settings[iframeId].sizeHeight) { processDimension('height'); }\r\n if( settings[iframeId].sizeWidth ) { processDimension('width'); }\r\n }\r\n }\r\n\r\n function syncResize(func,messageData,doNotSync) {\r\n /* istanbul ignore if */ //Not testable in PhantomJS\r\n if(doNotSync!==messageData.type && requestAnimationFrame) {\r\n log(messageData.id,'Requesting animation frame');\r\n requestAnimationFrame(func);\r\n } else {\r\n func();\r\n }\r\n }\r\n\r\n function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\r\n function postMessageToIFrame() {\r\n var target = settings[id] && settings[id].targetOrigin;\r\n log(id,'[' + calleeMsg + '] Sending msg to iframe['+id+'] ('+msg+') targetOrigin: '+target);\r\n iframe.contentWindow.postMessage( msgId + msg, target );\r\n }\r\n\r\n function iFrameNotFound() {\r\n warn(id,'[' + calleeMsg + '] IFrame('+id+') not found');\r\n }\r\n\r\n function chkAndSend() {\r\n if(iframe && 'contentWindow' in iframe && (null !== iframe.contentWindow)) { //Null test for PhantomJS\r\n postMessageToIFrame();\r\n } else {\r\n iFrameNotFound();\r\n }\r\n }\r\n\r\n function warnOnNoResponse() {\r\n function warning() {\r\n if (settings[id] && !settings[id].loaded && !errorShown) {\r\n errorShown = true;\r\n warn(id, 'IFrame has not responded within '+ settings[id].warningTimeout/1000 +' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ingored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.');\r\n }\r\n }\r\n\r\n if (!!noResponseWarning && settings[id] && !!settings[id].warningTimeout) {\r\n settings[id].msgTimeout = setTimeout(warning, settings[id].warningTimeout);\r\n }\r\n }\r\n\r\n var errorShown = false;\r\n\r\n id = id || iframe.id;\r\n\r\n if(settings[id]) {\r\n chkAndSend();\r\n warnOnNoResponse();\r\n }\r\n\r\n }\r\n\r\n function createOutgoingMsg(iframeId) {\r\n return iframeId +\r\n ':' + settings[iframeId].bodyMarginV1 +\r\n ':' + settings[iframeId].sizeWidth +\r\n ':' + settings[iframeId].log +\r\n ':' + settings[iframeId].interval +\r\n ':' + settings[iframeId].enablePublicMethods +\r\n ':' + settings[iframeId].autoResize +\r\n ':' + settings[iframeId].bodyMargin +\r\n ':' + settings[iframeId].heightCalculationMethod +\r\n ':' + settings[iframeId].bodyBackground +\r\n ':' + settings[iframeId].bodyPadding +\r\n ':' + settings[iframeId].tolerance +\r\n ':' + settings[iframeId].inPageLinks +\r\n ':' + settings[iframeId].resizeFrom +\r\n ':' + settings[iframeId].widthCalculationMethod;\r\n }\r\n\r\n function setupIFrame(iframe,options) {\r\n function setLimits() {\r\n function addStyle(style) {\r\n if ((Infinity !== settings[iframeId][style]) && (0 !== settings[iframeId][style])) {\r\n iframe.style[style] = settings[iframeId][style] + 'px';\r\n log(iframeId,'Set '+style+' = '+settings[iframeId][style]+'px');\r\n }\r\n }\r\n\r\n function chkMinMax(dimension) {\r\n if (settings[iframeId]['min'+dimension]>settings[iframeId]['max'+dimension]) {\r\n throw new Error('Value for min'+dimension+' can not be greater than max'+dimension);\r\n }\r\n }\r\n\r\n chkMinMax('Height');\r\n chkMinMax('Width');\r\n\r\n addStyle('maxHeight');\r\n addStyle('minHeight');\r\n addStyle('maxWidth');\r\n addStyle('minWidth');\r\n }\r\n\r\n function newId() {\r\n var id = ((options && options.id) || defaults.id + count++);\r\n if (null !== document.getElementById(id)) {\r\n id = id + count++;\r\n }\r\n return id;\r\n }\r\n\r\n function ensureHasId(iframeId) {\r\n logId=iframeId;\r\n if (''===iframeId) {\r\n iframe.id = iframeId = newId();\r\n logEnabled = (options || {}).log;\r\n logId=iframeId;\r\n log(iframeId,'Added missing iframe ID: '+ iframeId +' (' + iframe.src + ')');\r\n }\r\n\r\n\r\n return iframeId;\r\n }\r\n\r\n function setScrolling() {\r\n log(iframeId,'IFrame scrolling ' + (settings[iframeId] && settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);\r\n iframe.style.overflow = false === (settings[iframeId] && settings[iframeId].scrolling) ? 'hidden' : 'auto';\r\n switch(settings[iframeId] && settings[iframeId].scrolling) {\r\n case true:\r\n iframe.scrolling = 'yes';\r\n break;\r\n case false:\r\n iframe.scrolling = 'no';\r\n break;\r\n default:\r\n iframe.scrolling = settings[iframeId] ? settings[iframeId].scrolling : 'no';\r\n }\r\n }\r\n\r\n //The V1 iFrame script expects an int, where as in V2 expects a CSS\r\n //string value such as '1px 3em', so if we have an int for V2, set V1=V2\r\n //and then convert V2 to a string PX value.\r\n function setupBodyMarginValues() {\r\n if (('number'===typeof(settings[iframeId] && settings[iframeId].bodyMargin)) || ('0'===(settings[iframeId] && settings[iframeId].bodyMargin))) {\r\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;\r\n settings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';\r\n }\r\n }\r\n\r\n function checkReset() {\r\n // Reduce scope of firstRun to function, because IE8's JS execution\r\n // context stack is borked and this value gets externally\r\n // changed midway through running this function!!!\r\n var\r\n firstRun = settings[iframeId] && settings[iframeId].firstRun,\r\n resetRequertMethod = settings[iframeId] && settings[iframeId].heightCalculationMethod in resetRequiredMethods;\r\n\r\n if (!firstRun && resetRequertMethod) {\r\n resetIFrame({iframe:iframe, height:0, width:0, type:'init'});\r\n }\r\n }\r\n\r\n function setupIFrameObject() {\r\n if(Function.prototype.bind && settings[iframeId]) { //Ignore unpolyfilled IE8.\r\n settings[iframeId].iframe.iFrameResizer = {\r\n\r\n close : closeIFrame.bind(null,settings[iframeId].iframe),\r\n\r\n resize : trigger.bind(null,'Window resize', 'resize', settings[iframeId].iframe),\r\n\r\n moveToAnchor : function(anchor) {\r\n trigger('Move to anchor','moveToAnchor:'+anchor, settings[iframeId].iframe,iframeId);\r\n },\r\n\r\n sendMessage : function(message) {\r\n message = JSON.stringify(message);\r\n trigger('Send Message','message:'+message, settings[iframeId].iframe, iframeId);\r\n }\r\n };\r\n }\r\n }\r\n\r\n //We have to call trigger twice, as we can not be sure if all\r\n //iframes have completed loading when this code runs. The\r\n //event listener also catches the page changing in the iFrame.\r\n function init(msg) {\r\n function iFrameLoaded() {\r\n trigger('iFrame.onload', msg, iframe, undefined , true);\r\n checkReset();\r\n }\r\n\r\n addEventListener(iframe,'load',iFrameLoaded);\r\n trigger('init', msg, iframe, undefined, true);\r\n }\r\n\r\n function checkOptions(options) {\r\n if ('object' !== typeof options) {\r\n throw new TypeError('Options is not an object');\r\n }\r\n }\r\n\r\n function copyOptions(options) {\r\n for (var option in defaults) {\r\n if (defaults.hasOwnProperty(option)) {\r\n settings[iframeId][option] = options.hasOwnProperty(option) ? options[option] : defaults[option];\r\n }\r\n }\r\n }\r\n\r\n function getTargetOrigin (remoteHost) {\r\n return ('' === remoteHost || 'file://' === remoteHost) ? '*' : remoteHost;\r\n }\r\n\r\n function processOptions(options) {\r\n options = options || {};\r\n settings[iframeId] = {\r\n firstRun\t: true,\r\n iframe\t\t: iframe,\r\n remoteHost\t: iframe.src.split('/').slice(0,3).join('/')\r\n };\r\n\r\n checkOptions(options);\r\n copyOptions(options);\r\n\r\n if (settings[iframeId]) {\r\n settings[iframeId].targetOrigin = true === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';\r\n }\r\n }\r\n\r\n function beenHere() {\r\n return (iframeId in settings && 'iFrameResizer' in iframe);\r\n }\r\n\r\n var iframeId = ensureHasId(iframe.id);\r\n\r\n if (!beenHere()) {\r\n processOptions(options);\r\n setScrolling();\r\n setLimits();\r\n setupBodyMarginValues();\r\n init(createOutgoingMsg(iframeId));\r\n setupIFrameObject();\r\n } else {\r\n warn(iframeId,'Ignored iFrame, already setup.');\r\n }\r\n }\r\n\r\n function debouce(fn,time) {\r\n if (null === timer) {\r\n timer = setTimeout(function() {\r\n timer = null;\r\n fn();\r\n }, time);\r\n }\r\n }\r\n \r\n var frameTimer = {};\r\n function debounceFrameEvents(fn,time,frameId) {\r\n if (!frameTimer[frameId]) {\r\n frameTimer[frameId] = setTimeout(function() {\r\n frameTimer[frameId] = null;\r\n fn();\r\n }, time);\r\n }\r\n }\r\n\r\n /* istanbul ignore next */ //Not testable in PhantomJS\r\n function fixHiddenIFrames() {\r\n function checkIFrames() {\r\n function checkIFrame(settingId) {\r\n function chkDimension(dimension) {\r\n return '0px' === (settings[settingId] && settings[settingId].iframe.style[dimension]);\r\n }\r\n\r\n function isVisible(el) {\r\n return (null !== el.offsetParent);\r\n }\r\n\r\n if (settings[settingId] && isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {\r\n trigger('Visibility change', 'resize', settings[settingId].iframe, settingId);\r\n }\r\n }\r\n\r\n for (var settingId in settings) {\r\n checkIFrame(settingId);\r\n }\r\n }\r\n\r\n function mutationObserved(mutations) {\r\n log('window','Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);\r\n debouce(checkIFrames,16);\r\n }\r\n\r\n function createMutationObserver() {\r\n var\r\n target = document.querySelector('body'),\r\n\r\n config = {\r\n attributes : true,\r\n attributeOldValue : false,\r\n characterData : true,\r\n characterDataOldValue : false,\r\n childList : true,\r\n subtree : true\r\n },\r\n\r\n observer = new MutationObserver(mutationObserved);\r\n\r\n observer.observe(target, config);\r\n }\r\n\r\n var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;\r\n\r\n if (MutationObserver) createMutationObserver();\r\n }\r\n\r\n\r\n function resizeIFrames(event) {\r\n function resize() {\r\n sendTriggerMsg('Window '+event,'resize');\r\n }\r\n\r\n log('window','Trigger event: '+event);\r\n debouce(resize,16);\r\n }\r\n\r\n /* istanbul ignore next */ //Not testable in PhantomJS\r\n function tabVisible() {\r\n function resize() {\r\n sendTriggerMsg('Tab Visable','resize');\r\n }\r\n\r\n if('hidden' !== document.visibilityState) {\r\n log('document','Trigger event: Visiblity change');\r\n debouce(resize,16);\r\n }\r\n }\r\n\r\n function sendTriggerMsg(eventName,event) {\r\n function isIFrameResizeEnabled(iframeId) {\r\n return\tsettings[iframeId] &&\r\n 'parent' === settings[iframeId].resizeFrom &&\r\n settings[iframeId].autoResize &&\r\n !settings[iframeId].firstRun;\r\n }\r\n\r\n for (var iframeId in settings) {\r\n if(isIFrameResizeEnabled(iframeId)) {\r\n trigger(eventName, event, document.getElementById(iframeId), iframeId);\r\n }\r\n }\r\n }\r\n\r\n function setupEventListeners() {\r\n addEventListener(window,'message',iFrameListener);\r\n\r\n addEventListener(window,'resize', function() {resizeIFrames('resize');});\r\n\r\n addEventListener(document,'visibilitychange',tabVisible);\r\n addEventListener(document,'-webkit-visibilitychange',tabVisible); //Andriod 4.4\r\n addEventListener(window,'focusin',function() {resizeIFrames('focus');}); //IE8-9\r\n addEventListener(window,'focus',function() {resizeIFrames('focus');});\r\n }\r\n\r\n\r\n function factory() {\r\n function init(options,element) {\r\n function chkType() {\r\n if(!element.tagName) {\r\n throw new TypeError('Object is not a valid DOM element');\r\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\r\n throw new TypeError('Expected