summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2016-02-10 10:22:00 +0100
committerFulup Ar Foll <fulup@iot.bzh>2016-02-10 10:22:00 +0100
commitf921693a645619a4b9cec63c0b65825b85b351ce (patch)
treef3ce67d685c14e591183f674ef129e0df098cc2a
parent662c8409cd101fa168727e4a10f7e49d9a85e5f6 (diff)
Fix Warning
-rw-r--r--afb-client/app/Frontend/app.js2
-rw-r--r--afb-client/dist.prod/bower_components/vendor.min.js24
-rw-r--r--afb-client/dist.prod/opa/AFBclient.min.js4
3 files changed, 15 insertions, 15 deletions
diff --git a/afb-client/app/Frontend/app.js b/afb-client/app/Frontend/app.js
index 6360b75..6772243 100644
--- a/afb-client/app/Frontend/app.js
+++ b/afb-client/app/Frontend/app.js
@@ -6,7 +6,7 @@
location.search.substr(1).split("&").forEach(function(item) {
var k = item.split("=")[0];
var v = decodeURIComponent(item.split("=")[1]);
- (k in qd) ? qd[k].push(v) : qd[k] = [v];
+ if (k in qd) qd[k].push(v); else qd[k] = [v];
});
return qd;
}
diff --git a/afb-client/dist.prod/bower_components/vendor.min.js b/afb-client/dist.prod/bower_components/vendor.min.js
index 3a9b8fe..e7391a7 100644
--- a/afb-client/dist.prod/bower_components/vendor.min.js
+++ b/afb-client/dist.prod/bower_components/vendor.min.js
@@ -1,12 +1,12 @@
-!function(t,e,n){"use strict";function r(t,e){return e=e||Error,function(){var n,r,i=arguments[0],o="["+(t?t+":":"")+i+"] ",a=arguments[1],s=arguments;for(n=o+a.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1);return e+2<s.length?ht(s[e+2]):t}),n=n+"\nhttp://errors.angularjs.org/1.3.20/"+(t?t+"/":"")+i,r=2;r<arguments.length;r++)n=n+(2==r?"?":"&")+"p"+(r-2)+"="+encodeURIComponent(ht(arguments[r]));return new e(n)}}function i(t){if(null==t||E(t))return!1;var e="length"in Object(t)&&t.length;return t.nodeType===br&&e?!0:b(t)||dr(t)||0===e||"number"==typeof e&&e>0&&e-1 in t}function o(t,e,n){var r,a;if(t)if(x(t))for(r in t)"prototype"==r||"length"==r||"name"==r||t.hasOwnProperty&&!t.hasOwnProperty(r)||e.call(n,t[r],r,t);else if(dr(t)||i(t)){var s="object"!=typeof t;for(r=0,a=t.length;a>r;r++)(s||r in t)&&e.call(n,t[r],r,t)}else if(t.forEach&&t.forEach!==o)t.forEach(e,n,t);else for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t);return t}function a(t){return Object.keys(t).sort()}function s(t,e,n){for(var r=a(t),i=0;i<r.length;i++)e.call(n,t[r[i]],r[i]);return r}function u(t){return function(e,n){t(n,e)}}function c(){return++fr}function l(t,e){e?t.$$hashKey=e:delete t.$$hashKey}function f(t){for(var e=t.$$hashKey,n=1,r=arguments.length;r>n;n++){var i=arguments[n];if(i)for(var o=Object.keys(i),a=0,s=o.length;s>a;a++){var u=o[a];t[u]=i[u]}}return l(t,e),t}function h(t){return parseInt(t,10)}function d(t,e){return f(Object.create(t),e)}function p(){}function m(t){return t}function v(t){return function(){return t}}function g(t){return"undefined"==typeof t}function $(t){return"undefined"!=typeof t}function y(t){return null!==t&&"object"==typeof t}function b(t){return"string"==typeof t}function w(t){return"number"==typeof t}function _(t){return"[object Date]"===ur.call(t)}function x(t){return"function"==typeof t}function C(t){return"[object RegExp]"===ur.call(t)}function E(t){return t&&t.window===t}function k(t){return t&&t.$evalAsync&&t.$watch}function A(t){return"[object File]"===ur.call(t)}function S(t){return"[object FormData]"===ur.call(t)}function T(t){return"[object Blob]"===ur.call(t)}function O(t){return"boolean"==typeof t}function I(t){return t&&x(t.then)}function z(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function M(t){var e,n={},r=t.split(",");for(e=0;e<r.length;e++)n[r[e]]=!0;return n}function D(t){return Gn(t.nodeName||t[0]&&t[0].nodeName)}function j(t,e){var n=t.indexOf(e);return n>=0&&t.splice(n,1),e}function N(t,e,n,r){if(E(t)||k(t))throw cr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(e){if(t===e)throw cr("cpi","Can't copy! Source and destination are identical.");if(n=n||[],r=r||[],y(t)){var i=n.indexOf(t);if(-1!==i)return r[i];n.push(t),r.push(e)}var a;if(dr(t)){e.length=0;for(var s=0;s<t.length;s++)a=N(t[s],null,n,r),y(t[s])&&(n.push(t[s]),r.push(a)),e.push(a)}else{var u=e.$$hashKey;dr(e)?e.length=0:o(e,function(t,n){delete e[n]});for(var c in t)t.hasOwnProperty(c)&&(a=N(t[c],null,n,r),y(t[c])&&(n.push(t[c]),r.push(a)),e[c]=a);l(e,u)}}else if(e=t,t)if(dr(t))e=N(t,[],n,r);else if(_(t))e=new Date(t.getTime());else if(C(t))e=new RegExp(t.source,t.toString().match(/[^\/]*$/)[0]),e.lastIndex=t.lastIndex;else if(y(t)){var f=Object.create(Object.getPrototypeOf(t));e=N(t,f,n,r)}return e}function R(t,e){if(dr(t)){e=e||[];for(var n=0,r=t.length;r>n;n++)e[n]=t[n]}else if(y(t)){e=e||{};for(var i in t)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(e[i]=t[i])}return e||t}function P(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var r,i,o,a=typeof t,s=typeof e;if(a==s&&"object"==a){if(!dr(t)){if(_(t))return _(e)?P(t.getTime(),e.getTime()):!1;if(C(t))return C(e)?t.toString()==e.toString():!1;if(k(t)||k(e)||E(t)||E(e)||dr(e)||_(e)||C(e))return!1;o={};for(i in t)if("$"!==i.charAt(0)&&!x(t[i])){if(!P(t[i],e[i]))return!1;o[i]=!0}for(i in e)if(!o.hasOwnProperty(i)&&"$"!==i.charAt(0)&&e[i]!==n&&!x(e[i]))return!1;return!0}if(!dr(e))return!1;if((r=t.length)==e.length){for(i=0;r>i;i++)if(!P(t[i],e[i]))return!1;return!0}}return!1}function F(t,e,n){return t.concat(or.call(e,n))}function B(t,e){return or.call(t,e||0)}function L(t,e){var n=arguments.length>2?B(arguments,2):[];return!x(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,F(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function U(t,r){var i=r;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=n:E(r)?i="$WINDOW":r&&e===r?i="$DOCUMENT":k(r)&&(i="$SCOPE"),i}function V(t,e){return"undefined"==typeof t?n:(w(e)||(e=e?2:null),JSON.stringify(t,U,e))}function q(t){return b(t)?JSON.parse(t):t}function H(t){t=nr(t).clone();try{t.empty()}catch(e){}var n=nr("<div>").append(t).html();try{return t[0].nodeType===_r?Gn(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+Gn(e)})}catch(e){return Gn(n)}}function W(t){try{return decodeURIComponent(t)}catch(e){}}function X(t){var e,n,r={};return o((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=W(e[0]),$(n))){var i=$(e[1])?W(e[1]):!0;Kn.call(r,n)?dr(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function Y(t){var e=[];return o(t,function(t,n){dr(t)?o(t,function(t){e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}):e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}),e.length?e.join("&"):""}function Z(t){return G(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function G(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function K(t,e){var n,r,i=gr.length;for(t=nr(t),r=0;i>r;++r)if(n=gr[r]+e,b(n=t.attr(n)))return n;return null}function J(t,e){var n,r,i={};o(gr,function(e){var i=e+"app";!n&&t.hasAttribute&&t.hasAttribute(i)&&(n=t,r=t.getAttribute(i))}),o(gr,function(e){var i,o=e+"app";!n&&(i=t.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==K(n,"strict-di"),e(n,r?[r]:[],i))}function Q(n,r,i){y(i)||(i={});var a={strictDi:!1};i=f(a,i);var s=function(){if(n=nr(n),n.injector()){var t=n[0]===e?"document":H(n);throw cr("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(/</,"&lt;").replace(/>/,"&gt;"))}r=r||[],r.unshift(["$provide",function(t){t.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),r.unshift("ng");var o=qt(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,r){t.$apply(function(){e.data("$injector",r),n(e)(t)})}]),o},u=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return t&&u.test(t.name)&&(i.debugInfoEnabled=!0,t.name=t.name.replace(u,"")),t&&!c.test(t.name)?s():(t.name=t.name.replace(c,""),lr.resumeBootstrap=function(t){return o(t,function(t){r.push(t)}),s()},void(x(lr.resumeDeferredBootstrap)&&lr.resumeDeferredBootstrap()))}function tt(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function et(t){var e=lr.element(t).injector();if(!e)throw cr("test","no injector found for element argument to getTestability");return e.get("$$testability")}function nt(t,e){return e=e||"_",t.replace($r,function(t,n){return(n?e:"")+t.toLowerCase()})}function rt(){var e;yr||(rr=t.jQuery,rr&&rr.fn.on?(nr=rr,f(rr.fn,{scope:Br.scope,isolateScope:Br.isolateScope,controller:Br.controller,injector:Br.injector,inheritedData:Br.inheritedData}),e=rr.cleanData,rr.cleanData=function(t){var n;if(hr)hr=!1;else for(var r,i=0;null!=(r=t[i]);i++)n=rr._data(r,"events"),n&&n.$destroy&&rr(r).triggerHandler("$destroy");e(t)}):nr=bt,lr.element=nr,yr=!0)}function it(t,e,n){if(!t)throw cr("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ot(t,e,n){return n&&dr(t)&&(t=t[t.length-1]),it(x(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function at(t,e){if("hasOwnProperty"===t)throw cr("badname","hasOwnProperty is not a valid {0} name",e)}function st(t,e,n){if(!e)return t;for(var r,i=e.split("."),o=t,a=i.length,s=0;a>s;s++)r=i[s],t&&(t=(o=t)[r]);return!n&&x(t)?L(o,t):t}function ut(t){var e=t[0],n=t[t.length-1],r=[e];do{if(e=e.nextSibling,!e)break;r.push(e)}while(e!==n);return nr(r)}function ct(){return Object.create(null)}function lt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=r("$injector"),i=r("ng"),o=e(t,"angular",Object);return o.$$minErr=o.$$minErr||r,e(o,"module",function(){var t={};return function(r,o,a){var s=function(t,e){if("hasOwnProperty"===t)throw i("badname","hasOwnProperty is not a valid {0} name",e)};return s(r,"module"),o&&t.hasOwnProperty(r)&&(t[r]=null),e(t,r,function(){function t(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),c}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var e=[],i=[],s=[],u=t("$injector","invoke","push",i),c={_invokeQueue:e,_configBlocks:i,_runBlocks:s,requires:o,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:u,run:function(t){return s.push(t),this}};return a&&u(a),c})}})}function ft(t){var e=[];return JSON.stringify(t,function(t,n){if(n=U(t,n),y(n)){if(e.indexOf(n)>=0)return"<<already seen>>";e.push(n)}return n})}function ht(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?ft(t):t}function dt(e){f(e,{bootstrap:Q,copy:N,extend:f,equals:P,element:nr,forEach:o,injector:qt,noop:p,bind:L,toJson:V,fromJson:q,identity:m,isUndefined:g,isDefined:$,isString:b,isFunction:x,isObject:y,isNumber:w,isElement:z,isArray:dr,version:kr,isDate:_,lowercase:Gn,uppercase:Jn,callbacks:{counter:0},getTestability:et,$$minErr:r,$$csp:vr,reloadWithDebugInfo:tt}),ir=lt(t);try{ir("ngLocale")}catch(n){ir("ngLocale",[]).provider("$locale",ve)}ir("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:Ze}),t.provider("$compile",Kt).directive({a:zi,input:Zi,textarea:Zi,form:Ri,script:Fo,select:Uo,style:qo,option:Vo,ngBind:Ji,ngBindHtml:to,ngBindTemplate:Qi,ngClass:no,ngClassEven:io,ngClassOdd:ro,ngCloak:oo,ngController:ao,ngForm:Pi,ngHide:Mo,ngIf:co,ngInclude:lo,ngInit:ho,ngNonBindable:Ao,ngPluralize:So,ngRepeat:To,ngShow:zo,ngStyle:Do,ngSwitch:jo,ngSwitchWhen:No,ngSwitchDefault:Ro,ngOptions:Lo,ngTransclude:Po,ngModel:Co,ngList:po,ngChange:eo,pattern:Wo,ngPattern:Wo,required:Ho,ngRequired:Ho,minlength:Yo,ngMinlength:Yo,maxlength:Xo,ngMaxlength:Xo,ngValue:Ki,ngModelOptions:ko}).directive({ngInclude:fo}).directive(Mi).directive(so),t.provider({$anchorScroll:Ht,$animate:Gr,$browser:Yt,$cacheFactory:Zt,$controller:ee,$document:ne,$exceptionHandler:re,$filter:un,$interpolate:pe,$interval:me,$http:le,$httpBackend:he,$location:Oe,$log:Ie,$parse:Ve,$rootScope:Ye,$q:qe,$$q:He,$sce:Qe,$sceDelegate:Je,$sniffer:tn,$templateCache:Gt,$templateRequest:en,$$testability:nn,$timeout:rn,$window:sn,$$rAF:Xe,$$asyncCallback:Wt,$$jqLite:Ft})}])}function pt(){return++Sr}function mt(t){return t.replace(Ir,function(t,e,n,r){return r?n.toUpperCase():n}).replace(zr,"Moz$1")}function vt(t){return!Nr.test(t)}function gt(t){var e=t.nodeType;return e===br||!e||e===Cr}function $t(t,e){var n,r,i,a,s=e.createDocumentFragment(),u=[];if(vt(t))u.push(e.createTextNode(t));else{for(n=n||s.appendChild(e.createElement("div")),r=(Rr.exec(t)||["",""])[1].toLowerCase(),i=Fr[r]||Fr._default,n.innerHTML=i[1]+t.replace(Pr,"<$1></$2>")+i[2],a=i[0];a--;)n=n.lastChild;u=F(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(u,function(t){s.appendChild(t)}),s}function yt(t,n){n=n||e;var r;return(r=jr.exec(t))?[n.createElement(r[1])]:(r=$t(t,n))?r.childNodes:[]}function bt(t){if(t instanceof bt)return t;var e;if(b(t)&&(t=pr(t),e=!0),!(this instanceof bt)){if(e&&"<"!=t.charAt(0))throw Dr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new bt(t)}e?Ot(this,yt(t)):Ot(this,t)}function wt(t){return t.cloneNode(!0)}function _t(t,e){if(e||Ct(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Ct(n[r])}function xt(t,e,n,r){if($(r))throw Dr("offargs","jqLite#off() does not support the `selector` argument");var i=Et(t),a=i&&i.events,s=i&&i.handle;if(s)if(e)o(e.split(" "),function(e){if($(n)){var r=a[e];if(j(r||[],n),r&&r.length>0)return}Or(t,e,s),delete a[e]});else for(e in a)"$destroy"!==e&&Or(t,e,s),delete a[e]}function Ct(t,e){var r=t.ng339,i=r&&Ar[r];if(i){if(e)return void delete i.data[e];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),xt(t)),delete Ar[r],t.ng339=n}}function Et(t,e){var r=t.ng339,i=r&&Ar[r];return e&&!i&&(t.ng339=r=pt(),i=Ar[r]={events:{},data:{},handle:n}),i}function kt(t,e,n){if(gt(t)){var r=$(n),i=!r&&e&&!y(e),o=!e,a=Et(t,!i),s=a&&a.data;if(r)s[e]=n;else{if(o)return s;if(i)return s&&s[e];f(s,e)}}}function At(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function St(t,e){e&&t.setAttribute&&o(e.split(" "),function(e){t.setAttribute("class",pr((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+pr(e)+" "," ")))})}function Tt(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(e.split(" "),function(t){t=pr(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",pr(n))}}function Ot(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var r=0;n>r;r++)t[t.length++]=e[r]}else t[t.length++]=e}}function It(t,e){return zt(t,"$"+(e||"ngController")+"Controller")}function zt(t,e,r){t.nodeType==Cr&&(t=t.documentElement);for(var i=dr(e)?e:[e];t;){for(var o=0,a=i.length;a>o;o++)if((r=nr.data(t,i[o]))!==n)return r;t=t.parentNode||t.nodeType===Er&&t.host}}function Mt(t){for(_t(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Dt(t,e){e||_t(t);var n=t.parentNode;n&&n.removeChild(t)}function jt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):nr(n).on("load",e)}function Nt(t,e){var n=Lr[e.toLowerCase()];return n&&Ur[D(t)]&&n}function Rt(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&Vr[e]}function Pt(t,e){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=e[r||n.type],o=i?i.length:0;if(o){if(g(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=R(i));for(var s=0;o>s;s++)n.isImmediatePropagationStopped()||i[s].call(t,n)}};return n.elem=t,n}function Ft(){this.$get=function(){return f(bt,{hasClass:function(t,e){return t.attr&&(t=t[0]),At(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),Tt(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),St(t,e)}})}}function Bt(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var r=typeof t;return n="function"==r||"object"==r&&null!==t?t.$$hashKey=r+":"+(e||c)():r+":"+t}function Lt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}o(t,this.put,this)}function Ut(t){var e=t.toString().replace(Xr,""),n=e.match(qr);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Vt(t,e,n){var r,i,a,s;if("function"==typeof t){if(!(r=t.$inject)){if(r=[],t.length){if(e)throw b(n)&&n||(n=t.name||Ut(t)),Yr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=t.toString().replace(Xr,""),a=i.match(qr),o(a[1].split(Hr),function(t){t.replace(Wr,function(t,e,n){r.push(n)})})}t.$inject=r}}else dr(t)?(s=t.length-1,ot(t[s],"fn"),r=t.slice(0,s)):ot(t,"fn",!0);return r}function qt(t,e){function r(t){return function(e,n){return y(e)?void o(e,u(t)):t(e,n)}}function i(t,e){if(at(t,"service"),(x(e)||dr(e))&&(e=k.instantiate(e)),!e.$get)throw Yr("pget","Provider '{0}' must define $get factory method.",t);return E[t+w]=e}function a(t,e){return function(){var n=S.invoke(e,this);if(g(n))throw Yr("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function s(t,e,n){return i(t,{$get:n!==!1?a(t,e):e})}function c(t,e){return s(t,["$injector",function(t){return t.instantiate(e)}])}function l(t,e){return s(t,v(e),!1)}function f(t,e){at(t,"constant"),E[t]=e,A[t]=e}function h(t,e){var n=k.get(t+w),r=n.$get;n.$get=function(){var t=S.invoke(r,n);return S.invoke(e,null,{$delegate:t})}}function d(t){var e,n=[];return o(t,function(t){function r(t){var e,n;for(e=0,n=t.length;n>e;e++){var r=t[e],i=k.get(r[0]);i[r[1]].apply(i,r[2])}}if(!C.get(t)){C.put(t,!0);try{b(t)?(e=ir(t),n=n.concat(d(e.requires)).concat(e._runBlocks),r(e._invokeQueue),r(e._configBlocks)):x(t)?n.push(k.invoke(t)):dr(t)?n.push(k.invoke(t)):ot(t,"module")}catch(i){throw dr(t)&&(t=t[t.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Yr("modulerr","Failed to instantiate module {0} due to:\n{1}",t,i.stack||i.message||i)}}}),n}function m(t,n){function r(e,r){if(t.hasOwnProperty(e)){if(t[e]===$)throw Yr("cdep","Circular dependency found: {0}",e+" <- "+_.join(" <- "));return t[e]}try{return _.unshift(e),t[e]=$,t[e]=n(e,r)}catch(i){throw t[e]===$&&delete t[e],i}finally{_.shift()}}function i(t,n,i,o){"string"==typeof i&&(o=i,i=null);var a,s,u,c=[],l=qt.$$annotate(t,e,o);for(s=0,a=l.length;a>s;s++){if(u=l[s],"string"!=typeof u)throw Yr("itkn","Incorrect injection token! Expected service name as string, got {0}",u);c.push(i&&i.hasOwnProperty(u)?i[u]:r(u,o))}return dr(t)&&(t=t[a]),t.apply(n,c)}function o(t,e,n){var r=Object.create((dr(t)?t[t.length-1]:t).prototype||null),o=i(t,r,e,n);return y(o)||x(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:qt.$$annotate,has:function(e){return E.hasOwnProperty(e+w)||t.hasOwnProperty(e)}}}e=e===!0;var $={},w="Provider",_=[],C=new Lt([],!0),E={$provide:{provider:r(i),factory:r(s),service:r(c),value:r(l),constant:r(f),decorator:h}},k=E.$injector=m(E,function(t,e){throw lr.isString(e)&&_.push(e),Yr("unpr","Unknown provider: {0}",_.join(" <- "))}),A={},S=A.$injector=m(A,function(t,e){var r=k.get(t+w,e);return S.invoke(r.$get,r,n,t)});return o(d(t),function(t){S.invoke(t||p)}),S}function Ht(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,r){function i(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===D(t)?(e=t,!0):void 0}),e}function o(){var t=s.yOffset;if(x(t))t=t();else if(z(t)){var n=t[0],r=e.getComputedStyle(n);t="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else w(t)||(t=0);return t}function a(t){if(t){t.scrollIntoView();var n=o();if(n){var r=t.getBoundingClientRect().top;e.scrollBy(0,r-n)}}else e.scrollTo(0,0)}function s(){var t,e=n.hash();e?(t=u.getElementById(e))?a(t):(t=i(u.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var u=e.document;return t&&r.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&jt(function(){r.$evalAsync(s)})}),s}]}function Wt(){this.$get=["$$rAF","$timeout",function(t,e){return t.supported?function(e){return t(e)}:function(t){return e(t,0,!1)}}]}function Xt(t,e,r,i){function a(t){try{t.apply(null,B(arguments,1))}finally{if(C--,0===C)for(;E.length;)try{E.pop()()}catch(e){r.error(e)}}}function s(t){var e=t.indexOf("#");return-1===e?"":t.substr(e)}function u(t,e){!function n(){o(A,function(t){t()}),k=e(n,t)}()}function c(){f(),h()}function l(){try{return y.state}catch(t){}}function f(){S=l(),S=g(S)?null:S,P(S,j)&&(S=j),j=S}function h(){(O!==m.url()||T!==S)&&(O=m.url(),T=S,o(M,function(t){t(m.url(),S)}))}function d(t){try{return decodeURIComponent(t)}catch(e){return t}}var m=this,v=e[0],$=t.location,y=t.history,w=t.setTimeout,_=t.clearTimeout,x={};m.isMock=!1;var C=0,E=[];m.$$completeOutstandingRequest=a,m.$$incOutstandingRequestCount=function(){C++},m.notifyWhenNoOutstandingRequests=function(t){o(A,function(t){t()}),0===C?t():E.push(t)};var k,A=[];m.addPollFn=function(t){return g(k)&&u(100,w),A.push(t),t};var S,T,O=$.href,I=e.find("base"),z=null;f(),T=S,m.url=function(e,n,r){if(g(r)&&(r=null),$!==t.location&&($=t.location),y!==t.history&&(y=t.history),e){var o=T===r;if(O===e&&(!i.history||o))return m;var a=O&&we(O)===we(e);return O=e,T=r,!i.history||a&&o?((!a||z)&&(z=e),n?$.replace(e):a?$.hash=s(e):$.href=e):(y[n?"replaceState":"pushState"](r,"",e),f(),T=S),m}return z||$.href.replace(/%27/g,"'")},m.state=function(){return S};var M=[],D=!1,j=null;m.onUrlChange=function(e){return D||(i.history&&nr(t).on("popstate",c),nr(t).on("hashchange",c),D=!0),M.push(e),e},m.$$checkUrlChange=h,m.baseHref=function(){var t=I.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var N={},R="",F=m.baseHref();m.cookies=function(t,e){var i,o,a,s,u;if(!t){if(v.cookie!==R)for(R=v.cookie,o=R.split("; "),N={},s=0;s<o.length;s++)a=o[s],u=a.indexOf("="),u>0&&(t=d(a.substring(0,u)),N[t]===n&&(N[t]=d(a.substring(u+1))));return N}e===n?v.cookie=encodeURIComponent(t)+"=;path="+F+";expires=Thu, 01 Jan 1970 00:00:00 GMT":b(e)&&(i=(v.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)+";path="+F).length+1,i>4096&&r.warn("Cookie '"+t+"' possibly not set or overflowed because it was too large ("+i+" > 4096 bytes)!"))},m.defer=function(t,e){var n;return C++,n=w(function(){delete x[n],a(t)},e||0),x[n]=!0,n},m.defer.cancel=function(t){return x[t]?(delete x[t],_(t),a(p),!0):!1}}function Yt(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,r){return new Xt(t,r,e,n)}]}function Zt(){this.$get=function(){function t(t,n){function i(t){t!=h&&(d?d==t&&(d=t.n):d=t,o(t.n,t.p),o(t,h),h=t,h.n=null)}function o(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var a=0,s=f({},n,{id:t}),u={},c=n&&n.capacity||Number.MAX_VALUE,l={},h=null,d=null;return e[t]={put:function(t,e){if(c<Number.MAX_VALUE){var n=l[t]||(l[t]={key:t});i(n)}if(!g(e))return t in u||a++,u[t]=e,a>c&&this.remove(d.key),e},get:function(t){if(c<Number.MAX_VALUE){var e=l[t];if(!e)return;i(e)}return u[t]},remove:function(t){if(c<Number.MAX_VALUE){var e=l[t];if(!e)return;e==h&&(h=e.p),e==d&&(d=e.n),o(e.n,e.p),delete l[t]}delete u[t],a--},removeAll:function(){u={},a=0,l={},h=d=null},destroy:function(){u=null,s=null,l=null,delete e[t]},info:function(){return f({},s,{size:a})}}}var e={};return t.info=function(){var t={};return o(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function Gt(){this.$get=["$cacheFactory",function(t){return t("templates")}]}function Kt(t,r){function i(t,e){var n=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,r={};return o(t,function(t,i){var o=t.match(n);if(!o)throw Kr("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",e,i,t);r[i]={mode:o[1][0],collection:"*"===o[2],optional:"?"===o[3],attrName:o[4]||i}}),r}var a={},s="Directive",c=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,l=/(([\w\-]+)(?:\:([^;]+))?;?)/,h=M("ngSrc,ngSrcset,src,srcset"),g=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,w=/^(on[a-z]+|formaction)$/;this.directive=function C(e,n){return at(e,"directive"),b(e)?(it(n,"directiveFactory"),a.hasOwnProperty(e)||(a[e]=[],t.factory(e+s,["$injector","$exceptionHandler",function(t,n){var r=[];return o(a[e],function(o,a){try{var s=t.invoke(o);x(s)?s={compile:v(s)}:!s.compile&&s.link&&(s.compile=v(s.link)),s.priority=s.priority||0,s.index=a,s.name=s.name||e,s.require=s.require||s.controller&&s.name,s.restrict=s.restrict||"EA",y(s.scope)&&(s.$$isolateBindings=i(s.scope,s.name)),r.push(s)}catch(u){n(u)}}),r}])),a[e].push(n)):o(e,u(C)),this},this.aHrefSanitizationWhitelist=function(t){return $(t)?(r.aHrefSanitizationWhitelist(t),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(r.imgSrcSanitizationWhitelist(t),this):r.imgSrcSanitizationWhitelist()};var _=!0;this.debugInfoEnabled=function(t){return $(t)?(_=t,this):_},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(t,r,i,u,v,$,C,E,A,S,T){function O(t,e){try{t.addClass(e)}catch(n){}}function I(t,e,n,r,i){t instanceof nr||(t=nr(t)),o(t,function(e,n){e.nodeType==_r&&e.nodeValue.match(/\S+/)&&(t[n]=nr(e).wrap("<span></span>").parent()[0])});var a=M(t,e,t,n,r,i);I.$$addScopeClass(t);var s=null;return function(e,n,r){it(e,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=z(u));var c;if(c="html"!==s?nr(J(s,nr("<div>").append(t).html())):n?Br.clone.call(t):t,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return I.$$addScopeInfo(c,e),n&&n(c,e),a&&a(e,c,c,i),c}}function z(t){var e=t&&t[0];return e&&"foreignobject"!==D(e)&&e.toString().match(/SVG/)?"svg":"html"}function M(t,e,r,i,o,a){function s(t,r,i,o){var a,s,u,c,l,f,h,d,v;if(p){var g=r.length;for(v=new Array(g),l=0;l<m.length;l+=3)h=m[l],v[h]=r[h]}else v=r;for(l=0,f=m.length;f>l;)u=v[m[l++]],a=m[l++],s=m[l++],a?(a.scope?(c=t.$new(),I.$$addScopeInfo(nr(u),c)):c=t,d=a.transcludeOnThisElement?N(t,a.transclude,o,a.elementTranscludeOnThisElement):!a.templateOnThisElement&&o?o:!o&&e?N(t,e):null,a(s,c,u,i,d)):s&&s(t,u.childNodes,n,o)}for(var u,c,l,f,h,d,p,m=[],v=0;v<t.length;v++)u=new at,c=R(t[v],[],u,0===v?i:n,o),l=c.length?U(c,t[v],u,e,r,null,[],[],a):null,l&&l.scope&&I.$$addScopeClass(u.$$element),h=l&&l.terminal||!(f=t[v].childNodes)||!f.length?null:M(f,l?(l.transcludeOnThisElement||!l.templateOnThisElement)&&l.transclude:e),(l||h)&&(m.push(v,l,h),d=!0,p=p||l),a=null;return d?s:null}function N(t,e,n,r){var i=function(r,i,o,a,s){return r||(r=t.$new(!1,s),r.$$transcluded=!0),e(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})};return i}function R(t,e,n,r,i){var o,a,s=t.nodeType,u=n.$attr;switch(s){case br:q(e,Jt(D(t)),"E",r,i);for(var f,h,d,p,m,v,g=t.attributes,$=0,w=g&&g.length;w>$;$++){var _=!1,x=!1;f=g[$],h=f.name,m=pr(f.value),p=Jt(h),(v=ft.test(p))&&(h=h.replace(Jr,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var C=p.replace(/(Start|End)$/,"");W(C)&&p===C+"Start"&&(_=h,x=h.substr(0,h.length-5)+"end",h=h.substr(0,h.length-6)),d=Jt(h.toLowerCase()),u[d]=h,(v||!n.hasOwnProperty(d))&&(n[d]=m,Nt(t,d)&&(n[d]=!0)),tt(t,e,m,d,v),q(e,d,"A",r,i,_,x)}if(a=t.className,y(a)&&(a=a.animVal),b(a)&&""!==a)for(;o=l.exec(a);)d=Jt(o[2]),q(e,d,"C",r,i)&&(n[d]=pr(o[3])),a=a.substr(o.index+o[0].length);break;case _r:K(e,t.nodeValue);break;case xr:try{o=c.exec(t.nodeValue),o&&(d=Jt(o[1]),q(e,d,"M",r,i)&&(n[d]=pr(o[2])))}catch(E){}}return e.sort(Z),e}function F(t,e,n){var r=[],i=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Kr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==br&&(t.hasAttribute(e)&&i++,t.hasAttribute(n)&&i--),r.push(t),t=t.nextSibling}while(i>0)}else r.push(t);return nr(r)}function L(t,e,n){return function(r,i,o,a,s){return i=F(i[0],e,n),t(r,i,o,a,s)}}function U(t,a,s,u,c,l,f,h,d){function p(t,e,n,r){t&&(n&&(t=L(t,n,r)),t.require=E.require,t.directiveName=A,(D===E||E.$$isolateScope)&&(t=rt(t,{isolateScope:!0})),f.push(t)),e&&(n&&(e=L(e,n,r)),e.require=E.require,e.directiveName=A,(D===E||E.$$isolateScope)&&(e=rt(e,{isolateScope:!0})),h.push(e))}function m(t,e,n,r){var i,a,s="data",u=!1,c=n;if(b(e)){if(a=e.match(g),e=e.substring(a[0].length),a[3]&&(a[1]?a[3]=null:a[1]=a[3]),"^"===a[1]?s="inheritedData":"^^"===a[1]&&(s="inheritedData",c=n.parent()),"?"===a[2]&&(u=!0),i=null,r&&"data"===s&&(i=r[e])&&(i=i.instance),i=i||c[s]("$"+e+"Controller"),!i&&!u)throw Kr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",e,t);return i||null}return dr(e)&&(i=[],o(e,function(e){i.push(m(t,e,n,r))})),i}function w(t,e,i,u,c){function l(t,e,r){var i;return k(t)||(r=e,e=t,t=n),W&&(i=w),r||(r=W?x.parent():x),c(t,e,i,r,T)}var d,p,g,y,b,w,_,x,E;if(a===i?(E=s,x=s.$$element):(x=nr(i),E=new at(x,s)),D&&(b=e.$new(!0)),c&&(_=l,_.$$boundTransclude=c),M&&(C={},w={},o(M,function(t){var n,r={$scope:t===D||t.$$isolateScope?b:e,$element:x,$attrs:E,$transclude:_};y=t.controller,"@"==y&&(y=E[t.name]),n=$(y,r,!0,t.controllerAs),w[t.name]=n,W||x.data("$"+t.name+"Controller",n.instance),C[t.name]=n})),D){I.$$addScopeInfo(x,b,!0,!(j&&(j===D||j===D.$$originalDirective))),I.$$addScopeClass(x,!0);var A=C&&C[D.name],S=b;A&&A.identifier&&D.bindToController===!0&&(S=A.instance),o(b.$$isolateBindings=D.$$isolateBindings,function(t,n){var i,o,a,s,u=t.attrName,c=t.optional,l=t.mode;switch(l){case"@":E.$observe(u,function(t){S[n]=t}),E.$$observers[u].$$scope=e,E[u]&&(S[n]=r(E[u])(e));break;case"=":if(c&&!E[u])return;o=v(E[u]),s=o.literal?P:function(t,e){return t===e||t!==t&&e!==e},a=o.assign||function(){throw i=S[n]=o(e),Kr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",E[u],D.name)},i=S[n]=o(e);var f=function(t){return s(t,S[n])||(s(t,i)?a(e,t=S[n]):S[n]=t),i=t};f.$stateful=!0;var h;h=t.collection?e.$watchCollection(E[u],f):e.$watch(v(E[u],f),null,o.literal),b.$on("$destroy",h);break;case"&":o=v(E[u]),S[n]=function(t){return o(e,t)}}})}for(C&&(o(C,function(t){t()}),C=null),d=0,p=f.length;p>d;d++)g=f[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_);var T=e;for(D&&(D.template||null===D.templateUrl)&&(T=b),t&&t(T,i.childNodes,n,c),d=h.length-1;d>=0;d--)g=h[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_)}d=d||{};for(var _,C,E,A,S,T,O,z=-Number.MAX_VALUE,M=d.controllerDirectives,D=d.newIsolateScopeDirective,j=d.templateDirective,N=d.nonTlbTranscludeDirective,U=!1,q=!1,W=d.hasElementTranscludeDirective,Z=s.$$element=nr(a),K=l,Q=u,tt=0,nt=t.length;nt>tt;tt++){E=t[tt];var it=E.$$start,st=E.$$end;if(it&&(Z=F(a,it,st)),S=n,z>E.priority)break;if((O=E.scope)&&(E.templateUrl||(y(O)?(G("new/isolated scope",D||_,E,Z),D=E):G("new/isolated scope",D,E,Z)),_=_||E),A=E.name,!E.templateUrl&&E.controller&&(O=E.controller,M=M||{},G("'"+A+"' controller",M[A],E,Z),M[A]=E),(O=E.transclude)&&(U=!0,E.$$tlb||(G("transclusion",N,E,Z),N=E),"element"==O?(W=!0,z=E.priority,S=Z,Z=s.$$element=nr(e.createComment(" "+A+": "+s[A]+" ")),a=Z[0],et(c,B(S),a),Q=I(S,u,z,K&&K.name,{nonTlbTranscludeDirective:N})):(S=nr(wt(a)).contents(),Z.empty(),Q=I(S,u))),E.template)if(q=!0,G("template",j,E,Z),j=E,O=x(E.template)?E.template(Z,s):E.template,O=lt(O),E.replace){if(K=E,S=vt(O)?[]:te(J(E.templateNamespace,pr(O))),a=S[0],1!=S.length||a.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",A,"");et(c,Z,a);var ut={$attr:{}},ct=R(a,[],ut),ft=t.splice(tt+1,t.length-(tt+1));D&&V(ct),t=t.concat(ct).concat(ft),X(s,ut),nt=t.length}else Z.html(O);if(E.templateUrl)q=!0,G("template",j,E,Z),j=E,E.replace&&(K=E),w=Y(t.splice(tt,t.length-tt),Z,s,c,U&&Q,f,h,{controllerDirectives:M,newIsolateScopeDirective:D,templateDirective:j,nonTlbTranscludeDirective:N}),nt=t.length;else if(E.compile)try{T=E.compile(Z,s,Q),x(T)?p(null,T,it,st):T&&p(T.pre,T.post,it,st)}catch(ht){i(ht,H(Z))}E.terminal&&(w.terminal=!0,z=Math.max(z,E.priority))}return w.scope=_&&_.scope===!0,w.transcludeOnThisElement=U,w.elementTranscludeOnThisElement=W,w.templateOnThisElement=q,w.transclude=Q,d.hasElementTranscludeDirective=W,w}function V(t){for(var e=0,n=t.length;n>e;e++)t[e]=d(t[e],{$$isolateScope:!0})}function q(e,r,o,u,c,l,f){if(r===c)return null;var h=null;if(a.hasOwnProperty(r))for(var p,m=t.get(r+s),v=0,g=m.length;g>v;v++)try{p=m[v],(u===n||u>p.priority)&&-1!=p.restrict.indexOf(o)&&(l&&(p=d(p,{
-$$start:l,$$end:f})),e.push(p),h=p)}catch($){i($)}return h}function W(e){if(a.hasOwnProperty(e))for(var n,r=t.get(e+s),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function X(t,e){var n=e.$attr,r=t.$attr,i=t.$$element;o(t,function(r,i){"$"!=i.charAt(0)&&(e[i]&&e[i]!==r&&(r+=("style"===i?";":" ")+e[i]),t.$set(i,r,!0,n[i]))}),o(e,function(e,o){"class"==o?(O(i,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==o?(i.attr("style",i.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==o.charAt(0)||t.hasOwnProperty(o)||(t[o]=e,r[o]=n[o])})}function Y(t,e,n,r,i,a,s,c){var l,f,h=[],p=e[0],m=t.shift(),v=d(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),g=x(m.templateUrl)?m.templateUrl(e,n):m.templateUrl,$=m.templateNamespace;return e.empty(),u(g).then(function(u){var d,b,w,_;if(u=lt(u),m.replace){if(w=vt(u)?[]:te(J($,pr(u))),d=w[0],1!=w.length||d.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,g);b={$attr:{}},et(r,e,d);var x=R(d,[],b);y(m.scope)&&V(x),t=x.concat(t),X(n,b)}else d=p,e.html(u);for(t.unshift(v),l=U(t,d,n,i,e,m,a,s,c),o(r,function(t,n){t==d&&(r[n]=e[0])}),f=M(e[0].childNodes,i);h.length;){var C=h.shift(),E=h.shift(),k=h.shift(),A=h.shift(),S=e[0];if(!C.$$destroyed){if(E!==p){var T=E.className;c.hasElementTranscludeDirective&&m.replace||(S=wt(d)),et(k,nr(E),S),O(nr(S),T)}_=l.transcludeOnThisElement?N(C,l.transclude,A):A,l(f,C,S,r,_)}}h=null}),function(t,e,n,r,i){var o=i;e.$$destroyed||(h?h.push(e,n,r,o):(l.transcludeOnThisElement&&(o=N(e,l.transclude,i)),l(f,e,n,r,o)))}}function Z(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name<e.name?-1:1:t.index-e.index}function G(t,e,n,r){if(e)throw Kr("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",e.name,n.name,t,H(r))}function K(t,e){var n=r(e,!0);n&&t.push({priority:0,compile:function(t){var e=t.parent(),r=!!e.length;return r&&I.$$addBindingClass(e),function(t,e){var i=e.parent();r||I.$$addBindingClass(i),I.$$addBindingInfo(i,n.expressions),t.$watch(n,function(t){e[0].nodeValue=t})}}})}function J(t,n){switch(t=Gn(t||"html")){case"svg":case"math":var r=e.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function Q(t,e){if("srcdoc"==e)return A.HTML;var n=D(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?A.RESOURCE_URL:void 0}function tt(t,e,n,i,o){var a=Q(t,i);o=h[i]||o;var s=r(n,!0,a,o);if(s){if("multiple"===i&&"select"===D(t))throw Kr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",H(t));e.push({priority:100,compile:function(){return{pre:function(t,e,u){var c=u.$$observers||(u.$$observers={});if(w.test(i))throw Kr("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=u[i];l!==n&&(s=l&&r(l,!0,a,o),n=l),s&&(u[i]=s(t),(c[i]||(c[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||t).$watch(s,function(t,e){"class"===i&&t!=e?u.$updateClass(t,e):u.$set(i,t)}))}}}})}}function et(t,n,r){var i,o,a=n[0],s=n.length,u=a.parentNode;if(t)for(i=0,o=t.length;o>i;i++)if(t[i]==a){t[i++]=r;for(var c=i,l=c+s-1,f=t.length;f>c;c++,l++)f>l?t[c]=t[l]:delete t[c];t.length-=s-1,t.context===a&&(t.context=r);break}u&&u.replaceChild(r,a);var h=e.createDocumentFragment();h.appendChild(a),nr(r).data(nr(a).data()),rr?(hr=!0,rr.cleanData([a])):delete nr.cache[a[nr.expando]];for(var d=1,p=n.length;p>d;d++){var m=n[d];nr(m).remove(),h.appendChild(m),delete n[d]}n[0]=r,n.length=1}function rt(t,e){return f(function(){return t.apply(null,arguments)},t,e)}function ot(t,e,n,r,o,a){try{t(e,n,r,o,a)}catch(s){i(s,H(n))}}var at=function(t,e){if(e){var n,r,i,o=Object.keys(e);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=e[i]}else this.$attr={};this.$$element=t};at.prototype={$normalize:Jt,$addClass:function(t){t&&t.length>0&&S.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&S.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=Qt(t,e);n&&n.length&&S.addClass(this.$$element,n);var r=Qt(e,t);r&&r.length&&S.removeClass(this.$$element,r)},$set:function(t,e,r,a){var s,u=this.$$element[0],c=Nt(u,t),l=Rt(u,t),f=t;if(c?(this.$$element.prop(t,e),a=c):l&&(this[l]=e,f=l),this[t]=e,a?this.$attr[t]=a:(a=this.$attr[t],a||(this.$attr[t]=a=nt(t,"-"))),s=D(this.$$element),"a"===s&&"href"===t||"img"===s&&"src"===t)this[t]=e=T(e,"src"===t);else if("img"===s&&"srcset"===t){for(var h="",d=pr(e),p=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,m=/\s/.test(d)?p:/(,)/,v=d.split(m),g=Math.floor(v.length/2),$=0;g>$;$++){var y=2*$;h+=T(pr(v[y]),!0),h+=" "+pr(v[y+1])}var b=pr(v[2*$]).split(/\s/);h+=T(pr(b[0]),!0),2===b.length&&(h+=" "+pr(b[1])),this[t]=e=h}r!==!1&&(null===e||e===n?this.$$element.removeAttr(a):this.$$element.attr(a,e));var w=this.$$observers;w&&o(w[f],function(t){try{t(e)}catch(n){i(n)}})},$observe:function(t,e){var n=this,r=n.$$observers||(n.$$observers=ct()),i=r[t]||(r[t]=[]);return i.push(e),C.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){j(i,e)}}};var st=r.startSymbol(),ut=r.endSymbol(),lt="{{"==st||"}}"==ut?m:function(t){return t.replace(/\{\{/g,st).replace(/}}/g,ut)},ft=/^ngAttr[A-Z]/;return I.$$addBindingInfo=_?function(t,e){var n=t.data("$binding")||[];dr(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:p,I.$$addBindingClass=_?function(t){O(t,"ng-binding")}:p,I.$$addScopeInfo=_?function(t,e,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(i,e)}:p,I.$$addScopeClass=_?function(t,e){O(t,e?"ng-isolate-scope":"ng-scope")}:p,I}]}function Jt(t){return mt(t.replace(Jr,""))}function Qt(t,e){var n="",r=t.split(/\s+/),i=e.split(/\s+/);t:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a==i[s])continue t;n+=(n.length>0?" ":"")+a}return n}function te(t){t=nr(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===xr&&ar.call(t,e,1)}return t}function ee(){var t={},e=!1,i=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(e,n){at(e,"controller"),y(e)?f(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(o,a){function s(t,e,n,i){if(!t||!y(t.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,e);t.$scope[e]=n}return function(r,u,c,l){var h,d,p,m;if(c=c===!0,l&&b(l)&&(m=l),b(r)){if(d=r.match(i),!d)throw Qr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);p=d[1],m=m||d[3],r=t.hasOwnProperty(p)?t[p]:st(u.$scope,p,!0)||(e?st(a,p,!0):n),ot(r,p,!0)}if(c){var v=(dr(r)?r[r.length-1]:r).prototype;return h=Object.create(v||null),m&&s(u,m,h,p||r.name),f(function(){return o.invoke(r,h,u,p),h},{instance:h,identifier:m})}return h=o.instantiate(r,u,p),m&&s(u,m,h,p||r.name),h}}]}function ne(){this.$get=["$window",function(t){return nr(t.document)}]}function re(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function ie(t,e){if(b(t)){var n=t.replace(ii,"").trim();if(n){var r=e("Content-Type");(r&&0===r.indexOf(ti)||oe(n))&&(t=q(n))}}return t}function oe(t){var e=t.match(ni);return e&&ri[e[0]].test(t)}function ae(t){var e,n,r,i=ct();return t?(o(t.split("\n"),function(t){r=t.indexOf(":"),e=Gn(pr(t.substr(0,r))),n=pr(t.substr(r+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}function se(t){var e=y(t)?t:n;return function(n){if(e||(e=ae(t)),n){var r=e[Gn(n)];return void 0===r&&(r=null),r}return e}}function ue(t,e,n,r){return x(r)?r(t,e,n):(o(r,function(r){t=r(t,e,n)}),t)}function ce(t){return t>=200&&300>t}function le(){var t=this.defaults={transformResponse:[ie],transformRequest:[function(t){return!y(t)||A(t)||T(t)||S(t)?t:V(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:R(ei),put:R(ei),patch:R(ei)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},e=!1;this.useApplyAsync=function(t){return $(t)?(e=!!t,this):e};var i=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,u,c,l,h,d){function p(e){function i(t){var e=f({},t);return t.data?e.data=ue(t.data,t.headers,t.status,u.transformResponse):e.data=t.data,ce(t.status)?e:h.reject(e)}function a(t){var e,n={};return o(t,function(t,r){x(t)?(e=t(),null!=e&&(n[r]=e)):n[r]=t}),n}function s(e){var n,r,i,o=t.headers,s=f({},e.headers);o=f({},o.common,o[Gn(e.method)]);t:for(n in o){r=Gn(n);for(i in s)if(Gn(i)===r)continue t;s[n]=o[n]}return a(s)}if(!lr.isObject(e))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",e);var u=f({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse},e);u.headers=s(e),u.method=Jn(u.method);var c=function(e){var r=e.headers,a=ue(e.data,se(r),n,e.transformRequest);return g(a)&&o(r,function(t,e){"content-type"===Gn(e)&&delete r[e]}),g(e.withCredentials)&&!g(t.withCredentials)&&(e.withCredentials=t.withCredentials),w(e,a).then(i,i)},l=[c,n],d=h.when(u);for(o(k,function(t){(t.request||t.requestError)&&l.unshift(t.request,t.requestError),(t.response||t.responseError)&&l.push(t.response,t.responseError)});l.length;){var p=l.shift(),m=l.shift();d=d.then(p,m)}return d.success=function(t){return ot(t,"fn"),d.then(function(e){t(e.data,e.status,e.headers,u)}),d},d.error=function(t){return ot(t,"fn"),d.then(null,function(e){t(e.data,e.status,e.headers,u)}),d},d}function m(t){o(arguments,function(t){p[t]=function(e,n){return p(f(n||{},{method:t,url:e}))}})}function v(t){o(arguments,function(t){p[t]=function(e,n,r){return p(f(r||{},{method:t,url:e,data:n}))}})}function w(r,i){function o(t,n,r,i){function o(){s(n,t,r,i)}d&&(ce(t)?d.put(_,[t,n,ae(r),i]):d.remove(_)),e?l.$applyAsync(o):(o(),l.$$phase||l.$apply())}function s(t,e,n,i){e=e>=-1?e:0,(ce(e)?v.resolve:v.reject)({data:t,status:e,headers:se(n),config:r,statusText:i})}function c(t){s(t.data,t.status,R(t.headers()),t.statusText)}function f(){var t=p.pendingRequests.indexOf(r);-1!==t&&p.pendingRequests.splice(t,1)}var d,m,v=h.defer(),b=v.promise,w=r.headers,_=C(r.url,r.params);if(p.pendingRequests.push(r),b.then(f,f),!r.cache&&!t.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=y(r.cache)?r.cache:y(t.cache)?t.cache:E),d&&(m=d.get(_),$(m)?I(m)?m.then(c,c):dr(m)?s(m[1],m[0],R(m[2]),m[3]):s(m,200,{},"OK"):d.put(_,b)),g(m)){var x=an(r.url)?u.cookies()[r.xsrfCookieName||t.xsrfCookieName]:n;x&&(w[r.xsrfHeaderName||t.xsrfHeaderName]=x),a(r.method,_,i,o,w,r.timeout,r.withCredentials,r.responseType)}return b}function C(t,e){if(!e)return t;var n=[];return s(e,function(t,e){null===t||g(t)||(dr(t)||(t=[t]),o(t,function(t){y(t)&&(t=_(t)?t.toISOString():V(t)),n.push(G(e)+"="+G(t))}))}),n.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+n.join("&")),t}var E=c("$http"),k=[];return o(i,function(t){k.unshift(b(t)?d.get(t):d.invoke(t))}),p.pendingRequests=[],m("get","delete","head","jsonp"),v("post","put","patch"),p.defaults=t,p}]}function fe(){return new t.XMLHttpRequest}function he(){this.$get=["$browser","$window","$document",function(t,e,n){return de(t,fe,t.defer,e.angular.callbacks,n[0])}]}function de(t,e,r,i,a){function s(t,e,n){var r=a.createElement("script"),o=null;return r.type="text/javascript",r.src=t,r.async=!0,o=function(t){Or(r,"load",o),Or(r,"error",o),a.body.removeChild(r),r=null;var s=-1,u="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),u=t.type,s="error"===t.type?404:200),n&&n(s,u)},Tr(r,"load",o),Tr(r,"error",o),a.body.appendChild(r),o}return function(a,u,c,l,f,h,d,m){function v(){b&&b(),w&&w.abort()}function g(e,i,o,a,s){C!==n&&r.cancel(C),b=w=null,e(i,o,a,s),t.$$completeOutstandingRequest(p)}if(t.$$incOutstandingRequestCount(),u=u||t.url(),"jsonp"==Gn(a)){var y="_"+(i.counter++).toString(36);i[y]=function(t){i[y].data=t,i[y].called=!0};var b=s(u.replace("JSON_CALLBACK","angular.callbacks."+y),y,function(t,e){g(l,t,i[y].data,"",e),i[y]=p})}else{var w=e();w.open(a,u,!0),o(f,function(t,e){$(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==on(u).protocol?404:0),g(l,n,e,w.getAllResponseHeaders(),t)};var _=function(){g(l,-1,null,null,"")};if(w.onerror=_,w.onabort=_,d&&(w.withCredentials=!0),m)try{w.responseType=m}catch(x){if("json"!==m)throw x}w.send(c||null)}if(h>0)var C=r(v,h);else I(h)&&h.then(v)}}function pe(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(t){return"\\\\\\"+t}function a(o,a,h,d){function p(n){return n.replace(c,t).replace(l,e)}function m(t){try{return t=T(t),d&&!$(t)?t:O(t)}catch(e){var n=oi("interr","Can't interpolate: {0}\n{1}",o,e.toString());r(n)}}d=!!d;for(var v,y,b,w=0,_=[],C=[],E=o.length,k=[],A=[];E>w;){if(-1==(v=o.indexOf(t,w))||-1==(y=o.indexOf(e,v+s))){w!==E&&k.push(p(o.substring(w)));break}w!==v&&k.push(p(o.substring(w,v))),b=o.substring(v+s,y),_.push(b),C.push(n(b,m)),w=y+u,A.push(k.length),k.push("")}if(h&&k.length>1)throw oi("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",o);if(!a||_.length){var S=function(t){for(var e=0,n=_.length;n>e;e++){if(d&&g(t[e]))return;k[A[e]]=t[e]}return k.join("")},T=function(t){return h?i.getTrusted(h,t):i.valueOf(t)},O=function(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=V(t)}return t};return f(function(t){var e=0,n=_.length,i=new Array(n);try{for(;n>e;e++)i[e]=C[e](t);return S(i)}catch(a){var s=oi("interr","Can't interpolate: {0}\n{1}",o,a.toString());r(s)}},{exp:o,expressions:_,$$watchDelegate:function(t,e,n){var r;return t.$watchGroup(C,function(n,i){var o=S(n);x(e)&&e.call(this,o,n!==i?r:o,t),r=o},n)}})}}var s=t.length,u=e.length,c=new RegExp(t.replace(/./g,o),"g"),l=new RegExp(e.replace(/./g,o),"g");return a.startSymbol=function(){return t},a.endSymbol=function(){return e},a}]}function me(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,r){function i(i,a,s,u){var c=e.setInterval,l=e.clearInterval,f=0,h=$(u)&&!u,d=(h?r:n).defer(),p=d.promise;return s=$(s)?s:0,p.then(null,null,i),p.$$intervalId=c(function(){d.notify(f++),s>0&&f>=s&&(d.resolve(f),l(p.$$intervalId),delete o[p.$$intervalId]),h||t.$apply()},a),o[p.$$intervalId]=d,p}var o={};return i.cancel=function(t){return t&&t.$$intervalId in o?(o[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete o[t.$$intervalId],!0):!1},i}]}function ve(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(t){return 1===t?"one":"other"}}}}function ge(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=Z(e[n]);return e.join("/")}function $e(t,e){var n=on(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=h(n.port)||si[n.protocol]||null}function ye(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var r=on(t);e.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),e.$$search=X(r.search),e.$$hash=decodeURIComponent(r.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function be(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function we(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function _e(t){return t.replace(/(#.+)|#$/,"$1")}function xe(t){return t.substr(0,we(t).lastIndexOf("/")+1)}function Ce(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Ee(t,e,r){this.$$html5=!0,r=r||"",$e(t,this),this.$$parse=function(t){var n=be(e,t);if(!b(n))throw ui("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,e);ye(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=Y(this.$$search),n=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(t?"?"+t:"")+n,this.$$absUrl=e+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,o){if(o&&"#"===o[0])return this.hash(o.slice(1)),!0;var a,s,u;return(a=be(t,i))!==n?(s=a,u=(a=be(r,a))!==n?e+(be("/",a)||a):t+s):(a=be(e,i))!==n?u=e+a:e==i+"/"&&(u=e),u&&this.$$parse(u),!!u}}function ke(t,e,n){$e(t,this),this.$$parse=function(r){function i(t,e,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),i.exec(e)?t:(r=i.exec(t),r?r[1]:t)}var o,a=be(t,r)||be(e,r);g(a)||"#"!==a.charAt(0)?this.$$html5?o=a:(o="",g(a)&&(t=r,this.replace())):(o=be(n,a),g(o)&&(o=a)),ye(o,this),this.$$path=i(this.$$path,o,t),this.$$compose()},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return we(t)==we(e)?(this.$$parse(e),!0):!1}}function Ae(t,e,n){this.$$html5=!0,ke.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return t==we(r)?o=r:(a=be(e,r))?o=t+n+a:e===r+"/"&&(o=e),o&&this.$$parse(o),!!o},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+n+this.$$url}}function Se(t){return function(){return this[t]}}function Te(t,e){return function(n){return g(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Oe(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return $(e)?(t=e,this):t},this.html5Mode=function(t){return O(t)?(e.enabled=t,this):y(t)?(O(t.enabled)&&(e.enabled=t.enabled),O(t.requireBase)&&(e.requireBase=t.requireBase),O(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(t,e,n){var i=c.url(),o=c.$$state;try{r.url(t,e,n),c.$$state=r.state()}catch(a){throw c.url(i),c.$$state=o,a}}function u(t,e){n.$broadcast("$locationChangeSuccess",c.absUrl(),t,c.$$state,e)}var c,l,f,h=r.baseHref(),d=r.url();if(e.enabled){if(!h&&e.requireBase)throw ui("nobase","$location in HTML5 mode requires a <base> tag to be present!");f=Ce(d)+(h||"/"),l=i.history?Ee:Ae}else f=we(d),l=ke;var p=xe(f);c=new l(f,p,"#"+t),c.$$parseLinkUrl(d,d),c.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var i=nr(t.target);"a"!==D(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");y(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=on(s.animVal).href),m.test(s)||!s||i.attr("target")||t.isDefaultPrevented()||c.$$parseLinkUrl(s,u)&&(t.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}),_e(c.absUrl())!=_e(d)&&r.url(c.absUrl(),!0);var v=!0;return r.onUrlChange(function(t,e){return g(be(p,t))?void(a.location.href=t):(n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(t),c.$$state=e,r=n.$broadcast("$locationChangeStart",t,i,e,o).defaultPrevented,c.absUrl()===t&&(r?(c.$$parse(i),c.$$state=o,s(i,!1,o)):(v=!1,u(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var t=_e(r.url()),e=_e(c.absUrl()),o=r.state(),a=c.$$replace,l=t!==e||c.$$html5&&i.history&&o!==c.$$state;(v||l)&&(v=!1,n.$evalAsync(function(){var e=c.absUrl(),r=n.$broadcast("$locationChangeStart",e,t,c.$$state,o).defaultPrevented;c.absUrl()===e&&(r?(c.$$parse(t),c.$$state=o):(l&&s(e,a,o===c.$$state?null:c.$$state),u(t,o)))})),c.$$replace=!1}),c}]}function Ie(){var t=!0,e=this;this.debugEnabled=function(e){return $(e)?(t=e,this):t},this.$get=["$window",function(n){function r(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function i(t){var e=n.console||{},i=e[t]||e.log||p,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var t=[];return o(arguments,function(e){t.push(r(e))}),i.apply(e,t)}:function(t,e){i(t,null==e?"":e)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function ze(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw li("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Me(t,e){if(t+="",!b(t))throw li("iseccst","Cannot convert object to primitive value! Expression: {0}",e);return t}function De(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw li("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw li("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw li("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function je(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===fi||t===hi||t===di)throw li("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Ne(t){return t.constant}function Re(t,e,n,r,i){De(t,i),De(e,i);for(var o,a=n.split("."),s=0;a.length>1;s++){o=ze(a.shift(),i);var u=0===s&&e&&e[o]||t[o];u||(u={},t[o]=u),t=De(u,i)}return o=ze(a.shift(),i),De(t[o],i),t[o]=r,r}function Pe(t){return"constructor"==t}function Fe(t,e,r,i,o,a,s){ze(t,a),ze(e,a),ze(r,a),ze(i,a),ze(o,a);var u=function(t){return De(t,a)},c=s||Pe(t)?u:m,l=s||Pe(e)?u:m,f=s||Pe(r)?u:m,h=s||Pe(i)?u:m,d=s||Pe(o)?u:m;return function(a,s){var u=s&&s.hasOwnProperty(t)?s:a;return null==u?u:(u=c(u[t]),e?null==u?n:(u=l(u[e]),r?null==u?n:(u=f(u[r]),i?null==u?n:(u=h(u[i]),o?null==u?n:u=d(u[o]):u):u):u):u)}}function Be(t,e){return function(n,r){return t(n,r,De,e)}}function Le(t,e,r){var i=e.expensiveChecks,a=i?bi:yi,s=a[t];if(s)return s;var u=t.split("."),c=u.length;if(e.csp)s=6>c?Fe(u[0],u[1],u[2],u[3],u[4],r,i):function(t,e){var o,a=0;do o=Fe(u[a++],u[a++],u[a++],u[a++],u[a++],r,i)(t,e),e=n,t=o;while(c>a);return o};else{var l="";i&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var f=i;o(u,function(t,e){ze(t,r);var n=(e?"s":'((l&&l.hasOwnProperty("'+t+'"))?l:s)')+"."+t;(i||Pe(t))&&(n="eso("+n+", fe)",f=!0),l+="if(s == null) return undefined;\ns="+n+";\n"}),l+="return s;";var h=new Function("s","l","eso","fe",l);h.toString=v(l),f&&(h=Be(h,r)),s=h}return s.sharedGetter=!0,s.assign=function(e,n,r){return Re(e,r,t,n,t)},a[t]=s,s}function Ue(t){return x(t.valueOf)?t.valueOf():wi.call(t)}function Ve(){var t=ct(),e=ct();this.$get=["$filter","$sniffer",function(n,r){function i(t){var e=t;return t.sharedGetter&&(e=function(e,n){return t(e,n)},e.literal=t.literal,e.constant=t.constant,e.assign=t.assign),e}function a(t,e){for(var n=0,r=t.length;r>n;n++){var i=t[n];i.constant||(i.inputs?a(i.inputs,e):-1===e.indexOf(i)&&e.push(i))}return e}function s(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=Ue(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function u(t,e,n,r){var i,o=r.$$inputs||(r.$$inputs=a(r.inputs,[]));if(1===o.length){var u=s;return o=o[0],t.$watch(function(t){var e=o(t);return s(e,u)||(i=r(t),u=e&&Ue(e)),i},e,n)}for(var c=[],l=0,f=o.length;f>l;l++)c[l]=s;return t.$watch(function(t){for(var e=!1,n=0,a=o.length;a>n;n++){var u=o[n](t);(e||(e=!s(u,c[n])))&&(c[n]=u&&Ue(u))}return e&&(i=r(t)),i},e,n)}function c(t,e,n,r){var i,o;return i=t.$watch(function(t){return r(t)},function(t,n,r){o=t,x(e)&&e.apply(this,arguments),$(t)&&r.$$postDigest(function(){$(o)&&i()})},n)}function l(t,e,n,r){function i(t){var e=!0;return o(t,function(t){$(t)||(e=!1)}),e}var a,s;return a=t.$watch(function(t){return r(t)},function(t,n,r){s=t,x(e)&&e.call(this,t,n,r),i(t)&&r.$$postDigest(function(){i(s)&&a()})},n)}function f(t,e,n,r){var i;return i=t.$watch(function(t){return r(t)},function(t,n,r){x(e)&&e.apply(this,arguments),i()},n)}function h(t,e){if(!e)return t;var n=t.$$watchDelegate,r=n!==l&&n!==c,i=r?function(n,r){var i=t(n,r);return e(i,n,r)}:function(n,r){var i=t(n,r),o=e(i,n,r);return $(i)?o:i};return t.$$watchDelegate&&t.$$watchDelegate!==u?i.$$watchDelegate=t.$$watchDelegate:e.$stateful||(i.$$watchDelegate=u,i.inputs=[t]),i}var d={csp:r.csp,expensiveChecks:!1},m={csp:r.csp,expensiveChecks:!0};return function(r,o,a){var s,v,g;switch(typeof r){case"string":g=r=r.trim();var $=a?e:t;if(s=$[g],!s){":"===r.charAt(0)&&":"===r.charAt(1)&&(v=!0,r=r.substring(2));var y=a?m:d,b=new gi(y),w=new $i(b,n,y);s=w.parse(r),s.constant?s.$$watchDelegate=f:v?(s=i(s),s.$$watchDelegate=s.literal?l:c):s.inputs&&(s.$$watchDelegate=u),$[g]=s}return h(s,o);case"function":return h(r,o);default:return h(p,o)}}}]}function qe(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return We(function(e){t.$evalAsync(e)},e)}]}function He(){this.$get=["$browser","$exceptionHandler",function(t,e){return We(function(e){t.defer(e)},e)}]}function We(t,e){function i(t,e,n){function r(e){return function(n){i||(i=!0,e.call(t,n))}}var i=!1;return[r(e),r(n)]}function a(){this.$$state={status:0}}function s(t,e){return function(n){e.call(t,n)}}function u(t){var r,i,o;o=t.pending,t.processScheduled=!1,t.pending=n;for(var a=0,s=o.length;s>a;++a){i=o[a][0],r=o[a][t.status];try{x(r)?i.resolve(r(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(u){i.reject(u),e(u)}}}function c(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){u(e)}))}function l(){this.promise=new a,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(t){var e=new l,n=0,r=dr(t)?[]:{};return o(t,function(t,i){n++,g(t).then(function(t){r.hasOwnProperty(i)||(r[i]=t,--n||e.resolve(r))},function(t){r.hasOwnProperty(i)||e.reject(t)})}),0===n&&e.resolve(r),e.promise}var h=r("$q",TypeError),d=function(){return new l};a.prototype={then:function(t,e,n){var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,t,e,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return v(e,!0,t)},function(e){return v(e,!1,t)},e)}},l.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(h("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(y(t)||x(t))&&(n=t&&t.then),x(n)?(this.promise.$$state.status=-1,n.call(t,r[0],r[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),e(o)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&t(function(){for(var t,i,o=0,a=r.length;a>o;o++){i=r[o][0],t=r[o][3];try{i.notify(x(t)?t(n):n)}catch(s){e(s)}}})}};var p=function(t){var e=new l;return e.reject(t),e.promise},m=function(t,e){var n=new l;return e?n.resolve(t):n.reject(t),n.promise},v=function(t,e,n){var r=null;try{x(n)&&(r=n())}catch(i){return m(i,!1)}return I(r)?r.then(function(){return m(t,e)},function(t){return m(t,!1)}):m(t,e)},g=function(t,e,n,r){var i=new l;return i.resolve(t),i.promise.then(e,n,r)},$=function b(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}if(!x(t))throw h("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof b))return new b(t);var r=new l;return t(e,n),r.promise};return $.defer=d,$.reject=p,$.when=g,$.all=f,$}function Xe(){this.$get=["$window","$timeout",function(t,e){function n(){for(var t=0;t<l.length;t++){var e=l[t];e&&(l[t]=null,e())}c=l.length=0}function r(t){var e=l.length;return c++,l.push(t),0===e&&(u=s(n)),function(){e>=0&&(l[e]=null,e=null,0===--c&&u&&(u(),u=null,l.length=0))}}var i=t.requestAnimationFrame||t.webkitRequestAnimationFrame,o=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,a=!!i,s=a?function(t){var e=i(t);return function(){o(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};r.supported=a;var u,c=0,l=[];return r}]}function Ye(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=c(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=r("$rootScope"),a=null,s=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,u,l,f){function h(t){t.currentScope.$$destroyed=!0}function d(){this.$id=c(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings=null}function m(t){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=t}function v(){C.$$phase=null}function $(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function b(){}function w(){for(;A.length;)try{A.shift()()}catch(t){u(t)}s=null}function _(){null===s&&(s=f.defer(function(){C.$apply(w)}))}d.prototype={constructor:d,$new:function(e,n){var r;return n=n||this,e?(r=new d,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(e||n!=this)&&r.$on("$destroy",h),r},$watch:function(t,e,n){var r=l(t);if(r.$$watchDelegate)return r.$$watchDelegate(this,e,n,r);var i=this,o=i.$$watchers,s={fn:e,last:b,get:r,exp:t,eq:!!n};return a=null,x(e)||(s.fn=p),o||(o=i.$$watchers=[]),o.unshift(s),function(){j(o,s),a=null}},$watchGroup:function(t,e){function n(){u=!1,c?(c=!1,e(i,i,s)):e(i,r,s)}var r=new Array(t.length),i=new Array(t.length),a=[],s=this,u=!1,c=!0;if(!t.length){var l=!0;return s.$evalAsync(function(){l&&e(i,i,s)}),function(){l=!1}}return 1===t.length?this.$watch(t[0],function(t,n,o){i[0]=t,r[0]=n,e(i,t===n?i:r,o)}):(o(t,function(t,e){var o=s.$watch(t,function(t,o){i[e]=t,r[e]=o,u||(u=!0,s.$evalAsync(n))});a.push(o)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(t,e){function n(t){o=t;var e,n,r,s,u;if(!g(o)){if(y(o))if(i(o)){a!==d&&(a=d,v=a.length=0,f++),e=o.length,v!==e&&(f++,a.length=v=e);for(var c=0;e>c;c++)u=a[c],s=o[c],r=u!==u&&s!==s,r||u===s||(f++,a[c]=s)}else{a!==p&&(a=p={},v=0,f++),e=0;for(n in o)o.hasOwnProperty(n)&&(e++,s=o[n],u=a[n],n in a?(r=u!==u&&s!==s,r||u===s||(f++,a[n]=s)):(v++,a[n]=s,f++));if(v>e){f++;for(n in a)o.hasOwnProperty(n)||(v--,delete a[n])}}else a!==o&&(a=o,f++);return f;
-}}function r(){if(m?(m=!1,e(o,o,u)):e(o,s,u),c)if(y(o))if(i(o)){s=new Array(o.length);for(var t=0;t<o.length;t++)s[t]=o[t]}else{s={};for(var n in o)Kn.call(o,n)&&(s[n]=o[n])}else s=o}n.$stateful=!0;var o,a,s,u=this,c=e.length>1,f=0,h=l(t,n),d=[],p={},m=!0,v=0;return this.$watch(h,r)},$digest:function(){var t,r,i,o,c,l,h,d,p,g,$=e,y=this,_=[];m("$digest"),f.$$checkUrlChange(),this===C&&null!==s&&(f.defer.cancel(s),w()),a=null;do{for(l=!1,d=y;E.length;){try{g=E.shift(),g.scope.$eval(g.expression,g.locals)}catch(A){u(A)}a=null}t:do{if(o=d.$$watchers)for(c=o.length;c--;)try{if(t=o[c])if((r=t.get(d))===(i=t.last)||(t.eq?P(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(t===a){l=!1;break t}}else l=!0,a=t,t.last=t.eq?N(r,null):r,t.fn(r,i===b?r:i,d),5>$&&(p=4-$,_[p]||(_[p]=[]),_[p].push({msg:x(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:r,oldVal:i}))}catch(A){u(A)}if(!(h=d.$$childHead||d!==y&&d.$$nextSibling))for(;d!==y&&!(h=d.$$nextSibling);)d=d.$parent}while(d=h);if((l||E.length)&&!$--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,_)}while(l||E.length);for(v();k.length;)try{k.shift()()}catch(A){u(A)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==C){for(var e in this.$$listenerCount)$(this,this.$$listenerCount[e],e);t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t.$$childTail==this&&(t.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(t,e){return l(t)(this,e)},$evalAsync:function(t,e){C.$$phase||E.length||f.defer(function(){E.length&&C.$digest()}),E.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){k.push(t)},$apply:function(t){try{return m("$apply"),this.$eval(t)}catch(e){u(e)}finally{v();try{C.$digest()}catch(e){throw u(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&A.push(e),_()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var r=this;do r.$$listenerCount[t]||(r.$$listenerCount[t]=0),r.$$listenerCount[t]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(e);-1!==r&&(n[r]=null,$(i,1,t))}},$emit:function(t,e){var n,r,i,o=[],a=this,s=!1,c={name:t,targetScope:a,stopPropagation:function(){s=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},l=F([c],arguments,1);do{for(n=a.$$listeners[t]||o,c.currentScope=a,r=0,i=n.length;i>r;r++)if(n[r])try{n[r].apply(null,l)}catch(f){u(f)}else n.splice(r,1),r--,i--;if(s)return c.currentScope=null,c;a=a.$parent}while(a);return c.currentScope=null,c},$broadcast:function(t,e){var n=this,r=n,i=n,o={name:t,targetScope:n,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return o;for(var a,s,c,l=F([o],arguments,1);r=i;){for(o.currentScope=r,a=r.$$listeners[t]||[],s=0,c=a.length;c>s;s++)if(a[s])try{a[s].apply(null,l)}catch(f){u(f)}else a.splice(s,1),s--,c--;if(!(i=r.$$listenerCount[t]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(i=r.$$nextSibling);)r=r.$parent}return o.currentScope=null,o}};var C=new d,E=C.$$asyncQueue=[],k=C.$$postDigestQueue=[],A=C.$$applyAsyncQueue=[];return C}]}function Ze(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return $(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(e=t,this):e},this.$get=function(){return function(n,r){var i,o=r?e:t;return i=on(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function Ge(t){if("self"===t)return t;if(b(t)){if(t.indexOf("***")>-1)throw _i("iwcard","Illegal sequence *** in string matcher. String: {0}",t);return t=mr(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(C(t))return new RegExp("^"+t.source+"$");throw _i("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Ke(t){var e=[];return $(t)&&o(t,function(t){e.push(Ge(t))}),e}function Je(){this.SCE_CONTEXTS=xi;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=Ke(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=Ke(t)),e},this.$get=["$injector",function(r){function i(t,e){return"self"===t?an(e):!!t.exec(e.href)}function o(n){var r,o,a=on(n.toString()),s=!1;for(r=0,o=t.length;o>r;r++)if(i(t[r],a)){s=!0;break}if(s)for(r=0,o=e.length;o>r;r++)if(i(e[r],a)){s=!1;break}return s}function a(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function s(t,e){var r=h.hasOwnProperty(t)?h[t]:null;if(!r)throw _i("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw _i("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new r(e)}function u(t){return t instanceof f?t.$$unwrapTrustedValue():t}function c(t,e){if(null===e||e===n||""===e)return e;var r=h.hasOwnProperty(t)?h[t]:null;if(r&&e instanceof r)return e.$$unwrapTrustedValue();if(t===xi.RESOURCE_URL){if(o(e))return e;throw _i("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",e.toString())}if(t===xi.HTML)return l(e);throw _i("unsafe","Attempting to use an unsafe value in a safe context.")}var l=function(t){throw _i("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(l=r.get("$sanitize"));var f=a(),h={};return h[xi.HTML]=a(f),h[xi.CSS]=a(f),h[xi.URL]=a(f),h[xi.JS]=a(f),h[xi.RESOURCE_URL]=a(h[xi.URL]),{trustAs:s,getTrusted:c,valueOf:u}}]}function Qe(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>er)throw _i("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=R(xi);r.isEnabled=function(){return t},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,t||(r.trustAs=r.getTrusted=function(t,e){return e},r.valueOf=m),r.parseAs=function(t,n){var i=e(n);return i.literal&&i.constant?i:e(n,function(e){return r.getTrusted(t,e)})};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return o(xi,function(t,e){var n=Gn(e);r[mt("parse_as_"+n)]=function(e){return i(t,e)},r[mt("get_trusted_"+n)]=function(e){return a(t,e)},r[mt("trust_as_"+n)]=function(e){return s(t,e)}}),r}]}function tn(){this.$get=["$window","$document",function(t,e){var n,r,i={},o=h((/android (\d+)/.exec(Gn((t.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((t.navigator||{}).userAgent),s=e[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,l=!1,f=!1;if(c){for(var d in c)if(r=u.exec(d)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),f=!!("animation"in c||n+"Animation"in c),!o||l&&f||(l=b(s.body.style.webkitTransition),f=b(s.body.style.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>o||a),hasEvent:function(t){if("input"===t&&11>=er)return!1;if(g(i[t])){var e=s.createElement("div");i[t]="on"+t in e}return i[t]},csp:vr(),vendorPrefix:n,transitions:l,animations:f,android:o}}]}function en(){this.$get=["$templateCache","$http","$q","$sce",function(t,e,n,r){function i(o,a){function s(t){if(!a)throw Kr("tpload","Failed to load template: {0}",o);return n.reject(t)}i.totalPendingRequests++,b(o)&&t.get(o)||(o=r.getTrustedResourceUrl(o));var u=e.defaults&&e.defaults.transformResponse;dr(u)?u=u.filter(function(t){return t!==ie}):u===ie&&(u=null);var c={cache:t,transformResponse:u};return e.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(t){return t.data},s)}return i.totalPendingRequests=0,i}]}function nn(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var r={};return r.findBindings=function(t,e,n){var r=t.getElementsByClassName("ng-binding"),i=[];return o(r,function(t){var r=lr.element(t).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+mr(e)+"(\\s|\\||$)");o.test(r)&&i.push(t)}else-1!=r.indexOf(e)&&i.push(t)})}),i},r.findModels=function(t,e,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o=n?"=":"*=",a="["+r[i]+"model"+o+'"'+e+'"]',s=t.querySelectorAll(a);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(e){e!==n.url()&&(n.url(e),t.$digest())},r.whenStable=function(t){e.notifyWhenNoOutstandingRequests(t)},r}]}function rn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(t,e,n,r,i){function o(o,s,u){var c,l=$(u)&&!u,f=(l?r:n).defer(),h=f.promise;return c=e.defer(function(){try{f.resolve(o())}catch(e){f.reject(e),i(e)}finally{delete a[h.$$timeoutId]}l||t.$apply()},s),h.$$timeoutId=c,a[c]=f,h}var a={};return o.cancel=function(t){return t&&t.$$timeoutId in a?(a[t.$$timeoutId].reject("canceled"),delete a[t.$$timeoutId],e.defer.cancel(t.$$timeoutId)):!1},o}]}function on(t){var e=t;return er&&(Ci.setAttribute("href",e),e=Ci.href),Ci.setAttribute("href",e),{href:Ci.href,protocol:Ci.protocol?Ci.protocol.replace(/:$/,""):"",host:Ci.host,search:Ci.search?Ci.search.replace(/^\?/,""):"",hash:Ci.hash?Ci.hash.replace(/^#/,""):"",hostname:Ci.hostname,port:Ci.port,pathname:"/"===Ci.pathname.charAt(0)?Ci.pathname:"/"+Ci.pathname}}function an(t){var e=b(t)?on(t):t;return e.protocol===Ei.protocol&&e.host===Ei.host}function sn(){this.$get=v(t)}function un(t){function e(r,i){if(y(r)){var a={};return o(r,function(t,n){a[n]=e(n,t)}),a}return t.factory(r+n,i)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",hn),e("date",En),e("filter",cn),e("json",kn),e("limitTo",An),e("lowercase",Oi),e("number",dn),e("orderBy",Sn),e("uppercase",Ii)}function cn(){return function(t,e,n){if(!dr(t))return t;var r,i,o=null!==e?typeof e:"null";switch(o){case"function":r=e;break;case"boolean":case"null":case"number":case"string":i=!0;case"object":r=ln(e,n,i);break;default:return t}return t.filter(r)}}function ln(t,e,n){var r,i=y(t)&&"$"in t;return e===!0?e=P:x(e)||(e=function(t,e){return g(t)?!1:null===t||null===e?t===e:y(t)||y(e)?!1:(t=Gn(""+t),e=Gn(""+e),-1!==t.indexOf(e))}),r=function(r){return i&&!y(r)?fn(r,t.$,e,!1):fn(r,t,e,n)}}function fn(t,e,n,r,i){var o=null!==t?typeof t:"null",a=null!==e?typeof e:"null";if("string"===a&&"!"===e.charAt(0))return!fn(t,e.substring(1),n,r);if(dr(t))return t.some(function(t){return fn(t,e,n,r)});switch(o){case"object":var s;if(r){for(s in t)if("$"!==s.charAt(0)&&fn(t[s],e,n,!0))return!0;return i?!1:fn(t,e,n,!1)}if("object"===a){for(s in e){var u=e[s];if(!x(u)&&!g(u)){var c="$"===s,l=c?t:t[s];if(!fn(l,u,n,c,c))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function hn(t){var e=t.NUMBER_FORMATS;return function(t,n,r){return g(n)&&(n=e.CURRENCY_SYM),g(r)&&(r=e.PATTERNS[1].maxFrac),null==t?t:pn(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function dn(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:pn(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function pn(t,e,n,r,i){if(!isFinite(t)||y(t))return"";var o=0>t;t=Math.abs(t);var a=t+"",s="",u=[],c=!1;if(-1!==a.indexOf("e")){var l=a.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>i+1?t=0:(s=a,c=!0)}if(c)i>0&&1>t&&(s=t.toFixed(i),t=parseFloat(s));else{var f=(a.split(ki)[1]||"").length;g(i)&&(i=Math.min(Math.max(e.minFrac,f),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+i)).toString()+"e"+-i);var h=(""+t).split(ki),d=h[0];h=h[1]||"";var p,m=0,v=e.lgSize,$=e.gSize;if(d.length>=v+$)for(m=d.length-v,p=0;m>p;p++)(m-p)%$===0&&0!==p&&(s+=n),s+=d.charAt(p);for(p=m;p<d.length;p++)(d.length-p)%v===0&&0!==p&&(s+=n),s+=d.charAt(p);for(;h.length<i;)h+="0";i&&"0"!==i&&(s+=r+h.substr(0,i))}return 0===t&&(o=!1),u.push(o?e.negPre:e.posPre,s,o?e.negSuf:e.posSuf),u.join("")}function mn(t,e,n){var r="";for(0>t&&(r="-",t=-t),t=""+t;t.length<e;)t="0"+t;return n&&(t=t.substr(t.length-e)),r+t}function vn(t,e,n,r){return n=n||0,function(i){var o=i["get"+t]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),mn(o,e,r)}}function gn(t,e){return function(n,r){var i=n["get"+t](),o=Jn(e?"SHORT"+t:t);return r[o][i]}}function $n(t){var e=-1*t.getTimezoneOffset(),n=e>=0?"+":"";return n+=mn(Math[e>0?"floor":"ceil"](e/60),2)+mn(Math.abs(e%60),2)}function yn(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function bn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function wn(t){return function(e){var n=yn(e.getFullYear()),r=bn(e),i=+r-+n,o=1+Math.round(i/6048e5);return mn(o,t)}}function _n(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function xn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Cn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function En(t){function e(t){var e;if(e=t.match(n)){var r=new Date(0),i=0,o=0,a=e[8]?r.setUTCFullYear:r.setFullYear,s=e[8]?r.setUTCHours:r.setHours;e[9]&&(i=h(e[9]+e[10]),o=h(e[9]+e[11])),a.call(r,h(e[1]),h(e[2])-1,h(e[3]));var u=h(e[4]||0)-i,c=h(e[5]||0)-o,l=h(e[6]||0),f=Math.round(1e3*parseFloat("0."+(e[7]||0)));return s.call(r,u,c,l,f),r}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var a,s,u="",c=[];if(r=r||"mediumDate",r=t.DATETIME_FORMATS[r]||r,b(n)&&(n=Ti.test(n)?h(n):e(n)),w(n)&&(n=new Date(n)),!_(n))return n;for(;r;)s=Si.exec(r),s?(c=F(c,s,1),r=c.pop()):(c.push(r),r=null);return i&&"UTC"===i&&(n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+n.getTimezoneOffset())),o(c,function(e){a=Ai[e],u+=a?a(n,t.DATETIME_FORMATS):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function kn(){return function(t,e){return g(e)&&(e=2),V(t,e)}}function An(){return function(t,e){return w(t)&&(t=t.toString()),dr(t)||b(t)?(e=Math.abs(Number(e))===1/0?Number(e):h(e),e?e>0?t.slice(0,e):t.slice(e):b(t)?"":[]):t}}function Sn(t){return function(e,n,r){function o(t,e){for(var r=0;r<n.length;r++){var i=n[r](t,e);if(0!==i)return i}return 0}function a(t,e){return e?function(e,n){return t(n,e)}:t}function s(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function u(t){return null===t?"null":"function"==typeof t.valueOf&&(t=t.valueOf(),s(t))?t:"function"==typeof t.toString&&(t=t.toString(),s(t))?t:""}function c(t,e){var n=typeof t,r=typeof e;return n===r&&"object"===n&&(t=u(t),e=u(e)),n===r?("string"===n&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e?0:e>t?-1:1):r>n?-1:1}return i(e)?(n=dr(n)?n:[n],0===n.length&&(n=["+"]),n=n.map(function(e){var n=!1,r=e||m;if(b(e)){if(("+"==e.charAt(0)||"-"==e.charAt(0))&&(n="-"==e.charAt(0),e=e.substring(1)),""===e)return a(c,n);if(r=t(e),r.constant){var i=r();return a(function(t,e){return c(t[i],e[i])},n)}}return a(function(t,e){return c(r(t),r(e))},n)}),or.call(e).sort(a(o,r))):e}}function Tn(t){return x(t)&&(t={link:t}),t.restrict=t.restrict||"AC",v(t)}function On(t,e){t.$name=e}function In(t,e,r,i,a){var s=this,u=[],c=s.$$parentForm=t.parent().controller("form")||Di;s.$error={},s.$$success={},s.$pending=n,s.$name=a(e.name||e.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,c.$addControl(s),s.$rollbackViewValue=function(){o(u,function(t){t.$rollbackViewValue()})},s.$commitViewValue=function(){o(u,function(t){t.$commitViewValue()})},s.$addControl=function(t){at(t.$name,"input"),u.push(t),t.$name&&(s[t.$name]=t)},s.$$renameControl=function(t,e){var n=t.$name;s[n]===t&&delete s[n],s[e]=t,t.$name=e},s.$removeControl=function(t){t.$name&&s[t.$name]===t&&delete s[t.$name],o(s.$pending,function(e,n){s.$setValidity(n,null,t)}),o(s.$error,function(e,n){s.$setValidity(n,null,t)}),o(s.$$success,function(e,n){s.$setValidity(n,null,t)}),j(u,t)},Wn({ctrl:this,$element:t,set:function(t,e,n){var r=t[e];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else t[e]=[n]},unset:function(t,e,n){var r=t[e];r&&(j(r,n),0===r.length&&delete t[e])},parentForm:c,$animate:i}),s.$setDirty=function(){i.removeClass(t,go),i.addClass(t,$o),s.$dirty=!0,s.$pristine=!1,c.$setDirty()},s.$setPristine=function(){i.setClass(t,go,$o+" "+ji),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(u,function(t){t.$setPristine()})},s.$setUntouched=function(){o(u,function(t){t.$setUntouched()})},s.$setSubmitted=function(){i.addClass(t,ji),s.$submitted=!0,c.$setSubmitted()}}function zn(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function Mn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r)}function Dn(t,e,n,r,i,o){var a=Gn(e[0].type);if(!i.android){var s=!1;e.on("compositionstart",function(t){s=!0}),e.on("compositionend",function(){s=!1,u()})}var u=function(t){if(c&&(o.defer.cancel(c),c=null),!s){var i=e.val(),u=t&&t.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=pr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))e.on("input",u);else{var c,l=function(t,e,n){c||(c=o.defer(function(){c=null,e&&e.value===n||u(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||l(t,this,this.value)}),i.hasEvent("paste")&&e.on("paste cut",l)}e.on("change",u),r.$render=function(){e.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function jn(t,e){if(_(t))return t;if(b(t)){Hi.lastIndex=0;var n=Hi.exec(t);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,u=0,c=yn(r),l=7*(i-1);return e&&(o=e.getHours(),a=e.getMinutes(),s=e.getSeconds(),u=e.getMilliseconds()),new Date(r,0,c.getDate()+l,o,a,s,u)}}return NaN}function Nn(t,e){return function(n,r){var i,a;if(_(n))return n;if(b(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Fi.test(n))return new Date(n);if(t.lastIndex=0,i=t.exec(n))return i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(t,n){n<e.length&&(a[e[n]]=+t)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return NaN}}function Rn(t,e,r,i){return function(o,a,s,u,c,l,f){function h(t){return t&&!(t.getTime&&t.getTime()!==t.getTime())}function d(t){return $(t)?_(t)?t:r(t):n}Pn(o,a,s,u),Dn(o,a,s,u,c,l);var p,m=u&&u.$options&&u.$options.timezone;if(u.$$parserName=t,u.$parsers.push(function(t){if(u.$isEmpty(t))return null;if(e.test(t)){var i=r(t,p);return"UTC"===m&&i.setMinutes(i.getMinutes()-i.getTimezoneOffset()),i}return n}),u.$formatters.push(function(t){if(t&&!_(t))throw _o("datefmt","Expected `{0}` to be a date",t);if(h(t)){if(p=t,p&&"UTC"===m){var e=6e4*p.getTimezoneOffset();p=new Date(p.getTime()+e)}return f("date")(t,i,m)}return p=null,""}),$(s.min)||s.ngMin){var v;u.$validators.min=function(t){return!h(t)||g(v)||r(t)>=v},s.$observe("min",function(t){v=d(t),u.$validate()})}if($(s.max)||s.ngMax){var y;u.$validators.max=function(t){return!h(t)||g(y)||r(t)<=y},s.$observe("max",function(t){y=d(t),u.$validate()})}}}function Pn(t,e,r,i){var o=e[0],a=i.$$hasNativeValidators=y(o.validity);a&&i.$parsers.push(function(t){var r=e.prop(Zn)||{};return r.badInput&&!r.typeMismatch?n:t})}function Fn(t,e,r,i,o,a){if(Pn(t,e,r,i),Dn(t,e,r,i,o,a),i.$$parserName="number",i.$parsers.push(function(t){return i.$isEmpty(t)?null:Ui.test(t)?parseFloat(t):n}),i.$formatters.push(function(t){if(!i.$isEmpty(t)){if(!w(t))throw _o("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),$(r.min)||r.ngMin){var s;i.$validators.min=function(t){return i.$isEmpty(t)||g(s)||t>=s},r.$observe("min",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),s=w(t)&&!isNaN(t)?t:n,i.$validate()})}if($(r.max)||r.ngMax){var u;i.$validators.max=function(t){return i.$isEmpty(t)||g(u)||u>=t},r.$observe("max",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),u=w(t)&&!isNaN(t)?t:n,i.$validate()})}}function Bn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="url",r.$validators.url=function(t,e){var n=t||e;return r.$isEmpty(n)||Bi.test(n)}}function Ln(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="email",r.$validators.email=function(t,e){var n=t||e;return r.$isEmpty(n)||Li.test(n)}}function Un(t,e,n,r){g(n.name)&&e.attr("name",c());var i=function(t){e[0].checked&&r.$setViewValue(n.value,t&&t.type)};e.on("click",i),r.$render=function(){var t=n.value;e[0].checked=t==r.$viewValue},n.$observe("value",r.$render)}function Vn(t,e,n,r,i){var o;if($(r)){if(o=t(r),!o.constant)throw _o("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(e)}return i}function qn(t,e,n,r,i,o,a,s){var u=Vn(s,t,"ngTrueValue",n.ngTrueValue,!0),c=Vn(s,t,"ngFalseValue",n.ngFalseValue,!1),l=function(t){r.$setViewValue(e[0].checked,t&&t.type)};e.on("click",l),r.$render=function(){e[0].checked=r.$viewValue},r.$isEmpty=function(t){return t===!1},r.$formatters.push(function(t){return P(t,u)}),r.$parsers.push(function(t){return t?u:c})}function Hn(t,e){return t="ngClass"+t,["$animate",function(n){function r(t,e){var n=[];t:for(var r=0;r<t.length;r++){for(var i=t[r],o=0;o<e.length;o++)if(i==e[o])continue t;n.push(i)}return n}function i(t){if(dr(t))return t;if(b(t))return t.split(" ");if(y(t)){var e=[];return o(t,function(t,n){t&&(e=e.concat(n.split(" ")))}),e}return t}return{restrict:"AC",link:function(a,s,u){function c(t){var e=f(t,1);u.$addClass(e)}function l(t){var e=f(t,-1);u.$removeClass(e)}function f(t,e){var n=s.data("$classCounts")||{},r=[];return o(t,function(t){(e>0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&r.push(t))}),s.data("$classCounts",n),r.join(" ")}function h(t,e){var i=r(e,t),o=r(t,e);i=f(i,1),o=f(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function d(t){if(e===!0||a.$index%2===e){var n=i(t||[]);if(p){if(!P(t,p)){var r=i(p);h(r,n)}}else c(n)}p=R(t)}var p;a.$watch(u[t],d,!0),u.$observe("class",function(e){d(a.$eval(u[t]))}),"ngClass"!==t&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(u[t]));o===e?c(s):l(s)}})}}}]}function Wn(t){function e(t,e,u){e===n?r("$pending",t,u):i("$pending",t,u),O(e)?e?(f(s.$error,t,u),l(s.$$success,t,u)):(l(s.$error,t,u),f(s.$$success,t,u)):(f(s.$error,t,u),f(s.$$success,t,u)),s.$pending?(o(wo,!0),s.$valid=s.$invalid=n,a("",null)):(o(wo,!1),s.$valid=Xn(s.$error),s.$invalid=!s.$valid,a("",s.$valid));var c;c=s.$pending&&s.$pending[t]?n:s.$error[t]?!1:s.$$success[t]?!0:null,a(t,c),h.$setValidity(t,c,s)}function r(t,e,n){s[t]||(s[t]={}),l(s[t],e,n)}function i(t,e,r){s[t]&&f(s[t],e,r),Xn(s[t])&&(s[t]=n)}function o(t,e){e&&!c[t]?(d.addClass(u,t),c[t]=!0):!e&&c[t]&&(d.removeClass(u,t),c[t]=!1)}function a(t,e){t=t?"-"+nt(t,"-"):"",o(mo+t,e===!0),o(vo+t,e===!1)}var s=t.ctrl,u=t.$element,c={},l=t.set,f=t.unset,h=t.parentForm,d=t.$animate;c[vo]=!(c[mo]=u.hasClass(mo)),s.$setValidity=e}function Xn(t){if(t)for(var e in t)return!1;return!0}var Yn=/^\/(.+)\/([a-z]*)$/,Zn="validity",Gn=function(t){return b(t)?t.toLowerCase():t},Kn=Object.prototype.hasOwnProperty,Jn=function(t){return b(t)?t.toUpperCase():t},Qn=function(t){return b(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},tr=function(t){return b(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&(Gn=Qn,Jn=tr);var er,nr,rr,ir,or=[].slice,ar=[].splice,sr=[].push,ur=Object.prototype.toString,cr=r("ng"),lr=t.angular||(t.angular={}),fr=0;er=e.documentMode,p.$inject=[],m.$inject=[];var hr,dr=Array.isArray,pr=function(t){return b(t)?t.trim():t},mr=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},vr=function(){if($(vr.isActive_))return vr.isActive_;var t=!(!e.querySelector("[ng-csp]")&&!e.querySelector("[data-ng-csp]"));if(!t)try{new Function("")}catch(n){t=!0}return vr.isActive_=t},gr=["ng-","data-ng-","ng:","x-ng-"],$r=/[A-Z]/g,yr=!1,br=1,wr=2,_r=3,xr=8,Cr=9,Er=11,kr={full:"1.3.20",major:1,minor:3,dot:20,codeName:"shallow-translucence"};bt.expando="ng339";var Ar=bt.cache={},Sr=1,Tr=function(t,e,n){t.addEventListener(e,n,!1)},Or=function(t,e,n){t.removeEventListener(e,n,!1)};bt._data=function(t){return this.cache[t[this.expando]]||{}};var Ir=/([\:\-\_]+(.))/g,zr=/^moz([A-Z])/,Mr={mouseleave:"mouseout",mouseenter:"mouseover"},Dr=r("jqLite"),jr=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Nr=/<|&#?\w+;/,Rr=/<([\w:]+)/,Pr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fr={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Fr.optgroup=Fr.option,Fr.tbody=Fr.tfoot=Fr.colgroup=Fr.caption=Fr.thead,Fr.th=Fr.td;var Br=bt.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===e.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),bt(t).on("load",r))},toString:function(){var t=[];return o(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return nr(t>=0?this[t]:this[this.length+t])},length:0,push:sr,sort:[].sort,splice:[].splice},Lr={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){Lr[Gn(t)]=t});var Ur={};o("input,select,option,textarea,button,form,details".split(","),function(t){Ur[t]=!0});var Vr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:kt,removeData:Ct},function(t,e){bt[e]=t}),o({data:kt,inheritedData:zt,scope:function(t){return nr.data(t,"$scope")||zt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return nr.data(t,"$isolateScope")||nr.data(t,"$isolateScopeNoTemplate")},controller:It,injector:function(t){return zt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:At,css:function(t,e,n){return e=mt(e),$(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,r){var i=t.nodeType;if(i!==_r&&i!==wr&&i!==xr){var o=Gn(e);if(Lr[o]){if(!$(r))return t[e]||(t.attributes.getNamedItem(e)||p).specified?o:n;r?(t[e]=!0,t.setAttribute(e,o)):(t[e]=!1,t.removeAttribute(o))}else if($(r))t.setAttribute(e,r);else if(t.getAttribute){var a=t.getAttribute(e,2);return null===a?n:a}}},prop:function(t,e,n){return $(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if(g(e)){var n=t.nodeType;return n===br||n===_r?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(g(e)){if(t.multiple&&"select"===D(t)){var n=[];return o(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return g(e)?t.innerHTML:(_t(t,!0),void(t.innerHTML=e))},empty:Mt},function(t,e){bt.prototype[e]=function(e,r){var i,o,a=this.length;if(t!==Mt&&(2==t.length&&t!==At&&t!==It?e:r)===n){if(y(e)){for(i=0;a>i;i++)if(t===kt)t(this[i],e);else for(o in e)t(this[i],o,e[o]);return this}for(var s=t.$dv,u=s===n?Math.min(a,1):a,c=0;u>c;c++){var l=t(this[c],e,r);s=s?s+l:l}return s}for(i=0;a>i;i++)t(this[i],e,r);return this}}),o({removeData:Ct,on:function Zo(t,e,n,r){if($(r))throw Dr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(gt(t)){var i=Et(t,!0),o=i.events,a=i.handle;a||(a=i.handle=Pt(t,o));for(var s=e.indexOf(" ")>=0?e.split(" "):[e],u=s.length;u--;){e=s[u];var c=o[e];c||(o[e]=[],"mouseenter"===e||"mouseleave"===e?Zo(t,Mr[e],function(t){var n=this,r=t.relatedTarget;(!r||r!==n&&!n.contains(r))&&a(t,e)}):"$destroy"!==e&&Tr(t,e,a),c=o[e]),c.push(n)}}},off:xt,one:function(t,e,n){t=nr(t),t.on(e,function r(){t.off(e,n),t.off(e,r)}),t.on(e,n)},replaceWith:function(t,e){var n,r=t.parentNode;_t(t),o(new bt(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(t){var e=[];return o(t.childNodes,function(t){t.nodeType===br&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===br||n===Er){e=new bt(e);for(var r=0,i=e.length;i>r;r++){var o=e[r];t.appendChild(o)}}},prepend:function(t,e){if(t.nodeType===br){var n=t.firstChild;o(new bt(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=nr(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Dt,detach:function(t){Dt(t,!0)},after:function(t,e){var n=t,r=t.parentNode;e=new bt(e);for(var i=0,o=e.length;o>i;i++){var a=e[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:Tt,removeClass:St,toggleClass:function(t,e,n){e&&o(e.split(" "),function(e){var r=n;g(r)&&(r=!At(t,e)),(r?Tt:St)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Er?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:wt,triggerHandler:function(t,e,n){var r,i,a,s=e.type||e,u=Et(t),c=u&&u.events,l=c&&c[s];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:p,type:s,target:t},e.type&&(r=f(r,e)),i=R(l),a=n?[r].concat(n):[r],o(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,a)}))}},function(t,e){bt.prototype[e]=function(e,n,r){for(var i,o=0,a=this.length;a>o;o++)g(i)?(i=t(this[o],e,n,r),$(i)&&(i=nr(i))):Ot(i,t(this[o],e,n,r));return $(i)?i:this},bt.prototype.bind=bt.prototype.on,bt.prototype.unbind=bt.prototype.off}),Lt.prototype={put:function(t,e){this[Bt(t,this.nextUid)]=e},get:function(t){return this[Bt(t,this.nextUid)]},remove:function(t){var e=this[t=Bt(t,this.nextUid)];return delete this[t],e}};var qr=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Hr=/,/,Wr=/^\s*(_?)(\S+?)\1\s*$/,Xr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yr=r("$injector");qt.$$annotate=Vt;var Zr=r("$animate"),Gr=["$provide",function(t){this.$$selectors={},this.register=function(e,n){var r=e+"-animation";if(e&&"."!=e.charAt(0))throw Zr("notcsel","Expecting class selector starting with '.' got '{0}'.",e);this.$$selectors[e.substr(1)]=r,t.factory(r,n)},this.classNameFilter=function(t){return 1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback","$rootScope",function(t,e,n){function r(e){var r,i=t.defer();return i.promise.$$cancelFn=function(){r&&r()},n.$$postDigest(function(){r=e(function(){i.resolve()})}),i.promise}function i(t,e){var n=[],r=[],i=ct();return o((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0}),o(e,function(t,e){var o=i[e];t===!1&&o?r.push(e):t!==!0||o||n.push(e)}),n.length+r.length>0&&[n.length?n:null,r.length?r:null]}function a(t,e,n){for(var r=0,i=e.length;i>r;++r){var o=e[r];t[o]=n}}function s(){return c||(c=t.defer(),e(function(){c.resolve(),c=null})),c.promise}function u(t,e){if(lr.isObject(e)){var n=f(e.from||{},e.to||{});t.css(n)}}var c;return{animate:function(t,e,n){return u(t,{from:e,to:n}),s()},enter:function(t,e,n,r){return u(t,r),n?n.after(t):e.prepend(t),s()},leave:function(t,e){return u(t,e),t.remove(),s()},move:function(t,e,n,r){return this.enter(t,e,n,r)},addClass:function(t,e,n){return this.setClass(t,e,[],n)},$$addClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){Tt(t,e)}),u(t,n),s()},removeClass:function(t,e,n){return this.setClass(t,[],e,n);
-},$$removeClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){St(t,e)}),u(t,n),s()},setClass:function(t,e,n,o){var s=this,u="$$animateClasses",c=!1;t=nr(t);var l=t.data(u);l?o&&l.options&&(l.options=lr.extend(l.options||{},o)):(l={classes:{},options:o},c=!0);var f=l.classes;return e=dr(e)?e:e.split(" "),n=dr(n)?n:n.split(" "),a(f,e,!0),a(f,n,!1),c&&(l.promise=r(function(e){var n=t.data(u);if(t.removeData(u),n){var r=i(t,n.classes);r&&s.$$setClassImmediately(t,r[0],r[1],n.options)}e()}),t.data(u,l)),l.promise},$$setClassImmediately:function(t,e,n,r){return e&&this.$$addClassImmediately(t,e),n&&this.$$removeClassImmediately(t,n),u(t,r),s()},enabled:p,cancel:p}}]}],Kr=r("$compile");Kt.$inject=["$provide","$$sanitizeUriProvider"];var Jr=/^((?:x|data)[\:\-_])/i,Qr=r("$controller"),ti="application/json",ei={"Content-Type":ti+";charset=utf-8"},ni=/^\[|^\{(?!\{)/,ri={"[":/]$/,"{":/}$/},ii=/^\)\]\}',?\n/,oi=r("$interpolate"),ai=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,si={http:80,https:443,ftp:21},ui=r("$location"),ci={$$html5:!1,$$replace:!1,absUrl:Se("$$absUrl"),url:function(t){if(g(t))return this.$$url;var e=ai.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Se("$$protocol"),host:Se("$$host"),port:Se("$$port"),path:Te("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(b(t)||w(t))t=t.toString(),this.$$search=X(t);else{if(!y(t))throw ui("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=N(t,{}),o(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:g(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:Te("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Ae,ke,Ee],function(t){t.prototype=Object.create(ci),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==Ee||!this.$$html5)throw ui("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=g(e)?null:e,this}});var li=r("$parse"),fi=Function.prototype.call,hi=Function.prototype.apply,di=Function.prototype.bind,pi=ct();o({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(t,e){t.constant=t.literal=t.sharedGetter=!0,pi[e]=t}),pi["this"]=function(t){return t},pi["this"].sharedGetter=!0;var mi=f(ct(),{"+":function(t,e,r,i){return r=r(t,e),i=i(t,e),$(r)?$(i)?r+i:r:$(i)?i:n},"-":function(t,e,n,r){return n=n(t,e),r=r(t,e),($(n)?n:0)-($(r)?r:0)},"*":function(t,e,n,r){return n(t,e)*r(t,e)},"/":function(t,e,n,r){return n(t,e)/r(t,e)},"%":function(t,e,n,r){return n(t,e)%r(t,e)},"===":function(t,e,n,r){return n(t,e)===r(t,e)},"!==":function(t,e,n,r){return n(t,e)!==r(t,e)},"==":function(t,e,n,r){return n(t,e)==r(t,e)},"!=":function(t,e,n,r){return n(t,e)!=r(t,e)},"<":function(t,e,n,r){return n(t,e)<r(t,e)},">":function(t,e,n,r){return n(t,e)>r(t,e)},"<=":function(t,e,n,r){return n(t,e)<=r(t,e)},">=":function(t,e,n,r){return n(t,e)>=r(t,e)},"&&":function(t,e,n,r){return n(t,e)&&r(t,e)},"||":function(t,e,n,r){return n(t,e)||r(t,e)},"!":function(t,e,n){return!n(t,e)},"=":!0,"|":!0}),vi={n:"\n",f:"\f",r:"\r",t:" ",v:"\x0B","'":"'",'"':'"'},gi=function(t){this.options=t};gi.prototype={constructor:gi,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var e=this.text.charAt(this.index);if('"'===e||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(e))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var n=e+this.peek(),r=n+this.peek(2),i=mi[e],o=mi[n],a=mi[r];if(i||o||a){var s=a?r:o?n:e;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,e){return-1!==e.indexOf(t)},peek:function(t){var e=t||1;return this.index+e<this.text.length?this.text.charAt(this.index+e):!1},isNumber:function(t){return t>="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||" "===t||"\n"===t||"\x0B"===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var r=$(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw li("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,r,this.text)},readNumber:function(){for(var t="",e=this.index;this.index<this.text.length;){var n=Gn(this.text.charAt(this.index));if("."==n||this.isNumber(n))t+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))t+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==t.charAt(t.length-1))t+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=t.charAt(t.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:e,text:t,constant:!0,value:Number(t)})},readIdent:function(){for(var t=this.index;this.index<this.text.length;){var e=this.text.charAt(this.index);if(!this.isIdent(e)&&!this.isNumber(e))break;this.index++}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var e=this.index;this.index++;for(var n="",r=t,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{var s=vi[o];n+=s||o}i=!1}else if("\\"===o)i=!0;else{if(o===t)return this.index++,void this.tokens.push({index:e,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",e)}};var $i=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n};$i.ZERO=f(function(){return 0},{sharedGetter:!0,constant:!0}),$i.prototype={constructor:$i,parse:function(t){this.text=t,this.tokens=this.lexer.lex(t);var e=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e.literal=!!e.literal,e.constant=!!e.constant,e},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.peek().identifier&&this.peek().text in pi?t=pi[this.consume().text]:this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e,n;e=this.expect("(","[",".");)"("===e.text?(t=this.functionCall(t,n),n=null):"["===e.text?(n=t,t=this.objectIndex(t)):"."===e.text?(n=t,t=this.fieldAccess(t)):this.throwError("IMPOSSIBLE");return t},throwError:function(t,e){throw li("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},peekToken:function(){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,r){return this.peekAhead(0,t,e,n,r)},peekAhead:function(t,e,n,r,i){if(this.tokens.length>t){var o=this.tokens[t],a=o.text;if(a===e||a===n||a===r||a===i||!e&&!n&&!r&&!i)return o}return!1},expect:function(t,e,n,r){var i=this.peek(t,e,n,r);return i?(this.tokens.shift(),i):!1},consume:function(t){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},unaryFn:function(t,e){var n=mi[t];return f(function(t,r){return n(t,r,e)},{constant:e.constant,inputs:[e]})},binaryFn:function(t,e,n,r){var i=mi[e];return f(function(e,r){return i(e,r,t,n)},{constant:t.constant&&n.constant,inputs:!r&&[t,n]})},identifier:function(){for(var t=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)t+=this.consume().text+this.consume().text;return Le(t,this.options,this.text)},constant:function(){var t=this.consume().value;return f(function(){return t},{constant:!0,literal:!0})},statements:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.filterChain()),!this.expect(";"))return 1===t.length?t[0]:function(e,n){for(var r,i=0,o=t.length;o>i;i++)r=t[i](e,n);return r}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},filter:function(t){var e,r,i=this.$filter(this.consume().text);if(this.peek(":"))for(e=[],r=[];this.expect(":");)e.push(this.expression());var o=[t].concat(e||[]);return f(function(o,a){var s=t(o,a);if(r){r[0]=s;for(var u=e.length;u--;)r[u+1]=e[u](o,a);return i.apply(n,r)}return i(s)},{constant:!i.$stateful&&o.every(Ne),inputs:!i.$stateful&&o})},expression:function(){return this.assignment()},assignment:function(){var t,e,n=this.ternary();return(e=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,e.index)+"] can not be assigned to",e),t=this.ternary(),f(function(e,r){return n.assign(e,t(e,r),r)},{inputs:[n,t]})):n},ternary:function(){var t,e,n=this.logicalOR();if((e=this.expect("?"))&&(t=this.assignment(),this.consume(":"))){var r=this.assignment();return f(function(e,i){return n(e,i)?t(e,i):r(e,i)},{constant:n.constant&&t.constant&&r.constant})}return n},logicalOR:function(){for(var t,e=this.logicalAND();t=this.expect("||");)e=this.binaryFn(e,t.text,this.logicalAND(),!0);return e},logicalAND:function(){for(var t,e=this.equality();t=this.expect("&&");)e=this.binaryFn(e,t.text,this.equality(),!0);return e},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e=this.binaryFn(e,t.text,this.relational());return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e=this.binaryFn(e,t.text,this.additive());return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e=this.binaryFn(e,t.text,this.multiplicative());return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e=this.binaryFn(e,t.text,this.unary());return e},unary:function(){var t;return this.expect("+")?this.primary():(t=this.expect("-"))?this.binaryFn($i.ZERO,t.text,this.unary()):(t=this.expect("!"))?this.unaryFn(t.text,this.unary()):this.primary()},fieldAccess:function(t){var e=this.identifier();return f(function(r,i,o){var a=o||t(r,i);return null==a?n:e(a)},{assign:function(n,r,i){var o=t(n,i);return o||t.assign(n,o={},i),e.assign(o,r)}})},objectIndex:function(t){var e=this.text,r=this.expression();return this.consume("]"),f(function(i,o){var a,s=t(i,o),u=Me(r(i,o),e);return ze(u,e),s?a=De(s[u],e):n},{assign:function(n,i,o){var a=ze(Me(r(n,o),e),e),s=De(t(n,o),e);return s||t.assign(n,s={},o),s[a]=i}})},functionCall:function(t,e){var r=[];if(")"!==this.peekToken().text)do r.push(this.expression());while(this.expect(","));this.consume(")");var i=this.text,o=r.length?[]:null;return function(a,s){var u=e?e(a,s):$(e)?n:a,c=t(a,s,u)||p;if(o)for(var l=r.length;l--;)o[l]=De(r[l](a,s),i);De(u,i),je(c,i);var f=c.apply?c.apply(u,o):c(o[0],o[1],o[2],o[3],o[4]);return o&&(o.length=0),De(f,i)}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),f(function(e,n){for(var r=[],i=0,o=t.length;o>i;i++)r.push(t[i](e,n));return r},{literal:!0,constant:t.every(Ne),inputs:t})},object:function(){var t=[],e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.consume();n.constant?t.push(n.value):n.identifier?t.push(n.text):this.throwError("invalid key",n),this.consume(":"),e.push(this.expression())}while(this.expect(","));return this.consume("}"),f(function(n,r){for(var i={},o=0,a=e.length;a>o;o++)i[t[o]]=e[o](n,r);return i},{literal:!0,constant:e.every(Ne),inputs:e})}};var yi=ct(),bi=ct(),wi=Object.prototype.valueOf,_i=r("$sce"),xi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Kr=r("$compile"),Ci=e.createElement("a"),Ei=on(t.location.href);un.$inject=["$provide"],hn.$inject=["$locale"],dn.$inject=["$locale"];var ki=".",Ai={yyyy:vn("FullYear",4),yy:vn("FullYear",2,0,!0),y:vn("FullYear",1),MMMM:gn("Month"),MMM:gn("Month",!0),MM:vn("Month",2,1),M:vn("Month",1,1),dd:vn("Date",2),d:vn("Date",1),HH:vn("Hours",2),H:vn("Hours",1),hh:vn("Hours",2,-12),h:vn("Hours",1,-12),mm:vn("Minutes",2),m:vn("Minutes",1),ss:vn("Seconds",2),s:vn("Seconds",1),sss:vn("Milliseconds",3),EEEE:gn("Day"),EEE:gn("Day",!0),a:_n,Z:$n,ww:wn(2),w:wn(1),G:xn,GG:xn,GGG:xn,GGGG:Cn},Si=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ti=/^\-?\d+$/;En.$inject=["$locale"];var Oi=v(Gn),Ii=v(Jn);Sn.$inject=["$parse"];var zi=v({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref||e.name?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===ur.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),Mi={};o(Lr,function(t,e){if("multiple"!=t){var n=Jt("ng-"+e);Mi[n]=function(){return{restrict:"A",priority:100,link:function(t,r,i){t.$watch(i[n],function(t){i.$set(e,!!t)})}}}}}),o(Vr,function(t,e){Mi[e]=function(){return{priority:100,link:function(t,n,r){if("ngPattern"===e&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(Yn);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}t.$watch(r[e],function(t){r.$set(e,t)})}}}}),o(["src","srcset","href"],function(t){var e=Jt("ng-"+t);Mi[e]=function(){return{priority:99,link:function(n,r,i){var o=t,a=t;"href"===t&&"[object SVGAnimatedString]"===ur.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(e,function(e){return e?(i.$set(a,e),void(er&&o&&r.prop(o,i[a]))):void("href"===t&&i.$set(a,null))})}}}});var Di={$addControl:p,$$renameControl:On,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},ji="ng-submitted";In.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Ni=function(t){return["$timeout",function(e){var r={name:"form",restrict:t?"EAC":"E",controller:In,compile:function(r,i){r.addClass(go).addClass(mo);var o=i.name?"name":t&&i.ngForm?"ngForm":!1;return{pre:function(t,r,i,a){if(!("action"in i)){var s=function(e){t.$apply(function(){a.$commitViewValue(),a.$setSubmitted()}),e.preventDefault()};Tr(r[0],"submit",s),r.on("$destroy",function(){e(function(){Or(r[0],"submit",s)},0,!1)})}var u=a.$$parentForm;o&&(Re(t,null,a.$name,a,a.$name),i.$observe(o,function(e){a.$name!==e&&(Re(t,null,a.$name,n,a.$name),u.$$renameControl(a,e),Re(t,null,a.$name,a,a.$name))})),r.on("$destroy",function(){u.$removeControl(a),o&&Re(t,null,i[o],n,a.$name),f(a,Di)})}}}};return r}]},Ri=Ni(),Pi=Ni(!0),Fi=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Bi=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Li=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Ui=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Vi=/^(\d{4})-(\d{2})-(\d{2})$/,qi=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Hi=/^(\d{4})-W(\d\d)$/,Wi=/^(\d{4})-(\d\d)$/,Xi=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Yi={text:Mn,date:Rn("date",Vi,Nn(Vi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":Rn("datetimelocal",qi,Nn(qi,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:Rn("time",Xi,Nn(Xi,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:Rn("week",Hi,jn,"yyyy-Www"),month:Rn("month",Wi,Nn(Wi,["yyyy","MM"]),"yyyy-MM"),number:Fn,url:Bn,email:Ln,radio:Un,checkbox:qn,hidden:p,button:p,submit:p,reset:p,file:p},Zi=["$browser","$sniffer","$filter","$parse",function(t,e,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(Yi[Gn(a.type)]||Yi.text)(i,o,a,s[0],e,t,n,r)}}}}],Gi=/^(true|false|\d+)$/,Ki=function(){return{restrict:"A",priority:100,compile:function(t,e){return Gi.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Ji=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,r,i){t.$$addBindingInfo(r,i.ngBind),r=r[0],e.$watch(i.ngBind,function(t){r.textContent=t===n?"":t})}}}}],Qi=["$interpolate","$compile",function(t,e){return{compile:function(r){return e.$$addBindingClass(r),function(r,i,o){var a=t(i.attr(o.$attr.ngBindTemplate));e.$$addBindingInfo(i,a.expressions),i=i[0],o.$observe("ngBindTemplate",function(t){i.textContent=t===n?"":t})}}}}],to=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(r,i){var o=e(i.ngBindHtml),a=e(i.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(r),function(e,r,i){n.$$addBindingInfo(r,i.ngBindHtml),e.$watch(a,function(){r.html(t.getTrustedHtml(o(e))||"")})}}}}],eo=v({restrict:"A",require:"ngModel",link:function(t,e,n,r){r.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),no=Hn("",!0),ro=Hn("Odd",0),io=Hn("Even",1),oo=Tn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),ao=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],so={},uo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=Jt("ng-"+t);so[e]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[e],null,!0);return function(e,n){n.on(t,function(n){var i=function(){a(e,{$event:n})};uo[t]&&r.$$phase?e.$evalAsync(i):e.$apply(i)})}}}}]});var co=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,u,c;n.$watch(i.ngIf,function(n){n?u||a(function(n,o){u=o,n[n.length++]=e.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},t.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),u&&(u.$destroy(),u=null),s&&(c=ut(s.clone),t.leave(c).then(function(){c=null}),s=null))})}}}],lo=["$templateRequest","$anchorScroll","$animate",function(t,e,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:lr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,u,c,l){var f,h,d,p=0,m=function(){h&&(h.remove(),h=null),f&&(f.$destroy(),f=null),d&&(n.leave(d).then(function(){h=null}),h=d,d=null)};r.$watch(o,function(o){var u=function(){!$(s)||s&&!r.$eval(s)||e()},h=++p;o?(t(o,!0).then(function(t){if(h===p){var e=r.$new();c.template=t;var s=l(e,function(t){m(),n.enter(t,null,i).then(u)});f=e,d=s,f.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){h===p&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],fo=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void t($t(o.template,e).childNodes)(n,function(t){r.append(t)},{futureParentElement:r})):(r.html(o.template),void t(r.contents())(n))}}}],ho=Tn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),po=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,r,i){var a=e.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?pr(a):a,c=function(t){if(!g(t)){var e=[];return t&&o(t.split(u),function(t){t&&e.push(s?pr(t):t)}),e}};i.$parsers.push(c),i.$formatters.push(function(t){return dr(t)?t.join(a):n}),i.$isEmpty=function(t){return!t||!t.length}}}},mo="ng-valid",vo="ng-invalid",go="ng-pristine",$o="ng-dirty",yo="ng-untouched",bo="ng-touched",wo="ng-pending",_o=r("ngModel"),xo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,r,i,a,s,u,c,l,f){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=f(r.name||"",!1)(t);var h,d=a(r.ngModel),m=d.assign,v=d,y=m,b=null,_=this;this.$$setOptions=function(t){if(_.$options=t,t&&t.getterSetter){var e=a(r.ngModel+"()"),n=a(r.ngModel+"($$$p)");v=function(t){var n=d(t);return x(n)&&(n=e(t)),n},y=function(t,e){x(d(t))?n(t,{$$$p:_.$modelValue}):m(t,_.$modelValue)}}else if(!d.assign)throw _o("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,H(i))},this.$render=p,this.$isEmpty=function(t){return g(t)||""===t||null===t||t!==t};var C=i.inheritedData("$formController")||Di,E=0;Wn({ctrl:this,$element:i,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:C,$animate:s}),this.$setPristine=function(){_.$dirty=!1,_.$pristine=!0,s.removeClass(i,$o),s.addClass(i,go)},this.$setDirty=function(){_.$dirty=!0,_.$pristine=!1,s.removeClass(i,go),s.addClass(i,$o),C.$setDirty()},this.$setUntouched=function(){_.$touched=!1,_.$untouched=!0,s.setClass(i,yo,bo)},this.$setTouched=function(){_.$touched=!0,_.$untouched=!1,s.setClass(i,bo,yo)},this.$rollbackViewValue=function(){u.cancel(b),_.$viewValue=_.$$lastCommittedViewValue,_.$render()},this.$validate=function(){if(!w(_.$modelValue)||!isNaN(_.$modelValue)){var t=_.$$lastCommittedViewValue,e=_.$$rawModelValue,r=_.$valid,i=_.$modelValue,o=_.$options&&_.$options.allowInvalid;_.$$runValidators(e,t,function(t){o||r===t||(_.$modelValue=t?e:n,_.$modelValue!==i&&_.$$writeModelToScope())})}},this.$$runValidators=function(t,e,r){function i(){var t=_.$$parserName||"parse";return h!==n?(h||(o(_.$validators,function(t,e){u(e,null)}),o(_.$asyncValidators,function(t,e){u(e,null)})),u(t,h),h):(u(t,null),!0)}function a(){var n=!0;return o(_.$validators,function(r,i){var o=r(t,e);n=n&&o,u(i,o)}),n?!0:(o(_.$asyncValidators,function(t,e){u(e,null)}),!1)}function s(){var r=[],i=!0;o(_.$asyncValidators,function(o,a){var s=o(t,e);if(!I(s))throw _o("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);u(a,n),r.push(s.then(function(){u(a,!0)},function(t){i=!1,u(a,!1)}))}),r.length?l.all(r).then(function(){c(i)},p):c(!0)}function u(t,e){f===E&&_.$setValidity(t,e)}function c(t){f===E&&r(t)}E++;var f=E;return i()&&a()?void s():void c(!1)},this.$commitViewValue=function(){var t=_.$viewValue;u.cancel(b),(_.$$lastCommittedViewValue!==t||""===t&&_.$$hasNativeValidators)&&(_.$$lastCommittedViewValue=t,_.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){_.$modelValue!==a&&_.$$writeModelToScope()}var r=_.$$lastCommittedViewValue,i=r;if(h=g(i)?n:!0)for(var o=0;o<_.$parsers.length;o++)if(i=_.$parsers[o](i),g(i)){h=!1;break}w(_.$modelValue)&&isNaN(_.$modelValue)&&(_.$modelValue=v(t));var a=_.$modelValue,s=_.$options&&_.$options.allowInvalid;_.$$rawModelValue=i,s&&(_.$modelValue=i,e()),_.$$runValidators(i,_.$$lastCommittedViewValue,function(t){s||(_.$modelValue=t?i:n,e())})},this.$$writeModelToScope=function(){y(t,_.$modelValue),o(_.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){_.$viewValue=t,(!_.$options||_.$options.updateOnDefault)&&_.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,r=0,i=_.$options;i&&$(i.debounce)&&(n=i.debounce,w(n)?r=n:w(n[e])?r=n[e]:w(n["default"])&&(r=n["default"])),u.cancel(b),r?b=u(function(){_.$commitViewValue()},r):c.$$phase?_.$commitViewValue():t.$apply(function(){_.$commitViewValue()})},t.$watch(function(){var e=v(t);if(e!==_.$modelValue&&(_.$modelValue===_.$modelValue||e===e)){_.$modelValue=_.$$rawModelValue=e,h=n;for(var r=_.$formatters,i=r.length,o=e;i--;)o=r[i](o);_.$viewValue!==o&&(_.$viewValue=_.$$lastCommittedViewValue=o,_.$render(),_.$$runValidators(e,o,p))}return e})}],Co=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:xo,priority:1,compile:function(e){return e.addClass(go).addClass(yo).addClass(mo),{pre:function(t,e,n,r){var i=r[0],o=r[1]||Di;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(t){i.$name!==t&&o.$$renameControl(i,t)}),t.$on("$destroy",function(){o.$removeControl(i)})},post:function(e,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(t){o.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(n){o.$touched||(t.$$phase?e.$evalAsync(o.$setTouched):e.$apply(o.$setTouched))})}}}}}],Eo=/(\s+|^)default(\s+|$)/,ko=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var r=this;this.$options=t.$eval(e.ngModelOptions),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=pr(this.$options.updateOn.replace(Eo,function(){return r.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Ao=Tn({terminal:!0,priority:1e3}),So=["$locale","$interpolate",function(t,e){var n=/{}/g,r=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(i,a,s){function u(t){a.text(t||"")}var c,l=s.count,f=s.$attr.when&&a.attr(s.$attr.when),h=s.offset||0,d=i.$eval(f)||{},p={},m=e.startSymbol(),v=e.endSymbol(),g=m+l+"-"+h+v,$=lr.noop;o(s,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+Gn(n[2]);d[i]=a.attr(s.$attr[e])}}),o(d,function(t,r){p[r]=e(t.replace(n,g))}),i.$watch(l,function(e){var n=parseFloat(e),r=isNaN(n);r||n in d||(n=t.pluralCat(n-h)),n===c||r&&isNaN(c)||($(),$=i.$watch(p[n],u),c=n)})}}}],To=["$parse","$animate",function(t,a){var s="$$NG_REMOVED",u=r("ngRepeat"),c=function(t,e,n,r,i,o,a){t[n]=r,i&&(t[i]=o),t.$index=e,t.$first=0===e,t.$last=e===a-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},l=function(t){return t.clone[0]},f=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,h){var d=h.ngRepeat,p=e.createComment(" end ngRepeat: "+d+" "),m=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var v=m[1],g=m[2],$=m[3],y=m[4];if(m=v.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",v);var b=m[3]||m[1],w=m[2];if($&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test($)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test($)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",$);var _,x,C,E,k={$id:Bt};return y?_=t(y):(C=function(t,e){return Bt(e)},E=function(t){return t}),function(t,e,r,h,m){_&&(x=function(e,n,r){return w&&(k[w]=e),k[b]=n,k.$index=r,_(t,k)});var v=ct();t.$watchCollection(g,function(r){var h,g,y,_,k,A,S,T,O,I,z,M,D=e[0],j=ct();if($&&(t[$]=r),i(r))O=r,T=x||C;else{T=x||E,O=[];for(var N in r)r.hasOwnProperty(N)&&"$"!=N.charAt(0)&&O.push(N);O.sort()}for(_=O.length,z=new Array(_),h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],S=T(k,A,h),v[S])I=v[S],delete v[S],j[S]=I,z[h]=I;else{if(j[S])throw o(z,function(t){t&&t.scope&&(v[t.id]=t)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,S,A);z[h]={id:S,scope:n,clone:n},j[S]=!0}for(var R in v){if(I=v[R],M=ut(I.clone),a.leave(M),M[0].parentNode)for(h=0,g=M.length;g>h;h++)M[h][s]=!0;I.scope.$destroy()}for(h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],I=z[h],I.scope){y=D;do y=y.nextSibling;while(y&&y[s]);l(I)!=y&&a.move(ut(I.clone),null,nr(D)),D=f(I),c(I.scope,h,b,A,w,k,_)}else m(function(t,e){I.scope=e;var n=p.cloneNode(!1);t[t.length++]=n,a.enter(t,null,nr(D)),D=n,I.clone=t,j[I.id]=I,c(I.scope,h,b,A,w,k,_)});v=j})}}}}],Oo="ng-hide",Io="ng-hide-animate",zo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngShow,function(e){t[e?"removeClass":"addClass"](n,Oo,{tempClasses:Io})})}}}],Mo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngHide,function(e){t[e?"addClass":"removeClass"](n,Oo,{tempClasses:Io})})}}}],Do=Tn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&o(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),jo=["$animate",function(t){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,a){var s=i.ngSwitch||i.on,u=[],c=[],l=[],f=[],h=function(t,e){return function(){t.splice(e,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=l.length;i>r;++r)t.cancel(l[r]);for(l.length=0,r=0,i=f.length;i>r;++r){var s=ut(c[r].clone);f[r].$destroy();var d=l[r]=t.leave(s);d.then(h(l,r))}c.length=0,f.length=0,(u=a.cases["!"+n]||a.cases["?"])&&o(u,function(n){n.transclude(function(r,i){f.push(i);var o=n.element;r[r.length++]=e.createComment(" end ngSwitchWhen: ");var a={clone:r};c.push(a),t.enter(r,o.parent(),o)})})})}}}],No=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:e})}}),Ro=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:e})}}),Po=Tn({restrict:"EAC",link:function(t,e,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",H(e));o(function(t){e.empty(),e.append(t)})}}),Fo=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var r=n.id,i=e[0].text;t.put(r,i)}}}}],Bo=r("ngOptions"),Lo=v({restrict:"A",terminal:!0}),Uo=["$compile","$parse",function(t,r){var i=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,s={$setViewValue:p};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(t,e,n){var r,i,o=this,a={},u=s;o.databound=n.ngModel,o.init=function(t,e,n){u=t,r=e,i=n},o.addOption=function(e,n){at(e,'"option value"'),a[e]=!0,u.$viewValue==e&&(t.val(e),i.parent()&&i.remove()),n&&n[0].hasAttribute("selected")&&(n[0].selected=!0)},o.removeOption=function(t){this.hasOption(t)&&(delete a[t],u.$viewValue===t&&this.renderUnknownOption(t))},o.renderUnknownOption=function(e){var n="? "+Bt(e)+" ?";i.val(n),t.prepend(i),t.val(n),i.prop("selected",!0)},o.hasOption=function(t){return a.hasOwnProperty(t)},e.$on("$destroy",function(){o.renderUnknownOption=p})}],link:function(s,u,c,l){function f(t,e,n,r){n.$render=function(){var t=n.$viewValue;r.hasOption(t)?(C.parent()&&C.remove(),e.val(t),""===t&&p.prop("selected",!0)):null==t&&p?e.val(""):r.renderUnknownOption(t)},e.on("change",function(){t.$apply(function(){C.parent()&&C.remove(),n.$setViewValue(e.val())})})}function h(t,e,n){var r;n.$render=function(){var t=new Lt(n.$viewValue);o(e.find("option"),function(e){e.selected=$(t.get(e.value))})},t.$watch(function(){P(r,n.$viewValue)||(r=R(n.$viewValue),n.$render())}),e.on("change",function(){t.$apply(function(){var t=[];o(e.find("option"),function(e){
-e.selected&&t.push(e.value)}),n.$setViewValue(t)})})}function d(e,s,u){function c(t,n,r){return P[A]=r,O&&(P[O]=n),t(e,P)}function l(){e.$apply(function(){var t,n=M(e)||[];if(g)t=[],o(s.val(),function(e){e=j?N[e]:e,t.push(f(e,n[e]))});else{var r=j?N[s.val()]:s.val();t=f(r,n[r])}u.$setViewValue(t),C()})}function f(t,e){if("?"===t)return n;if(""===t)return null;var r=T?T:z;return c(r,t,e)}function h(){var t,n=M(e);if(n&&dr(n)){t=new Array(n.length);for(var r=0,i=n.length;i>r;r++)t[r]=c(k,r,n[r]);return t}if(n){t={};for(var o in n)n.hasOwnProperty(o)&&(t[o]=c(k,o,n[o]))}return t}function d(t){var e;if(g)if(j&&dr(t)){e=new Lt([]);for(var n=0;n<t.length;n++)e.put(c(j,null,t[n]),!0)}else e=new Lt(t);else j&&(t=c(j,null,t));return function(n,r){var i;return i=j?j:T?T:z,g?$(e.remove(c(i,n,r))):t===c(i,n,r)}}function p(){w||(e.$$postDigest(C),w=!0)}function v(t,e,n){t[e]=t[e]||0,t[e]+=n?1:-1}function C(){w=!1;var t,n,r,i,l,f,h,p,y,C,E,A,S,T,z,D,F,B={"":[]},L=[""],U=u.$viewValue,V=M(e)||[],q=O?a(V):V,H={},W=d(U),X=!1;for(N={},A=0;C=q.length,C>A;A++)h=A,O&&(h=q[A],"$"===h.charAt(0))||(p=V[h],t=c(I,h,p)||"",(n=B[t])||(n=B[t]=[],L.push(t)),S=W(h,p),X=X||S,D=c(k,h,p),D=$(D)?D:"",F=j?j(e,P):O?q[A]:A,j&&(N[F]=h),n.push({id:F,label:D,selected:S}));for(g||(b||null===U?B[""].unshift({id:"",label:"",selected:!X}):X||B[""].unshift({id:"?",label:"",selected:!0})),E=0,y=L.length;y>E;E++){for(t=L[E],n=B[t],R.length<=E?(i={element:x.clone().attr("label",t),label:n.label},l=[i],R.push(l),s.append(i.element)):(l=R[E],i=l[0],i.label!=t&&i.element.attr("label",i.label=t)),T=null,A=0,C=n.length;C>A;A++)r=n[A],(f=l[A+1])?(T=f.element,f.label!==r.label&&(v(H,f.label,!1),v(H,r.label,!0),T.text(f.label=r.label),T.prop("label",f.label)),f.id!==r.id&&T.val(f.id=r.id),T[0].selected!==r.selected&&(T.prop("selected",f.selected=r.selected),er&&T.prop("selected",f.selected))):(""===r.id&&b?z=b:(z=_.clone()).val(r.id).prop("selected",r.selected).attr("selected",r.selected).prop("label",r.label).text(r.label),l.push(f={element:z,label:r.label,id:r.id,selected:r.selected}),v(H,r.label,!0),T?T.after(z):i.element.append(z),T=z);for(A++;l.length>A;)r=l.pop(),v(H,r.label,!1),r.element.remove()}for(;R.length>E;){for(n=R.pop(),A=1;A<n.length;++A)v(H,n[A].label,!1);n[0].element.remove()}o(H,function(t,e){t>0?m.addOption(e):0>t&&m.removeOption(e)})}var E;if(!(E=y.match(i)))throw Bo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",y,H(s));var k=r(E[2]||E[1]),A=E[4]||E[6],S=/ as /.test(E[0])&&E[1],T=S?r(S):null,O=E[5],I=r(E[3]||""),z=r(E[2]?E[1]:A),M=r(E[7]),D=E[8],j=D?r(E[8]):null,N={},R=[[{element:s,label:""}]],P={};b&&(t(b)(e),b.removeClass("ng-scope"),b.remove()),s.empty(),s.on("change",l),u.$render=C,e.$watchCollection(M,p),e.$watchCollection(h,p),g&&e.$watchCollection(function(){return u.$modelValue},p)}if(l[1]){for(var p,m=l[0],v=l[1],g=c.multiple,y=c.ngOptions,b=!1,w=!1,_=nr(e.createElement("option")),x=nr(e.createElement("optgroup")),C=_.clone(),E=0,k=u.children(),A=k.length;A>E;E++)if(""===k[E].value){p=b=k.eq(E);break}m.init(v,b,C),g&&(v.$isEmpty=function(t){return!t||0===t.length}),y?d(s,u,v):g?h(s,u,v):f(s,u,v,m)}}}}],Vo=["$interpolate",function(t){var e={addOption:p,removeOption:p};return{restrict:"E",priority:100,compile:function(n,r){if(g(r.value)){var i=t(n.text(),!0);i||r.$set("value",n.text())}return function(t,n,r){var o="$selectController",a=n.parent(),s=a.data(o)||a.parent().data(o);s&&s.databound||(s=e),i?t.$watch(i,function(t,e){r.$set("value",t),e!==t&&s.removeOption(e),s.addOption(t,n)}):s.addOption(r.value,n),n.on("$destroy",function(){s.removeOption(r.value)})}}}}],qo=v({restrict:"E",terminal:!1}),Ho=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){r&&(n.required=!0,r.$validators.required=function(t,e){return!n.required||!r.$isEmpty(e)},n.$observe("required",function(){r.$validate()}))}}},Wo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,i,o){if(o){var a,s=i.ngPattern||i.pattern;i.$observe("pattern",function(t){if(b(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,t,H(e));a=t||n,o.$validate()}),o.$validators.pattern=function(t,e){return o.$isEmpty(e)||g(a)||a.test(e)}}}}},Xo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=-1;n.$observe("maxlength",function(t){var e=h(t);i=isNaN(e)?-1:e,r.$validate()}),r.$validators.maxlength=function(t,e){return 0>i||r.$isEmpty(e)||e.length<=i}}}}},Yo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=0;n.$observe("minlength",function(t){i=h(t)||0,r.$validate()}),r.$validators.minlength=function(t,e){return r.$isEmpty(e)||e.length>=i}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(rt(),dt(lr),void nr(e).ready(function(){J(e,Q)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'),function(t,e,n){"use strict";e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){var t="$$ngAnimateChildren";return function(n,r,i){var o=i.ngAnimateChildren;e.isString(o)&&0===o.length?r.data(t,!0):n.$watch(o,function(e){r.data(t,!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(t,e){var n=e[0].body;return function(e){return t(function(){e(n.offsetWidth)})}}]).config(["$provide","$animateProvider",function(r,i){function o(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.nodeType==v)return n}}function a(t){return t&&e.element(t)}function s(t){return e.element(o(t))}function u(t,e){return o(t)==o(e)}var c,l=e.noop,f=e.forEach,h=i.$$selectors,d=e.isArray,p=e.isString,m=e.isObject,v=1,g="$$ngAnimateState",$="$$ngAnimateChildren",y="ng-animate",b={running:!0};r.decorator("$animate",["$delegate","$$q","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document","$templateRequest","$$jqLite",function(t,n,r,v,w,_,x,C,E,k){function A(t,e){var n=t.data(g)||{};return e&&(n.running=!0,n.structural=!0,t.data(g,n)),n.disabled||n.running&&n.structural}function S(t){var e,r=n.defer();return r.promise.$$cancelFn=function(){e&&e()},x.$$postDigest(function(){e=t(function(){r.resolve()})}),r.promise}function T(t){return m(t)?(t.tempClasses&&p(t.tempClasses)&&(t.tempClasses=t.tempClasses.split(/\s+/)),t):void 0}function O(t,e,n){n=n||{};var r={};f(n,function(t,e){f(e.split(" "),function(e){r[e]=t})});var i=Object.create(null);f((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0});var o=[],a=[];return f(e&&e.classes||[],function(t,e){var n=i[e],s=r[e]||{};t===!1?(n||"addClass"==s.event)&&a.push(e):t===!0&&(n&&"removeClass"!=s.event||o.push(e))}),o.length+a.length>0&&[o.join(" "),a.join(" ")]}function I(t){if(t){var e=[],n={},i=t.substr(1).split(".");(v.transitions||v.animations)&&e.push(r.get(h[""]));for(var o=0;o<i.length;o++){var a=i[o],s=h[a];s&&!n[a]&&(e.push(r.get(s)),n[a]=!0)}return e}}function z(t,n,r,i){function o(t,e){var n=t[e],r=t["before"+e.charAt(0).toUpperCase()+e.substr(1)];return n||r?("leave"==e&&(r=n,n=null),_.push({event:e,fn:n}),y.push({event:e,fn:r}),!0):void 0}function a(e,n,o){function a(t){if(n){if((n[t]||l)(),++h<s.length)return;n=null}o()}var s=[];f(e,function(t){t.fn&&s.push(t)});var h=0;f(s,function(e,o){var s=function(){a(o)};switch(e.event){case"setClass":n.push(e.fn(t,u,c,s,i));break;case"animate":n.push(e.fn(t,r,i.from,i.to,s));break;case"addClass":n.push(e.fn(t,u||r,s,i));break;case"removeClass":n.push(e.fn(t,c||r,s,i));break;default:n.push(e.fn(t,s,i))}}),n&&0===n.length&&o()}var s=t[0];if(s){i&&(i.to=i.to||{},i.from=i.from||{});var u,c;d(r)&&(u=r[0],c=r[1],u?c?r=u+" "+c:(r=u,n="addClass"):(r=c,n="removeClass"));var h="setClass"==n,p=h||"addClass"==n||"removeClass"==n||"animate"==n,m=t.attr("class"),v=m+" "+r;if(B(v)){var g=l,$=[],y=[],b=l,w=[],_=[],x=(" "+v).replace(/\s+/g,".");return f(I(x),function(t){var e=o(t,n);!e&&h&&(o(t,"addClass"),o(t,"removeClass"))}),{node:s,event:n,className:r,isClassBased:p,isSetClassOperation:h,applyStyles:function(){i&&t.css(e.extend(i.from||{},i.to||{}))},before:function(t){g=t,a(y,$,function(){g=l,t()})},after:function(t){b=t,a(_,w,function(){b=l,t()})},cancel:function(){$&&(f($,function(t){(t||l)(!0)}),g(!0)),w&&(f(w,function(t){(t||l)(!0)}),b(!0))}}}}}function M(t,n,r,i,o,a,s,u){function h(e){var i="$animate:"+e;x&&x[i]&&x[i].length>0&&_(function(){r.triggerHandler(i,{event:t,className:n})})}function d(){h("before")}function p(){h("after")}function m(){h("close"),u()}function v(){v.hasBeenRun||(v.hasBeenRun=!0,a())}function $(){if(!$.hasBeenRun){w&&w.applyStyles(),$.hasBeenRun=!0,s&&s.tempClasses&&f(s.tempClasses,function(t){c.removeClass(r,t)});var e=r.data(g);e&&(w&&w.isClassBased?j(r,n):(_(function(){var e=r.data(g)||{};M==e.index&&j(r,n,t)}),r.data(g,e))),m()}}var b=l,w=z(r,t,n,s);if(!w)return v(),d(),p(),$(),b;t=w.event,n=w.className;var x=e.element._data(w.node);if(x=x&&x.events,i||(i=o?o.parent():r.parent()),N(r,i))return v(),d(),p(),$(),b;var C=r.data(g)||{},E=C.active||{},k=C.totalActive||0,A=C.last,S=!1;if(k>0){var T=[];if(w.isClassBased){if("setClass"==A.event)T.push(A),j(r,n);else if(E[n]){var O=E[n];O.event==t?S=!0:(T.push(O),j(r,n))}}else if("leave"==t&&E["ng-leave"])S=!0;else{for(var I in E)T.push(E[I]);C={},j(r,!0)}T.length>0&&f(T,function(t){t.cancel()})}if(!w.isClassBased||w.isSetClassOperation||"animate"==t||S||(S="addClass"==t==r.hasClass(n)),S)return v(),d(),p(),m(),b;E=C.active||{},k=C.totalActive||0,"leave"==t&&r.one("$destroy",function(t){var n=e.element(this),r=n.data(g);if(r){var i=r.active["ng-leave"];i&&(i.cancel(),j(n,"ng-leave"))}}),c.addClass(r,y),s&&s.tempClasses&&f(s.tempClasses,function(t){c.addClass(r,t)});var M=P++;return k++,E[n]=w,r.data(g,{last:w,active:E,index:M,totalActive:k}),d(),w.before(function(e){var i=r.data(g);e=e||!i||!i.active[n]||w.isClassBased&&i.active[n].event!=t,v(),e===!0?$():(p(),w.after($))}),w.cancel}function D(t){var n=o(t);if(n){var r=e.isFunction(n.getElementsByClassName)?n.getElementsByClassName(y):n.querySelectorAll("."+y);f(r,function(t){t=e.element(t);var n=t.data(g);n&&n.active&&f(n.active,function(t){t.cancel()})})}}function j(t,e){if(u(t,w))b.disabled||(b.running=!1,b.structural=!1);else if(e){var n=t.data(g)||{},r=e===!0;!r&&n.active&&n.active[e]&&(n.totalActive--,delete n.active[e]),(r||!n.totalActive)&&(c.removeClass(t,y),t.removeData(g))}}function N(t,n){if(b.disabled)return!0;if(u(t,w))return b.running;var r,i,o;do{if(0===n.length)break;var a=u(n,w),s=a?b:n.data(g)||{};if(s.disabled)return!0;if(a&&(o=!0),r!==!1){var c=n.data($);e.isDefined(c)&&(r=c)}i=i||s.running||s.last&&!s.last.isClassBased}while(n=n.parent());return!o||!r&&i}c=k,w.data(g,b);var R=x.$watch(function(){return E.totalPendingRequests},function(t,e){0===t&&(R(),x.$$postDigest(function(){x.$$postDigest(function(){b.running=!1})}))}),P=0,F=i.classNameFilter(),B=F?function(t){return F.test(t)}:function(){return!0};return{animate:function(t,e,n,r,i){return r=r||"ng-inline-animate",i=T(i)||{},i.from=n?e:null,i.to=n?n:e,S(function(e){return M("animate",r,s(t),null,null,l,i,e)})},enter:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),A(n,!0),t.enter(n,r,i),S(function(t){return M("enter","ng-enter",s(n),r,i,l,o,t)})},leave:function(n,r){return r=T(r),n=e.element(n),D(n),A(n,!0),S(function(e){return M("leave","ng-leave",s(n),null,null,function(){t.leave(n)},r,e)})},move:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),D(n),A(n,!0),t.move(n,r,i),S(function(t){return M("move","ng-move",s(n),r,i,l,o,t)})},addClass:function(t,e,n){return this.setClass(t,e,[],n)},removeClass:function(t,e,n){return this.setClass(t,[],e,n)},setClass:function(n,r,i,a){a=T(a);var u="$$animateClasses";if(n=e.element(n),n=s(n),A(n))return t.$$setClassImmediately(n,r,i,a);var c,l=n.data(u),h=!!l;return l||(l={},l.classes={}),c=l.classes,r=d(r)?r:r.split(" "),f(r,function(t){t&&t.length&&(c[t]=!0)}),i=d(i)?i:i.split(" "),f(i,function(t){t&&t.length&&(c[t]=!1)}),h?(a&&l.options&&(l.options=e.extend(l.options||{},a)),l.promise):(n.data(u,l={classes:c,options:a}),l.promise=S(function(e){var r,i,a,s=o(n);if(s&&(r=n.data(u),n.removeData(u),a=n.parent(),i=s.parentNode),!i||i.$$NG_REMOVED||s.$$NG_REMOVED)return void e();var c=n.data(g)||{},l=O(n,r,c.active);return l?M("setClass",l,n,a,null,function(){l[0]&&t.$$addClassImmediately(n,l[0]),l[1]&&t.$$removeClassImmediately(n,l[1])},r.options,e):e()}))},cancel:function(t){t.$$cancelFn()},enabled:function(t,e){switch(arguments.length){case 2:if(t)j(e);else{var n=e.data(g)||{};n.disabled=!0,e.data(g,n)}break;case 1:b.disabled=!t;break;default:t=!b.disabled}return!!t}}}]),i.register("",["$window","$sniffer","$timeout","$$animateReflow",function(r,i,a,s){function u(){j||(j=s(function(){Y=[],j=null,W={}}))}function h(t,e){j&&j(),Y.push(e),j=s(function(){f(Y,function(t){t()}),Y=[],j=null,W={}})}function m(t,n){var r=o(t);t=e.element(r),K.push(t);var i=Date.now()+n;G>=i||(a.cancel(Z),G=i,Z=a(function(){g(K),K=[]},n,!1))}function g(t){f(t,function(t){var e=t.data(U);e&&f(e.closeAnimationFns,function(t){t()})})}function $(t,e){var n=e?W[e]:null;if(!n){var i=0,o=0,a=0,s=0;f(t,function(t){if(t.nodeType==v){var e=r.getComputedStyle(t)||{},n=e[O+N];i=Math.max(y(n),i);var u=e[O+P];o=Math.max(y(u),o);e[z+P];s=Math.max(y(e[z+P]),s);var c=y(e[z+N]);c>0&&(c*=parseInt(e[z+F],10)||1),a=Math.max(c,a)}}),n={total:0,transitionDelay:o,transitionDuration:i,animationDelay:s,animationDuration:a},e&&(W[e]=n)}return n}function y(t){var e=0,n=p(t)?t.split(/\s*,\s*/):[];return f(n,function(t){e=Math.max(parseFloat(t)||0,e)}),e}function b(t){var e=t.parent(),n=e.data(L);return n||(e.data(L,++X),n=X),n+"-"+o(t).getAttribute("class")}function w(t,e,n,r){var i=["ng-enter","ng-leave","ng-move"].indexOf(n)>=0,a=b(e),s=a+" "+n,u=W[s]?++W[s].total:0,l={};if(u>0){var f=n+"-stagger",h=a+" "+f,d=!W[h];d&&c.addClass(e,f),l=$(e,h),d&&c.removeClass(e,f)}c.addClass(e,n);var p=e.data(U)||{},m=$(e,s),v=m.transitionDuration,g=m.animationDuration;if(i&&0===v&&0===g)return c.removeClass(e,n),!1;var y=r||i&&v>0,w=g>0&&l.animationDelay>0&&0===l.animationDuration,_=p.closeAnimationFns||[];e.data(U,{stagger:l,cacheKey:s,running:p.running||0,itemIndex:u,blockTransition:y,closeAnimationFns:_});var E=o(e);return y&&(x(E,!0),r&&e.css(r)),w&&C(E,!0),!0}function _(t,e,n,r,i){function s(){e.off(P,u),c.removeClass(e,d),c.removeClass(e,p),N&&a.cancel(N),S(e,n);var t=o(e);for(var r in g)t.style.removeProperty(g[r])}function u(t){t.stopPropagation();var e=t.originalEvent||t,n=e.$manualTimeStamp||e.timeStamp||Date.now(),i=parseFloat(e.elapsedTime.toFixed(V));Math.max(n-R,0)>=z&&i>=T&&r()}var l=o(e),h=e.data(U);if(-1==l.getAttribute("class").indexOf(n)||!h)return void r();var d="",p="";f(n.split(" "),function(t,e){var n=(e>0?" ":"")+t;d+=n+"-active",p+=n+"-pending"});var v="",g=[],y=h.itemIndex,b=h.stagger,w=0;if(y>0){var _=0;b.transitionDelay>0&&0===b.transitionDuration&&(_=b.transitionDelay*y);var E=0;b.animationDelay>0&&0===b.animationDuration&&(E=b.animationDelay*y,g.push(D+"animation-play-state")),w=Math.round(100*Math.max(_,E))/100}w||(c.addClass(e,d),h.blockTransition&&x(l,!1));var k=h.cacheKey+" "+d,A=$(e,k),T=Math.max(A.transitionDuration,A.animationDuration);if(0===T)return c.removeClass(e,d),S(e,n),void r();!w&&i&&Object.keys(i).length>0&&(A.transitionDuration||(e.css("transition",A.animationDuration+"s linear all"),g.push("transition")),e.css(i));var O=Math.max(A.transitionDelay,A.animationDelay),z=O*H;if(g.length>0){var j=l.getAttribute("style")||"";";"!==j.charAt(j.length-1)&&(j+=";"),l.setAttribute("style",j+" "+v)}var N,R=Date.now(),P=M+" "+I,F=(O+T)*q,B=(w+F)*H;return w>0&&(c.addClass(e,p),N=a(function(){N=null,A.transitionDuration>0&&x(l,!1),A.animationDuration>0&&C(l,!1),c.addClass(e,d),c.removeClass(e,p),i&&(0===A.transitionDuration&&e.css("transition",A.animationDuration+"s linear all"),e.css(i),g.push("transition"))},w*H,!1)),e.on(P,u),h.closeAnimationFns.push(function(){s(),r()}),h.running++,m(e,B),s}function x(t,e){t.style[O+R]=e?"none":""}function C(t,e){t.style[z+B]=e?"paused":""}function E(t,e,n,r){return w(t,e,n,r)?function(t){t&&S(e,n)}:void 0}function k(t,e,n,r,i){return e.data(U)?_(t,e,n,r,i):(S(e,n),void r())}function A(t,e,n,r,i){var o=E(t,e,n,i.from);if(!o)return u(),void r();var a=o;return h(e,function(){a=k(t,e,n,r,i.to)}),function(t){(a||l)(t)}}function S(t,e){c.removeClass(t,e);var n=t.data(U);n&&(n.running&&n.running--,n.running&&0!==n.running||t.removeData(U))}function T(t,e){var n="";return t=d(t)?t:t.split(/\s+/),f(t,function(t,r){t&&t.length>0&&(n+=(r>0?" ":"")+t+e)}),n}var O,I,z,M,D="";t.ontransitionend===n&&t.onwebkittransitionend!==n?(D="-webkit-",O="WebkitTransition",I="webkitTransitionEnd transitionend"):(O="transition",I="transitionend"),t.onanimationend===n&&t.onwebkitanimationend!==n?(D="-webkit-",z="WebkitAnimation",M="webkitAnimationEnd animationend"):(z="animation",M="animationend");var j,N="Duration",R="Property",P="Delay",F="IterationCount",B="PlayState",L="$$ngAnimateKey",U="$$ngAnimateCSS3Data",V=3,q=1.5,H=1e3,W={},X=0,Y=[],Z=null,G=0,K=[];return{animate:function(t,e,n,r,i,o){return o=o||{},o.from=n,o.to=r,A("animate",t,e,i,o)},enter:function(t,e,n){return n=n||{},A("enter",t,"ng-enter",e,n)},leave:function(t,e,n){return n=n||{},A("leave",t,"ng-leave",e,n)},move:function(t,e,n){return n=n||{},A("move",t,"ng-move",e,n)},beforeSetClass:function(t,e,n,r,i){i=i||{};var o=T(n,"-remove")+" "+T(e,"-add"),a=E("setClass",t,o,i.from);return a?(h(t,r),a):(u(),void r())},beforeAddClass:function(t,e,n,r){r=r||{};var i=E("addClass",t,T(e,"-add"),r.from);return i?(h(t,n),i):(u(),void n())},beforeRemoveClass:function(t,e,n,r){r=r||{};var i=E("removeClass",t,T(e,"-remove"),r.from);return i?(h(t,n),i):(u(),void n())},setClass:function(t,e,n,r,i){i=i||{},n=T(n,"-remove"),e=T(e,"-add");var o=n+" "+e;return k("setClass",t,o,r,i.to)},addClass:function(t,e,n,r){return r=r||{},k("addClass",t,T(e,"-add"),n,r.to)},removeClass:function(t,e,n,r){return r=r||{},k("removeClass",t,T(e,"-remove"),n,r.to)}}}])}])}(window,window.angular),function(t,e,n){"use strict";e.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(t,r){function i(){var t,i,o,u;for(t in s)l(a[t])&&(r.cookies(t,n),delete s[t]);for(t in a)i=a[t],e.isString(i)||(i=""+i,a[t]=i),i!==s[t]&&(r.cookies(t,i),s[t]=i,u=!0);if(u){o=r.cookies();for(t in a)a[t]!==o[t]&&(l(o[t])?(delete a[t],delete s[t]):a[t]=s[t]=o[t])}}var o,a={},s={},u=!1,c=e.copy,l=e.isUndefined;return r.addPollFn(function(){var e=r.cookies();o!=e&&(o=e,c(e,s),c(e,a),u&&t.$apply())})(),u=!0,t.$watch(i),a}]).factory("$cookieStore",["$cookies",function(t){return{get:function(n){var r=t[n];return r?e.fromJson(r):r},put:function(n,r){t[n]=e.toJson(r)},remove:function(e){delete t[e]}}}])}(window,window.angular),angular.module("ui-notification",[]),angular.module("ui-notification").provider("Notification",function(){this.options={delay:5e3,startTop:10,startRight:10,verticalSpacing:10,horizontalSpacing:10,positionX:"right",positionY:"top",replaceMessage:!1,templateUrl:"angular-ui-notification.html"},this.setOptions=function(t){if(!angular.isObject(t))throw new Error("Options should be an object!");this.options=angular.extend({},this.options,t)},this.$get=["$timeout","$http","$compile","$templateCache","$rootScope","$injector","$sce","$q","$window",function(t,e,n,r,i,o,a,s,u){var c=this.options,l=c.startTop,f=c.startRight,h=c.verticalSpacing,d=c.horizontalSpacing,p=c.delay,m=[],v=!1,g=function(o,g){var $=s.defer();return"object"!=typeof o&&(o={message:o}),o.scope=o.scope?o.scope:i,o.template=o.templateUrl?o.templateUrl:c.templateUrl,o.delay=angular.isUndefined(o.delay)?p:o.delay,o.type=g?g:"",o.positionY=o.positionY?o.positionY:c.positionY,o.positionX=o.positionX?o.positionX:c.positionX,o.replaceMessage=o.replaceMessage?o.replaceMessage:c.replaceMessage,e.get(o.template,{cache:r}).success(function(e){var r=o.scope.$new();r.message=a.trustAsHtml(o.message),r.title=a.trustAsHtml(o.title),r.t=o.type.substr(0,1),r.delay=o.delay;var i=function(){for(var t=0,e=0,n=l,r=f,i=[],a=m.length-1;a>=0;a--){var s=m[a];if(o.replaceMessage&&a<m.length-1)s.addClass("killed");else{var u=parseInt(s[0].offsetHeight),c=parseInt(s[0].offsetWidth),p=i[s._positionY+s._positionX];v+u>window.innerHeight&&(p=l,e++,t=0);var v=n=p?0===t?p:p+h:l,g=r+e*(d+c);s.css(s._positionY,v+"px"),"center"==s._positionX?s.css("left",parseInt(window.innerWidth/2-c/2)+"px"):s.css(s._positionX,g+"px"),i[s._positionY+s._positionX]=v+u,t++}}},s=n(e)(r);s._positionY=o.positionY,s._positionX=o.positionX,s.addClass(o.type),s.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd click",function(t){t=t.originalEvent||t,("click"===t.type||"opacity"===t.propertyName&&t.elapsedTime>=1)&&(s.remove(),m.splice(m.indexOf(s),1),i())}),angular.isNumber(o.delay)&&t(function(){s.addClass("killed")},o.delay),angular.element(document.getElementsByTagName("body")).append(s);var c=-(parseInt(s[0].offsetHeight)+50);s.css(s._positionY,c+"px"),m.push(s),r._templateElement=s,r.kill=function(e){e?(m.splice(m.indexOf(r._templateElement),1),r._templateElement.remove(),t(i)):r._templateElement.addClass("killed")},t(i),v||(angular.element(u).bind("resize",function(){t(i)}),v=!0),$.resolve(r)}).error(function(t){throw new Error("Template ("+o.template+") could not be loaded. "+t)}),$.promise};return g.primary=function(t){return this(t,"primary")},g.error=function(t){return this(t,"error")},g.success=function(t){return this(t,"success")},g.info=function(t){return this(t,"info")},g.warning=function(t){return this(t,"warning")},g.clearAll=function(){angular.forEach(m,function(t){t.addClass("killed")})},g}]}),angular.module("ui-notification").run(["$templateCache",function(t){t.put("angular-ui-notification.html",'<div class="ui-notification"><h3 ng-show="title" ng-bind-html="title"></h3><div class="message" ng-bind-html="message"></div></div>')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(t,e,n){"use strict";function r(t,e){return F(new(F(function(){},{prototype:t})),e)}function i(t){return P(arguments,function(e){e!==t&&P(e,function(e,n){t.hasOwnProperty(n)||(t[n]=e)})}),t}function o(t,e){var n=[];for(var r in t.path){if(t.path[r]!==e.path[r])break;n.push(t.path[r])}return n}function a(t){if(Object.keys)return Object.keys(t);var e=[];return P(t,function(t,n){e.push(n)}),e}function s(t,e){if(Array.prototype.indexOf)return t.indexOf(e,Number(arguments[2])||0);var n=t.length>>>0,r=Number(arguments[2])||0;for(r=0>r?Math.ceil(r):Math.floor(r),0>r&&(r+=n);n>r;r++)if(r in t&&t[r]===e)return r;return-1}function u(t,e,n,r){var i,u=o(n,r),c={},l=[];for(var f in u)if(u[f].params&&(i=a(u[f].params),i.length))for(var h in i)s(l,i[h])>=0||(l.push(i[h]),c[i[h]]=t[i[h]]);return F({},c,e)}function c(t,e,n){if(!n){n=[];for(var r in t)n.push(r)}for(var i=0;i<n.length;i++){var o=n[i];if(t[o]!=e[o])return!1}return!0}function l(t,e){var n={};return P(t,function(t){n[t]=e[t]}),n}function f(t){var e={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return P(n,function(n){n in t&&(e[n]=t[n])}),e}function h(t){var e={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var r in t)-1==s(n,r)&&(e[r]=t[r]);return e}function d(t,e){var n=R(t),r=n?[]:{};return P(t,function(t,i){e(t,i)&&(r[n?r.length:i]=t)}),r}function p(t,e){var n=R(t)?[]:{};return P(t,function(t,r){n[r]=e(t,r)}),n}function m(t,e){var r=1,o=2,u={},c=[],l=u,f=F(t.when(u),{$$promises:u,$$values:u});this.study=function(u){function d(t,n){if($[n]!==o){if(g.push(n),$[n]===r)throw g.splice(0,s(g,n)),new Error("Cyclic dependency: "+g.join(" -> "));if($[n]=r,j(t))v.push(n,[function(){return e.get(t)}],c);else{var i=e.annotate(t);P(i,function(t){t!==n&&u.hasOwnProperty(t)&&d(u[t],t)}),v.push(n,t,i)}g.pop(),$[n]=o}}function p(t){return N(t)&&t.then&&t.$$promises}if(!N(u))throw new Error("'invocables' must be an object");var m=a(u||{}),v=[],g=[],$={};return P(u,d),u=g=$=null,function(r,o,a){function s(){--b||(w||i(y,o.$$values),g.$$values=y,g.$$promises=g.$$promises||!0,delete g.$$inheritedValues,d.resolve(y))}function u(t){g.$$failure=t,d.reject(t)}function c(n,i,o){function c(t){f.reject(t),u(t)}function l(){if(!M(g.$$failure))try{f.resolve(e.invoke(i,a,y)),f.promise.then(function(t){y[n]=t,s()},c)}catch(t){c(t)}}var f=t.defer(),h=0;P(o,function(t){$.hasOwnProperty(t)&&!r.hasOwnProperty(t)&&(h++,$[t].then(function(e){y[t]=e,--h||l()},c))}),h||l(),$[n]=f.promise}if(p(r)&&a===n&&(a=o,o=r,r=null),r){if(!N(r))throw new Error("'locals' must be an object")}else r=l;if(o){if(!p(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=f;var d=t.defer(),g=d.promise,$=g.$$promises={},y=F({},r),b=1+v.length/3,w=!1;if(M(o.$$failure))return u(o.$$failure),g;o.$$inheritedValues&&i(y,h(o.$$inheritedValues,m)),F($,o.$$promises),o.$$values?(w=i(y,h(o.$$values,m)),g.$$inheritedValues=h(o.$$values,m),s()):(o.$$inheritedValues&&(g.$$inheritedValues=h(o.$$inheritedValues,m)),o.then(s,u));for(var _=0,x=v.length;x>_;_+=3)r.hasOwnProperty(v[_])?s():c(v[_],v[_+1],v[_+2]);return g}},this.resolve=function(t,e,n,r){return this.study(t)(e,n,r)}}function v(t,e,n){this.fromConfig=function(t,e,n){return M(t.template)?this.fromString(t.template,e):M(t.templateUrl)?this.fromUrl(t.templateUrl,e):M(t.templateProvider)?this.fromProvider(t.templateProvider,e,n):null},this.fromString=function(t,e){return D(t)?t(e):t},this.fromUrl=function(n,r){return D(n)&&(n=n(r)),null==n?null:t.get(n,{cache:e,headers:{Accept:"text/html"}}).then(function(t){return t.data})},this.fromProvider=function(t,e,r){return n.invoke(t,null,r||{params:e})}}function g(t,e,i){function o(e,n,r,i){if(v.push(e),p[e])return p[e];if(!/^\w+(-+\w+)*(?:\[\])?$/.test(e))throw new Error("Invalid parameter name '"+e+"' in pattern '"+t+"'");if(m[e])throw new Error("Duplicate parameter name '"+e+"' in pattern '"+t+"'");return m[e]=new L.Param(e,n,r,i),m[e]}function a(t,e,n,r){var i=["",""],o=t.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!e)return o;switch(n){case!1:i=["(",")"+(r?"?":"")];break;case!0:i=["?(",")?"];break;default:i=["("+n+"|",")?"]}return o+i[0]+e+i[1]}function s(i,o){var a,s,u,c,l;return a=i[2]||i[3],l=e.params[a],u=t.substring(h,i.index),s=o?i[4]:i[4]||("*"==i[1]?".*":null),c=L.type(s||"string")||r(L.type("string"),{pattern:new RegExp(s,e.caseInsensitive?"i":n)}),{id:a,regexp:s,segment:u,type:c,cfg:l}}e=F({params:{}},N(e)?e:{});var u,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,f="^",h=0,d=this.segments=[],p=i?i.params:{},m=this.params=i?i.params.$$new():new L.ParamSet,v=[];this.source=t;for(var g,$,y;(u=c.exec(t))&&(g=s(u,!1),!(g.segment.indexOf("?")>=0));)$=o(g.id,g.type,g.cfg,"path"),f+=a(g.segment,$.type.pattern.source,$.squash,$.isOptional),d.push(g.segment),h=c.lastIndex;y=t.substring(h);var b=y.indexOf("?");if(b>=0){var w=this.sourceSearch=y.substring(b);if(y=y.substring(0,b),this.sourcePath=t.substring(0,h+b),w.length>0)for(h=0;u=l.exec(w);)g=s(u,!0),$=o(g.id,g.type,g.cfg,"search"),h=c.lastIndex}else this.sourcePath=t,this.sourceSearch="";f+=a(y)+(e.strict===!1?"/?":"")+"$",d.push(y),this.regexp=new RegExp(f,e.caseInsensitive?"i":n),this.prefix=d[0],this.$$paramNames=v}function $(t){F(this,t)}function y(){function t(t){return null!=t?t.toString().replace(/\//g,"%2F"):t}function i(t){return null!=t?t.toString().replace(/%2F/g,"/"):t}function o(){return{strict:m,caseInsensitive:h}}function u(t){return D(t)||R(t)&&D(t[t.length-1])}function c(){for(;_.length;){var t=_.shift();if(t.pattern)throw new Error("You cannot override a type's .pattern at runtime.");e.extend(b[t.name],f.invoke(t.def))}}function l(t){F(this,t||{})}L=this;var f,h=!1,m=!0,v=!1,b={},w=!0,_=[],x={string:{encode:t,decode:i,is:function(t){return null==t||!M(t)||"string"==typeof t},pattern:/[^\/]*/},"int":{encode:t,decode:function(t){return parseInt(t,10)},is:function(t){return M(t)&&this.decode(t.toString())===t},pattern:/\d+/},bool:{encode:function(t){return t?1:0},decode:function(t){return 0!==parseInt(t,10)},is:function(t){return t===!0||t===!1},pattern:/0|1/},date:{encode:function(t){return this.is(t)?[t.getFullYear(),("0"+(t.getMonth()+1)).slice(-2),("0"+t.getDate()).slice(-2)].join("-"):n},decode:function(t){if(this.is(t))return t;var e=this.capture.exec(t);return e?new Date(e[1],e[2]-1,e[3]):n},is:function(t){return t instanceof Date&&!isNaN(t.valueOf())},equals:function(t,e){return this.is(t)&&this.is(e)&&t.toISOString()===e.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:e.toJson,decode:e.fromJson,is:e.isObject,equals:e.equals,pattern:/[^\/]*/},any:{encode:e.identity,decode:e.identity,equals:e.equals,pattern:/.*/}};y.$$getDefaultValue=function(t){if(!u(t.value))return t.value;if(!f)throw new Error("Injectable functions cannot be called at configuration time");return f.invoke(t.value)},this.caseInsensitive=function(t){return M(t)&&(h=t),h},this.strictMode=function(t){return M(t)&&(m=t),m},this.defaultSquashPolicy=function(t){if(!M(t))return v;if(t!==!0&&t!==!1&&!j(t))throw new Error("Invalid squash policy: "+t+". Valid policies: false, true, arbitrary-string");return v=t,t},this.compile=function(t,e){return new g(t,F(o(),e))},this.isMatcher=function(t){if(!N(t))return!1;var e=!0;return P(g.prototype,function(n,r){D(n)&&(e=e&&M(t[r])&&D(t[r]))}),e},this.type=function(t,e,n){if(!M(e))return b[t];if(b.hasOwnProperty(t))throw new Error("A type named '"+t+"' has already been defined.");return b[t]=new $(F({name:t},e)),n&&(_.push({name:t,def:n}),w||c()),this},P(x,function(t,e){b[e]=new $(F({name:e},t))}),b=r(b,{}),this.$get=["$injector",function(t){return f=t,w=!1,c(),P(x,function(t,e){b[e]||(b[e]=new $(t))}),this}],this.Param=function(t,e,r,i){function o(t){var e=N(t)?a(t):[],n=-1===s(e,"value")&&-1===s(e,"type")&&-1===s(e,"squash")&&-1===s(e,"array");return n&&(t={value:t}),t.$$fn=u(t.value)?t.value:function(){return t.value},t}function c(e,n,r){if(e.type&&n)throw new Error("Param '"+t+"' has two type configurations.");return n?n:e.type?e.type instanceof $?e.type:new $(e.type):"config"===r?b.any:b.string}function l(){var e={array:"search"===i?"auto":!1},n=t.match(/\[\]$/)?{array:!0}:{};return F(e,n,r).array}function h(t,e){var n=t.squash;if(!e||n===!1)return!1;if(!M(n)||null==n)return v;if(n===!0||j(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}function m(t,e,r,i){var o,a,u=[{from:"",to:r||e?n:""},{from:null,to:r||e?n:""}];return o=R(t.replace)?t.replace:[],j(i)&&o.push({from:i,to:n}),a=p(o,function(t){return t.from}),d(u,function(t){return-1===s(a,t.from)}).concat(o)}function g(){if(!f)throw new Error("Injectable functions cannot be called at configuration time");var t=f.invoke(r.$$fn);if(null!==t&&t!==n&&!_.type.is(t))throw new Error("Default value ("+t+") for parameter '"+_.id+"' is not an instance of Type ("+_.type.name+")");return t}function y(t){function e(t){return function(e){return e.from===t}}function n(t){var n=p(d(_.replace,e(t)),function(t){return t.to});return n.length?n[0]:t}return t=n(t),M(t)?_.type.$normalize(t):g()}function w(){return"{Param:"+t+" "+e+" squash: '"+E+"' optional: "+C+"}"}var _=this;r=o(r),e=c(r,e,i);var x=l();e=x?e.$asArray(x,"search"===i):e,"string"!==e.name||x||"path"!==i||r.value!==n||(r.value="");var C=r.value!==n,E=h(r,C),k=m(r,x,C,E);
-F(this,{id:t,type:e,location:i,array:x,squash:E,replace:k,isOptional:C,value:y,dynamic:n,config:r,toString:w})},l.prototype={$$new:function(){return r(this,F(new l,{$$parent:this}))},$$keys:function(){for(var t=[],e=[],n=this,r=a(l.prototype);n;)e.push(n),n=n.$$parent;return e.reverse(),P(e,function(e){P(a(e),function(e){-1===s(t,e)&&-1===s(r,e)&&t.push(e)})}),t},$$values:function(t){var e={},n=this;return P(n.$$keys(),function(r){e[r]=n[r].value(t&&t[r])}),e},$$equals:function(t,e){var n=!0,r=this;return P(r.$$keys(),function(i){var o=t&&t[i],a=e&&e[i];r[i].type.equals(o,a)||(n=!1)}),n},$$validates:function(t){var r,i,o,a,s,u=this.$$keys();for(r=0;r<u.length&&(i=this[u[r]],o=t[u[r]],o!==n&&null!==o||!i.isOptional);r++){if(a=i.type.$normalize(o),!i.type.is(a))return!1;if(s=i.type.encode(a),e.isString(s)&&!i.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=l}function b(t,r){function i(t){var e=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(t.source);return null!=e?e[1].replace(/\\(.)/g,"$1"):""}function o(t,e){return t.replace(/\$(\$|\d{1,2})/,function(t,n){return e["$"===n?0:Number(n)]})}function a(t,e,n){if(!n)return!1;var r=t.invoke(e,e,{$match:n});return M(r)?r:!0}function s(r,i,o,a){function s(t,e,n){return"/"===m?t:e?m.slice(0,-1)+t:n?m.slice(1)+t:t}function h(t){function e(t){var e=t(o,r);return e?(j(e)&&r.replace().url(e),!0):!1}if(!t||!t.defaultPrevented){p&&r.url()===p;p=n;var i,a=c.length;for(i=0;a>i;i++)if(e(c[i]))return;l&&e(l)}}function d(){return u=u||i.$on("$locationChangeSuccess",h)}var p,m=a.baseHref(),v=r.url();return f||d(),{sync:function(){h()},listen:function(){return d()},update:function(t){return t?void(v=r.url()):void(r.url()!==v&&(r.url(v),r.replace()))},push:function(t,e,i){var o=t.format(e||{});null!==o&&e&&e["#"]&&(o+="#"+e["#"]),r.url(o),p=i&&i.$$avoidResync?r.url():n,i&&i.replace&&r.replace()},href:function(n,i,o){if(!n.validates(i))return null;var a=t.html5Mode();e.isObject(a)&&(a=a.enabled);var u=n.format(i);if(o=o||{},a||null===u||(u="#"+t.hashPrefix()+u),null!==u&&i&&i["#"]&&(u+="#"+i["#"]),u=s(u,a,o.absolute),!o.absolute||!u)return u;var c=!a&&u?"/":"",l=r.port();return l=80===l||443===l?"":":"+l,[r.protocol(),"://",r.host(),l,c,u].join("")}}}var u,c=[],l=null,f=!1;this.rule=function(t){if(!D(t))throw new Error("'rule' must be a function");return c.push(t),this},this.otherwise=function(t){if(j(t)){var e=t;t=function(){return e}}else if(!D(t))throw new Error("'rule' must be a function");return l=t,this},this.when=function(t,e){var n,s=j(e);if(j(t)&&(t=r.compile(t)),!s&&!D(e)&&!R(e))throw new Error("invalid 'handler' in when()");var u={matcher:function(t,e){return s&&(n=r.compile(e),e=["$match",function(t){return n.format(t)}]),F(function(n,r){return a(n,e,t.exec(r.path(),r.search()))},{prefix:j(t.prefix)?t.prefix:""})},regex:function(t,e){if(t.global||t.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=e,e=["$match",function(t){return o(n,t)}]),F(function(n,r){return a(n,e,t.exec(r.path()))},{prefix:i(t)})}},c={matcher:r.isMatcher(t),regex:t instanceof RegExp};for(var l in c)if(c[l])return this.rule(u[l](t,e));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(t){t===n&&(t=!0),f=t},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser"]}function w(t,i){function o(t){return 0===t.indexOf(".")||0===t.indexOf("^")}function h(t,e){if(!t)return n;var r=j(t),i=r?t:t.name,a=o(i);if(a){if(!e)throw new Error("No reference point given for path '"+i+"'");e=h(e);for(var s=i.split("."),u=0,c=s.length,l=e;c>u;u++)if(""!==s[u]||0!==u){if("^"!==s[u])break;if(!l.parent)throw new Error("Path '"+i+"' not valid for state '"+e.name+"'");l=l.parent}else l=e;s=s.slice(u).join("."),i=l.name+(l.name&&s?".":"")+s}var f=E[i];return!f||!r&&(r||f!==t&&f.self!==t)?n:f}function d(t,e){k[t]||(k[t]=[]),k[t].push(e)}function m(t){for(var e=k[t]||[];e.length;)v(e.shift())}function v(e){e=r(e,{self:e,resolve:e.resolve||{},toString:function(){return this.name}});var n=e.name;if(!j(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(E.hasOwnProperty(n))throw new Error("State '"+n+"'' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):j(e.parent)?e.parent:N(e.parent)&&j(e.parent.name)?e.parent.name:"";if(i&&!E[i])return d(i,e.self);for(var o in S)D(S[o])&&(e[o]=S[o](e,S.$delegates[o]));return E[n]=e,!e[A]&&e.url&&t.when(e.url,["$match","$stateParams",function(t,n){C.$current.navigable==e&&c(t,n)||C.transitionTo(e,t,{inherit:!0,location:!1})}]),m(n),e}function g(t){return t.indexOf("*")>-1}function $(t){for(var e=t.split("."),n=C.$current.name.split("."),r=0,i=e.length;i>r;r++)"*"===e[r]&&(n[r]="*");return"**"===e[0]&&(n=n.slice(s(n,e[1])),n.unshift("**")),"**"===e[e.length-1]&&(n.splice(s(n,e[e.length-2])+1,Number.MAX_VALUE),n.push("**")),e.length!=n.length?!1:n.join("")===e.join("")}function y(t,e){return j(t)&&!M(e)?S[t]:D(e)&&j(t)?(S[t]&&!S.$delegates[t]&&(S.$delegates[t]=S[t]),S[t]=e,this):this}function b(t,e){return N(t)?e=t:e.name=t,v(e),this}function w(t,i,o,s,f,d,m,v,y){function b(e,n,r,o){var a=t.$broadcast("$stateNotFound",e,n,r);if(a.defaultPrevented)return m.update(),T;if(!a.retry)return null;if(o.$retry)return m.update(),O;var s=C.transition=i.when(a.retry);return s.then(function(){return s!==C.transition?k:(e.options.$retry=!0,C.transitionTo(e.to,e.toParams,e.options))},function(){return T}),m.update(),s}function w(t,n,r,a,u,c){function h(){var n=[];return P(t.views,function(r,i){var a=r.resolve&&r.resolve!==t.resolve?r.resolve:{};a.$template=[function(){return o.load(i,{view:r,locals:u.globals,params:d,notify:c.notify})||""}],n.push(f.resolve(a,u.globals,u.resolve,t).then(function(n){if(D(r.controllerProvider)||R(r.controllerProvider)){var o=e.extend({},a,u.globals);n.$$controller=s.invoke(r.controllerProvider,null,o)}else n.$$controller=r.controller;n.$$state=t,n.$$controllerAs=r.controllerAs,u[i]=n}))}),i.all(n).then(function(){return u.globals})}var d=r?n:l(t.params.$$keys(),n),p={$stateParams:d};u.resolve=f.resolve(t.resolve,p,u.resolve,t);var m=[u.resolve.then(function(t){u.globals=t})];return a&&m.push(a),i.all(m).then(h).then(function(t){return u})}var k=i.reject(new Error("transition superseded")),S=i.reject(new Error("transition prevented")),T=i.reject(new Error("transition aborted")),O=i.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},C={params:{},current:x.self,$current:x,transition:null},C.reload=function(t){return C.transitionTo(C.current,d,{reload:t||!0,inherit:!1,notify:!0})},C.go=function(t,e,n){return C.transitionTo(t,e,F({inherit:!0,relative:C.$current},n))},C.transitionTo=function(e,n,o){n=n||{},o=F({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a,c=C.$current,f=C.params,p=c.path,v=h(e,o.relative),g=n["#"];if(!M(v)){var $={to:e,toParams:n,options:o},y=b($,c.self,f,o);if(y)return y;if(e=$.to,n=$.toParams,o=$.options,v=h(e,o.relative),!M(v)){if(!o.relative)throw new Error("No such state '"+e+"'");throw new Error("Could not resolve '"+e+"' from state '"+o.relative+"'")}}if(v[A])throw new Error("Cannot transition to abstract state '"+e+"'");if(o.inherit&&(n=u(d,n||{},C.$current,v)),!v.params.$$validates(n))return O;n=v.params.$$values(n),e=v;var E=e.path,T=0,I=E[T],z=x.locals,D=[];if(o.reload){if(j(o.reload)||N(o.reload)){if(N(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var R=o.reload===!0?p[0]:h(o.reload);if(o.reload&&!R)throw new Error("No such reload state '"+(j(o.reload)?o.reload:o.reload.name)+"'");for(;I&&I===p[T]&&I!==R;)z=D[T]=I.locals,T++,I=E[T]}}else for(;I&&I===p[T]&&I.ownParams.$$equals(n,f);)z=D[T]=I.locals,T++,I=E[T];if(_(e,n,c,f,z,o))return g&&(n["#"]=g),C.params=n,B(C.params,d),o.location&&e.navigable&&e.navigable.url&&(m.push(e.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),m.update(!0)),C.transition=null,i.when(C.current);if(n=l(e.params.$$keys(),n||{}),o.notify&&t.$broadcast("$stateChangeStart",e.self,n,c.self,f).defaultPrevented)return t.$broadcast("$stateChangeCancel",e.self,n,c.self,f),m.update(),S;for(var P=i.when(z),L=T;L<E.length;L++,I=E[L])z=D[L]=r(z),P=w(I,n,I===e,P,z,o);var U=C.transition=P.then(function(){var r,i,a;if(C.transition!==U)return k;for(r=p.length-1;r>=T;r--)a=p[r],a.self.onExit&&s.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(r=T;r<E.length;r++)i=E[r],i.locals=D[r],i.self.onEnter&&s.invoke(i.self.onEnter,i.self,i.locals.globals);return g&&(n["#"]=g),C.transition!==U?k:(C.$current=e,C.current=e.self,C.params=n,B(C.params,d),C.transition=null,o.location&&e.navigable&&m.push(e.navigable.url,e.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&t.$broadcast("$stateChangeSuccess",e.self,n,c.self,f),m.update(!0),C.current)},function(r){return C.transition!==U?k:(C.transition=null,a=t.$broadcast("$stateChangeError",e.self,n,c.self,f,r),a.defaultPrevented||m.update(),i.reject(r))});return U},C.is=function(t,e,r){r=F({relative:C.$current},r||{});var i=h(t,r.relative);return M(i)?C.$current!==i?!1:e?c(i.params.$$values(e),d):!0:n},C.includes=function(t,e,r){if(r=F({relative:C.$current},r||{}),j(t)&&g(t)){if(!$(t))return!1;t=C.$current.name}var i=h(t,r.relative);return M(i)?M(C.$current.includes[i.name])?e?c(i.params.$$values(e),d,a(e)):!0:!1:n},C.href=function(t,e,r){r=F({lossy:!0,inherit:!0,absolute:!1,relative:C.$current},r||{});var i=h(t,r.relative);if(!M(i))return null;r.inherit&&(e=u(d,e||{},C.$current,i));var o=i&&r.lossy?i.navigable:i;return o&&o.url!==n&&null!==o.url?m.href(o.url,l(i.params.$$keys().concat("#"),e||{}),{absolute:r.absolute}):null},C.get=function(t,e){if(0===arguments.length)return p(a(E),function(t){return E[t].self});var n=h(t,e||C.$current);return n&&n.self?n.self:null},C}function _(t,e,n,r,i,o){function a(t,e,n){function r(e){return"search"!=t.params[e].location}var i=t.params.$$keys().filter(r),o=f.apply({},[t.params].concat(i)),a=new L.ParamSet(o);return a.$$equals(e,n)}return!o.reload&&t===n&&(i===n.locals||t.self.reloadOnSearch===!1&&a(n,r,e))?!0:void 0}var x,C,E={},k={},A="abstract",S={parent:function(t){if(M(t.parent)&&t.parent)return h(t.parent);var e=/^(.+)\.[^.]+$/.exec(t.name);return e?h(e[1]):x},data:function(t){return t.parent&&t.parent.data&&(t.data=t.self.data=F({},t.parent.data,t.data)),t.data},url:function(t){var e=t.url,n={params:t.params||{}};if(j(e))return"^"==e.charAt(0)?i.compile(e.substring(1),n):(t.parent.navigable||x).url.concat(e,n);if(!e||i.isMatcher(e))return e;throw new Error("Invalid url '"+e+"' in state '"+t+"'")},navigable:function(t){return t.url?t:t.parent?t.parent.navigable:null},ownParams:function(t){var e=t.url&&t.url.params||new L.ParamSet;return P(t.params||{},function(t,n){e[n]||(e[n]=new L.Param(n,null,t,"config"))}),e},params:function(t){return t.parent&&t.parent.params?F(t.parent.params.$$new(),t.ownParams):new L.ParamSet},views:function(t){var e={};return P(M(t.views)?t.views:{"":t},function(n,r){r.indexOf("@")<0&&(r+="@"+t.parent.name),e[r]=n}),e},path:function(t){return t.parent?t.parent.path.concat(t):[]},includes:function(t){var e=t.parent?F({},t.parent.includes):{};return e[t.name]=!0,e},$delegates:{}};x=v({name:"",url:"^",views:null,"abstract":!0}),x.navigable=null,this.decorator=y,this.state=b,this.$get=w,w.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function _(){function t(t,e){return{load:function(n,r){var i,o={template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}};return r=F(o,r),r.view&&(i=e.fromConfig(r.view,r.params,r.locals)),i&&r.notify&&t.$broadcast("$viewContentLoading",r),i}}}this.$get=t,t.$inject=["$rootScope","$templateFactory"]}function x(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,n){return t?e:function(t){return n(function(){t[0].scrollIntoView()},0,!1)}}]}function C(t,n,r,i){function o(){return n.has?function(t){return n.has(t)?n.get(t):null}:function(t){try{return n.get(t)}catch(e){return null}}}function a(t,e){var n=function(){return{enter:function(t,e,n){e.after(t),n()},leave:function(t,e){t.remove(),e()}}};if(c)return{enter:function(t,e,n){var r=c.enter(t,null,e,n);r&&r.then&&r.then(n)},leave:function(t,e){var n=c.leave(t,e);n&&n.then&&n.then(e)}};if(u){var r=u&&u(e,t);return{enter:function(t,e,n){r.enter(t,null,e),n()},leave:function(t,e){r.leave(t),e()}}}return n()}var s=o(),u=s("$animator"),c=s("$animate"),l={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,s){return function(n,o,u){function c(){f&&(f.remove(),f=null),d&&(d.$destroy(),d=null),h&&(g.leave(h,function(){f=null}),f=h,h=null)}function l(a){var l,f=k(n,u,o,i),$=f&&t.$current&&t.$current.locals[f];if(a||$!==p){l=n.$new(),p=t.$current.locals[f];var y=s(l,function(t){g.enter(t,o,function(){d&&d.$emit("$viewContentAnimationEnded"),(e.isDefined(v)&&!v||n.$eval(v))&&r(t)}),c()});h=y,d=l,d.$emit("$viewContentLoaded"),d.$eval(m)}}var f,h,d,p,m=u.onload||"",v=u.autoscroll,g=a(u,n);n.$on("$stateChangeSuccess",function(){l(!1)}),n.$on("$viewContentLoading",function(){l(!1)}),l(!0)}}};return l}function E(t,e,n,r){return{restrict:"ECA",priority:-400,compile:function(i){var o=i.html();return function(i,a,s){var u=n.$current,c=k(i,s,a,r),l=u&&u.locals[c];if(l){a.data("$uiView",{name:c,state:l.$$state}),a.html(l.$template?l.$template:o);var f=t(a.contents());if(l.$$controller){l.$scope=i,l.$element=a;var h=e(l.$$controller,l);l.$$controllerAs&&(i[l.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}f(i)}}}}}function k(t,e,n,r){var i=r(e.uiView||e.name||"")(t),o=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(o?o.state.name:"")}function A(t,e){var n,r=t.match(/^\s*({[^}]*})\s*$/);if(r&&(t=e+"("+r[1]+")"),n=t.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!n||4!==n.length)throw new Error("Invalid state ref '"+t+"'");return{state:n[1],paramExpr:n[3]||null}}function S(t){var e=t.parent().inheritedData("$uiView");return e&&e.state&&e.state.name?e.state:void 0}function T(t,n){var r=["location","inherit","reload","absolute"];return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(i,o,a,s){var u=A(a.uiSref,t.current.name),c=null,l=S(o)||t.$current,f="[object SVGAnimatedString]"===Object.prototype.toString.call(o.prop("href"))?"xlink:href":"href",h=null,d="A"===o.prop("tagName").toUpperCase(),p="FORM"===o[0].nodeName,m=p?"action":f,v=!0,g={relative:l,inherit:!0},$=i.$eval(a.uiSrefOpts)||{};e.forEach(r,function(t){t in $&&(g[t]=$[t])});var y=function(n){if(n&&(c=e.copy(n)),v){h=t.href(u.state,c,g);var r=s[1]||s[0];return r&&r.$$addStateInfo(u.state,c),null===h?(v=!1,!1):void a.$set(m,h)}};u.paramExpr&&(i.$watch(u.paramExpr,function(t,e){t!==c&&y(t)},!0),c=e.copy(i.$eval(u.paramExpr))),y(),p||o.bind("click",function(e){var r=e.which||e.button;if(!(r>1||e.ctrlKey||e.metaKey||e.shiftKey||o.attr("target"))){var i=n(function(){t.go(u.state,c,g)});e.preventDefault();var a=d&&!h?1:0;e.preventDefault=function(){a--<=0&&n.cancel(i)}}})}}}function O(t,e,n){return{restrict:"A",controller:["$scope","$element","$attrs",function(e,r,i){function o(){a()?r.addClass(u):r.removeClass(u)}function a(){for(var t=0;t<c.length;t++)if(s(c[t].state,c[t].params))return!0;return!1}function s(e,n){return"undefined"!=typeof i.uiSrefActiveEq?t.is(e.name,n):t.includes(e.name,n)}var u,c=[];u=n(i.uiSrefActiveEq||i.uiSrefActive||"",!1)(e),this.$$addStateInfo=function(e,n){var i=t.get(e,S(r));c.push({state:i||{name:e},params:n}),o()},e.$on("$stateChangeSuccess",o)}]}}function I(t){var e=function(e){return t.is(e)};return e.$stateful=!0,e}function z(t){var e=function(e){return t.includes(e)};return e.$stateful=!0,e}var M=e.isDefined,D=e.isFunction,j=e.isString,N=e.isObject,R=e.isArray,P=e.forEach,F=e.extend,B=e.copy;e.module("ui.router.util",["ng"]),e.module("ui.router.router",["ui.router.util"]),e.module("ui.router.state",["ui.router.router","ui.router.util"]),e.module("ui.router",["ui.router.state"]),e.module("ui.router.compat",["ui.router"]),m.$inject=["$q","$injector"],e.module("ui.router.util").service("$resolve",m),v.$inject=["$http","$templateCache","$injector"],e.module("ui.router.util").service("$templateFactory",v);var L;g.prototype.concat=function(t,e){var n={caseInsensitive:L.caseInsensitive(),strict:L.strictMode(),squash:L.defaultSquashPolicy()};return new g(this.sourcePath+t+this.sourceSearch,F(n,e),this)},g.prototype.toString=function(){return this.source},g.prototype.exec=function(t,e){function n(t){function e(t){return t.split("").reverse().join("")}function n(t){return t.replace(/\\-/g,"-")}var r=e(t).split(/-(?!\\)/),i=p(r,e);return p(i,n).reverse()}var r=this.regexp.exec(t);if(!r)return null;e=e||{};var i,o,a,s=this.parameters(),u=s.length,c=this.segments.length-1,l={};if(c!==r.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");for(i=0;c>i;i++){a=s[i];var f=this.params[a],h=r[i+1];for(o=0;o<f.replace;o++)f.replace[o].from===h&&(h=f.replace[o].to);h&&f.array===!0&&(h=n(h)),l[a]=f.value(h)}for(;u>i;i++)a=s[i],l[a]=this.params[a].value(e[a]);return l},g.prototype.parameters=function(t){return M(t)?this.params[t]||null:this.$$paramNames},g.prototype.validates=function(t){return this.params.$$validates(t)},g.prototype.format=function(t){function e(t){return encodeURIComponent(t).replace(/-/g,function(t){return"%5C%"+t.charCodeAt(0).toString(16).toUpperCase()})}t=t||{};var n=this.segments,r=this.parameters(),i=this.params;if(!this.validates(t))return null;var o,a=!1,s=n.length-1,u=r.length,c=n[0];for(o=0;u>o;o++){var l=s>o,f=r[o],h=i[f],d=h.value(t[f]),m=h.isOptional&&h.type.equals(h.value(),d),v=m?h.squash:!1,g=h.type.encode(d);if(l){var $=n[o+1];if(v===!1)null!=g&&(c+=R(g)?p(g,e).join("-"):encodeURIComponent(g)),c+=$;else if(v===!0){var y=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=$.match(y)[1]}else j(v)&&(c+=v+$)}else{if(null==g||m&&v!==!1)continue;R(g)||(g=[g]),g=p(g,encodeURIComponent).join("&"+f+"="),c+=(a?"&":"?")+(f+"="+g),a=!0}}return c},$.prototype.is=function(t,e){return!0},$.prototype.encode=function(t,e){return t},$.prototype.decode=function(t,e){return t},$.prototype.equals=function(t,e){return t==e},$.prototype.$subPattern=function(){var t=this.pattern.toString();return t.substr(1,t.length-2)},$.prototype.pattern=/.*/,$.prototype.toString=function(){return"{Type:"+this.name+"}"},$.prototype.$normalize=function(t){return this.is(t)?t:this.decode(t)},$.prototype.$asArray=function(t,e){function r(t,e){function r(t,e){return function(){return t[e].apply(t,arguments)}}function i(t){return R(t)?t:M(t)?[t]:[]}function o(t){switch(t.length){case 0:return n;case 1:return"auto"===e?t[0]:t;default:return t}}function a(t){return!t}function s(t,e){return function(n){n=i(n);var r=p(n,t);return e===!0?0===d(r,a).length:o(r)}}function u(t){return function(e,n){var r=i(e),o=i(n);if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(!t(r[a],o[a]))return!1;return!0}}this.encode=s(r(t,"encode")),this.decode=s(r(t,"decode")),this.is=s(r(t,"is"),!0),this.equals=u(r(t,"equals")),this.pattern=t.pattern,this.$normalize=s(r(t,"$normalize")),this.name=t.name,this.$arrayMode=e}if(!t)return this;if("auto"===t&&!e)throw new Error("'auto' array mode is for query parameters only");return new r(this,t)},e.module("ui.router.util").provider("$urlMatcherFactory",y),e.module("ui.router.util").run(["$urlMatcherFactory",function(t){}]),b.$inject=["$locationProvider","$urlMatcherFactoryProvider"],e.module("ui.router.router").provider("$urlRouter",b),w.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],e.module("ui.router.state").value("$stateParams",{}).provider("$state",w),_.$inject=[],e.module("ui.router.state").provider("$view",_),e.module("ui.router.state").provider("$uiViewScroll",x),C.$inject=["$state","$injector","$uiViewScroll","$interpolate"],E.$inject=["$compile","$controller","$state","$interpolate"],e.module("ui.router.state").directive("uiView",C),e.module("ui.router.state").directive("uiView",E),T.$inject=["$state","$timeout"],O.$inject=["$state","$stateParams","$interpolate"],e.module("ui.router.state").directive("uiSref",T).directive("uiSrefActive",O).directive("uiSrefActiveEq",O),I.$inject=["$state"],z.$inject=["$state"],e.module("ui.router.state").filter("isState",I).filter("includedByState",z)}(window,window.angular),function(){"use strict";function t(e,r){function i(t,e){return function(){return t.apply(e,arguments)}}var o;if(r=r||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=r.touchBoundary||10,this.layer=e,this.tapDelay=r.tapDelay||200,this.tapTimeout=r.tapTimeout||700,!t.notNeeded(e)){for(var a=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,u=0,c=a.length;c>u;u++)s[a[u]]=i(s[a[u]],s);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,r){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,r):i.call(e,t,n,r)},e.addEventListener=function(t,n,r){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),r):i.call(e,t,n,r)}),"function"==typeof e.onclick&&(o=e.onclick,e.addEventListener("click",function(t){o(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,r=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=r&&/OS 4_\d(_\d)?/.test(navigator.userAgent),o=r&&/OS [6-7]_\d/.test(navigator.userAgent),a=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(r&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,r;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),r=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;r&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,o;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],r){if(o=window.getSelection(),o.rangeCount&&!o.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTime<this.tapDelay&&t.preventDefault(),!0},t.prototype.touchHasMoved=function(t){var e=t.changedTouches[0],n=this.touchBoundary;return Math.abs(e.pageX-this.touchStartX)>n||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,a,s,u,c,l=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(t.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,a=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,o&&(c=t.changedTouches[0],l=document.elementFromPoint(c.pageX-window.pageXOffset,c.pageY-window.pageYOffset)||l,l.fastClickScrollParent=this.targetElement.fastClickScrollParent),s=l.tagName.toLowerCase(),"label"===s){if(e=this.findControl(l)){if(this.focus(l),n)return!1;l=e}}else if(this.needsFocus(l))return t.timeStamp-a>100||r&&window.top!==window&&"input"===s?(this.targetElement=null,!1):(this.focus(l),this.sendClick(l,t),r&&"select"===s||(this.targetElement=null,t.preventDefault()),!1);return r&&!i&&(u=l.fastClickScrollParent,u&&u.fastClickLastScrollTop!==u.scrollTop)?!0:(this.needsClick(l)||(t.preventDefault(),this.sendClick(l,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,r,i,o;if("undefined"==typeof window.ontouchstart)return!0;if(r=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(r>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(a&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],o>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.IconicJS=t():"undefined"!=typeof global?global.IconicJS=t():"undefined"!=typeof self&&(self.IconicJS=t())}(function(){var t;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e){var n=(t("./modules/polyfills"),t("./modules/svg-injector")),r=t("./modules/extend"),i=t("./modules/responsive"),o=t("./modules/position"),a=t("./modules/container"),s=t("./modules/log"),u={},c=window.iconicSmartIconApis={},l=("file:"===window.location.protocol,0),f=function(t,e,i){e=r({},u,e||{});var o={evalScripts:e.evalScripts,pngFallback:e.pngFallback};o.each=function(t){if(t)if("string"==typeof t)s.debug(t);else if(t instanceof SVGSVGElement){var n=t.getAttribute("data-icon");if(n&&c[n]){var r=c[n](t);for(var i in r)t[i]=r[i]}/iconic-bg-/.test(t.getAttribute("class"))&&a.addBackground(t),h(t),l++,e&&e.each&&"function"==typeof e.each&&e.each(t)}},"string"==typeof t&&(t=document.querySelectorAll(t)),n(t,o,i)},h=function(t){var e=[];t?"string"==typeof t?e=document.querySelectorAll(t):void 0!==t.length?e=t:"object"==typeof t&&e.push(t):e=document.querySelectorAll("svg.iconic"),Array.prototype.forEach.call(e,function(t){t instanceof SVGSVGElement&&(t.update&&t.update(),i.refresh(t),o.refresh(t))})},d=function(){u.debug&&console.time&&console.time("autoInjectSelector - "+u.autoInjectSelector);var t=l;f(u.autoInjectSelector,{},function(){if(u.debug&&console.timeEnd&&console.timeEnd("autoInjectSelector - "+u.autoInjectSelector),s.debug("AutoInjected: "+(l-t)),i.refreshAll(),u.autoInjectDone&&"function"==typeof u.autoInjectDone){var e=l-t;u.autoInjectDone(e)}})},p=function(t){t&&""!==t&&"complete"!==document.readyState?document.addEventListener("DOMContentLoaded",d):document.removeEventListener("DOMContentLoaded",d)},m=function(t){return t=t||{},r(u,t),p(u.autoInjectSelector),s.enableDebug(u.debug),window._Iconic?window._Iconic:{inject:f,update:h,smartIconApis:c,svgInjectedCount:l}};e.exports=m,window._Iconic=new m({autoInjectSelector:"img.iconic",evalScripts:"once",pngFallback:!1,each:null,autoInjectDone:null,debug:!1})},{"./modules/container":2,"./modules/extend":3,"./modules/log":4,"./modules/polyfills":5,"./modules/position":6,"./modules/responsive":7,"./modules/svg-injector":8}],2:[function(t,e){var n=function(t){var e=t.getAttribute("class").split(" "),n=-1!==e.indexOf("iconic-fluid"),r=[],i=["iconic-bg"];Array.prototype.forEach.call(e,function(t){switch(t){case"iconic-sm":case"iconic-md":case"iconic-lg":r.push(t),n||i.push(t.replace(/-/,"-bg-"));break;case"iconic-fluid":r.push(t),i.push(t.replace(/-/,"-bg-"));break;case"iconic-bg-circle":case"iconic-bg-rounded-rect":case"iconic-bg-badge":i.push(t);break;default:r.push(t)}}),t.setAttribute("class",r.join(" "));var o=t.parentNode,a=Array.prototype.indexOf.call(o.childNodes,t),s=document.createElement("span");s.setAttribute("class",i.join(" ")),s.appendChild(t),o.insertBefore(s,o.childNodes[a])};e.exports={addBackground:n}},{}],3:[function(t,e){e.exports=function(t){return Array.prototype.forEach.call(Array.prototype.slice.call(arguments,1),function(e){if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])}),t}},{}],4:[function(t,e){var n=!1,r=function(t){console&&console.log&&console.log(t);
-},i=function(t){r("Iconic INFO: "+t)},o=function(t){r("Iconic WARNING: "+t)},a=function(t){n&&r("Iconic DEBUG: "+t)},s=function(t){n=t};e.exports={info:i,warn:o,debug:a,enableDebug:s}},{}],5:[function(){Array.prototype.forEach||(Array.prototype.forEach=function(t,e){"use strict";if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)}),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var t=[],e=function(e,n){var r=this,i=function(t){t.target=t.srcElement,t.currentTarget=r,n.handleEvent?n.handleEvent(t):n.call(r,t)};if("DOMContentLoaded"==e){var o=function(t){"complete"==document.readyState&&i(t)};if(document.attachEvent("onreadystatechange",o),t.push({object:this,type:e,listener:n,wrapper:o}),"complete"==document.readyState){var a=new Event;a.srcElement=window,o(a)}}else this.attachEvent("on"+e,i),t.push({object:this,type:e,listener:n,wrapper:i})},n=function(e,n){for(var r=0;r<t.length;){var i=t[r];if(i.object==this&&i.type==e&&i.listener==n){"DOMContentLoaded"==e?this.detachEvent("onreadystatechange",i.wrapper):this.detachEvent("on"+e,i.wrapper);break}++r}};Element.prototype.addEventListener=e,Element.prototype.removeEventListener=n,HTMLDocument&&(HTMLDocument.prototype.addEventListener=e,HTMLDocument.prototype.removeEventListener=n),Window&&(Window.prototype.addEventListener=e,Window.prototype.removeEventListener=n)}}()},{}],6:[function(t,e){var n=function(t){var e=t.getAttribute("data-position");if(e&&""!==e){var n,r,i,o,a,s,u,c=t.getAttribute("width"),l=t.getAttribute("height"),f=e.split("-"),h=t.querySelectorAll("g.iconic-container");Array.prototype.forEach.call(h,function(t){if(n=t.getAttribute("data-width"),r=t.getAttribute("data-height"),n!==c||r!==l){if(i=t.getAttribute("transform"),o=1,i){var e=i.match(/scale\((\d)/);o=e&&e[1]?e[1]:1}a=Math.floor((c/o-n)/2),s=Math.floor((l/o-r)/2),Array.prototype.forEach.call(f,function(t){switch(t){case"top":s=0;break;case"bottom":s=l/o-r;break;case"left":a=0;break;case"right":a=c/o-n;break;case"center":break;default:console&&console.log&&console.log("Unknown position: "+t)}}),u=0===s?a:a+" "+s,u="translate("+u+")",i?/translate/.test(i)?i=i.replace(/translate\(.*?\)/,u):i+=" "+u:i=u,t.setAttribute("transform",i)}})}};e.exports={refresh:n}},{}],7:[function(t,e){var n=/(iconic-sm\b|iconic-md\b|iconic-lg\b)/,r=function(t,e){var n="undefined"!=typeof window.getComputedStyle&&window.getComputedStyle(t,null).getPropertyValue(e);return!n&&t.currentStyle&&(n=t.currentStyle[e.replace(/([a-z])\-([a-z])/,function(t,e,n){return e+n.toUpperCase()})]||t.currentStyle[e]),n},i=function(t){var e=t.style.display;t.style.display="block";var n=parseFloat(r(t,"width").slice(0,-2)),i=parseFloat(r(t,"height").slice(0,-2));return t.style.display=e,{width:n,height:i}},o=function(){var t="/* Iconic Responsive Support Styles */\n.iconic-property-fill, .iconic-property-text {stroke: none !important;}\n.iconic-property-stroke {fill: none !important;}\nsvg.iconic.iconic-fluid {height:100% !important;width:100% !important;}\nsvg.iconic.iconic-sm:not(.iconic-size-md):not(.iconic-size-lg), svg.iconic.iconic-size-sm{width:16px;height:16px;}\nsvg.iconic.iconic-md:not(.iconic-size-sm):not(.iconic-size-lg), svg.iconic.iconic-size-md{width:32px;height:32px;}\nsvg.iconic.iconic-lg:not(.iconic-size-sm):not(.iconic-size-md), svg.iconic.iconic-size-lg{width:128px;height:128px;}\nsvg.iconic-sm > g.iconic-md, svg.iconic-sm > g.iconic-lg, svg.iconic-md > g.iconic-sm, svg.iconic-md > g.iconic-lg, svg.iconic-lg > g.iconic-sm, svg.iconic-lg > g.iconic-md {display: none;}\nsvg.iconic.iconic-icon-sm > g.iconic-lg, svg.iconic.iconic-icon-md > g.iconic-lg {display:none;}\nsvg.iconic-sm:not(.iconic-icon-md):not(.iconic-icon-lg) > g.iconic-sm, svg.iconic-md.iconic-icon-sm > g.iconic-sm, svg.iconic-lg.iconic-icon-sm > g.iconic-sm {display:inline;}\nsvg.iconic-md:not(.iconic-icon-sm):not(.iconic-icon-lg) > g.iconic-md, svg.iconic-sm.iconic-icon-md > g.iconic-md, svg.iconic-lg.iconic-icon-md > g.iconic-md {display:inline;}\nsvg.iconic-lg:not(.iconic-icon-sm):not(.iconic-icon-md) > g.iconic-lg, svg.iconic-sm.iconic-icon-lg > g.iconic-lg, svg.iconic-md.iconic-icon-lg > g.iconic-lg {display:inline;}";navigator&&navigator.userAgent&&/MSIE 10\.0/.test(navigator.userAgent)&&(t+="svg.iconic{zoom:1.0001;}");var e=document.createElement("style");e.id="iconic-responsive-css",e.type="text/css",e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t)),(document.head||document.getElementsByTagName("head")[0]).appendChild(e)},a=function(t){if(/iconic-fluid/.test(t.getAttribute("class"))){var e,r=i(t),o=t.viewBox.baseVal.width/t.viewBox.baseVal.height;e=1===o?Math.min(r.width,r.height):1>o?r.width:r.height;var a;a=32>e?"iconic-sm":e>=32&&128>e?"iconic-md":"iconic-lg";var s=t.getAttribute("class"),u=n.test(s)?s.replace(n,a):s+" "+a;t.setAttribute("class",u)}},s=function(){var t=document.querySelectorAll(".injected-svg.iconic-fluid");Array.prototype.forEach.call(t,function(t){a(t)})};document.addEventListener("DOMContentLoaded",function(){o()}),window.addEventListener("resize",function(){s()}),e.exports={refresh:a,refreshAll:s}},{}],8:[function(e,n,r){!function(e,i){"use strict";function o(t){t=t.split(" ");for(var e={},n=t.length,r=[];n--;)e.hasOwnProperty(t[n])||(e[t[n]]=1,r.unshift(t[n]));return r.join(" ")}var a="file:"===e.location.protocol,s=i.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),u=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)},c={},l=0,f=[],h=[],d={},p=function(t){return t.cloneNode(!0)},m=function(t,e){h[t]=h[t]||[],h[t].push(e)},v=function(t){for(var e=0,n=h[t].length;n>e;e++)!function(e){setTimeout(function(){h[t][e](p(c[t]))},0)}(e)},g=function(t,n){if(void 0!==c[t])c[t]instanceof SVGSVGElement?n(p(c[t])):m(t,n);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;c[t]={},m(t,n);var r=new XMLHttpRequest;r.onreadystatechange=function(){if(4===r.readyState){if(404===r.status||null===r.responseXML)return n("Unable to load SVG file: "+t),a&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===r.status||a&&0===r.status))return n("There was a problem injecting the SVG: "+r.status+" "+r.statusText),!1;if(r.responseXML instanceof Document)c[t]=r.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var i=new DOMParser;e=i.parseFromString(r.responseText,"text/xml")}catch(o){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;c[t]=e.documentElement}v(t)}},r.open("GET",t),r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()}},$=function(t,n,r,i){var a=t.getAttribute("data-src")||t.getAttribute("src");if(!/svg$/i.test(a))return void i("Attempted to inject a file with a non-svg extension: "+a);if(!s){var c=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(c?(t.setAttribute("src",c),i(null)):r?(t.setAttribute("src",r+"/"+a.split("/").pop().replace(".svg",".png")),i(null)):i("This browser does not support SVG and no PNG fallback was defined."))}-1===f.indexOf(t)&&(f.push(t),t.setAttribute("src",""),g(a,function(r){if("undefined"==typeof r||"string"==typeof r)return i(r),!1;var s=t.getAttribute("id");s&&r.setAttribute("id",s);var c=t.getAttribute("title");c&&r.setAttribute("title",c);var h=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",o(h));var p=t.getAttribute("style");p&&r.setAttribute("style",p);var m=[].filter.call(t.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});u.call(m,function(t){t.name&&t.value&&r.setAttribute(t.name,t.value)});for(var v,g=r.querySelectorAll("defs clipPath[id]"),$=0,y=g.length;y>$;$++){v=g[$].id+"-"+l;for(var b=r.querySelectorAll('[clip-path*="'+g[$].id+'"]'),w=0,_=b.length;_>w;w++)b[w].setAttribute("clip-path","url(#"+v+")");g[$].id=v}r.removeAttribute("xmlns:a");for(var x,C,E=r.querySelectorAll("script"),k=[],A=0,S=E.length;S>A;A++)C=E[A].getAttribute("type"),C&&"application/ecmascript"!==C&&"application/javascript"!==C||(x=E[A].innerText||E[A].textContent,k.push(x),r.removeChild(E[A]));if(k.length>0&&("always"===n||"once"===n&&!d[a])){for(var T=0,O=k.length;O>T;T++)new Function(k[T])(e);d[a]=!0}t.parentNode.replaceChild(r,t),delete f[f.indexOf(t)],t=null,l++,i(r)}))},y=function(t,e,n){e=e||{};var r=e.evalScripts||"always",i=e.pngFallback||!1,o=e.each;if(void 0!==t.length){var a=0;u.call(t,function(e){$(e,r,i,function(e){o&&"function"==typeof o&&o(e),n&&t.length===++a&&n(a)})})}else t?$(t,r,i,function(e){o&&"function"==typeof o&&o(e),n&&n(1),t=null}):n&&n(0)};"object"==typeof n&&"object"==typeof n.exports?n.exports=r=y:"function"==typeof t&&t.amd?t(function(){return y}):"object"==typeof e&&(e.SVGInjector=y)}(window,document)},{}]},{},[1])(1)}),function(){"use strict";function t(){function t(t,e){e?t.addClass(a):t.removeClass(a)}function e(t,e,r,u){function c(){h(t),p(),t[0].style.transitionDuration="",t.removeClass($?"":a),d(),m=!1}function l(t){h(t),angular.element(t).off(s.join(" ")),m=!1}function f(t){var e={el:t,animation:v},r=n.filter(function(e){return e.el===t});if(r.length>0){var i=r[0].el[0];r[0].animation.cancelAnimation(i)}n.push(e)}function h(t){var e;n.filter(function(n,r){n.el===t&&(e=r)});e>=0&&n.splice(e,1)}function d(){return t[0].offsetWidth}function p(){t[0].style.transitionDuration=0,t.removeClass(i.join(" ")+" "+o.join(" ")+" "+r+" "+u)}var m=!0,v=this;v.cancelAnimation=l;var g=e?r:u,$=e,y=$?i[0]:i[1],b=$?o[0]:o[1];f(t),p(),t.addClass(g),t.addClass(y),t.addClass(a),d(),t[0].style.transitionDuration="",t.addClass(b),t.one(s.join(" "),function(){c()}),setTimeout(function(){m&&c()},3e3)}var n=[],r={},i=["ng-enter","ng-leave"],o=["ng-enter-active","ng-leave-active"],a="is-active",s=["webkitAnimationEnd","mozAnimationEnd","MSAnimationEnd","oanimationend","animationend","webkitTransitionEnd","otransitionend","transitionend"];return r.animate=e,r.toggleAnimation=t,r}angular.module("foundation.core.animation",[]).service("FoundationAnimation",t)}(),function(){"use strict";function t(t){function e(t,e){return l[t]||(l[t]=[]),l[t].push(e),!0}function n(t,e){void 0!==l[t]&&delete l[t],"function"==typeof e&&e.call(this)}function r(t,e){l[t]||(l[t]=[]),l[t].forEach(function(t){t(e)})}function i(){return f}function o(t){return f=angular.extend(f,t)}function a(){var t="";do{t+="zf-uuid-";for(var e=0;15>e;e++)t+=Math.floor(16*Math.random()).toString(16)}while(!h.indexOf(t));return h.push(t),t}function s(e,n){t.toggleAnimate(e,n)}function u(t){var e=this;t=t||{};var n=document.querySelectorAll(".is-active[zf-closable]"),r=document.querySelectorAll("[zf-closable] > .is-active");n.length&&angular.forEach(n,function(n){t.exclude!==n.id&&e.publish(n.id,"close")}),r.length&&angular.forEach(r,function(n){var r=n.parentNode.id;t.exclude!==r&&e.publish(r,"close")})}function c(e,n,r,i){t.animate(e,n,r,i)}var l={},f={},h=[],d={};return d.subscribe=e,d.unsubscribe=n,d.publish=r,d.getSettings=i,d.modifySettings=o,d.generateUuid=a,d.toggleAnimate=s,d.closeActiveElements=u,d.animate=c,d}function e(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function n(){function t(t,e){var n=null;return function(){var r=this,i=arguments;null===n&&(n=setTimeout(function(){t.apply(r,i),n=null},e))}}var e={};return e.throttle=t,e}angular.module("foundation.core",["foundation.core.animation"]).service("FoundationApi",t).service("FoundationAdapter",e).factory("Utils",n),t.$inject=["FoundationAnimation"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t,e){function n(n,r){function i(t,e,n,r,i){if(r.animation){if(!r.animation.leave&&!e.animation.leave)return;o(t,e,r)}}function o(t,e,n){p?(f(),r.addClass(n.animation.leave)):(l(),f(),r.removeClass(n.animation.leave))}function a(){d.leave&&r.removeClass(d.leave),l()}function s(){l(),e.includes(c())&&d.enter&&r.addClass(d.enter)}function u(t){t.targetScope===n&&d.enter&&r.removeClass(d.enter),p=!0}function c(){var t=r.data("$uiView"),e=t&&t.state&&t.state.self;return e&&angular.extend(d,e.animation),e}function l(){r.parent().removeClass("position-absolute"),h!==!0&&(r.parent()[0].style.height=null)}function f(){var t=parseInt(r.parent()[0].style.height),e=parseInt(window.getComputedStyle(r[0],null).getPropertyValue("height")),n=t>0?t:e>0?e:"";t>0&&(h=!0),r.parent()[0].style.height=n+"px",r.parent().addClass("position-absolute")}var h,d={},p=!1,m=[t.$on("$stateChangeStart",i),t.$on("$stateChangeError",a),n.$on("$stateChangeSuccess",s),n.$on("$viewContentAnimationEnded",u)],v=n.$on("$destroy",function(){angular.forEach(m,function(t){angular.isFunction(t)&&t()}),v()})}var r={restrict:"ECA",priority:-400,link:n};return r}angular.module("foundation.dynamicRouting.animations",["foundation.dynamicRouting"]).directive("uiView",t),t.$inject=["$rootScope","$state"]}(),function(){"use strict";function t(t){function e(t){var e={vars:{}};return t.data&&("object"==typeof t.data.vars&&(e.vars=t.data.vars),delete t.data.vars,angular.extend(e,t.data)),delete t.data,angular.extend(e.vars,t),e}function n(t,e){return{templateUrl:t,controller:r(e)}}function r(t){var e=t.controller||"DefaultController";return/\w\s+as\s+\w/.test(e)||(e+=" as PageCtrl"),e}function i(t){var e={};return t.animationIn&&(e.enter=t.animationIn),t.animationOut&&(e.leave=t.animationOut),e}var o={};this.registerDynamicRoutes=function(a){var s=a||foundationRoutes;angular.forEach(s,function(n){if(n.hasComposed)angular.isDefined(o[n.parent])||(o[n.parent]={children:{}}),n.controller&&(n.controller=r(n)),o[n.parent].children[n.name]=n;else if(n.composed)angular.isDefined(o[n.name])||(o[n.name]={children:{}}),n.controller&&(n.controller=r(n)),angular.extend(o[n.name],n);else{var a={url:n.url,templateUrl:n.path,"abstract":n["abstract"]||!1,parent:n.parent||"",controller:r(n),data:e(n),animation:i(n)};t.state(n.name,a)}}),angular.forEach(o,function(r){var o={url:r.url,parent:r.parent||"","abstract":r["abstract"]||!1,data:e(r),animation:i(r),views:{"":n(r.path,r)}};angular.forEach(r.children,function(t){o.views[t.name+"@"+r.name]=n(t.path,r)}),t.state(r.name,o)})},this.$get=angular.noop}function e(t,e,n){var r={};angular.forEach(e,function(t,e){r[e]=t}),t.params=r,t.current=n.current.name,n.current.views?(t.vars=n.current.data.vars,t.composed=n.current.data.vars.children):t.vars=n.current.data.vars}function n(t){t.registerDynamicRoutes(foundationRoutes)}function r(t,e,n){t.$state=e,t.$stateParams=n}angular.module("foundation.dynamicRouting",["ui.router"]).provider("$FoundationState",t).controller("DefaultController",e).config(n).run(r),t.$inject=["$stateProvider"],e.$inject=["$scope","$stateParams","$state"],n.$inject=["$FoundationStateProvider"],r.$inject=["$rootScope","$state","$stateParams"]}(),function(){"use strict";function t(t){t.init()}function e(t,e,n){function r(){var r,i;t.headerHelper(["foundation-mq"]),i=t.getStyle(".foundation-mq","font-family"),r=t.parseStyleToObject(i);for(var a in r)r[a]="only screen and (min-width: "+r[a].replace("rem","em")+")";e.modifySettings({mediaQueries:angular.extend(r,o)}),window.addEventListener("resize",n.throttle(function(){e.publish("resize","window resized")},50))}var i={},o={"default":"only screen",landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"};return i.init=r,i}function n(){function t(t){for(var e=t.length,n=angular.element(document.querySelectorAll("head"));e--;)n.append('<meta class="'+t[e]+'" />')}function e(t,e){var n=document.querySelectorAll(t)[0],r=window.getComputedStyle(n,null);return r.getPropertyValue("font-family")}function n(t){var e={};return"string"!=typeof t?e:(t=t.trim().slice(1,-1))?e=t.split("&").reduce(function(t,e){var n=e.replace(/\+/g," ").split("="),r=n[0],i=n[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),t.hasOwnProperty(r)?Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i,t},{}):e}var r={};return r.headerHelper=t,r.getStyle=e,r.parseStyleToObject=n,r}function r(t){function e(){return t.getSettings().mediaQueries}function n(t){var e=t.length,n=i.getMediaQueries(),r=[];if(e>0)for(;e--;){var o,a=t[e].media;o=n[a]?matchMedia(n[a]):matchMedia(a),o.matches&&r.push({ind:e})}return r}function r(t){var e=[],n=[],r=t.children(),i=0;return angular.forEach(r,function(t){var r=angular.element(t);r.attr("src")&&r.attr("src").match(/.html$/)?e[i]={media:r.attr("media"),src:r.attr("src")}:(n[i]=r,e[i]={media:r.attr("media"),templ:i}),i++}),{scenarios:e,templates:n}}var i=[];return i.getMediaQueries=e,i.match=n,i.collectScenariosFromElement=r,i}angular.module("foundation.mediaquery",["foundation.core"]).run(t).factory("FoundationMQInit",e).factory("mqHelpers",n).service("FoundationMQ",r),t.$inject=["FoundationMQInit"],e.$inject=["mqHelpers","FoundationApi","Utils"],r.$inject=["FoundationApi"]}(),angular.module("markdown",[]).directive("markdown",function(){return{restrict:"A",link:function(t,e,n,r){e.html(marked(e.html()))}}}),function(){var t={};angular.forEach(["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke"],function(e){t[e]=["$rootScope","$location","$interpolate","$sniffer","urlResolve","computeSVGAttrValue","svgAttrExpressions",function(t,n,r,i,o,a,s){return{restrict:"A",link:function(r,o,u){function c(){var t=a(l);t&&u[e]!==t&&u.$set(e,t)}var l;s.SVG_ELEMENT.test(o[0]&&o[0].toString())&&n.$$html5&&i.history&&(l=u[e],u.$observe(e,c),t.$on("$locationChangeSuccess",c))}}}]}),angular.module("ngSVGAttributes",[]).factory("urlResolve",[function(){var t=document.createElement("a");return function(e){return t.setAttribute("href",e),t}}]).value("svgAttrExpressions",{FUNC_URI:/^url\((.*)\)$/,SVG_ELEMENT:/SVG[a-zA-Z]*Element/,HASH_PART:/#.*/}).factory("computeSVGAttrValue",["$location","$sniffer","svgAttrExpressions","urlResolve",function(t,e,n,r){return function(e){var i,o;return(i=n.FUNC_URI.exec(e))&&(o=0===i[1].indexOf("#")?t.absUrl().replace(n.HASH_PART,"")+i[1]:r(i[1])),o?"url("+o+")":null}}]).directive(t)}(),function(){"use strict";function t(t){var e=this,n=e.sections=t.sections=[],r=(e.multiOpen=t.multiOpen=t.multiOpen||!1,e.collapsible=t.collapsible=t.multiOpen||t.collapsible||!0),i=e.autoOpen=t.autoOpen=t.autoOpen||!0;e.select=function(t){n.forEach(function(n){e.multiOpen?n.scope===t&&(n.scope.active=!n.scope.active):n.scope===t?n.scope.active=r?!n.scope.active:!0:n.scope.active=!1})},e.addSection=function(t){n.push({scope:t}),1===n.length&&i===!0&&(n[0].active=!0,n[0].scope.active=!0)},e.closeAll=function(){n.forEach(function(t){t.scope.active=!1})}}function e(){function t(t,e,n,r){t.multiOpen=r.multiOpen="true"===t.multiOpen?!0:!1,t.collapsible=r.collapsible="true"===t.collapsible?!0:!1,t.autoOpen=r.autoOpen="true"===t.autoOpen?!0:!1}var e={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/accordion/accordion.html",controller:"ZfAccordionController",scope:{multiOpen:"@?",collapsible:"@?",autoOpen:"@?"},link:t};return e}function n(){function t(t,e,n,r,i){t.active=!1,r.addSection(t),t.activate=function(){r.select(t)}}var e={restrict:"EA",templateUrl:"components/accordion/accordion-item.html",transclude:!0,scope:{title:"@"},require:"^zfAccordion",replace:!0,controller:function(){},link:t};return e}angular.module("foundation.accordion",[]).controller("ZfAccordionController",t).directive("zfAccordion",e).directive("zfAccordionItem",n),t.$inject=["$scope"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(t){var e=t.target,n=!1;do if(e.classList&&e.classList.contains("action-sheet-container")){n=!0;break}while(e=e.parentNode);if(!n){if(t.target.attributes["zf-toggle"]||t.target.attributes["zf-hard-toggle"])return;r()}}function r(){a.hide(),s.hide(),a.$apply(),s.$apply()}function i(){a.toggle(),s.toggle(),a.$apply(),s.$apply()}var o=this,a=o.content=t.content,s=o.container=t.container;angular.element(document.body);o.registerContent=function(t){a=t,a.active=!1},o.registerContainer=function(t){s=t,s.active=!1},o.toggle=i,o.hide=r,o.registerListener=function(){document.body.addEventListener("click",n)},o.deregisterListener=function(){document.body.removeEventListener("click",n)}}function n(t){function e(){function e(t,e,n){n.$set("zf-closable","actionsheet")}function n(e,n,r,i){var o=r.id||t.generateUuid();r.$set("id",o),e.active=!1,t.subscribe(o,function(t){"toggle"===t&&i.toggle(),("hide"===t||"close"===t)&&i.hide()}),i.registerContainer(e),e.toggle=function(){e.active=!e.active},e.hide=function(){e.active=!1}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet.html",controller:"ZfActionSheetController",compile:e};return n}function r(t){function e(t,e,n,r){t.active=!1,t.position=t.position||"bottom",r.registerContent(t),t.toggle=function(){t.active=!t.active,t.active?r.registerListener():r.deregisterListener()},t.hide=function(){t.active=!1,r.deregisterListener()}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-content.html",require:"^zfActionSheet",scope:{position:"@?"},link:e};return n}function i(t){function e(t,e,n,r){e.on("click",function(t){r.toggle(),t.preventDefault()})}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-button.html",require:"^zfActionSheet",scope:{title:"@?"},link:e};return n}angular.module("foundation.actionsheet",["foundation.core"]).controller("ZfActionSheetController",e).directive("zfActionSheet",n).directive("zfAsContent",r).directive("zfAsButton",i).service("FoundationActionSheet",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e,n,r){var i="";if(r.zfClose)i=r.zfClose;else{for(var o=!1,a=n.parent();o===!1;)"BODY"==a[0].nodeName&&(o=""),"undefined"!=typeof a.attr("zf-closable")&&a.attr("zf-closable")!==!1&&(o=a),a=a.parent();i=o.attr("id")}n.on("click",function(e){t.publish(i,"close"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function e(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfOpen,"open"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function n(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function r(t){function e(e,n,r){n.on("keyup",function(e){27===e.keyCode&&t.closeActiveElements(),e.preventDefault()})}var n={restrict:"A",link:e};return n}function i(t){function e(e,n,r){var i,o;switch(Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),r.zfSwipeClose){case"right":i="swiperight";break;case"left":i="swipeleft";break;case"up":i="swipeup";break;case"down":i="swipedown";break;default:i="swipe"}o.on(i,function(){t.publish(r.id,"close")})}var n={restrict:"A",link:e};return n}function o(t){function e(e,n,r){n.on("click",function(e){t.closeActiveElements({exclude:r.zfHardToggle}),t.publish(r.zfHardToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.common",["foundation.core"]).directive("zfClose",t).directive("zfOpen",e).directive("zfToggle",n).directive("zfEscClose",r).directive("zfSwipeClose",i).directive("zfHardToggle",o),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"]}(),function(){"use strict";function t(){var t="assets/img/iconic/";this.setAssetPath=function(e){t=angular.isString(e)?e:t},this.$get=function(){function e(){return r}function n(){return t}var r=new IconicJS,i={getAccess:e,getAssetPath:n};return i}}function e(t,e,n){function r(){function r(e,n,r){if(a=e.iconDir?e.iconDir:t.getAssetPath(),"/"!==a.charAt(a.length-1)&&(a+="/"),e.dynSrc?r.$set("data-src",e.dynSrc):e.dynIcon?r.$set("data-src",a+e.dynIcon+".svg"):e.icon?r.$set("data-src",a+e.icon+".svg"):r.$set("data-src",r.src),!n.hasClass("iconic-sm")&&!n.hasClass("iconic-md")&&!n.hasClass("iconic-lg")){var i;switch(e.size){case"small":i="iconic-sm";break;case"medium":i="iconic-md";break;case"large":i="iconic-lg";break;default:i="iconic-fluid"}n.addClass(i)}o=n[0].outerHTML}function i(r,i,s){function u(t){l&&(l.empty(),l.append(angular.element(o)),l.attr("data-src",t),c(l[0]))}function c(t){f.inject(t,{each:function(t){var e=angular.element(t);l=n(e)(e.scope())}})}var l,f=t.getAccess();c(i[0]),e.subscribe("resize",function(){f.update(i[0])}),r.dynSrc&&r.$watch("dynSrc",function(t,e){t&&t!==e&&u(r.dynSrc)}),r.dynIcon&&r.$watch("dynIcon",function(t,e){t&&t!==e&&u(a+r.dynIcon+".svg")})}var o,a;return{pre:r,post:i}}var i={restrict:"A",template:"<img ng-transclude>",transclude:!0,replace:!0,scope:{dynSrc:"=?",dynIcon:"=?",size:"@?",icon:"@",iconDir:"@?"},compile:r};return i}angular.module("foundation.iconic",[]).provider("Iconic",t).directive("zfIconic",e),e.$inject=["Iconic","FoundationApi","$compile"]}(),function(){"use strict";function t(t,e,n,r,i){function o(o,a,s,u,c){function l(t){return e.get(t,{cache:n})}function f(t){var e=i.collectScenariosFromElement(t);m=e.scenarios,v=e.templates}function h(t){return!p||p!==t}var d,p,m,v;i.getMediaQueries();r.subscribe("resize",function(e){c(function(e,n){m&&v||f(e);var r=i.match(m),o=0===r.length?null:m[r[0].ind];if(o&&h(o)){if(d&&(d.$destroy(),d=null),"undefined"!=typeof o.templ){d=n;var s=document.createElement("div");s.appendChild(v[o.templ][0]),a.html(s.innerHTML),t(a.contents())(d),p=o}else{var u=l(o.src);u.success(function(t){d=n,a.html(t)}).then(function(){t(a.contents())(d),p=o})}}})}),r.publish("resize","initial resize")}var a={restrict:"EA",transclude:"element",scope:{position:"@"},replace:!0,template:"<div></div>",link:o};return a}angular.module("foundation.interchange",["foundation.core","foundation.mediaquery"]).directive("zfInterchange",t),t.$inject=["$compile","$http","$templateCache","FoundationApi","FoundationMQ"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}function i(t){return new e(t)}var o={};return o.activate=n,o.deactivate=r,o.newModal=i,o}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a)}function o(e,n,r){function i(){e.overlay||n.css("background","transparent"),t.animate(n,e.active,c,l),t.animate(a,e.active,s,u)}function o(){e.active&&e.show()}var a=angular.element(n.children()[0]);e.active=e.active||!1,e.overlay="false"===r.overlay?!1:!0,e.overlayClose="false"===r.overlayClose?!1:!0;var s=r.animationIn||"fadeIn",u=r.animationOut||"fadeOut",c="fadeIn",l="fadeOut";e.hideOverlay=function(){e.overlayClose&&e.hide()},e.hide=function(){e.active=!1,i()},e.show=function(){e.active=!0,i(),a.tabIndex=-1,a[0].focus()},e.toggle=function(){e.active=!e.active,i()},o(),t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root&&!e.$root.$$phase&&e.$apply()})}var a="modal";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/modal/modal.html",transclude:!0,scope:!0,replace:!0,compile:e};return n}function n(t,e,n,r,i,o,a){function s(s){function u(){if(C)throw"Error: Modal was destroyed. Delete the object and create a new ModalFactory instance."}function c(){u(),i(function(){h(!0),a.publish(_,"show")},0,!1)}function l(){u(),i(function(){h(!1),a.publish(_,"hide")},0,!1)}function f(){u(),i(function(){h(!0),a.publish(_,"toggle")},0,!1)}function h(t){o.when(g).then(function(){if(!x&&m.length>0){w.append(v);$.active=t,r(v)($),x=!0}})}function d(){if(!document.getElementById(_)){m='<zf-modal id="'+_+'">'+m+"</zf-modal>",v=angular.element(m),$=n.$new();for(var t=0;t<E.length;t++){var e=E[t];if(s[e])switch(e){case"animationIn":v.attr("animation-in",s[e]);break;case"animationOut":v.attr("animation-out",s[e]);break;default:v.attr(e,s[e])}}if(s.contentScope){y=s.contentScope;for(var e in s.contentScope)s.contentScope.hasOwnProperty(e)&&($[e]=s.contentScope[e])}}}function p(){b.deactivate(),setTimeout(function(){$.$destroy(),v.remove(),C=!0},3e3),a.unsubscribe(_)}var m,v,g,$,y,b=this,w=angular.element(s.container||document.body),_=s.id||a.generateUuid(),x=!1,C=!1,E=["animationIn","animationOut","overlay","overlayClose"];return s.templateUrl?g=t.get(s.templateUrl,{cache:e}).then(function(t){m=t.data,d()}):s.template&&(g=!0,m=s.template,d()),b.activate=c,b.deactivate=l,b.toggle=f,b.destroy=p,{activate:c,deactivate:l,toggle:f,destroy:p}}return s}angular.module("foundation.modal",["foundation.core"]).directive("zfModal",e).factory("ModalFactory",n),t.$inject=["FoundationApi","ModalFactory"],e.$inject=["FoundationApi"],n.$inject=["$http","$templateCache","$rootScope","$compile","$timeout","$q","FoundationApi"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}var i={};return i.activate=n,i.deactivate=r,i}function e(t,e){var n=this;n.notifications=t.notifications=t.notifications||[],n.addNotification=function(n){var r=e.generateUuid();n.id=r,t.notifications.push(n)},n.removeNotification=function(e){t.notifications.forEach(function(n){if(n.id===e){var r=t.notifications.indexOf(n);t.notifications.splice(r,1)}})},n.clearAll=function(){for(;t.notifications.length>0;)t.notifications.pop()}}function n(t){function e(e,n,r,i){e.position=e.position?e.position.split(" ").join("-"):"top-right",t.subscribe(r.id,function(t){"clearall"===t?i.clearAll():(i.addNotification(t),e.$root.$$phase||e.$apply())})}var n={restrict:"EA",templateUrl:"components/notification/notification-set.html",controller:"ZfNotificationController",replace:!0,scope:{position:"@"},link:e};return n}function r(t){function e(){function e(t,e,n){n.$set("zf-closable","notification")}function n(e,n,r,i){e.active=!1;var o,a=r.animationIn||"fadeIn",s=r.animationOut||"fadeOut";setTimeout(function(){e.active=!0,t.animate(n,e.active,a,s)},50),e.hide=function(){e.active=!1,t.animate(n,e.active,a,s),setTimeout(function(){i.removeNotification(e.notifId)},50)},e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose)),Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),o.on("swipe",function(){e.active&&e.hide()})}return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification.html",replace:!0,transclude:!0,require:"^zfNotificationSet",controller:function(){},scope:{title:"=?",content:"=?",image:"=?",notifId:"=",color:"=?",autoclose:"=?"},compile:e};return n}function i(t){function e(){function e(t,e,n,i){n.$set("zf-closable",r)}function n(e,n,r,i){e.position=r.position?r.position.split(" ").join("-"):"top-right";var o=r.animationIn||"fadeIn",a=r.animationOut||"fadeOut";t.subscribe(r.id,function(r){"show"==r||"open"==r?(e.show(),e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose))):"close"==r||"hide"==r?e.hide():"toggle"==r&&(e.toggle(),
-e.autoclose&&setTimeout(function(){e.active&&e.toggle()},parseInt(e.autoclose))),t.animate(n,e.active,o,a),e.$apply()}),e.hide=function(){e.active=!1,t.animate(n,e.active,o,a)},e.show=function(){e.active=!0,t.animate(n,e.active,o,a)},e.toggle=function(){e.active=!e.active,t.animate(n,e.active,o,a)}}var r="notification";return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification-static.html",replace:!0,transclude:!0,scope:{title:"@?",content:"@?",image:"@?",color:"@?",autoclose:"@?"},compile:e};return n}function o(t){function e(e,n,r,i){n.on("click",function(n){t.publish(r.zfNotify,{title:e.title,content:e.content,color:e.color,image:e.image,autoclose:e.autoclose}),n.preventDefault()})}var n={restrict:"A",scope:{title:"@?",content:"@?",color:"@?",image:"@?",autoclose:"@?"},link:e};return n}function a(t,e,n,r,i,o){function a(t){function e(){if(y)throw"Error: Notification Set was destroyed. Delete the object and create a new NotificationFactory instance."}function a(t){e(),i(function(){o.publish(g,t)},0,!1)}function s(){e(),i(function(){o.publish(g,"clearall")},0,!1)}function u(t){if(!$&&f.length>0){v.append(h);d.active=t,r(h)(d),$=!0}}function c(){if(!document.getElementById(g)){f='<zf-notification-set id="'+g+'"></zf-notification-set>',h=angular.element(f),d=n.$new();for(var e=0;e<b.length;e++)t[b[e]]&&h.attr(b[e],t[b[e]]);if(t.contentScope){p=t.contentScope;for(var r in p)p.hasOwnProperty(r)&&(d[r]=p[r])}u(!0)}}function l(){m.clearAll(),setTimeout(function(){d.$destroy(),h.remove(),y=!0},3e3),o.unsubscribe(g)}var f,h,d,p,m=this,v=angular.element(t.container||document.body),g=t.id||o.generateUuid(),$=!1,y=!1,b=["position"];return c(),m.addNotification=a,m.clearAll=s,m.destroy=l,{addNotification:a,clearAll:s,destroy:l}}return a}angular.module("foundation.notification",["foundation.core"]).controller("ZfNotificationController",e).directive("zfNotificationSet",n).directive("zfNotification",r).directive("zfNotificationStatic",i).directive("zfNotify",o).factory("NotificationFactory",a).service("FoundationNotification",t),t.$inject=["FoundationApi","NotificationFactory"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["$http","$templateCache","$rootScope","$compile","$timeout","FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a),document.body.classList.add("has-off-canvas")}function o(e,n,r){e.position=e.position||"left",e.active=!1,t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root.$$phase||e.$apply()}),e.hide=function(){e.active=!1},e.show=function(){e.active=!0},e.toggle=function(){e.active=!e.active}}var a="offcanvas";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/offcanvas/offcanvas.html",transclude:!0,scope:{position:"@"},replace:!0,compile:e};return n}angular.module("foundation.offcanvas",["foundation.core"]).directive("zfOffcanvas",e).service("FoundationOffcanvas",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(n,r,i){function o(t,e,n,r){n.$set("zf-closable",s),t.position=t.position||"left",t.positionClass="panel-"+t.position}function a(n,r,i){n.active=!1;var o,a,s=t.getSettings().mediaQueries;"left"===n.position?(o=i.animationIn||"slideInRight",a=i.animationOut||"slideOutLeft"):"right"===n.position?(o=i.animationIn||"slideInLeft",a=i.animationOut||"slideOutRight"):"top"===n.position?(o=i.animationIn||"slideInDown",a=i.animationOut||"slideOutUp"):"bottom"===n.position&&(o=i.animationIn||"slideInUp",a=i.animationOut||"slideOutBottom"),t.subscribe(i.id,function(t){var i=e.getComputedStyle(r[0]).getPropertyValue("position");"absolute"===i&&("show"==t||"open"==t?n.show():"close"==t||"hide"==t?n.hide():"toggle"==t&&n.toggle(),n.$root.$$phase||n.$apply())}),n.hide=function(){n.active&&(n.active=!1,t.animate(r,n.active,o,a))},n.show=function(){n.active||(n.active=!0,t.animate(r,n.active,o,a))},n.toggle=function(){n.active=!n.active,t.animate(r,n.active,o,a)},r.on("click",function(e){var i=e.srcElement;!matchMedia(s.medium).matches&&i.href&&i.href.length>0&&(n.hide(),t.animate(r,n.active,o,a))})}var s="panel";return{pre:o,post:a}}var r={restrict:"EA",templateUrl:"components/panel/panel.html",transclude:!0,scope:{position:"@?"},replace:!0,compile:n};return r}angular.module("foundation.panel",["foundation.core"]).directive("zfPanel",e).service("FoundationPanel",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi","$window"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(){function e(t,e,n){n.$set("zf-closable","popup")}function n(e,n,r){function i(t){s||(e.target=e.target?document.getElementById(e.target):document.getElementById(t),u=new Tether({element:n[0],target:e.target,attachment:o,targetAttachment:a,enable:!1}),s=!0)}e.active=!1,e.target=e.target||!1;var o=e.pinTo||"top center",a=e.pinAt||"bottom center",s=!1,u={};t.subscribe(r.id,function(t){"show"===t[0]||"open"===t[0]?e.show(t[1]):"close"===t[0]||"hide"===t[0]?e.hide():"toggle"===t[0]&&e.toggle(t[1]),e.$apply()}),e.hide=function(){e.active=!1,i(),u.disable()},e.show=function(t){e.active=!0,i(t),u.enable()},e.toggle=function(t){e.active=!e.active,i(t),e.active?u.enable():u.disable()}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/popup/popup.html",scope:{pinTo:"@?",pinAt:"@?",target:"@?"},compile:e};return n}function n(t){function e(e,n,r){var i=r.zfPopupToggle,o=r.id||t.generateUuid();r.$set("id",o),n.on("click",function(e){t.publish(i,["toggle",o]),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.popup",["foundation.core"]).directive("zfPopup",e).directive("zfPopupToggle",n).service("FoundationPopup",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}var n={};return n.activate=e,n}function e(t,e){var n=this,r=n.tabs=t.tabs=[],i="";n.select=function(t){r.forEach(function(n){n.active=!1,n.scope.active=!1,n.scope===t&&(e.publish(i,["activate",n]),n.active=!0,n.scope.active=!0)})},n.addTab=function(t){r.push({scope:t,active:!1,parentContent:n.id}),1===r.length&&(r[0].active=!0,t.active=!0)},n.getId=function(){return i},n.setId=function(t){i=t}}function n(t){function e(e,n,r,i){e.id=r.id||t.generateUuid(),e.showTabContent="true"!==e.displaced,r.$set("id",e.id),i.setId(e.id);var o=function(){t.publish(e.id+"-tabs",e.tabs)};t.subscribe(e.id+"-get-tabs",function(){o()})}var n={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/tabs/tabs.html",controller:"ZfTabsController",scope:{displaced:"@?"},link:e};return n}function r(t){function e(e,n,r,i){e.tabs=e.tabs||[];var o=e.target;t.subscribe(o,function(t){if("activate"===t[0]){t[1];e.tabs.forEach(function(t){t.scope.active=!1,t.active=!1,t.scope.id===o&&(t.scope.active=!0,t.active=!0)})}}),0===e.tabs.length&&(t.subscribe(o+"-tabs",function(t){e.tabs=t}),t.publish(o+"-get-tabs",""))}var n={restrict:"A",transclude:"true",replace:!0,scope:{tabs:"=?",target:"@"},templateUrl:"components/tabs/tab-content.html",link:e};return n}function i(t){function e(e,n,r,i,o){e.id=r.id||t.generateUuid(),e.active=!1,e.transcludeFn=o,i.addTab(e),t.subscribe(e.id,function(t){("show"===t||"open"===t||"activate"===t)&&e.makeActive()}),e.makeActive=function(){i.select(e)}}var n={restrict:"EA",templateUrl:"components/tabs/tab.html",transclude:!0,scope:{title:"@"},require:"^zfTabs",replace:!0,link:e};return n}function o(t){function e(e,n,r,i,o){var a=e.$eval(r.tab);a.scope.id;a.scope.transcludeFn(a.scope,function(t){n.append(t)}),t.subscribe(a.scope.id,function(n){t.publish(a.parentContent,["activate",a.scope.id]),e.$apply()})}var n={restrict:"EA",transclude:"true",link:e};return n}function a(t){function e(e,n,r,i){function o(){n.parent().children().removeClass("is-active"),n.addClass("is-active")}var a=r.zfTabHref;t.subscribe(a,function(t){("activate"===t||"show"===t||"open"===t)&&o()}),n.on("click",function(e){t.publish(a,"activate"),o(),e.preventDefault()})}var n={restrict:"A",replace:!1,link:e};return n}function s(t){function e(t,e,n,r,i){var o=e.children();angular.element(o[0]).addClass("is-active")}var n={restrict:"A",replace:!1,link:e};return n}function u(t){function e(e,n,r){function i(t){var e=n.children();angular.forEach(e,function(e){var n=angular.element(e);n.removeClass("is-active"),n.attr("id")===t&&n.addClass("is-active")})}var o=[],a=n.children();angular.forEach(a,function(e){if(e.id){var n=e.id;if(o.push(n),t.subscribe(n,function(t){("activate"===t||"show"===t||"open"===t)&&i(n)}),1===o.length){var r=angular.element(e);r.addClass("is-active")}}})}return{restrict:"A",link:e}}angular.module("foundation.tabs",["foundation.core"]).controller("ZfTabsController",e).directive("zfTabs",n).directive("zfTabContent",r).directive("zfTab",i).directive("zfTabIndividual",o).directive("zfTabHref",a).directive("zfTabCustom",s).directive("zfTabContentCustom",u).service("FoundationTabs",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["FoundationApi"],s.$inject=["FoundationApi"],u.$inject=["FoundationApi"]}(),function(){"use strict";angular.module("foundation",["foundation.core","foundation.mediaquery","foundation.accordion","foundation.actionsheet","foundation.common","foundation.iconic","foundation.interchange","foundation.modal","foundation.notification","foundation.offcanvas","foundation.panel","foundation.popup","foundation.tabs"])}(),function(t,e,n,r){"use strict";function i(t,e,n){return setTimeout(c(t,n),e)}function o(t,e,n){return Array.isArray(t)?(a(t,n[e],n),!0):!1}function a(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==r)for(i=0;i<t.length;)e.call(n,t[i],i,t),i++;else for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t)}function s(e,n,r){var i="DEPRECATED METHOD: "+n+"\n"+r+" AT \n";return function(){var n=new Error("get-stack-trace"),r=n&&n.stack?n.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=t.console&&(t.console.warn||t.console.log);return o&&o.call(t.console,i,r),e.apply(this,arguments)}}function u(t,e,n){var r,i=e.prototype;r=t.prototype=Object.create(i),r.constructor=t,r._super=i,n&&st(r,n)}function c(t,e){return function(){return t.apply(e,arguments)}}function l(t,e){return typeof t==lt?t.apply(e?e[0]||r:r,e):t}function f(t,e){return t===r?e:t}function h(t,e,n){a(v(e),function(e){t.addEventListener(e,n,!1)})}function d(t,e,n){a(v(e),function(e){t.removeEventListener(e,n,!1)})}function p(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function m(t,e){return t.indexOf(e)>-1}function v(t){return t.trim().split(/\s+/g)}function g(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;r<t.length;){if(n&&t[r][n]==e||!n&&t[r]===e)return r;r++}return-1}function $(t){return Array.prototype.slice.call(t,0)}function y(t,e,n){for(var r=[],i=[],o=0;o<t.length;){var a=e?t[o][e]:t[o];g(i,a)<0&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function b(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),a=0;a<ut.length;){if(n=ut[a],i=n?n+o:e,i in t)return i;a++}return r}function w(){return vt++}function _(e){var n=e.ownerDocument||e;return n.defaultView||n.parentWindow||t}function x(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){l(t.options.enable,[t])&&n.handler(e)},this.init()}function C(t){var e,n=t.options.inputClass;return new(e=n?n:yt?P:bt?L:$t?V:R)(t,E)}function E(t,e,n){var r=n.pointers.length,i=n.changedPointers.length,o=e&kt&&r-i===0,a=e&(St|Tt)&&r-i===0;n.isFirst=!!o,n.isFinal=!!a,o&&(t.session={}),n.eventType=e,k(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function k(t,e){var n=t.session,r=e.pointers,i=r.length;n.firstInput||(n.firstInput=T(e)),i>1&&!n.firstMultiple?n.firstMultiple=T(e):1===i&&(n.firstMultiple=!1);var o=n.firstInput,a=n.firstMultiple,s=a?a.center:o.center,u=e.center=O(r);e.timeStamp=dt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=D(s,u),e.distance=M(s,u),A(n,e),e.offsetDirection=z(e.deltaX,e.deltaY);var c=I(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=ht(c.x)>ht(c.y)?c.x:c.y,e.scale=a?N(a.pointers,r):1,e.rotation=a?j(a.pointers,r):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,S(n,e);var l=t.element;p(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function A(t,e){var n=e.center,r=t.offsetDelta||{},i=t.prevDelta||{},o=t.prevInput||{};(e.eventType===kt||o.eventType===St)&&(i=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=i.x+(n.x-r.x),e.deltaY=i.y+(n.y-r.y)}function S(t,e){var n,i,o,a,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=Tt&&(u>Et||s.velocity===r)){var c=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,f=I(u,c,l);i=f.x,o=f.y,n=ht(f.x)>ht(f.y)?f.x:f.y,a=z(c,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,o=s.velocityY,a=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=a}function T(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:ft(t.pointers[n].clientX),clientY:ft(t.pointers[n].clientY)},n++;return{timeStamp:dt(),pointers:e,center:O(e),deltaX:t.deltaX,deltaY:t.deltaY}}function O(t){var e=t.length;if(1===e)return{x:ft(t[0].clientX),y:ft(t[0].clientY)};for(var n=0,r=0,i=0;e>i;)n+=t[i].clientX,r+=t[i].clientY,i++;return{x:ft(n/e),y:ft(r/e)}}function I(t,e,n){return{x:e/t||0,y:n/t||0}}function z(t,e){return t===e?Ot:ht(t)>=ht(e)?0>t?It:zt:0>e?Mt:Dt}function M(t,e,n){n||(n=Pt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function D(t,e,n){n||(n=Pt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return 180*Math.atan2(i,r)/Math.PI}function j(t,e){return D(e[1],e[0],Ft)+D(t[1],t[0],Ft)}function N(t,e){return M(e[0],e[1],Ft)/M(t[0],t[1],Ft)}function R(){this.evEl=Lt,this.evWin=Ut,this.allow=!0,this.pressed=!1,x.apply(this,arguments)}function P(){this.evEl=Ht,this.evWin=Wt,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function F(){this.evTarget=Yt,this.evWin=Zt,this.started=!1,x.apply(this,arguments)}function B(t,e){var n=$(t.touches),r=$(t.changedTouches);return e&(St|Tt)&&(n=y(n.concat(r),"identifier",!0)),[n,r]}function L(){this.evTarget=Kt,this.targetIds={},x.apply(this,arguments)}function U(t,e){var n=$(t.touches),r=this.targetIds;if(e&(kt|At)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=$(t.changedTouches),s=[],u=this.target;if(o=n.filter(function(t){return p(t.target,u)}),e===kt)for(i=0;i<o.length;)r[o[i].identifier]=!0,i++;for(i=0;i<a.length;)r[a[i].identifier]&&s.push(a[i]),e&(St|Tt)&&delete r[a[i].identifier],i++;return s.length?[y(o.concat(s),"identifier",!0),s]:void 0}function V(){x.apply(this,arguments);var t=c(this.handler,this);this.touch=new L(this.manager,t),this.mouse=new R(this.manager,t)}function q(t,e){this.manager=t,this.set(e)}function H(t){if(m(t,re))return re;var e=m(t,ie),n=m(t,oe);return e&&n?re:e||n?e?ie:oe:m(t,ne)?ne:ee}function W(t){this.options=st({},this.defaults,t||{}),this.id=w(),this.manager=null,this.options.enable=f(this.options.enable,!0),this.state=ae,this.simultaneous={},this.requireFail=[]}function X(t){return t&fe?"cancel":t&ce?"end":t&ue?"move":t&se?"start":""}function Y(t){return t==Dt?"down":t==Mt?"up":t==It?"left":t==zt?"right":""}function Z(t,e){var n=e.manager;return n?n.get(t):t}function G(){W.apply(this,arguments)}function K(){G.apply(this,arguments),this.pX=null,this.pY=null}function J(){G.apply(this,arguments)}function Q(){W.apply(this,arguments),this._timer=null,this._input=null}function tt(){G.apply(this,arguments)}function et(){G.apply(this,arguments)}function nt(){W.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function rt(t,e){return e=e||{},e.recognizers=f(e.recognizers,rt.defaults.preset),new it(t,e)}function it(t,e){this.options=st({},rt.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=C(this),this.touchAction=new q(this,this.options.touchAction),ot(this,!0),a(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function ot(t,e){var n=t.element;n.style&&a(t.options.cssProps,function(t,r){n.style[b(n.style,r)]=e?t:""})}function at(t,n){var r=e.createEvent("Event");r.initEvent(t,!0,!0),r.gesture=n,n.target.dispatchEvent(r)}var st,ut=["","webkit","Moz","MS","ms","o"],ct=e.createElement("div"),lt="function",ft=Math.round,ht=Math.abs,dt=Date.now;st="function"!=typeof Object.assign?function(t){if(t===r||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var i=arguments[n];if(i!==r&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(e[o]=i[o])}return e}:Object.assign;var pt=s(function(t,e,n){for(var i=Object.keys(e),o=0;o<i.length;)(!n||n&&t[i[o]]===r)&&(t[i[o]]=e[i[o]]),o++;return t},"extend","Use `assign`."),mt=s(function(t,e){return pt(t,e,!0)},"merge","Use `assign`."),vt=1,gt=/mobile|tablet|ip(ad|hone|od)|android/i,$t="ontouchstart"in t,yt=b(t,"PointerEvent")!==r,bt=$t&&gt.test(navigator.userAgent),wt="touch",_t="pen",xt="mouse",Ct="kinect",Et=25,kt=1,At=2,St=4,Tt=8,Ot=1,It=2,zt=4,Mt=8,Dt=16,jt=It|zt,Nt=Mt|Dt,Rt=jt|Nt,Pt=["x","y"],Ft=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&h(this.element,this.evEl,this.domHandler),this.evTarget&&h(this.target,this.evTarget,this.domHandler),this.evWin&&h(_(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&d(this.element,this.evEl,this.domHandler),this.evTarget&&d(this.target,this.evTarget,this.domHandler),this.evWin&&d(_(this.element),this.evWin,this.domHandler)}};var Bt={mousedown:kt,mousemove:At,mouseup:St},Lt="mousedown",Ut="mousemove mouseup";u(R,x,{handler:function(t){var e=Bt[t.type];e&kt&&0===t.button&&(this.pressed=!0),e&At&&1!==t.which&&(e=St),this.pressed&&this.allow&&(e&St&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:xt,srcEvent:t}))}});var Vt={pointerdown:kt,pointermove:At,pointerup:St,pointercancel:Tt,pointerout:Tt},qt={2:wt,3:_t,4:xt,5:Ct},Ht="pointerdown",Wt="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ht="MSPointerDown",Wt="MSPointerMove MSPointerUp MSPointerCancel"),u(P,x,{handler:function(t){var e=this.store,n=!1,r=t.type.toLowerCase().replace("ms",""),i=Vt[r],o=qt[t.pointerType]||t.pointerType,a=o==wt,s=g(e,t.pointerId,"pointerId");i&kt&&(0===t.button||a)?0>s&&(e.push(t),s=e.length-1):i&(St|Tt)&&(n=!0),0>s||(e[s]=t,this.callback(this.manager,i,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),n&&e.splice(s,1))}});var Xt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Yt="touchstart",Zt="touchstart touchmove touchend touchcancel";u(F,x,{handler:function(t){var e=Xt[t.type];if(e===kt&&(this.started=!0),this.started){var n=B.call(this,t,e);e&(St|Tt)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}});var Gt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Kt="touchstart touchmove touchend touchcancel";u(L,x,{handler:function(t){var e=Gt[t.type],n=U.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}),u(V,x,{handler:function(t,e,n){var r=n.pointerType==wt,i=n.pointerType==xt;if(r)this.mouse.allow=!1;else if(i&&!this.mouse.allow)return;e&(St|Tt)&&(this.mouse.allow=!0),this.callback(t,e,n)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Jt=b(ct.style,"touchAction"),Qt=Jt!==r,te="compute",ee="auto",ne="manipulation",re="none",ie="pan-x",oe="pan-y";q.prototype={set:function(t){t==te&&(t=this.compute()),Qt&&this.manager.element.style&&(this.manager.element.style[Jt]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return a(this.manager.recognizers,function(e){l(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),H(t.join(" "))},preventDefaults:function(t){if(!Qt){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var r=this.actions,i=m(r,re),o=m(r,oe),a=m(r,ie);if(i){var s=1===t.pointers.length,u=t.distance<2,c=t.deltaTime<250;if(s&&u&&c)return}if(!a||!o)return i||o&&n&jt||a&&n&Nt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ae=1,se=2,ue=4,ce=8,le=ce,fe=16,he=32;W.prototype={defaults:{},set:function(t){return st(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(o(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=Z(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return o(t,"dropRecognizeWith",this)?this:(t=Z(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(o(t,"requireFailure",this))return this;var e=this.requireFail;return t=Z(t,this),-1===g(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(o(t,"dropRequireFailure",this))return this;t=Z(t,this);var e=g(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,r=this.state;ce>r&&e(n.options.event+X(r)),e(n.options.event),t.additionalEvent&&e(t.additionalEvent),r>=ce&&e(n.options.event+X(r))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=he)},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(he|ae)))return!1;t++}return!0},recognize:function(t){var e=st({},t);return l(this.options.enable,[this,e])?(this.state&(le|fe|he)&&(this.state=ae),this.state=this.process(e),void(this.state&(se|ue|ce|fe)&&this.tryEmit(e))):(this.reset(),void(this.state=he))},process:function(t){},getTouchAction:function(){},reset:function(){}},u(G,W,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,r=e&(se|ue),i=this.attrTest(t);return r&&(n&Tt||!i)?e|fe:r||i?n&St?e|ce:e&se?e|ue:se:he}}),u(K,G,{defaults:{event:"pan",threshold:10,pointers:1,direction:Rt},getTouchAction:function(){var t=this.options.direction,e=[];return t&jt&&e.push(oe),t&Nt&&e.push(ie),e},directionTest:function(t){var e=this.options,n=!0,r=t.distance,i=t.direction,o=t.deltaX,a=t.deltaY;return i&e.direction||(e.direction&jt?(i=0===o?Ot:0>o?It:zt,n=o!=this.pX,r=Math.abs(t.deltaX)):(i=0===a?Ot:0>a?Mt:Dt,n=a!=this.pY,r=Math.abs(t.deltaY))),t.direction=i,n&&r>e.threshold&&i&e.direction},attrTest:function(t){return G.prototype.attrTest.call(this,t)&&(this.state&se||!(this.state&se)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Y(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(J,G,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&se)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),u(Q,W,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ee]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,o=t.deltaTime>e.time;if(this._input=t,!r||!n||t.eventType&(St|Tt)&&!o)this.reset();else if(t.eventType&kt)this.reset(),this._timer=i(function(){this.state=le,this.tryEmit()},e.time,this);else if(t.eventType&St)return le;return he},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===le&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=dt(),this.manager.emit(this.options.event,this._input)))}}),u(tt,G,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&se)}}),u(et,G,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:jt|Nt,pointers:1},getTouchAction:function(){return K.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(jt|Nt)?e=t.overallVelocity:n&jt?e=t.overallVelocityX:n&Nt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&ht(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=Y(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(nt,W,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,o=t.deltaTime<e.time;if(this.reset(),t.eventType&kt&&0===this.count)return this.failTimeout();if(r&&o&&n){if(t.eventType!=St)return this.failTimeout();var a=this.pTime?t.timeStamp-this.pTime<e.interval:!0,s=!this.pCenter||M(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,s&&a?this.count+=1:this.count=1,this._input=t;var u=this.count%e.taps;if(0===u)return this.hasRequireFailures()?(this._timer=i(function(){this.state=le,this.tryEmit()},e.interval,this),se):le}return he},failTimeout:function(){return this._timer=i(function(){this.state=he},this.options.interval,this),he},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==le&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),rt.VERSION="2.0.6",rt.defaults={domEvents:!1,touchAction:te,enable:!0,inputTarget:null,inputClass:null,preset:[[tt,{enable:!1}],[J,{enable:!1},["rotate"]],[et,{direction:jt}],[K,{direction:jt},["swipe"]],[nt],[nt,{event:"doubletap",taps:2},["tap"]],[Q]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var de=1,pe=2;it.prototype={set:function(t){return st(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?pe:de},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var n,r=this.recognizers,i=e.curRecognizer;(!i||i&&i.state&le)&&(i=e.curRecognizer=null);for(var o=0;o<r.length;)n=r[o],e.stopped===pe||i&&n!=i&&!n.canRecognizeWith(i)?n.reset():n.recognize(t),!i&&n.state&(se|ue|ce)&&(i=e.curRecognizer=n),o++}},get:function(t){if(t instanceof W)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(o(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(o(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,n=g(e,t);-1!==n&&(e.splice(n,1),this.touchAction.update())}return this},on:function(t,e){var n=this.handlers;return a(v(t),function(t){n[t]=n[t]||[],n[t].push(e)}),this},off:function(t,e){var n=this.handlers;return a(v(t),function(t){e?n[t]&&n[t].splice(g(n[t],e),1):delete n[t]}),this},emit:function(t,e){this.options.domEvents&&at(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](e),r++}},destroy:function(){this.element&&ot(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},st(rt,{INPUT_START:kt,INPUT_MOVE:At,INPUT_END:St,INPUT_CANCEL:Tt,STATE_POSSIBLE:ae,STATE_BEGAN:se,STATE_CHANGED:ue,STATE_ENDED:ce,STATE_RECOGNIZED:le,STATE_CANCELLED:fe,STATE_FAILED:he,DIRECTION_NONE:Ot,DIRECTION_LEFT:It,DIRECTION_RIGHT:zt,DIRECTION_UP:Mt,DIRECTION_DOWN:Dt,DIRECTION_HORIZONTAL:jt,DIRECTION_VERTICAL:Nt,DIRECTION_ALL:Rt,Manager:it,Input:x,TouchAction:q,TouchInput:L,MouseInput:R,PointerEventInput:P,TouchMouseInput:V,SingleTouchInput:F,Recognizer:W,AttrRecognizer:G,Tap:nt,Pan:K,Swipe:et,Pinch:J,Rotate:tt,Press:Q,on:h,off:d,each:a,merge:mt,extend:pt,assign:st,inherit:u,bindFn:c,prefixed:b});var me="undefined"!=typeof t?t:"undefined"!=typeof self?self:{};me.Hammer=rt,"function"==typeof define&&define.amd?define(function(){return rt}):"undefined"!=typeof module&&module.exports?module.exports=rt:t[n]=rt}(window,document,"Hammer"),!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.JSZip=t()}}(function(){return function t(e,n,r){function i(a,s){if(!n[a]){if(!e[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(t,e){for(var n,i,o,a,s,u,c,l="",f=0;f<t.length;)n=t.charCodeAt(f++),i=t.charCodeAt(f++),o=t.charCodeAt(f++),a=n>>2,s=(3&n)<<4|i>>4,u=(15&i)<<2|o>>6,c=63&o,isNaN(i)?u=c=64:isNaN(o)&&(c=64),l=l+r.charAt(a)+r.charAt(s)+r.charAt(u)+r.charAt(c);return l},n.decode=function(t,e){var n,i,o,a,s,u,c,l="",f=0;for(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");f<t.length;)a=r.indexOf(t.charAt(f++)),s=r.indexOf(t.charAt(f++)),u=r.indexOf(t.charAt(f++)),c=r.indexOf(t.charAt(f++)),n=a<<2|s>>4,i=(15&s)<<4|u>>2,o=(3&u)<<6|c,l+=String.fromCharCode(n),64!=u&&(l+=String.fromCharCode(i)),64!=c&&(l+=String.fromCharCode(o));return l}},{}],2:[function(t,e,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},e.exports=r},{}],3:[function(t,e,n){"use strict";n.STORE={magic:"\x00\x00",compress:function(t,e){return t},uncompress:function(t){return t},compressInputType:null,uncompressInputType:null},n.DEFLATE=t("./flate")},{"./flate":8}],4:[function(t,e,n){"use strict";var r=t("./utils"),i=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];
-e.exports=function(t,e){if("undefined"==typeof t||!t.length)return 0;var n="string"!==r.getTypeOf(t);"undefined"==typeof e&&(e=0);var o=0,a=0,s=0;e=-1^e;for(var u=0,c=t.length;c>u;u++)s=n?t[u]:t.charCodeAt(u),a=255&(e^s),o=i[a],e=e>>>8^o;return-1^e}},{"./utils":21}],5:[function(t,e,n){"use strict";function r(t){this.data=null,this.length=0,this.index=0}var i=t("./utils");r.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<t||0>t)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,n=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)n=(n<<8)+this.byteAt(e);return this.index+=t,n},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date((t>>25&127)+1980,(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1)}},e.exports=r},{"./utils":21}],6:[function(t,e,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],7:[function(t,e,n){"use strict";var r=t("./utils");n.string2binary=function(t){return r.string2binary(t)},n.string2Uint8Array=function(t){return r.transformTo("uint8array",t)},n.uint8Array2String=function(t){return r.transformTo("string",t)},n.string2Blob=function(t){var e=r.transformTo("arraybuffer",t);return r.arrayBuffer2Blob(e)},n.arrayBuffer2Blob=function(t){return r.arrayBuffer2Blob(t)},n.transformTo=function(t,e){return r.transformTo(t,e)},n.getTypeOf=function(t){return r.getTypeOf(t)},n.checkSupport=function(t){return r.checkSupport(t)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(t){return r.pretty(t)},n.findCompression=function(t){return r.findCompression(t)},n.isRegExp=function(t){return r.isRegExp(t)}},{"./utils":21}],8:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\x00",n.compress=function(t,e){return i.deflateRaw(t,{level:e.level||-1})},n.uncompress=function(t){return i.inflateRaw(t)}},{pako:24}],9:[function(t,e,n){"use strict";function r(t,e){return this instanceof r?(this.files={},this.comment=null,this.root="",t&&this.load(t,e),void(this.clone=function(){var t=new r;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t})):new r(t,e)}var i=t("./base64");r.prototype=t("./object"),r.prototype.load=t("./load"),r.support=t("./support"),r.defaults=t("./defaults"),r.utils=t("./deprecatedPublicUtils"),r.base64={encode:function(t){return i.encode(t)},decode:function(t){return i.decode(t)}},r.compressions=t("./compressions"),e.exports=r},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(t,e,n){"use strict";var r=t("./base64"),i=t("./zipEntries");e.exports=function(t,e){var n,o,a,s;for(e=e||{},e.base64&&(t=r.decode(t)),o=new i(t,e),n=o.files,a=0;a<n.length;a++)s=n[a],this.file(s.fileName,s.decompressed,{binary:!0,optimizedBinaryString:!0,date:s.date,dir:s.dir,comment:s.fileComment.length?s.fileComment:null,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,createFolders:e.createFolders});return o.zipComment.length&&(this.comment=o.zipComment),this}},{"./base64":1,"./zipEntries":22}],11:[function(t,e,n){(function(t){"use strict";e.exports=function(e,n){return new t(e,n)},e.exports.test=function(e){return t.isBuffer(e)}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],12:[function(t,e,n){"use strict";function r(t){this.data=t,this.length=this.data.length,this.index=0}var i=t("./uint8ArrayReader");r.prototype=new i,r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./uint8ArrayReader":18}],13:[function(t,e,n){"use strict";var r=t("./support"),i=t("./utils"),o=t("./crc32"),a=t("./signature"),s=t("./defaults"),u=t("./base64"),c=t("./compressions"),l=t("./compressedObject"),f=t("./nodeBuffer"),h=t("./utf8"),d=t("./stringWriter"),p=t("./uint8ArrayWriter"),m=function(t){if(t._data instanceof l&&(t._data=t._data.getContent(),t.options.binary=!0,t.options.base64=!1,"uint8array"===i.getTypeOf(t._data))){var e=t._data;t._data=new Uint8Array(e.length),0!==e.length&&t._data.set(e,0)}return t._data},v=function(t){var e=m(t),n=i.getTypeOf(e);return"string"===n?!t.options.binary&&r.nodebuffer?f(e,"utf-8"):t.asBinary():e},g=function(t){var e=m(this);return null===e||"undefined"==typeof e?"":(this.options.base64&&(e=u.decode(e)),e=t&&this.options.binary?O.utf8decode(e):i.transformTo("string",e),t||this.options.binary||(e=i.transformTo("string",O.utf8encode(e))),e)},$=function(t,e,n){this.name=t,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=e,this.options=n,this._initialMetadata={dir:n.dir,date:n.date}};$.prototype={asText:function(){return g.call(this,!0)},asBinary:function(){return g.call(this,!1)},asNodeBuffer:function(){var t=v(this);return i.transformTo("nodebuffer",t)},asUint8Array:function(){var t=v(this);return i.transformTo("uint8array",t)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var y=function(t,e){var n,r="";for(n=0;e>n;n++)r+=String.fromCharCode(255&t),t>>>=8;return r},b=function(){var t,e,n={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&"undefined"==typeof n[e]&&(n[e]=arguments[t][e]);return n},w=function(t){return t=t||{},t.base64!==!0||null!==t.binary&&void 0!==t.binary||(t.binary=!0),t=b(t,s),t.date=t.date||new Date,null!==t.compression&&(t.compression=t.compression.toUpperCase()),t},_=function(t,e,n){var r,o=i.getTypeOf(e);if(n=w(n),"string"==typeof n.unixPermissions&&(n.unixPermissions=parseInt(n.unixPermissions,8)),n.unixPermissions&&16384&n.unixPermissions&&(n.dir=!0),n.dosPermissions&&16&n.dosPermissions&&(n.dir=!0),n.dir&&(t=C(t)),n.createFolders&&(r=x(t))&&E.call(this,r,!0),n.dir||null===e||"undefined"==typeof e)n.base64=!1,n.binary=!1,e=null,o=null;else if("string"===o)n.binary&&!n.base64&&n.optimizedBinaryString!==!0&&(e=i.string2binary(e));else{if(n.base64=!1,n.binary=!0,!(o||e instanceof l))throw new Error("The data of '"+t+"' is in an unsupported format !");"arraybuffer"===o&&(e=i.transformTo("uint8array",e))}var a=new $(t,e,n);return this.files[t]=a,a},x=function(t){"/"==t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf("/");return e>0?t.substring(0,e):""},C=function(t){return"/"!=t.slice(-1)&&(t+="/"),t},E=function(t,e){return e="undefined"!=typeof e?e:!1,t=C(t),this.files[t]||_.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]},k=function(t,e,n){var r,a=new l;return t._data instanceof l?(a.uncompressedSize=t._data.uncompressedSize,a.crc32=t._data.crc32,0===a.uncompressedSize||t.dir?(e=c.STORE,a.compressedContent="",a.crc32=0):t._data.compressionMethod===e.magic?a.compressedContent=t._data.getCompressedContent():(r=t._data.getContent(),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n))):(r=v(t),(!r||0===r.length||t.dir)&&(e=c.STORE,r=""),a.uncompressedSize=r.length,a.crc32=o(r),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n)),a.compressedSize=a.compressedContent.length,a.compressionMethod=e.magic,a},A=function(t,e){var n=t;return t||(n=e?16893:33204),(65535&n)<<16},S=function(t,e){return 63&(t||0)},T=function(t,e,n,r,s){var u,c,l,f,d=(n.compressedContent,i.transformTo("string",h.utf8encode(e.name))),p=e.comment||"",m=i.transformTo("string",h.utf8encode(p)),v=d.length!==e.name.length,g=m.length!==p.length,$=e.options,b="",w="",_="";l=e._initialMetadata.dir!==e.dir?e.dir:$.dir,f=e._initialMetadata.date!==e.date?e.date:$.date;var x=0,C=0;l&&(x|=16),"UNIX"===s?(C=798,x|=A(e.unixPermissions,l)):(C=20,x|=S(e.dosPermissions,l)),u=f.getHours(),u<<=6,u|=f.getMinutes(),u<<=5,u|=f.getSeconds()/2,c=f.getFullYear()-1980,c<<=4,c|=f.getMonth()+1,c<<=5,c|=f.getDate(),v&&(w=y(1,1)+y(o(d),4)+d,b+="up"+y(w.length,2)+w),g&&(_=y(1,1)+y(this.crc32(m),4)+m,b+="uc"+y(_.length,2)+_);var E="";E+="\n\x00",E+=v||g?"\x00\b":"\x00\x00",E+=n.compressionMethod,E+=y(u,2),E+=y(c,2),E+=y(n.crc32,4),E+=y(n.compressedSize,4),E+=y(n.uncompressedSize,4),E+=y(d.length,2),E+=y(b.length,2);var k=a.LOCAL_FILE_HEADER+E+d+b,T=a.CENTRAL_FILE_HEADER+y(C,2)+E+y(m.length,2)+"\x00\x00\x00\x00"+y(x,4)+y(r,4)+d+b+m;return{fileRecord:k,dirRecord:T,compressedObject:n}},O={load:function(t,e){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(t){var e,n,r,i,o=[];for(e in this.files)this.files.hasOwnProperty(e)&&(r=this.files[e],i=new $(r.name,r._data,b(r.options)),n=e.slice(this.root.length,e.length),e.slice(0,this.root.length)===this.root&&t(n,i)&&o.push(i));return o},file:function(t,e,n){if(1===arguments.length){if(i.isRegExp(t)){var r=t;return this.filter(function(t,e){return!e.dir&&r.test(t)})}return this.filter(function(e,n){return!n.dir&&e===t})[0]||null}return t=this.root+t,_.call(this,t,e,n),this},folder:function(t){if(!t)return this;if(i.isRegExp(t))return this.filter(function(e,n){return n.dir&&t.test(e)});var e=this.root+t,n=E.call(this,e),r=this.clone();return r.root=n.name,r},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!=t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var n=this.filter(function(e,n){return n.name.slice(0,t.length)===t}),r=0;r<n.length;r++)delete this.files[n[r].name];return this},generate:function(t){t=b(t||{},{base64:!0,compression:"STORE",compressionOptions:null,type:"base64",platform:"DOS",comment:null,mimeType:"application/zip"}),i.checkSupport(t.type),("darwin"===t.platform||"freebsd"===t.platform||"linux"===t.platform||"sunos"===t.platform)&&(t.platform="UNIX"),"win32"===t.platform&&(t.platform="DOS");var e,n,r=[],o=0,s=0,l=i.transformTo("string",this.utf8encode(t.comment||this.comment||""));for(var f in this.files)if(this.files.hasOwnProperty(f)){var h=this.files[f],m=h.options.compression||t.compression.toUpperCase(),v=c[m];if(!v)throw new Error(m+" is not a valid compression method !");var g=h.options.compressionOptions||t.compressionOptions||{},$=k.call(this,h,v,g),w=T.call(this,f,h,$,o,t.platform);o+=w.fileRecord.length+$.compressedSize,s+=w.dirRecord.length,r.push(w)}var _="";_=a.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+y(r.length,2)+y(r.length,2)+y(s,4)+y(o,4)+y(l.length,2)+l;var x=t.type.toLowerCase();for(e="uint8array"===x||"arraybuffer"===x||"blob"===x||"nodebuffer"===x?new p(o+s+_.length):new d(o+s+_.length),n=0;n<r.length;n++)e.append(r[n].fileRecord),e.append(r[n].compressedObject.compressedContent);for(n=0;n<r.length;n++)e.append(r[n].dirRecord);e.append(_);var C=e.finalize();switch(t.type.toLowerCase()){case"uint8array":case"arraybuffer":case"nodebuffer":return i.transformTo(t.type.toLowerCase(),C);case"blob":return i.arrayBuffer2Blob(i.transformTo("arraybuffer",C),t.mimeType);case"base64":return t.base64?u.encode(C):C;default:return C}},crc32:function(t,e){return o(t,e)},utf8encode:function(t){return i.transformTo("string",h.utf8encode(t))},utf8decode:function(t){return h.utf8decode(t)}};e.exports=O},{"./base64":1,"./compressedObject":2,"./compressions":3,"./crc32":4,"./defaults":6,"./nodeBuffer":11,"./signature":14,"./stringWriter":16,"./support":17,"./uint8ArrayWriter":19,"./utf8":20,"./utils":21}],14:[function(t,e,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],15:[function(t,e,n){"use strict";function r(t,e){this.data=t,e||(this.data=o.string2binary(this.data)),this.length=this.data.length,this.index=0}var i=t("./dataReader"),o=t("./utils");r.prototype=new i,r.prototype.byteAt=function(t){return this.data.charCodeAt(t)},r.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)},r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5,"./utils":21}],16:[function(t,e,n){"use strict";var r=t("./utils"),i=function(){this.data=[]};i.prototype={append:function(t){t=r.transformTo("string",t),this.data.push(t)},finalize:function(){return this.data.join("")}},e.exports=i},{"./utils":21}],17:[function(t,e,n){(function(t){"use strict";if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof t,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var e=new ArrayBuffer(0);try{n.blob=0===new Blob([e],{type:"application/zip"}).size}catch(r){try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,o=new i;o.append(e),n.blob=0===o.getBlob("application/zip").size}catch(r){n.blob=!1}}}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],18:[function(t,e,n){"use strict";function r(t){t&&(this.data=t,this.length=this.data.length,this.index=0)}var i=t("./dataReader");r.prototype=new i,r.prototype.byteAt=function(t){return this.data[t]},r.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),n=t.charCodeAt(1),r=t.charCodeAt(2),i=t.charCodeAt(3),o=this.length-4;o>=0;--o)if(this.data[o]===e&&this.data[o+1]===n&&this.data[o+2]===r&&this.data[o+3]===i)return o;return-1},r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5}],19:[function(t,e,n){"use strict";var r=t("./utils"),i=function(t){this.data=new Uint8Array(t),this.index=0};i.prototype={append:function(t){0!==t.length&&(t=r.transformTo("uint8array",t),this.data.set(t,this.index),this.index+=t.length)},finalize:function(){return this.data}},e.exports=i},{"./utils":21}],20:[function(t,e,n){"use strict";for(var r=t("./utils"),i=t("./support"),o=t("./nodeBuffer"),a=new Array(256),s=0;256>s;s++)a[s]=s>=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;a[254]=a[254]=1;var u=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=i.uint8array?new Uint8Array(u):new Array(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},c=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+a[t[n]]>e?n:e},l=function(t){var e,n,i,o,s=t.length,u=new Array(2*s);for(n=0,e=0;s>e;)if(i=t[e++],128>i)u[n++]=i;else if(o=a[i],o>4)u[n++]=65533,e+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&s>e;)i=i<<6|63&t[e++],o--;o>1?u[n++]=65533:65536>i?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),r.applyFromCharCode(u)};n.utf8encode=function(t){return i.nodebuffer?o(t,"utf-8"):u(t)},n.utf8decode=function(t){if(i.nodebuffer)return r.transformTo("nodebuffer",t).toString("utf-8");t=r.transformTo(i.uint8array?"uint8array":"array",t);for(var e=[],n=0,o=t.length,a=65536;o>n;){var s=c(t,Math.min(n+a,o));i.uint8array?e.push(l(t.subarray(n,s))):e.push(l(t.slice(n,s))),n=s}return e.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(t,e,n){"use strict";function r(t){return t}function i(t,e){for(var n=0;n<t.length;++n)e[n]=255&t.charCodeAt(n);return e}function o(t){var e=65536,r=[],i=t.length,o=n.getTypeOf(t),a=0,s=!0;try{switch(o){case"uint8array":String.fromCharCode.apply(null,new Uint8Array(0));break;case"nodebuffer":String.fromCharCode.apply(null,c(0))}}catch(u){s=!1}if(!s){for(var l="",f=0;f<t.length;f++)l+=String.fromCharCode(t[f]);return l}for(;i>a&&e>1;)try{"array"===o||"nodebuffer"===o?r.push(String.fromCharCode.apply(null,t.slice(a,Math.min(a+e,i)))):r.push(String.fromCharCode.apply(null,t.subarray(a,Math.min(a+e,i)))),a+=e}catch(u){e=Math.floor(e/2)}return r.join("")}function a(t,e){for(var n=0;n<t.length;n++)e[n]=t[n];return e}var s=t("./support"),u=t("./compressions"),c=t("./nodeBuffer");n.string2binary=function(t){for(var e="",n=0;n<t.length;n++)e+=String.fromCharCode(255&t.charCodeAt(n));return e},n.arrayBuffer2Blob=function(t,e){n.checkSupport("blob"),e=e||"application/zip";try{return new Blob([t],{type:e})}catch(r){try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,o=new i;return o.append(t),o.getBlob(e)}catch(r){throw new Error("Bug : can't construct the Blob.")}}},n.applyFromCharCode=o;var l={};l.string={string:r,array:function(t){return i(t,new Array(t.length))},arraybuffer:function(t){return l.string.uint8array(t).buffer},uint8array:function(t){return i(t,new Uint8Array(t.length))},nodebuffer:function(t){return i(t,c(t.length))}},l.array={string:o,array:r,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return c(t)}},l.arraybuffer={string:function(t){return o(new Uint8Array(t))},array:function(t){return a(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:r,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return c(new Uint8Array(t))}},l.uint8array={string:o,array:function(t){return a(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:r,nodebuffer:function(t){return c(t)}},l.nodebuffer={string:o,array:function(t){return a(t,new Array(t.length))},arraybuffer:function(t){return l.nodebuffer.uint8array(t).buffer},uint8array:function(t){return a(t,new Uint8Array(t.length))},nodebuffer:r},n.transformTo=function(t,e){if(e||(e=""),!t)return e;n.checkSupport(t);var r=n.getTypeOf(e),i=l[r][t](e);return i},n.getTypeOf=function(t){return"string"==typeof t?"string":"[object Array]"===Object.prototype.toString.call(t)?"array":s.nodebuffer&&c.test(t)?"nodebuffer":s.uint8array&&t instanceof Uint8Array?"uint8array":s.arraybuffer&&t instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(t){var e=s[t.toLowerCase()];if(!e)throw new Error(t+" is not supported by this browser")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(t){var e,n,r="";for(n=0;n<(t||"").length;n++)e=t.charCodeAt(n),r+="\\x"+(16>e?"0":"")+e.toString(16).toUpperCase();return r},n.findCompression=function(t){for(var e in u)if(u.hasOwnProperty(e)&&u[e].magic===t)return u[e];return null},n.isRegExp=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(t,e,n){"use strict";function r(t,e){this.files=[],this.loadOptions=e,t&&this.load(t)}var i=t("./stringReader"),o=t("./nodeBufferReader"),a=t("./uint8ArrayReader"),s=t("./utils"),u=t("./signature"),c=t("./zipEntry"),l=t("./support"),f=t("./object");r.prototype={checkSignature:function(t){var e=this.reader.readString(4);if(e!==t)throw new Error("Corrupted zip or bug : unexpected signature ("+s.pretty(e)+", expected "+s.pretty(t)+")")},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2),this.zipComment=this.reader.readString(this.zipCommentLength),this.zipComment=f.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,n,r=this.zip64EndOfCentralSize-44,i=0;r>i;)t=this.reader.readInt(2),e=this.reader.readInt(4),n=this.reader.readString(e),this.zip64ExtensibleData[t]={id:t,length:e,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(u.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===u.CENTRAL_FILE_HEADER;)t=new c({zip64:this.zip64},this.loadOptions),t.readCentralPart(this.reader),this.files.push(t)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(u.CENTRAL_DIRECTORY_END);if(-1===t){var e=!0;try{this.reader.setIndex(0),this.checkSignature(u.LOCAL_FILE_HEADER),e=!1}catch(n){}throw e?new Error("Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip : can't find end of central directory")}if(this.reader.setIndex(t),this.checkSignature(u.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===s.MAX_VALUE_16BITS||this.diskWithCentralDirStart===s.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===s.MAX_VALUE_16BITS||this.centralDirRecords===s.MAX_VALUE_16BITS||this.centralDirSize===s.MAX_VALUE_32BITS||this.centralDirOffset===s.MAX_VALUE_32BITS){if(this.zip64=!0,t=this.reader.lastIndexOfSignature(u.ZIP64_CENTRAL_DIRECTORY_LOCATOR),-1===t)throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator");this.reader.setIndex(t),this.checkSignature(u.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(u.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}},prepareReader:function(t){var e=s.getTypeOf(t);"string"!==e||l.uint8array?"nodebuffer"===e?this.reader=new o(t):this.reader=new a(s.transformTo("uint8array",t)):this.reader=new i(t,this.loadOptions.optimizedBinaryString)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=r},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(t,e,n){"use strict";function r(t,e){this.options=t,this.loadOptions=e}var i=t("./stringReader"),o=t("./utils"),a=t("./compressedObject"),s=t("./object"),u=0,c=3;r.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},prepareCompressedContent:function(t,e,n){return function(){var r=t.index;t.setIndex(e);var i=t.readData(n);return t.setIndex(r),i}},prepareContent:function(t,e,n,r,i){return function(){var t=o.transformTo(r.uncompressInputType,this.getCompressedContent()),e=r.uncompress(t);if(e.length!==i)throw new Error("Bug : uncompressed data size mismatch");return e}},readLocalPart:function(t){var e,n;if(t.skip(22),this.fileNameLength=t.readInt(2),n=t.readInt(2),this.fileName=t.readString(this.fileNameLength),t.skip(n),-1==this.compressedSize||-1==this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)");if(e=o.findCompression(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")");if(this.decompressed=new a,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(t,t.index,this.compressedSize,e),this.decompressed.getContent=this.prepareContent(t,t.index,this.compressedSize,e,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=o.transformTo("string",this.decompressed.getContent()),s.crc32(this.decompressed)!==this.crc32))throw new Error("Corrupted zip : CRC32 mismatch")},readCentralPart:function(t){if(this.versionMadeBy=t.readInt(2),this.versionNeeded=t.readInt(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4),this.fileNameLength=t.readInt(2),this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");this.fileName=t.readString(this.fileNameLength),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readString(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=16&this.externalFileAttributes?!0:!1,t===u&&(this.dosPermissions=63&this.externalFileAttributes),t===c&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileName.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=new i(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,n,r,i=t.index;for(this.extraFields=this.extraFields||{};t.index<i+this.extraFieldsLength;)e=t.readInt(2),n=t.readInt(2),r=t.readString(n),this.extraFields[e]={id:e,length:n,value:r}},handleUTF8:function(){if(this.useUTF8())this.fileName=s.utf8decode(this.fileName),this.fileComment=s.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();null!==t&&(this.fileName=t);var e=this.findExtraFieldUnicodeComment();null!==e&&(this.fileComment=e)}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=new i(t.value);return 1!==e.readInt(1)?null:s.crc32(this.fileName)!==e.readInt(4)?null:s.utf8decode(e.readString(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=new i(t.value);return 1!==e.readInt(1)?null:s.crc32(this.fileComment)!==e.readInt(4)?null:s.utf8decode(e.readString(t.length-5))}return null}},e.exports=r},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(t,e,n){"use strict";var r=t("./lib/utils/common").assign,i=t("./lib/deflate"),o=t("./lib/inflate"),a=t("./lib/zlib/constants"),s={};r(s,i,o,a),e.exports=s},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(t,e,n){"use strict";function r(t,e){var n=new $(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}function o(t,e){return e=e||{},e.gzip=!0,r(t,e)}var a=t("./zlib/deflate.js"),s=t("./utils/common"),u=t("./utils/strings"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=0,h=4,d=0,p=1,m=-1,v=0,g=8,$=function(t){this.options=s.assign({level:m,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:v,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(c[n]);e.header&&a.deflateSetHeader(this.strm,e.header)};$.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?h:f,"string"==typeof t?i.input=u.string2buf(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new s.Buf8(o),i.next_out=0,i.avail_out=o),n=a.deflate(i,r),n!==p&&n!==d)return this.onEnd(n),this.ended=!0,!1;(0===i.avail_out||0===i.avail_in&&r===h)&&("string"===this.options.to?this.onData(u.buf2binstring(s.shrinkBuf(i.output,i.next_out))):this.onData(s.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&n!==p);return r===h?(n=a.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===d):!0},$.prototype.onData=function(t){this.chunks.push(t)},$.prototype.onEnd=function(t){t===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Deflate=$,n.deflate=r,n.deflateRaw=i,n.gzip=o},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(t,e,n){"use strict";function r(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}var o=t("./zlib/inflate.js"),a=t("./utils/common"),s=t("./utils/strings"),u=t("./zlib/constants"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=t("./zlib/gzheader"),h=function(t){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=o.inflateInit2(this.strm,e.windowBits);if(n!==u.Z_OK)throw new Error(c[n]);this.header=new f,o.inflateGetHeader(this.strm,this.header)};h.prototype.push=function(t,e){var n,r,i,c,l,f=this.strm,h=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?u.Z_FINISH:u.Z_NO_FLUSH,"string"==typeof t?f.input=s.binstring2buf(t):f.input=t,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new a.Buf8(h),f.next_out=0,f.avail_out=h),n=o.inflate(f,u.Z_NO_FLUSH),n!==u.Z_STREAM_END&&n!==u.Z_OK)return this.onEnd(n),this.ended=!0,!1;f.next_out&&(0===f.avail_out||n===u.Z_STREAM_END||0===f.avail_in&&r===u.Z_FINISH)&&("string"===this.options.to?(i=s.utf8border(f.output,f.next_out),c=f.next_out-i,l=s.buf2string(f.output,i),f.next_out=c,f.avail_out=h-c,c&&a.arraySet(f.output,f.output,i,c,0),this.onData(l)):this.onData(a.shrinkBuf(f.output,f.next_out)))}while(f.avail_in>0&&n!==u.Z_STREAM_END);return n===u.Z_STREAM_END&&(r=u.Z_FINISH),r===u.Z_FINISH?(n=o.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===u.Z_OK):!0},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===u.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg;
-},n.Inflate=h,n.inflate=r,n.inflateRaw=i,n.ungzip=r},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}}return t},n.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var i={arraySet:function(t,e,n,r,i){if(e.subarray&&t.subarray)return void t.set(e.subarray(n,n+r),i);for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){var e,n,r,i,o,a;for(r=0,e=0,n=t.length;n>e;e++)r+=t[e].length;for(a=new Uint8Array(r),i=0,e=0,n=t.length;n>e;e++)o=t[e],a.set(o,i),i+=o.length;return a}},o={arraySet:function(t,e,n,r,i){for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){return[].concat.apply([],t)}};n.setTyped=function(t){t?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,i)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,o))},n.setTyped(r)},{}],28:[function(t,e,n){"use strict";function r(t,e){if(65537>e&&(t.subarray&&a||!t.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",r=0;e>r;r++)n+=String.fromCharCode(t[r]);return n}var i=t("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(s){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(s){a=!1}for(var u=new i.Buf8(256),c=0;256>c;c++)u[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;u[254]=u[254]=1,n.string2buf=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=new i.Buf8(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},n.buf2binstring=function(t){return r(t,t.length)},n.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;r>n;n++)e[n]=t.charCodeAt(n);return e},n.buf2string=function(t,e){var n,i,o,a,s=e||t.length,c=new Array(2*s);for(i=0,n=0;s>n;)if(o=t[n++],128>o)c[i++]=o;else if(a=u[o],a>4)c[i++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&s>n;)o=o<<6|63&t[n++],a--;a>1?c[i++]=65533:65536>o?c[i++]=o:(o-=65536,c[i++]=55296|o>>10&1023,c[i++]=56320|1023&o)}return r(c,i)},n.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+u[t[n]]>e?n:e}},{"./common":27}],29:[function(t,e,n){"use strict";function r(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){a=n>2e3?2e3:n,n-=a;do i=i+e[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}e.exports=r},{}],30:[function(t,e,n){e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(t,e,n){"use strict";function r(){for(var t,e=[],n=0;256>n;n++){t=n;for(var r=0;8>r;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}function i(t,e,n,r){var i=o,a=r+n;t=-1^t;for(var s=r;a>s;s++)t=t>>>8^i[255&(t^e[s])];return-1^t}var o=r();e.exports=i},{}],32:[function(t,e,n){"use strict";function r(t,e){return t.msg=z[e],e}function i(t){return(t<<1)-(t>4?9:0)}function o(t){for(var e=t.length;--e>=0;)t[e]=0}function a(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(S.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function s(t,e){T._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,a(t.strm)}function u(t,e){t.pending_buf[t.pending++]=e}function c(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function l(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,S.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=O(t.adler,e,i,n):2===t.state.wrap&&(t.adler=I(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function f(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-ct?t.strstart-(t.w_size-ct):0,c=t.window,l=t.w_mask,f=t.prev,h=t.strstart+ut,d=c[o+a-1],p=c[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do if(n=e,c[n+a]===p&&c[n+a-1]===d&&c[n]===c[o]&&c[++n]===c[o+1]){o+=2,n++;do;while(c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&h>o);if(r=ut-(h-o),o=h-ut,r>a){if(t.match_start=e,a=r,r>=s)break;d=c[o+a-1],p=c[o+a]}}while((e=f[e&l])>u&&0!==--i);return a<=t.lookahead?a:t.lookahead}function h(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-ct)){S.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,n=t.hash_size,e=n;do r=t.head[--e],t.head[e]=r>=a?r-a:0;while(--n);n=a,e=n;do r=t.prev[--e],t.prev[e]=r>=a?r-a:0;while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=l(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=st)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+st-1])&t.hash_mask,t.prev[o&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=o,o++,t.insert--,!(t.lookahead+t.insert<st)););}while(t.lookahead<ct&&0!==t.strm.avail_in)}function d(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(h(t),0===t.lookahead&&e===M)return $t;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,s(t,!1),0===t.strm.avail_out))return $t;if(t.strstart-t.block_start>=t.w_size-ct&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.strstart>t.block_start&&(s(t,!1),0===t.strm.avail_out)?$t:$t}function p(t,e){for(var n,r;;){if(t.lookahead<ct){if(h(t),t.lookahead<ct&&e===M)return $t;if(0===t.lookahead)break}if(n=0,t.lookahead>=st&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-ct&&(t.match_length=f(t,n)),t.match_length>=st)if(r=T._tr_tally(t,t.strstart-t.match_start,t.match_length-st),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=st){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=t.strstart<st-1?t.strstart:st-1,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function m(t,e){for(var n,r,i;;){if(t.lookahead<ct){if(h(t),t.lookahead<ct&&e===M)return $t;if(0===t.lookahead)break}if(n=0,t.lookahead>=st&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=st-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-ct&&(t.match_length=f(t,n),t.match_length<=5&&(t.strategy===q||t.match_length===st&&t.strstart-t.match_start>4096)&&(t.match_length=st-1)),t.prev_length>=st&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-st,r=T._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-st),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(0!==--t.prev_length);if(t.match_available=0,t.match_length=st-1,t.strstart++,r&&(s(t,!1),0===t.strm.avail_out))return $t}else if(t.match_available){if(r=T._tr_tally(t,0,t.window[t.strstart-1]),r&&s(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return $t}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=T._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<st-1?t.strstart:st-1,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function v(t,e){for(var n,r,i,o,a=t.window;;){if(t.lookahead<=ut){if(h(t),t.lookahead<=ut&&e===M)return $t;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=st&&t.strstart>0&&(i=t.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=t.strstart+ut;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&o>i);t.match_length=ut-(o-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=st?(n=T._tr_tally(t,1,t.match_length-st),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function g(t,e){for(var n;;){if(0===t.lookahead&&(h(t),0===t.lookahead)){if(e===M)return $t;break}if(t.match_length=0,n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function $(t){t.window_size=2*t.w_size,o(t.head),t.max_lazy_match=A[t.level].max_lazy,t.good_match=A[t.level].good_length,t.nice_match=A[t.level].nice_length,t.max_chain_length=A[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=st-1,t.match_available=0,t.ins_h=0}function y(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=G,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new S.Buf16(2*ot),this.dyn_dtree=new S.Buf16(2*(2*rt+1)),this.bl_tree=new S.Buf16(2*(2*it+1)),o(this.dyn_ltree),o(this.dyn_dtree),o(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new S.Buf16(at+1),this.heap=new S.Buf16(2*nt+1),o(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new S.Buf16(2*nt+1),o(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function b(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Z,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ft:vt,t.adler=2===e.wrap?0:1,e.last_flush=M,T._tr_init(e),P):r(t,B)}function w(t){var e=b(t);return e===P&&$(t.state),e}function _(t,e){return t&&t.state?2!==t.state.wrap?B:(t.state.gzhead=e,P):B}function x(t,e,n,i,o,a){if(!t)return B;var s=1;if(e===V&&(e=6),0>i?(s=0,i=-i):i>15&&(s=2,i-=16),1>o||o>K||n!==G||8>i||i>15||0>e||e>9||0>a||a>X)return r(t,B);8===i&&(i=9);var u=new y;return t.state=u,u.strm=t,u.wrap=s,u.gzhead=null,u.w_bits=i,u.w_size=1<<u.w_bits,u.w_mask=u.w_size-1,u.hash_bits=o+7,u.hash_size=1<<u.hash_bits,u.hash_mask=u.hash_size-1,u.hash_shift=~~((u.hash_bits+st-1)/st),u.window=new S.Buf8(2*u.w_size),u.head=new S.Buf16(u.hash_size),u.prev=new S.Buf16(u.w_size),u.lit_bufsize=1<<o+6,u.pending_buf_size=4*u.lit_bufsize,u.pending_buf=new S.Buf8(u.pending_buf_size),u.d_buf=u.lit_bufsize>>1,u.l_buf=3*u.lit_bufsize,u.level=e,u.strategy=a,u.method=n,w(t)}function C(t,e){return x(t,e,G,J,Q,Y)}function E(t,e){var n,s,l,f;if(!t||!t.state||e>R||0>e)return t?r(t,B):B;if(s=t.state,!t.output||!t.input&&0!==t.avail_in||s.status===gt&&e!==N)return r(t,0===t.avail_out?U:B);if(s.strm=t,n=s.last_flush,s.last_flush=e,s.status===ft)if(2===s.wrap)t.adler=0,u(s,31),u(s,139),u(s,8),s.gzhead?(u(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),u(s,255&s.gzhead.time),u(s,s.gzhead.time>>8&255),u(s,s.gzhead.time>>16&255),u(s,s.gzhead.time>>24&255),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(u(s,255&s.gzhead.extra.length),u(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(t.adler=I(t.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=ht):(u(s,0),u(s,0),u(s,0),u(s,0),u(s,0),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,_t),s.status=vt);else{var h=G+(s.w_bits-8<<4)<<8,d=-1;d=s.strategy>=H||s.level<2?0:s.level<6?1:6===s.level?2:3,h|=d<<6,0!==s.strstart&&(h|=lt),h+=31-h%31,s.status=vt,c(s,h),0!==s.strstart&&(c(s,t.adler>>>16),c(s,65535&t.adler)),t.adler=1}if(s.status===ht)if(s.gzhead.extra){for(l=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending!==s.pending_buf_size));)u(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=dt)}else s.status=dt;if(s.status===dt)if(s.gzhead.name){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,u(s,f)}while(0!==f);s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.gzindex=0,s.status=pt)}else s.status=pt;if(s.status===pt)if(s.gzhead.comment){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,u(s,f)}while(0!==f);s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.status=mt)}else s.status=mt;if(s.status===mt&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&a(t),s.pending+2<=s.pending_buf_size&&(u(s,255&t.adler),u(s,t.adler>>8&255),t.adler=0,s.status=vt)):s.status=vt),0!==s.pending){if(a(t),0===t.avail_out)return s.last_flush=-1,P}else if(0===t.avail_in&&i(e)<=i(n)&&e!==N)return r(t,U);if(s.status===gt&&0!==t.avail_in)return r(t,U);if(0!==t.avail_in||0!==s.lookahead||e!==M&&s.status!==gt){var p=s.strategy===H?g(s,e):s.strategy===W?v(s,e):A[s.level].func(s,e);if((p===bt||p===wt)&&(s.status=gt),p===$t||p===bt)return 0===t.avail_out&&(s.last_flush=-1),P;if(p===yt&&(e===D?T._tr_align(s):e!==R&&(T._tr_stored_block(s,0,0,!1),e===j&&(o(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),a(t),0===t.avail_out))return s.last_flush=-1,P}return e!==N?P:s.wrap<=0?F:(2===s.wrap?(u(s,255&t.adler),u(s,t.adler>>8&255),u(s,t.adler>>16&255),u(s,t.adler>>24&255),u(s,255&t.total_in),u(s,t.total_in>>8&255),u(s,t.total_in>>16&255),u(s,t.total_in>>24&255)):(c(s,t.adler>>>16),c(s,65535&t.adler)),a(t),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?P:F)}function k(t){var e;return t&&t.state?(e=t.state.status,e!==ft&&e!==ht&&e!==dt&&e!==pt&&e!==mt&&e!==vt&&e!==gt?r(t,B):(t.state=null,e===vt?r(t,L):P)):B}var A,S=t("../utils/common"),T=t("./trees"),O=t("./adler32"),I=t("./crc32"),z=t("./messages"),M=0,D=1,j=3,N=4,R=5,P=0,F=1,B=-2,L=-3,U=-5,V=-1,q=1,H=2,W=3,X=4,Y=0,Z=2,G=8,K=9,J=15,Q=8,tt=29,et=256,nt=et+1+tt,rt=30,it=19,ot=2*nt+1,at=15,st=3,ut=258,ct=ut+st+1,lt=32,ft=42,ht=69,dt=73,pt=91,mt=103,vt=113,gt=666,$t=1,yt=2,bt=3,wt=4,_t=3,xt=function(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i};A=[new xt(0,0,0,0,d),new xt(4,4,8,4,p),new xt(4,5,16,8,p),new xt(4,6,32,32,p),new xt(4,4,16,16,m),new xt(8,16,32,32,m),new xt(8,16,128,128,m),new xt(8,32,128,256,m),new xt(32,128,258,1024,m),new xt(32,258,258,4096,m)],n.deflateInit=C,n.deflateInit2=x,n.deflateReset=w,n.deflateResetKeep=b,n.deflateSetHeader=_,n.deflate=E,n.deflateEnd=k,n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(t,e,n){"use strict";function r(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}e.exports=r},{}],34:[function(t,e,n){"use strict";var r=30,i=12;e.exports=function(t,e){var n,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S;n=t.state,o=t.next_in,A=t.input,a=o+(t.avail_in-5),s=t.next_out,S=t.output,u=s-(e-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,f=n.wsize,h=n.whave,d=n.wnext,p=n.window,m=n.hold,v=n.bits,g=n.lencode,$=n.distcode,y=(1<<n.lenbits)-1,b=(1<<n.distbits)-1;t:do{15>v&&(m+=A[o++]<<v,v+=8,m+=A[o++]<<v,v+=8),w=g[m&y];e:for(;;){if(_=w>>>24,m>>>=_,v-=_,_=w>>>16&255,0===_)S[s++]=65535&w;else{if(!(16&_)){if(0===(64&_)){w=g[(65535&w)+(m&(1<<_)-1)];continue e}if(32&_){n.mode=i;break t}t.msg="invalid literal/length code",n.mode=r;break t}x=65535&w,_&=15,_&&(_>v&&(m+=A[o++]<<v,v+=8),x+=m&(1<<_)-1,m>>>=_,v-=_),15>v&&(m+=A[o++]<<v,v+=8,m+=A[o++]<<v,v+=8),w=$[m&b];n:for(;;){if(_=w>>>24,m>>>=_,v-=_,_=w>>>16&255,!(16&_)){if(0===(64&_)){w=$[(65535&w)+(m&(1<<_)-1)];continue n}t.msg="invalid distance code",n.mode=r;break t}if(C=65535&w,_&=15,_>v&&(m+=A[o++]<<v,v+=8,_>v&&(m+=A[o++]<<v,v+=8)),C+=m&(1<<_)-1,C>l){t.msg="invalid distance too far back",n.mode=r;break t}if(m>>>=_,v-=_,_=s-u,C>_){if(_=C-_,_>h&&n.sane){t.msg="invalid distance too far back",n.mode=r;break t}if(E=0,k=p,0===d){if(E+=f-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}else if(_>d){if(E+=f+d-_,_-=d,x>_){x-=_;do S[s++]=p[E++];while(--_);if(E=0,x>d){_=d,x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}}else if(E+=d-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}for(;x>2;)S[s++]=k[E++],S[s++]=k[E++],S[s++]=k[E++],x-=3;x&&(S[s++]=k[E++],x>1&&(S[s++]=k[E++]))}else{E=s-C;do S[s++]=S[E++],S[s++]=S[E++],S[s++]=S[E++],x-=3;while(x>2);x&&(S[s++]=S[E++],x>1&&(S[s++]=S[E++]))}break}}break}}while(a>o&&c>s);x=v>>3,o-=x,v-=x<<3,m&=(1<<v)-1,t.next_in=o,t.next_out=s,t.avail_in=a>o?5+(a-o):5-(o-a),t.avail_out=c>s?257+(c-s):257-(s-c),n.hold=m,n.bits=v}},{}],35:[function(t,e,n){"use strict";function r(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function i(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new g.Buf16(320),this.work=new g.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function o(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=N,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new g.Buf32(pt),e.distcode=e.distdyn=new g.Buf32(mt),e.sane=1,e.back=-1,S):I}function a(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,o(t)):I}function s(t,e){var n,r;return t&&t.state?(r=t.state,0>e?(n=0,e=-e):(n=(e>>4)+1,48>e&&(e&=15)),e&&(8>e||e>15)?I:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,a(t))):I}function u(t,e){var n,r;return t?(r=new i,t.state=r,r.window=null,n=s(t,e),n!==S&&(t.state=null),n):I}function c(t){return u(t,gt)}function l(t){if($t){var e;for(m=new g.Buf32(512),v=new g.Buf32(32),e=0;144>e;)t.lens[e++]=8;for(;256>e;)t.lens[e++]=9;for(;280>e;)t.lens[e++]=7;for(;288>e;)t.lens[e++]=8;for(w(x,t.lens,0,288,m,0,t.work,{bits:9}),e=0;32>e;)t.lens[e++]=5;w(C,t.lens,0,32,v,0,t.work,{bits:5}),$t=!1}t.lencode=m,t.lenbits=9,t.distcode=v,t.distbits=5}function f(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new g.Buf8(o.wsize)),r>=o.wsize?(g.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),g.arraySet(o.window,e,n-r,i,o.wnext),r-=i,r?(g.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function h(t,e){var n,i,o,a,s,u,c,h,d,p,m,v,pt,mt,vt,gt,$t,yt,bt,wt,_t,xt,Ct,Et,kt=0,At=new g.Buf8(4),St=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return I;n=t.state,n.mode===X&&(n.mode=Y),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,p=u,m=c,xt=S;t:for(;;)switch(n.mode){case N:if(0===n.wrap){n.mode=Y;break}for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(2&n.wrap&&35615===h){n.check=0,At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0),h=0,d=0,n.mode=R;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=ft;break}if((15&h)!==j){t.msg="unknown compression method",n.mode=ft;break}if(h>>>=4,d-=4,_t=(15&h)+8,0===n.wbits)n.wbits=_t;else if(_t>n.wbits){t.msg="invalid window size",n.mode=ft;break}n.dmax=1<<_t,t.adler=n.check=1,n.mode=512&h?H:X,h=0,d=0;break;case R:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(n.flags=h,(255&n.flags)!==j){t.msg="unknown compression method",n.mode=ft;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=ft;break}n.head&&(n.head.text=h>>8&1),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=P;case P:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.head&&(n.head.time=h),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,At[2]=h>>>16&255,At[3]=h>>>24&255,n.check=y(n.check,At,4,0)),h=0,d=0,n.mode=F;case F:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.head&&(n.head.xflags=255&h,n.head.os=h>>8),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=B;case B:if(1024&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.length=h,n.head&&(n.head.extra_len=h),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0}else n.head&&(n.head.extra=null);n.mode=L;case L:if(1024&n.flags&&(v=n.length,v>u&&(v=u),v&&(n.head&&(_t=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),g.arraySet(n.head.extra,i,a,v,_t)),512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,n.length-=v),n.length))break t;n.length=0,n.mode=U;case U:if(2048&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.name+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=V;case V:if(4096&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.comment+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.comment=null);n.mode=q;case q:if(512&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h!==(65535&n.check)){t.msg="header crc mismatch",n.mode=ft;break}h=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=X;break;case H:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}t.adler=n.check=r(h),h=0,d=0,n.mode=W;case W:if(0===n.havedict)return t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,O;t.adler=n.check=1,n.mode=X;case X:if(e===k||e===A)break t;case Y:if(n.last){h>>>=7&d,d-=7&d,n.mode=ut;break}for(;3>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}switch(n.last=1&h,h>>>=1,d-=1,3&h){case 0:n.mode=Z;break;case 1:if(l(n),n.mode=et,e===A){h>>>=2,d-=2;break t}break;case 2:n.mode=J;break;case 3:t.msg="invalid block type",n.mode=ft}h>>>=2,d-=2;break;case Z:for(h>>>=7&d,d-=7&d;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if((65535&h)!==(h>>>16^65535)){t.msg="invalid stored block lengths",n.mode=ft;break}if(n.length=65535&h,h=0,d=0,n.mode=G,e===A)break t;case G:n.mode=K;case K:if(v=n.length){if(v>u&&(v=u),v>c&&(v=c),0===v)break t;g.arraySet(o,i,a,v,s),u-=v,a+=v,c-=v,s+=v,n.length-=v;break}n.mode=X;break;case J:for(;14>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(n.nlen=(31&h)+257,h>>>=5,d-=5,n.ndist=(31&h)+1,h>>>=5,d-=5,n.ncode=(15&h)+4,h>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ft;break}n.have=0,n.mode=Q;case Q:for(;n.have<n.ncode;){for(;3>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.lens[St[n.have++]]=7&h,h>>>=3,d-=3}for(;n.have<19;)n.lens[St[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Ct={bits:n.lenbits},xt=w(_,n.lens,0,19,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid code lengths set",n.mode=ft;break}n.have=0,n.mode=tt;case tt:for(;n.have<n.nlen+n.ndist;){for(;kt=n.lencode[h&(1<<n.lenbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(16>$t)h>>>=vt,d-=vt,n.lens[n.have++]=$t;else{if(16===$t){for(Et=vt+2;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h>>>=vt,d-=vt,0===n.have){t.msg="invalid bit length repeat",n.mode=ft;break}_t=n.lens[n.have-1],v=3+(3&h),h>>>=2,d-=2}else if(17===$t){for(Et=vt+3;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=vt,d-=vt,_t=0,v=3+(7&h),h>>>=3,d-=3}else{for(Et=vt+7;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=vt,d-=vt,_t=0,v=11+(127&h),h>>>=7,d-=7}if(n.have+v>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ft;break}for(;v--;)n.lens[n.have++]=_t}}if(n.mode===ft)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=ft;break}if(n.lenbits=9,Ct={bits:n.lenbits},xt=w(x,n.lens,0,n.nlen,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid literal/lengths set",n.mode=ft;break}if(n.distbits=6,n.distcode=n.distdyn,Ct={bits:n.distbits},xt=w(C,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Ct),n.distbits=Ct.bits,xt){t.msg="invalid distances set",n.mode=ft;break}if(n.mode=et,e===A)break t;case et:n.mode=nt;case nt:if(u>=6&&c>=258){t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,b(t,m),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,n.mode===X&&(n.back=-1);break}for(n.back=0;kt=n.lencode[h&(1<<n.lenbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(gt&&0===(240&gt)){for(yt=vt,bt=gt,wt=$t;kt=n.lencode[wt+((h&(1<<yt+bt)-1)>>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,n.length=$t,0===gt){n.mode=st;break}if(32&gt){n.back=-1,n.mode=X;break}if(64&gt){t.msg="invalid literal/length code",n.mode=ft;break}n.extra=15&gt,n.mode=rt;case rt:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.length+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=it;case it:for(;kt=n.distcode[h&(1<<n.distbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(0===(240&gt)){for(yt=vt,bt=gt,wt=$t;kt=n.distcode[wt+((h&(1<<yt+bt)-1)>>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,64&gt){t.msg="invalid distance code",n.mode=ft;break}n.offset=$t,n.extra=15&gt,n.mode=ot;case ot:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.offset+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ft;break}n.mode=at;case at:if(0===c)break t;if(v=m-c,n.offset>v){if(v=n.offset-v,v>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ft;break}v>n.wnext?(v-=n.wnext,pt=n.wsize-v):pt=n.wnext-v,v>n.length&&(v=n.length),mt=n.window}else mt=o,pt=s-n.offset,v=n.length;v>c&&(v=c),c-=v,n.length-=v;do o[s++]=mt[pt++];while(--v);0===n.length&&(n.mode=nt);break;case st:if(0===c)break t;o[s++]=n.length,c--,n.mode=nt;break;case ut:if(n.wrap){for(;32>d;){if(0===u)break t;u--,h|=i[a++]<<d,d+=8}if(m-=c,t.total_out+=m,n.total+=m,m&&(t.adler=n.check=n.flags?y(n.check,o,m,s-m):$(n.check,o,m,s-m)),m=c,(n.flags?h:r(h))!==n.check){t.msg="incorrect data check",n.mode=ft;break}h=0,d=0}n.mode=ct;case ct:if(n.wrap&&n.flags){for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=ft;break}h=0,d=0}n.mode=lt;case lt:xt=T;break t;case ft:xt=z;break t;case ht:return M;case dt:default:return I}return t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,(n.wsize||m!==t.avail_out&&n.mode<ft&&(n.mode<ut||e!==E))&&f(t,t.output,t.next_out,m-t.avail_out)?(n.mode=ht,M):(p-=t.avail_in,m-=t.avail_out,t.total_in+=p,t.total_out+=m,n.total+=m,n.wrap&&m&&(t.adler=n.check=n.flags?y(n.check,o,m,t.next_out-m):$(n.check,o,m,t.next_out-m)),t.data_type=n.bits+(n.last?64:0)+(n.mode===X?128:0)+(n.mode===et||n.mode===G?256:0),(0===p&&0===m||e===E)&&xt===S&&(xt=D),xt)}function d(t){if(!t||!t.state)return I;var e=t.state;return e.window&&(e.window=null),t.state=null,S}function p(t,e){var n;return t&&t.state?(n=t.state,0===(2&n.wrap)?I:(n.head=e,e.done=!1,S)):I}var m,v,g=t("../utils/common"),$=t("./adler32"),y=t("./crc32"),b=t("./inffast"),w=t("./inftrees"),_=0,x=1,C=2,E=4,k=5,A=6,S=0,T=1,O=2,I=-2,z=-3,M=-4,D=-5,j=8,N=1,R=2,P=3,F=4,B=5,L=6,U=7,V=8,q=9,H=10,W=11,X=12,Y=13,Z=14,G=15,K=16,J=17,Q=18,tt=19,et=20,nt=21,rt=22,it=23,ot=24,at=25,st=26,ut=27,ct=28,lt=29,ft=30,ht=31,dt=32,pt=852,mt=592,vt=15,gt=vt,$t=!0;n.inflateReset=a,n.inflateReset2=s,n.inflateResetKeep=o,n.inflateInit=c,n.inflateInit2=u,n.inflate=h,n.inflateEnd=d,n.inflateGetHeader=p,n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(t,e,n){"use strict";var r=t("../utils/common"),i=15,o=852,a=592,s=0,u=1,c=2,l=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],d=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,n,p,m,v,g,$){var y,b,w,_,x,C,E,k,A,S=$.bits,T=0,O=0,I=0,z=0,M=0,D=0,j=0,N=0,R=0,P=0,F=null,B=0,L=new r.Buf16(i+1),U=new r.Buf16(i+1),V=null,q=0;for(T=0;i>=T;T++)L[T]=0;for(O=0;p>O;O++)L[e[n+O]]++;for(M=S,z=i;z>=1&&0===L[z];z--);if(M>z&&(M=z),0===z)return m[v++]=20971520,m[v++]=20971520,$.bits=1,0;for(I=1;z>I&&0===L[I];I++);for(I>M&&(M=I),
-N=1,T=1;i>=T;T++)if(N<<=1,N-=L[T],0>N)return-1;if(N>0&&(t===s||1!==z))return-1;for(U[1]=0,T=1;i>T;T++)U[T+1]=U[T]+L[T];for(O=0;p>O;O++)0!==e[n+O]&&(g[U[e[n+O]]++]=O);if(t===s?(F=V=g,C=19):t===u?(F=l,B-=257,V=f,q-=257,C=256):(F=h,V=d,C=-1),P=0,O=0,T=I,x=v,D=M,j=0,w=-1,R=1<<M,_=R-1,t===u&&R>o||t===c&&R>a)return 1;for(var H=0;;){H++,E=T-j,g[O]<C?(k=0,A=g[O]):g[O]>C?(k=V[q+g[O]],A=F[B+g[O]]):(k=96,A=0),y=1<<T-j,b=1<<D,I=b;do b-=y,m[x+(P>>j)+b]=E<<24|k<<16|A|0;while(0!==b);for(y=1<<T-1;P&y;)y>>=1;if(0!==y?(P&=y-1,P+=y):P=0,O++,0===--L[T]){if(T===z)break;T=e[n+g[O]]}if(T>M&&(P&_)!==w){for(0===j&&(j=M),x+=I,D=T-j,N=1<<D;z>D+j&&(N-=L[D+j],!(0>=N));)D++,N<<=1;if(R+=1<<D,t===u&&R>o||t===c&&R>a)return 1;w=P&_,m[w]=M<<24|D<<16|x-v|0}}return 0!==P&&(m[x+P]=T-j<<24|64<<16|0),$.bits=M,0}},{"../utils/common":27}],37:[function(t,e,n){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(t,e,n){"use strict";function r(t){for(var e=t.length;--e>=0;)t[e]=0}function i(t){return 256>t?at[t]:at[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function a(t,e,n){t.bi_valid>X-n?(t.bi_buf|=e<<t.bi_valid&65535,o(t,t.bi_buf),t.bi_buf=e>>X-t.bi_valid,t.bi_valid+=n-X):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function s(t,e,n){a(t,n[2*e],n[2*e+1])}function u(t,e){var n=0;do n|=1&t,t>>>=1,n<<=1;while(--e>0);return n>>>1}function c(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function l(t,e){var n,r,i,o,a,s,u=e.dyn_tree,c=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,h=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(o=0;W>=o;o++)t.bl_count[o]=0;for(u[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;H>n;n++)r=t.heap[n],o=u[2*u[2*r+1]+1]+1,o>p&&(o=p,m++),u[2*r+1]=o,r>c||(t.bl_count[o]++,a=0,r>=d&&(a=h[r-d]),s=u[2*r],t.opt_len+=s*(o+a),f&&(t.static_len+=s*(l[2*r+1]+a)));if(0!==m){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)i=t.heap[--n],i>c||(u[2*i+1]!==o&&(t.opt_len+=(o-u[2*i+1])*u[2*i],u[2*i+1]=o),r--)}}function f(t,e,n){var r,i,o=new Array(W+1),a=0;for(r=1;W>=r;r++)o[r]=a=a+n[r-1]<<1;for(i=0;e>=i;i++){var s=t[2*i+1];0!==s&&(t[2*i]=u(o[s]++,s))}}function h(){var t,e,n,r,i,o=new Array(W+1);for(n=0,r=0;B-1>r;r++)for(ut[r]=n,t=0;t<1<<Q[r];t++)st[n++]=r;for(st[n-1]=r,i=0,r=0;16>r;r++)for(ct[r]=i,t=0;t<1<<tt[r];t++)at[i++]=r;for(i>>=7;V>r;r++)for(ct[r]=i<<7,t=0;t<1<<tt[r]-7;t++)at[256+i++]=r;for(e=0;W>=e;e++)o[e]=0;for(t=0;143>=t;)it[2*t+1]=8,t++,o[8]++;for(;255>=t;)it[2*t+1]=9,t++,o[9]++;for(;279>=t;)it[2*t+1]=7,t++,o[7]++;for(;287>=t;)it[2*t+1]=8,t++,o[8]++;for(f(it,U+1,o),t=0;V>t;t++)ot[2*t+1]=5,ot[2*t]=u(t,5);lt=new dt(it,Q,L+1,U,W),ft=new dt(ot,tt,0,V,W),ht=new dt(new Array(0),et,0,q,Y)}function d(t){var e;for(e=0;U>e;e++)t.dyn_ltree[2*e]=0;for(e=0;V>e;e++)t.dyn_dtree[2*e]=0;for(e=0;q>e;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*Z]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function p(t){t.bi_valid>8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,n,r){p(t),r&&(o(t,n),o(t,~n)),O.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function v(t,e,n,r){var i=2*e,o=2*n;return t[i]<t[o]||t[i]===t[o]&&r[e]<=r[n]}function g(t,e,n){for(var r=t.heap[n],i=n<<1;i<=t.heap_len&&(i<t.heap_len&&v(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!v(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r}function $(t,e,n){var r,o,u,c,l=0;if(0!==t.last_lit)do r=t.pending_buf[t.d_buf+2*l]<<8|t.pending_buf[t.d_buf+2*l+1],o=t.pending_buf[t.l_buf+l],l++,0===r?s(t,o,e):(u=st[o],s(t,u+L+1,e),c=Q[u],0!==c&&(o-=ut[u],a(t,o,c)),r--,u=i(r),s(t,u,n),c=tt[u],0!==c&&(r-=ct[u],a(t,r,c)));while(l<t.last_lit);s(t,Z,e)}function y(t,e){var n,r,i,o=e.dyn_tree,a=e.stat_desc.static_tree,s=e.stat_desc.has_stree,u=e.stat_desc.elems,c=-1;for(t.heap_len=0,t.heap_max=H,n=0;u>n;n++)0!==o[2*n]?(t.heap[++t.heap_len]=c=n,t.depth[n]=0):o[2*n+1]=0;for(;t.heap_len<2;)i=t.heap[++t.heap_len]=2>c?++c:0,o[2*i]=1,t.depth[i]=0,t.opt_len--,s&&(t.static_len-=a[2*i+1]);for(e.max_code=c,n=t.heap_len>>1;n>=1;n--)g(t,o,n);i=u;do n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],g(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,g(t,o,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],l(t,e),f(o,c,t.bl_count)}function b(t,e,n){var r,i,o=-1,a=e[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),e[2*(n+1)+1]=65535,r=0;n>=r;r++)i=a,a=e[2*(r+1)+1],++s<u&&i===a||(c>s?t.bl_tree[2*i]+=s:0!==i?(i!==o&&t.bl_tree[2*i]++,t.bl_tree[2*G]++):10>=s?t.bl_tree[2*K]++:t.bl_tree[2*J]++,s=0,o=i,0===a?(u=138,c=3):i===a?(u=6,c=3):(u=7,c=4))}function w(t,e,n){var r,i,o=-1,u=e[1],c=0,l=7,f=4;for(0===u&&(l=138,f=3),r=0;n>=r;r++)if(i=u,u=e[2*(r+1)+1],!(++c<l&&i===u)){if(f>c){do s(t,i,t.bl_tree);while(0!==--c)}else 0!==i?(i!==o&&(s(t,i,t.bl_tree),c--),s(t,G,t.bl_tree),a(t,c-3,2)):10>=c?(s(t,K,t.bl_tree),a(t,c-3,3)):(s(t,J,t.bl_tree),a(t,c-11,7));c=0,o=i,0===u?(l=138,f=3):i===u?(l=6,f=3):(l=7,f=4)}}function _(t){var e;for(b(t,t.dyn_ltree,t.l_desc.max_code),b(t,t.dyn_dtree,t.d_desc.max_code),y(t,t.bl_desc),e=q-1;e>=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function x(t,e,n,r){var i;for(a(t,e-257,5),a(t,n-1,5),a(t,r-4,4),i=0;r>i;i++)a(t,t.bl_tree[2*nt[i]+1],3);w(t,t.dyn_ltree,e-1),w(t,t.dyn_dtree,n-1)}function C(t){var e,n=4093624447;for(e=0;31>=e;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return z;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return M;for(e=32;L>e;e++)if(0!==t.dyn_ltree[2*e])return M;return z}function E(t){mt||(h(),mt=!0),t.l_desc=new pt(t.dyn_ltree,lt),t.d_desc=new pt(t.dyn_dtree,ft),t.bl_desc=new pt(t.bl_tree,ht),t.bi_buf=0,t.bi_valid=0,d(t)}function k(t,e,n,r){a(t,(j<<1)+(r?1:0),3),m(t,e,n,!0)}function A(t){a(t,N<<1,3),s(t,Z,it),c(t)}function S(t,e,n,r){var i,o,s=0;t.level>0?(t.strm.data_type===D&&(t.strm.data_type=C(t)),y(t,t.l_desc),y(t,t.d_desc),s=_(t),i=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,i>=o&&(i=o)):i=o=n+5,i>=n+4&&-1!==e?k(t,e,n,r):t.strategy===I||o===i?(a(t,(N<<1)+(r?1:0),3),$(t,it,ot)):(a(t,(R<<1)+(r?1:0),3),x(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),$(t,t.dyn_ltree,t.dyn_dtree)),d(t),r&&p(t)}function T(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(st[n]+L+1)]++,t.dyn_dtree[2*i(e)]++),t.last_lit===t.lit_bufsize-1}var O=t("../utils/common"),I=4,z=0,M=1,D=2,j=0,N=1,R=2,P=3,F=258,B=29,L=256,U=L+1+B,V=30,q=19,H=2*U+1,W=15,X=16,Y=7,Z=256,G=16,K=17,J=18,Q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],tt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,it=new Array(2*(U+2));r(it);var ot=new Array(2*V);r(ot);var at=new Array(rt);r(at);var st=new Array(F-P+1);r(st);var ut=new Array(B);r(ut);var ct=new Array(V);r(ct);var lt,ft,ht,dt=function(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length},pt=function(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e},mt=!1;n._tr_init=E,n._tr_stored_block=k,n._tr_flush_block=S,n._tr_tally=T,n._tr_align=A},{"../utils/common":27}],39:[function(t,e,n){"use strict";function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=r},{}]},{},[9])(9)}),function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,n){return function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g={}.hasOwnProperty,$=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},y=[].slice;null==this.Tether&&(this.Tether={modules:[]}),l=function(t){var e,n,r,i,o;if(n=getComputedStyle(t).position,"fixed"===n)return t;for(r=void 0,e=t;e=e.parentNode;){try{i=getComputedStyle(e)}catch(a){}if(null==i)return e;if(/(auto|scroll)/.test(i.overflow+i["overflow-y"]+i["overflow-x"])&&("absolute"!==n||"relative"===(o=i.position)||"absolute"===o||"fixed"===o))return e}return document.body},p=function(){var t;return t=0,function(){return t++}}(),v={},u=function(t){var e,r,o,a,s;if(o=t._tetherZeroElement,null==o&&(o=t.createElement("div"),o.setAttribute("data-tether-id",p()),i(o.style,{top:0,left:0,position:"absolute"}),t.body.appendChild(o),t._tetherZeroElement=o),e=o.getAttribute("data-tether-id"),null==v[e]){v[e]={},s=o.getBoundingClientRect();for(r in s)a=s[r],v[e][r]=a;n(function(){return v[e]=void 0})}return v[e]},h=null,a=function(t){var e,n,r,i,o,a,s;t===document?(n=document,t=document.documentElement):n=t.ownerDocument,r=n.documentElement,e={},s=t.getBoundingClientRect();for(i in s)a=s[i],e[i]=a;return o=u(n),e.top-=o.top,e.left-=o.left,null==e.width&&(e.width=document.body.scrollWidth-e.left-e.right),null==e.height&&(e.height=document.body.scrollHeight-e.top-e.bottom),e.top=e.top-r.clientTop,e.left=e.left-r.clientLeft,e.right=n.body.clientWidth-e.width-e.left,e.bottom=n.body.clientHeight-e.height-e.top,e},s=function(t){return t.offsetParent||document.documentElement},c=function(){var t,e,n,r,o;return t=document.createElement("div"),t.style.width="100%",t.style.height="200px",e=document.createElement("div"),i(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e),r=t.offsetWidth,e.style.overflow="scroll",o=t.offsetWidth,r===o&&(o=e.clientWidth),document.body.removeChild(e),n=r-o,{width:n,height:n}},i=function(t){var e,n,r,i,o,a,s;for(null==t&&(t={}),e=[],Array.prototype.push.apply(e,arguments),s=e.slice(1),o=0,a=s.length;a>o;o++)if(r=s[o])for(n in r)g.call(r,n)&&(i=r[n],t[n]=i);return t},d=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.remove(n));return a}return t.className=t.className.replace(new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi")," ")},e=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.add(n));return a}return d(t,e),t.className+=" "+e},f=function(t,e){return null!=t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},m=function(t,n,r){var i,o,a,s,u,c;for(o=0,s=r.length;s>o;o++)i=r[o],$.call(n,i)<0&&f(t,i)&&d(t,i);for(c=[],a=0,u=n.length;u>a;a++)i=n[a],f(t,i)?c.push(void 0):c.push(e(t,i));return c},r=[],n=function(t){return r.push(t)},o=function(){var t,e;for(e=[];t=r.pop();)e.push(t());return e},t=function(){function t(){}return t.prototype.on=function(t,e,n,r){var i;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(i=this.bindings)[t]&&(i[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},t.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},t.prototype.off=function(t,e){var n,r,i;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,i=[];n<this.bindings[t].length;)this.bindings[t][n].handler===e?i.push(this.bindings[t].splice(n,1)):i.push(n++);return i}},t.prototype.trigger=function(){var t,e,n,r,i,o,a,s,u;if(n=arguments[0],t=2<=arguments.length?y.call(arguments,1):[],null!=(a=this.bindings)?a[n]:void 0){for(i=0,u=[];i<this.bindings[n].length;)s=this.bindings[n][i],r=s.handler,e=s.ctx,o=s.once,r.apply(null!=e?e:this,t),o?u.push(this.bindings[n].splice(i,1)):u.push(i++);return u}},t}(),this.Tether.Utils={getScrollParent:l,getBounds:a,getOffsetParent:s,extend:i,addClass:e,removeClass:d,hasClass:f,updateClasses:m,defer:n,flush:o,uniqueId:p,Evented:t,getScrollBarSize:c}}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=[].slice,O=function(t,e){return function(){return t.apply(e,arguments)}};if(null==this.Tether)throw new Error("You must include the utils.js file before tether.js");r=this.Tether,S=r.Utils,m=S.getScrollParent,v=S.getSize,d=S.getOuterSize,f=S.getBounds,h=S.getOffsetParent,c=S.extend,i=S.addClass,_=S.removeClass,E=S.updateClasses,u=S.defer,l=S.flush,p=S.getScrollBarSize,k=function(t,e,n){return null==n&&(n=1),t+n>=e&&e>=t-n},C=function(){var t,e,n,r,i;for(t=document.createElement("div"),i=["transform","webkitTransform","OTransform","MozTransform","msTransform"],n=0,r=i.length;r>n;n++)if(e=i[n],void 0!==t.style[e])return e}(),x=[],w=function(){var t,e,n;for(e=0,n=x.length;n>e;e++)t=x[e],t.position(!1);return l()},g=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},function(){var t,e,n,r,i,o,a,s,u;for(e=null,n=null,r=null,i=function(){if(null!=n&&n>16)return n=Math.min(n-16,250),void(r=setTimeout(i,250));if(!(null!=e&&g()-e<10))return null!=r&&(clearTimeout(r),r=null),e=g(),w(),n=g()-e},s=["resize","scroll","touchmove"],u=[],o=0,a=s.length;a>o;o++)t=s[o],u.push(window.addEventListener(t,i));return u}(),t={center:"center",left:"right",right:"left"},e={middle:"middle",top:"bottom",bottom:"top"},n={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},s=function(n,r){var i,o;return i=n.left,o=n.top,"auto"===i&&(i=t[r.left]),"auto"===o&&(o=e[r.top]),{left:i,top:o}},a=function(t){var e,r;return{left:null!=(e=n[t.left])?e:t.left,top:null!=(r=n[t.top])?r:t.top}},o=function(){var t,e,n,r,i,o,a;for(e=1<=arguments.length?T.call(arguments,0):[],n={top:0,left:0},i=0,o=e.length;o>i;i++)a=e[i],r=a.top,t=a.left,"string"==typeof r&&(r=parseFloat(r,10)),"string"==typeof t&&(t=parseFloat(t,10)),n.top+=r,n.left+=t;return n},$=function(t,e){return"string"==typeof t.left&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top,10)/100*e.height),t},y=b=function(t){var e,n,r;return r=t.split(" "),n=r[0],e=r[1],{top:n,left:e}},A=function(){function t(t){this.position=O(this.position,this);var e,n,i,o,a;for(x.push(this),this.history=[],this.setOptions(t,!1),o=r.modules,n=0,i=o.length;i>n;n++)e=o[n],null!=(a=e.initialize)&&a.call(this);this.position()}return t.modules=[],t.prototype.getClass=function(t){var e,n;return(null!=(e=this.options.classes)?e[t]:void 0)?this.options.classes[t]:(null!=(n=this.options.classes)?n[t]:void 0)!==!1?this.options.classPrefix?""+this.options.classPrefix+"-"+t:t:""},t.prototype.setOptions=function(t,e){var n,r,o,a,s,u;for(this.options=t,null==e&&(e=!0),n={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"},this.options=c(n,this.options),s=this.options,this.element=s.element,this.target=s.target,this.targetModifier=s.targetModifier,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),u=["element","target"],o=0,a=u.length;a>o;o++){if(r=u[o],null==this[r])throw new Error("Tether Error: Both element and target must be defined");null!=this[r].jquery?this[r]=this[r][0]:"string"==typeof this[r]&&(this[r]=document.querySelector(this[r]))}if(i(this.element,this.getClass("element")),i(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");return this.targetAttachment=y(this.options.targetAttachment),this.attachment=y(this.options.attachment),this.offset=b(this.options.offset),this.targetOffset=b(this.options.targetOffset),null!=this.scrollParent&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParent=this.target:this.scrollParent=m(this.target),this.options.enabled!==!1?this.enable(e):void 0},t.prototype.getTargetBounds=function(){var t,e,n,r,i,o,a,s,u;if(null==this.targetModifier)return f(this.target);switch(this.targetModifier){case"visible":return this.target===document.body?{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth}:(t=f(this.target),i={height:t.height,width:t.width,top:t.top,left:t.left},i.height=Math.min(i.height,t.height-(pageYOffset-t.top)),i.height=Math.min(i.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),i.height=Math.min(innerHeight,i.height),i.height-=2,i.width=Math.min(i.width,t.width-(pageXOffset-t.left)),i.width=Math.min(i.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),i.width=Math.min(innerWidth,i.width),i.width-=2,i.top<pageYOffset&&(i.top=pageYOffset),i.left<pageXOffset&&(i.left=pageXOffset),i);case"scroll-handle":return u=this.target,u===document.body?(u=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=f(u),s=getComputedStyle(u),n=u.scrollWidth>u.clientWidth||"scroll"===[s.overflow,s.overflowX]||this.target!==document.body,o=0,n&&(o=15),r=t.height-parseFloat(s.borderTopWidth)-parseFloat(s.borderBottomWidth)-o,i={width:15,height:.975*r*(r/u.scrollHeight),left:t.left+t.width-parseFloat(s.borderLeftWidth)-15},e=0,408>r&&this.target===document.body&&(e=-11e-5*Math.pow(r,2)-.00727*r+22.58),this.target!==document.body&&(i.height=Math.max(i.height,24)),a=this.target.scrollTop/(u.scrollHeight-r),i.top=a*(r-i.height-e)+t.top+parseFloat(s.borderTopWidth),this.target===document.body&&(i.height=Math.max(i.height,24)),i}},t.prototype.clearCache=function(){return this._cache={}},t.prototype.cache=function(t,e){return null==this._cache&&(this._cache={}),null==this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]},t.prototype.enable=function(t){return null==t&&(t=!0),i(this.target,this.getClass("enabled")),i(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParent!==document&&this.scrollParent.addEventListener("scroll",this.position),t?this.position():void 0},t.prototype.disable=function(){return _(this.target,this.getClass("enabled")),_(this.element,this.getClass("enabled")),this.enabled=!1,null!=this.scrollParent?this.scrollParent.removeEventListener("scroll",this.position):void 0},t.prototype.destroy=function(){var t,e,n,r,i;for(this.disable(),i=[],t=n=0,r=x.length;r>n;t=++n){if(e=x[t],e===this){x.splice(t,1);break}i.push(void 0)}return i},t.prototype.updateAttachClasses=function(t,e){var n,r,i,o,a,s,c,l,f,h=this;for(null==t&&(t=this.attachment),null==e&&(e=this.targetAttachment),o=["left","top","bottom","right","middle","center"],(null!=(f=this._addAttachClasses)?f.length:void 0)&&this._addAttachClasses.splice(0,this._addAttachClasses.length),n=null!=this._addAttachClasses?this._addAttachClasses:this._addAttachClasses=[],t.top&&n.push(""+this.getClass("element-attached")+"-"+t.top),t.left&&n.push(""+this.getClass("element-attached")+"-"+t.left),e.top&&n.push(""+this.getClass("target-attached")+"-"+e.top),e.left&&n.push(""+this.getClass("target-attached")+"-"+e.left),r=[],a=0,c=o.length;c>a;a++)i=o[a],r.push(""+this.getClass("element-attached")+"-"+i);for(s=0,l=o.length;l>s;s++)i=o[s],r.push(""+this.getClass("target-attached")+"-"+i);return u(function(){return null!=h._addAttachClasses?(E(h.element,h._addAttachClasses,r),E(h.target,h._addAttachClasses,r),h._addAttachClasses=void 0):void 0})},t.prototype.position=function(t){var e,n,i,u,c,d,m,v,g,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,R,P,F,B,L,U,V,q,H=this;if(null==t&&(t=!0),this.enabled){for(this.clearCache(),T=s(this.targetAttachment,this.attachment),this.updateAttachClasses(this.attachment,T),e=this.cache("element-bounds",function(){return f(H.element)}),D=e.width,i=e.height,0===D&&0===i&&null!=this.lastSize?(F=this.lastSize,D=F.width,i=F.height):this.lastSize={width:D,height:i},z=I=this.cache("target-bounds",function(){return H.getTargetBounds()}),g=$(a(this.attachment),{width:D,height:i}),O=$(a(T),z),c=$(this.offset,{width:D,height:i}),d=$(this.targetOffset,z),g=o(g,c),O=o(O,d),u=I.left+O.left-g.left,M=I.top+O.top-g.top,B=r.modules,j=0,R=B.length;R>j;j++)if(m=B[j],C=m.position.call(this,{left:u,top:M,targetAttachment:T,targetPos:I,attachment:this.attachment,elementPos:e,offset:g,targetOffset:O,manualOffset:c,manualTargetOffset:d,scrollbarSize:A}),null!=C&&"object"==typeof C){if(C===!1)return!1;M=C.top,u=C.left}if(v={page:{top:M,left:u},viewport:{top:M-pageYOffset,bottom:pageYOffset-M-i+innerHeight,left:u-pageXOffset,right:pageXOffset-u-D+innerWidth}},document.body.scrollWidth>window.innerWidth&&(A=this.cache("scrollbar-size",p),v.viewport.bottom-=A.height),document.body.scrollHeight>window.innerHeight&&(A=this.cache("scrollbar-size",p),v.viewport.right-=A.width),(""!==(L=document.body.style.position)&&"static"!==L||""!==(U=document.body.parentElement.style.position)&&"static"!==U)&&(v.page.bottom=document.body.scrollHeight-M-i,v.page.right=document.body.scrollWidth-u-D),(null!=(V=this.options.optimizations)?V.moveElement:void 0)!==!1&&null==this.targetModifier){for(b=this.cache("target-offsetparent",function(){return h(H.target)}),x=this.cache("target-offsetparent-bounds",function(){return f(b)}),_=getComputedStyle(b),n=getComputedStyle(this.element),w=x,y={},q=["Top","Left","Bottom","Right"],N=0,P=q.length;P>N;N++)S=q[N],y[S.toLowerCase()]=parseFloat(_["border"+S+"Width"]);x.right=document.body.scrollWidth-x.left-w.width+y.right,x.bottom=document.body.scrollHeight-x.top-w.height+y.bottom,v.page.top>=x.top+y.top&&v.page.bottom>=x.bottom&&v.page.left>=x.left+y.left&&v.page.right>=x.right&&(k=b.scrollTop,E=b.scrollLeft,v.offset={top:v.page.top-x.top+k-y.top,left:v.page.left-x.left+E-y.left})}return this.move(v),this.history.unshift(v),this.history.length>3&&this.history.pop(),t&&l(),!0}},t.prototype.move=function(t){var e,n,r,i,o,a,s,l,f,d,p,m,v,g,$,y,b,w=this;if(null!=this.element.parentNode){l={};for(d in t){l[d]={};for(i in t[d]){for(r=!1,y=this.history,g=0,$=y.length;$>g;g++)if(s=y[g],!k(null!=(b=s[d])?b[i]:void 0,t[d][i])){r=!0;break}r||(l[d][i]=!0)}}e={top:"",left:"",right:"",bottom:""},f=function(t,n){var r,i,o;return(null!=(o=w.options.optimizations)?o.gpu:void 0)===!1?(t.top?e.top=""+n.top+"px":e.bottom=""+n.bottom+"px",t.left?e.left=""+n.left+"px":e.right=""+n.right+"px"):(t.top?(e.top=0,i=n.top):(e.bottom=0,i=-n.bottom),t.left?(e.left=0,r=n.left):(e.right=0,r=-n.right),e[C]="translateX("+Math.round(r)+"px) translateY("+Math.round(i)+"px)","msTransform"!==C?e[C]+=" translateZ(0)":void 0)},o=!1,(l.page.top||l.page.bottom)&&(l.page.left||l.page.right)?(e.position="absolute",f(l.page,t.page)):(l.viewport.top||l.viewport.bottom)&&(l.viewport.left||l.viewport.right)?(e.position="fixed",f(l.viewport,t.viewport)):null!=l.offset&&l.offset.top&&l.offset.left?(e.position="absolute",a=this.cache("target-offsetparent",function(){return h(w.target)}),h(this.element)!==a&&u(function(){return w.element.parentNode.removeChild(w.element),a.appendChild(w.element)}),f(l.offset,t.offset),o=!0):(e.position="absolute",f({top:!0,left:!0},t.page)),o||"BODY"===this.element.parentNode.tagName||(this.element.parentNode.removeChild(this.element),document.body.appendChild(this.element)),v={},m=!1;for(i in e)p=e[i],n=this.element.style[i],""===n||""===p||"top"!==i&&"left"!==i&&"bottom"!==i&&"right"!==i||(n=parseFloat(n),p=parseFloat(p)),n!==p&&(m=!0,v[i]=e[i]);return m?u(function(){return c(w.element.style,v)}):void 0}},t}(),r.position=w,this.Tether=c(A,r)}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};c=this.Tether.Utils,a=c.getOuterSize,o=c.getBounds,s=c.getSize,r=c.extend,u=c.updateClasses,n=c.defer,e={left:"right",right:"left",top:"bottom",bottom:"top",middle:"middle"},t=["left","top","right","bottom"],i=function(e,n){var r,i,a,s,u,c,l;if("scrollParent"===n?n=e.scrollParent:"window"===n&&(n=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),n===document&&(n=n.documentElement),null!=n.nodeType)for(i=s=o(n),u=getComputedStyle(n),n=[i.left,i.top,s.width+i.left,s.height+i.top],r=c=0,l=t.length;l>c;r=++c)a=t[r],a=a[0].toUpperCase()+a.substr(1),"Top"===a||"Left"===a?n[r]+=parseFloat(u["border"+a+"Width"]):n[r]-=parseFloat(u["border"+a+"Width"]);return n},this.Tether.modules.push({position:function(e){var a,s,c,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,R,P,F,B,L,U,V,q,H,W,X,Y,Z,G,K,J,Q,tt,et=this;if(M=e.top,$=e.left,S=e.targetAttachment,!this.options.constraints)return!0;for(E=function(e){var n,r,i,o;for(et.removeClass(e),o=[],r=0,i=t.length;i>r;r++)n=t[r],o.push(et.removeClass(""+e+"-"+n));return o},X=this.cache("element-bounds",function(){return o(et.element)}),g=X.height,D=X.width,0===D&&0===g&&null!=this.lastSize&&(Y=this.lastSize,D=Y.width,g=Y.height),O=this.cache("target-bounds",function(){return et.getTargetBounds()}),T=O.height,I=O.width,A={},v={},s=[this.getClass("pinned"),this.getClass("out-of-bounds")],Z=this.options.constraints,j=0,F=Z.length;F>j;j++)m=Z[j],m.outOfBoundsClass&&s.push(m.outOfBoundsClass),m.pinnedClass&&s.push(m.pinnedClass);for(N=0,B=s.length;B>N;N++)for(p=s[N],G=["left","top","right","bottom"],R=0,L=G.length;L>R;R++)k=G[R],s.push(""+p+"-"+k);for(a=[],A=r({},S),v=r({},this.attachment),K=this.options.constraints,P=0,U=K.length;U>P;P++){if(m=K[P],z=m.to,c=m.attachment,_=m.pin,null==c&&(c=""),l.call(c," ")>=0?(J=c.split(" "),d=J[0],h=J[1]):h=d=c,f=i(this,z),("target"===d||"both"===d)&&(M<f[1]&&"top"===A.top&&(M+=T,A.top="bottom"),M+g>f[3]&&"bottom"===A.top&&(M-=T,A.top="top")),"together"===d&&(M<f[1]&&"top"===A.top&&("bottom"===v.top?(M+=T,A.top="bottom",M+=g,v.top="top"):"top"===v.top&&(M+=T,A.top="bottom",M-=g,v.top="bottom")),M+g>f[3]&&"bottom"===A.top&&("top"===v.top?(M-=T,A.top="top",M-=g,v.top="bottom"):"bottom"===v.top&&(M-=T,A.top="top",M+=g,v.top="top")),"middle"===A.top&&(M+g>f[3]&&"top"===v.top?(M-=g,v.top="bottom"):M<f[1]&&"bottom"===v.top&&(M+=g,v.top="top"))),("target"===h||"both"===h)&&($<f[0]&&"left"===A.left&&($+=I,A.left="right"),$+D>f[2]&&"right"===A.left&&($-=I,A.left="left")),"together"===h&&($<f[0]&&"left"===A.left?"right"===v.left?($+=I,A.left="right",$+=D,v.left="left"):"left"===v.left&&($+=I,A.left="right",$-=D,v.left="right"):$+D>f[2]&&"right"===A.left?"left"===v.left?($-=I,A.left="left",$-=D,v.left="right"):"right"===v.left&&($-=I,A.left="left",$+=D,v.left="left"):"center"===A.left&&($+D>f[2]&&"left"===v.left?($-=D,v.left="right"):$<f[0]&&"right"===v.left&&($+=D,v.left="left"))),("element"===d||"both"===d)&&(M<f[1]&&"bottom"===v.top&&(M+=g,v.top="top"),M+g>f[3]&&"top"===v.top&&(M-=g,v.top="bottom")),("element"===h||"both"===h)&&($<f[0]&&"right"===v.left&&($+=D,v.left="left"),$+D>f[2]&&"left"===v.left&&($-=D,v.left="right")),"string"==typeof _?_=function(){var t,e,n,r;for(n=_.split(","),r=[],e=0,t=n.length;t>e;e++)w=n[e],r.push(w.trim());return r}():_===!0&&(_=["top","left","right","bottom"]),_||(_=[]),x=[],y=[],M<f[1]&&(l.call(_,"top")>=0?(M=f[1],x.push("top")):y.push("top")),M+g>f[3]&&(l.call(_,"bottom")>=0?(M=f[3]-g,x.push("bottom")):y.push("bottom")),$<f[0]&&(l.call(_,"left")>=0?($=f[0],x.push("left")):y.push("left")),$+D>f[2]&&(l.call(_,"right")>=0?($=f[2]-D,x.push("right")):y.push("right")),x.length)for(C=null!=(Q=this.options.pinnedClass)?Q:this.getClass("pinned"),a.push(C),H=0,V=x.length;V>H;H++)k=x[H],a.push(""+C+"-"+k);if(y.length)for(b=null!=(tt=this.options.outOfBoundsClass)?tt:this.getClass("out-of-bounds"),a.push(b),W=0,q=y.length;q>W;W++)k=y[W],a.push(""+b+"-"+k);(l.call(x,"left")>=0||l.call(x,"right")>=0)&&(v.left=A.left=!1),(l.call(x,"top")>=0||l.call(x,"bottom")>=0)&&(v.top=A.top=!1),(A.top!==S.top||A.left!==S.left||v.top!==this.attachment.top||v.left!==this.attachment.left)&&this.updateAttachClasses(v,A)}return n(function(){return u(et.target,a,s),u(et.element,a,s)}),{top:M,left:$}}})}.call(this),function(){var t,e,n,r;r=this.Tether.Utils,e=r.getBounds,n=r.updateClasses,t=r.defer,this.Tether.modules.push({position:function(r){var i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=this;if(p=r.top,c=r.left,C=this.cache("element-bounds",function(){return e(T.element)}),u=C.height,m=C.width,d=this.getTargetBounds(),s=p+u,l=c+m,i=[],p<=d.bottom&&s>=d.top)for(E=["left","right"],v=0,b=E.length;b>v;v++)f=E[v],((k=d[f])===c||k===l)&&i.push(f);if(c<=d.right&&l>=d.left)for(A=["top","bottom"],g=0,w=A.length;w>g;g++)f=A[g],((S=d[f])===p||S===s)&&i.push(f);for(a=[],o=[],h=["left","top","right","bottom"],a.push(this.getClass("abutted")),$=0,_=h.length;_>$;$++)f=h[$],a.push(""+this.getClass("abutted")+"-"+f);for(i.length&&o.push(this.getClass("abutted")),y=0,x=i.length;x>y;y++)f=i[y],o.push(""+this.getClass("abutted")+"-"+f);return t(function(){return n(T.target,o,a),n(T.element,o,a)}),!0}})}.call(this),function(){this.Tether.modules.push({position:function(t){var e,n,r,i,o,a,s;return a=t.top,e=t.left,this.options.shift?(n=function(t){return"function"==typeof t?t.call(this,{top:a,left:e}):t},r=n(this.options.shift),"string"==typeof r?(r=r.split(" "),r[1]||(r[1]=r[0]),o=r[0],i=r[1],o=parseFloat(o,10),i=parseFloat(i,10)):(s=[r.top,r.left],o=s[0],i=s[1]),a+=o,e+=i,{top:a,left:e}):void 0}})}.call(this),this.Tether}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfillHacks=e()}(this,function(){"use strict";function t(t,o,u,c){if((e.contentHack||e.behaviorHack)&&("content"===u||"behavior"===u)){var l=e.contentHack&&!s&&"content"===u&&c.indexOf("use_css_content_hack")>-1,f=e.behaviorHack&&!a&&"behavior"===u&&c.indexOf("use_css_behavior_hack")>-1;if(l||f){var h=c.replace(r,"");f&&(h=h.replace(i,"")),h.split(";").forEach(function(e){var r=e.split(":");if(2===r.length){var i=r[0].trim(),a=r[1].trim();if("use_css_content_hack"!==i&&"use_css_behavior_hack"!==i&&(t.push([o,i,a]),n.test(a))){var s=a.replace(n,"-webkit-calc(");t.push([o,i,s])}}})}}}var e,n=/calc\(/g,r=/[\"\']/g,i=/url\([^\)]*\)/g,o=!1,a=!0,s=!0;return{required:function(t){return t.isMobileSafari||o},initialize:function(t){e=t;var n=document.createElement("div");n.style.width="1vmax",a=""!==n.style.width,e.isMobileSafari&&(s=!1)},initializeEvents:function(t,e,n){t.force||o&&!t._listeningToResize&&(window.addEventListener("resize",n,!0),t._listeningToResize=!0)},findDeclarations:function(e,n,r,i){null!==r&&t(e,n,r,i)},overwriteDeclaration:function(t,e,n){return o&&"filter"===e&&(n=n.replace(/px/g,"")),n}}}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfill=e()}(this,function(){"use strict";function t(t,e){var n;return function(){var r=this,i=arguments,o=function(){t.apply(r,i)};clearTimeout(n),n=setTimeout(o,e)}}function e(){try{return window.self!==window.top}catch(t){return!0}}function n(n){y||(n===!0&&(n={force:!0}),m=n||{},m.isMobileSafari=b,(m.force||b||x||m.hacks&&m.hacks.required(m))&&(m.hacks&&m.hacks.initialize(m),y=!0,$=document.createElement("style"),$.id="patched-viewport",document.head.appendChild($),f(function(){var n=t(i,m.refreshDebounceWait||100);window.addEventListener("orientationchange",n,!0),window.addEventListener("pageshow",n,!0),(m.force||x||e())&&(window.addEventListener("resize",n,!0),m._listeningToResize=!0),m.hacks&&m.hacks.initializeEvents(m,i,n),i()})))}function r(){$.textContent=s()}function i(){y&&(o(),setTimeout(function(){r()},1))}function o(){return g=[],_.call(document.styleSheets,function(t){"patched-viewport"!==t.ownerNode.id&&t.cssRules&&(t.media&&t.media.mediaText&&window.matchMedia&&!window.matchMedia(t.media.mediaText).matches||_.call(t.cssRules,a));
-}),g}function a(t){if(7===t.type){var e=t.cssText;return w.lastIndex=0,void(w.test(e)&&(g.push([t,null,e]),m.hacks&&m.hacks.findDeclarations(g,t,null,e)))}if(!t.style){if(!t.cssRules)return;return void _.call(t.cssRules,function(t){a(t)})}_.call(t.style,function(e){var n=t.style.getPropertyValue(e);w.lastIndex=0,w.test(n)&&(g.push([t,e,n]),m.hacks&&m.hacks.findDeclarations(g,t,e,n))})}function s(){v=l();var t,e,n=[],r=[];return g.forEach(function(i){var o=u.apply(null,i),a=o.selector.length?o.selector.join(" {\n")+" {\n":"",s=new Array(o.selector.length+1).join("\n}");return a&&a===t?(a&&!t&&(t=a,e=s),void r.push(o.content)):(r.length&&(n.push(t+r.join("\n")+e),r.length=0),void(a?(t=a,e=s,r.push(o.content)):(n.push(o.content),t=null,e=null)))}),r.length&&n.push(t+r.join("\n")+e),n.join("\n\n")}function u(t,e,n){var r=n.replace(w,c),i=[];m.hacks&&(r=m.hacks.overwriteDeclaration(t,e,r)),e&&(i.push(t.selectorText),r=e+": "+r+";");for(var o=t.parentRule;o;)i.unshift("@media "+o.media.mediaText),o=o.parentRule;return{selector:i,content:r}}function c(t,e,n){var r=v[n],i=parseFloat(e)/100;return i*r+"px"}function l(){var t=window.innerHeight,e=window.innerWidth;return{vh:t,vw:e,vmax:Math.max(e,t),vmin:Math.min(e,t)}}function f(t){var e=0,n=function(){e--,e||t()};_.call(document.styleSheets,function(t){t.href&&h(t.href)!==h(location.href)&&(e++,d(t.ownerNode,n))}),e||t()}function h(t){return t.slice(0,t.indexOf("/",t.indexOf("://")+3))}function d(t,e){p(t.href,function(){var n=document.createElement("style");n.media=t.media,n.setAttribute("data-href",t.href),n.textContent=this.responseText,t.parentNode.replaceChild(n,t),e()},e)}function p(t,e,n){var r=new XMLHttpRequest;if("withCredentials"in r)r.open("GET",t,!0);else{if("undefined"==typeof XDomainRequest)throw new Error("cross-domain XHR not supported");r=new XDomainRequest,r.open("GET",t)}return r.onload=e,r.onerror=n,r.send(),r}var m,v,g,$,y=!1,b=/(iPhone|iPod|iPad).+AppleWebKit/i.test(window.navigator.userAgent),w=/([+-]?[0-9.]+)(vh|vw|vmin|vmax)/g,_=[].forEach,x=!1;return{version:"0.4.1",findProperties:o,getCss:s,init:n,refresh:i}}); \ No newline at end of file
+!function(t,e,n){"use strict";function r(t,e){return e=e||Error,function(){var n,r,i=arguments[0],o="["+(t?t+":":"")+i+"] ",a=arguments[1],s=arguments;for(n=o+a.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1);return e+2<s.length?ht(s[e+2]):t}),n=n+"\nhttp://errors.angularjs.org/1.3.20/"+(t?t+"/":"")+i,r=2;r<arguments.length;r++)n=n+(2==r?"?":"&")+"p"+(r-2)+"="+encodeURIComponent(ht(arguments[r]));return new e(n)}}function i(t){if(null==t||E(t))return!1;var e="length"in Object(t)&&t.length;return t.nodeType===br&&e?!0:b(t)||dr(t)||0===e||"number"==typeof e&&e>0&&e-1 in t}function o(t,e,n){var r,a;if(t)if(x(t))for(r in t)"prototype"==r||"length"==r||"name"==r||t.hasOwnProperty&&!t.hasOwnProperty(r)||e.call(n,t[r],r,t);else if(dr(t)||i(t)){var s="object"!=typeof t;for(r=0,a=t.length;a>r;r++)(s||r in t)&&e.call(n,t[r],r,t)}else if(t.forEach&&t.forEach!==o)t.forEach(e,n,t);else for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t);return t}function a(t){return Object.keys(t).sort()}function s(t,e,n){for(var r=a(t),i=0;i<r.length;i++)e.call(n,t[r[i]],r[i]);return r}function u(t){return function(e,n){t(n,e)}}function c(){return++fr}function l(t,e){e?t.$$hashKey=e:delete t.$$hashKey}function f(t){for(var e=t.$$hashKey,n=1,r=arguments.length;r>n;n++){var i=arguments[n];if(i)for(var o=Object.keys(i),a=0,s=o.length;s>a;a++){var u=o[a];t[u]=i[u]}}return l(t,e),t}function h(t){return parseInt(t,10)}function d(t,e){return f(Object.create(t),e)}function p(){}function m(t){return t}function v(t){return function(){return t}}function g(t){return"undefined"==typeof t}function $(t){return"undefined"!=typeof t}function y(t){return null!==t&&"object"==typeof t}function b(t){return"string"==typeof t}function w(t){return"number"==typeof t}function _(t){return"[object Date]"===ur.call(t)}function x(t){return"function"==typeof t}function C(t){return"[object RegExp]"===ur.call(t)}function E(t){return t&&t.window===t}function k(t){return t&&t.$evalAsync&&t.$watch}function A(t){return"[object File]"===ur.call(t)}function S(t){return"[object FormData]"===ur.call(t)}function T(t){return"[object Blob]"===ur.call(t)}function O(t){return"boolean"==typeof t}function I(t){return t&&x(t.then)}function z(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function M(t){var e,n={},r=t.split(",");for(e=0;e<r.length;e++)n[r[e]]=!0;return n}function D(t){return Gn(t.nodeName||t[0]&&t[0].nodeName)}function j(t,e){var n=t.indexOf(e);return n>=0&&t.splice(n,1),e}function N(t,e,n,r){if(E(t)||k(t))throw cr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(e){if(t===e)throw cr("cpi","Can't copy! Source and destination are identical.");if(n=n||[],r=r||[],y(t)){var i=n.indexOf(t);if(-1!==i)return r[i];n.push(t),r.push(e)}var a;if(dr(t)){e.length=0;for(var s=0;s<t.length;s++)a=N(t[s],null,n,r),y(t[s])&&(n.push(t[s]),r.push(a)),e.push(a)}else{var u=e.$$hashKey;dr(e)?e.length=0:o(e,function(t,n){delete e[n]});for(var c in t)t.hasOwnProperty(c)&&(a=N(t[c],null,n,r),y(t[c])&&(n.push(t[c]),r.push(a)),e[c]=a);l(e,u)}}else if(e=t,t)if(dr(t))e=N(t,[],n,r);else if(_(t))e=new Date(t.getTime());else if(C(t))e=new RegExp(t.source,t.toString().match(/[^\/]*$/)[0]),e.lastIndex=t.lastIndex;else if(y(t)){var f=Object.create(Object.getPrototypeOf(t));e=N(t,f,n,r)}return e}function P(t,e){if(dr(t)){e=e||[];for(var n=0,r=t.length;r>n;n++)e[n]=t[n]}else if(y(t)){e=e||{};for(var i in t)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(e[i]=t[i])}return e||t}function R(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var r,i,o,a=typeof t,s=typeof e;if(a==s&&"object"==a){if(!dr(t)){if(_(t))return _(e)?R(t.getTime(),e.getTime()):!1;if(C(t))return C(e)?t.toString()==e.toString():!1;if(k(t)||k(e)||E(t)||E(e)||dr(e)||_(e)||C(e))return!1;o={};for(i in t)if("$"!==i.charAt(0)&&!x(t[i])){if(!R(t[i],e[i]))return!1;o[i]=!0}for(i in e)if(!o.hasOwnProperty(i)&&"$"!==i.charAt(0)&&e[i]!==n&&!x(e[i]))return!1;return!0}if(!dr(e))return!1;if((r=t.length)==e.length){for(i=0;r>i;i++)if(!R(t[i],e[i]))return!1;return!0}}return!1}function F(t,e,n){return t.concat(or.call(e,n))}function B(t,e){return or.call(t,e||0)}function L(t,e){var n=arguments.length>2?B(arguments,2):[];return!x(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,F(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function U(t,r){var i=r;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=n:E(r)?i="$WINDOW":r&&e===r?i="$DOCUMENT":k(r)&&(i="$SCOPE"),i}function V(t,e){return"undefined"==typeof t?n:(w(e)||(e=e?2:null),JSON.stringify(t,U,e))}function q(t){return b(t)?JSON.parse(t):t}function H(t){t=nr(t).clone();try{t.empty()}catch(e){}var n=nr("<div>").append(t).html();try{return t[0].nodeType===_r?Gn(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+Gn(e)})}catch(e){return Gn(n)}}function W(t){try{return decodeURIComponent(t)}catch(e){}}function X(t){var e,n,r={};return o((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=W(e[0]),$(n))){var i=$(e[1])?W(e[1]):!0;Kn.call(r,n)?dr(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function Y(t){var e=[];return o(t,function(t,n){dr(t)?o(t,function(t){e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}):e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}),e.length?e.join("&"):""}function Z(t){return G(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function G(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function K(t,e){var n,r,i=gr.length;for(t=nr(t),r=0;i>r;++r)if(n=gr[r]+e,b(n=t.attr(n)))return n;return null}function J(t,e){var n,r,i={};o(gr,function(e){var i=e+"app";!n&&t.hasAttribute&&t.hasAttribute(i)&&(n=t,r=t.getAttribute(i))}),o(gr,function(e){var i,o=e+"app";!n&&(i=t.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==K(n,"strict-di"),e(n,r?[r]:[],i))}function Q(n,r,i){y(i)||(i={});var a={strictDi:!1};i=f(a,i);var s=function(){if(n=nr(n),n.injector()){var t=n[0]===e?"document":H(n);throw cr("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(/</,"&lt;").replace(/>/,"&gt;"))}r=r||[],r.unshift(["$provide",function(t){t.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),r.unshift("ng");var o=qt(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,r){t.$apply(function(){e.data("$injector",r),n(e)(t)})}]),o},u=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return t&&u.test(t.name)&&(i.debugInfoEnabled=!0,t.name=t.name.replace(u,"")),t&&!c.test(t.name)?s():(t.name=t.name.replace(c,""),lr.resumeBootstrap=function(t){return o(t,function(t){r.push(t)}),s()},void(x(lr.resumeDeferredBootstrap)&&lr.resumeDeferredBootstrap()))}function tt(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function et(t){var e=lr.element(t).injector();if(!e)throw cr("test","no injector found for element argument to getTestability");return e.get("$$testability")}function nt(t,e){return e=e||"_",t.replace($r,function(t,n){return(n?e:"")+t.toLowerCase()})}function rt(){var e;yr||(rr=t.jQuery,rr&&rr.fn.on?(nr=rr,f(rr.fn,{scope:Br.scope,isolateScope:Br.isolateScope,controller:Br.controller,injector:Br.injector,inheritedData:Br.inheritedData}),e=rr.cleanData,rr.cleanData=function(t){var n;if(hr)hr=!1;else for(var r,i=0;null!=(r=t[i]);i++)n=rr._data(r,"events"),n&&n.$destroy&&rr(r).triggerHandler("$destroy");e(t)}):nr=bt,lr.element=nr,yr=!0)}function it(t,e,n){if(!t)throw cr("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ot(t,e,n){return n&&dr(t)&&(t=t[t.length-1]),it(x(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function at(t,e){if("hasOwnProperty"===t)throw cr("badname","hasOwnProperty is not a valid {0} name",e)}function st(t,e,n){if(!e)return t;for(var r,i=e.split("."),o=t,a=i.length,s=0;a>s;s++)r=i[s],t&&(t=(o=t)[r]);return!n&&x(t)?L(o,t):t}function ut(t){var e=t[0],n=t[t.length-1],r=[e];do{if(e=e.nextSibling,!e)break;r.push(e)}while(e!==n);return nr(r)}function ct(){return Object.create(null)}function lt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=r("$injector"),i=r("ng"),o=e(t,"angular",Object);return o.$$minErr=o.$$minErr||r,e(o,"module",function(){var t={};return function(r,o,a){var s=function(t,e){if("hasOwnProperty"===t)throw i("badname","hasOwnProperty is not a valid {0} name",e)};return s(r,"module"),o&&t.hasOwnProperty(r)&&(t[r]=null),e(t,r,function(){function t(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),c}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var e=[],i=[],s=[],u=t("$injector","invoke","push",i),c={_invokeQueue:e,_configBlocks:i,_runBlocks:s,requires:o,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:u,run:function(t){return s.push(t),this}};return a&&u(a),c})}})}function ft(t){var e=[];return JSON.stringify(t,function(t,n){if(n=U(t,n),y(n)){if(e.indexOf(n)>=0)return"<<already seen>>";e.push(n)}return n})}function ht(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?ft(t):t}function dt(e){f(e,{bootstrap:Q,copy:N,extend:f,equals:R,element:nr,forEach:o,injector:qt,noop:p,bind:L,toJson:V,fromJson:q,identity:m,isUndefined:g,isDefined:$,isString:b,isFunction:x,isObject:y,isNumber:w,isElement:z,isArray:dr,version:kr,isDate:_,lowercase:Gn,uppercase:Jn,callbacks:{counter:0},getTestability:et,$$minErr:r,$$csp:vr,reloadWithDebugInfo:tt}),ir=lt(t);try{ir("ngLocale")}catch(n){ir("ngLocale",[]).provider("$locale",ve)}ir("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:Ze}),t.provider("$compile",Kt).directive({a:zi,input:Zi,textarea:Zi,form:Pi,script:Fo,select:Uo,style:qo,option:Vo,ngBind:Ji,ngBindHtml:to,ngBindTemplate:Qi,ngClass:no,ngClassEven:io,ngClassOdd:ro,ngCloak:oo,ngController:ao,ngForm:Ri,ngHide:Mo,ngIf:co,ngInclude:lo,ngInit:ho,ngNonBindable:Ao,ngPluralize:So,ngRepeat:To,ngShow:zo,ngStyle:Do,ngSwitch:jo,ngSwitchWhen:No,ngSwitchDefault:Po,ngOptions:Lo,ngTransclude:Ro,ngModel:Co,ngList:po,ngChange:eo,pattern:Wo,ngPattern:Wo,required:Ho,ngRequired:Ho,minlength:Yo,ngMinlength:Yo,maxlength:Xo,ngMaxlength:Xo,ngValue:Ki,ngModelOptions:ko}).directive({ngInclude:fo}).directive(Mi).directive(so),t.provider({$anchorScroll:Ht,$animate:Gr,$browser:Yt,$cacheFactory:Zt,$controller:ee,$document:ne,$exceptionHandler:re,$filter:un,$interpolate:pe,$interval:me,$http:le,$httpBackend:he,$location:Oe,$log:Ie,$parse:Ve,$rootScope:Ye,$q:qe,$$q:He,$sce:Qe,$sceDelegate:Je,$sniffer:tn,$templateCache:Gt,$templateRequest:en,$$testability:nn,$timeout:rn,$window:sn,$$rAF:Xe,$$asyncCallback:Wt,$$jqLite:Ft})}])}function pt(){return++Sr}function mt(t){return t.replace(Ir,function(t,e,n,r){return r?n.toUpperCase():n}).replace(zr,"Moz$1")}function vt(t){return!Nr.test(t)}function gt(t){var e=t.nodeType;return e===br||!e||e===Cr}function $t(t,e){var n,r,i,a,s=e.createDocumentFragment(),u=[];if(vt(t))u.push(e.createTextNode(t));else{for(n=n||s.appendChild(e.createElement("div")),r=(Pr.exec(t)||["",""])[1].toLowerCase(),i=Fr[r]||Fr._default,n.innerHTML=i[1]+t.replace(Rr,"<$1></$2>")+i[2],a=i[0];a--;)n=n.lastChild;u=F(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(u,function(t){s.appendChild(t)}),s}function yt(t,n){n=n||e;var r;return(r=jr.exec(t))?[n.createElement(r[1])]:(r=$t(t,n))?r.childNodes:[]}function bt(t){if(t instanceof bt)return t;var e;if(b(t)&&(t=pr(t),e=!0),!(this instanceof bt)){if(e&&"<"!=t.charAt(0))throw Dr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new bt(t)}e?Ot(this,yt(t)):Ot(this,t)}function wt(t){return t.cloneNode(!0)}function _t(t,e){if(e||Ct(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Ct(n[r])}function xt(t,e,n,r){if($(r))throw Dr("offargs","jqLite#off() does not support the `selector` argument");var i=Et(t),a=i&&i.events,s=i&&i.handle;if(s)if(e)o(e.split(" "),function(e){if($(n)){var r=a[e];if(j(r||[],n),r&&r.length>0)return}Or(t,e,s),delete a[e]});else for(e in a)"$destroy"!==e&&Or(t,e,s),delete a[e]}function Ct(t,e){var r=t.ng339,i=r&&Ar[r];if(i){if(e)return void delete i.data[e];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),xt(t)),delete Ar[r],t.ng339=n}}function Et(t,e){var r=t.ng339,i=r&&Ar[r];return e&&!i&&(t.ng339=r=pt(),i=Ar[r]={events:{},data:{},handle:n}),i}function kt(t,e,n){if(gt(t)){var r=$(n),i=!r&&e&&!y(e),o=!e,a=Et(t,!i),s=a&&a.data;if(r)s[e]=n;else{if(o)return s;if(i)return s&&s[e];f(s,e)}}}function At(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function St(t,e){e&&t.setAttribute&&o(e.split(" "),function(e){t.setAttribute("class",pr((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+pr(e)+" "," ")))})}function Tt(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(e.split(" "),function(t){t=pr(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",pr(n))}}function Ot(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var r=0;n>r;r++)t[t.length++]=e[r]}else t[t.length++]=e}}function It(t,e){return zt(t,"$"+(e||"ngController")+"Controller")}function zt(t,e,r){t.nodeType==Cr&&(t=t.documentElement);for(var i=dr(e)?e:[e];t;){for(var o=0,a=i.length;a>o;o++)if((r=nr.data(t,i[o]))!==n)return r;t=t.parentNode||t.nodeType===Er&&t.host}}function Mt(t){for(_t(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Dt(t,e){e||_t(t);var n=t.parentNode;n&&n.removeChild(t)}function jt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):nr(n).on("load",e)}function Nt(t,e){var n=Lr[e.toLowerCase()];return n&&Ur[D(t)]&&n}function Pt(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&Vr[e]}function Rt(t,e){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=e[r||n.type],o=i?i.length:0;if(o){if(g(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=P(i));for(var s=0;o>s;s++)n.isImmediatePropagationStopped()||i[s].call(t,n)}};return n.elem=t,n}function Ft(){this.$get=function(){return f(bt,{hasClass:function(t,e){return t.attr&&(t=t[0]),At(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),Tt(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),St(t,e)}})}}function Bt(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var r=typeof t;return n="function"==r||"object"==r&&null!==t?t.$$hashKey=r+":"+(e||c)():r+":"+t}function Lt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}o(t,this.put,this)}function Ut(t){var e=t.toString().replace(Xr,""),n=e.match(qr);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Vt(t,e,n){var r,i,a,s;if("function"==typeof t){if(!(r=t.$inject)){if(r=[],t.length){if(e)throw b(n)&&n||(n=t.name||Ut(t)),Yr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=t.toString().replace(Xr,""),a=i.match(qr),o(a[1].split(Hr),function(t){t.replace(Wr,function(t,e,n){r.push(n)})})}t.$inject=r}}else dr(t)?(s=t.length-1,ot(t[s],"fn"),r=t.slice(0,s)):ot(t,"fn",!0);return r}function qt(t,e){function r(t){return function(e,n){return y(e)?void o(e,u(t)):t(e,n)}}function i(t,e){if(at(t,"service"),(x(e)||dr(e))&&(e=k.instantiate(e)),!e.$get)throw Yr("pget","Provider '{0}' must define $get factory method.",t);return E[t+w]=e}function a(t,e){return function(){var n=S.invoke(e,this);if(g(n))throw Yr("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function s(t,e,n){return i(t,{$get:n!==!1?a(t,e):e})}function c(t,e){return s(t,["$injector",function(t){return t.instantiate(e)}])}function l(t,e){return s(t,v(e),!1)}function f(t,e){at(t,"constant"),E[t]=e,A[t]=e}function h(t,e){var n=k.get(t+w),r=n.$get;n.$get=function(){var t=S.invoke(r,n);return S.invoke(e,null,{$delegate:t})}}function d(t){var e,n=[];return o(t,function(t){function r(t){var e,n;for(e=0,n=t.length;n>e;e++){var r=t[e],i=k.get(r[0]);i[r[1]].apply(i,r[2])}}if(!C.get(t)){C.put(t,!0);try{b(t)?(e=ir(t),n=n.concat(d(e.requires)).concat(e._runBlocks),r(e._invokeQueue),r(e._configBlocks)):x(t)?n.push(k.invoke(t)):dr(t)?n.push(k.invoke(t)):ot(t,"module")}catch(i){throw dr(t)&&(t=t[t.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Yr("modulerr","Failed to instantiate module {0} due to:\n{1}",t,i.stack||i.message||i)}}}),n}function m(t,n){function r(e,r){if(t.hasOwnProperty(e)){if(t[e]===$)throw Yr("cdep","Circular dependency found: {0}",e+" <- "+_.join(" <- "));return t[e]}try{return _.unshift(e),t[e]=$,t[e]=n(e,r)}catch(i){throw t[e]===$&&delete t[e],i}finally{_.shift()}}function i(t,n,i,o){"string"==typeof i&&(o=i,i=null);var a,s,u,c=[],l=qt.$$annotate(t,e,o);for(s=0,a=l.length;a>s;s++){if(u=l[s],"string"!=typeof u)throw Yr("itkn","Incorrect injection token! Expected service name as string, got {0}",u);c.push(i&&i.hasOwnProperty(u)?i[u]:r(u,o))}return dr(t)&&(t=t[a]),t.apply(n,c)}function o(t,e,n){var r=Object.create((dr(t)?t[t.length-1]:t).prototype||null),o=i(t,r,e,n);return y(o)||x(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:qt.$$annotate,has:function(e){return E.hasOwnProperty(e+w)||t.hasOwnProperty(e)}}}e=e===!0;var $={},w="Provider",_=[],C=new Lt([],!0),E={$provide:{provider:r(i),factory:r(s),service:r(c),value:r(l),constant:r(f),decorator:h}},k=E.$injector=m(E,function(t,e){throw lr.isString(e)&&_.push(e),Yr("unpr","Unknown provider: {0}",_.join(" <- "))}),A={},S=A.$injector=m(A,function(t,e){var r=k.get(t+w,e);return S.invoke(r.$get,r,n,t)});return o(d(t),function(t){S.invoke(t||p)}),S}function Ht(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,r){function i(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===D(t)?(e=t,!0):void 0}),e}function o(){var t=s.yOffset;if(x(t))t=t();else if(z(t)){var n=t[0],r=e.getComputedStyle(n);t="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else w(t)||(t=0);return t}function a(t){if(t){t.scrollIntoView();var n=o();if(n){var r=t.getBoundingClientRect().top;e.scrollBy(0,r-n)}}else e.scrollTo(0,0)}function s(){var t,e=n.hash();e?(t=u.getElementById(e))?a(t):(t=i(u.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var u=e.document;return t&&r.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&jt(function(){r.$evalAsync(s)})}),s}]}function Wt(){this.$get=["$$rAF","$timeout",function(t,e){return t.supported?function(e){return t(e)}:function(t){return e(t,0,!1)}}]}function Xt(t,e,r,i){function a(t){try{t.apply(null,B(arguments,1))}finally{if(C--,0===C)for(;E.length;)try{E.pop()()}catch(e){r.error(e)}}}function s(t){var e=t.indexOf("#");return-1===e?"":t.substr(e)}function u(t,e){!function n(){o(A,function(t){t()}),k=e(n,t)}()}function c(){f(),h()}function l(){try{return y.state}catch(t){}}function f(){S=l(),S=g(S)?null:S,R(S,j)&&(S=j),j=S}function h(){(O!==m.url()||T!==S)&&(O=m.url(),T=S,o(M,function(t){t(m.url(),S)}))}function d(t){try{return decodeURIComponent(t)}catch(e){return t}}var m=this,v=e[0],$=t.location,y=t.history,w=t.setTimeout,_=t.clearTimeout,x={};m.isMock=!1;var C=0,E=[];m.$$completeOutstandingRequest=a,m.$$incOutstandingRequestCount=function(){C++},m.notifyWhenNoOutstandingRequests=function(t){o(A,function(t){t()}),0===C?t():E.push(t)};var k,A=[];m.addPollFn=function(t){return g(k)&&u(100,w),A.push(t),t};var S,T,O=$.href,I=e.find("base"),z=null;f(),T=S,m.url=function(e,n,r){if(g(r)&&(r=null),$!==t.location&&($=t.location),y!==t.history&&(y=t.history),e){var o=T===r;if(O===e&&(!i.history||o))return m;var a=O&&we(O)===we(e);return O=e,T=r,!i.history||a&&o?((!a||z)&&(z=e),n?$.replace(e):a?$.hash=s(e):$.href=e):(y[n?"replaceState":"pushState"](r,"",e),f(),T=S),m}return z||$.href.replace(/%27/g,"'")},m.state=function(){return S};var M=[],D=!1,j=null;m.onUrlChange=function(e){return D||(i.history&&nr(t).on("popstate",c),nr(t).on("hashchange",c),D=!0),M.push(e),e},m.$$checkUrlChange=h,m.baseHref=function(){var t=I.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var N={},P="",F=m.baseHref();m.cookies=function(t,e){var i,o,a,s,u;if(!t){if(v.cookie!==P)for(P=v.cookie,o=P.split("; "),N={},s=0;s<o.length;s++)a=o[s],u=a.indexOf("="),u>0&&(t=d(a.substring(0,u)),N[t]===n&&(N[t]=d(a.substring(u+1))));return N}e===n?v.cookie=encodeURIComponent(t)+"=;path="+F+";expires=Thu, 01 Jan 1970 00:00:00 GMT":b(e)&&(i=(v.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)+";path="+F).length+1,i>4096&&r.warn("Cookie '"+t+"' possibly not set or overflowed because it was too large ("+i+" > 4096 bytes)!"))},m.defer=function(t,e){var n;return C++,n=w(function(){delete x[n],a(t)},e||0),x[n]=!0,n},m.defer.cancel=function(t){return x[t]?(delete x[t],_(t),a(p),!0):!1}}function Yt(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,r){return new Xt(t,r,e,n)}]}function Zt(){this.$get=function(){function t(t,n){function i(t){t!=h&&(d?d==t&&(d=t.n):d=t,o(t.n,t.p),o(t,h),h=t,h.n=null)}function o(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var a=0,s=f({},n,{id:t}),u={},c=n&&n.capacity||Number.MAX_VALUE,l={},h=null,d=null;return e[t]={put:function(t,e){if(c<Number.MAX_VALUE){var n=l[t]||(l[t]={key:t});i(n)}if(!g(e))return t in u||a++,u[t]=e,a>c&&this.remove(d.key),e},get:function(t){if(c<Number.MAX_VALUE){var e=l[t];if(!e)return;i(e)}return u[t]},remove:function(t){if(c<Number.MAX_VALUE){var e=l[t];if(!e)return;e==h&&(h=e.p),e==d&&(d=e.n),o(e.n,e.p),delete l[t]}delete u[t],a--},removeAll:function(){u={},a=0,l={},h=d=null},destroy:function(){u=null,s=null,l=null,delete e[t]},info:function(){return f({},s,{size:a})}}}var e={};return t.info=function(){var t={};return o(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function Gt(){this.$get=["$cacheFactory",function(t){return t("templates")}]}function Kt(t,r){function i(t,e){var n=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,r={};return o(t,function(t,i){var o=t.match(n);if(!o)throw Kr("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",e,i,t);r[i]={mode:o[1][0],collection:"*"===o[2],optional:"?"===o[3],attrName:o[4]||i}}),r}var a={},s="Directive",c=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,l=/(([\w\-]+)(?:\:([^;]+))?;?)/,h=M("ngSrc,ngSrcset,src,srcset"),g=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,w=/^(on[a-z]+|formaction)$/;this.directive=function C(e,n){return at(e,"directive"),b(e)?(it(n,"directiveFactory"),a.hasOwnProperty(e)||(a[e]=[],t.factory(e+s,["$injector","$exceptionHandler",function(t,n){var r=[];return o(a[e],function(o,a){try{var s=t.invoke(o);x(s)?s={compile:v(s)}:!s.compile&&s.link&&(s.compile=v(s.link)),s.priority=s.priority||0,s.index=a,s.name=s.name||e,s.require=s.require||s.controller&&s.name,s.restrict=s.restrict||"EA",y(s.scope)&&(s.$$isolateBindings=i(s.scope,s.name)),r.push(s)}catch(u){n(u)}}),r}])),a[e].push(n)):o(e,u(C)),this},this.aHrefSanitizationWhitelist=function(t){return $(t)?(r.aHrefSanitizationWhitelist(t),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(r.imgSrcSanitizationWhitelist(t),this):r.imgSrcSanitizationWhitelist()};var _=!0;this.debugInfoEnabled=function(t){return $(t)?(_=t,this):_},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(t,r,i,u,v,$,C,E,A,S,T){function O(t,e){try{t.addClass(e)}catch(n){}}function I(t,e,n,r,i){t instanceof nr||(t=nr(t)),o(t,function(e,n){e.nodeType==_r&&e.nodeValue.match(/\S+/)&&(t[n]=nr(e).wrap("<span></span>").parent()[0])});var a=M(t,e,t,n,r,i);I.$$addScopeClass(t);var s=null;return function(e,n,r){it(e,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=z(u));var c;if(c="html"!==s?nr(J(s,nr("<div>").append(t).html())):n?Br.clone.call(t):t,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return I.$$addScopeInfo(c,e),n&&n(c,e),a&&a(e,c,c,i),c}}function z(t){var e=t&&t[0];return e&&"foreignobject"!==D(e)&&e.toString().match(/SVG/)?"svg":"html"}function M(t,e,r,i,o,a){function s(t,r,i,o){var a,s,u,c,l,f,h,d,v;if(p){var g=r.length;for(v=new Array(g),l=0;l<m.length;l+=3)h=m[l],v[h]=r[h]}else v=r;for(l=0,f=m.length;f>l;)u=v[m[l++]],a=m[l++],s=m[l++],a?(a.scope?(c=t.$new(),I.$$addScopeInfo(nr(u),c)):c=t,d=a.transcludeOnThisElement?N(t,a.transclude,o,a.elementTranscludeOnThisElement):!a.templateOnThisElement&&o?o:!o&&e?N(t,e):null,a(s,c,u,i,d)):s&&s(t,u.childNodes,n,o)}for(var u,c,l,f,h,d,p,m=[],v=0;v<t.length;v++)u=new at,c=P(t[v],[],u,0===v?i:n,o),l=c.length?U(c,t[v],u,e,r,null,[],[],a):null,l&&l.scope&&I.$$addScopeClass(u.$$element),h=l&&l.terminal||!(f=t[v].childNodes)||!f.length?null:M(f,l?(l.transcludeOnThisElement||!l.templateOnThisElement)&&l.transclude:e),(l||h)&&(m.push(v,l,h),d=!0,p=p||l),a=null;return d?s:null}function N(t,e,n,r){var i=function(r,i,o,a,s){return r||(r=t.$new(!1,s),r.$$transcluded=!0),e(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})};return i}function P(t,e,n,r,i){var o,a,s=t.nodeType,u=n.$attr;switch(s){case br:q(e,Jt(D(t)),"E",r,i);for(var f,h,d,p,m,v,g=t.attributes,$=0,w=g&&g.length;w>$;$++){var _=!1,x=!1;f=g[$],h=f.name,m=pr(f.value),p=Jt(h),(v=ft.test(p))&&(h=h.replace(Jr,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var C=p.replace(/(Start|End)$/,"");W(C)&&p===C+"Start"&&(_=h,x=h.substr(0,h.length-5)+"end",h=h.substr(0,h.length-6)),d=Jt(h.toLowerCase()),u[d]=h,(v||!n.hasOwnProperty(d))&&(n[d]=m,Nt(t,d)&&(n[d]=!0)),tt(t,e,m,d,v),q(e,d,"A",r,i,_,x)}if(a=t.className,y(a)&&(a=a.animVal),b(a)&&""!==a)for(;o=l.exec(a);)d=Jt(o[2]),q(e,d,"C",r,i)&&(n[d]=pr(o[3])),a=a.substr(o.index+o[0].length);break;case _r:K(e,t.nodeValue);break;case xr:try{o=c.exec(t.nodeValue),o&&(d=Jt(o[1]),q(e,d,"M",r,i)&&(n[d]=pr(o[2])))}catch(E){}}return e.sort(Z),e}function F(t,e,n){var r=[],i=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Kr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==br&&(t.hasAttribute(e)&&i++,t.hasAttribute(n)&&i--),r.push(t),t=t.nextSibling}while(i>0)}else r.push(t);return nr(r)}function L(t,e,n){return function(r,i,o,a,s){return i=F(i[0],e,n),t(r,i,o,a,s)}}function U(t,a,s,u,c,l,f,h,d){function p(t,e,n,r){t&&(n&&(t=L(t,n,r)),t.require=E.require,t.directiveName=A,(D===E||E.$$isolateScope)&&(t=rt(t,{isolateScope:!0})),f.push(t)),e&&(n&&(e=L(e,n,r)),e.require=E.require,e.directiveName=A,(D===E||E.$$isolateScope)&&(e=rt(e,{isolateScope:!0})),h.push(e))}function m(t,e,n,r){var i,a,s="data",u=!1,c=n;if(b(e)){if(a=e.match(g),e=e.substring(a[0].length),a[3]&&(a[1]?a[3]=null:a[1]=a[3]),"^"===a[1]?s="inheritedData":"^^"===a[1]&&(s="inheritedData",c=n.parent()),"?"===a[2]&&(u=!0),i=null,r&&"data"===s&&(i=r[e])&&(i=i.instance),i=i||c[s]("$"+e+"Controller"),!i&&!u)throw Kr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",e,t);return i||null}return dr(e)&&(i=[],o(e,function(e){i.push(m(t,e,n,r))})),i}function w(t,e,i,u,c){function l(t,e,r){var i;return k(t)||(r=e,e=t,t=n),W&&(i=w),r||(r=W?x.parent():x),c(t,e,i,r,T)}var d,p,g,y,b,w,_,x,E;if(a===i?(E=s,x=s.$$element):(x=nr(i),E=new at(x,s)),D&&(b=e.$new(!0)),c&&(_=l,_.$$boundTransclude=c),M&&(C={},w={},o(M,function(t){var n,r={$scope:t===D||t.$$isolateScope?b:e,$element:x,$attrs:E,$transclude:_};y=t.controller,"@"==y&&(y=E[t.name]),n=$(y,r,!0,t.controllerAs),w[t.name]=n,W||x.data("$"+t.name+"Controller",n.instance),C[t.name]=n})),D){I.$$addScopeInfo(x,b,!0,!(j&&(j===D||j===D.$$originalDirective))),I.$$addScopeClass(x,!0);var A=C&&C[D.name],S=b;A&&A.identifier&&D.bindToController===!0&&(S=A.instance),o(b.$$isolateBindings=D.$$isolateBindings,function(t,n){var i,o,a,s,u=t.attrName,c=t.optional,l=t.mode;switch(l){case"@":E.$observe(u,function(t){S[n]=t}),E.$$observers[u].$$scope=e,E[u]&&(S[n]=r(E[u])(e));break;case"=":if(c&&!E[u])return;o=v(E[u]),s=o.literal?R:function(t,e){return t===e||t!==t&&e!==e},a=o.assign||function(){throw i=S[n]=o(e),Kr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",E[u],D.name)},i=S[n]=o(e);var f=function(t){return s(t,S[n])||(s(t,i)?a(e,t=S[n]):S[n]=t),i=t};f.$stateful=!0;var h;h=t.collection?e.$watchCollection(E[u],f):e.$watch(v(E[u],f),null,o.literal),b.$on("$destroy",h);break;case"&":o=v(E[u]),S[n]=function(t){return o(e,t)}}})}for(C&&(o(C,function(t){t()}),C=null),d=0,p=f.length;p>d;d++)g=f[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_);var T=e;for(D&&(D.template||null===D.templateUrl)&&(T=b),t&&t(T,i.childNodes,n,c),d=h.length-1;d>=0;d--)g=h[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_)}d=d||{};for(var _,C,E,A,S,T,O,z=-Number.MAX_VALUE,M=d.controllerDirectives,D=d.newIsolateScopeDirective,j=d.templateDirective,N=d.nonTlbTranscludeDirective,U=!1,q=!1,W=d.hasElementTranscludeDirective,Z=s.$$element=nr(a),K=l,Q=u,tt=0,nt=t.length;nt>tt;tt++){E=t[tt];var it=E.$$start,st=E.$$end;if(it&&(Z=F(a,it,st)),S=n,z>E.priority)break;if((O=E.scope)&&(E.templateUrl||(y(O)?(G("new/isolated scope",D||_,E,Z),D=E):G("new/isolated scope",D,E,Z)),_=_||E),A=E.name,!E.templateUrl&&E.controller&&(O=E.controller,M=M||{},G("'"+A+"' controller",M[A],E,Z),M[A]=E),(O=E.transclude)&&(U=!0,E.$$tlb||(G("transclusion",N,E,Z),N=E),"element"==O?(W=!0,z=E.priority,S=Z,Z=s.$$element=nr(e.createComment(" "+A+": "+s[A]+" ")),a=Z[0],et(c,B(S),a),Q=I(S,u,z,K&&K.name,{nonTlbTranscludeDirective:N})):(S=nr(wt(a)).contents(),Z.empty(),Q=I(S,u))),E.template)if(q=!0,G("template",j,E,Z),j=E,O=x(E.template)?E.template(Z,s):E.template,O=lt(O),E.replace){if(K=E,S=vt(O)?[]:te(J(E.templateNamespace,pr(O))),a=S[0],1!=S.length||a.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",A,"");et(c,Z,a);var ut={$attr:{}},ct=P(a,[],ut),ft=t.splice(tt+1,t.length-(tt+1));D&&V(ct),t=t.concat(ct).concat(ft),X(s,ut),nt=t.length}else Z.html(O);if(E.templateUrl)q=!0,G("template",j,E,Z),j=E,E.replace&&(K=E),w=Y(t.splice(tt,t.length-tt),Z,s,c,U&&Q,f,h,{controllerDirectives:M,newIsolateScopeDirective:D,templateDirective:j,nonTlbTranscludeDirective:N}),nt=t.length;else if(E.compile)try{T=E.compile(Z,s,Q),x(T)?p(null,T,it,st):T&&p(T.pre,T.post,it,st)}catch(ht){i(ht,H(Z))}E.terminal&&(w.terminal=!0,z=Math.max(z,E.priority))}return w.scope=_&&_.scope===!0,w.transcludeOnThisElement=U,w.elementTranscludeOnThisElement=W,w.templateOnThisElement=q,w.transclude=Q,d.hasElementTranscludeDirective=W,w}function V(t){for(var e=0,n=t.length;n>e;e++)t[e]=d(t[e],{$$isolateScope:!0})}function q(e,r,o,u,c,l,f){if(r===c)return null;var h=null;if(a.hasOwnProperty(r))for(var p,m=t.get(r+s),v=0,g=m.length;g>v;v++)try{p=m[v],(u===n||u>p.priority)&&-1!=p.restrict.indexOf(o)&&(l&&(p=d(p,{
+$$start:l,$$end:f})),e.push(p),h=p)}catch($){i($)}return h}function W(e){if(a.hasOwnProperty(e))for(var n,r=t.get(e+s),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function X(t,e){var n=e.$attr,r=t.$attr,i=t.$$element;o(t,function(r,i){"$"!=i.charAt(0)&&(e[i]&&e[i]!==r&&(r+=("style"===i?";":" ")+e[i]),t.$set(i,r,!0,n[i]))}),o(e,function(e,o){"class"==o?(O(i,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==o?(i.attr("style",i.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==o.charAt(0)||t.hasOwnProperty(o)||(t[o]=e,r[o]=n[o])})}function Y(t,e,n,r,i,a,s,c){var l,f,h=[],p=e[0],m=t.shift(),v=d(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),g=x(m.templateUrl)?m.templateUrl(e,n):m.templateUrl,$=m.templateNamespace;return e.empty(),u(g).then(function(u){var d,b,w,_;if(u=lt(u),m.replace){if(w=vt(u)?[]:te(J($,pr(u))),d=w[0],1!=w.length||d.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,g);b={$attr:{}},et(r,e,d);var x=P(d,[],b);y(m.scope)&&V(x),t=x.concat(t),X(n,b)}else d=p,e.html(u);for(t.unshift(v),l=U(t,d,n,i,e,m,a,s,c),o(r,function(t,n){t==d&&(r[n]=e[0])}),f=M(e[0].childNodes,i);h.length;){var C=h.shift(),E=h.shift(),k=h.shift(),A=h.shift(),S=e[0];if(!C.$$destroyed){if(E!==p){var T=E.className;c.hasElementTranscludeDirective&&m.replace||(S=wt(d)),et(k,nr(E),S),O(nr(S),T)}_=l.transcludeOnThisElement?N(C,l.transclude,A):A,l(f,C,S,r,_)}}h=null}),function(t,e,n,r,i){var o=i;e.$$destroyed||(h?h.push(e,n,r,o):(l.transcludeOnThisElement&&(o=N(e,l.transclude,i)),l(f,e,n,r,o)))}}function Z(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name<e.name?-1:1:t.index-e.index}function G(t,e,n,r){if(e)throw Kr("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",e.name,n.name,t,H(r))}function K(t,e){var n=r(e,!0);n&&t.push({priority:0,compile:function(t){var e=t.parent(),r=!!e.length;return r&&I.$$addBindingClass(e),function(t,e){var i=e.parent();r||I.$$addBindingClass(i),I.$$addBindingInfo(i,n.expressions),t.$watch(n,function(t){e[0].nodeValue=t})}}})}function J(t,n){switch(t=Gn(t||"html")){case"svg":case"math":var r=e.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function Q(t,e){if("srcdoc"==e)return A.HTML;var n=D(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?A.RESOURCE_URL:void 0}function tt(t,e,n,i,o){var a=Q(t,i);o=h[i]||o;var s=r(n,!0,a,o);if(s){if("multiple"===i&&"select"===D(t))throw Kr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",H(t));e.push({priority:100,compile:function(){return{pre:function(t,e,u){var c=u.$$observers||(u.$$observers={});if(w.test(i))throw Kr("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=u[i];l!==n&&(s=l&&r(l,!0,a,o),n=l),s&&(u[i]=s(t),(c[i]||(c[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||t).$watch(s,function(t,e){"class"===i&&t!=e?u.$updateClass(t,e):u.$set(i,t)}))}}}})}}function et(t,n,r){var i,o,a=n[0],s=n.length,u=a.parentNode;if(t)for(i=0,o=t.length;o>i;i++)if(t[i]==a){t[i++]=r;for(var c=i,l=c+s-1,f=t.length;f>c;c++,l++)f>l?t[c]=t[l]:delete t[c];t.length-=s-1,t.context===a&&(t.context=r);break}u&&u.replaceChild(r,a);var h=e.createDocumentFragment();h.appendChild(a),nr(r).data(nr(a).data()),rr?(hr=!0,rr.cleanData([a])):delete nr.cache[a[nr.expando]];for(var d=1,p=n.length;p>d;d++){var m=n[d];nr(m).remove(),h.appendChild(m),delete n[d]}n[0]=r,n.length=1}function rt(t,e){return f(function(){return t.apply(null,arguments)},t,e)}function ot(t,e,n,r,o,a){try{t(e,n,r,o,a)}catch(s){i(s,H(n))}}var at=function(t,e){if(e){var n,r,i,o=Object.keys(e);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=e[i]}else this.$attr={};this.$$element=t};at.prototype={$normalize:Jt,$addClass:function(t){t&&t.length>0&&S.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&S.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=Qt(t,e);n&&n.length&&S.addClass(this.$$element,n);var r=Qt(e,t);r&&r.length&&S.removeClass(this.$$element,r)},$set:function(t,e,r,a){var s,u=this.$$element[0],c=Nt(u,t),l=Pt(u,t),f=t;if(c?(this.$$element.prop(t,e),a=c):l&&(this[l]=e,f=l),this[t]=e,a?this.$attr[t]=a:(a=this.$attr[t],a||(this.$attr[t]=a=nt(t,"-"))),s=D(this.$$element),"a"===s&&"href"===t||"img"===s&&"src"===t)this[t]=e=T(e,"src"===t);else if("img"===s&&"srcset"===t){for(var h="",d=pr(e),p=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,m=/\s/.test(d)?p:/(,)/,v=d.split(m),g=Math.floor(v.length/2),$=0;g>$;$++){var y=2*$;h+=T(pr(v[y]),!0),h+=" "+pr(v[y+1])}var b=pr(v[2*$]).split(/\s/);h+=T(pr(b[0]),!0),2===b.length&&(h+=" "+pr(b[1])),this[t]=e=h}r!==!1&&(null===e||e===n?this.$$element.removeAttr(a):this.$$element.attr(a,e));var w=this.$$observers;w&&o(w[f],function(t){try{t(e)}catch(n){i(n)}})},$observe:function(t,e){var n=this,r=n.$$observers||(n.$$observers=ct()),i=r[t]||(r[t]=[]);return i.push(e),C.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){j(i,e)}}};var st=r.startSymbol(),ut=r.endSymbol(),lt="{{"==st||"}}"==ut?m:function(t){return t.replace(/\{\{/g,st).replace(/}}/g,ut)},ft=/^ngAttr[A-Z]/;return I.$$addBindingInfo=_?function(t,e){var n=t.data("$binding")||[];dr(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:p,I.$$addBindingClass=_?function(t){O(t,"ng-binding")}:p,I.$$addScopeInfo=_?function(t,e,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(i,e)}:p,I.$$addScopeClass=_?function(t,e){O(t,e?"ng-isolate-scope":"ng-scope")}:p,I}]}function Jt(t){return mt(t.replace(Jr,""))}function Qt(t,e){var n="",r=t.split(/\s+/),i=e.split(/\s+/);t:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a==i[s])continue t;n+=(n.length>0?" ":"")+a}return n}function te(t){t=nr(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===xr&&ar.call(t,e,1)}return t}function ee(){var t={},e=!1,i=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(e,n){at(e,"controller"),y(e)?f(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(o,a){function s(t,e,n,i){if(!t||!y(t.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,e);t.$scope[e]=n}return function(r,u,c,l){var h,d,p,m;if(c=c===!0,l&&b(l)&&(m=l),b(r)){if(d=r.match(i),!d)throw Qr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);p=d[1],m=m||d[3],r=t.hasOwnProperty(p)?t[p]:st(u.$scope,p,!0)||(e?st(a,p,!0):n),ot(r,p,!0)}if(c){var v=(dr(r)?r[r.length-1]:r).prototype;return h=Object.create(v||null),m&&s(u,m,h,p||r.name),f(function(){return o.invoke(r,h,u,p),h},{instance:h,identifier:m})}return h=o.instantiate(r,u,p),m&&s(u,m,h,p||r.name),h}}]}function ne(){this.$get=["$window",function(t){return nr(t.document)}]}function re(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function ie(t,e){if(b(t)){var n=t.replace(ii,"").trim();if(n){var r=e("Content-Type");(r&&0===r.indexOf(ti)||oe(n))&&(t=q(n))}}return t}function oe(t){var e=t.match(ni);return e&&ri[e[0]].test(t)}function ae(t){var e,n,r,i=ct();return t?(o(t.split("\n"),function(t){r=t.indexOf(":"),e=Gn(pr(t.substr(0,r))),n=pr(t.substr(r+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}function se(t){var e=y(t)?t:n;return function(n){if(e||(e=ae(t)),n){var r=e[Gn(n)];return void 0===r&&(r=null),r}return e}}function ue(t,e,n,r){return x(r)?r(t,e,n):(o(r,function(r){t=r(t,e,n)}),t)}function ce(t){return t>=200&&300>t}function le(){var t=this.defaults={transformResponse:[ie],transformRequest:[function(t){return!y(t)||A(t)||T(t)||S(t)?t:V(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:P(ei),put:P(ei),patch:P(ei)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},e=!1;this.useApplyAsync=function(t){return $(t)?(e=!!t,this):e};var i=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,u,c,l,h,d){function p(e){function i(t){var e=f({},t);return t.data?e.data=ue(t.data,t.headers,t.status,u.transformResponse):e.data=t.data,ce(t.status)?e:h.reject(e)}function a(t){var e,n={};return o(t,function(t,r){x(t)?(e=t(),null!=e&&(n[r]=e)):n[r]=t}),n}function s(e){var n,r,i,o=t.headers,s=f({},e.headers);o=f({},o.common,o[Gn(e.method)]);t:for(n in o){r=Gn(n);for(i in s)if(Gn(i)===r)continue t;s[n]=o[n]}return a(s)}if(!lr.isObject(e))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",e);var u=f({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse},e);u.headers=s(e),u.method=Jn(u.method);var c=function(e){var r=e.headers,a=ue(e.data,se(r),n,e.transformRequest);return g(a)&&o(r,function(t,e){"content-type"===Gn(e)&&delete r[e]}),g(e.withCredentials)&&!g(t.withCredentials)&&(e.withCredentials=t.withCredentials),w(e,a).then(i,i)},l=[c,n],d=h.when(u);for(o(k,function(t){(t.request||t.requestError)&&l.unshift(t.request,t.requestError),(t.response||t.responseError)&&l.push(t.response,t.responseError)});l.length;){var p=l.shift(),m=l.shift();d=d.then(p,m)}return d.success=function(t){return ot(t,"fn"),d.then(function(e){t(e.data,e.status,e.headers,u)}),d},d.error=function(t){return ot(t,"fn"),d.then(null,function(e){t(e.data,e.status,e.headers,u)}),d},d}function m(t){o(arguments,function(t){p[t]=function(e,n){return p(f(n||{},{method:t,url:e}))}})}function v(t){o(arguments,function(t){p[t]=function(e,n,r){return p(f(r||{},{method:t,url:e,data:n}))}})}function w(r,i){function o(t,n,r,i){function o(){s(n,t,r,i)}d&&(ce(t)?d.put(_,[t,n,ae(r),i]):d.remove(_)),e?l.$applyAsync(o):(o(),l.$$phase||l.$apply())}function s(t,e,n,i){e=e>=-1?e:0,(ce(e)?v.resolve:v.reject)({data:t,status:e,headers:se(n),config:r,statusText:i})}function c(t){s(t.data,t.status,P(t.headers()),t.statusText)}function f(){var t=p.pendingRequests.indexOf(r);-1!==t&&p.pendingRequests.splice(t,1)}var d,m,v=h.defer(),b=v.promise,w=r.headers,_=C(r.url,r.params);if(p.pendingRequests.push(r),b.then(f,f),!r.cache&&!t.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=y(r.cache)?r.cache:y(t.cache)?t.cache:E),d&&(m=d.get(_),$(m)?I(m)?m.then(c,c):dr(m)?s(m[1],m[0],P(m[2]),m[3]):s(m,200,{},"OK"):d.put(_,b)),g(m)){var x=an(r.url)?u.cookies()[r.xsrfCookieName||t.xsrfCookieName]:n;x&&(w[r.xsrfHeaderName||t.xsrfHeaderName]=x),a(r.method,_,i,o,w,r.timeout,r.withCredentials,r.responseType)}return b}function C(t,e){if(!e)return t;var n=[];return s(e,function(t,e){null===t||g(t)||(dr(t)||(t=[t]),o(t,function(t){y(t)&&(t=_(t)?t.toISOString():V(t)),n.push(G(e)+"="+G(t))}))}),n.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+n.join("&")),t}var E=c("$http"),k=[];return o(i,function(t){k.unshift(b(t)?d.get(t):d.invoke(t))}),p.pendingRequests=[],m("get","delete","head","jsonp"),v("post","put","patch"),p.defaults=t,p}]}function fe(){return new t.XMLHttpRequest}function he(){this.$get=["$browser","$window","$document",function(t,e,n){return de(t,fe,t.defer,e.angular.callbacks,n[0])}]}function de(t,e,r,i,a){function s(t,e,n){var r=a.createElement("script"),o=null;return r.type="text/javascript",r.src=t,r.async=!0,o=function(t){Or(r,"load",o),Or(r,"error",o),a.body.removeChild(r),r=null;var s=-1,u="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),u=t.type,s="error"===t.type?404:200),n&&n(s,u)},Tr(r,"load",o),Tr(r,"error",o),a.body.appendChild(r),o}return function(a,u,c,l,f,h,d,m){function v(){b&&b(),w&&w.abort()}function g(e,i,o,a,s){C!==n&&r.cancel(C),b=w=null,e(i,o,a,s),t.$$completeOutstandingRequest(p)}if(t.$$incOutstandingRequestCount(),u=u||t.url(),"jsonp"==Gn(a)){var y="_"+(i.counter++).toString(36);i[y]=function(t){i[y].data=t,i[y].called=!0};var b=s(u.replace("JSON_CALLBACK","angular.callbacks."+y),y,function(t,e){g(l,t,i[y].data,"",e),i[y]=p})}else{var w=e();w.open(a,u,!0),o(f,function(t,e){$(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==on(u).protocol?404:0),g(l,n,e,w.getAllResponseHeaders(),t)};var _=function(){g(l,-1,null,null,"")};if(w.onerror=_,w.onabort=_,d&&(w.withCredentials=!0),m)try{w.responseType=m}catch(x){if("json"!==m)throw x}w.send(c||null)}if(h>0)var C=r(v,h);else I(h)&&h.then(v)}}function pe(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(t){return"\\\\\\"+t}function a(o,a,h,d){function p(n){return n.replace(c,t).replace(l,e)}function m(t){try{return t=T(t),d&&!$(t)?t:O(t)}catch(e){var n=oi("interr","Can't interpolate: {0}\n{1}",o,e.toString());r(n)}}d=!!d;for(var v,y,b,w=0,_=[],C=[],E=o.length,k=[],A=[];E>w;){if(-1==(v=o.indexOf(t,w))||-1==(y=o.indexOf(e,v+s))){w!==E&&k.push(p(o.substring(w)));break}w!==v&&k.push(p(o.substring(w,v))),b=o.substring(v+s,y),_.push(b),C.push(n(b,m)),w=y+u,A.push(k.length),k.push("")}if(h&&k.length>1)throw oi("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",o);if(!a||_.length){var S=function(t){for(var e=0,n=_.length;n>e;e++){if(d&&g(t[e]))return;k[A[e]]=t[e]}return k.join("")},T=function(t){return h?i.getTrusted(h,t):i.valueOf(t)},O=function(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=V(t)}return t};return f(function(t){var e=0,n=_.length,i=new Array(n);try{for(;n>e;e++)i[e]=C[e](t);return S(i)}catch(a){var s=oi("interr","Can't interpolate: {0}\n{1}",o,a.toString());r(s)}},{exp:o,expressions:_,$$watchDelegate:function(t,e,n){var r;return t.$watchGroup(C,function(n,i){var o=S(n);x(e)&&e.call(this,o,n!==i?r:o,t),r=o},n)}})}}var s=t.length,u=e.length,c=new RegExp(t.replace(/./g,o),"g"),l=new RegExp(e.replace(/./g,o),"g");return a.startSymbol=function(){return t},a.endSymbol=function(){return e},a}]}function me(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,r){function i(i,a,s,u){var c=e.setInterval,l=e.clearInterval,f=0,h=$(u)&&!u,d=(h?r:n).defer(),p=d.promise;return s=$(s)?s:0,p.then(null,null,i),p.$$intervalId=c(function(){d.notify(f++),s>0&&f>=s&&(d.resolve(f),l(p.$$intervalId),delete o[p.$$intervalId]),h||t.$apply()},a),o[p.$$intervalId]=d,p}var o={};return i.cancel=function(t){return t&&t.$$intervalId in o?(o[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete o[t.$$intervalId],!0):!1},i}]}function ve(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(t){return 1===t?"one":"other"}}}}function ge(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=Z(e[n]);return e.join("/")}function $e(t,e){var n=on(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=h(n.port)||si[n.protocol]||null}function ye(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var r=on(t);e.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),e.$$search=X(r.search),e.$$hash=decodeURIComponent(r.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function be(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function we(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function _e(t){return t.replace(/(#.+)|#$/,"$1")}function xe(t){return t.substr(0,we(t).lastIndexOf("/")+1)}function Ce(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Ee(t,e,r){this.$$html5=!0,r=r||"",$e(t,this),this.$$parse=function(t){var n=be(e,t);if(!b(n))throw ui("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,e);ye(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=Y(this.$$search),n=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(t?"?"+t:"")+n,this.$$absUrl=e+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,o){if(o&&"#"===o[0])return this.hash(o.slice(1)),!0;var a,s,u;return(a=be(t,i))!==n?(s=a,u=(a=be(r,a))!==n?e+(be("/",a)||a):t+s):(a=be(e,i))!==n?u=e+a:e==i+"/"&&(u=e),u&&this.$$parse(u),!!u}}function ke(t,e,n){$e(t,this),this.$$parse=function(r){function i(t,e,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),i.exec(e)?t:(r=i.exec(t),r?r[1]:t)}var o,a=be(t,r)||be(e,r);g(a)||"#"!==a.charAt(0)?this.$$html5?o=a:(o="",g(a)&&(t=r,this.replace())):(o=be(n,a),g(o)&&(o=a)),ye(o,this),this.$$path=i(this.$$path,o,t),this.$$compose()},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return we(t)==we(e)?(this.$$parse(e),!0):!1}}function Ae(t,e,n){this.$$html5=!0,ke.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return t==we(r)?o=r:(a=be(e,r))?o=t+n+a:e===r+"/"&&(o=e),o&&this.$$parse(o),!!o},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+n+this.$$url}}function Se(t){return function(){return this[t]}}function Te(t,e){return function(n){return g(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Oe(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return $(e)?(t=e,this):t},this.html5Mode=function(t){return O(t)?(e.enabled=t,this):y(t)?(O(t.enabled)&&(e.enabled=t.enabled),O(t.requireBase)&&(e.requireBase=t.requireBase),O(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(t,e,n){var i=c.url(),o=c.$$state;try{r.url(t,e,n),c.$$state=r.state()}catch(a){throw c.url(i),c.$$state=o,a}}function u(t,e){n.$broadcast("$locationChangeSuccess",c.absUrl(),t,c.$$state,e)}var c,l,f,h=r.baseHref(),d=r.url();if(e.enabled){if(!h&&e.requireBase)throw ui("nobase","$location in HTML5 mode requires a <base> tag to be present!");f=Ce(d)+(h||"/"),l=i.history?Ee:Ae}else f=we(d),l=ke;var p=xe(f);c=new l(f,p,"#"+t),c.$$parseLinkUrl(d,d),c.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var i=nr(t.target);"a"!==D(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");y(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=on(s.animVal).href),m.test(s)||!s||i.attr("target")||t.isDefaultPrevented()||c.$$parseLinkUrl(s,u)&&(t.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}),_e(c.absUrl())!=_e(d)&&r.url(c.absUrl(),!0);var v=!0;return r.onUrlChange(function(t,e){return g(be(p,t))?void(a.location.href=t):(n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(t),c.$$state=e,r=n.$broadcast("$locationChangeStart",t,i,e,o).defaultPrevented,c.absUrl()===t&&(r?(c.$$parse(i),c.$$state=o,s(i,!1,o)):(v=!1,u(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var t=_e(r.url()),e=_e(c.absUrl()),o=r.state(),a=c.$$replace,l=t!==e||c.$$html5&&i.history&&o!==c.$$state;(v||l)&&(v=!1,n.$evalAsync(function(){var e=c.absUrl(),r=n.$broadcast("$locationChangeStart",e,t,c.$$state,o).defaultPrevented;c.absUrl()===e&&(r?(c.$$parse(t),c.$$state=o):(l&&s(e,a,o===c.$$state?null:c.$$state),u(t,o)))})),c.$$replace=!1}),c}]}function Ie(){var t=!0,e=this;this.debugEnabled=function(e){return $(e)?(t=e,this):t},this.$get=["$window",function(n){function r(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function i(t){var e=n.console||{},i=e[t]||e.log||p,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var t=[];return o(arguments,function(e){t.push(r(e))}),i.apply(e,t)}:function(t,e){i(t,null==e?"":e)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function ze(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw li("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Me(t,e){if(t+="",!b(t))throw li("iseccst","Cannot convert object to primitive value! Expression: {0}",e);return t}function De(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw li("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw li("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw li("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function je(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===fi||t===hi||t===di)throw li("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Ne(t){return t.constant}function Pe(t,e,n,r,i){De(t,i),De(e,i);for(var o,a=n.split("."),s=0;a.length>1;s++){o=ze(a.shift(),i);var u=0===s&&e&&e[o]||t[o];u||(u={},t[o]=u),t=De(u,i)}return o=ze(a.shift(),i),De(t[o],i),t[o]=r,r}function Re(t){return"constructor"==t}function Fe(t,e,r,i,o,a,s){ze(t,a),ze(e,a),ze(r,a),ze(i,a),ze(o,a);var u=function(t){return De(t,a)},c=s||Re(t)?u:m,l=s||Re(e)?u:m,f=s||Re(r)?u:m,h=s||Re(i)?u:m,d=s||Re(o)?u:m;return function(a,s){var u=s&&s.hasOwnProperty(t)?s:a;return null==u?u:(u=c(u[t]),e?null==u?n:(u=l(u[e]),r?null==u?n:(u=f(u[r]),i?null==u?n:(u=h(u[i]),o?null==u?n:u=d(u[o]):u):u):u):u)}}function Be(t,e){return function(n,r){return t(n,r,De,e)}}function Le(t,e,r){var i=e.expensiveChecks,a=i?bi:yi,s=a[t];if(s)return s;var u=t.split("."),c=u.length;if(e.csp)s=6>c?Fe(u[0],u[1],u[2],u[3],u[4],r,i):function(t,e){var o,a=0;do o=Fe(u[a++],u[a++],u[a++],u[a++],u[a++],r,i)(t,e),e=n,t=o;while(c>a);return o};else{var l="";i&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var f=i;o(u,function(t,e){ze(t,r);var n=(e?"s":'((l&&l.hasOwnProperty("'+t+'"))?l:s)')+"."+t;(i||Re(t))&&(n="eso("+n+", fe)",f=!0),l+="if(s == null) return undefined;\ns="+n+";\n"}),l+="return s;";var h=new Function("s","l","eso","fe",l);h.toString=v(l),f&&(h=Be(h,r)),s=h}return s.sharedGetter=!0,s.assign=function(e,n,r){return Pe(e,r,t,n,t)},a[t]=s,s}function Ue(t){return x(t.valueOf)?t.valueOf():wi.call(t)}function Ve(){var t=ct(),e=ct();this.$get=["$filter","$sniffer",function(n,r){function i(t){var e=t;return t.sharedGetter&&(e=function(e,n){return t(e,n)},e.literal=t.literal,e.constant=t.constant,e.assign=t.assign),e}function a(t,e){for(var n=0,r=t.length;r>n;n++){var i=t[n];i.constant||(i.inputs?a(i.inputs,e):-1===e.indexOf(i)&&e.push(i))}return e}function s(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=Ue(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function u(t,e,n,r){var i,o=r.$$inputs||(r.$$inputs=a(r.inputs,[]));if(1===o.length){var u=s;return o=o[0],t.$watch(function(t){var e=o(t);return s(e,u)||(i=r(t),u=e&&Ue(e)),i},e,n)}for(var c=[],l=0,f=o.length;f>l;l++)c[l]=s;return t.$watch(function(t){for(var e=!1,n=0,a=o.length;a>n;n++){var u=o[n](t);(e||(e=!s(u,c[n])))&&(c[n]=u&&Ue(u))}return e&&(i=r(t)),i},e,n)}function c(t,e,n,r){var i,o;return i=t.$watch(function(t){return r(t)},function(t,n,r){o=t,x(e)&&e.apply(this,arguments),$(t)&&r.$$postDigest(function(){$(o)&&i()})},n)}function l(t,e,n,r){function i(t){var e=!0;return o(t,function(t){$(t)||(e=!1)}),e}var a,s;return a=t.$watch(function(t){return r(t)},function(t,n,r){s=t,x(e)&&e.call(this,t,n,r),i(t)&&r.$$postDigest(function(){i(s)&&a()})},n)}function f(t,e,n,r){var i;return i=t.$watch(function(t){return r(t)},function(t,n,r){x(e)&&e.apply(this,arguments),i()},n)}function h(t,e){if(!e)return t;var n=t.$$watchDelegate,r=n!==l&&n!==c,i=r?function(n,r){var i=t(n,r);return e(i,n,r)}:function(n,r){var i=t(n,r),o=e(i,n,r);return $(i)?o:i};return t.$$watchDelegate&&t.$$watchDelegate!==u?i.$$watchDelegate=t.$$watchDelegate:e.$stateful||(i.$$watchDelegate=u,i.inputs=[t]),i}var d={csp:r.csp,expensiveChecks:!1},m={csp:r.csp,expensiveChecks:!0};return function(r,o,a){var s,v,g;switch(typeof r){case"string":g=r=r.trim();var $=a?e:t;if(s=$[g],!s){":"===r.charAt(0)&&":"===r.charAt(1)&&(v=!0,r=r.substring(2));var y=a?m:d,b=new gi(y),w=new $i(b,n,y);s=w.parse(r),s.constant?s.$$watchDelegate=f:v?(s=i(s),s.$$watchDelegate=s.literal?l:c):s.inputs&&(s.$$watchDelegate=u),$[g]=s}return h(s,o);case"function":return h(r,o);default:return h(p,o)}}}]}function qe(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return We(function(e){t.$evalAsync(e)},e)}]}function He(){this.$get=["$browser","$exceptionHandler",function(t,e){return We(function(e){t.defer(e)},e)}]}function We(t,e){function i(t,e,n){function r(e){return function(n){i||(i=!0,e.call(t,n))}}var i=!1;return[r(e),r(n)]}function a(){this.$$state={status:0}}function s(t,e){return function(n){e.call(t,n)}}function u(t){var r,i,o;o=t.pending,t.processScheduled=!1,t.pending=n;for(var a=0,s=o.length;s>a;++a){i=o[a][0],r=o[a][t.status];try{x(r)?i.resolve(r(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(u){i.reject(u),e(u)}}}function c(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){u(e)}))}function l(){this.promise=new a,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(t){var e=new l,n=0,r=dr(t)?[]:{};return o(t,function(t,i){n++,g(t).then(function(t){r.hasOwnProperty(i)||(r[i]=t,--n||e.resolve(r))},function(t){r.hasOwnProperty(i)||e.reject(t)})}),0===n&&e.resolve(r),e.promise}var h=r("$q",TypeError),d=function(){return new l};a.prototype={then:function(t,e,n){var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,t,e,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return v(e,!0,t)},function(e){return v(e,!1,t)},e)}},l.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(h("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(y(t)||x(t))&&(n=t&&t.then),x(n)?(this.promise.$$state.status=-1,n.call(t,r[0],r[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),e(o)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&t(function(){for(var t,i,o=0,a=r.length;a>o;o++){i=r[o][0],t=r[o][3];try{i.notify(x(t)?t(n):n)}catch(s){e(s)}}})}};var p=function(t){var e=new l;return e.reject(t),e.promise},m=function(t,e){var n=new l;return e?n.resolve(t):n.reject(t),n.promise},v=function(t,e,n){var r=null;try{x(n)&&(r=n())}catch(i){return m(i,!1)}return I(r)?r.then(function(){return m(t,e)},function(t){return m(t,!1)}):m(t,e)},g=function(t,e,n,r){var i=new l;return i.resolve(t),i.promise.then(e,n,r)},$=function b(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}if(!x(t))throw h("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof b))return new b(t);var r=new l;return t(e,n),r.promise};return $.defer=d,$.reject=p,$.when=g,$.all=f,$}function Xe(){this.$get=["$window","$timeout",function(t,e){function n(){for(var t=0;t<l.length;t++){var e=l[t];e&&(l[t]=null,e())}c=l.length=0}function r(t){var e=l.length;return c++,l.push(t),0===e&&(u=s(n)),function(){e>=0&&(l[e]=null,e=null,0===--c&&u&&(u(),u=null,l.length=0))}}var i=t.requestAnimationFrame||t.webkitRequestAnimationFrame,o=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,a=!!i,s=a?function(t){var e=i(t);return function(){o(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};r.supported=a;var u,c=0,l=[];return r}]}function Ye(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=c(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=r("$rootScope"),a=null,s=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,u,l,f){function h(t){t.currentScope.$$destroyed=!0}function d(){this.$id=c(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings=null}function m(t){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=t}function v(){C.$$phase=null}function $(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function b(){}function w(){for(;A.length;)try{A.shift()()}catch(t){u(t)}s=null}function _(){null===s&&(s=f.defer(function(){C.$apply(w)}))}d.prototype={constructor:d,$new:function(e,n){var r;return n=n||this,e?(r=new d,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(e||n!=this)&&r.$on("$destroy",h),r},$watch:function(t,e,n){var r=l(t);if(r.$$watchDelegate)return r.$$watchDelegate(this,e,n,r);var i=this,o=i.$$watchers,s={fn:e,last:b,get:r,exp:t,eq:!!n};return a=null,x(e)||(s.fn=p),o||(o=i.$$watchers=[]),o.unshift(s),function(){j(o,s),a=null}},$watchGroup:function(t,e){function n(){u=!1,c?(c=!1,e(i,i,s)):e(i,r,s)}var r=new Array(t.length),i=new Array(t.length),a=[],s=this,u=!1,c=!0;if(!t.length){var l=!0;return s.$evalAsync(function(){l&&e(i,i,s)}),function(){l=!1}}return 1===t.length?this.$watch(t[0],function(t,n,o){i[0]=t,r[0]=n,e(i,t===n?i:r,o)}):(o(t,function(t,e){var o=s.$watch(t,function(t,o){i[e]=t,r[e]=o,u||(u=!0,s.$evalAsync(n))});a.push(o)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(t,e){function n(t){o=t;var e,n,r,s,u;if(!g(o)){if(y(o))if(i(o)){a!==d&&(a=d,v=a.length=0,f++),e=o.length,v!==e&&(f++,a.length=v=e);for(var c=0;e>c;c++)u=a[c],s=o[c],r=u!==u&&s!==s,r||u===s||(f++,a[c]=s)}else{a!==p&&(a=p={},v=0,f++),e=0;for(n in o)o.hasOwnProperty(n)&&(e++,s=o[n],u=a[n],n in a?(r=u!==u&&s!==s,r||u===s||(f++,a[n]=s)):(v++,a[n]=s,f++));if(v>e){f++;for(n in a)o.hasOwnProperty(n)||(v--,delete a[n])}}else a!==o&&(a=o,f++);return f;
+}}function r(){if(m?(m=!1,e(o,o,u)):e(o,s,u),c)if(y(o))if(i(o)){s=new Array(o.length);for(var t=0;t<o.length;t++)s[t]=o[t]}else{s={};for(var n in o)Kn.call(o,n)&&(s[n]=o[n])}else s=o}n.$stateful=!0;var o,a,s,u=this,c=e.length>1,f=0,h=l(t,n),d=[],p={},m=!0,v=0;return this.$watch(h,r)},$digest:function(){var t,r,i,o,c,l,h,d,p,g,$=e,y=this,_=[];m("$digest"),f.$$checkUrlChange(),this===C&&null!==s&&(f.defer.cancel(s),w()),a=null;do{for(l=!1,d=y;E.length;){try{g=E.shift(),g.scope.$eval(g.expression,g.locals)}catch(A){u(A)}a=null}t:do{if(o=d.$$watchers)for(c=o.length;c--;)try{if(t=o[c])if((r=t.get(d))===(i=t.last)||(t.eq?R(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(t===a){l=!1;break t}}else l=!0,a=t,t.last=t.eq?N(r,null):r,t.fn(r,i===b?r:i,d),5>$&&(p=4-$,_[p]||(_[p]=[]),_[p].push({msg:x(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:r,oldVal:i}))}catch(A){u(A)}if(!(h=d.$$childHead||d!==y&&d.$$nextSibling))for(;d!==y&&!(h=d.$$nextSibling);)d=d.$parent}while(d=h);if((l||E.length)&&!$--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,_)}while(l||E.length);for(v();k.length;)try{k.shift()()}catch(A){u(A)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==C){for(var e in this.$$listenerCount)$(this,this.$$listenerCount[e],e);t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t.$$childTail==this&&(t.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(t,e){return l(t)(this,e)},$evalAsync:function(t,e){C.$$phase||E.length||f.defer(function(){E.length&&C.$digest()}),E.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){k.push(t)},$apply:function(t){try{return m("$apply"),this.$eval(t)}catch(e){u(e)}finally{v();try{C.$digest()}catch(e){throw u(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&A.push(e),_()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var r=this;do r.$$listenerCount[t]||(r.$$listenerCount[t]=0),r.$$listenerCount[t]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(e);-1!==r&&(n[r]=null,$(i,1,t))}},$emit:function(t,e){var n,r,i,o=[],a=this,s=!1,c={name:t,targetScope:a,stopPropagation:function(){s=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},l=F([c],arguments,1);do{for(n=a.$$listeners[t]||o,c.currentScope=a,r=0,i=n.length;i>r;r++)if(n[r])try{n[r].apply(null,l)}catch(f){u(f)}else n.splice(r,1),r--,i--;if(s)return c.currentScope=null,c;a=a.$parent}while(a);return c.currentScope=null,c},$broadcast:function(t,e){var n=this,r=n,i=n,o={name:t,targetScope:n,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return o;for(var a,s,c,l=F([o],arguments,1);r=i;){for(o.currentScope=r,a=r.$$listeners[t]||[],s=0,c=a.length;c>s;s++)if(a[s])try{a[s].apply(null,l)}catch(f){u(f)}else a.splice(s,1),s--,c--;if(!(i=r.$$listenerCount[t]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(i=r.$$nextSibling);)r=r.$parent}return o.currentScope=null,o}};var C=new d,E=C.$$asyncQueue=[],k=C.$$postDigestQueue=[],A=C.$$applyAsyncQueue=[];return C}]}function Ze(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return $(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(e=t,this):e},this.$get=function(){return function(n,r){var i,o=r?e:t;return i=on(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function Ge(t){if("self"===t)return t;if(b(t)){if(t.indexOf("***")>-1)throw _i("iwcard","Illegal sequence *** in string matcher. String: {0}",t);return t=mr(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(C(t))return new RegExp("^"+t.source+"$");throw _i("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Ke(t){var e=[];return $(t)&&o(t,function(t){e.push(Ge(t))}),e}function Je(){this.SCE_CONTEXTS=xi;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=Ke(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=Ke(t)),e},this.$get=["$injector",function(r){function i(t,e){return"self"===t?an(e):!!t.exec(e.href)}function o(n){var r,o,a=on(n.toString()),s=!1;for(r=0,o=t.length;o>r;r++)if(i(t[r],a)){s=!0;break}if(s)for(r=0,o=e.length;o>r;r++)if(i(e[r],a)){s=!1;break}return s}function a(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function s(t,e){var r=h.hasOwnProperty(t)?h[t]:null;if(!r)throw _i("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw _i("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new r(e)}function u(t){return t instanceof f?t.$$unwrapTrustedValue():t}function c(t,e){if(null===e||e===n||""===e)return e;var r=h.hasOwnProperty(t)?h[t]:null;if(r&&e instanceof r)return e.$$unwrapTrustedValue();if(t===xi.RESOURCE_URL){if(o(e))return e;throw _i("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",e.toString())}if(t===xi.HTML)return l(e);throw _i("unsafe","Attempting to use an unsafe value in a safe context.")}var l=function(t){throw _i("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(l=r.get("$sanitize"));var f=a(),h={};return h[xi.HTML]=a(f),h[xi.CSS]=a(f),h[xi.URL]=a(f),h[xi.JS]=a(f),h[xi.RESOURCE_URL]=a(h[xi.URL]),{trustAs:s,getTrusted:c,valueOf:u}}]}function Qe(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>er)throw _i("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=P(xi);r.isEnabled=function(){return t},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,t||(r.trustAs=r.getTrusted=function(t,e){return e},r.valueOf=m),r.parseAs=function(t,n){var i=e(n);return i.literal&&i.constant?i:e(n,function(e){return r.getTrusted(t,e)})};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return o(xi,function(t,e){var n=Gn(e);r[mt("parse_as_"+n)]=function(e){return i(t,e)},r[mt("get_trusted_"+n)]=function(e){return a(t,e)},r[mt("trust_as_"+n)]=function(e){return s(t,e)}}),r}]}function tn(){this.$get=["$window","$document",function(t,e){var n,r,i={},o=h((/android (\d+)/.exec(Gn((t.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((t.navigator||{}).userAgent),s=e[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,l=!1,f=!1;if(c){for(var d in c)if(r=u.exec(d)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),f=!!("animation"in c||n+"Animation"in c),!o||l&&f||(l=b(s.body.style.webkitTransition),f=b(s.body.style.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>o||a),hasEvent:function(t){if("input"===t&&11>=er)return!1;if(g(i[t])){var e=s.createElement("div");i[t]="on"+t in e}return i[t]},csp:vr(),vendorPrefix:n,transitions:l,animations:f,android:o}}]}function en(){this.$get=["$templateCache","$http","$q","$sce",function(t,e,n,r){function i(o,a){function s(t){if(!a)throw Kr("tpload","Failed to load template: {0}",o);return n.reject(t)}i.totalPendingRequests++,b(o)&&t.get(o)||(o=r.getTrustedResourceUrl(o));var u=e.defaults&&e.defaults.transformResponse;dr(u)?u=u.filter(function(t){return t!==ie}):u===ie&&(u=null);var c={cache:t,transformResponse:u};return e.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(t){return t.data},s)}return i.totalPendingRequests=0,i}]}function nn(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var r={};return r.findBindings=function(t,e,n){var r=t.getElementsByClassName("ng-binding"),i=[];return o(r,function(t){var r=lr.element(t).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+mr(e)+"(\\s|\\||$)");o.test(r)&&i.push(t)}else-1!=r.indexOf(e)&&i.push(t)})}),i},r.findModels=function(t,e,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o=n?"=":"*=",a="["+r[i]+"model"+o+'"'+e+'"]',s=t.querySelectorAll(a);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(e){e!==n.url()&&(n.url(e),t.$digest())},r.whenStable=function(t){e.notifyWhenNoOutstandingRequests(t)},r}]}function rn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(t,e,n,r,i){function o(o,s,u){var c,l=$(u)&&!u,f=(l?r:n).defer(),h=f.promise;return c=e.defer(function(){try{f.resolve(o())}catch(e){f.reject(e),i(e)}finally{delete a[h.$$timeoutId]}l||t.$apply()},s),h.$$timeoutId=c,a[c]=f,h}var a={};return o.cancel=function(t){return t&&t.$$timeoutId in a?(a[t.$$timeoutId].reject("canceled"),delete a[t.$$timeoutId],e.defer.cancel(t.$$timeoutId)):!1},o}]}function on(t){var e=t;return er&&(Ci.setAttribute("href",e),e=Ci.href),Ci.setAttribute("href",e),{href:Ci.href,protocol:Ci.protocol?Ci.protocol.replace(/:$/,""):"",host:Ci.host,search:Ci.search?Ci.search.replace(/^\?/,""):"",hash:Ci.hash?Ci.hash.replace(/^#/,""):"",hostname:Ci.hostname,port:Ci.port,pathname:"/"===Ci.pathname.charAt(0)?Ci.pathname:"/"+Ci.pathname}}function an(t){var e=b(t)?on(t):t;return e.protocol===Ei.protocol&&e.host===Ei.host}function sn(){this.$get=v(t)}function un(t){function e(r,i){if(y(r)){var a={};return o(r,function(t,n){a[n]=e(n,t)}),a}return t.factory(r+n,i)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",hn),e("date",En),e("filter",cn),e("json",kn),e("limitTo",An),e("lowercase",Oi),e("number",dn),e("orderBy",Sn),e("uppercase",Ii)}function cn(){return function(t,e,n){if(!dr(t))return t;var r,i,o=null!==e?typeof e:"null";switch(o){case"function":r=e;break;case"boolean":case"null":case"number":case"string":i=!0;case"object":r=ln(e,n,i);break;default:return t}return t.filter(r)}}function ln(t,e,n){var r,i=y(t)&&"$"in t;return e===!0?e=R:x(e)||(e=function(t,e){return g(t)?!1:null===t||null===e?t===e:y(t)||y(e)?!1:(t=Gn(""+t),e=Gn(""+e),-1!==t.indexOf(e))}),r=function(r){return i&&!y(r)?fn(r,t.$,e,!1):fn(r,t,e,n)}}function fn(t,e,n,r,i){var o=null!==t?typeof t:"null",a=null!==e?typeof e:"null";if("string"===a&&"!"===e.charAt(0))return!fn(t,e.substring(1),n,r);if(dr(t))return t.some(function(t){return fn(t,e,n,r)});switch(o){case"object":var s;if(r){for(s in t)if("$"!==s.charAt(0)&&fn(t[s],e,n,!0))return!0;return i?!1:fn(t,e,n,!1)}if("object"===a){for(s in e){var u=e[s];if(!x(u)&&!g(u)){var c="$"===s,l=c?t:t[s];if(!fn(l,u,n,c,c))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function hn(t){var e=t.NUMBER_FORMATS;return function(t,n,r){return g(n)&&(n=e.CURRENCY_SYM),g(r)&&(r=e.PATTERNS[1].maxFrac),null==t?t:pn(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function dn(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:pn(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function pn(t,e,n,r,i){if(!isFinite(t)||y(t))return"";var o=0>t;t=Math.abs(t);var a=t+"",s="",u=[],c=!1;if(-1!==a.indexOf("e")){var l=a.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>i+1?t=0:(s=a,c=!0)}if(c)i>0&&1>t&&(s=t.toFixed(i),t=parseFloat(s));else{var f=(a.split(ki)[1]||"").length;g(i)&&(i=Math.min(Math.max(e.minFrac,f),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+i)).toString()+"e"+-i);var h=(""+t).split(ki),d=h[0];h=h[1]||"";var p,m=0,v=e.lgSize,$=e.gSize;if(d.length>=v+$)for(m=d.length-v,p=0;m>p;p++)(m-p)%$===0&&0!==p&&(s+=n),s+=d.charAt(p);for(p=m;p<d.length;p++)(d.length-p)%v===0&&0!==p&&(s+=n),s+=d.charAt(p);for(;h.length<i;)h+="0";i&&"0"!==i&&(s+=r+h.substr(0,i))}return 0===t&&(o=!1),u.push(o?e.negPre:e.posPre,s,o?e.negSuf:e.posSuf),u.join("")}function mn(t,e,n){var r="";for(0>t&&(r="-",t=-t),t=""+t;t.length<e;)t="0"+t;return n&&(t=t.substr(t.length-e)),r+t}function vn(t,e,n,r){return n=n||0,function(i){var o=i["get"+t]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),mn(o,e,r)}}function gn(t,e){return function(n,r){var i=n["get"+t](),o=Jn(e?"SHORT"+t:t);return r[o][i]}}function $n(t){var e=-1*t.getTimezoneOffset(),n=e>=0?"+":"";return n+=mn(Math[e>0?"floor":"ceil"](e/60),2)+mn(Math.abs(e%60),2)}function yn(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function bn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function wn(t){return function(e){var n=yn(e.getFullYear()),r=bn(e),i=+r-+n,o=1+Math.round(i/6048e5);return mn(o,t)}}function _n(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function xn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Cn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function En(t){function e(t){var e;if(e=t.match(n)){var r=new Date(0),i=0,o=0,a=e[8]?r.setUTCFullYear:r.setFullYear,s=e[8]?r.setUTCHours:r.setHours;e[9]&&(i=h(e[9]+e[10]),o=h(e[9]+e[11])),a.call(r,h(e[1]),h(e[2])-1,h(e[3]));var u=h(e[4]||0)-i,c=h(e[5]||0)-o,l=h(e[6]||0),f=Math.round(1e3*parseFloat("0."+(e[7]||0)));return s.call(r,u,c,l,f),r}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var a,s,u="",c=[];if(r=r||"mediumDate",r=t.DATETIME_FORMATS[r]||r,b(n)&&(n=Ti.test(n)?h(n):e(n)),w(n)&&(n=new Date(n)),!_(n))return n;for(;r;)s=Si.exec(r),s?(c=F(c,s,1),r=c.pop()):(c.push(r),r=null);return i&&"UTC"===i&&(n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+n.getTimezoneOffset())),o(c,function(e){a=Ai[e],u+=a?a(n,t.DATETIME_FORMATS):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function kn(){return function(t,e){return g(e)&&(e=2),V(t,e)}}function An(){return function(t,e){return w(t)&&(t=t.toString()),dr(t)||b(t)?(e=Math.abs(Number(e))===1/0?Number(e):h(e),e?e>0?t.slice(0,e):t.slice(e):b(t)?"":[]):t}}function Sn(t){return function(e,n,r){function o(t,e){for(var r=0;r<n.length;r++){var i=n[r](t,e);if(0!==i)return i}return 0}function a(t,e){return e?function(e,n){return t(n,e)}:t}function s(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function u(t){return null===t?"null":"function"==typeof t.valueOf&&(t=t.valueOf(),s(t))?t:"function"==typeof t.toString&&(t=t.toString(),s(t))?t:""}function c(t,e){var n=typeof t,r=typeof e;return n===r&&"object"===n&&(t=u(t),e=u(e)),n===r?("string"===n&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e?0:e>t?-1:1):r>n?-1:1}return i(e)?(n=dr(n)?n:[n],0===n.length&&(n=["+"]),n=n.map(function(e){var n=!1,r=e||m;if(b(e)){if(("+"==e.charAt(0)||"-"==e.charAt(0))&&(n="-"==e.charAt(0),e=e.substring(1)),""===e)return a(c,n);if(r=t(e),r.constant){var i=r();return a(function(t,e){return c(t[i],e[i])},n)}}return a(function(t,e){return c(r(t),r(e))},n)}),or.call(e).sort(a(o,r))):e}}function Tn(t){return x(t)&&(t={link:t}),t.restrict=t.restrict||"AC",v(t)}function On(t,e){t.$name=e}function In(t,e,r,i,a){var s=this,u=[],c=s.$$parentForm=t.parent().controller("form")||Di;s.$error={},s.$$success={},s.$pending=n,s.$name=a(e.name||e.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,c.$addControl(s),s.$rollbackViewValue=function(){o(u,function(t){t.$rollbackViewValue()})},s.$commitViewValue=function(){o(u,function(t){t.$commitViewValue()})},s.$addControl=function(t){at(t.$name,"input"),u.push(t),t.$name&&(s[t.$name]=t)},s.$$renameControl=function(t,e){var n=t.$name;s[n]===t&&delete s[n],s[e]=t,t.$name=e},s.$removeControl=function(t){t.$name&&s[t.$name]===t&&delete s[t.$name],o(s.$pending,function(e,n){s.$setValidity(n,null,t)}),o(s.$error,function(e,n){s.$setValidity(n,null,t)}),o(s.$$success,function(e,n){s.$setValidity(n,null,t)}),j(u,t)},Wn({ctrl:this,$element:t,set:function(t,e,n){var r=t[e];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else t[e]=[n]},unset:function(t,e,n){var r=t[e];r&&(j(r,n),0===r.length&&delete t[e])},parentForm:c,$animate:i}),s.$setDirty=function(){i.removeClass(t,go),i.addClass(t,$o),s.$dirty=!0,s.$pristine=!1,c.$setDirty()},s.$setPristine=function(){i.setClass(t,go,$o+" "+ji),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(u,function(t){t.$setPristine()})},s.$setUntouched=function(){o(u,function(t){t.$setUntouched()})},s.$setSubmitted=function(){i.addClass(t,ji),s.$submitted=!0,c.$setSubmitted()}}function zn(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function Mn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r)}function Dn(t,e,n,r,i,o){var a=Gn(e[0].type);if(!i.android){var s=!1;e.on("compositionstart",function(t){s=!0}),e.on("compositionend",function(){s=!1,u()})}var u=function(t){if(c&&(o.defer.cancel(c),c=null),!s){var i=e.val(),u=t&&t.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=pr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))e.on("input",u);else{var c,l=function(t,e,n){c||(c=o.defer(function(){c=null,e&&e.value===n||u(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||l(t,this,this.value)}),i.hasEvent("paste")&&e.on("paste cut",l)}e.on("change",u),r.$render=function(){e.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function jn(t,e){if(_(t))return t;if(b(t)){Hi.lastIndex=0;var n=Hi.exec(t);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,u=0,c=yn(r),l=7*(i-1);return e&&(o=e.getHours(),a=e.getMinutes(),s=e.getSeconds(),u=e.getMilliseconds()),new Date(r,0,c.getDate()+l,o,a,s,u)}}return NaN}function Nn(t,e){return function(n,r){var i,a;if(_(n))return n;if(b(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Fi.test(n))return new Date(n);if(t.lastIndex=0,i=t.exec(n))return i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(t,n){n<e.length&&(a[e[n]]=+t)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return NaN}}function Pn(t,e,r,i){return function(o,a,s,u,c,l,f){function h(t){return t&&!(t.getTime&&t.getTime()!==t.getTime())}function d(t){return $(t)?_(t)?t:r(t):n}Rn(o,a,s,u),Dn(o,a,s,u,c,l);var p,m=u&&u.$options&&u.$options.timezone;if(u.$$parserName=t,u.$parsers.push(function(t){if(u.$isEmpty(t))return null;if(e.test(t)){var i=r(t,p);return"UTC"===m&&i.setMinutes(i.getMinutes()-i.getTimezoneOffset()),i}return n}),u.$formatters.push(function(t){if(t&&!_(t))throw _o("datefmt","Expected `{0}` to be a date",t);if(h(t)){if(p=t,p&&"UTC"===m){var e=6e4*p.getTimezoneOffset();p=new Date(p.getTime()+e)}return f("date")(t,i,m)}return p=null,""}),$(s.min)||s.ngMin){var v;u.$validators.min=function(t){return!h(t)||g(v)||r(t)>=v},s.$observe("min",function(t){v=d(t),u.$validate()})}if($(s.max)||s.ngMax){var y;u.$validators.max=function(t){return!h(t)||g(y)||r(t)<=y},s.$observe("max",function(t){y=d(t),u.$validate()})}}}function Rn(t,e,r,i){var o=e[0],a=i.$$hasNativeValidators=y(o.validity);a&&i.$parsers.push(function(t){var r=e.prop(Zn)||{};return r.badInput&&!r.typeMismatch?n:t})}function Fn(t,e,r,i,o,a){if(Rn(t,e,r,i),Dn(t,e,r,i,o,a),i.$$parserName="number",i.$parsers.push(function(t){return i.$isEmpty(t)?null:Ui.test(t)?parseFloat(t):n}),i.$formatters.push(function(t){if(!i.$isEmpty(t)){if(!w(t))throw _o("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),$(r.min)||r.ngMin){var s;i.$validators.min=function(t){return i.$isEmpty(t)||g(s)||t>=s},r.$observe("min",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),s=w(t)&&!isNaN(t)?t:n,i.$validate()})}if($(r.max)||r.ngMax){var u;i.$validators.max=function(t){return i.$isEmpty(t)||g(u)||u>=t},r.$observe("max",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),u=w(t)&&!isNaN(t)?t:n,i.$validate()})}}function Bn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="url",r.$validators.url=function(t,e){var n=t||e;return r.$isEmpty(n)||Bi.test(n)}}function Ln(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="email",r.$validators.email=function(t,e){var n=t||e;return r.$isEmpty(n)||Li.test(n)}}function Un(t,e,n,r){g(n.name)&&e.attr("name",c());var i=function(t){e[0].checked&&r.$setViewValue(n.value,t&&t.type)};e.on("click",i),r.$render=function(){var t=n.value;e[0].checked=t==r.$viewValue},n.$observe("value",r.$render)}function Vn(t,e,n,r,i){var o;if($(r)){if(o=t(r),!o.constant)throw _o("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(e)}return i}function qn(t,e,n,r,i,o,a,s){var u=Vn(s,t,"ngTrueValue",n.ngTrueValue,!0),c=Vn(s,t,"ngFalseValue",n.ngFalseValue,!1),l=function(t){r.$setViewValue(e[0].checked,t&&t.type)};e.on("click",l),r.$render=function(){e[0].checked=r.$viewValue},r.$isEmpty=function(t){return t===!1},r.$formatters.push(function(t){return R(t,u)}),r.$parsers.push(function(t){return t?u:c})}function Hn(t,e){return t="ngClass"+t,["$animate",function(n){function r(t,e){var n=[];t:for(var r=0;r<t.length;r++){for(var i=t[r],o=0;o<e.length;o++)if(i==e[o])continue t;n.push(i)}return n}function i(t){if(dr(t))return t;if(b(t))return t.split(" ");if(y(t)){var e=[];return o(t,function(t,n){t&&(e=e.concat(n.split(" ")))}),e}return t}return{restrict:"AC",link:function(a,s,u){function c(t){var e=f(t,1);u.$addClass(e)}function l(t){var e=f(t,-1);u.$removeClass(e)}function f(t,e){var n=s.data("$classCounts")||{},r=[];return o(t,function(t){(e>0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&r.push(t))}),s.data("$classCounts",n),r.join(" ")}function h(t,e){var i=r(e,t),o=r(t,e);i=f(i,1),o=f(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function d(t){if(e===!0||a.$index%2===e){var n=i(t||[]);if(p){if(!R(t,p)){var r=i(p);h(r,n)}}else c(n)}p=P(t)}var p;a.$watch(u[t],d,!0),u.$observe("class",function(e){d(a.$eval(u[t]))}),"ngClass"!==t&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(u[t]));o===e?c(s):l(s)}})}}}]}function Wn(t){function e(t,e,u){e===n?r("$pending",t,u):i("$pending",t,u),O(e)?e?(f(s.$error,t,u),l(s.$$success,t,u)):(l(s.$error,t,u),f(s.$$success,t,u)):(f(s.$error,t,u),f(s.$$success,t,u)),s.$pending?(o(wo,!0),s.$valid=s.$invalid=n,a("",null)):(o(wo,!1),s.$valid=Xn(s.$error),s.$invalid=!s.$valid,a("",s.$valid));var c;c=s.$pending&&s.$pending[t]?n:s.$error[t]?!1:s.$$success[t]?!0:null,a(t,c),h.$setValidity(t,c,s)}function r(t,e,n){s[t]||(s[t]={}),l(s[t],e,n)}function i(t,e,r){s[t]&&f(s[t],e,r),Xn(s[t])&&(s[t]=n)}function o(t,e){e&&!c[t]?(d.addClass(u,t),c[t]=!0):!e&&c[t]&&(d.removeClass(u,t),c[t]=!1)}function a(t,e){t=t?"-"+nt(t,"-"):"",o(mo+t,e===!0),o(vo+t,e===!1)}var s=t.ctrl,u=t.$element,c={},l=t.set,f=t.unset,h=t.parentForm,d=t.$animate;c[vo]=!(c[mo]=u.hasClass(mo)),s.$setValidity=e}function Xn(t){if(t)for(var e in t)return!1;return!0}var Yn=/^\/(.+)\/([a-z]*)$/,Zn="validity",Gn=function(t){return b(t)?t.toLowerCase():t},Kn=Object.prototype.hasOwnProperty,Jn=function(t){return b(t)?t.toUpperCase():t},Qn=function(t){return b(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},tr=function(t){return b(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&(Gn=Qn,Jn=tr);var er,nr,rr,ir,or=[].slice,ar=[].splice,sr=[].push,ur=Object.prototype.toString,cr=r("ng"),lr=t.angular||(t.angular={}),fr=0;er=e.documentMode,p.$inject=[],m.$inject=[];var hr,dr=Array.isArray,pr=function(t){return b(t)?t.trim():t},mr=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},vr=function(){if($(vr.isActive_))return vr.isActive_;var t=!(!e.querySelector("[ng-csp]")&&!e.querySelector("[data-ng-csp]"));if(!t)try{new Function("")}catch(n){t=!0}return vr.isActive_=t},gr=["ng-","data-ng-","ng:","x-ng-"],$r=/[A-Z]/g,yr=!1,br=1,wr=2,_r=3,xr=8,Cr=9,Er=11,kr={full:"1.3.20",major:1,minor:3,dot:20,codeName:"shallow-translucence"};bt.expando="ng339";var Ar=bt.cache={},Sr=1,Tr=function(t,e,n){t.addEventListener(e,n,!1)},Or=function(t,e,n){t.removeEventListener(e,n,!1)};bt._data=function(t){return this.cache[t[this.expando]]||{}};var Ir=/([\:\-\_]+(.))/g,zr=/^moz([A-Z])/,Mr={mouseleave:"mouseout",mouseenter:"mouseover"},Dr=r("jqLite"),jr=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Nr=/<|&#?\w+;/,Pr=/<([\w:]+)/,Rr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fr={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Fr.optgroup=Fr.option,Fr.tbody=Fr.tfoot=Fr.colgroup=Fr.caption=Fr.thead,Fr.th=Fr.td;var Br=bt.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===e.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),bt(t).on("load",r))},toString:function(){var t=[];return o(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return nr(t>=0?this[t]:this[this.length+t])},length:0,push:sr,sort:[].sort,splice:[].splice},Lr={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){Lr[Gn(t)]=t});var Ur={};o("input,select,option,textarea,button,form,details".split(","),function(t){Ur[t]=!0});var Vr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:kt,removeData:Ct},function(t,e){bt[e]=t}),o({data:kt,inheritedData:zt,scope:function(t){return nr.data(t,"$scope")||zt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return nr.data(t,"$isolateScope")||nr.data(t,"$isolateScopeNoTemplate")},controller:It,injector:function(t){return zt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:At,css:function(t,e,n){return e=mt(e),$(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,r){var i=t.nodeType;if(i!==_r&&i!==wr&&i!==xr){var o=Gn(e);if(Lr[o]){if(!$(r))return t[e]||(t.attributes.getNamedItem(e)||p).specified?o:n;r?(t[e]=!0,t.setAttribute(e,o)):(t[e]=!1,t.removeAttribute(o))}else if($(r))t.setAttribute(e,r);else if(t.getAttribute){var a=t.getAttribute(e,2);return null===a?n:a}}},prop:function(t,e,n){return $(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if(g(e)){var n=t.nodeType;return n===br||n===_r?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(g(e)){if(t.multiple&&"select"===D(t)){var n=[];return o(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return g(e)?t.innerHTML:(_t(t,!0),void(t.innerHTML=e))},empty:Mt},function(t,e){bt.prototype[e]=function(e,r){var i,o,a=this.length;if(t!==Mt&&(2==t.length&&t!==At&&t!==It?e:r)===n){if(y(e)){for(i=0;a>i;i++)if(t===kt)t(this[i],e);else for(o in e)t(this[i],o,e[o]);return this}for(var s=t.$dv,u=s===n?Math.min(a,1):a,c=0;u>c;c++){var l=t(this[c],e,r);s=s?s+l:l}return s}for(i=0;a>i;i++)t(this[i],e,r);return this}}),o({removeData:Ct,on:function Zo(t,e,n,r){if($(r))throw Dr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(gt(t)){var i=Et(t,!0),o=i.events,a=i.handle;a||(a=i.handle=Rt(t,o));for(var s=e.indexOf(" ")>=0?e.split(" "):[e],u=s.length;u--;){e=s[u];var c=o[e];c||(o[e]=[],"mouseenter"===e||"mouseleave"===e?Zo(t,Mr[e],function(t){var n=this,r=t.relatedTarget;(!r||r!==n&&!n.contains(r))&&a(t,e)}):"$destroy"!==e&&Tr(t,e,a),c=o[e]),c.push(n)}}},off:xt,one:function(t,e,n){t=nr(t),t.on(e,function r(){t.off(e,n),t.off(e,r)}),t.on(e,n)},replaceWith:function(t,e){var n,r=t.parentNode;_t(t),o(new bt(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(t){var e=[];return o(t.childNodes,function(t){t.nodeType===br&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===br||n===Er){e=new bt(e);for(var r=0,i=e.length;i>r;r++){var o=e[r];t.appendChild(o)}}},prepend:function(t,e){if(t.nodeType===br){var n=t.firstChild;o(new bt(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=nr(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Dt,detach:function(t){Dt(t,!0)},after:function(t,e){var n=t,r=t.parentNode;e=new bt(e);for(var i=0,o=e.length;o>i;i++){var a=e[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:Tt,removeClass:St,toggleClass:function(t,e,n){e&&o(e.split(" "),function(e){var r=n;g(r)&&(r=!At(t,e)),(r?Tt:St)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Er?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:wt,triggerHandler:function(t,e,n){var r,i,a,s=e.type||e,u=Et(t),c=u&&u.events,l=c&&c[s];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:p,type:s,target:t},e.type&&(r=f(r,e)),i=P(l),a=n?[r].concat(n):[r],o(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,a)}))}},function(t,e){bt.prototype[e]=function(e,n,r){for(var i,o=0,a=this.length;a>o;o++)g(i)?(i=t(this[o],e,n,r),$(i)&&(i=nr(i))):Ot(i,t(this[o],e,n,r));return $(i)?i:this},bt.prototype.bind=bt.prototype.on,bt.prototype.unbind=bt.prototype.off}),Lt.prototype={put:function(t,e){this[Bt(t,this.nextUid)]=e},get:function(t){return this[Bt(t,this.nextUid)]},remove:function(t){var e=this[t=Bt(t,this.nextUid)];return delete this[t],e}};var qr=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Hr=/,/,Wr=/^\s*(_?)(\S+?)\1\s*$/,Xr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yr=r("$injector");qt.$$annotate=Vt;var Zr=r("$animate"),Gr=["$provide",function(t){this.$$selectors={},this.register=function(e,n){var r=e+"-animation";if(e&&"."!=e.charAt(0))throw Zr("notcsel","Expecting class selector starting with '.' got '{0}'.",e);this.$$selectors[e.substr(1)]=r,t.factory(r,n)},this.classNameFilter=function(t){return 1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback","$rootScope",function(t,e,n){function r(e){var r,i=t.defer();return i.promise.$$cancelFn=function(){r&&r()},n.$$postDigest(function(){r=e(function(){i.resolve()})}),i.promise}function i(t,e){var n=[],r=[],i=ct();return o((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0}),o(e,function(t,e){var o=i[e];t===!1&&o?r.push(e):t!==!0||o||n.push(e)}),n.length+r.length>0&&[n.length?n:null,r.length?r:null]}function a(t,e,n){for(var r=0,i=e.length;i>r;++r){var o=e[r];t[o]=n}}function s(){return c||(c=t.defer(),e(function(){c.resolve(),c=null})),c.promise}function u(t,e){if(lr.isObject(e)){var n=f(e.from||{},e.to||{});t.css(n)}}var c;return{animate:function(t,e,n){return u(t,{from:e,to:n}),s()},enter:function(t,e,n,r){return u(t,r),n?n.after(t):e.prepend(t),s()},leave:function(t,e){return u(t,e),t.remove(),s()},move:function(t,e,n,r){return this.enter(t,e,n,r)},addClass:function(t,e,n){return this.setClass(t,e,[],n)},$$addClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){Tt(t,e)}),u(t,n),s()},removeClass:function(t,e,n){return this.setClass(t,[],e,n);
+},$$removeClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){St(t,e)}),u(t,n),s()},setClass:function(t,e,n,o){var s=this,u="$$animateClasses",c=!1;t=nr(t);var l=t.data(u);l?o&&l.options&&(l.options=lr.extend(l.options||{},o)):(l={classes:{},options:o},c=!0);var f=l.classes;return e=dr(e)?e:e.split(" "),n=dr(n)?n:n.split(" "),a(f,e,!0),a(f,n,!1),c&&(l.promise=r(function(e){var n=t.data(u);if(t.removeData(u),n){var r=i(t,n.classes);r&&s.$$setClassImmediately(t,r[0],r[1],n.options)}e()}),t.data(u,l)),l.promise},$$setClassImmediately:function(t,e,n,r){return e&&this.$$addClassImmediately(t,e),n&&this.$$removeClassImmediately(t,n),u(t,r),s()},enabled:p,cancel:p}}]}],Kr=r("$compile");Kt.$inject=["$provide","$$sanitizeUriProvider"];var Jr=/^((?:x|data)[\:\-_])/i,Qr=r("$controller"),ti="application/json",ei={"Content-Type":ti+";charset=utf-8"},ni=/^\[|^\{(?!\{)/,ri={"[":/]$/,"{":/}$/},ii=/^\)\]\}',?\n/,oi=r("$interpolate"),ai=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,si={http:80,https:443,ftp:21},ui=r("$location"),ci={$$html5:!1,$$replace:!1,absUrl:Se("$$absUrl"),url:function(t){if(g(t))return this.$$url;var e=ai.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Se("$$protocol"),host:Se("$$host"),port:Se("$$port"),path:Te("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(b(t)||w(t))t=t.toString(),this.$$search=X(t);else{if(!y(t))throw ui("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=N(t,{}),o(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:g(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:Te("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Ae,ke,Ee],function(t){t.prototype=Object.create(ci),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==Ee||!this.$$html5)throw ui("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=g(e)?null:e,this}});var li=r("$parse"),fi=Function.prototype.call,hi=Function.prototype.apply,di=Function.prototype.bind,pi=ct();o({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(t,e){t.constant=t.literal=t.sharedGetter=!0,pi[e]=t}),pi["this"]=function(t){return t},pi["this"].sharedGetter=!0;var mi=f(ct(),{"+":function(t,e,r,i){return r=r(t,e),i=i(t,e),$(r)?$(i)?r+i:r:$(i)?i:n},"-":function(t,e,n,r){return n=n(t,e),r=r(t,e),($(n)?n:0)-($(r)?r:0)},"*":function(t,e,n,r){return n(t,e)*r(t,e)},"/":function(t,e,n,r){return n(t,e)/r(t,e)},"%":function(t,e,n,r){return n(t,e)%r(t,e)},"===":function(t,e,n,r){return n(t,e)===r(t,e)},"!==":function(t,e,n,r){return n(t,e)!==r(t,e)},"==":function(t,e,n,r){return n(t,e)==r(t,e)},"!=":function(t,e,n,r){return n(t,e)!=r(t,e)},"<":function(t,e,n,r){return n(t,e)<r(t,e)},">":function(t,e,n,r){return n(t,e)>r(t,e)},"<=":function(t,e,n,r){return n(t,e)<=r(t,e)},">=":function(t,e,n,r){return n(t,e)>=r(t,e)},"&&":function(t,e,n,r){return n(t,e)&&r(t,e)},"||":function(t,e,n,r){return n(t,e)||r(t,e)},"!":function(t,e,n){return!n(t,e)},"=":!0,"|":!0}),vi={n:"\n",f:"\f",r:"\r",t:" ",v:"\x0B","'":"'",'"':'"'},gi=function(t){this.options=t};gi.prototype={constructor:gi,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var e=this.text.charAt(this.index);if('"'===e||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(e))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var n=e+this.peek(),r=n+this.peek(2),i=mi[e],o=mi[n],a=mi[r];if(i||o||a){var s=a?r:o?n:e;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,e){return-1!==e.indexOf(t)},peek:function(t){var e=t||1;return this.index+e<this.text.length?this.text.charAt(this.index+e):!1},isNumber:function(t){return t>="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||" "===t||"\n"===t||"\x0B"===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var r=$(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw li("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,r,this.text)},readNumber:function(){for(var t="",e=this.index;this.index<this.text.length;){var n=Gn(this.text.charAt(this.index));if("."==n||this.isNumber(n))t+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))t+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==t.charAt(t.length-1))t+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=t.charAt(t.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:e,text:t,constant:!0,value:Number(t)})},readIdent:function(){for(var t=this.index;this.index<this.text.length;){var e=this.text.charAt(this.index);if(!this.isIdent(e)&&!this.isNumber(e))break;this.index++}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var e=this.index;this.index++;for(var n="",r=t,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{var s=vi[o];n+=s||o}i=!1}else if("\\"===o)i=!0;else{if(o===t)return this.index++,void this.tokens.push({index:e,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",e)}};var $i=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n};$i.ZERO=f(function(){return 0},{sharedGetter:!0,constant:!0}),$i.prototype={constructor:$i,parse:function(t){this.text=t,this.tokens=this.lexer.lex(t);var e=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e.literal=!!e.literal,e.constant=!!e.constant,e},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.peek().identifier&&this.peek().text in pi?t=pi[this.consume().text]:this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e,n;e=this.expect("(","[",".");)"("===e.text?(t=this.functionCall(t,n),n=null):"["===e.text?(n=t,t=this.objectIndex(t)):"."===e.text?(n=t,t=this.fieldAccess(t)):this.throwError("IMPOSSIBLE");return t},throwError:function(t,e){throw li("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},peekToken:function(){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,r){return this.peekAhead(0,t,e,n,r)},peekAhead:function(t,e,n,r,i){if(this.tokens.length>t){var o=this.tokens[t],a=o.text;if(a===e||a===n||a===r||a===i||!e&&!n&&!r&&!i)return o}return!1},expect:function(t,e,n,r){var i=this.peek(t,e,n,r);return i?(this.tokens.shift(),i):!1},consume:function(t){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},unaryFn:function(t,e){var n=mi[t];return f(function(t,r){return n(t,r,e)},{constant:e.constant,inputs:[e]})},binaryFn:function(t,e,n,r){var i=mi[e];return f(function(e,r){return i(e,r,t,n)},{constant:t.constant&&n.constant,inputs:!r&&[t,n]})},identifier:function(){for(var t=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)t+=this.consume().text+this.consume().text;return Le(t,this.options,this.text)},constant:function(){var t=this.consume().value;return f(function(){return t},{constant:!0,literal:!0})},statements:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.filterChain()),!this.expect(";"))return 1===t.length?t[0]:function(e,n){for(var r,i=0,o=t.length;o>i;i++)r=t[i](e,n);return r}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},filter:function(t){var e,r,i=this.$filter(this.consume().text);if(this.peek(":"))for(e=[],r=[];this.expect(":");)e.push(this.expression());var o=[t].concat(e||[]);return f(function(o,a){var s=t(o,a);if(r){r[0]=s;for(var u=e.length;u--;)r[u+1]=e[u](o,a);return i.apply(n,r)}return i(s)},{constant:!i.$stateful&&o.every(Ne),inputs:!i.$stateful&&o})},expression:function(){return this.assignment()},assignment:function(){var t,e,n=this.ternary();return(e=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,e.index)+"] can not be assigned to",e),t=this.ternary(),f(function(e,r){return n.assign(e,t(e,r),r)},{inputs:[n,t]})):n},ternary:function(){var t,e,n=this.logicalOR();if((e=this.expect("?"))&&(t=this.assignment(),this.consume(":"))){var r=this.assignment();return f(function(e,i){return n(e,i)?t(e,i):r(e,i)},{constant:n.constant&&t.constant&&r.constant})}return n},logicalOR:function(){for(var t,e=this.logicalAND();t=this.expect("||");)e=this.binaryFn(e,t.text,this.logicalAND(),!0);return e},logicalAND:function(){for(var t,e=this.equality();t=this.expect("&&");)e=this.binaryFn(e,t.text,this.equality(),!0);return e},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e=this.binaryFn(e,t.text,this.relational());return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e=this.binaryFn(e,t.text,this.additive());return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e=this.binaryFn(e,t.text,this.multiplicative());return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e=this.binaryFn(e,t.text,this.unary());return e},unary:function(){var t;return this.expect("+")?this.primary():(t=this.expect("-"))?this.binaryFn($i.ZERO,t.text,this.unary()):(t=this.expect("!"))?this.unaryFn(t.text,this.unary()):this.primary()},fieldAccess:function(t){var e=this.identifier();return f(function(r,i,o){var a=o||t(r,i);return null==a?n:e(a)},{assign:function(n,r,i){var o=t(n,i);return o||t.assign(n,o={},i),e.assign(o,r)}})},objectIndex:function(t){var e=this.text,r=this.expression();return this.consume("]"),f(function(i,o){var a,s=t(i,o),u=Me(r(i,o),e);return ze(u,e),s?a=De(s[u],e):n},{assign:function(n,i,o){var a=ze(Me(r(n,o),e),e),s=De(t(n,o),e);return s||t.assign(n,s={},o),s[a]=i}})},functionCall:function(t,e){var r=[];if(")"!==this.peekToken().text)do r.push(this.expression());while(this.expect(","));this.consume(")");var i=this.text,o=r.length?[]:null;return function(a,s){var u=e?e(a,s):$(e)?n:a,c=t(a,s,u)||p;if(o)for(var l=r.length;l--;)o[l]=De(r[l](a,s),i);De(u,i),je(c,i);var f=c.apply?c.apply(u,o):c(o[0],o[1],o[2],o[3],o[4]);return o&&(o.length=0),De(f,i)}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),f(function(e,n){for(var r=[],i=0,o=t.length;o>i;i++)r.push(t[i](e,n));return r},{literal:!0,constant:t.every(Ne),inputs:t})},object:function(){var t=[],e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.consume();n.constant?t.push(n.value):n.identifier?t.push(n.text):this.throwError("invalid key",n),this.consume(":"),e.push(this.expression())}while(this.expect(","));return this.consume("}"),f(function(n,r){for(var i={},o=0,a=e.length;a>o;o++)i[t[o]]=e[o](n,r);return i},{literal:!0,constant:e.every(Ne),inputs:e})}};var yi=ct(),bi=ct(),wi=Object.prototype.valueOf,_i=r("$sce"),xi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Kr=r("$compile"),Ci=e.createElement("a"),Ei=on(t.location.href);un.$inject=["$provide"],hn.$inject=["$locale"],dn.$inject=["$locale"];var ki=".",Ai={yyyy:vn("FullYear",4),yy:vn("FullYear",2,0,!0),y:vn("FullYear",1),MMMM:gn("Month"),MMM:gn("Month",!0),MM:vn("Month",2,1),M:vn("Month",1,1),dd:vn("Date",2),d:vn("Date",1),HH:vn("Hours",2),H:vn("Hours",1),hh:vn("Hours",2,-12),h:vn("Hours",1,-12),mm:vn("Minutes",2),m:vn("Minutes",1),ss:vn("Seconds",2),s:vn("Seconds",1),sss:vn("Milliseconds",3),EEEE:gn("Day"),EEE:gn("Day",!0),a:_n,Z:$n,ww:wn(2),w:wn(1),G:xn,GG:xn,GGG:xn,GGGG:Cn},Si=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ti=/^\-?\d+$/;En.$inject=["$locale"];var Oi=v(Gn),Ii=v(Jn);Sn.$inject=["$parse"];var zi=v({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref||e.name?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===ur.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),Mi={};o(Lr,function(t,e){if("multiple"!=t){var n=Jt("ng-"+e);Mi[n]=function(){return{restrict:"A",priority:100,link:function(t,r,i){t.$watch(i[n],function(t){i.$set(e,!!t)})}}}}}),o(Vr,function(t,e){Mi[e]=function(){return{priority:100,link:function(t,n,r){if("ngPattern"===e&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(Yn);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}t.$watch(r[e],function(t){r.$set(e,t)})}}}}),o(["src","srcset","href"],function(t){var e=Jt("ng-"+t);Mi[e]=function(){return{priority:99,link:function(n,r,i){var o=t,a=t;"href"===t&&"[object SVGAnimatedString]"===ur.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(e,function(e){return e?(i.$set(a,e),void(er&&o&&r.prop(o,i[a]))):void("href"===t&&i.$set(a,null))})}}}});var Di={$addControl:p,$$renameControl:On,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},ji="ng-submitted";In.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Ni=function(t){return["$timeout",function(e){var r={name:"form",restrict:t?"EAC":"E",controller:In,compile:function(r,i){r.addClass(go).addClass(mo);var o=i.name?"name":t&&i.ngForm?"ngForm":!1;return{pre:function(t,r,i,a){if(!("action"in i)){var s=function(e){t.$apply(function(){a.$commitViewValue(),a.$setSubmitted()}),e.preventDefault()};Tr(r[0],"submit",s),r.on("$destroy",function(){e(function(){Or(r[0],"submit",s)},0,!1)})}var u=a.$$parentForm;o&&(Pe(t,null,a.$name,a,a.$name),i.$observe(o,function(e){a.$name!==e&&(Pe(t,null,a.$name,n,a.$name),u.$$renameControl(a,e),Pe(t,null,a.$name,a,a.$name))})),r.on("$destroy",function(){u.$removeControl(a),o&&Pe(t,null,i[o],n,a.$name),f(a,Di)})}}}};return r}]},Pi=Ni(),Ri=Ni(!0),Fi=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Bi=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Li=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Ui=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Vi=/^(\d{4})-(\d{2})-(\d{2})$/,qi=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Hi=/^(\d{4})-W(\d\d)$/,Wi=/^(\d{4})-(\d\d)$/,Xi=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Yi={text:Mn,date:Pn("date",Vi,Nn(Vi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":Pn("datetimelocal",qi,Nn(qi,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:Pn("time",Xi,Nn(Xi,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:Pn("week",Hi,jn,"yyyy-Www"),month:Pn("month",Wi,Nn(Wi,["yyyy","MM"]),"yyyy-MM"),number:Fn,url:Bn,email:Ln,radio:Un,checkbox:qn,hidden:p,button:p,submit:p,reset:p,file:p},Zi=["$browser","$sniffer","$filter","$parse",function(t,e,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(Yi[Gn(a.type)]||Yi.text)(i,o,a,s[0],e,t,n,r)}}}}],Gi=/^(true|false|\d+)$/,Ki=function(){return{restrict:"A",priority:100,compile:function(t,e){return Gi.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Ji=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,r,i){t.$$addBindingInfo(r,i.ngBind),r=r[0],e.$watch(i.ngBind,function(t){r.textContent=t===n?"":t})}}}}],Qi=["$interpolate","$compile",function(t,e){return{compile:function(r){return e.$$addBindingClass(r),function(r,i,o){var a=t(i.attr(o.$attr.ngBindTemplate));e.$$addBindingInfo(i,a.expressions),i=i[0],o.$observe("ngBindTemplate",function(t){i.textContent=t===n?"":t})}}}}],to=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(r,i){var o=e(i.ngBindHtml),a=e(i.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(r),function(e,r,i){n.$$addBindingInfo(r,i.ngBindHtml),e.$watch(a,function(){r.html(t.getTrustedHtml(o(e))||"")})}}}}],eo=v({restrict:"A",require:"ngModel",link:function(t,e,n,r){r.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),no=Hn("",!0),ro=Hn("Odd",0),io=Hn("Even",1),oo=Tn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),ao=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],so={},uo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=Jt("ng-"+t);so[e]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[e],null,!0);return function(e,n){n.on(t,function(n){var i=function(){a(e,{$event:n})};uo[t]&&r.$$phase?e.$evalAsync(i):e.$apply(i)})}}}}]});var co=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,u,c;n.$watch(i.ngIf,function(n){n?u||a(function(n,o){u=o,n[n.length++]=e.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},t.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),u&&(u.$destroy(),u=null),s&&(c=ut(s.clone),t.leave(c).then(function(){c=null}),s=null))})}}}],lo=["$templateRequest","$anchorScroll","$animate",function(t,e,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:lr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,u,c,l){var f,h,d,p=0,m=function(){h&&(h.remove(),h=null),f&&(f.$destroy(),f=null),d&&(n.leave(d).then(function(){h=null}),h=d,d=null)};r.$watch(o,function(o){var u=function(){!$(s)||s&&!r.$eval(s)||e()},h=++p;o?(t(o,!0).then(function(t){if(h===p){var e=r.$new();c.template=t;var s=l(e,function(t){m(),n.enter(t,null,i).then(u)});f=e,d=s,f.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){h===p&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],fo=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void t($t(o.template,e).childNodes)(n,function(t){r.append(t)},{futureParentElement:r})):(r.html(o.template),void t(r.contents())(n))}}}],ho=Tn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),po=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,r,i){var a=e.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?pr(a):a,c=function(t){if(!g(t)){var e=[];return t&&o(t.split(u),function(t){t&&e.push(s?pr(t):t)}),e}};i.$parsers.push(c),i.$formatters.push(function(t){return dr(t)?t.join(a):n}),i.$isEmpty=function(t){return!t||!t.length}}}},mo="ng-valid",vo="ng-invalid",go="ng-pristine",$o="ng-dirty",yo="ng-untouched",bo="ng-touched",wo="ng-pending",_o=r("ngModel"),xo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,r,i,a,s,u,c,l,f){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=f(r.name||"",!1)(t);var h,d=a(r.ngModel),m=d.assign,v=d,y=m,b=null,_=this;this.$$setOptions=function(t){if(_.$options=t,t&&t.getterSetter){var e=a(r.ngModel+"()"),n=a(r.ngModel+"($$$p)");v=function(t){var n=d(t);return x(n)&&(n=e(t)),n},y=function(t,e){x(d(t))?n(t,{$$$p:_.$modelValue}):m(t,_.$modelValue)}}else if(!d.assign)throw _o("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,H(i))},this.$render=p,this.$isEmpty=function(t){return g(t)||""===t||null===t||t!==t};var C=i.inheritedData("$formController")||Di,E=0;Wn({ctrl:this,$element:i,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:C,$animate:s}),this.$setPristine=function(){_.$dirty=!1,_.$pristine=!0,s.removeClass(i,$o),s.addClass(i,go)},this.$setDirty=function(){_.$dirty=!0,_.$pristine=!1,s.removeClass(i,go),s.addClass(i,$o),C.$setDirty()},this.$setUntouched=function(){_.$touched=!1,_.$untouched=!0,s.setClass(i,yo,bo)},this.$setTouched=function(){_.$touched=!0,_.$untouched=!1,s.setClass(i,bo,yo)},this.$rollbackViewValue=function(){u.cancel(b),_.$viewValue=_.$$lastCommittedViewValue,_.$render()},this.$validate=function(){if(!w(_.$modelValue)||!isNaN(_.$modelValue)){var t=_.$$lastCommittedViewValue,e=_.$$rawModelValue,r=_.$valid,i=_.$modelValue,o=_.$options&&_.$options.allowInvalid;_.$$runValidators(e,t,function(t){o||r===t||(_.$modelValue=t?e:n,_.$modelValue!==i&&_.$$writeModelToScope())})}},this.$$runValidators=function(t,e,r){function i(){var t=_.$$parserName||"parse";return h!==n?(h||(o(_.$validators,function(t,e){u(e,null)}),o(_.$asyncValidators,function(t,e){u(e,null)})),u(t,h),h):(u(t,null),!0)}function a(){var n=!0;return o(_.$validators,function(r,i){var o=r(t,e);n=n&&o,u(i,o)}),n?!0:(o(_.$asyncValidators,function(t,e){u(e,null)}),!1)}function s(){var r=[],i=!0;o(_.$asyncValidators,function(o,a){var s=o(t,e);if(!I(s))throw _o("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);u(a,n),r.push(s.then(function(){u(a,!0)},function(t){i=!1,u(a,!1)}))}),r.length?l.all(r).then(function(){c(i)},p):c(!0)}function u(t,e){f===E&&_.$setValidity(t,e)}function c(t){f===E&&r(t)}E++;var f=E;return i()&&a()?void s():void c(!1)},this.$commitViewValue=function(){var t=_.$viewValue;u.cancel(b),(_.$$lastCommittedViewValue!==t||""===t&&_.$$hasNativeValidators)&&(_.$$lastCommittedViewValue=t,_.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){_.$modelValue!==a&&_.$$writeModelToScope()}var r=_.$$lastCommittedViewValue,i=r;if(h=g(i)?n:!0)for(var o=0;o<_.$parsers.length;o++)if(i=_.$parsers[o](i),g(i)){h=!1;break}w(_.$modelValue)&&isNaN(_.$modelValue)&&(_.$modelValue=v(t));var a=_.$modelValue,s=_.$options&&_.$options.allowInvalid;_.$$rawModelValue=i,s&&(_.$modelValue=i,e()),_.$$runValidators(i,_.$$lastCommittedViewValue,function(t){s||(_.$modelValue=t?i:n,e())})},this.$$writeModelToScope=function(){y(t,_.$modelValue),o(_.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){_.$viewValue=t,(!_.$options||_.$options.updateOnDefault)&&_.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,r=0,i=_.$options;i&&$(i.debounce)&&(n=i.debounce,w(n)?r=n:w(n[e])?r=n[e]:w(n["default"])&&(r=n["default"])),u.cancel(b),r?b=u(function(){_.$commitViewValue()},r):c.$$phase?_.$commitViewValue():t.$apply(function(){_.$commitViewValue()})},t.$watch(function(){var e=v(t);if(e!==_.$modelValue&&(_.$modelValue===_.$modelValue||e===e)){_.$modelValue=_.$$rawModelValue=e,h=n;for(var r=_.$formatters,i=r.length,o=e;i--;)o=r[i](o);_.$viewValue!==o&&(_.$viewValue=_.$$lastCommittedViewValue=o,_.$render(),_.$$runValidators(e,o,p))}return e})}],Co=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:xo,priority:1,compile:function(e){return e.addClass(go).addClass(yo).addClass(mo),{pre:function(t,e,n,r){var i=r[0],o=r[1]||Di;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(t){i.$name!==t&&o.$$renameControl(i,t)}),t.$on("$destroy",function(){o.$removeControl(i)})},post:function(e,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(t){o.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(n){o.$touched||(t.$$phase?e.$evalAsync(o.$setTouched):e.$apply(o.$setTouched))})}}}}}],Eo=/(\s+|^)default(\s+|$)/,ko=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var r=this;this.$options=t.$eval(e.ngModelOptions),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=pr(this.$options.updateOn.replace(Eo,function(){return r.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Ao=Tn({terminal:!0,priority:1e3}),So=["$locale","$interpolate",function(t,e){var n=/{}/g,r=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(i,a,s){function u(t){a.text(t||"")}var c,l=s.count,f=s.$attr.when&&a.attr(s.$attr.when),h=s.offset||0,d=i.$eval(f)||{},p={},m=e.startSymbol(),v=e.endSymbol(),g=m+l+"-"+h+v,$=lr.noop;o(s,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+Gn(n[2]);d[i]=a.attr(s.$attr[e])}}),o(d,function(t,r){p[r]=e(t.replace(n,g))}),i.$watch(l,function(e){var n=parseFloat(e),r=isNaN(n);r||n in d||(n=t.pluralCat(n-h)),n===c||r&&isNaN(c)||($(),$=i.$watch(p[n],u),c=n)})}}}],To=["$parse","$animate",function(t,a){var s="$$NG_REMOVED",u=r("ngRepeat"),c=function(t,e,n,r,i,o,a){t[n]=r,i&&(t[i]=o),t.$index=e,t.$first=0===e,t.$last=e===a-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},l=function(t){return t.clone[0]},f=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,h){var d=h.ngRepeat,p=e.createComment(" end ngRepeat: "+d+" "),m=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var v=m[1],g=m[2],$=m[3],y=m[4];if(m=v.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",v);var b=m[3]||m[1],w=m[2];if($&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test($)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test($)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",$);var _,x,C,E,k={$id:Bt};return y?_=t(y):(C=function(t,e){return Bt(e)},E=function(t){return t}),function(t,e,r,h,m){_&&(x=function(e,n,r){return w&&(k[w]=e),k[b]=n,k.$index=r,_(t,k)});var v=ct();t.$watchCollection(g,function(r){var h,g,y,_,k,A,S,T,O,I,z,M,D=e[0],j=ct();if($&&(t[$]=r),i(r))O=r,T=x||C;else{T=x||E,O=[];for(var N in r)r.hasOwnProperty(N)&&"$"!=N.charAt(0)&&O.push(N);O.sort()}for(_=O.length,z=new Array(_),h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],S=T(k,A,h),v[S])I=v[S],delete v[S],j[S]=I,z[h]=I;else{if(j[S])throw o(z,function(t){t&&t.scope&&(v[t.id]=t)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,S,A);z[h]={id:S,scope:n,clone:n},j[S]=!0}for(var P in v){if(I=v[P],M=ut(I.clone),a.leave(M),M[0].parentNode)for(h=0,g=M.length;g>h;h++)M[h][s]=!0;I.scope.$destroy()}for(h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],I=z[h],I.scope){y=D;do y=y.nextSibling;while(y&&y[s]);l(I)!=y&&a.move(ut(I.clone),null,nr(D)),D=f(I),c(I.scope,h,b,A,w,k,_)}else m(function(t,e){I.scope=e;var n=p.cloneNode(!1);t[t.length++]=n,a.enter(t,null,nr(D)),D=n,I.clone=t,j[I.id]=I,c(I.scope,h,b,A,w,k,_)});v=j})}}}}],Oo="ng-hide",Io="ng-hide-animate",zo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngShow,function(e){t[e?"removeClass":"addClass"](n,Oo,{tempClasses:Io})})}}}],Mo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngHide,function(e){t[e?"addClass":"removeClass"](n,Oo,{tempClasses:Io})})}}}],Do=Tn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&o(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),jo=["$animate",function(t){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,a){var s=i.ngSwitch||i.on,u=[],c=[],l=[],f=[],h=function(t,e){return function(){t.splice(e,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=l.length;i>r;++r)t.cancel(l[r]);for(l.length=0,r=0,i=f.length;i>r;++r){var s=ut(c[r].clone);f[r].$destroy();var d=l[r]=t.leave(s);d.then(h(l,r))}c.length=0,f.length=0,(u=a.cases["!"+n]||a.cases["?"])&&o(u,function(n){n.transclude(function(r,i){f.push(i);var o=n.element;r[r.length++]=e.createComment(" end ngSwitchWhen: ");var a={clone:r};c.push(a),t.enter(r,o.parent(),o)})})})}}}],No=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:e})}}),Po=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:e})}}),Ro=Tn({restrict:"EAC",link:function(t,e,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",H(e));o(function(t){e.empty(),e.append(t)})}}),Fo=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var r=n.id,i=e[0].text;t.put(r,i)}}}}],Bo=r("ngOptions"),Lo=v({restrict:"A",terminal:!0}),Uo=["$compile","$parse",function(t,r){var i=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,s={$setViewValue:p};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(t,e,n){var r,i,o=this,a={},u=s;o.databound=n.ngModel,o.init=function(t,e,n){u=t,r=e,i=n},o.addOption=function(e,n){at(e,'"option value"'),a[e]=!0,u.$viewValue==e&&(t.val(e),i.parent()&&i.remove()),n&&n[0].hasAttribute("selected")&&(n[0].selected=!0)},o.removeOption=function(t){this.hasOption(t)&&(delete a[t],u.$viewValue===t&&this.renderUnknownOption(t))},o.renderUnknownOption=function(e){var n="? "+Bt(e)+" ?";i.val(n),t.prepend(i),t.val(n),i.prop("selected",!0)},o.hasOption=function(t){return a.hasOwnProperty(t)},e.$on("$destroy",function(){o.renderUnknownOption=p})}],link:function(s,u,c,l){function f(t,e,n,r){n.$render=function(){var t=n.$viewValue;r.hasOption(t)?(C.parent()&&C.remove(),e.val(t),""===t&&p.prop("selected",!0)):null==t&&p?e.val(""):r.renderUnknownOption(t)},e.on("change",function(){t.$apply(function(){C.parent()&&C.remove(),n.$setViewValue(e.val())})})}function h(t,e,n){var r;n.$render=function(){var t=new Lt(n.$viewValue);o(e.find("option"),function(e){e.selected=$(t.get(e.value))})},t.$watch(function(){R(r,n.$viewValue)||(r=P(n.$viewValue),n.$render())}),e.on("change",function(){t.$apply(function(){var t=[];o(e.find("option"),function(e){
+e.selected&&t.push(e.value)}),n.$setViewValue(t)})})}function d(e,s,u){function c(t,n,r){return R[A]=r,O&&(R[O]=n),t(e,R)}function l(){e.$apply(function(){var t,n=M(e)||[];if(g)t=[],o(s.val(),function(e){e=j?N[e]:e,t.push(f(e,n[e]))});else{var r=j?N[s.val()]:s.val();t=f(r,n[r])}u.$setViewValue(t),C()})}function f(t,e){if("?"===t)return n;if(""===t)return null;var r=T?T:z;return c(r,t,e)}function h(){var t,n=M(e);if(n&&dr(n)){t=new Array(n.length);for(var r=0,i=n.length;i>r;r++)t[r]=c(k,r,n[r]);return t}if(n){t={};for(var o in n)n.hasOwnProperty(o)&&(t[o]=c(k,o,n[o]))}return t}function d(t){var e;if(g)if(j&&dr(t)){e=new Lt([]);for(var n=0;n<t.length;n++)e.put(c(j,null,t[n]),!0)}else e=new Lt(t);else j&&(t=c(j,null,t));return function(n,r){var i;return i=j?j:T?T:z,g?$(e.remove(c(i,n,r))):t===c(i,n,r)}}function p(){w||(e.$$postDigest(C),w=!0)}function v(t,e,n){t[e]=t[e]||0,t[e]+=n?1:-1}function C(){w=!1;var t,n,r,i,l,f,h,p,y,C,E,A,S,T,z,D,F,B={"":[]},L=[""],U=u.$viewValue,V=M(e)||[],q=O?a(V):V,H={},W=d(U),X=!1;for(N={},A=0;C=q.length,C>A;A++)h=A,O&&(h=q[A],"$"===h.charAt(0))||(p=V[h],t=c(I,h,p)||"",(n=B[t])||(n=B[t]=[],L.push(t)),S=W(h,p),X=X||S,D=c(k,h,p),D=$(D)?D:"",F=j?j(e,R):O?q[A]:A,j&&(N[F]=h),n.push({id:F,label:D,selected:S}));for(g||(b||null===U?B[""].unshift({id:"",label:"",selected:!X}):X||B[""].unshift({id:"?",label:"",selected:!0})),E=0,y=L.length;y>E;E++){for(t=L[E],n=B[t],P.length<=E?(i={element:x.clone().attr("label",t),label:n.label},l=[i],P.push(l),s.append(i.element)):(l=P[E],i=l[0],i.label!=t&&i.element.attr("label",i.label=t)),T=null,A=0,C=n.length;C>A;A++)r=n[A],(f=l[A+1])?(T=f.element,f.label!==r.label&&(v(H,f.label,!1),v(H,r.label,!0),T.text(f.label=r.label),T.prop("label",f.label)),f.id!==r.id&&T.val(f.id=r.id),T[0].selected!==r.selected&&(T.prop("selected",f.selected=r.selected),er&&T.prop("selected",f.selected))):(""===r.id&&b?z=b:(z=_.clone()).val(r.id).prop("selected",r.selected).attr("selected",r.selected).prop("label",r.label).text(r.label),l.push(f={element:z,label:r.label,id:r.id,selected:r.selected}),v(H,r.label,!0),T?T.after(z):i.element.append(z),T=z);for(A++;l.length>A;)r=l.pop(),v(H,r.label,!1),r.element.remove()}for(;P.length>E;){for(n=P.pop(),A=1;A<n.length;++A)v(H,n[A].label,!1);n[0].element.remove()}o(H,function(t,e){t>0?m.addOption(e):0>t&&m.removeOption(e)})}var E;if(!(E=y.match(i)))throw Bo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",y,H(s));var k=r(E[2]||E[1]),A=E[4]||E[6],S=/ as /.test(E[0])&&E[1],T=S?r(S):null,O=E[5],I=r(E[3]||""),z=r(E[2]?E[1]:A),M=r(E[7]),D=E[8],j=D?r(E[8]):null,N={},P=[[{element:s,label:""}]],R={};b&&(t(b)(e),b.removeClass("ng-scope"),b.remove()),s.empty(),s.on("change",l),u.$render=C,e.$watchCollection(M,p),e.$watchCollection(h,p),g&&e.$watchCollection(function(){return u.$modelValue},p)}if(l[1]){for(var p,m=l[0],v=l[1],g=c.multiple,y=c.ngOptions,b=!1,w=!1,_=nr(e.createElement("option")),x=nr(e.createElement("optgroup")),C=_.clone(),E=0,k=u.children(),A=k.length;A>E;E++)if(""===k[E].value){p=b=k.eq(E);break}m.init(v,b,C),g&&(v.$isEmpty=function(t){return!t||0===t.length}),y?d(s,u,v):g?h(s,u,v):f(s,u,v,m)}}}}],Vo=["$interpolate",function(t){var e={addOption:p,removeOption:p};return{restrict:"E",priority:100,compile:function(n,r){if(g(r.value)){var i=t(n.text(),!0);i||r.$set("value",n.text())}return function(t,n,r){var o="$selectController",a=n.parent(),s=a.data(o)||a.parent().data(o);s&&s.databound||(s=e),i?t.$watch(i,function(t,e){r.$set("value",t),e!==t&&s.removeOption(e),s.addOption(t,n)}):s.addOption(r.value,n),n.on("$destroy",function(){s.removeOption(r.value)})}}}}],qo=v({restrict:"E",terminal:!1}),Ho=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){r&&(n.required=!0,r.$validators.required=function(t,e){return!n.required||!r.$isEmpty(e)},n.$observe("required",function(){r.$validate()}))}}},Wo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,i,o){if(o){var a,s=i.ngPattern||i.pattern;i.$observe("pattern",function(t){if(b(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,t,H(e));a=t||n,o.$validate()}),o.$validators.pattern=function(t,e){return o.$isEmpty(e)||g(a)||a.test(e)}}}}},Xo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=-1;n.$observe("maxlength",function(t){var e=h(t);i=isNaN(e)?-1:e,r.$validate()}),r.$validators.maxlength=function(t,e){return 0>i||r.$isEmpty(e)||e.length<=i}}}}},Yo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=0;n.$observe("minlength",function(t){i=h(t)||0,r.$validate()}),r.$validators.minlength=function(t,e){return r.$isEmpty(e)||e.length>=i}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(rt(),dt(lr),void nr(e).ready(function(){J(e,Q)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'),function(t,e,n){"use strict";e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){var t="$$ngAnimateChildren";return function(n,r,i){var o=i.ngAnimateChildren;e.isString(o)&&0===o.length?r.data(t,!0):n.$watch(o,function(e){r.data(t,!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(t,e){var n=e[0].body;return function(e){return t(function(){e(n.offsetWidth)})}}]).config(["$provide","$animateProvider",function(r,i){function o(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.nodeType==v)return n}}function a(t){return t&&e.element(t)}function s(t){return e.element(o(t))}function u(t,e){return o(t)==o(e)}var c,l=e.noop,f=e.forEach,h=i.$$selectors,d=e.isArray,p=e.isString,m=e.isObject,v=1,g="$$ngAnimateState",$="$$ngAnimateChildren",y="ng-animate",b={running:!0};r.decorator("$animate",["$delegate","$$q","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document","$templateRequest","$$jqLite",function(t,n,r,v,w,_,x,C,E,k){function A(t,e){var n=t.data(g)||{};return e&&(n.running=!0,n.structural=!0,t.data(g,n)),n.disabled||n.running&&n.structural}function S(t){var e,r=n.defer();return r.promise.$$cancelFn=function(){e&&e()},x.$$postDigest(function(){e=t(function(){r.resolve()})}),r.promise}function T(t){return m(t)?(t.tempClasses&&p(t.tempClasses)&&(t.tempClasses=t.tempClasses.split(/\s+/)),t):void 0}function O(t,e,n){n=n||{};var r={};f(n,function(t,e){f(e.split(" "),function(e){r[e]=t})});var i=Object.create(null);f((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0});var o=[],a=[];return f(e&&e.classes||[],function(t,e){var n=i[e],s=r[e]||{};t===!1?(n||"addClass"==s.event)&&a.push(e):t===!0&&(n&&"removeClass"!=s.event||o.push(e))}),o.length+a.length>0&&[o.join(" "),a.join(" ")]}function I(t){if(t){var e=[],n={},i=t.substr(1).split(".");(v.transitions||v.animations)&&e.push(r.get(h[""]));for(var o=0;o<i.length;o++){var a=i[o],s=h[a];s&&!n[a]&&(e.push(r.get(s)),n[a]=!0)}return e}}function z(t,n,r,i){function o(t,e){var n=t[e],r=t["before"+e.charAt(0).toUpperCase()+e.substr(1)];return n||r?("leave"==e&&(r=n,n=null),_.push({event:e,fn:n}),y.push({event:e,fn:r}),!0):void 0}function a(e,n,o){function a(t){if(n){if((n[t]||l)(),++h<s.length)return;n=null}o()}var s=[];f(e,function(t){t.fn&&s.push(t)});var h=0;f(s,function(e,o){var s=function(){a(o)};switch(e.event){case"setClass":n.push(e.fn(t,u,c,s,i));break;case"animate":n.push(e.fn(t,r,i.from,i.to,s));break;case"addClass":n.push(e.fn(t,u||r,s,i));break;case"removeClass":n.push(e.fn(t,c||r,s,i));break;default:n.push(e.fn(t,s,i))}}),n&&0===n.length&&o()}var s=t[0];if(s){i&&(i.to=i.to||{},i.from=i.from||{});var u,c;d(r)&&(u=r[0],c=r[1],u?c?r=u+" "+c:(r=u,n="addClass"):(r=c,n="removeClass"));var h="setClass"==n,p=h||"addClass"==n||"removeClass"==n||"animate"==n,m=t.attr("class"),v=m+" "+r;if(B(v)){var g=l,$=[],y=[],b=l,w=[],_=[],x=(" "+v).replace(/\s+/g,".");return f(I(x),function(t){var e=o(t,n);!e&&h&&(o(t,"addClass"),o(t,"removeClass"))}),{node:s,event:n,className:r,isClassBased:p,isSetClassOperation:h,applyStyles:function(){i&&t.css(e.extend(i.from||{},i.to||{}))},before:function(t){g=t,a(y,$,function(){g=l,t()})},after:function(t){b=t,a(_,w,function(){b=l,t()})},cancel:function(){$&&(f($,function(t){(t||l)(!0)}),g(!0)),w&&(f(w,function(t){(t||l)(!0)}),b(!0))}}}}}function M(t,n,r,i,o,a,s,u){function h(e){var i="$animate:"+e;x&&x[i]&&x[i].length>0&&_(function(){r.triggerHandler(i,{event:t,className:n})})}function d(){h("before")}function p(){h("after")}function m(){h("close"),u()}function v(){v.hasBeenRun||(v.hasBeenRun=!0,a())}function $(){if(!$.hasBeenRun){w&&w.applyStyles(),$.hasBeenRun=!0,s&&s.tempClasses&&f(s.tempClasses,function(t){c.removeClass(r,t)});var e=r.data(g);e&&(w&&w.isClassBased?j(r,n):(_(function(){var e=r.data(g)||{};M==e.index&&j(r,n,t)}),r.data(g,e))),m()}}var b=l,w=z(r,t,n,s);if(!w)return v(),d(),p(),$(),b;t=w.event,n=w.className;var x=e.element._data(w.node);if(x=x&&x.events,i||(i=o?o.parent():r.parent()),N(r,i))return v(),d(),p(),$(),b;var C=r.data(g)||{},E=C.active||{},k=C.totalActive||0,A=C.last,S=!1;if(k>0){var T=[];if(w.isClassBased){if("setClass"==A.event)T.push(A),j(r,n);else if(E[n]){var O=E[n];O.event==t?S=!0:(T.push(O),j(r,n))}}else if("leave"==t&&E["ng-leave"])S=!0;else{for(var I in E)T.push(E[I]);C={},j(r,!0)}T.length>0&&f(T,function(t){t.cancel()})}if(!w.isClassBased||w.isSetClassOperation||"animate"==t||S||(S="addClass"==t==r.hasClass(n)),S)return v(),d(),p(),m(),b;E=C.active||{},k=C.totalActive||0,"leave"==t&&r.one("$destroy",function(t){var n=e.element(this),r=n.data(g);if(r){var i=r.active["ng-leave"];i&&(i.cancel(),j(n,"ng-leave"))}}),c.addClass(r,y),s&&s.tempClasses&&f(s.tempClasses,function(t){c.addClass(r,t)});var M=R++;return k++,E[n]=w,r.data(g,{last:w,active:E,index:M,totalActive:k}),d(),w.before(function(e){var i=r.data(g);e=e||!i||!i.active[n]||w.isClassBased&&i.active[n].event!=t,v(),e===!0?$():(p(),w.after($))}),w.cancel}function D(t){var n=o(t);if(n){var r=e.isFunction(n.getElementsByClassName)?n.getElementsByClassName(y):n.querySelectorAll("."+y);f(r,function(t){t=e.element(t);var n=t.data(g);n&&n.active&&f(n.active,function(t){t.cancel()})})}}function j(t,e){if(u(t,w))b.disabled||(b.running=!1,b.structural=!1);else if(e){var n=t.data(g)||{},r=e===!0;!r&&n.active&&n.active[e]&&(n.totalActive--,delete n.active[e]),(r||!n.totalActive)&&(c.removeClass(t,y),t.removeData(g))}}function N(t,n){if(b.disabled)return!0;if(u(t,w))return b.running;var r,i,o;do{if(0===n.length)break;var a=u(n,w),s=a?b:n.data(g)||{};if(s.disabled)return!0;if(a&&(o=!0),r!==!1){var c=n.data($);e.isDefined(c)&&(r=c)}i=i||s.running||s.last&&!s.last.isClassBased}while(n=n.parent());return!o||!r&&i}c=k,w.data(g,b);var P=x.$watch(function(){return E.totalPendingRequests},function(t,e){0===t&&(P(),x.$$postDigest(function(){x.$$postDigest(function(){b.running=!1})}))}),R=0,F=i.classNameFilter(),B=F?function(t){return F.test(t)}:function(){return!0};return{animate:function(t,e,n,r,i){return r=r||"ng-inline-animate",i=T(i)||{},i.from=n?e:null,i.to=n?n:e,S(function(e){return M("animate",r,s(t),null,null,l,i,e)})},enter:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),A(n,!0),t.enter(n,r,i),S(function(t){return M("enter","ng-enter",s(n),r,i,l,o,t)})},leave:function(n,r){return r=T(r),n=e.element(n),D(n),A(n,!0),S(function(e){return M("leave","ng-leave",s(n),null,null,function(){t.leave(n)},r,e)})},move:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),D(n),A(n,!0),t.move(n,r,i),S(function(t){return M("move","ng-move",s(n),r,i,l,o,t)})},addClass:function(t,e,n){return this.setClass(t,e,[],n)},removeClass:function(t,e,n){return this.setClass(t,[],e,n)},setClass:function(n,r,i,a){a=T(a);var u="$$animateClasses";if(n=e.element(n),n=s(n),A(n))return t.$$setClassImmediately(n,r,i,a);var c,l=n.data(u),h=!!l;return l||(l={},l.classes={}),c=l.classes,r=d(r)?r:r.split(" "),f(r,function(t){t&&t.length&&(c[t]=!0)}),i=d(i)?i:i.split(" "),f(i,function(t){t&&t.length&&(c[t]=!1)}),h?(a&&l.options&&(l.options=e.extend(l.options||{},a)),l.promise):(n.data(u,l={classes:c,options:a}),l.promise=S(function(e){var r,i,a,s=o(n);if(s&&(r=n.data(u),n.removeData(u),a=n.parent(),i=s.parentNode),!i||i.$$NG_REMOVED||s.$$NG_REMOVED)return void e();var c=n.data(g)||{},l=O(n,r,c.active);return l?M("setClass",l,n,a,null,function(){l[0]&&t.$$addClassImmediately(n,l[0]),l[1]&&t.$$removeClassImmediately(n,l[1])},r.options,e):e()}))},cancel:function(t){t.$$cancelFn()},enabled:function(t,e){switch(arguments.length){case 2:if(t)j(e);else{var n=e.data(g)||{};n.disabled=!0,e.data(g,n)}break;case 1:b.disabled=!t;break;default:t=!b.disabled}return!!t}}}]),i.register("",["$window","$sniffer","$timeout","$$animateReflow",function(r,i,a,s){function u(){j||(j=s(function(){Y=[],j=null,W={}}))}function h(t,e){j&&j(),Y.push(e),j=s(function(){f(Y,function(t){t()}),Y=[],j=null,W={}})}function m(t,n){var r=o(t);t=e.element(r),K.push(t);var i=Date.now()+n;G>=i||(a.cancel(Z),G=i,Z=a(function(){g(K),K=[]},n,!1))}function g(t){f(t,function(t){var e=t.data(U);e&&f(e.closeAnimationFns,function(t){t()})})}function $(t,e){var n=e?W[e]:null;if(!n){var i=0,o=0,a=0,s=0;f(t,function(t){if(t.nodeType==v){var e=r.getComputedStyle(t)||{},n=e[O+N];i=Math.max(y(n),i);var u=e[O+R];o=Math.max(y(u),o);e[z+R];s=Math.max(y(e[z+R]),s);var c=y(e[z+N]);c>0&&(c*=parseInt(e[z+F],10)||1),a=Math.max(c,a)}}),n={total:0,transitionDelay:o,transitionDuration:i,animationDelay:s,animationDuration:a},e&&(W[e]=n)}return n}function y(t){var e=0,n=p(t)?t.split(/\s*,\s*/):[];return f(n,function(t){e=Math.max(parseFloat(t)||0,e)}),e}function b(t){var e=t.parent(),n=e.data(L);return n||(e.data(L,++X),n=X),n+"-"+o(t).getAttribute("class")}function w(t,e,n,r){var i=["ng-enter","ng-leave","ng-move"].indexOf(n)>=0,a=b(e),s=a+" "+n,u=W[s]?++W[s].total:0,l={};if(u>0){var f=n+"-stagger",h=a+" "+f,d=!W[h];d&&c.addClass(e,f),l=$(e,h),d&&c.removeClass(e,f)}c.addClass(e,n);var p=e.data(U)||{},m=$(e,s),v=m.transitionDuration,g=m.animationDuration;if(i&&0===v&&0===g)return c.removeClass(e,n),!1;var y=r||i&&v>0,w=g>0&&l.animationDelay>0&&0===l.animationDuration,_=p.closeAnimationFns||[];e.data(U,{stagger:l,cacheKey:s,running:p.running||0,itemIndex:u,blockTransition:y,closeAnimationFns:_});var E=o(e);return y&&(x(E,!0),r&&e.css(r)),w&&C(E,!0),!0}function _(t,e,n,r,i){function s(){e.off(R,u),c.removeClass(e,d),c.removeClass(e,p),N&&a.cancel(N),S(e,n);var t=o(e);for(var r in g)t.style.removeProperty(g[r])}function u(t){t.stopPropagation();var e=t.originalEvent||t,n=e.$manualTimeStamp||e.timeStamp||Date.now(),i=parseFloat(e.elapsedTime.toFixed(V));Math.max(n-P,0)>=z&&i>=T&&r()}var l=o(e),h=e.data(U);if(-1==l.getAttribute("class").indexOf(n)||!h)return void r();var d="",p="";f(n.split(" "),function(t,e){var n=(e>0?" ":"")+t;d+=n+"-active",p+=n+"-pending"});var v="",g=[],y=h.itemIndex,b=h.stagger,w=0;if(y>0){var _=0;b.transitionDelay>0&&0===b.transitionDuration&&(_=b.transitionDelay*y);var E=0;b.animationDelay>0&&0===b.animationDuration&&(E=b.animationDelay*y,g.push(D+"animation-play-state")),w=Math.round(100*Math.max(_,E))/100}w||(c.addClass(e,d),h.blockTransition&&x(l,!1));var k=h.cacheKey+" "+d,A=$(e,k),T=Math.max(A.transitionDuration,A.animationDuration);if(0===T)return c.removeClass(e,d),S(e,n),void r();!w&&i&&Object.keys(i).length>0&&(A.transitionDuration||(e.css("transition",A.animationDuration+"s linear all"),g.push("transition")),e.css(i));var O=Math.max(A.transitionDelay,A.animationDelay),z=O*H;if(g.length>0){var j=l.getAttribute("style")||"";";"!==j.charAt(j.length-1)&&(j+=";"),l.setAttribute("style",j+" "+v)}var N,P=Date.now(),R=M+" "+I,F=(O+T)*q,B=(w+F)*H;return w>0&&(c.addClass(e,p),N=a(function(){N=null,A.transitionDuration>0&&x(l,!1),A.animationDuration>0&&C(l,!1),c.addClass(e,d),c.removeClass(e,p),i&&(0===A.transitionDuration&&e.css("transition",A.animationDuration+"s linear all"),e.css(i),g.push("transition"))},w*H,!1)),e.on(R,u),h.closeAnimationFns.push(function(){s(),r()}),h.running++,m(e,B),s}function x(t,e){t.style[O+P]=e?"none":""}function C(t,e){t.style[z+B]=e?"paused":""}function E(t,e,n,r){return w(t,e,n,r)?function(t){t&&S(e,n)}:void 0}function k(t,e,n,r,i){return e.data(U)?_(t,e,n,r,i):(S(e,n),void r())}function A(t,e,n,r,i){var o=E(t,e,n,i.from);if(!o)return u(),void r();var a=o;return h(e,function(){a=k(t,e,n,r,i.to)}),function(t){(a||l)(t)}}function S(t,e){c.removeClass(t,e);var n=t.data(U);n&&(n.running&&n.running--,n.running&&0!==n.running||t.removeData(U))}function T(t,e){var n="";return t=d(t)?t:t.split(/\s+/),f(t,function(t,r){t&&t.length>0&&(n+=(r>0?" ":"")+t+e)}),n}var O,I,z,M,D="";t.ontransitionend===n&&t.onwebkittransitionend!==n?(D="-webkit-",O="WebkitTransition",I="webkitTransitionEnd transitionend"):(O="transition",I="transitionend"),t.onanimationend===n&&t.onwebkitanimationend!==n?(D="-webkit-",z="WebkitAnimation",M="webkitAnimationEnd animationend"):(z="animation",M="animationend");var j,N="Duration",P="Property",R="Delay",F="IterationCount",B="PlayState",L="$$ngAnimateKey",U="$$ngAnimateCSS3Data",V=3,q=1.5,H=1e3,W={},X=0,Y=[],Z=null,G=0,K=[];return{animate:function(t,e,n,r,i,o){return o=o||{},o.from=n,o.to=r,A("animate",t,e,i,o)},enter:function(t,e,n){return n=n||{},A("enter",t,"ng-enter",e,n)},leave:function(t,e,n){return n=n||{},A("leave",t,"ng-leave",e,n)},move:function(t,e,n){return n=n||{},A("move",t,"ng-move",e,n)},beforeSetClass:function(t,e,n,r,i){i=i||{};var o=T(n,"-remove")+" "+T(e,"-add"),a=E("setClass",t,o,i.from);return a?(h(t,r),a):(u(),void r())},beforeAddClass:function(t,e,n,r){r=r||{};var i=E("addClass",t,T(e,"-add"),r.from);return i?(h(t,n),i):(u(),void n())},beforeRemoveClass:function(t,e,n,r){r=r||{};var i=E("removeClass",t,T(e,"-remove"),r.from);return i?(h(t,n),i):(u(),void n())},setClass:function(t,e,n,r,i){i=i||{},n=T(n,"-remove"),e=T(e,"-add");var o=n+" "+e;return k("setClass",t,o,r,i.to)},addClass:function(t,e,n,r){return r=r||{},k("addClass",t,T(e,"-add"),n,r.to)},removeClass:function(t,e,n,r){return r=r||{},k("removeClass",t,T(e,"-remove"),n,r.to)}}}])}])}(window,window.angular),function(t,e,n){"use strict";e.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(t,r){function i(){var t,i,o,u;for(t in s)l(a[t])&&(r.cookies(t,n),delete s[t]);for(t in a)i=a[t],e.isString(i)||(i=""+i,a[t]=i),i!==s[t]&&(r.cookies(t,i),s[t]=i,u=!0);if(u){o=r.cookies();for(t in a)a[t]!==o[t]&&(l(o[t])?(delete a[t],delete s[t]):a[t]=s[t]=o[t])}}var o,a={},s={},u=!1,c=e.copy,l=e.isUndefined;return r.addPollFn(function(){var e=r.cookies();o!=e&&(o=e,c(e,s),c(e,a),u&&t.$apply())})(),u=!0,t.$watch(i),a}]).factory("$cookieStore",["$cookies",function(t){return{get:function(n){var r=t[n];return r?e.fromJson(r):r},put:function(n,r){t[n]=e.toJson(r)},remove:function(e){delete t[e]}}}])}(window,window.angular),angular.module("ui-notification",[]),angular.module("ui-notification").provider("Notification",function(){this.options={delay:5e3,startTop:10,startRight:10,verticalSpacing:10,horizontalSpacing:10,positionX:"right",positionY:"top",replaceMessage:!1,templateUrl:"angular-ui-notification.html"},this.setOptions=function(t){if(!angular.isObject(t))throw new Error("Options should be an object!");this.options=angular.extend({},this.options,t)},this.$get=["$timeout","$http","$compile","$templateCache","$rootScope","$injector","$sce","$q","$window",function(t,e,n,r,i,o,a,s,u){var c=this.options,l=c.startTop,f=c.startRight,h=c.verticalSpacing,d=c.horizontalSpacing,p=c.delay,m=[],v=!1,g=function(o,g){var $=s.defer();return"object"!=typeof o&&(o={message:o}),o.scope=o.scope?o.scope:i,o.template=o.templateUrl?o.templateUrl:c.templateUrl,o.delay=angular.isUndefined(o.delay)?p:o.delay,o.type=g?g:"",o.positionY=o.positionY?o.positionY:c.positionY,o.positionX=o.positionX?o.positionX:c.positionX,o.replaceMessage=o.replaceMessage?o.replaceMessage:c.replaceMessage,e.get(o.template,{cache:r}).success(function(e){var r=o.scope.$new();r.message=a.trustAsHtml(o.message),r.title=a.trustAsHtml(o.title),r.t=o.type.substr(0,1),r.delay=o.delay;var i=function(){for(var t=0,e=0,n=l,r=f,i=[],a=m.length-1;a>=0;a--){var s=m[a];if(o.replaceMessage&&a<m.length-1)s.addClass("killed");else{var u=parseInt(s[0].offsetHeight),c=parseInt(s[0].offsetWidth),p=i[s._positionY+s._positionX];v+u>window.innerHeight&&(p=l,e++,t=0);var v=n=p?0===t?p:p+h:l,g=r+e*(d+c);s.css(s._positionY,v+"px"),"center"==s._positionX?s.css("left",parseInt(window.innerWidth/2-c/2)+"px"):s.css(s._positionX,g+"px"),i[s._positionY+s._positionX]=v+u,t++}}},s=n(e)(r);s._positionY=o.positionY,s._positionX=o.positionX,s.addClass(o.type),s.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd click",function(t){t=t.originalEvent||t,("click"===t.type||"opacity"===t.propertyName&&t.elapsedTime>=1)&&(s.remove(),m.splice(m.indexOf(s),1),i())}),angular.isNumber(o.delay)&&t(function(){s.addClass("killed")},o.delay),angular.element(document.getElementsByTagName("body")).append(s);var c=-(parseInt(s[0].offsetHeight)+50);s.css(s._positionY,c+"px"),m.push(s),r._templateElement=s,r.kill=function(e){e?(m.splice(m.indexOf(r._templateElement),1),r._templateElement.remove(),t(i)):r._templateElement.addClass("killed")},t(i),v||(angular.element(u).bind("resize",function(){t(i)}),v=!0),$.resolve(r)}).error(function(t){throw new Error("Template ("+o.template+") could not be loaded. "+t)}),$.promise};return g.primary=function(t){return this(t,"primary")},g.error=function(t){return this(t,"error")},g.success=function(t){return this(t,"success")},g.info=function(t){return this(t,"info")},g.warning=function(t){return this(t,"warning")},g.clearAll=function(){angular.forEach(m,function(t){t.addClass("killed")})},g}]}),angular.module("ui-notification").run(["$templateCache",function(t){t.put("angular-ui-notification.html",'<div class="ui-notification"><h3 ng-show="title" ng-bind-html="title"></h3><div class="message" ng-bind-html="message"></div></div>')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(t,e,n){"use strict";function r(t,e){return V(new(V(function(){},{prototype:t})),e)}function i(t){return U(arguments,function(e){e!==t&&U(e,function(e,n){t.hasOwnProperty(n)||(t[n]=e)})}),t}function o(t,e){var n=[];for(var r in t.path){if(t.path[r]!==e.path[r])break;n.push(t.path[r])}return n}function a(t){if(Object.keys)return Object.keys(t);var e=[];return U(t,function(t,n){e.push(n)}),e}function s(t,e){if(Array.prototype.indexOf)return t.indexOf(e,Number(arguments[2])||0);var n=t.length>>>0,r=Number(arguments[2])||0;for(r=0>r?Math.ceil(r):Math.floor(r),0>r&&(r+=n);n>r;r++)if(r in t&&t[r]===e)return r;return-1}function u(t,e,n,r){var i,u=o(n,r),c={},l=[];for(var f in u)if(u[f]&&u[f].params&&(i=a(u[f].params),i.length))for(var h in i)s(l,i[h])>=0||(l.push(i[h]),c[i[h]]=t[i[h]]);return V({},c,e)}function c(t,e,n){if(!n){n=[];for(var r in t)n.push(r)}for(var i=0;i<n.length;i++){var o=n[i];if(t[o]!=e[o])return!1}return!0}function l(t,e){var n={};return U(t,function(t){n[t]=e[t]}),n}function f(t){var e={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return U(n,function(n){n in t&&(e[n]=t[n])}),e}function h(t){var e={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var r in t)-1==s(n,r)&&(e[r]=t[r]);return e}function d(t,e){var n=L(t),r=n?[]:{};return U(t,function(t,i){e(t,i)&&(r[n?r.length:i]=t)}),r}function p(t,e){var n=L(t)?[]:{};return U(t,function(t,r){n[r]=e(t,r)}),n}function m(t,e){var r=1,o=2,u={},c=[],l=u,f=V(t.when(u),{$$promises:u,$$values:u});this.study=function(u){function d(t,n){if($[n]!==o){if(g.push(n),$[n]===r)throw g.splice(0,s(g,n)),new Error("Cyclic dependency: "+g.join(" -> "));if($[n]=r,F(t))v.push(n,[function(){return e.get(t)}],c);else{var i=e.annotate(t);U(i,function(t){t!==n&&u.hasOwnProperty(t)&&d(u[t],t)}),v.push(n,t,i)}g.pop(),$[n]=o}}function p(t){return B(t)&&t.then&&t.$$promises}if(!B(u))throw new Error("'invocables' must be an object");var m=a(u||{}),v=[],g=[],$={};return U(u,d),u=g=$=null,function(r,o,a){function s(){--b||(w||i(y,o.$$values),g.$$values=y,g.$$promises=g.$$promises||!0,delete g.$$inheritedValues,d.resolve(y))}function u(t){g.$$failure=t,d.reject(t)}function c(n,i,o){function c(t){f.reject(t),u(t)}function l(){if(!P(g.$$failure))try{f.resolve(e.invoke(i,a,y)),f.promise.then(function(t){y[n]=t,s()},c)}catch(t){c(t)}}var f=t.defer(),h=0;U(o,function(t){$.hasOwnProperty(t)&&!r.hasOwnProperty(t)&&(h++,$[t].then(function(e){y[t]=e,--h||l()},c))}),h||l(),$[n]=f.promise}if(p(r)&&a===n&&(a=o,o=r,r=null),r){if(!B(r))throw new Error("'locals' must be an object")}else r=l;if(o){if(!p(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=f;var d=t.defer(),g=d.promise,$=g.$$promises={},y=V({},r),b=1+v.length/3,w=!1;if(P(o.$$failure))return u(o.$$failure),g;o.$$inheritedValues&&i(y,h(o.$$inheritedValues,m)),V($,o.$$promises),o.$$values?(w=i(y,h(o.$$values,m)),g.$$inheritedValues=h(o.$$values,m),s()):(o.$$inheritedValues&&(g.$$inheritedValues=h(o.$$inheritedValues,m)),o.then(s,u));for(var _=0,x=v.length;x>_;_+=3)r.hasOwnProperty(v[_])?s():c(v[_],v[_+1],v[_+2]);return g}},this.resolve=function(t,e,n,r){return this.study(t)(e,n,r)}}function v(t,e,n){this.fromConfig=function(t,e,n){return P(t.template)?this.fromString(t.template,e):P(t.templateUrl)?this.fromUrl(t.templateUrl,e):P(t.templateProvider)?this.fromProvider(t.templateProvider,e,n):null},this.fromString=function(t,e){return R(t)?t(e):t},this.fromUrl=function(n,r){return R(n)&&(n=n(r)),null==n?null:t.get(n,{cache:e,headers:{Accept:"text/html"}}).then(function(t){return t.data})},this.fromProvider=function(t,e,r){return n.invoke(t,null,r||{params:e})}}function g(t,e,i){function o(e,n,r,i){if(v.push(e),p[e])return p[e];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(e))throw new Error("Invalid parameter name '"+e+"' in pattern '"+t+"'");if(m[e])throw new Error("Duplicate parameter name '"+e+"' in pattern '"+t+"'");return m[e]=new W.Param(e,n,r,i),m[e]}function a(t,e,n,r){var i=["",""],o=t.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!e)return o;switch(n){case!1:i=["(",")"+(r?"?":"")];break;case!0:o=o.replace(/\/$/,""),i=["(?:/(",")|/)?"];break;default:i=["("+n+"|",")?"]}return o+i[0]+e+i[1]}function s(i,o){var a,s,u,c,l;return a=i[2]||i[3],l=e.params[a],u=t.substring(h,i.index),s=o?i[4]:i[4]||("*"==i[1]?".*":null),s&&(c=W.type(s)||r(W.type("string"),{pattern:new RegExp(s,e.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:u,type:c,cfg:l}}e=V({params:{}},B(e)?e:{});var u,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,f="^",h=0,d=this.segments=[],p=i?i.params:{},m=this.params=i?i.params.$$new():new W.ParamSet,v=[];this.source=t;for(var g,$,y;(u=c.exec(t))&&(g=s(u,!1),!(g.segment.indexOf("?")>=0));)$=o(g.id,g.type,g.cfg,"path"),f+=a(g.segment,$.type.pattern.source,$.squash,$.isOptional),d.push(g.segment),h=c.lastIndex;y=t.substring(h);var b=y.indexOf("?");if(b>=0){var w=this.sourceSearch=y.substring(b);if(y=y.substring(0,b),this.sourcePath=t.substring(0,h+b),w.length>0)for(h=0;u=l.exec(w);)g=s(u,!0),$=o(g.id,g.type,g.cfg,"search"),h=c.lastIndex}else this.sourcePath=t,this.sourceSearch="";f+=a(y)+(e.strict===!1?"/?":"")+"$",d.push(y),this.regexp=new RegExp(f,e.caseInsensitive?"i":n),this.prefix=d[0],this.$$paramNames=v}function $(t){V(this,t)}function y(){function t(t){return null!=t?t.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):t}function i(t){return null!=t?t.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):t}function o(){return{strict:m,caseInsensitive:h}}function u(t){return R(t)||L(t)&&R(t[t.length-1])}function c(){for(;_.length;){var t=_.shift();if(t.pattern)throw new Error("You cannot override a type's .pattern at runtime.");e.extend(b[t.name],f.invoke(t.def))}}function l(t){V(this,t||{})}W=this;var f,h=!1,m=!0,v=!1,b={},w=!0,_=[],x={string:{encode:t,decode:i,is:function(t){return null==t||!P(t)||"string"==typeof t},pattern:/[^\/]*/},"int":{encode:t,decode:function(t){return parseInt(t,10)},is:function(t){return P(t)&&this.decode(t.toString())===t},pattern:/\d+/},bool:{encode:function(t){return t?1:0},decode:function(t){return 0!==parseInt(t,10)},is:function(t){return t===!0||t===!1},pattern:/0|1/},date:{encode:function(t){return this.is(t)?[t.getFullYear(),("0"+(t.getMonth()+1)).slice(-2),("0"+t.getDate()).slice(-2)].join("-"):n},decode:function(t){if(this.is(t))return t;var e=this.capture.exec(t);return e?new Date(e[1],e[2]-1,e[3]):n},is:function(t){return t instanceof Date&&!isNaN(t.valueOf())},equals:function(t,e){return this.is(t)&&this.is(e)&&t.toISOString()===e.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:e.toJson,decode:e.fromJson,is:e.isObject,equals:e.equals,pattern:/[^\/]*/},any:{encode:e.identity,decode:e.identity,equals:e.equals,pattern:/.*/}};y.$$getDefaultValue=function(t){if(!u(t.value))return t.value;if(!f)throw new Error("Injectable functions cannot be called at configuration time");return f.invoke(t.value)},this.caseInsensitive=function(t){return P(t)&&(h=t),h},this.strictMode=function(t){return P(t)&&(m=t),m},this.defaultSquashPolicy=function(t){if(!P(t))return v;if(t!==!0&&t!==!1&&!F(t))throw new Error("Invalid squash policy: "+t+". Valid policies: false, true, arbitrary-string");return v=t,t},this.compile=function(t,e){return new g(t,V(o(),e))},this.isMatcher=function(t){if(!B(t))return!1;var e=!0;return U(g.prototype,function(n,r){R(n)&&(e=e&&P(t[r])&&R(t[r]))}),e},this.type=function(t,e,n){if(!P(e))return b[t];if(b.hasOwnProperty(t))throw new Error("A type named '"+t+"' has already been defined.");return b[t]=new $(V({name:t},e)),n&&(_.push({name:t,def:n}),w||c()),this},U(x,function(t,e){b[e]=new $(V({name:e},t))}),b=r(b,{}),this.$get=["$injector",function(t){return f=t,w=!1,c(),U(x,function(t,e){b[e]||(b[e]=new $(t))}),this}],this.Param=function(t,r,i,o){function c(t){var e=B(t)?a(t):[],n=-1===s(e,"value")&&-1===s(e,"type")&&-1===s(e,"squash")&&-1===s(e,"array");return n&&(t={value:t}),t.$$fn=u(t.value)?t.value:function(){return t.value},t}function l(n,r,i){if(n.type&&r)throw new Error("Param '"+t+"' has two type configurations.");return r?r:n.type?e.isString(n.type)?b[n.type]:n.type instanceof $?n.type:new $(n.type):"config"===i?b.any:b.string}function h(){var e={array:"search"===o?"auto":!1},n=t.match(/\[\]$/)?{array:!0}:{};return V(e,n,i).array}function m(t,e){var n=t.squash;if(!e||n===!1)return!1;if(!P(n)||null==n)return v;if(n===!0||F(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}function g(t,e,r,i){var o,a,u=[{from:"",to:r||e?n:""},{from:null,to:r||e?n:""}];return o=L(t.replace)?t.replace:[],F(i)&&o.push({from:i,to:n}),a=p(o,function(t){return t.from}),d(u,function(t){return-1===s(a,t.from)}).concat(o)}function y(){if(!f)throw new Error("Injectable functions cannot be called at configuration time");var t=f.invoke(i.$$fn);if(null!==t&&t!==n&&!x.type.is(t))throw new Error("Default value ("+t+") for parameter '"+x.id+"' is not an instance of Type ("+x.type.name+")");return t}function w(t){function e(t){return function(e){return e.from===t}}function n(t){var n=p(d(x.replace,e(t)),function(t){return t.to});return n.length?n[0]:t}return t=n(t),P(t)?x.type.$normalize(t):y()}function _(){return"{Param:"+t+" "+r+" squash: '"+k+"' optional: "+E+"}"}var x=this;i=c(i),r=l(i,r,o);var C=h();r=C?r.$asArray(C,"search"===o):r,
+"string"!==r.name||C||"path"!==o||i.value!==n||(i.value="");var E=i.value!==n,k=m(i,E),A=g(i,C,E,k);V(this,{id:t,type:r,location:o,array:C,squash:k,replace:A,isOptional:E,value:w,dynamic:n,config:i,toString:_})},l.prototype={$$new:function(){return r(this,V(new l,{$$parent:this}))},$$keys:function(){for(var t=[],e=[],n=this,r=a(l.prototype);n;)e.push(n),n=n.$$parent;return e.reverse(),U(e,function(e){U(a(e),function(e){-1===s(t,e)&&-1===s(r,e)&&t.push(e)})}),t},$$values:function(t){var e={},n=this;return U(n.$$keys(),function(r){e[r]=n[r].value(t&&t[r])}),e},$$equals:function(t,e){var n=!0,r=this;return U(r.$$keys(),function(i){var o=t&&t[i],a=e&&e[i];r[i].type.equals(o,a)||(n=!1)}),n},$$validates:function(t){var r,i,o,a,s,u=this.$$keys();for(r=0;r<u.length&&(i=this[u[r]],o=t[u[r]],o!==n&&null!==o||!i.isOptional);r++){if(a=i.type.$normalize(o),!i.type.is(a))return!1;if(s=i.type.encode(a),e.isString(s)&&!i.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=l}function b(t,r){function i(t){var e=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(t.source);return null!=e?e[1].replace(/\\(.)/g,"$1"):""}function o(t,e){return t.replace(/\$(\$|\d{1,2})/,function(t,n){return e["$"===n?0:Number(n)]})}function a(t,e,n){if(!n)return!1;var r=t.invoke(e,e,{$match:n});return P(r)?r:!0}function s(r,i,o,a,s){function h(t,e,n){return"/"===v?t:e?v.slice(0,-1)+t:n?v.slice(1)+t:t}function d(t){function e(t){var e=t(o,r);return e?(F(e)&&r.replace().url(e),!0):!1}if(!t||!t.defaultPrevented){m&&r.url()===m;m=n;var i,a=c.length;for(i=0;a>i;i++)if(e(c[i]))return;l&&e(l)}}function p(){return u=u||i.$on("$locationChangeSuccess",d)}var m,v=a.baseHref(),g=r.url();return f||p(),{sync:function(){d()},listen:function(){return p()},update:function(t){return t?void(g=r.url()):void(r.url()!==g&&(r.url(g),r.replace()))},push:function(t,e,i){var o=t.format(e||{});null!==o&&e&&e["#"]&&(o+="#"+e["#"]),r.url(o),m=i&&i.$$avoidResync?r.url():n,i&&i.replace&&r.replace()},href:function(n,i,o){if(!n.validates(i))return null;var a=t.html5Mode();e.isObject(a)&&(a=a.enabled),a=a&&s.history;var u=n.format(i);if(o=o||{},a||null===u||(u="#"+t.hashPrefix()+u),null!==u&&i&&i["#"]&&(u+="#"+i["#"]),u=h(u,a,o.absolute),!o.absolute||!u)return u;var c=!a&&u?"/":"",l=r.port();return l=80===l||443===l?"":":"+l,[r.protocol(),"://",r.host(),l,c,u].join("")}}}var u,c=[],l=null,f=!1;this.rule=function(t){if(!R(t))throw new Error("'rule' must be a function");return c.push(t),this},this.otherwise=function(t){if(F(t)){var e=t;t=function(){return e}}else if(!R(t))throw new Error("'rule' must be a function");return l=t,this},this.when=function(t,e){var n,s=F(e);if(F(t)&&(t=r.compile(t)),!s&&!R(e)&&!L(e))throw new Error("invalid 'handler' in when()");var u={matcher:function(t,e){return s&&(n=r.compile(e),e=["$match",function(t){return n.format(t)}]),V(function(n,r){return a(n,e,t.exec(r.path(),r.search()))},{prefix:F(t.prefix)?t.prefix:""})},regex:function(t,e){if(t.global||t.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=e,e=["$match",function(t){return o(n,t)}]),V(function(n,r){return a(n,e,t.exec(r.path()))},{prefix:i(t)})}},c={matcher:r.isMatcher(t),regex:t instanceof RegExp};for(var l in c)if(c[l])return this.rule(u[l](t,e));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(t){t===n&&(t=!0),f=t},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function w(t,i){function o(t){return 0===t.indexOf(".")||0===t.indexOf("^")}function h(t,e){if(!t)return n;var r=F(t),i=r?t:t.name,a=o(i);if(a){if(!e)throw new Error("No reference point given for path '"+i+"'");e=h(e);for(var s=i.split("."),u=0,c=s.length,l=e;c>u;u++)if(""!==s[u]||0!==u){if("^"!==s[u])break;if(!l.parent)throw new Error("Path '"+i+"' not valid for state '"+e.name+"'");l=l.parent}else l=e;s=s.slice(u).join("."),i=l.name+(l.name&&s?".":"")+s}var f=E[i];return!f||!r&&(r||f!==t&&f.self!==t)?n:f}function d(t,e){k[t]||(k[t]=[]),k[t].push(e)}function m(t){for(var e=k[t]||[];e.length;)v(e.shift())}function v(e){e=r(e,{self:e,resolve:e.resolve||{},toString:function(){return this.name}});var n=e.name;if(!F(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(E.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):F(e.parent)?e.parent:B(e.parent)&&F(e.parent.name)?e.parent.name:"";if(i&&!E[i])return d(i,e.self);for(var o in S)R(S[o])&&(e[o]=S[o](e,S.$delegates[o]));return E[n]=e,!e[A]&&e.url&&t.when(e.url,["$match","$stateParams",function(t,n){C.$current.navigable==e&&c(t,n)||C.transitionTo(e,t,{inherit:!0,location:!1})}]),m(n),e}function g(t){return t.indexOf("*")>-1}function $(t){for(var e=t.split("."),n=C.$current.name.split("."),r=0,i=e.length;i>r;r++)"*"===e[r]&&(n[r]="*");return"**"===e[0]&&(n=n.slice(s(n,e[1])),n.unshift("**")),"**"===e[e.length-1]&&(n.splice(s(n,e[e.length-2])+1,Number.MAX_VALUE),n.push("**")),e.length!=n.length?!1:n.join("")===e.join("")}function y(t,e){return F(t)&&!P(e)?S[t]:R(e)&&F(t)?(S[t]&&!S.$delegates[t]&&(S.$delegates[t]=S[t]),S[t]=e,this):this}function b(t,e){return B(t)?e=t:e.name=t,v(e),this}function w(t,i,o,s,f,d,m,v,y){function b(e,n,r,o){var a=t.$broadcast("$stateNotFound",e,n,r);if(a.defaultPrevented)return m.update(),T;if(!a.retry)return null;if(o.$retry)return m.update(),O;var s=C.transition=i.when(a.retry);return s.then(function(){return s!==C.transition?k:(e.options.$retry=!0,C.transitionTo(e.to,e.toParams,e.options))},function(){return T}),m.update(),s}function w(t,n,r,a,u,c){function h(){var n=[];return U(t.views,function(r,i){var a=r.resolve&&r.resolve!==t.resolve?r.resolve:{};a.$template=[function(){return o.load(i,{view:r,locals:u.globals,params:d,notify:c.notify})||""}],n.push(f.resolve(a,u.globals,u.resolve,t).then(function(n){if(R(r.controllerProvider)||L(r.controllerProvider)){var o=e.extend({},a,u.globals);n.$$controller=s.invoke(r.controllerProvider,null,o)}else n.$$controller=r.controller;n.$$state=t,n.$$controllerAs=r.controllerAs,u[i]=n}))}),i.all(n).then(function(){return u.globals})}var d=r?n:l(t.params.$$keys(),n),p={$stateParams:d};u.resolve=f.resolve(t.resolve,p,u.resolve,t);var m=[u.resolve.then(function(t){u.globals=t})];return a&&m.push(a),i.all(m).then(h).then(function(t){return u})}var k=i.reject(new Error("transition superseded")),S=i.reject(new Error("transition prevented")),T=i.reject(new Error("transition aborted")),O=i.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},C={params:{},current:x.self,$current:x,transition:null},C.reload=function(t){return C.transitionTo(C.current,d,{reload:t||!0,inherit:!1,notify:!0})},C.go=function(t,e,n){return C.transitionTo(t,e,V({inherit:!0,relative:C.$current},n))},C.transitionTo=function(e,n,o){n=n||{},o=V({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a,c=C.$current,f=C.params,p=c.path,v=h(e,o.relative),g=n["#"];if(!P(v)){var $={to:e,toParams:n,options:o},y=b($,c.self,f,o);if(y)return y;if(e=$.to,n=$.toParams,o=$.options,v=h(e,o.relative),!P(v)){if(!o.relative)throw new Error("No such state '"+e+"'");throw new Error("Could not resolve '"+e+"' from state '"+o.relative+"'")}}if(v[A])throw new Error("Cannot transition to abstract state '"+e+"'");if(o.inherit&&(n=u(d,n||{},C.$current,v)),!v.params.$$validates(n))return O;n=v.params.$$values(n),e=v;var E=e.path,T=0,I=E[T],z=x.locals,M=[];if(o.reload){if(F(o.reload)||B(o.reload)){if(B(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var D=o.reload===!0?p[0]:h(o.reload);if(o.reload&&!D)throw new Error("No such reload state '"+(F(o.reload)?o.reload:o.reload.name)+"'");for(;I&&I===p[T]&&I!==D;)z=M[T]=I.locals,T++,I=E[T]}}else for(;I&&I===p[T]&&I.ownParams.$$equals(n,f);)z=M[T]=I.locals,T++,I=E[T];if(_(e,n,c,f,z,o))return g&&(n["#"]=g),C.params=n,q(C.params,d),q(l(e.params.$$keys(),d),e.locals.globals.$stateParams),o.location&&e.navigable&&e.navigable.url&&(m.push(e.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),m.update(!0)),C.transition=null,i.when(C.current);if(n=l(e.params.$$keys(),n||{}),g&&(n["#"]=g),o.notify&&t.$broadcast("$stateChangeStart",e.self,n,c.self,f,o).defaultPrevented)return t.$broadcast("$stateChangeCancel",e.self,n,c.self,f),null==C.transition&&m.update(),S;for(var j=i.when(z),N=T;N<E.length;N++,I=E[N])z=M[N]=r(z),j=w(I,n,I===e,j,z,o);var R=C.transition=j.then(function(){var r,i,a;if(C.transition!==R)return k;for(r=p.length-1;r>=T;r--)a=p[r],a.self.onExit&&s.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(r=T;r<E.length;r++)i=E[r],i.locals=M[r],i.self.onEnter&&s.invoke(i.self.onEnter,i.self,i.locals.globals);return C.transition!==R?k:(C.$current=e,C.current=e.self,C.params=n,q(C.params,d),C.transition=null,o.location&&e.navigable&&m.push(e.navigable.url,e.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&t.$broadcast("$stateChangeSuccess",e.self,n,c.self,f),m.update(!0),C.current)},function(r){return C.transition!==R?k:(C.transition=null,a=t.$broadcast("$stateChangeError",e.self,n,c.self,f,r),a.defaultPrevented||m.update(),i.reject(r))});return R},C.is=function(t,e,r){r=V({relative:C.$current},r||{});var i=h(t,r.relative);return P(i)?C.$current!==i?!1:e?c(i.params.$$values(e),d):!0:n},C.includes=function(t,e,r){if(r=V({relative:C.$current},r||{}),F(t)&&g(t)){if(!$(t))return!1;t=C.$current.name}var i=h(t,r.relative);return P(i)?P(C.$current.includes[i.name])?e?c(i.params.$$values(e),d,a(e)):!0:!1:n},C.href=function(t,e,r){r=V({lossy:!0,inherit:!0,absolute:!1,relative:C.$current},r||{});var i=h(t,r.relative);if(!P(i))return null;r.inherit&&(e=u(d,e||{},C.$current,i));var o=i&&r.lossy?i.navigable:i;return o&&o.url!==n&&null!==o.url?m.href(o.url,l(i.params.$$keys().concat("#"),e||{}),{absolute:r.absolute}):null},C.get=function(t,e){if(0===arguments.length)return p(a(E),function(t){return E[t].self});var n=h(t,e||C.$current);return n&&n.self?n.self:null},C}function _(t,e,n,r,i,o){function a(t,e,n){function r(e){return"search"!=t.params[e].location}var i=t.params.$$keys().filter(r),o=f.apply({},[t.params].concat(i)),a=new W.ParamSet(o);return a.$$equals(e,n)}return!o.reload&&t===n&&(i===n.locals||t.self.reloadOnSearch===!1&&a(n,r,e))?!0:void 0}var x,C,E={},k={},A="abstract",S={parent:function(t){if(P(t.parent)&&t.parent)return h(t.parent);var e=/^(.+)\.[^.]+$/.exec(t.name);return e?h(e[1]):x},data:function(t){return t.parent&&t.parent.data&&(t.data=t.self.data=r(t.parent.data,t.data)),t.data},url:function(t){var e=t.url,n={params:t.params||{}};if(F(e))return"^"==e.charAt(0)?i.compile(e.substring(1),n):(t.parent.navigable||x).url.concat(e,n);if(!e||i.isMatcher(e))return e;throw new Error("Invalid url '"+e+"' in state '"+t+"'")},navigable:function(t){return t.url?t:t.parent?t.parent.navigable:null},ownParams:function(t){var e=t.url&&t.url.params||new W.ParamSet;return U(t.params||{},function(t,n){e[n]||(e[n]=new W.Param(n,null,t,"config"))}),e},params:function(t){var e=f(t.ownParams,t.ownParams.$$keys());return t.parent&&t.parent.params?V(t.parent.params.$$new(),e):new W.ParamSet},views:function(t){var e={};return U(P(t.views)?t.views:{"":t},function(n,r){r.indexOf("@")<0&&(r+="@"+t.parent.name),e[r]=n}),e},path:function(t){return t.parent?t.parent.path.concat(t):[]},includes:function(t){var e=t.parent?V({},t.parent.includes):{};return e[t.name]=!0,e},$delegates:{}};x=v({name:"",url:"^",views:null,"abstract":!0}),x.navigable=null,this.decorator=y,this.state=b,this.$get=w,w.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function _(){function t(t,e){return{load:function(t,n){var r,i={template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}};return n=V(i,n),n.view&&(r=e.fromConfig(n.view,n.params,n.locals)),r}}}this.$get=t,t.$inject=["$rootScope","$templateFactory"]}function x(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,n){return t?e:function(t){return n(function(){t[0].scrollIntoView()},0,!1)}}]}function C(t,n,r,i){function o(){return n.has?function(t){return n.has(t)?n.get(t):null}:function(t){try{return n.get(t)}catch(e){return null}}}function a(t,n){function r(t){return 1===X&&Y>=4?!!c.enabled(t):1===X&&Y>=2?!!c.enabled():!!u}var i={enter:function(t,e,n){e.after(t),n()},leave:function(t,e){t.remove(),e()}};if(t.noanimation)return i;if(c)return{enter:function(t,n,o){r(t)?e.version.minor>2?c.enter(t,null,n).then(o):c.enter(t,null,n,o):i.enter(t,n,o)},leave:function(t,n){r(t)?e.version.minor>2?c.leave(t).then(n):c.leave(t,n):i.leave(t,n)}};if(u){var o=u&&u(n,t);return{enter:function(t,e,n){o.enter(t,null,e),n()},leave:function(t,e){o.leave(t),e()}}}return i}var s=o(),u=s("$animator"),c=s("$animate"),l={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,s){return function(n,o,u){function c(){function t(){e&&e.remove(),n&&n.$destroy()}var e=f,n=d;n&&(n._willBeDestroyed=!0),h?(g.leave(h,function(){t(),f=null}),f=h):(t(),f=null),h=null,d=null}function l(a){var l,f=k(n,u,o,i),$=f&&t.$current&&t.$current.locals[f];if((a||$!==p)&&!n._willBeDestroyed){l=n.$new(),p=t.$current.locals[f],l.$emit("$viewContentLoading",f);var y=s(l,function(t){g.enter(t,o,function(){d&&d.$emit("$viewContentAnimationEnded"),(e.isDefined(v)&&!v||n.$eval(v))&&r(t)}),c()});h=y,d=l,d.$emit("$viewContentLoaded",f),d.$eval(m)}}var f,h,d,p,m=u.onload||"",v=u.autoscroll,g=a(u,n);n.$on("$stateChangeSuccess",function(){l(!1)}),l(!0)}}};return l}function E(t,e,n,r){return{restrict:"ECA",priority:-400,compile:function(i){var o=i.html();return function(i,a,s){var u=n.$current,c=k(i,s,a,r),l=u&&u.locals[c];if(l){a.data("$uiView",{name:c,state:l.$$state}),a.html(l.$template?l.$template:o);var f=t(a.contents());if(l.$$controller){l.$scope=i,l.$element=a;var h=e(l.$$controller,l);l.$$controllerAs&&(i[l.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}f(i)}}}}}function k(t,e,n,r){var i=r(e.uiView||e.name||"")(t),o=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(o?o.state.name:"")}function A(t,e){var n,r=t.match(/^\s*({[^}]*})\s*$/);if(r&&(t=e+"("+r[1]+")"),n=t.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!n||4!==n.length)throw new Error("Invalid state ref '"+t+"'");return{state:n[1],paramExpr:n[3]||null}}function S(t){var e=t.parent().inheritedData("$uiView");return e&&e.state&&e.state.name?e.state:void 0}function T(t){var e="[object SVGAnimatedString]"===Object.prototype.toString.call(t.prop("href")),n="FORM"===t[0].nodeName;return{attr:n?"action":e?"xlink:href":"href",isAnchor:"A"===t.prop("tagName").toUpperCase(),clickable:!n}}function O(t,e,n,r,i){return function(o){var a=o.which||o.button,s=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||t.attr("target"))){var u=n(function(){e.go(s.state,s.params,s.options)});o.preventDefault();var c=r.isAnchor&&!s.href?1:0;o.preventDefault=function(){c--<=0&&n.cancel(u)}}}}function I(t,e){return{relative:S(t)||e.$current,inherit:!0}}function z(t,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var s=A(o.uiSref,t.current.name),u={state:s.state,href:null,params:null},c=T(i),l=a[1]||a[0];u.options=V(I(i,t),o.uiSrefOpts?r.$eval(o.uiSrefOpts):{});var f=function(n){n&&(u.params=e.copy(n)),u.href=t.href(s.state,u.params,u.options),l&&l.$$addStateInfo(s.state,u.params),null!==u.href&&o.$set(c.attr,u.href)};s.paramExpr&&(r.$watch(s.paramExpr,function(t){t!==u.params&&f(t)},!0),u.params=e.copy(r.$eval(s.paramExpr))),f(),c.clickable&&i.bind("click",O(i,t,n,c,function(){return u}))}}}function M(t,e){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,r,i,o){function a(e){f.state=e[0],f.params=e[1],f.options=e[2],f.href=t.href(f.state,f.params,f.options),u&&u.$$addStateInfo(f.state,f.params),f.href&&i.$set(s.attr,f.href)}var s=T(r),u=o[1]||o[0],c=[i.uiState,i.uiStateParams||null,i.uiStateOpts||null],l="["+c.map(function(t){return t||"null"}).join(", ")+"]",f={state:null,params:null,options:null,href:null};n.$watch(l,a,!0),a(n.$eval(l)),s.clickable&&r.bind("click",O(r,t,e,s,function(){return f}))}}}function D(t,e,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(e,r,i,o){function a(e,n,i){var o=t.get(e,S(r)),a=s(e,n);m.push({state:o||{name:e},params:n,hash:a}),v[a]=i}function s(t,n){if(!F(t))throw new Error("state should be a string");return B(n)?t+H(n):(n=e.$eval(n),B(n)?t+H(n):t)}function u(){for(var t=0;t<m.length;t++)f(m[t].state,m[t].params)?c(r,v[m[t].hash]):l(r,v[m[t].hash]),h(m[t].state,m[t].params)?c(r,d):l(r,d)}function c(t,e){o(function(){t.addClass(e)})}function l(t,e){t.removeClass(e)}function f(e,n){return t.includes(e.name,n)}function h(e,n){return t.is(e.name,n)}var d,p,m=[],v={};d=n(i.uiSrefActiveEq||"",!1)(e);try{p=e.$eval(i.uiSrefActive)}catch(g){}p=p||n(i.uiSrefActive||"",!1)(e),B(p)&&U(p,function(n,r){if(F(n)){var i=A(n,t.current.name);a(i.state,e.$eval(i.paramExpr),r)}}),this.$$addStateInfo=function(t,e){B(p)&&m.length>0||(a(t,e,p),u())},e.$on("$stateChangeSuccess",u),u()}]}}function j(t){var e=function(e,n){return t.is(e,n)};return e.$stateful=!0,e}function N(t){var e=function(e,n,r){return t.includes(e,n,r)};return e.$stateful=!0,e}var P=e.isDefined,R=e.isFunction,F=e.isString,B=e.isObject,L=e.isArray,U=e.forEach,V=e.extend,q=e.copy,H=e.toJson;e.module("ui.router.util",["ng"]),e.module("ui.router.router",["ui.router.util"]),e.module("ui.router.state",["ui.router.router","ui.router.util"]),e.module("ui.router",["ui.router.state"]),e.module("ui.router.compat",["ui.router"]),m.$inject=["$q","$injector"],e.module("ui.router.util").service("$resolve",m),v.$inject=["$http","$templateCache","$injector"],e.module("ui.router.util").service("$templateFactory",v);var W;g.prototype.concat=function(t,e){var n={caseInsensitive:W.caseInsensitive(),strict:W.strictMode(),squash:W.defaultSquashPolicy()};return new g(this.sourcePath+t+this.sourceSearch,V(n,e),this)},g.prototype.toString=function(){return this.source},g.prototype.exec=function(t,e){function n(t){function e(t){return t.split("").reverse().join("")}function n(t){return t.replace(/\\-/g,"-")}var r=e(t).split(/-(?!\\)/),i=p(r,e);return p(i,n).reverse()}var r=this.regexp.exec(t);if(!r)return null;e=e||{};var i,o,a,s=this.parameters(),u=s.length,c=this.segments.length-1,l={};if(c!==r.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var f,h;for(i=0;c>i;i++){for(a=s[i],f=this.params[a],h=r[i+1],o=0;o<f.replace.length;o++)f.replace[o].from===h&&(h=f.replace[o].to);h&&f.array===!0&&(h=n(h)),P(h)&&(h=f.type.decode(h)),l[a]=f.value(h)}for(;u>i;i++){for(a=s[i],l[a]=this.params[a].value(e[a]),f=this.params[a],h=e[a],o=0;o<f.replace.length;o++)f.replace[o].from===h&&(h=f.replace[o].to);P(h)&&(h=f.type.decode(h)),l[a]=f.value(h)}return l},g.prototype.parameters=function(t){return P(t)?this.params[t]||null:this.$$paramNames},g.prototype.validates=function(t){return this.params.$$validates(t)},g.prototype.format=function(t){function e(t){return encodeURIComponent(t).replace(/-/g,function(t){return"%5C%"+t.charCodeAt(0).toString(16).toUpperCase()})}t=t||{};var n=this.segments,r=this.parameters(),i=this.params;if(!this.validates(t))return null;var o,a=!1,s=n.length-1,u=r.length,c=n[0];for(o=0;u>o;o++){var l=s>o,f=r[o],h=i[f],d=h.value(t[f]),m=h.isOptional&&h.type.equals(h.value(),d),v=m?h.squash:!1,g=h.type.encode(d);if(l){var $=n[o+1],y=o+1===s;if(v===!1)null!=g&&(c+=L(g)?p(g,e).join("-"):encodeURIComponent(g)),c+=$;else if(v===!0){var b=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=$.match(b)[1]}else F(v)&&(c+=v+$);y&&h.squash===!0&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==g||m&&v!==!1)continue;if(L(g)||(g=[g]),0===g.length)continue;g=p(g,encodeURIComponent).join("&"+f+"="),c+=(a?"&":"?")+(f+"="+g),a=!0}}return c},$.prototype.is=function(t,e){return!0},$.prototype.encode=function(t,e){return t},$.prototype.decode=function(t,e){return t},$.prototype.equals=function(t,e){return t==e},$.prototype.$subPattern=function(){var t=this.pattern.toString();return t.substr(1,t.length-2)},$.prototype.pattern=/.*/,$.prototype.toString=function(){return"{Type:"+this.name+"}"},$.prototype.$normalize=function(t){return this.is(t)?t:this.decode(t)},$.prototype.$asArray=function(t,e){function r(t,e){function r(t,e){return function(){return t[e].apply(t,arguments)}}function i(t){return L(t)?t:P(t)?[t]:[]}function o(t){switch(t.length){case 0:return n;case 1:return"auto"===e?t[0]:t;default:return t}}function a(t){return!t}function s(t,e){return function(n){if(L(n)&&0===n.length)return n;n=i(n);var r=p(n,t);return e===!0?0===d(r,a).length:o(r)}}function u(t){return function(e,n){var r=i(e),o=i(n);if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(!t(r[a],o[a]))return!1;return!0}}this.encode=s(r(t,"encode")),this.decode=s(r(t,"decode")),this.is=s(r(t,"is"),!0),this.equals=u(r(t,"equals")),this.pattern=t.pattern,this.$normalize=s(r(t,"$normalize")),this.name=t.name,this.$arrayMode=e}if(!t)return this;if("auto"===t&&!e)throw new Error("'auto' array mode is for query parameters only");return new r(this,t)},e.module("ui.router.util").provider("$urlMatcherFactory",y),e.module("ui.router.util").run(["$urlMatcherFactory",function(t){}]),b.$inject=["$locationProvider","$urlMatcherFactoryProvider"],e.module("ui.router.router").provider("$urlRouter",b),w.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],e.module("ui.router.state").factory("$stateParams",function(){return{}}).provider("$state",w),_.$inject=[],e.module("ui.router.state").provider("$view",_),e.module("ui.router.state").provider("$uiViewScroll",x);var X=e.version.major,Y=e.version.minor;C.$inject=["$state","$injector","$uiViewScroll","$interpolate"],E.$inject=["$compile","$controller","$state","$interpolate"],e.module("ui.router.state").directive("uiView",C),e.module("ui.router.state").directive("uiView",E),z.$inject=["$state","$timeout"],M.$inject=["$state","$timeout"],D.$inject=["$state","$stateParams","$interpolate"],e.module("ui.router.state").directive("uiSref",z).directive("uiSrefActive",D).directive("uiSrefActiveEq",D).directive("uiState",M),j.$inject=["$state"],N.$inject=["$state"],e.module("ui.router.state").filter("isState",j).filter("includedByState",N)}(window,window.angular),function(){"use strict";function t(e,r){function i(t,e){return function(){return t.apply(e,arguments)}}var o;if(r=r||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=r.touchBoundary||10,this.layer=e,this.tapDelay=r.tapDelay||200,this.tapTimeout=r.tapTimeout||700,!t.notNeeded(e)){for(var a=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,u=0,c=a.length;c>u;u++)s[a[u]]=i(s[a[u]],s);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,r){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,r):i.call(e,t,n,r)},e.addEventListener=function(t,n,r){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),r):i.call(e,t,n,r)}),"function"==typeof e.onclick&&(o=e.onclick,e.addEventListener("click",function(t){o(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,r=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=r&&/OS 4_\d(_\d)?/.test(navigator.userAgent),o=r&&/OS [6-7]_\d/.test(navigator.userAgent),a=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(r&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,r;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),r=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;r&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,o;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],r){if(o=window.getSelection(),o.rangeCount&&!o.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTime<this.tapDelay&&t.preventDefault(),!0},t.prototype.touchHasMoved=function(t){var e=t.changedTouches[0],n=this.touchBoundary;return Math.abs(e.pageX-this.touchStartX)>n||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,a,s,u,c,l=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(t.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,a=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,o&&(c=t.changedTouches[0],l=document.elementFromPoint(c.pageX-window.pageXOffset,c.pageY-window.pageYOffset)||l,l.fastClickScrollParent=this.targetElement.fastClickScrollParent),s=l.tagName.toLowerCase(),"label"===s){if(e=this.findControl(l)){if(this.focus(l),n)return!1;l=e}}else if(this.needsFocus(l))return t.timeStamp-a>100||r&&window.top!==window&&"input"===s?(this.targetElement=null,!1):(this.focus(l),this.sendClick(l,t),r&&"select"===s||(this.targetElement=null,t.preventDefault()),!1);return r&&!i&&(u=l.fastClickScrollParent,u&&u.fastClickLastScrollTop!==u.scrollTop)?!0:(this.needsClick(l)||(t.preventDefault(),this.sendClick(l,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,r,i,o;if("undefined"==typeof window.ontouchstart)return!0;if(r=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(r>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(a&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],o>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.IconicJS=t():"undefined"!=typeof global?global.IconicJS=t():"undefined"!=typeof self&&(self.IconicJS=t())}(function(){var t;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e){var n=(t("./modules/polyfills"),t("./modules/svg-injector")),r=t("./modules/extend"),i=t("./modules/responsive"),o=t("./modules/position"),a=t("./modules/container"),s=t("./modules/log"),u={},c=window.iconicSmartIconApis={},l=("file:"===window.location.protocol,0),f=function(t,e,i){e=r({},u,e||{});var o={evalScripts:e.evalScripts,pngFallback:e.pngFallback};o.each=function(t){if(t)if("string"==typeof t)s.debug(t);else if(t instanceof SVGSVGElement){var n=t.getAttribute("data-icon");if(n&&c[n]){var r=c[n](t);for(var i in r)t[i]=r[i]}/iconic-bg-/.test(t.getAttribute("class"))&&a.addBackground(t),h(t),l++,e&&e.each&&"function"==typeof e.each&&e.each(t)}},"string"==typeof t&&(t=document.querySelectorAll(t)),n(t,o,i)},h=function(t){var e=[];t?"string"==typeof t?e=document.querySelectorAll(t):void 0!==t.length?e=t:"object"==typeof t&&e.push(t):e=document.querySelectorAll("svg.iconic"),Array.prototype.forEach.call(e,function(t){t instanceof SVGSVGElement&&(t.update&&t.update(),i.refresh(t),
+o.refresh(t))})},d=function(){u.debug&&console.time&&console.time("autoInjectSelector - "+u.autoInjectSelector);var t=l;f(u.autoInjectSelector,{},function(){if(u.debug&&console.timeEnd&&console.timeEnd("autoInjectSelector - "+u.autoInjectSelector),s.debug("AutoInjected: "+(l-t)),i.refreshAll(),u.autoInjectDone&&"function"==typeof u.autoInjectDone){var e=l-t;u.autoInjectDone(e)}})},p=function(t){t&&""!==t&&"complete"!==document.readyState?document.addEventListener("DOMContentLoaded",d):document.removeEventListener("DOMContentLoaded",d)},m=function(t){return t=t||{},r(u,t),p(u.autoInjectSelector),s.enableDebug(u.debug),window._Iconic?window._Iconic:{inject:f,update:h,smartIconApis:c,svgInjectedCount:l}};e.exports=m,window._Iconic=new m({autoInjectSelector:"img.iconic",evalScripts:"once",pngFallback:!1,each:null,autoInjectDone:null,debug:!1})},{"./modules/container":2,"./modules/extend":3,"./modules/log":4,"./modules/polyfills":5,"./modules/position":6,"./modules/responsive":7,"./modules/svg-injector":8}],2:[function(t,e){var n=function(t){var e=t.getAttribute("class").split(" "),n=-1!==e.indexOf("iconic-fluid"),r=[],i=["iconic-bg"];Array.prototype.forEach.call(e,function(t){switch(t){case"iconic-sm":case"iconic-md":case"iconic-lg":r.push(t),n||i.push(t.replace(/-/,"-bg-"));break;case"iconic-fluid":r.push(t),i.push(t.replace(/-/,"-bg-"));break;case"iconic-bg-circle":case"iconic-bg-rounded-rect":case"iconic-bg-badge":i.push(t);break;default:r.push(t)}}),t.setAttribute("class",r.join(" "));var o=t.parentNode,a=Array.prototype.indexOf.call(o.childNodes,t),s=document.createElement("span");s.setAttribute("class",i.join(" ")),s.appendChild(t),o.insertBefore(s,o.childNodes[a])};e.exports={addBackground:n}},{}],3:[function(t,e){e.exports=function(t){return Array.prototype.forEach.call(Array.prototype.slice.call(arguments,1),function(e){if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])}),t}},{}],4:[function(t,e){var n=!1,r=function(t){console&&console.log&&console.log(t)},i=function(t){r("Iconic INFO: "+t)},o=function(t){r("Iconic WARNING: "+t)},a=function(t){n&&r("Iconic DEBUG: "+t)},s=function(t){n=t};e.exports={info:i,warn:o,debug:a,enableDebug:s}},{}],5:[function(){Array.prototype.forEach||(Array.prototype.forEach=function(t,e){"use strict";if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)}),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var t=[],e=function(e,n){var r=this,i=function(t){t.target=t.srcElement,t.currentTarget=r,n.handleEvent?n.handleEvent(t):n.call(r,t)};if("DOMContentLoaded"==e){var o=function(t){"complete"==document.readyState&&i(t)};if(document.attachEvent("onreadystatechange",o),t.push({object:this,type:e,listener:n,wrapper:o}),"complete"==document.readyState){var a=new Event;a.srcElement=window,o(a)}}else this.attachEvent("on"+e,i),t.push({object:this,type:e,listener:n,wrapper:i})},n=function(e,n){for(var r=0;r<t.length;){var i=t[r];if(i.object==this&&i.type==e&&i.listener==n){"DOMContentLoaded"==e?this.detachEvent("onreadystatechange",i.wrapper):this.detachEvent("on"+e,i.wrapper);break}++r}};Element.prototype.addEventListener=e,Element.prototype.removeEventListener=n,HTMLDocument&&(HTMLDocument.prototype.addEventListener=e,HTMLDocument.prototype.removeEventListener=n),Window&&(Window.prototype.addEventListener=e,Window.prototype.removeEventListener=n)}}()},{}],6:[function(t,e){var n=function(t){var e=t.getAttribute("data-position");if(e&&""!==e){var n,r,i,o,a,s,u,c=t.getAttribute("width"),l=t.getAttribute("height"),f=e.split("-"),h=t.querySelectorAll("g.iconic-container");Array.prototype.forEach.call(h,function(t){if(n=t.getAttribute("data-width"),r=t.getAttribute("data-height"),n!==c||r!==l){if(i=t.getAttribute("transform"),o=1,i){var e=i.match(/scale\((\d)/);o=e&&e[1]?e[1]:1}a=Math.floor((c/o-n)/2),s=Math.floor((l/o-r)/2),Array.prototype.forEach.call(f,function(t){switch(t){case"top":s=0;break;case"bottom":s=l/o-r;break;case"left":a=0;break;case"right":a=c/o-n;break;case"center":break;default:console&&console.log&&console.log("Unknown position: "+t)}}),u=0===s?a:a+" "+s,u="translate("+u+")",i?/translate/.test(i)?i=i.replace(/translate\(.*?\)/,u):i+=" "+u:i=u,t.setAttribute("transform",i)}})}};e.exports={refresh:n}},{}],7:[function(t,e){var n=/(iconic-sm\b|iconic-md\b|iconic-lg\b)/,r=function(t,e){var n="undefined"!=typeof window.getComputedStyle&&window.getComputedStyle(t,null).getPropertyValue(e);return!n&&t.currentStyle&&(n=t.currentStyle[e.replace(/([a-z])\-([a-z])/,function(t,e,n){return e+n.toUpperCase()})]||t.currentStyle[e]),n},i=function(t){var e=t.style.display;t.style.display="block";var n=parseFloat(r(t,"width").slice(0,-2)),i=parseFloat(r(t,"height").slice(0,-2));return t.style.display=e,{width:n,height:i}},o=function(){var t="/* Iconic Responsive Support Styles */\n.iconic-property-fill, .iconic-property-text {stroke: none !important;}\n.iconic-property-stroke {fill: none !important;}\nsvg.iconic.iconic-fluid {height:100% !important;width:100% !important;}\nsvg.iconic.iconic-sm:not(.iconic-size-md):not(.iconic-size-lg), svg.iconic.iconic-size-sm{width:16px;height:16px;}\nsvg.iconic.iconic-md:not(.iconic-size-sm):not(.iconic-size-lg), svg.iconic.iconic-size-md{width:32px;height:32px;}\nsvg.iconic.iconic-lg:not(.iconic-size-sm):not(.iconic-size-md), svg.iconic.iconic-size-lg{width:128px;height:128px;}\nsvg.iconic-sm > g.iconic-md, svg.iconic-sm > g.iconic-lg, svg.iconic-md > g.iconic-sm, svg.iconic-md > g.iconic-lg, svg.iconic-lg > g.iconic-sm, svg.iconic-lg > g.iconic-md {display: none;}\nsvg.iconic.iconic-icon-sm > g.iconic-lg, svg.iconic.iconic-icon-md > g.iconic-lg {display:none;}\nsvg.iconic-sm:not(.iconic-icon-md):not(.iconic-icon-lg) > g.iconic-sm, svg.iconic-md.iconic-icon-sm > g.iconic-sm, svg.iconic-lg.iconic-icon-sm > g.iconic-sm {display:inline;}\nsvg.iconic-md:not(.iconic-icon-sm):not(.iconic-icon-lg) > g.iconic-md, svg.iconic-sm.iconic-icon-md > g.iconic-md, svg.iconic-lg.iconic-icon-md > g.iconic-md {display:inline;}\nsvg.iconic-lg:not(.iconic-icon-sm):not(.iconic-icon-md) > g.iconic-lg, svg.iconic-sm.iconic-icon-lg > g.iconic-lg, svg.iconic-md.iconic-icon-lg > g.iconic-lg {display:inline;}";navigator&&navigator.userAgent&&/MSIE 10\.0/.test(navigator.userAgent)&&(t+="svg.iconic{zoom:1.0001;}");var e=document.createElement("style");e.id="iconic-responsive-css",e.type="text/css",e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t)),(document.head||document.getElementsByTagName("head")[0]).appendChild(e)},a=function(t){if(/iconic-fluid/.test(t.getAttribute("class"))){var e,r=i(t),o=t.viewBox.baseVal.width/t.viewBox.baseVal.height;e=1===o?Math.min(r.width,r.height):1>o?r.width:r.height;var a;a=32>e?"iconic-sm":e>=32&&128>e?"iconic-md":"iconic-lg";var s=t.getAttribute("class"),u=n.test(s)?s.replace(n,a):s+" "+a;t.setAttribute("class",u)}},s=function(){var t=document.querySelectorAll(".injected-svg.iconic-fluid");Array.prototype.forEach.call(t,function(t){a(t)})};document.addEventListener("DOMContentLoaded",function(){o()}),window.addEventListener("resize",function(){s()}),e.exports={refresh:a,refreshAll:s}},{}],8:[function(e,n,r){!function(e,i){"use strict";function o(t){t=t.split(" ");for(var e={},n=t.length,r=[];n--;)e.hasOwnProperty(t[n])||(e[t[n]]=1,r.unshift(t[n]));return r.join(" ")}var a="file:"===e.location.protocol,s=i.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),u=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)},c={},l=0,f=[],h=[],d={},p=function(t){return t.cloneNode(!0)},m=function(t,e){h[t]=h[t]||[],h[t].push(e)},v=function(t){for(var e=0,n=h[t].length;n>e;e++)!function(e){setTimeout(function(){h[t][e](p(c[t]))},0)}(e)},g=function(t,n){if(void 0!==c[t])c[t]instanceof SVGSVGElement?n(p(c[t])):m(t,n);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;c[t]={},m(t,n);var r=new XMLHttpRequest;r.onreadystatechange=function(){if(4===r.readyState){if(404===r.status||null===r.responseXML)return n("Unable to load SVG file: "+t),a&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===r.status||a&&0===r.status))return n("There was a problem injecting the SVG: "+r.status+" "+r.statusText),!1;if(r.responseXML instanceof Document)c[t]=r.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var i=new DOMParser;e=i.parseFromString(r.responseText,"text/xml")}catch(o){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;c[t]=e.documentElement}v(t)}},r.open("GET",t),r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()}},$=function(t,n,r,i){var a=t.getAttribute("data-src")||t.getAttribute("src");if(!/svg$/i.test(a))return void i("Attempted to inject a file with a non-svg extension: "+a);if(!s){var c=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(c?(t.setAttribute("src",c),i(null)):r?(t.setAttribute("src",r+"/"+a.split("/").pop().replace(".svg",".png")),i(null)):i("This browser does not support SVG and no PNG fallback was defined."))}-1===f.indexOf(t)&&(f.push(t),t.setAttribute("src",""),g(a,function(r){if("undefined"==typeof r||"string"==typeof r)return i(r),!1;var s=t.getAttribute("id");s&&r.setAttribute("id",s);var c=t.getAttribute("title");c&&r.setAttribute("title",c);var h=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",o(h));var p=t.getAttribute("style");p&&r.setAttribute("style",p);var m=[].filter.call(t.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});u.call(m,function(t){t.name&&t.value&&r.setAttribute(t.name,t.value)});for(var v,g=r.querySelectorAll("defs clipPath[id]"),$=0,y=g.length;y>$;$++){v=g[$].id+"-"+l;for(var b=r.querySelectorAll('[clip-path*="'+g[$].id+'"]'),w=0,_=b.length;_>w;w++)b[w].setAttribute("clip-path","url(#"+v+")");g[$].id=v}r.removeAttribute("xmlns:a");for(var x,C,E=r.querySelectorAll("script"),k=[],A=0,S=E.length;S>A;A++)C=E[A].getAttribute("type"),C&&"application/ecmascript"!==C&&"application/javascript"!==C||(x=E[A].innerText||E[A].textContent,k.push(x),r.removeChild(E[A]));if(k.length>0&&("always"===n||"once"===n&&!d[a])){for(var T=0,O=k.length;O>T;T++)new Function(k[T])(e);d[a]=!0}t.parentNode.replaceChild(r,t),delete f[f.indexOf(t)],t=null,l++,i(r)}))},y=function(t,e,n){e=e||{};var r=e.evalScripts||"always",i=e.pngFallback||!1,o=e.each;if(void 0!==t.length){var a=0;u.call(t,function(e){$(e,r,i,function(e){o&&"function"==typeof o&&o(e),n&&t.length===++a&&n(a)})})}else t?$(t,r,i,function(e){o&&"function"==typeof o&&o(e),n&&n(1),t=null}):n&&n(0)};"object"==typeof n&&"object"==typeof n.exports?n.exports=r=y:"function"==typeof t&&t.amd?t(function(){return y}):"object"==typeof e&&(e.SVGInjector=y)}(window,document)},{}]},{},[1])(1)}),function(){"use strict";function t(){function t(t,e){e?t.addClass(a):t.removeClass(a)}function e(t,e,r,u){function c(){h(t),p(),t[0].style.transitionDuration="",t.removeClass($?"":a),d(),m=!1}function l(t){h(t),angular.element(t).off(s.join(" ")),m=!1}function f(t){var e={el:t,animation:v},r=n.filter(function(e){return e.el===t});if(r.length>0){var i=r[0].el[0];r[0].animation.cancelAnimation(i)}n.push(e)}function h(t){var e;n.filter(function(n,r){n.el===t&&(e=r)});e>=0&&n.splice(e,1)}function d(){return t[0].offsetWidth}function p(){t[0].style.transitionDuration=0,t.removeClass(i.join(" ")+" "+o.join(" ")+" "+r+" "+u)}var m=!0,v=this;v.cancelAnimation=l;var g=e?r:u,$=e,y=$?i[0]:i[1],b=$?o[0]:o[1];f(t),p(),t.addClass(g),t.addClass(y),t.addClass(a),d(),t[0].style.transitionDuration="",t.addClass(b),t.one(s.join(" "),function(){c()}),setTimeout(function(){m&&c()},3e3)}var n=[],r={},i=["ng-enter","ng-leave"],o=["ng-enter-active","ng-leave-active"],a="is-active",s=["webkitAnimationEnd","mozAnimationEnd","MSAnimationEnd","oanimationend","animationend","webkitTransitionEnd","otransitionend","transitionend"];return r.animate=e,r.toggleAnimation=t,r}angular.module("foundation.core.animation",[]).service("FoundationAnimation",t)}(),function(){"use strict";function t(t){function e(t,e){return l[t]||(l[t]=[]),l[t].push(e),!0}function n(t,e){void 0!==l[t]&&delete l[t],"function"==typeof e&&e.call(this)}function r(t,e){l[t]||(l[t]=[]),l[t].forEach(function(t){t(e)})}function i(){return f}function o(t){return f=angular.extend(f,t)}function a(){var t="";do{t+="zf-uuid-";for(var e=0;15>e;e++)t+=Math.floor(16*Math.random()).toString(16)}while(!h.indexOf(t));return h.push(t),t}function s(e,n){t.toggleAnimate(e,n)}function u(t){var e=this;t=t||{};var n=document.querySelectorAll(".is-active[zf-closable]"),r=document.querySelectorAll("[zf-closable] > .is-active");n.length&&angular.forEach(n,function(n){t.exclude!==n.id&&e.publish(n.id,"close")}),r.length&&angular.forEach(r,function(n){var r=n.parentNode.id;t.exclude!==r&&e.publish(r,"close")})}function c(e,n,r,i){t.animate(e,n,r,i)}var l={},f={},h=[],d={};return d.subscribe=e,d.unsubscribe=n,d.publish=r,d.getSettings=i,d.modifySettings=o,d.generateUuid=a,d.toggleAnimate=s,d.closeActiveElements=u,d.animate=c,d}function e(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function n(){function t(t,e){var n=null;return function(){var r=this,i=arguments;null===n&&(n=setTimeout(function(){t.apply(r,i),n=null},e))}}var e={};return e.throttle=t,e}angular.module("foundation.core",["foundation.core.animation"]).service("FoundationApi",t).service("FoundationAdapter",e).factory("Utils",n),t.$inject=["FoundationAnimation"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t,e){function n(n,r){function i(t,e,n,r,i){if(r.animation){if(!r.animation.leave&&!e.animation.leave)return;o(t,e,r)}}function o(t,e,n){p?(f(),r.addClass(n.animation.leave)):(l(),f(),r.removeClass(n.animation.leave))}function a(){d.leave&&r.removeClass(d.leave),l()}function s(){l(),e.includes(c())&&d.enter&&r.addClass(d.enter)}function u(t){t.targetScope===n&&d.enter&&r.removeClass(d.enter),p=!0}function c(){var t=r.data("$uiView"),e=t&&t.state&&t.state.self;return e&&angular.extend(d,e.animation),e}function l(){r.parent().removeClass("position-absolute"),h!==!0&&(r.parent()[0].style.height=null)}function f(){var t=parseInt(r.parent()[0].style.height),e=parseInt(window.getComputedStyle(r[0],null).getPropertyValue("height")),n=t>0?t:e>0?e:"";t>0&&(h=!0),r.parent()[0].style.height=n+"px",r.parent().addClass("position-absolute")}var h,d={},p=!1,m=[t.$on("$stateChangeStart",i),t.$on("$stateChangeError",a),n.$on("$stateChangeSuccess",s),n.$on("$viewContentAnimationEnded",u)],v=n.$on("$destroy",function(){angular.forEach(m,function(t){angular.isFunction(t)&&t()}),v()})}var r={restrict:"ECA",priority:-400,link:n};return r}angular.module("foundation.dynamicRouting.animations",["foundation.dynamicRouting"]).directive("uiView",t),t.$inject=["$rootScope","$state"]}(),function(){"use strict";function t(t){function e(t){var e={vars:{}};return t.data&&("object"==typeof t.data.vars&&(e.vars=t.data.vars),delete t.data.vars,angular.extend(e,t.data)),delete t.data,angular.extend(e.vars,t),e}function n(t,e){return{templateUrl:t,controller:r(e)}}function r(t){var e=t.controller||"DefaultController";return/\w\s+as\s+\w/.test(e)||(e+=" as PageCtrl"),e}function i(t){var e={};return t.animationIn&&(e.enter=t.animationIn),t.animationOut&&(e.leave=t.animationOut),e}var o={};this.registerDynamicRoutes=function(a){var s=a||foundationRoutes;angular.forEach(s,function(n){if(n.hasComposed)angular.isDefined(o[n.parent])||(o[n.parent]={children:{}}),n.controller&&(n.controller=r(n)),o[n.parent].children[n.name]=n;else if(n.composed)angular.isDefined(o[n.name])||(o[n.name]={children:{}}),n.controller&&(n.controller=r(n)),angular.extend(o[n.name],n);else{var a={url:n.url,templateUrl:n.path,"abstract":n["abstract"]||!1,parent:n.parent||"",controller:r(n),data:e(n),animation:i(n)};t.state(n.name,a)}}),angular.forEach(o,function(r){var o={url:r.url,parent:r.parent||"","abstract":r["abstract"]||!1,data:e(r),animation:i(r),views:{"":n(r.path,r)}};angular.forEach(r.children,function(t){o.views[t.name+"@"+r.name]=n(t.path,r)}),t.state(r.name,o)})},this.$get=angular.noop}function e(t,e,n){var r={};angular.forEach(e,function(t,e){r[e]=t}),t.params=r,t.current=n.current.name,n.current.views?(t.vars=n.current.data.vars,t.composed=n.current.data.vars.children):t.vars=n.current.data.vars}function n(t){t.registerDynamicRoutes(foundationRoutes)}function r(t,e,n){t.$state=e,t.$stateParams=n}angular.module("foundation.dynamicRouting",["ui.router"]).provider("$FoundationState",t).controller("DefaultController",e).config(n).run(r),t.$inject=["$stateProvider"],e.$inject=["$scope","$stateParams","$state"],n.$inject=["$FoundationStateProvider"],r.$inject=["$rootScope","$state","$stateParams"]}(),function(){"use strict";function t(t){t.init()}function e(t,e,n){function r(){var r,i;t.headerHelper(["foundation-mq"]),i=t.getStyle(".foundation-mq","font-family"),r=t.parseStyleToObject(i);for(var a in r)r[a]="only screen and (min-width: "+r[a].replace("rem","em")+")";e.modifySettings({mediaQueries:angular.extend(r,o)}),window.addEventListener("resize",n.throttle(function(){e.publish("resize","window resized")},50))}var i={},o={"default":"only screen",landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"};return i.init=r,i}function n(){function t(t){for(var e=t.length,n=angular.element(document.querySelectorAll("head"));e--;)n.append('<meta class="'+t[e]+'" />')}function e(t,e){var n=document.querySelectorAll(t)[0],r=window.getComputedStyle(n,null);return r.getPropertyValue("font-family")}function n(t){var e={};return"string"!=typeof t?e:(t=t.trim().slice(1,-1))?e=t.split("&").reduce(function(t,e){var n=e.replace(/\+/g," ").split("="),r=n[0],i=n[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),t.hasOwnProperty(r)?Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i,t},{}):e}var r={};return r.headerHelper=t,r.getStyle=e,r.parseStyleToObject=n,r}function r(t){function e(){return t.getSettings().mediaQueries}function n(t){var e=t.length,n=i.getMediaQueries(),r=[];if(e>0)for(;e--;){var o,a=t[e].media;o=n[a]?matchMedia(n[a]):matchMedia(a),o.matches&&r.push({ind:e})}return r}function r(t){var e=[],n=[],r=t.children(),i=0;return angular.forEach(r,function(t){var r=angular.element(t);r.attr("src")&&r.attr("src").match(/.html$/)?e[i]={media:r.attr("media"),src:r.attr("src")}:(n[i]=r,e[i]={media:r.attr("media"),templ:i}),i++}),{scenarios:e,templates:n}}var i=[];return i.getMediaQueries=e,i.match=n,i.collectScenariosFromElement=r,i}angular.module("foundation.mediaquery",["foundation.core"]).run(t).factory("FoundationMQInit",e).factory("mqHelpers",n).service("FoundationMQ",r),t.$inject=["FoundationMQInit"],e.$inject=["mqHelpers","FoundationApi","Utils"],r.$inject=["FoundationApi"]}(),angular.module("markdown",[]).directive("markdown",function(){return{restrict:"A",link:function(t,e,n,r){e.html(marked(e.html()))}}}),function(){var t={};angular.forEach(["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke"],function(e){t[e]=["$rootScope","$location","$interpolate","$sniffer","urlResolve","computeSVGAttrValue","svgAttrExpressions",function(t,n,r,i,o,a,s){return{restrict:"A",link:function(r,o,u){function c(){var t=a(l);t&&u[e]!==t&&u.$set(e,t)}var l;s.SVG_ELEMENT.test(o[0]&&o[0].toString())&&n.$$html5&&i.history&&(l=u[e],u.$observe(e,c),t.$on("$locationChangeSuccess",c))}}}]}),angular.module("ngSVGAttributes",[]).factory("urlResolve",[function(){var t=document.createElement("a");return function(e){return t.setAttribute("href",e),t}}]).value("svgAttrExpressions",{FUNC_URI:/^url\((.*)\)$/,SVG_ELEMENT:/SVG[a-zA-Z]*Element/,HASH_PART:/#.*/}).factory("computeSVGAttrValue",["$location","$sniffer","svgAttrExpressions","urlResolve",function(t,e,n,r){return function(e){var i,o;return(i=n.FUNC_URI.exec(e))&&(o=0===i[1].indexOf("#")?t.absUrl().replace(n.HASH_PART,"")+i[1]:r(i[1])),o?"url("+o+")":null}}]).directive(t)}(),function(){"use strict";function t(t){var e=this,n=e.sections=t.sections=[],r=(e.multiOpen=t.multiOpen=t.multiOpen||!1,e.collapsible=t.collapsible=t.multiOpen||t.collapsible||!0),i=e.autoOpen=t.autoOpen=t.autoOpen||!0;e.select=function(t){n.forEach(function(n){e.multiOpen?n.scope===t&&(n.scope.active=!n.scope.active):n.scope===t?n.scope.active=r?!n.scope.active:!0:n.scope.active=!1})},e.addSection=function(t){n.push({scope:t}),1===n.length&&i===!0&&(n[0].active=!0,n[0].scope.active=!0)},e.closeAll=function(){n.forEach(function(t){t.scope.active=!1})}}function e(){function t(t,e,n,r){t.multiOpen=r.multiOpen="true"===t.multiOpen?!0:!1,t.collapsible=r.collapsible="true"===t.collapsible?!0:!1,t.autoOpen=r.autoOpen="true"===t.autoOpen?!0:!1}var e={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/accordion/accordion.html",controller:"ZfAccordionController",scope:{multiOpen:"@?",collapsible:"@?",autoOpen:"@?"},link:t};return e}function n(){function t(t,e,n,r,i){t.active=!1,r.addSection(t),t.activate=function(){r.select(t)}}var e={restrict:"EA",templateUrl:"components/accordion/accordion-item.html",transclude:!0,scope:{title:"@"},require:"^zfAccordion",replace:!0,controller:function(){},link:t};return e}angular.module("foundation.accordion",[]).controller("ZfAccordionController",t).directive("zfAccordion",e).directive("zfAccordionItem",n),t.$inject=["$scope"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(t){var e=t.target,n=!1;do if(e.classList&&e.classList.contains("action-sheet-container")){n=!0;break}while(e=e.parentNode);if(!n){if(t.target.attributes["zf-toggle"]||t.target.attributes["zf-hard-toggle"])return;r()}}function r(){a.hide(),s.hide(),a.$apply(),s.$apply()}function i(){a.toggle(),s.toggle(),a.$apply(),s.$apply()}var o=this,a=o.content=t.content,s=o.container=t.container;angular.element(document.body);o.registerContent=function(t){a=t,a.active=!1},o.registerContainer=function(t){s=t,s.active=!1},o.toggle=i,o.hide=r,o.registerListener=function(){document.body.addEventListener("click",n)},o.deregisterListener=function(){document.body.removeEventListener("click",n)}}function n(t){function e(){function e(t,e,n){n.$set("zf-closable","actionsheet")}function n(e,n,r,i){var o=r.id||t.generateUuid();r.$set("id",o),e.active=!1,t.subscribe(o,function(t){"toggle"===t&&i.toggle(),("hide"===t||"close"===t)&&i.hide()}),i.registerContainer(e),e.toggle=function(){e.active=!e.active},e.hide=function(){e.active=!1}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet.html",controller:"ZfActionSheetController",compile:e};return n}function r(t){function e(t,e,n,r){t.active=!1,t.position=t.position||"bottom",r.registerContent(t),t.toggle=function(){t.active=!t.active,t.active?r.registerListener():r.deregisterListener()},t.hide=function(){t.active=!1,r.deregisterListener()}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-content.html",require:"^zfActionSheet",scope:{position:"@?"},link:e};return n}function i(t){function e(t,e,n,r){e.on("click",function(t){r.toggle(),t.preventDefault()})}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-button.html",require:"^zfActionSheet",scope:{title:"@?"},link:e};return n}angular.module("foundation.actionsheet",["foundation.core"]).controller("ZfActionSheetController",e).directive("zfActionSheet",n).directive("zfAsContent",r).directive("zfAsButton",i).service("FoundationActionSheet",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e,n,r){var i="";if(r.zfClose)i=r.zfClose;else{for(var o=!1,a=n.parent();o===!1;)"BODY"==a[0].nodeName&&(o=""),"undefined"!=typeof a.attr("zf-closable")&&a.attr("zf-closable")!==!1&&(o=a),a=a.parent();i=o.attr("id")}n.on("click",function(e){t.publish(i,"close"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function e(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfOpen,"open"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function n(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function r(t){function e(e,n,r){n.on("keyup",function(e){27===e.keyCode&&t.closeActiveElements(),e.preventDefault()})}var n={restrict:"A",link:e};return n}function i(t){function e(e,n,r){var i,o;switch(Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),r.zfSwipeClose){case"right":i="swiperight";break;case"left":i="swipeleft";break;case"up":i="swipeup";break;case"down":i="swipedown";break;default:i="swipe"}o.on(i,function(){t.publish(r.id,"close")})}var n={restrict:"A",link:e};return n}function o(t){function e(e,n,r){n.on("click",function(e){t.closeActiveElements({exclude:r.zfHardToggle}),t.publish(r.zfHardToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.common",["foundation.core"]).directive("zfClose",t).directive("zfOpen",e).directive("zfToggle",n).directive("zfEscClose",r).directive("zfSwipeClose",i).directive("zfHardToggle",o),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"]}(),function(){"use strict";function t(){var t="assets/img/iconic/";this.setAssetPath=function(e){t=angular.isString(e)?e:t},this.$get=function(){function e(){return r}function n(){return t}var r=new IconicJS,i={getAccess:e,getAssetPath:n};return i}}function e(t,e,n){function r(){function r(e,n,r){if(a=e.iconDir?e.iconDir:t.getAssetPath(),"/"!==a.charAt(a.length-1)&&(a+="/"),e.dynSrc?r.$set("data-src",e.dynSrc):e.dynIcon?r.$set("data-src",a+e.dynIcon+".svg"):e.icon?r.$set("data-src",a+e.icon+".svg"):r.$set("data-src",r.src),!n.hasClass("iconic-sm")&&!n.hasClass("iconic-md")&&!n.hasClass("iconic-lg")){var i;switch(e.size){case"small":i="iconic-sm";break;case"medium":i="iconic-md";break;case"large":i="iconic-lg";break;default:i="iconic-fluid"}n.addClass(i)}o=n[0].outerHTML}function i(r,i,s){function u(t){l&&(l.empty(),l.append(angular.element(o)),l.attr("data-src",t),c(l[0]))}function c(t){f.inject(t,{each:function(t){var e=angular.element(t);l=n(e)(e.scope())}})}var l,f=t.getAccess();c(i[0]),e.subscribe("resize",function(){f.update(i[0])}),r.dynSrc&&r.$watch("dynSrc",function(t,e){t&&t!==e&&u(r.dynSrc)}),r.dynIcon&&r.$watch("dynIcon",function(t,e){t&&t!==e&&u(a+r.dynIcon+".svg")})}var o,a;return{pre:r,post:i}}var i={restrict:"A",template:"<img ng-transclude>",transclude:!0,replace:!0,scope:{dynSrc:"=?",dynIcon:"=?",size:"@?",icon:"@",iconDir:"@?"},compile:r};return i}angular.module("foundation.iconic",[]).provider("Iconic",t).directive("zfIconic",e),e.$inject=["Iconic","FoundationApi","$compile"]}(),function(){"use strict";function t(t,e,n,r,i){function o(o,a,s,u,c){function l(t){return e.get(t,{cache:n})}function f(t){var e=i.collectScenariosFromElement(t);m=e.scenarios,v=e.templates}function h(t){return!p||p!==t}var d,p,m,v;i.getMediaQueries();r.subscribe("resize",function(e){c(function(e,n){m&&v||f(e);var r=i.match(m),o=0===r.length?null:m[r[0].ind];if(o&&h(o)){if(d&&(d.$destroy(),d=null),"undefined"!=typeof o.templ){d=n;var s=document.createElement("div");s.appendChild(v[o.templ][0]),a.html(s.innerHTML),t(a.contents())(d),p=o}else{var u=l(o.src);u.success(function(t){d=n,a.html(t)}).then(function(){t(a.contents())(d),p=o})}}})}),r.publish("resize","initial resize")}var a={restrict:"EA",transclude:"element",scope:{position:"@"},replace:!0,template:"<div></div>",link:o};return a}angular.module("foundation.interchange",["foundation.core","foundation.mediaquery"]).directive("zfInterchange",t),t.$inject=["$compile","$http","$templateCache","FoundationApi","FoundationMQ"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}function i(t){return new e(t)}var o={};return o.activate=n,o.deactivate=r,o.newModal=i,o}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a)}function o(e,n,r){function i(){e.overlay||n.css("background","transparent"),t.animate(n,e.active,c,l),t.animate(a,e.active,s,u)}function o(){e.active&&e.show()}var a=angular.element(n.children()[0]);e.active=e.active||!1,e.overlay="false"===r.overlay?!1:!0,e.overlayClose="false"===r.overlayClose?!1:!0;var s=r.animationIn||"fadeIn",u=r.animationOut||"fadeOut",c="fadeIn",l="fadeOut";e.hideOverlay=function(){e.overlayClose&&e.hide()},e.hide=function(){e.active=!1,i()},e.show=function(){e.active=!0,i(),a.tabIndex=-1,a[0].focus()},e.toggle=function(){e.active=!e.active,i()},o(),t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root&&!e.$root.$$phase&&e.$apply()})}var a="modal";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/modal/modal.html",transclude:!0,scope:!0,replace:!0,compile:e};return n}function n(t,e,n,r,i,o,a){function s(s){function u(){if(C)throw"Error: Modal was destroyed. Delete the object and create a new ModalFactory instance."}function c(){u(),i(function(){h(!0),a.publish(_,"show")},0,!1)}function l(){u(),i(function(){h(!1),a.publish(_,"hide")},0,!1)}function f(){u(),i(function(){h(!0),a.publish(_,"toggle")},0,!1)}function h(t){o.when(g).then(function(){if(!x&&m.length>0){w.append(v);$.active=t,r(v)($),x=!0}})}function d(){if(!document.getElementById(_)){m='<zf-modal id="'+_+'">'+m+"</zf-modal>",v=angular.element(m),$=n.$new();for(var t=0;t<E.length;t++){var e=E[t];if(s[e])switch(e){case"animationIn":v.attr("animation-in",s[e]);break;case"animationOut":v.attr("animation-out",s[e]);break;default:v.attr(e,s[e])}}if(s.contentScope){y=s.contentScope;for(var e in s.contentScope)s.contentScope.hasOwnProperty(e)&&($[e]=s.contentScope[e])}}}function p(){b.deactivate(),setTimeout(function(){$.$destroy(),v.remove(),C=!0},3e3),a.unsubscribe(_)}var m,v,g,$,y,b=this,w=angular.element(s.container||document.body),_=s.id||a.generateUuid(),x=!1,C=!1,E=["animationIn","animationOut","overlay","overlayClose"];return s.templateUrl?g=t.get(s.templateUrl,{cache:e}).then(function(t){m=t.data,d()}):s.template&&(g=!0,m=s.template,d()),b.activate=c,b.deactivate=l,b.toggle=f,b.destroy=p,{activate:c,deactivate:l,toggle:f,destroy:p}}return s}angular.module("foundation.modal",["foundation.core"]).directive("zfModal",e).factory("ModalFactory",n),t.$inject=["FoundationApi","ModalFactory"],e.$inject=["FoundationApi"],n.$inject=["$http","$templateCache","$rootScope","$compile","$timeout","$q","FoundationApi"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}var i={};return i.activate=n,i.deactivate=r,i}function e(t,e){
+var n=this;n.notifications=t.notifications=t.notifications||[],n.addNotification=function(n){var r=e.generateUuid();n.id=r,t.notifications.push(n)},n.removeNotification=function(e){t.notifications.forEach(function(n){if(n.id===e){var r=t.notifications.indexOf(n);t.notifications.splice(r,1)}})},n.clearAll=function(){for(;t.notifications.length>0;)t.notifications.pop()}}function n(t){function e(e,n,r,i){e.position=e.position?e.position.split(" ").join("-"):"top-right",t.subscribe(r.id,function(t){"clearall"===t?i.clearAll():(i.addNotification(t),e.$root.$$phase||e.$apply())})}var n={restrict:"EA",templateUrl:"components/notification/notification-set.html",controller:"ZfNotificationController",replace:!0,scope:{position:"@"},link:e};return n}function r(t){function e(){function e(t,e,n){n.$set("zf-closable","notification")}function n(e,n,r,i){e.active=!1;var o,a=r.animationIn||"fadeIn",s=r.animationOut||"fadeOut";setTimeout(function(){e.active=!0,t.animate(n,e.active,a,s)},50),e.hide=function(){e.active=!1,t.animate(n,e.active,a,s),setTimeout(function(){i.removeNotification(e.notifId)},50)},e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose)),Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),o.on("swipe",function(){e.active&&e.hide()})}return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification.html",replace:!0,transclude:!0,require:"^zfNotificationSet",controller:function(){},scope:{title:"=?",content:"=?",image:"=?",notifId:"=",color:"=?",autoclose:"=?"},compile:e};return n}function i(t){function e(){function e(t,e,n,i){n.$set("zf-closable",r)}function n(e,n,r,i){e.position=r.position?r.position.split(" ").join("-"):"top-right";var o=r.animationIn||"fadeIn",a=r.animationOut||"fadeOut";t.subscribe(r.id,function(r){"show"==r||"open"==r?(e.show(),e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose))):"close"==r||"hide"==r?e.hide():"toggle"==r&&(e.toggle(),e.autoclose&&setTimeout(function(){e.active&&e.toggle()},parseInt(e.autoclose))),t.animate(n,e.active,o,a),e.$apply()}),e.hide=function(){e.active=!1,t.animate(n,e.active,o,a)},e.show=function(){e.active=!0,t.animate(n,e.active,o,a)},e.toggle=function(){e.active=!e.active,t.animate(n,e.active,o,a)}}var r="notification";return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification-static.html",replace:!0,transclude:!0,scope:{title:"@?",content:"@?",image:"@?",color:"@?",autoclose:"@?"},compile:e};return n}function o(t){function e(e,n,r,i){n.on("click",function(n){t.publish(r.zfNotify,{title:e.title,content:e.content,color:e.color,image:e.image,autoclose:e.autoclose}),n.preventDefault()})}var n={restrict:"A",scope:{title:"@?",content:"@?",color:"@?",image:"@?",autoclose:"@?"},link:e};return n}function a(t,e,n,r,i,o){function a(t){function e(){if(y)throw"Error: Notification Set was destroyed. Delete the object and create a new NotificationFactory instance."}function a(t){e(),i(function(){o.publish(g,t)},0,!1)}function s(){e(),i(function(){o.publish(g,"clearall")},0,!1)}function u(t){if(!$&&f.length>0){v.append(h);d.active=t,r(h)(d),$=!0}}function c(){if(!document.getElementById(g)){f='<zf-notification-set id="'+g+'"></zf-notification-set>',h=angular.element(f),d=n.$new();for(var e=0;e<b.length;e++)t[b[e]]&&h.attr(b[e],t[b[e]]);if(t.contentScope){p=t.contentScope;for(var r in p)p.hasOwnProperty(r)&&(d[r]=p[r])}u(!0)}}function l(){m.clearAll(),setTimeout(function(){d.$destroy(),h.remove(),y=!0},3e3),o.unsubscribe(g)}var f,h,d,p,m=this,v=angular.element(t.container||document.body),g=t.id||o.generateUuid(),$=!1,y=!1,b=["position"];return c(),m.addNotification=a,m.clearAll=s,m.destroy=l,{addNotification:a,clearAll:s,destroy:l}}return a}angular.module("foundation.notification",["foundation.core"]).controller("ZfNotificationController",e).directive("zfNotificationSet",n).directive("zfNotification",r).directive("zfNotificationStatic",i).directive("zfNotify",o).factory("NotificationFactory",a).service("FoundationNotification",t),t.$inject=["FoundationApi","NotificationFactory"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["$http","$templateCache","$rootScope","$compile","$timeout","FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a),document.body.classList.add("has-off-canvas")}function o(e,n,r){e.position=e.position||"left",e.active=!1,t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root.$$phase||e.$apply()}),e.hide=function(){e.active=!1},e.show=function(){e.active=!0},e.toggle=function(){e.active=!e.active}}var a="offcanvas";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/offcanvas/offcanvas.html",transclude:!0,scope:{position:"@"},replace:!0,compile:e};return n}angular.module("foundation.offcanvas",["foundation.core"]).directive("zfOffcanvas",e).service("FoundationOffcanvas",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(n,r,i){function o(t,e,n,r){n.$set("zf-closable",s),t.position=t.position||"left",t.positionClass="panel-"+t.position}function a(n,r,i){n.active=!1;var o,a,s=t.getSettings().mediaQueries;"left"===n.position?(o=i.animationIn||"slideInRight",a=i.animationOut||"slideOutLeft"):"right"===n.position?(o=i.animationIn||"slideInLeft",a=i.animationOut||"slideOutRight"):"top"===n.position?(o=i.animationIn||"slideInDown",a=i.animationOut||"slideOutUp"):"bottom"===n.position&&(o=i.animationIn||"slideInUp",a=i.animationOut||"slideOutBottom"),t.subscribe(i.id,function(t){var i=e.getComputedStyle(r[0]).getPropertyValue("position");"absolute"===i&&("show"==t||"open"==t?n.show():"close"==t||"hide"==t?n.hide():"toggle"==t&&n.toggle(),n.$root.$$phase||n.$apply())}),n.hide=function(){n.active&&(n.active=!1,t.animate(r,n.active,o,a))},n.show=function(){n.active||(n.active=!0,t.animate(r,n.active,o,a))},n.toggle=function(){n.active=!n.active,t.animate(r,n.active,o,a)},r.on("click",function(e){var i=e.srcElement;!matchMedia(s.medium).matches&&i.href&&i.href.length>0&&(n.hide(),t.animate(r,n.active,o,a))})}var s="panel";return{pre:o,post:a}}var r={restrict:"EA",templateUrl:"components/panel/panel.html",transclude:!0,scope:{position:"@?"},replace:!0,compile:n};return r}angular.module("foundation.panel",["foundation.core"]).directive("zfPanel",e).service("FoundationPanel",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi","$window"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(){function e(t,e,n){n.$set("zf-closable","popup")}function n(e,n,r){function i(t){s||(e.target=e.target?document.getElementById(e.target):document.getElementById(t),u=new Tether({element:n[0],target:e.target,attachment:o,targetAttachment:a,enable:!1}),s=!0)}e.active=!1,e.target=e.target||!1;var o=e.pinTo||"top center",a=e.pinAt||"bottom center",s=!1,u={};t.subscribe(r.id,function(t){"show"===t[0]||"open"===t[0]?e.show(t[1]):"close"===t[0]||"hide"===t[0]?e.hide():"toggle"===t[0]&&e.toggle(t[1]),e.$apply()}),e.hide=function(){e.active=!1,i(),u.disable()},e.show=function(t){e.active=!0,i(t),u.enable()},e.toggle=function(t){e.active=!e.active,i(t),e.active?u.enable():u.disable()}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/popup/popup.html",scope:{pinTo:"@?",pinAt:"@?",target:"@?"},compile:e};return n}function n(t){function e(e,n,r){var i=r.zfPopupToggle,o=r.id||t.generateUuid();r.$set("id",o),n.on("click",function(e){t.publish(i,["toggle",o]),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.popup",["foundation.core"]).directive("zfPopup",e).directive("zfPopupToggle",n).service("FoundationPopup",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}var n={};return n.activate=e,n}function e(t,e){var n=this,r=n.tabs=t.tabs=[],i="";n.select=function(t){r.forEach(function(n){n.active=!1,n.scope.active=!1,n.scope===t&&(e.publish(i,["activate",n]),n.active=!0,n.scope.active=!0)})},n.addTab=function(t){r.push({scope:t,active:!1,parentContent:n.id}),1===r.length&&(r[0].active=!0,t.active=!0)},n.getId=function(){return i},n.setId=function(t){i=t}}function n(t){function e(e,n,r,i){e.id=r.id||t.generateUuid(),e.showTabContent="true"!==e.displaced,r.$set("id",e.id),i.setId(e.id);var o=function(){t.publish(e.id+"-tabs",e.tabs)};t.subscribe(e.id+"-get-tabs",function(){o()})}var n={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/tabs/tabs.html",controller:"ZfTabsController",scope:{displaced:"@?"},link:e};return n}function r(t){function e(e,n,r,i){e.tabs=e.tabs||[];var o=e.target;t.subscribe(o,function(t){if("activate"===t[0]){t[1];e.tabs.forEach(function(t){t.scope.active=!1,t.active=!1,t.scope.id===o&&(t.scope.active=!0,t.active=!0)})}}),0===e.tabs.length&&(t.subscribe(o+"-tabs",function(t){e.tabs=t}),t.publish(o+"-get-tabs",""))}var n={restrict:"A",transclude:"true",replace:!0,scope:{tabs:"=?",target:"@"},templateUrl:"components/tabs/tab-content.html",link:e};return n}function i(t){function e(e,n,r,i,o){e.id=r.id||t.generateUuid(),e.active=!1,e.transcludeFn=o,i.addTab(e),t.subscribe(e.id,function(t){("show"===t||"open"===t||"activate"===t)&&e.makeActive()}),e.makeActive=function(){i.select(e)}}var n={restrict:"EA",templateUrl:"components/tabs/tab.html",transclude:!0,scope:{title:"@"},require:"^zfTabs",replace:!0,link:e};return n}function o(t){function e(e,n,r,i,o){var a=e.$eval(r.tab);a.scope.id;a.scope.transcludeFn(a.scope,function(t){n.append(t)}),t.subscribe(a.scope.id,function(n){t.publish(a.parentContent,["activate",a.scope.id]),e.$apply()})}var n={restrict:"EA",transclude:"true",link:e};return n}function a(t){function e(e,n,r,i){function o(){n.parent().children().removeClass("is-active"),n.addClass("is-active")}var a=r.zfTabHref;t.subscribe(a,function(t){("activate"===t||"show"===t||"open"===t)&&o()}),n.on("click",function(e){t.publish(a,"activate"),o(),e.preventDefault()})}var n={restrict:"A",replace:!1,link:e};return n}function s(t){function e(t,e,n,r,i){var o=e.children();angular.element(o[0]).addClass("is-active")}var n={restrict:"A",replace:!1,link:e};return n}function u(t){function e(e,n,r){function i(t){var e=n.children();angular.forEach(e,function(e){var n=angular.element(e);n.removeClass("is-active"),n.attr("id")===t&&n.addClass("is-active")})}var o=[],a=n.children();angular.forEach(a,function(e){if(e.id){var n=e.id;if(o.push(n),t.subscribe(n,function(t){("activate"===t||"show"===t||"open"===t)&&i(n)}),1===o.length){var r=angular.element(e);r.addClass("is-active")}}})}return{restrict:"A",link:e}}angular.module("foundation.tabs",["foundation.core"]).controller("ZfTabsController",e).directive("zfTabs",n).directive("zfTabContent",r).directive("zfTab",i).directive("zfTabIndividual",o).directive("zfTabHref",a).directive("zfTabCustom",s).directive("zfTabContentCustom",u).service("FoundationTabs",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["FoundationApi"],s.$inject=["FoundationApi"],u.$inject=["FoundationApi"]}(),function(){"use strict";angular.module("foundation",["foundation.core","foundation.mediaquery","foundation.accordion","foundation.actionsheet","foundation.common","foundation.iconic","foundation.interchange","foundation.modal","foundation.notification","foundation.offcanvas","foundation.panel","foundation.popup","foundation.tabs"])}(),function(t,e,n,r){"use strict";function i(t,e,n){return setTimeout(c(t,n),e)}function o(t,e,n){return Array.isArray(t)?(a(t,n[e],n),!0):!1}function a(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==r)for(i=0;i<t.length;)e.call(n,t[i],i,t),i++;else for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t)}function s(e,n,r){var i="DEPRECATED METHOD: "+n+"\n"+r+" AT \n";return function(){var n=new Error("get-stack-trace"),r=n&&n.stack?n.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=t.console&&(t.console.warn||t.console.log);return o&&o.call(t.console,i,r),e.apply(this,arguments)}}function u(t,e,n){var r,i=e.prototype;r=t.prototype=Object.create(i),r.constructor=t,r._super=i,n&&st(r,n)}function c(t,e){return function(){return t.apply(e,arguments)}}function l(t,e){return typeof t==lt?t.apply(e?e[0]||r:r,e):t}function f(t,e){return t===r?e:t}function h(t,e,n){a(v(e),function(e){t.addEventListener(e,n,!1)})}function d(t,e,n){a(v(e),function(e){t.removeEventListener(e,n,!1)})}function p(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function m(t,e){return t.indexOf(e)>-1}function v(t){return t.trim().split(/\s+/g)}function g(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;r<t.length;){if(n&&t[r][n]==e||!n&&t[r]===e)return r;r++}return-1}function $(t){return Array.prototype.slice.call(t,0)}function y(t,e,n){for(var r=[],i=[],o=0;o<t.length;){var a=e?t[o][e]:t[o];g(i,a)<0&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function b(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),a=0;a<ut.length;){if(n=ut[a],i=n?n+o:e,i in t)return i;a++}return r}function w(){return vt++}function _(e){var n=e.ownerDocument||e;return n.defaultView||n.parentWindow||t}function x(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){l(t.options.enable,[t])&&n.handler(e)},this.init()}function C(t){var e,n=t.options.inputClass;return new(e=n?n:yt?R:bt?L:$t?V:P)(t,E)}function E(t,e,n){var r=n.pointers.length,i=n.changedPointers.length,o=e&kt&&r-i===0,a=e&(St|Tt)&&r-i===0;n.isFirst=!!o,n.isFinal=!!a,o&&(t.session={}),n.eventType=e,k(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function k(t,e){var n=t.session,r=e.pointers,i=r.length;n.firstInput||(n.firstInput=T(e)),i>1&&!n.firstMultiple?n.firstMultiple=T(e):1===i&&(n.firstMultiple=!1);var o=n.firstInput,a=n.firstMultiple,s=a?a.center:o.center,u=e.center=O(r);e.timeStamp=dt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=D(s,u),e.distance=M(s,u),A(n,e),e.offsetDirection=z(e.deltaX,e.deltaY);var c=I(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=ht(c.x)>ht(c.y)?c.x:c.y,e.scale=a?N(a.pointers,r):1,e.rotation=a?j(a.pointers,r):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,S(n,e);var l=t.element;p(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function A(t,e){var n=e.center,r=t.offsetDelta||{},i=t.prevDelta||{},o=t.prevInput||{};(e.eventType===kt||o.eventType===St)&&(i=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=i.x+(n.x-r.x),e.deltaY=i.y+(n.y-r.y)}function S(t,e){var n,i,o,a,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=Tt&&(u>Et||s.velocity===r)){var c=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,f=I(u,c,l);i=f.x,o=f.y,n=ht(f.x)>ht(f.y)?f.x:f.y,a=z(c,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,o=s.velocityY,a=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=a}function T(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:ft(t.pointers[n].clientX),clientY:ft(t.pointers[n].clientY)},n++;return{timeStamp:dt(),pointers:e,center:O(e),deltaX:t.deltaX,deltaY:t.deltaY}}function O(t){var e=t.length;if(1===e)return{x:ft(t[0].clientX),y:ft(t[0].clientY)};for(var n=0,r=0,i=0;e>i;)n+=t[i].clientX,r+=t[i].clientY,i++;return{x:ft(n/e),y:ft(r/e)}}function I(t,e,n){return{x:e/t||0,y:n/t||0}}function z(t,e){return t===e?Ot:ht(t)>=ht(e)?0>t?It:zt:0>e?Mt:Dt}function M(t,e,n){n||(n=Rt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function D(t,e,n){n||(n=Rt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return 180*Math.atan2(i,r)/Math.PI}function j(t,e){return D(e[1],e[0],Ft)+D(t[1],t[0],Ft)}function N(t,e){return M(e[0],e[1],Ft)/M(t[0],t[1],Ft)}function P(){this.evEl=Lt,this.evWin=Ut,this.allow=!0,this.pressed=!1,x.apply(this,arguments)}function R(){this.evEl=Ht,this.evWin=Wt,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function F(){this.evTarget=Yt,this.evWin=Zt,this.started=!1,x.apply(this,arguments)}function B(t,e){var n=$(t.touches),r=$(t.changedTouches);return e&(St|Tt)&&(n=y(n.concat(r),"identifier",!0)),[n,r]}function L(){this.evTarget=Kt,this.targetIds={},x.apply(this,arguments)}function U(t,e){var n=$(t.touches),r=this.targetIds;if(e&(kt|At)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=$(t.changedTouches),s=[],u=this.target;if(o=n.filter(function(t){return p(t.target,u)}),e===kt)for(i=0;i<o.length;)r[o[i].identifier]=!0,i++;for(i=0;i<a.length;)r[a[i].identifier]&&s.push(a[i]),e&(St|Tt)&&delete r[a[i].identifier],i++;return s.length?[y(o.concat(s),"identifier",!0),s]:void 0}function V(){x.apply(this,arguments);var t=c(this.handler,this);this.touch=new L(this.manager,t),this.mouse=new P(this.manager,t)}function q(t,e){this.manager=t,this.set(e)}function H(t){if(m(t,re))return re;var e=m(t,ie),n=m(t,oe);return e&&n?re:e||n?e?ie:oe:m(t,ne)?ne:ee}function W(t){this.options=st({},this.defaults,t||{}),this.id=w(),this.manager=null,this.options.enable=f(this.options.enable,!0),this.state=ae,this.simultaneous={},this.requireFail=[]}function X(t){return t&fe?"cancel":t&ce?"end":t&ue?"move":t&se?"start":""}function Y(t){return t==Dt?"down":t==Mt?"up":t==It?"left":t==zt?"right":""}function Z(t,e){var n=e.manager;return n?n.get(t):t}function G(){W.apply(this,arguments)}function K(){G.apply(this,arguments),this.pX=null,this.pY=null}function J(){G.apply(this,arguments)}function Q(){W.apply(this,arguments),this._timer=null,this._input=null}function tt(){G.apply(this,arguments)}function et(){G.apply(this,arguments)}function nt(){W.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function rt(t,e){return e=e||{},e.recognizers=f(e.recognizers,rt.defaults.preset),new it(t,e)}function it(t,e){this.options=st({},rt.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=C(this),this.touchAction=new q(this,this.options.touchAction),ot(this,!0),a(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function ot(t,e){var n=t.element;n.style&&a(t.options.cssProps,function(t,r){n.style[b(n.style,r)]=e?t:""})}function at(t,n){var r=e.createEvent("Event");r.initEvent(t,!0,!0),r.gesture=n,n.target.dispatchEvent(r)}var st,ut=["","webkit","Moz","MS","ms","o"],ct=e.createElement("div"),lt="function",ft=Math.round,ht=Math.abs,dt=Date.now;st="function"!=typeof Object.assign?function(t){if(t===r||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var i=arguments[n];if(i!==r&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(e[o]=i[o])}return e}:Object.assign;var pt=s(function(t,e,n){for(var i=Object.keys(e),o=0;o<i.length;)(!n||n&&t[i[o]]===r)&&(t[i[o]]=e[i[o]]),o++;return t},"extend","Use `assign`."),mt=s(function(t,e){return pt(t,e,!0)},"merge","Use `assign`."),vt=1,gt=/mobile|tablet|ip(ad|hone|od)|android/i,$t="ontouchstart"in t,yt=b(t,"PointerEvent")!==r,bt=$t&&gt.test(navigator.userAgent),wt="touch",_t="pen",xt="mouse",Ct="kinect",Et=25,kt=1,At=2,St=4,Tt=8,Ot=1,It=2,zt=4,Mt=8,Dt=16,jt=It|zt,Nt=Mt|Dt,Pt=jt|Nt,Rt=["x","y"],Ft=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&h(this.element,this.evEl,this.domHandler),this.evTarget&&h(this.target,this.evTarget,this.domHandler),this.evWin&&h(_(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&d(this.element,this.evEl,this.domHandler),this.evTarget&&d(this.target,this.evTarget,this.domHandler),this.evWin&&d(_(this.element),this.evWin,this.domHandler)}};var Bt={mousedown:kt,mousemove:At,mouseup:St},Lt="mousedown",Ut="mousemove mouseup";u(P,x,{handler:function(t){var e=Bt[t.type];e&kt&&0===t.button&&(this.pressed=!0),e&At&&1!==t.which&&(e=St),this.pressed&&this.allow&&(e&St&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:xt,srcEvent:t}))}});var Vt={pointerdown:kt,pointermove:At,pointerup:St,pointercancel:Tt,pointerout:Tt},qt={2:wt,3:_t,4:xt,5:Ct},Ht="pointerdown",Wt="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ht="MSPointerDown",Wt="MSPointerMove MSPointerUp MSPointerCancel"),u(R,x,{handler:function(t){var e=this.store,n=!1,r=t.type.toLowerCase().replace("ms",""),i=Vt[r],o=qt[t.pointerType]||t.pointerType,a=o==wt,s=g(e,t.pointerId,"pointerId");i&kt&&(0===t.button||a)?0>s&&(e.push(t),s=e.length-1):i&(St|Tt)&&(n=!0),0>s||(e[s]=t,this.callback(this.manager,i,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),n&&e.splice(s,1))}});var Xt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Yt="touchstart",Zt="touchstart touchmove touchend touchcancel";u(F,x,{handler:function(t){var e=Xt[t.type];if(e===kt&&(this.started=!0),this.started){var n=B.call(this,t,e);e&(St|Tt)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}});var Gt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Kt="touchstart touchmove touchend touchcancel";u(L,x,{handler:function(t){var e=Gt[t.type],n=U.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}),u(V,x,{handler:function(t,e,n){var r=n.pointerType==wt,i=n.pointerType==xt;if(r)this.mouse.allow=!1;else if(i&&!this.mouse.allow)return;e&(St|Tt)&&(this.mouse.allow=!0),this.callback(t,e,n)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Jt=b(ct.style,"touchAction"),Qt=Jt!==r,te="compute",ee="auto",ne="manipulation",re="none",ie="pan-x",oe="pan-y";q.prototype={set:function(t){t==te&&(t=this.compute()),Qt&&this.manager.element.style&&(this.manager.element.style[Jt]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return a(this.manager.recognizers,function(e){l(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),H(t.join(" "))},preventDefaults:function(t){if(!Qt){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var r=this.actions,i=m(r,re),o=m(r,oe),a=m(r,ie);if(i){var s=1===t.pointers.length,u=t.distance<2,c=t.deltaTime<250;if(s&&u&&c)return}if(!a||!o)return i||o&&n&jt||a&&n&Nt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ae=1,se=2,ue=4,ce=8,le=ce,fe=16,he=32;W.prototype={defaults:{},set:function(t){return st(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(o(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=Z(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return o(t,"dropRecognizeWith",this)?this:(t=Z(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(o(t,"requireFailure",this))return this;var e=this.requireFail;return t=Z(t,this),-1===g(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(o(t,"dropRequireFailure",this))return this;t=Z(t,this);var e=g(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,r=this.state;ce>r&&e(n.options.event+X(r)),e(n.options.event),t.additionalEvent&&e(t.additionalEvent),r>=ce&&e(n.options.event+X(r))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=he)},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(he|ae)))return!1;t++}return!0},recognize:function(t){var e=st({},t);return l(this.options.enable,[this,e])?(this.state&(le|fe|he)&&(this.state=ae),this.state=this.process(e),void(this.state&(se|ue|ce|fe)&&this.tryEmit(e))):(this.reset(),void(this.state=he))},process:function(t){},getTouchAction:function(){},reset:function(){}},u(G,W,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,r=e&(se|ue),i=this.attrTest(t);return r&&(n&Tt||!i)?e|fe:r||i?n&St?e|ce:e&se?e|ue:se:he}}),u(K,G,{defaults:{event:"pan",threshold:10,pointers:1,direction:Pt},getTouchAction:function(){var t=this.options.direction,e=[];return t&jt&&e.push(oe),t&Nt&&e.push(ie),e},directionTest:function(t){var e=this.options,n=!0,r=t.distance,i=t.direction,o=t.deltaX,a=t.deltaY;return i&e.direction||(e.direction&jt?(i=0===o?Ot:0>o?It:zt,n=o!=this.pX,r=Math.abs(t.deltaX)):(i=0===a?Ot:0>a?Mt:Dt,n=a!=this.pY,r=Math.abs(t.deltaY))),t.direction=i,n&&r>e.threshold&&i&e.direction},attrTest:function(t){return G.prototype.attrTest.call(this,t)&&(this.state&se||!(this.state&se)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Y(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(J,G,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&se)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),u(Q,W,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ee]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,o=t.deltaTime>e.time;if(this._input=t,!r||!n||t.eventType&(St|Tt)&&!o)this.reset();else if(t.eventType&kt)this.reset(),this._timer=i(function(){this.state=le,this.tryEmit()},e.time,this);else if(t.eventType&St)return le;return he},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===le&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=dt(),this.manager.emit(this.options.event,this._input)))}}),u(tt,G,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&se)}}),u(et,G,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:jt|Nt,pointers:1},getTouchAction:function(){return K.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(jt|Nt)?e=t.overallVelocity:n&jt?e=t.overallVelocityX:n&Nt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&ht(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=Y(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(nt,W,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,o=t.deltaTime<e.time;if(this.reset(),t.eventType&kt&&0===this.count)return this.failTimeout();if(r&&o&&n){if(t.eventType!=St)return this.failTimeout();var a=this.pTime?t.timeStamp-this.pTime<e.interval:!0,s=!this.pCenter||M(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,s&&a?this.count+=1:this.count=1,this._input=t;var u=this.count%e.taps;if(0===u)return this.hasRequireFailures()?(this._timer=i(function(){this.state=le,this.tryEmit()},e.interval,this),se):le}return he},failTimeout:function(){return this._timer=i(function(){this.state=he},this.options.interval,this),he},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==le&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),rt.VERSION="2.0.6",rt.defaults={domEvents:!1,touchAction:te,enable:!0,inputTarget:null,inputClass:null,preset:[[tt,{enable:!1}],[J,{enable:!1},["rotate"]],[et,{direction:jt}],[K,{direction:jt},["swipe"]],[nt],[nt,{event:"doubletap",taps:2},["tap"]],[Q]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var de=1,pe=2;it.prototype={set:function(t){return st(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?pe:de},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var n,r=this.recognizers,i=e.curRecognizer;(!i||i&&i.state&le)&&(i=e.curRecognizer=null);for(var o=0;o<r.length;)n=r[o],e.stopped===pe||i&&n!=i&&!n.canRecognizeWith(i)?n.reset():n.recognize(t),!i&&n.state&(se|ue|ce)&&(i=e.curRecognizer=n),o++}},get:function(t){if(t instanceof W)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(o(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(o(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,n=g(e,t);-1!==n&&(e.splice(n,1),this.touchAction.update())}return this},on:function(t,e){var n=this.handlers;return a(v(t),function(t){n[t]=n[t]||[],n[t].push(e)}),this},off:function(t,e){var n=this.handlers;return a(v(t),function(t){e?n[t]&&n[t].splice(g(n[t],e),1):delete n[t]}),this},emit:function(t,e){this.options.domEvents&&at(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](e),r++}},destroy:function(){this.element&&ot(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},st(rt,{INPUT_START:kt,INPUT_MOVE:At,INPUT_END:St,INPUT_CANCEL:Tt,STATE_POSSIBLE:ae,STATE_BEGAN:se,STATE_CHANGED:ue,STATE_ENDED:ce,STATE_RECOGNIZED:le,STATE_CANCELLED:fe,STATE_FAILED:he,DIRECTION_NONE:Ot,DIRECTION_LEFT:It,DIRECTION_RIGHT:zt,DIRECTION_UP:Mt,DIRECTION_DOWN:Dt,DIRECTION_HORIZONTAL:jt,DIRECTION_VERTICAL:Nt,DIRECTION_ALL:Pt,Manager:it,Input:x,TouchAction:q,TouchInput:L,MouseInput:P,PointerEventInput:R,TouchMouseInput:V,SingleTouchInput:F,Recognizer:W,AttrRecognizer:G,Tap:nt,Pan:K,Swipe:et,Pinch:J,Rotate:tt,Press:Q,on:h,off:d,each:a,merge:mt,extend:pt,assign:st,inherit:u,bindFn:c,prefixed:b});var me="undefined"!=typeof t?t:"undefined"!=typeof self?self:{};me.Hammer=rt,"function"==typeof define&&define.amd?define(function(){return rt}):"undefined"!=typeof module&&module.exports?module.exports=rt:t[n]=rt}(window,document,"Hammer"),!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),
+e.JSZip=t()}}(function(){return function t(e,n,r){function i(a,s){if(!n[a]){if(!e[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(t,e){for(var n,i,o,a,s,u,c,l="",f=0;f<t.length;)n=t.charCodeAt(f++),i=t.charCodeAt(f++),o=t.charCodeAt(f++),a=n>>2,s=(3&n)<<4|i>>4,u=(15&i)<<2|o>>6,c=63&o,isNaN(i)?u=c=64:isNaN(o)&&(c=64),l=l+r.charAt(a)+r.charAt(s)+r.charAt(u)+r.charAt(c);return l},n.decode=function(t,e){var n,i,o,a,s,u,c,l="",f=0;for(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");f<t.length;)a=r.indexOf(t.charAt(f++)),s=r.indexOf(t.charAt(f++)),u=r.indexOf(t.charAt(f++)),c=r.indexOf(t.charAt(f++)),n=a<<2|s>>4,i=(15&s)<<4|u>>2,o=(3&u)<<6|c,l+=String.fromCharCode(n),64!=u&&(l+=String.fromCharCode(i)),64!=c&&(l+=String.fromCharCode(o));return l}},{}],2:[function(t,e,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},e.exports=r},{}],3:[function(t,e,n){"use strict";n.STORE={magic:"\x00\x00",compress:function(t,e){return t},uncompress:function(t){return t},compressInputType:null,uncompressInputType:null},n.DEFLATE=t("./flate")},{"./flate":8}],4:[function(t,e,n){"use strict";var r=t("./utils"),i=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];e.exports=function(t,e){if("undefined"==typeof t||!t.length)return 0;var n="string"!==r.getTypeOf(t);"undefined"==typeof e&&(e=0);var o=0,a=0,s=0;e=-1^e;for(var u=0,c=t.length;c>u;u++)s=n?t[u]:t.charCodeAt(u),a=255&(e^s),o=i[a],e=e>>>8^o;return-1^e}},{"./utils":21}],5:[function(t,e,n){"use strict";function r(t){this.data=null,this.length=0,this.index=0}var i=t("./utils");r.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<t||0>t)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,n=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)n=(n<<8)+this.byteAt(e);return this.index+=t,n},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date((t>>25&127)+1980,(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1)}},e.exports=r},{"./utils":21}],6:[function(t,e,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],7:[function(t,e,n){"use strict";var r=t("./utils");n.string2binary=function(t){return r.string2binary(t)},n.string2Uint8Array=function(t){return r.transformTo("uint8array",t)},n.uint8Array2String=function(t){return r.transformTo("string",t)},n.string2Blob=function(t){var e=r.transformTo("arraybuffer",t);return r.arrayBuffer2Blob(e)},n.arrayBuffer2Blob=function(t){return r.arrayBuffer2Blob(t)},n.transformTo=function(t,e){return r.transformTo(t,e)},n.getTypeOf=function(t){return r.getTypeOf(t)},n.checkSupport=function(t){return r.checkSupport(t)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(t){return r.pretty(t)},n.findCompression=function(t){return r.findCompression(t)},n.isRegExp=function(t){return r.isRegExp(t)}},{"./utils":21}],8:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\x00",n.compress=function(t,e){return i.deflateRaw(t,{level:e.level||-1})},n.uncompress=function(t){return i.inflateRaw(t)}},{pako:24}],9:[function(t,e,n){"use strict";function r(t,e){return this instanceof r?(this.files={},this.comment=null,this.root="",t&&this.load(t,e),void(this.clone=function(){var t=new r;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t})):new r(t,e)}var i=t("./base64");r.prototype=t("./object"),r.prototype.load=t("./load"),r.support=t("./support"),r.defaults=t("./defaults"),r.utils=t("./deprecatedPublicUtils"),r.base64={encode:function(t){return i.encode(t)},decode:function(t){return i.decode(t)}},r.compressions=t("./compressions"),e.exports=r},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(t,e,n){"use strict";var r=t("./base64"),i=t("./zipEntries");e.exports=function(t,e){var n,o,a,s;for(e=e||{},e.base64&&(t=r.decode(t)),o=new i(t,e),n=o.files,a=0;a<n.length;a++)s=n[a],this.file(s.fileName,s.decompressed,{binary:!0,optimizedBinaryString:!0,date:s.date,dir:s.dir,comment:s.fileComment.length?s.fileComment:null,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,createFolders:e.createFolders});return o.zipComment.length&&(this.comment=o.zipComment),this}},{"./base64":1,"./zipEntries":22}],11:[function(t,e,n){(function(t){"use strict";e.exports=function(e,n){return new t(e,n)},e.exports.test=function(e){return t.isBuffer(e)}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],12:[function(t,e,n){"use strict";function r(t){this.data=t,this.length=this.data.length,this.index=0}var i=t("./uint8ArrayReader");r.prototype=new i,r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./uint8ArrayReader":18}],13:[function(t,e,n){"use strict";var r=t("./support"),i=t("./utils"),o=t("./crc32"),a=t("./signature"),s=t("./defaults"),u=t("./base64"),c=t("./compressions"),l=t("./compressedObject"),f=t("./nodeBuffer"),h=t("./utf8"),d=t("./stringWriter"),p=t("./uint8ArrayWriter"),m=function(t){if(t._data instanceof l&&(t._data=t._data.getContent(),t.options.binary=!0,t.options.base64=!1,"uint8array"===i.getTypeOf(t._data))){var e=t._data;t._data=new Uint8Array(e.length),0!==e.length&&t._data.set(e,0)}return t._data},v=function(t){var e=m(t),n=i.getTypeOf(e);return"string"===n?!t.options.binary&&r.nodebuffer?f(e,"utf-8"):t.asBinary():e},g=function(t){var e=m(this);return null===e||"undefined"==typeof e?"":(this.options.base64&&(e=u.decode(e)),e=t&&this.options.binary?O.utf8decode(e):i.transformTo("string",e),t||this.options.binary||(e=i.transformTo("string",O.utf8encode(e))),e)},$=function(t,e,n){this.name=t,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=e,this.options=n,this._initialMetadata={dir:n.dir,date:n.date}};$.prototype={asText:function(){return g.call(this,!0)},asBinary:function(){return g.call(this,!1)},asNodeBuffer:function(){var t=v(this);return i.transformTo("nodebuffer",t)},asUint8Array:function(){var t=v(this);return i.transformTo("uint8array",t)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var y=function(t,e){var n,r="";for(n=0;e>n;n++)r+=String.fromCharCode(255&t),t>>>=8;return r},b=function(){var t,e,n={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&"undefined"==typeof n[e]&&(n[e]=arguments[t][e]);return n},w=function(t){return t=t||{},t.base64!==!0||null!==t.binary&&void 0!==t.binary||(t.binary=!0),t=b(t,s),t.date=t.date||new Date,null!==t.compression&&(t.compression=t.compression.toUpperCase()),t},_=function(t,e,n){var r,o=i.getTypeOf(e);if(n=w(n),"string"==typeof n.unixPermissions&&(n.unixPermissions=parseInt(n.unixPermissions,8)),n.unixPermissions&&16384&n.unixPermissions&&(n.dir=!0),n.dosPermissions&&16&n.dosPermissions&&(n.dir=!0),n.dir&&(t=C(t)),n.createFolders&&(r=x(t))&&E.call(this,r,!0),n.dir||null===e||"undefined"==typeof e)n.base64=!1,n.binary=!1,e=null,o=null;else if("string"===o)n.binary&&!n.base64&&n.optimizedBinaryString!==!0&&(e=i.string2binary(e));else{if(n.base64=!1,n.binary=!0,!(o||e instanceof l))throw new Error("The data of '"+t+"' is in an unsupported format !");"arraybuffer"===o&&(e=i.transformTo("uint8array",e))}var a=new $(t,e,n);return this.files[t]=a,a},x=function(t){"/"==t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf("/");return e>0?t.substring(0,e):""},C=function(t){return"/"!=t.slice(-1)&&(t+="/"),t},E=function(t,e){return e="undefined"!=typeof e?e:!1,t=C(t),this.files[t]||_.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]},k=function(t,e,n){var r,a=new l;return t._data instanceof l?(a.uncompressedSize=t._data.uncompressedSize,a.crc32=t._data.crc32,0===a.uncompressedSize||t.dir?(e=c.STORE,a.compressedContent="",a.crc32=0):t._data.compressionMethod===e.magic?a.compressedContent=t._data.getCompressedContent():(r=t._data.getContent(),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n))):(r=v(t),(!r||0===r.length||t.dir)&&(e=c.STORE,r=""),a.uncompressedSize=r.length,a.crc32=o(r),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n)),a.compressedSize=a.compressedContent.length,a.compressionMethod=e.magic,a},A=function(t,e){var n=t;return t||(n=e?16893:33204),(65535&n)<<16},S=function(t,e){return 63&(t||0)},T=function(t,e,n,r,s){var u,c,l,f,d=(n.compressedContent,i.transformTo("string",h.utf8encode(e.name))),p=e.comment||"",m=i.transformTo("string",h.utf8encode(p)),v=d.length!==e.name.length,g=m.length!==p.length,$=e.options,b="",w="",_="";l=e._initialMetadata.dir!==e.dir?e.dir:$.dir,f=e._initialMetadata.date!==e.date?e.date:$.date;var x=0,C=0;l&&(x|=16),"UNIX"===s?(C=798,x|=A(e.unixPermissions,l)):(C=20,x|=S(e.dosPermissions,l)),u=f.getHours(),u<<=6,u|=f.getMinutes(),u<<=5,u|=f.getSeconds()/2,c=f.getFullYear()-1980,c<<=4,c|=f.getMonth()+1,c<<=5,c|=f.getDate(),v&&(w=y(1,1)+y(o(d),4)+d,b+="up"+y(w.length,2)+w),g&&(_=y(1,1)+y(this.crc32(m),4)+m,b+="uc"+y(_.length,2)+_);var E="";E+="\n\x00",E+=v||g?"\x00\b":"\x00\x00",E+=n.compressionMethod,E+=y(u,2),E+=y(c,2),E+=y(n.crc32,4),E+=y(n.compressedSize,4),E+=y(n.uncompressedSize,4),E+=y(d.length,2),E+=y(b.length,2);var k=a.LOCAL_FILE_HEADER+E+d+b,T=a.CENTRAL_FILE_HEADER+y(C,2)+E+y(m.length,2)+"\x00\x00\x00\x00"+y(x,4)+y(r,4)+d+b+m;return{fileRecord:k,dirRecord:T,compressedObject:n}},O={load:function(t,e){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(t){var e,n,r,i,o=[];for(e in this.files)this.files.hasOwnProperty(e)&&(r=this.files[e],i=new $(r.name,r._data,b(r.options)),n=e.slice(this.root.length,e.length),e.slice(0,this.root.length)===this.root&&t(n,i)&&o.push(i));return o},file:function(t,e,n){if(1===arguments.length){if(i.isRegExp(t)){var r=t;return this.filter(function(t,e){return!e.dir&&r.test(t)})}return this.filter(function(e,n){return!n.dir&&e===t})[0]||null}return t=this.root+t,_.call(this,t,e,n),this},folder:function(t){if(!t)return this;if(i.isRegExp(t))return this.filter(function(e,n){return n.dir&&t.test(e)});var e=this.root+t,n=E.call(this,e),r=this.clone();return r.root=n.name,r},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!=t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var n=this.filter(function(e,n){return n.name.slice(0,t.length)===t}),r=0;r<n.length;r++)delete this.files[n[r].name];return this},generate:function(t){t=b(t||{},{base64:!0,compression:"STORE",compressionOptions:null,type:"base64",platform:"DOS",comment:null,mimeType:"application/zip"}),i.checkSupport(t.type),("darwin"===t.platform||"freebsd"===t.platform||"linux"===t.platform||"sunos"===t.platform)&&(t.platform="UNIX"),"win32"===t.platform&&(t.platform="DOS");var e,n,r=[],o=0,s=0,l=i.transformTo("string",this.utf8encode(t.comment||this.comment||""));for(var f in this.files)if(this.files.hasOwnProperty(f)){var h=this.files[f],m=h.options.compression||t.compression.toUpperCase(),v=c[m];if(!v)throw new Error(m+" is not a valid compression method !");var g=h.options.compressionOptions||t.compressionOptions||{},$=k.call(this,h,v,g),w=T.call(this,f,h,$,o,t.platform);o+=w.fileRecord.length+$.compressedSize,s+=w.dirRecord.length,r.push(w)}var _="";_=a.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+y(r.length,2)+y(r.length,2)+y(s,4)+y(o,4)+y(l.length,2)+l;var x=t.type.toLowerCase();for(e="uint8array"===x||"arraybuffer"===x||"blob"===x||"nodebuffer"===x?new p(o+s+_.length):new d(o+s+_.length),n=0;n<r.length;n++)e.append(r[n].fileRecord),e.append(r[n].compressedObject.compressedContent);for(n=0;n<r.length;n++)e.append(r[n].dirRecord);e.append(_);var C=e.finalize();switch(t.type.toLowerCase()){case"uint8array":case"arraybuffer":case"nodebuffer":return i.transformTo(t.type.toLowerCase(),C);case"blob":return i.arrayBuffer2Blob(i.transformTo("arraybuffer",C),t.mimeType);case"base64":return t.base64?u.encode(C):C;default:return C}},crc32:function(t,e){return o(t,e)},utf8encode:function(t){return i.transformTo("string",h.utf8encode(t))},utf8decode:function(t){return h.utf8decode(t)}};e.exports=O},{"./base64":1,"./compressedObject":2,"./compressions":3,"./crc32":4,"./defaults":6,"./nodeBuffer":11,"./signature":14,"./stringWriter":16,"./support":17,"./uint8ArrayWriter":19,"./utf8":20,"./utils":21}],14:[function(t,e,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],15:[function(t,e,n){"use strict";function r(t,e){this.data=t,e||(this.data=o.string2binary(this.data)),this.length=this.data.length,this.index=0}var i=t("./dataReader"),o=t("./utils");r.prototype=new i,r.prototype.byteAt=function(t){return this.data.charCodeAt(t)},r.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)},r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5,"./utils":21}],16:[function(t,e,n){"use strict";var r=t("./utils"),i=function(){this.data=[]};i.prototype={append:function(t){t=r.transformTo("string",t),this.data.push(t)},finalize:function(){return this.data.join("")}},e.exports=i},{"./utils":21}],17:[function(t,e,n){(function(t){"use strict";if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof t,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var e=new ArrayBuffer(0);try{n.blob=0===new Blob([e],{type:"application/zip"}).size}catch(r){try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,o=new i;o.append(e),n.blob=0===o.getBlob("application/zip").size}catch(r){n.blob=!1}}}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],18:[function(t,e,n){"use strict";function r(t){t&&(this.data=t,this.length=this.data.length,this.index=0)}var i=t("./dataReader");r.prototype=new i,r.prototype.byteAt=function(t){return this.data[t]},r.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),n=t.charCodeAt(1),r=t.charCodeAt(2),i=t.charCodeAt(3),o=this.length-4;o>=0;--o)if(this.data[o]===e&&this.data[o+1]===n&&this.data[o+2]===r&&this.data[o+3]===i)return o;return-1},r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5}],19:[function(t,e,n){"use strict";var r=t("./utils"),i=function(t){this.data=new Uint8Array(t),this.index=0};i.prototype={append:function(t){0!==t.length&&(t=r.transformTo("uint8array",t),this.data.set(t,this.index),this.index+=t.length)},finalize:function(){return this.data}},e.exports=i},{"./utils":21}],20:[function(t,e,n){"use strict";for(var r=t("./utils"),i=t("./support"),o=t("./nodeBuffer"),a=new Array(256),s=0;256>s;s++)a[s]=s>=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;a[254]=a[254]=1;var u=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=i.uint8array?new Uint8Array(u):new Array(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},c=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+a[t[n]]>e?n:e},l=function(t){var e,n,i,o,s=t.length,u=new Array(2*s);for(n=0,e=0;s>e;)if(i=t[e++],128>i)u[n++]=i;else if(o=a[i],o>4)u[n++]=65533,e+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&s>e;)i=i<<6|63&t[e++],o--;o>1?u[n++]=65533:65536>i?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),r.applyFromCharCode(u)};n.utf8encode=function(t){return i.nodebuffer?o(t,"utf-8"):u(t)},n.utf8decode=function(t){if(i.nodebuffer)return r.transformTo("nodebuffer",t).toString("utf-8");t=r.transformTo(i.uint8array?"uint8array":"array",t);for(var e=[],n=0,o=t.length,a=65536;o>n;){var s=c(t,Math.min(n+a,o));i.uint8array?e.push(l(t.subarray(n,s))):e.push(l(t.slice(n,s))),n=s}return e.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(t,e,n){"use strict";function r(t){return t}function i(t,e){for(var n=0;n<t.length;++n)e[n]=255&t.charCodeAt(n);return e}function o(t){var e=65536,r=[],i=t.length,o=n.getTypeOf(t),a=0,s=!0;try{switch(o){case"uint8array":String.fromCharCode.apply(null,new Uint8Array(0));break;case"nodebuffer":String.fromCharCode.apply(null,c(0))}}catch(u){s=!1}if(!s){for(var l="",f=0;f<t.length;f++)l+=String.fromCharCode(t[f]);return l}for(;i>a&&e>1;)try{"array"===o||"nodebuffer"===o?r.push(String.fromCharCode.apply(null,t.slice(a,Math.min(a+e,i)))):r.push(String.fromCharCode.apply(null,t.subarray(a,Math.min(a+e,i)))),a+=e}catch(u){e=Math.floor(e/2)}return r.join("")}function a(t,e){for(var n=0;n<t.length;n++)e[n]=t[n];return e}var s=t("./support"),u=t("./compressions"),c=t("./nodeBuffer");n.string2binary=function(t){for(var e="",n=0;n<t.length;n++)e+=String.fromCharCode(255&t.charCodeAt(n));return e},n.arrayBuffer2Blob=function(t,e){n.checkSupport("blob"),e=e||"application/zip";try{return new Blob([t],{type:e})}catch(r){try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,o=new i;return o.append(t),o.getBlob(e)}catch(r){throw new Error("Bug : can't construct the Blob.")}}},n.applyFromCharCode=o;var l={};l.string={string:r,array:function(t){return i(t,new Array(t.length))},arraybuffer:function(t){return l.string.uint8array(t).buffer},uint8array:function(t){return i(t,new Uint8Array(t.length))},nodebuffer:function(t){return i(t,c(t.length))}},l.array={string:o,array:r,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return c(t)}},l.arraybuffer={string:function(t){return o(new Uint8Array(t))},array:function(t){return a(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:r,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return c(new Uint8Array(t))}},l.uint8array={string:o,array:function(t){return a(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:r,nodebuffer:function(t){return c(t)}},l.nodebuffer={string:o,array:function(t){return a(t,new Array(t.length))},arraybuffer:function(t){return l.nodebuffer.uint8array(t).buffer},uint8array:function(t){return a(t,new Uint8Array(t.length))},nodebuffer:r},n.transformTo=function(t,e){if(e||(e=""),!t)return e;n.checkSupport(t);var r=n.getTypeOf(e),i=l[r][t](e);return i},n.getTypeOf=function(t){return"string"==typeof t?"string":"[object Array]"===Object.prototype.toString.call(t)?"array":s.nodebuffer&&c.test(t)?"nodebuffer":s.uint8array&&t instanceof Uint8Array?"uint8array":s.arraybuffer&&t instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(t){var e=s[t.toLowerCase()];if(!e)throw new Error(t+" is not supported by this browser")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(t){var e,n,r="";for(n=0;n<(t||"").length;n++)e=t.charCodeAt(n),r+="\\x"+(16>e?"0":"")+e.toString(16).toUpperCase();return r},n.findCompression=function(t){for(var e in u)if(u.hasOwnProperty(e)&&u[e].magic===t)return u[e];return null},n.isRegExp=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(t,e,n){"use strict";function r(t,e){this.files=[],this.loadOptions=e,t&&this.load(t)}var i=t("./stringReader"),o=t("./nodeBufferReader"),a=t("./uint8ArrayReader"),s=t("./utils"),u=t("./signature"),c=t("./zipEntry"),l=t("./support"),f=t("./object");r.prototype={checkSignature:function(t){var e=this.reader.readString(4);if(e!==t)throw new Error("Corrupted zip or bug : unexpected signature ("+s.pretty(e)+", expected "+s.pretty(t)+")")},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2),this.zipComment=this.reader.readString(this.zipCommentLength),this.zipComment=f.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,n,r=this.zip64EndOfCentralSize-44,i=0;r>i;)t=this.reader.readInt(2),e=this.reader.readInt(4),n=this.reader.readString(e),this.zip64ExtensibleData[t]={id:t,length:e,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(u.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===u.CENTRAL_FILE_HEADER;)t=new c({zip64:this.zip64},this.loadOptions),t.readCentralPart(this.reader),this.files.push(t)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(u.CENTRAL_DIRECTORY_END);if(-1===t){var e=!0;try{this.reader.setIndex(0),this.checkSignature(u.LOCAL_FILE_HEADER),e=!1}catch(n){}throw e?new Error("Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip : can't find end of central directory")}if(this.reader.setIndex(t),this.checkSignature(u.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===s.MAX_VALUE_16BITS||this.diskWithCentralDirStart===s.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===s.MAX_VALUE_16BITS||this.centralDirRecords===s.MAX_VALUE_16BITS||this.centralDirSize===s.MAX_VALUE_32BITS||this.centralDirOffset===s.MAX_VALUE_32BITS){if(this.zip64=!0,t=this.reader.lastIndexOfSignature(u.ZIP64_CENTRAL_DIRECTORY_LOCATOR),-1===t)throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator");this.reader.setIndex(t),this.checkSignature(u.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(u.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}},prepareReader:function(t){var e=s.getTypeOf(t);"string"!==e||l.uint8array?"nodebuffer"===e?this.reader=new o(t):this.reader=new a(s.transformTo("uint8array",t)):this.reader=new i(t,this.loadOptions.optimizedBinaryString)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=r},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(t,e,n){"use strict";function r(t,e){this.options=t,this.loadOptions=e}var i=t("./stringReader"),o=t("./utils"),a=t("./compressedObject"),s=t("./object"),u=0,c=3;r.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},prepareCompressedContent:function(t,e,n){return function(){var r=t.index;t.setIndex(e);var i=t.readData(n);return t.setIndex(r),i}},prepareContent:function(t,e,n,r,i){return function(){var t=o.transformTo(r.uncompressInputType,this.getCompressedContent()),e=r.uncompress(t);if(e.length!==i)throw new Error("Bug : uncompressed data size mismatch");return e}},readLocalPart:function(t){var e,n;if(t.skip(22),this.fileNameLength=t.readInt(2),n=t.readInt(2),this.fileName=t.readString(this.fileNameLength),t.skip(n),-1==this.compressedSize||-1==this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)");if(e=o.findCompression(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")");if(this.decompressed=new a,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(t,t.index,this.compressedSize,e),this.decompressed.getContent=this.prepareContent(t,t.index,this.compressedSize,e,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=o.transformTo("string",this.decompressed.getContent()),s.crc32(this.decompressed)!==this.crc32))throw new Error("Corrupted zip : CRC32 mismatch")},readCentralPart:function(t){if(this.versionMadeBy=t.readInt(2),this.versionNeeded=t.readInt(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4),this.fileNameLength=t.readInt(2),this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");this.fileName=t.readString(this.fileNameLength),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readString(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=16&this.externalFileAttributes?!0:!1,t===u&&(this.dosPermissions=63&this.externalFileAttributes),t===c&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileName.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=new i(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,n,r,i=t.index;for(this.extraFields=this.extraFields||{};t.index<i+this.extraFieldsLength;)e=t.readInt(2),n=t.readInt(2),r=t.readString(n),this.extraFields[e]={id:e,length:n,value:r}},handleUTF8:function(){if(this.useUTF8())this.fileName=s.utf8decode(this.fileName),this.fileComment=s.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();null!==t&&(this.fileName=t);var e=this.findExtraFieldUnicodeComment();null!==e&&(this.fileComment=e)}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=new i(t.value);return 1!==e.readInt(1)?null:s.crc32(this.fileName)!==e.readInt(4)?null:s.utf8decode(e.readString(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=new i(t.value);
+return 1!==e.readInt(1)?null:s.crc32(this.fileComment)!==e.readInt(4)?null:s.utf8decode(e.readString(t.length-5))}return null}},e.exports=r},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(t,e,n){"use strict";var r=t("./lib/utils/common").assign,i=t("./lib/deflate"),o=t("./lib/inflate"),a=t("./lib/zlib/constants"),s={};r(s,i,o,a),e.exports=s},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(t,e,n){"use strict";function r(t,e){var n=new $(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}function o(t,e){return e=e||{},e.gzip=!0,r(t,e)}var a=t("./zlib/deflate.js"),s=t("./utils/common"),u=t("./utils/strings"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=0,h=4,d=0,p=1,m=-1,v=0,g=8,$=function(t){this.options=s.assign({level:m,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:v,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(c[n]);e.header&&a.deflateSetHeader(this.strm,e.header)};$.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?h:f,"string"==typeof t?i.input=u.string2buf(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new s.Buf8(o),i.next_out=0,i.avail_out=o),n=a.deflate(i,r),n!==p&&n!==d)return this.onEnd(n),this.ended=!0,!1;(0===i.avail_out||0===i.avail_in&&r===h)&&("string"===this.options.to?this.onData(u.buf2binstring(s.shrinkBuf(i.output,i.next_out))):this.onData(s.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&n!==p);return r===h?(n=a.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===d):!0},$.prototype.onData=function(t){this.chunks.push(t)},$.prototype.onEnd=function(t){t===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Deflate=$,n.deflate=r,n.deflateRaw=i,n.gzip=o},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(t,e,n){"use strict";function r(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}var o=t("./zlib/inflate.js"),a=t("./utils/common"),s=t("./utils/strings"),u=t("./zlib/constants"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=t("./zlib/gzheader"),h=function(t){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=o.inflateInit2(this.strm,e.windowBits);if(n!==u.Z_OK)throw new Error(c[n]);this.header=new f,o.inflateGetHeader(this.strm,this.header)};h.prototype.push=function(t,e){var n,r,i,c,l,f=this.strm,h=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?u.Z_FINISH:u.Z_NO_FLUSH,"string"==typeof t?f.input=s.binstring2buf(t):f.input=t,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new a.Buf8(h),f.next_out=0,f.avail_out=h),n=o.inflate(f,u.Z_NO_FLUSH),n!==u.Z_STREAM_END&&n!==u.Z_OK)return this.onEnd(n),this.ended=!0,!1;f.next_out&&(0===f.avail_out||n===u.Z_STREAM_END||0===f.avail_in&&r===u.Z_FINISH)&&("string"===this.options.to?(i=s.utf8border(f.output,f.next_out),c=f.next_out-i,l=s.buf2string(f.output,i),f.next_out=c,f.avail_out=h-c,c&&a.arraySet(f.output,f.output,i,c,0),this.onData(l)):this.onData(a.shrinkBuf(f.output,f.next_out)))}while(f.avail_in>0&&n!==u.Z_STREAM_END);return n===u.Z_STREAM_END&&(r=u.Z_FINISH),r===u.Z_FINISH?(n=o.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===u.Z_OK):!0},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===u.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Inflate=h,n.inflate=r,n.inflateRaw=i,n.ungzip=r},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}}return t},n.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var i={arraySet:function(t,e,n,r,i){if(e.subarray&&t.subarray)return void t.set(e.subarray(n,n+r),i);for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){var e,n,r,i,o,a;for(r=0,e=0,n=t.length;n>e;e++)r+=t[e].length;for(a=new Uint8Array(r),i=0,e=0,n=t.length;n>e;e++)o=t[e],a.set(o,i),i+=o.length;return a}},o={arraySet:function(t,e,n,r,i){for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){return[].concat.apply([],t)}};n.setTyped=function(t){t?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,i)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,o))},n.setTyped(r)},{}],28:[function(t,e,n){"use strict";function r(t,e){if(65537>e&&(t.subarray&&a||!t.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",r=0;e>r;r++)n+=String.fromCharCode(t[r]);return n}var i=t("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(s){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(s){a=!1}for(var u=new i.Buf8(256),c=0;256>c;c++)u[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;u[254]=u[254]=1,n.string2buf=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=new i.Buf8(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},n.buf2binstring=function(t){return r(t,t.length)},n.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;r>n;n++)e[n]=t.charCodeAt(n);return e},n.buf2string=function(t,e){var n,i,o,a,s=e||t.length,c=new Array(2*s);for(i=0,n=0;s>n;)if(o=t[n++],128>o)c[i++]=o;else if(a=u[o],a>4)c[i++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&s>n;)o=o<<6|63&t[n++],a--;a>1?c[i++]=65533:65536>o?c[i++]=o:(o-=65536,c[i++]=55296|o>>10&1023,c[i++]=56320|1023&o)}return r(c,i)},n.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+u[t[n]]>e?n:e}},{"./common":27}],29:[function(t,e,n){"use strict";function r(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){a=n>2e3?2e3:n,n-=a;do i=i+e[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}e.exports=r},{}],30:[function(t,e,n){e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(t,e,n){"use strict";function r(){for(var t,e=[],n=0;256>n;n++){t=n;for(var r=0;8>r;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}function i(t,e,n,r){var i=o,a=r+n;t=-1^t;for(var s=r;a>s;s++)t=t>>>8^i[255&(t^e[s])];return-1^t}var o=r();e.exports=i},{}],32:[function(t,e,n){"use strict";function r(t,e){return t.msg=z[e],e}function i(t){return(t<<1)-(t>4?9:0)}function o(t){for(var e=t.length;--e>=0;)t[e]=0}function a(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(S.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function s(t,e){T._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,a(t.strm)}function u(t,e){t.pending_buf[t.pending++]=e}function c(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function l(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,S.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=O(t.adler,e,i,n):2===t.state.wrap&&(t.adler=I(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function f(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-ct?t.strstart-(t.w_size-ct):0,c=t.window,l=t.w_mask,f=t.prev,h=t.strstart+ut,d=c[o+a-1],p=c[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do if(n=e,c[n+a]===p&&c[n+a-1]===d&&c[n]===c[o]&&c[++n]===c[o+1]){o+=2,n++;do;while(c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&h>o);if(r=ut-(h-o),o=h-ut,r>a){if(t.match_start=e,a=r,r>=s)break;d=c[o+a-1],p=c[o+a]}}while((e=f[e&l])>u&&0!==--i);return a<=t.lookahead?a:t.lookahead}function h(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-ct)){S.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,n=t.hash_size,e=n;do r=t.head[--e],t.head[e]=r>=a?r-a:0;while(--n);n=a,e=n;do r=t.prev[--e],t.prev[e]=r>=a?r-a:0;while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=l(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=st)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+st-1])&t.hash_mask,t.prev[o&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=o,o++,t.insert--,!(t.lookahead+t.insert<st)););}while(t.lookahead<ct&&0!==t.strm.avail_in)}function d(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(h(t),0===t.lookahead&&e===M)return $t;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,s(t,!1),0===t.strm.avail_out))return $t;if(t.strstart-t.block_start>=t.w_size-ct&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.strstart>t.block_start&&(s(t,!1),0===t.strm.avail_out)?$t:$t}function p(t,e){for(var n,r;;){if(t.lookahead<ct){if(h(t),t.lookahead<ct&&e===M)return $t;if(0===t.lookahead)break}if(n=0,t.lookahead>=st&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-ct&&(t.match_length=f(t,n)),t.match_length>=st)if(r=T._tr_tally(t,t.strstart-t.match_start,t.match_length-st),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=st){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=t.strstart<st-1?t.strstart:st-1,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function m(t,e){for(var n,r,i;;){if(t.lookahead<ct){if(h(t),t.lookahead<ct&&e===M)return $t;if(0===t.lookahead)break}if(n=0,t.lookahead>=st&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=st-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-ct&&(t.match_length=f(t,n),t.match_length<=5&&(t.strategy===q||t.match_length===st&&t.strstart-t.match_start>4096)&&(t.match_length=st-1)),t.prev_length>=st&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-st,r=T._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-st),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(0!==--t.prev_length);if(t.match_available=0,t.match_length=st-1,t.strstart++,r&&(s(t,!1),0===t.strm.avail_out))return $t}else if(t.match_available){if(r=T._tr_tally(t,0,t.window[t.strstart-1]),r&&s(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return $t}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=T._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<st-1?t.strstart:st-1,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function v(t,e){for(var n,r,i,o,a=t.window;;){if(t.lookahead<=ut){if(h(t),t.lookahead<=ut&&e===M)return $t;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=st&&t.strstart>0&&(i=t.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=t.strstart+ut;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&o>i);t.match_length=ut-(o-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=st?(n=T._tr_tally(t,1,t.match_length-st),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function g(t,e){for(var n;;){if(0===t.lookahead&&(h(t),0===t.lookahead)){if(e===M)return $t;break}if(t.match_length=0,n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function $(t){t.window_size=2*t.w_size,o(t.head),t.max_lazy_match=A[t.level].max_lazy,t.good_match=A[t.level].good_length,t.nice_match=A[t.level].nice_length,t.max_chain_length=A[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=st-1,t.match_available=0,t.ins_h=0}function y(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=G,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new S.Buf16(2*ot),this.dyn_dtree=new S.Buf16(2*(2*rt+1)),this.bl_tree=new S.Buf16(2*(2*it+1)),o(this.dyn_ltree),o(this.dyn_dtree),o(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new S.Buf16(at+1),this.heap=new S.Buf16(2*nt+1),o(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new S.Buf16(2*nt+1),o(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function b(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Z,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ft:vt,t.adler=2===e.wrap?0:1,e.last_flush=M,T._tr_init(e),R):r(t,B)}function w(t){var e=b(t);return e===R&&$(t.state),e}function _(t,e){return t&&t.state?2!==t.state.wrap?B:(t.state.gzhead=e,R):B}function x(t,e,n,i,o,a){if(!t)return B;var s=1;if(e===V&&(e=6),0>i?(s=0,i=-i):i>15&&(s=2,i-=16),1>o||o>K||n!==G||8>i||i>15||0>e||e>9||0>a||a>X)return r(t,B);8===i&&(i=9);var u=new y;return t.state=u,u.strm=t,u.wrap=s,u.gzhead=null,u.w_bits=i,u.w_size=1<<u.w_bits,u.w_mask=u.w_size-1,u.hash_bits=o+7,u.hash_size=1<<u.hash_bits,u.hash_mask=u.hash_size-1,u.hash_shift=~~((u.hash_bits+st-1)/st),u.window=new S.Buf8(2*u.w_size),u.head=new S.Buf16(u.hash_size),u.prev=new S.Buf16(u.w_size),u.lit_bufsize=1<<o+6,u.pending_buf_size=4*u.lit_bufsize,u.pending_buf=new S.Buf8(u.pending_buf_size),u.d_buf=u.lit_bufsize>>1,u.l_buf=3*u.lit_bufsize,u.level=e,u.strategy=a,u.method=n,w(t)}function C(t,e){return x(t,e,G,J,Q,Y)}function E(t,e){var n,s,l,f;if(!t||!t.state||e>P||0>e)return t?r(t,B):B;if(s=t.state,!t.output||!t.input&&0!==t.avail_in||s.status===gt&&e!==N)return r(t,0===t.avail_out?U:B);if(s.strm=t,n=s.last_flush,s.last_flush=e,s.status===ft)if(2===s.wrap)t.adler=0,u(s,31),u(s,139),u(s,8),s.gzhead?(u(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),u(s,255&s.gzhead.time),u(s,s.gzhead.time>>8&255),u(s,s.gzhead.time>>16&255),u(s,s.gzhead.time>>24&255),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(u(s,255&s.gzhead.extra.length),u(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(t.adler=I(t.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=ht):(u(s,0),u(s,0),u(s,0),u(s,0),u(s,0),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,_t),s.status=vt);else{var h=G+(s.w_bits-8<<4)<<8,d=-1;d=s.strategy>=H||s.level<2?0:s.level<6?1:6===s.level?2:3,h|=d<<6,0!==s.strstart&&(h|=lt),h+=31-h%31,s.status=vt,c(s,h),0!==s.strstart&&(c(s,t.adler>>>16),c(s,65535&t.adler)),t.adler=1}if(s.status===ht)if(s.gzhead.extra){for(l=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending!==s.pending_buf_size));)u(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=dt)}else s.status=dt;if(s.status===dt)if(s.gzhead.name){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,u(s,f)}while(0!==f);s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.gzindex=0,s.status=pt)}else s.status=pt;if(s.status===pt)if(s.gzhead.comment){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,u(s,f)}while(0!==f);s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.status=mt)}else s.status=mt;if(s.status===mt&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&a(t),s.pending+2<=s.pending_buf_size&&(u(s,255&t.adler),u(s,t.adler>>8&255),t.adler=0,s.status=vt)):s.status=vt),0!==s.pending){if(a(t),0===t.avail_out)return s.last_flush=-1,R}else if(0===t.avail_in&&i(e)<=i(n)&&e!==N)return r(t,U);if(s.status===gt&&0!==t.avail_in)return r(t,U);if(0!==t.avail_in||0!==s.lookahead||e!==M&&s.status!==gt){var p=s.strategy===H?g(s,e):s.strategy===W?v(s,e):A[s.level].func(s,e);if((p===bt||p===wt)&&(s.status=gt),p===$t||p===bt)return 0===t.avail_out&&(s.last_flush=-1),R;if(p===yt&&(e===D?T._tr_align(s):e!==P&&(T._tr_stored_block(s,0,0,!1),e===j&&(o(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),a(t),0===t.avail_out))return s.last_flush=-1,R}return e!==N?R:s.wrap<=0?F:(2===s.wrap?(u(s,255&t.adler),u(s,t.adler>>8&255),u(s,t.adler>>16&255),u(s,t.adler>>24&255),u(s,255&t.total_in),u(s,t.total_in>>8&255),u(s,t.total_in>>16&255),u(s,t.total_in>>24&255)):(c(s,t.adler>>>16),c(s,65535&t.adler)),a(t),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?R:F)}function k(t){var e;return t&&t.state?(e=t.state.status,e!==ft&&e!==ht&&e!==dt&&e!==pt&&e!==mt&&e!==vt&&e!==gt?r(t,B):(t.state=null,e===vt?r(t,L):R)):B}var A,S=t("../utils/common"),T=t("./trees"),O=t("./adler32"),I=t("./crc32"),z=t("./messages"),M=0,D=1,j=3,N=4,P=5,R=0,F=1,B=-2,L=-3,U=-5,V=-1,q=1,H=2,W=3,X=4,Y=0,Z=2,G=8,K=9,J=15,Q=8,tt=29,et=256,nt=et+1+tt,rt=30,it=19,ot=2*nt+1,at=15,st=3,ut=258,ct=ut+st+1,lt=32,ft=42,ht=69,dt=73,pt=91,mt=103,vt=113,gt=666,$t=1,yt=2,bt=3,wt=4,_t=3,xt=function(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i};A=[new xt(0,0,0,0,d),new xt(4,4,8,4,p),new xt(4,5,16,8,p),new xt(4,6,32,32,p),new xt(4,4,16,16,m),new xt(8,16,32,32,m),new xt(8,16,128,128,m),new xt(8,32,128,256,m),new xt(32,128,258,1024,m),new xt(32,258,258,4096,m)],n.deflateInit=C,n.deflateInit2=x,n.deflateReset=w,n.deflateResetKeep=b,n.deflateSetHeader=_,n.deflate=E,n.deflateEnd=k,n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(t,e,n){"use strict";function r(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}e.exports=r},{}],34:[function(t,e,n){"use strict";var r=30,i=12;e.exports=function(t,e){var n,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S;n=t.state,o=t.next_in,A=t.input,a=o+(t.avail_in-5),s=t.next_out,S=t.output,u=s-(e-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,f=n.wsize,h=n.whave,d=n.wnext,p=n.window,m=n.hold,v=n.bits,g=n.lencode,$=n.distcode,y=(1<<n.lenbits)-1,b=(1<<n.distbits)-1;t:do{15>v&&(m+=A[o++]<<v,v+=8,m+=A[o++]<<v,v+=8),w=g[m&y];e:for(;;){if(_=w>>>24,m>>>=_,v-=_,_=w>>>16&255,0===_)S[s++]=65535&w;else{if(!(16&_)){if(0===(64&_)){w=g[(65535&w)+(m&(1<<_)-1)];continue e}if(32&_){n.mode=i;break t}t.msg="invalid literal/length code",n.mode=r;break t}x=65535&w,_&=15,_&&(_>v&&(m+=A[o++]<<v,v+=8),x+=m&(1<<_)-1,m>>>=_,v-=_),15>v&&(m+=A[o++]<<v,v+=8,m+=A[o++]<<v,v+=8),w=$[m&b];n:for(;;){if(_=w>>>24,m>>>=_,v-=_,_=w>>>16&255,!(16&_)){if(0===(64&_)){w=$[(65535&w)+(m&(1<<_)-1)];continue n}t.msg="invalid distance code",n.mode=r;break t}if(C=65535&w,_&=15,_>v&&(m+=A[o++]<<v,v+=8,_>v&&(m+=A[o++]<<v,v+=8)),C+=m&(1<<_)-1,C>l){t.msg="invalid distance too far back",n.mode=r;break t}if(m>>>=_,v-=_,_=s-u,C>_){if(_=C-_,_>h&&n.sane){t.msg="invalid distance too far back",n.mode=r;break t}if(E=0,k=p,0===d){if(E+=f-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}else if(_>d){if(E+=f+d-_,_-=d,x>_){x-=_;do S[s++]=p[E++];while(--_);if(E=0,x>d){_=d,x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}}else if(E+=d-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}for(;x>2;)S[s++]=k[E++],S[s++]=k[E++],S[s++]=k[E++],x-=3;x&&(S[s++]=k[E++],x>1&&(S[s++]=k[E++]))}else{E=s-C;do S[s++]=S[E++],S[s++]=S[E++],S[s++]=S[E++],x-=3;while(x>2);x&&(S[s++]=S[E++],x>1&&(S[s++]=S[E++]))}break}}break}}while(a>o&&c>s);x=v>>3,o-=x,v-=x<<3,m&=(1<<v)-1,t.next_in=o,t.next_out=s,t.avail_in=a>o?5+(a-o):5-(o-a),t.avail_out=c>s?257+(c-s):257-(s-c),n.hold=m,n.bits=v}},{}],35:[function(t,e,n){"use strict";function r(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function i(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new g.Buf16(320),this.work=new g.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function o(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=N,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new g.Buf32(pt),e.distcode=e.distdyn=new g.Buf32(mt),e.sane=1,e.back=-1,S):I}function a(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,o(t)):I}function s(t,e){var n,r;return t&&t.state?(r=t.state,0>e?(n=0,e=-e):(n=(e>>4)+1,48>e&&(e&=15)),e&&(8>e||e>15)?I:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,a(t))):I}function u(t,e){var n,r;return t?(r=new i,t.state=r,r.window=null,n=s(t,e),n!==S&&(t.state=null),n):I}function c(t){return u(t,gt)}function l(t){if($t){var e;for(m=new g.Buf32(512),v=new g.Buf32(32),e=0;144>e;)t.lens[e++]=8;for(;256>e;)t.lens[e++]=9;for(;280>e;)t.lens[e++]=7;for(;288>e;)t.lens[e++]=8;for(w(x,t.lens,0,288,m,0,t.work,{bits:9}),e=0;32>e;)t.lens[e++]=5;w(C,t.lens,0,32,v,0,t.work,{bits:5}),$t=!1}t.lencode=m,t.lenbits=9,t.distcode=v,t.distbits=5}function f(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new g.Buf8(o.wsize)),r>=o.wsize?(g.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),g.arraySet(o.window,e,n-r,i,o.wnext),r-=i,r?(g.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function h(t,e){var n,i,o,a,s,u,c,h,d,p,m,v,pt,mt,vt,gt,$t,yt,bt,wt,_t,xt,Ct,Et,kt=0,At=new g.Buf8(4),St=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return I;n=t.state,n.mode===X&&(n.mode=Y),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,p=u,m=c,xt=S;t:for(;;)switch(n.mode){case N:if(0===n.wrap){n.mode=Y;break}for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(2&n.wrap&&35615===h){n.check=0,At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0),h=0,d=0,n.mode=P;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=ft;break}if((15&h)!==j){t.msg="unknown compression method",n.mode=ft;break}if(h>>>=4,d-=4,_t=(15&h)+8,0===n.wbits)n.wbits=_t;else if(_t>n.wbits){t.msg="invalid window size",n.mode=ft;break}n.dmax=1<<_t,t.adler=n.check=1,n.mode=512&h?H:X,h=0,d=0;break;case P:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(n.flags=h,(255&n.flags)!==j){t.msg="unknown compression method",n.mode=ft;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=ft;break}n.head&&(n.head.text=h>>8&1),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=R;case R:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.head&&(n.head.time=h),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,At[2]=h>>>16&255,At[3]=h>>>24&255,n.check=y(n.check,At,4,0)),h=0,d=0,n.mode=F;case F:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.head&&(n.head.xflags=255&h,n.head.os=h>>8),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=B;case B:if(1024&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.length=h,n.head&&(n.head.extra_len=h),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0}else n.head&&(n.head.extra=null);n.mode=L;case L:if(1024&n.flags&&(v=n.length,v>u&&(v=u),v&&(n.head&&(_t=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),g.arraySet(n.head.extra,i,a,v,_t)),512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,n.length-=v),n.length))break t;n.length=0,n.mode=U;case U:if(2048&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.name+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=V;case V:if(4096&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.comment+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.comment=null);n.mode=q;case q:if(512&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h!==(65535&n.check)){t.msg="header crc mismatch",n.mode=ft;break}h=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=X;break;case H:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}t.adler=n.check=r(h),h=0,d=0,n.mode=W;case W:if(0===n.havedict)return t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,O;t.adler=n.check=1,n.mode=X;case X:if(e===k||e===A)break t;case Y:if(n.last){h>>>=7&d,d-=7&d,n.mode=ut;break}for(;3>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}switch(n.last=1&h,h>>>=1,d-=1,3&h){case 0:n.mode=Z;break;case 1:if(l(n),n.mode=et,e===A){h>>>=2,d-=2;break t}break;case 2:n.mode=J;break;case 3:t.msg="invalid block type",n.mode=ft}h>>>=2,d-=2;break;case Z:for(h>>>=7&d,d-=7&d;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if((65535&h)!==(h>>>16^65535)){t.msg="invalid stored block lengths",n.mode=ft;break}if(n.length=65535&h,h=0,d=0,n.mode=G,e===A)break t;case G:n.mode=K;case K:if(v=n.length){if(v>u&&(v=u),v>c&&(v=c),0===v)break t;g.arraySet(o,i,a,v,s),u-=v,a+=v,c-=v,s+=v,n.length-=v;break}n.mode=X;break;case J:for(;14>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(n.nlen=(31&h)+257,h>>>=5,d-=5,n.ndist=(31&h)+1,h>>>=5,d-=5,n.ncode=(15&h)+4,h>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ft;break}n.have=0,n.mode=Q;case Q:for(;n.have<n.ncode;){for(;3>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.lens[St[n.have++]]=7&h,h>>>=3,d-=3}for(;n.have<19;)n.lens[St[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Ct={bits:n.lenbits},xt=w(_,n.lens,0,19,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid code lengths set",n.mode=ft;break}n.have=0,n.mode=tt;case tt:for(;n.have<n.nlen+n.ndist;){for(;kt=n.lencode[h&(1<<n.lenbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(16>$t)h>>>=vt,d-=vt,n.lens[n.have++]=$t;else{if(16===$t){for(Et=vt+2;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h>>>=vt,d-=vt,0===n.have){t.msg="invalid bit length repeat",n.mode=ft;break}_t=n.lens[n.have-1],v=3+(3&h),h>>>=2,d-=2}else if(17===$t){for(Et=vt+3;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=vt,d-=vt,_t=0,v=3+(7&h),h>>>=3,d-=3}else{for(Et=vt+7;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=vt,d-=vt,_t=0,v=11+(127&h),h>>>=7,d-=7}if(n.have+v>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ft;break}for(;v--;)n.lens[n.have++]=_t}}if(n.mode===ft)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=ft;break}if(n.lenbits=9,Ct={bits:n.lenbits},xt=w(x,n.lens,0,n.nlen,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid literal/lengths set",n.mode=ft;break}if(n.distbits=6,n.distcode=n.distdyn,Ct={bits:n.distbits},xt=w(C,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Ct),n.distbits=Ct.bits,xt){t.msg="invalid distances set",n.mode=ft;break}if(n.mode=et,e===A)break t;case et:n.mode=nt;case nt:if(u>=6&&c>=258){t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,b(t,m),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,n.mode===X&&(n.back=-1);break;
+}for(n.back=0;kt=n.lencode[h&(1<<n.lenbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(gt&&0===(240&gt)){for(yt=vt,bt=gt,wt=$t;kt=n.lencode[wt+((h&(1<<yt+bt)-1)>>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,n.length=$t,0===gt){n.mode=st;break}if(32&gt){n.back=-1,n.mode=X;break}if(64&gt){t.msg="invalid literal/length code",n.mode=ft;break}n.extra=15&gt,n.mode=rt;case rt:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.length+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=it;case it:for(;kt=n.distcode[h&(1<<n.distbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(0===(240&gt)){for(yt=vt,bt=gt,wt=$t;kt=n.distcode[wt+((h&(1<<yt+bt)-1)>>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,64&gt){t.msg="invalid distance code",n.mode=ft;break}n.offset=$t,n.extra=15&gt,n.mode=ot;case ot:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.offset+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ft;break}n.mode=at;case at:if(0===c)break t;if(v=m-c,n.offset>v){if(v=n.offset-v,v>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ft;break}v>n.wnext?(v-=n.wnext,pt=n.wsize-v):pt=n.wnext-v,v>n.length&&(v=n.length),mt=n.window}else mt=o,pt=s-n.offset,v=n.length;v>c&&(v=c),c-=v,n.length-=v;do o[s++]=mt[pt++];while(--v);0===n.length&&(n.mode=nt);break;case st:if(0===c)break t;o[s++]=n.length,c--,n.mode=nt;break;case ut:if(n.wrap){for(;32>d;){if(0===u)break t;u--,h|=i[a++]<<d,d+=8}if(m-=c,t.total_out+=m,n.total+=m,m&&(t.adler=n.check=n.flags?y(n.check,o,m,s-m):$(n.check,o,m,s-m)),m=c,(n.flags?h:r(h))!==n.check){t.msg="incorrect data check",n.mode=ft;break}h=0,d=0}n.mode=ct;case ct:if(n.wrap&&n.flags){for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=ft;break}h=0,d=0}n.mode=lt;case lt:xt=T;break t;case ft:xt=z;break t;case ht:return M;case dt:default:return I}return t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,(n.wsize||m!==t.avail_out&&n.mode<ft&&(n.mode<ut||e!==E))&&f(t,t.output,t.next_out,m-t.avail_out)?(n.mode=ht,M):(p-=t.avail_in,m-=t.avail_out,t.total_in+=p,t.total_out+=m,n.total+=m,n.wrap&&m&&(t.adler=n.check=n.flags?y(n.check,o,m,t.next_out-m):$(n.check,o,m,t.next_out-m)),t.data_type=n.bits+(n.last?64:0)+(n.mode===X?128:0)+(n.mode===et||n.mode===G?256:0),(0===p&&0===m||e===E)&&xt===S&&(xt=D),xt)}function d(t){if(!t||!t.state)return I;var e=t.state;return e.window&&(e.window=null),t.state=null,S}function p(t,e){var n;return t&&t.state?(n=t.state,0===(2&n.wrap)?I:(n.head=e,e.done=!1,S)):I}var m,v,g=t("../utils/common"),$=t("./adler32"),y=t("./crc32"),b=t("./inffast"),w=t("./inftrees"),_=0,x=1,C=2,E=4,k=5,A=6,S=0,T=1,O=2,I=-2,z=-3,M=-4,D=-5,j=8,N=1,P=2,R=3,F=4,B=5,L=6,U=7,V=8,q=9,H=10,W=11,X=12,Y=13,Z=14,G=15,K=16,J=17,Q=18,tt=19,et=20,nt=21,rt=22,it=23,ot=24,at=25,st=26,ut=27,ct=28,lt=29,ft=30,ht=31,dt=32,pt=852,mt=592,vt=15,gt=vt,$t=!0;n.inflateReset=a,n.inflateReset2=s,n.inflateResetKeep=o,n.inflateInit=c,n.inflateInit2=u,n.inflate=h,n.inflateEnd=d,n.inflateGetHeader=p,n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(t,e,n){"use strict";var r=t("../utils/common"),i=15,o=852,a=592,s=0,u=1,c=2,l=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],d=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,n,p,m,v,g,$){var y,b,w,_,x,C,E,k,A,S=$.bits,T=0,O=0,I=0,z=0,M=0,D=0,j=0,N=0,P=0,R=0,F=null,B=0,L=new r.Buf16(i+1),U=new r.Buf16(i+1),V=null,q=0;for(T=0;i>=T;T++)L[T]=0;for(O=0;p>O;O++)L[e[n+O]]++;for(M=S,z=i;z>=1&&0===L[z];z--);if(M>z&&(M=z),0===z)return m[v++]=20971520,m[v++]=20971520,$.bits=1,0;for(I=1;z>I&&0===L[I];I++);for(I>M&&(M=I),N=1,T=1;i>=T;T++)if(N<<=1,N-=L[T],0>N)return-1;if(N>0&&(t===s||1!==z))return-1;for(U[1]=0,T=1;i>T;T++)U[T+1]=U[T]+L[T];for(O=0;p>O;O++)0!==e[n+O]&&(g[U[e[n+O]]++]=O);if(t===s?(F=V=g,C=19):t===u?(F=l,B-=257,V=f,q-=257,C=256):(F=h,V=d,C=-1),R=0,O=0,T=I,x=v,D=M,j=0,w=-1,P=1<<M,_=P-1,t===u&&P>o||t===c&&P>a)return 1;for(var H=0;;){H++,E=T-j,g[O]<C?(k=0,A=g[O]):g[O]>C?(k=V[q+g[O]],A=F[B+g[O]]):(k=96,A=0),y=1<<T-j,b=1<<D,I=b;do b-=y,m[x+(R>>j)+b]=E<<24|k<<16|A|0;while(0!==b);for(y=1<<T-1;R&y;)y>>=1;if(0!==y?(R&=y-1,R+=y):R=0,O++,0===--L[T]){if(T===z)break;T=e[n+g[O]]}if(T>M&&(R&_)!==w){for(0===j&&(j=M),x+=I,D=T-j,N=1<<D;z>D+j&&(N-=L[D+j],!(0>=N));)D++,N<<=1;if(P+=1<<D,t===u&&P>o||t===c&&P>a)return 1;w=R&_,m[w]=M<<24|D<<16|x-v|0}}return 0!==R&&(m[x+R]=T-j<<24|64<<16|0),$.bits=M,0}},{"../utils/common":27}],37:[function(t,e,n){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(t,e,n){"use strict";function r(t){for(var e=t.length;--e>=0;)t[e]=0}function i(t){return 256>t?at[t]:at[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function a(t,e,n){t.bi_valid>X-n?(t.bi_buf|=e<<t.bi_valid&65535,o(t,t.bi_buf),t.bi_buf=e>>X-t.bi_valid,t.bi_valid+=n-X):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function s(t,e,n){a(t,n[2*e],n[2*e+1])}function u(t,e){var n=0;do n|=1&t,t>>>=1,n<<=1;while(--e>0);return n>>>1}function c(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function l(t,e){var n,r,i,o,a,s,u=e.dyn_tree,c=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,h=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(o=0;W>=o;o++)t.bl_count[o]=0;for(u[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;H>n;n++)r=t.heap[n],o=u[2*u[2*r+1]+1]+1,o>p&&(o=p,m++),u[2*r+1]=o,r>c||(t.bl_count[o]++,a=0,r>=d&&(a=h[r-d]),s=u[2*r],t.opt_len+=s*(o+a),f&&(t.static_len+=s*(l[2*r+1]+a)));if(0!==m){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)i=t.heap[--n],i>c||(u[2*i+1]!==o&&(t.opt_len+=(o-u[2*i+1])*u[2*i],u[2*i+1]=o),r--)}}function f(t,e,n){var r,i,o=new Array(W+1),a=0;for(r=1;W>=r;r++)o[r]=a=a+n[r-1]<<1;for(i=0;e>=i;i++){var s=t[2*i+1];0!==s&&(t[2*i]=u(o[s]++,s))}}function h(){var t,e,n,r,i,o=new Array(W+1);for(n=0,r=0;B-1>r;r++)for(ut[r]=n,t=0;t<1<<Q[r];t++)st[n++]=r;for(st[n-1]=r,i=0,r=0;16>r;r++)for(ct[r]=i,t=0;t<1<<tt[r];t++)at[i++]=r;for(i>>=7;V>r;r++)for(ct[r]=i<<7,t=0;t<1<<tt[r]-7;t++)at[256+i++]=r;for(e=0;W>=e;e++)o[e]=0;for(t=0;143>=t;)it[2*t+1]=8,t++,o[8]++;for(;255>=t;)it[2*t+1]=9,t++,o[9]++;for(;279>=t;)it[2*t+1]=7,t++,o[7]++;for(;287>=t;)it[2*t+1]=8,t++,o[8]++;for(f(it,U+1,o),t=0;V>t;t++)ot[2*t+1]=5,ot[2*t]=u(t,5);lt=new dt(it,Q,L+1,U,W),ft=new dt(ot,tt,0,V,W),ht=new dt(new Array(0),et,0,q,Y)}function d(t){var e;for(e=0;U>e;e++)t.dyn_ltree[2*e]=0;for(e=0;V>e;e++)t.dyn_dtree[2*e]=0;for(e=0;q>e;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*Z]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function p(t){t.bi_valid>8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,n,r){p(t),r&&(o(t,n),o(t,~n)),O.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function v(t,e,n,r){var i=2*e,o=2*n;return t[i]<t[o]||t[i]===t[o]&&r[e]<=r[n]}function g(t,e,n){for(var r=t.heap[n],i=n<<1;i<=t.heap_len&&(i<t.heap_len&&v(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!v(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r}function $(t,e,n){var r,o,u,c,l=0;if(0!==t.last_lit)do r=t.pending_buf[t.d_buf+2*l]<<8|t.pending_buf[t.d_buf+2*l+1],o=t.pending_buf[t.l_buf+l],l++,0===r?s(t,o,e):(u=st[o],s(t,u+L+1,e),c=Q[u],0!==c&&(o-=ut[u],a(t,o,c)),r--,u=i(r),s(t,u,n),c=tt[u],0!==c&&(r-=ct[u],a(t,r,c)));while(l<t.last_lit);s(t,Z,e)}function y(t,e){var n,r,i,o=e.dyn_tree,a=e.stat_desc.static_tree,s=e.stat_desc.has_stree,u=e.stat_desc.elems,c=-1;for(t.heap_len=0,t.heap_max=H,n=0;u>n;n++)0!==o[2*n]?(t.heap[++t.heap_len]=c=n,t.depth[n]=0):o[2*n+1]=0;for(;t.heap_len<2;)i=t.heap[++t.heap_len]=2>c?++c:0,o[2*i]=1,t.depth[i]=0,t.opt_len--,s&&(t.static_len-=a[2*i+1]);for(e.max_code=c,n=t.heap_len>>1;n>=1;n--)g(t,o,n);i=u;do n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],g(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,g(t,o,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],l(t,e),f(o,c,t.bl_count)}function b(t,e,n){var r,i,o=-1,a=e[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),e[2*(n+1)+1]=65535,r=0;n>=r;r++)i=a,a=e[2*(r+1)+1],++s<u&&i===a||(c>s?t.bl_tree[2*i]+=s:0!==i?(i!==o&&t.bl_tree[2*i]++,t.bl_tree[2*G]++):10>=s?t.bl_tree[2*K]++:t.bl_tree[2*J]++,s=0,o=i,0===a?(u=138,c=3):i===a?(u=6,c=3):(u=7,c=4))}function w(t,e,n){var r,i,o=-1,u=e[1],c=0,l=7,f=4;for(0===u&&(l=138,f=3),r=0;n>=r;r++)if(i=u,u=e[2*(r+1)+1],!(++c<l&&i===u)){if(f>c){do s(t,i,t.bl_tree);while(0!==--c)}else 0!==i?(i!==o&&(s(t,i,t.bl_tree),c--),s(t,G,t.bl_tree),a(t,c-3,2)):10>=c?(s(t,K,t.bl_tree),a(t,c-3,3)):(s(t,J,t.bl_tree),a(t,c-11,7));c=0,o=i,0===u?(l=138,f=3):i===u?(l=6,f=3):(l=7,f=4)}}function _(t){var e;for(b(t,t.dyn_ltree,t.l_desc.max_code),b(t,t.dyn_dtree,t.d_desc.max_code),y(t,t.bl_desc),e=q-1;e>=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function x(t,e,n,r){var i;for(a(t,e-257,5),a(t,n-1,5),a(t,r-4,4),i=0;r>i;i++)a(t,t.bl_tree[2*nt[i]+1],3);w(t,t.dyn_ltree,e-1),w(t,t.dyn_dtree,n-1)}function C(t){var e,n=4093624447;for(e=0;31>=e;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return z;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return M;for(e=32;L>e;e++)if(0!==t.dyn_ltree[2*e])return M;return z}function E(t){mt||(h(),mt=!0),t.l_desc=new pt(t.dyn_ltree,lt),t.d_desc=new pt(t.dyn_dtree,ft),t.bl_desc=new pt(t.bl_tree,ht),t.bi_buf=0,t.bi_valid=0,d(t)}function k(t,e,n,r){a(t,(j<<1)+(r?1:0),3),m(t,e,n,!0)}function A(t){a(t,N<<1,3),s(t,Z,it),c(t)}function S(t,e,n,r){var i,o,s=0;t.level>0?(t.strm.data_type===D&&(t.strm.data_type=C(t)),y(t,t.l_desc),y(t,t.d_desc),s=_(t),i=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,i>=o&&(i=o)):i=o=n+5,i>=n+4&&-1!==e?k(t,e,n,r):t.strategy===I||o===i?(a(t,(N<<1)+(r?1:0),3),$(t,it,ot)):(a(t,(P<<1)+(r?1:0),3),x(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),$(t,t.dyn_ltree,t.dyn_dtree)),d(t),r&&p(t)}function T(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(st[n]+L+1)]++,t.dyn_dtree[2*i(e)]++),t.last_lit===t.lit_bufsize-1}var O=t("../utils/common"),I=4,z=0,M=1,D=2,j=0,N=1,P=2,R=3,F=258,B=29,L=256,U=L+1+B,V=30,q=19,H=2*U+1,W=15,X=16,Y=7,Z=256,G=16,K=17,J=18,Q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],tt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,it=new Array(2*(U+2));r(it);var ot=new Array(2*V);r(ot);var at=new Array(rt);r(at);var st=new Array(F-R+1);r(st);var ut=new Array(B);r(ut);var ct=new Array(V);r(ct);var lt,ft,ht,dt=function(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length},pt=function(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e},mt=!1;n._tr_init=E,n._tr_stored_block=k,n._tr_flush_block=S,n._tr_tally=T,n._tr_align=A},{"../utils/common":27}],39:[function(t,e,n){"use strict";function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=r},{}]},{},[9])(9)}),function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,n){return function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g={}.hasOwnProperty,$=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},y=[].slice;null==this.Tether&&(this.Tether={modules:[]}),l=function(t){var e,n,r,i,o;if(n=getComputedStyle(t).position,"fixed"===n)return t;for(r=void 0,e=t;e=e.parentNode;){try{i=getComputedStyle(e)}catch(a){}if(null==i)return e;if(/(auto|scroll)/.test(i.overflow+i["overflow-y"]+i["overflow-x"])&&("absolute"!==n||"relative"===(o=i.position)||"absolute"===o||"fixed"===o))return e}return document.body},p=function(){var t;return t=0,function(){return t++}}(),v={},u=function(t){var e,r,o,a,s;if(o=t._tetherZeroElement,null==o&&(o=t.createElement("div"),o.setAttribute("data-tether-id",p()),i(o.style,{top:0,left:0,position:"absolute"}),t.body.appendChild(o),t._tetherZeroElement=o),e=o.getAttribute("data-tether-id"),null==v[e]){v[e]={},s=o.getBoundingClientRect();for(r in s)a=s[r],v[e][r]=a;n(function(){return v[e]=void 0})}return v[e]},h=null,a=function(t){var e,n,r,i,o,a,s;t===document?(n=document,t=document.documentElement):n=t.ownerDocument,r=n.documentElement,e={},s=t.getBoundingClientRect();for(i in s)a=s[i],e[i]=a;return o=u(n),e.top-=o.top,e.left-=o.left,null==e.width&&(e.width=document.body.scrollWidth-e.left-e.right),null==e.height&&(e.height=document.body.scrollHeight-e.top-e.bottom),e.top=e.top-r.clientTop,e.left=e.left-r.clientLeft,e.right=n.body.clientWidth-e.width-e.left,e.bottom=n.body.clientHeight-e.height-e.top,e},s=function(t){return t.offsetParent||document.documentElement},c=function(){var t,e,n,r,o;return t=document.createElement("div"),t.style.width="100%",t.style.height="200px",e=document.createElement("div"),i(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e),r=t.offsetWidth,e.style.overflow="scroll",o=t.offsetWidth,r===o&&(o=e.clientWidth),document.body.removeChild(e),n=r-o,{width:n,height:n}},i=function(t){var e,n,r,i,o,a,s;for(null==t&&(t={}),e=[],Array.prototype.push.apply(e,arguments),s=e.slice(1),o=0,a=s.length;a>o;o++)if(r=s[o])for(n in r)g.call(r,n)&&(i=r[n],t[n]=i);return t},d=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.remove(n));return a}return t.className=t.className.replace(new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi")," ")},e=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.add(n));return a}return d(t,e),t.className+=" "+e},f=function(t,e){return null!=t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},m=function(t,n,r){var i,o,a,s,u,c;for(o=0,s=r.length;s>o;o++)i=r[o],$.call(n,i)<0&&f(t,i)&&d(t,i);for(c=[],a=0,u=n.length;u>a;a++)i=n[a],f(t,i)?c.push(void 0):c.push(e(t,i));return c},r=[],n=function(t){return r.push(t)},o=function(){var t,e;for(e=[];t=r.pop();)e.push(t());return e},t=function(){function t(){}return t.prototype.on=function(t,e,n,r){var i;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(i=this.bindings)[t]&&(i[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},t.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},t.prototype.off=function(t,e){var n,r,i;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,i=[];n<this.bindings[t].length;)this.bindings[t][n].handler===e?i.push(this.bindings[t].splice(n,1)):i.push(n++);return i}},t.prototype.trigger=function(){var t,e,n,r,i,o,a,s,u;if(n=arguments[0],t=2<=arguments.length?y.call(arguments,1):[],null!=(a=this.bindings)?a[n]:void 0){for(i=0,u=[];i<this.bindings[n].length;)s=this.bindings[n][i],r=s.handler,e=s.ctx,o=s.once,r.apply(null!=e?e:this,t),o?u.push(this.bindings[n].splice(i,1)):u.push(i++);return u}},t}(),this.Tether.Utils={getScrollParent:l,getBounds:a,getOffsetParent:s,extend:i,addClass:e,removeClass:d,hasClass:f,updateClasses:m,defer:n,flush:o,uniqueId:p,Evented:t,getScrollBarSize:c}}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=[].slice,O=function(t,e){return function(){return t.apply(e,arguments)}};if(null==this.Tether)throw new Error("You must include the utils.js file before tether.js");r=this.Tether,S=r.Utils,m=S.getScrollParent,v=S.getSize,d=S.getOuterSize,f=S.getBounds,h=S.getOffsetParent,c=S.extend,i=S.addClass,_=S.removeClass,E=S.updateClasses,u=S.defer,l=S.flush,p=S.getScrollBarSize,k=function(t,e,n){return null==n&&(n=1),t+n>=e&&e>=t-n},C=function(){var t,e,n,r,i;for(t=document.createElement("div"),i=["transform","webkitTransform","OTransform","MozTransform","msTransform"],n=0,r=i.length;r>n;n++)if(e=i[n],void 0!==t.style[e])return e}(),x=[],w=function(){var t,e,n;for(e=0,n=x.length;n>e;e++)t=x[e],t.position(!1);return l()},g=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},function(){var t,e,n,r,i,o,a,s,u;for(e=null,n=null,r=null,i=function(){if(null!=n&&n>16)return n=Math.min(n-16,250),void(r=setTimeout(i,250));if(!(null!=e&&g()-e<10))return null!=r&&(clearTimeout(r),r=null),e=g(),w(),n=g()-e},s=["resize","scroll","touchmove"],u=[],o=0,a=s.length;a>o;o++)t=s[o],u.push(window.addEventListener(t,i));return u}(),t={center:"center",left:"right",right:"left"},e={middle:"middle",top:"bottom",bottom:"top"},n={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},s=function(n,r){var i,o;return i=n.left,o=n.top,"auto"===i&&(i=t[r.left]),"auto"===o&&(o=e[r.top]),{left:i,top:o}},a=function(t){var e,r;return{left:null!=(e=n[t.left])?e:t.left,top:null!=(r=n[t.top])?r:t.top}},o=function(){var t,e,n,r,i,o,a;for(e=1<=arguments.length?T.call(arguments,0):[],n={top:0,left:0},i=0,o=e.length;o>i;i++)a=e[i],r=a.top,t=a.left,"string"==typeof r&&(r=parseFloat(r,10)),"string"==typeof t&&(t=parseFloat(t,10)),n.top+=r,n.left+=t;return n},$=function(t,e){return"string"==typeof t.left&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top,10)/100*e.height),t},y=b=function(t){var e,n,r;return r=t.split(" "),n=r[0],e=r[1],{top:n,left:e}},A=function(){function t(t){this.position=O(this.position,this);var e,n,i,o,a;for(x.push(this),this.history=[],this.setOptions(t,!1),o=r.modules,n=0,i=o.length;i>n;n++)e=o[n],null!=(a=e.initialize)&&a.call(this);this.position()}return t.modules=[],t.prototype.getClass=function(t){var e,n;return(null!=(e=this.options.classes)?e[t]:void 0)?this.options.classes[t]:(null!=(n=this.options.classes)?n[t]:void 0)!==!1?this.options.classPrefix?""+this.options.classPrefix+"-"+t:t:""},t.prototype.setOptions=function(t,e){var n,r,o,a,s,u;for(this.options=t,null==e&&(e=!0),n={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"},this.options=c(n,this.options),s=this.options,this.element=s.element,this.target=s.target,this.targetModifier=s.targetModifier,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),u=["element","target"],o=0,a=u.length;a>o;o++){if(r=u[o],null==this[r])throw new Error("Tether Error: Both element and target must be defined");null!=this[r].jquery?this[r]=this[r][0]:"string"==typeof this[r]&&(this[r]=document.querySelector(this[r]))}if(i(this.element,this.getClass("element")),i(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");return this.targetAttachment=y(this.options.targetAttachment),this.attachment=y(this.options.attachment),this.offset=b(this.options.offset),this.targetOffset=b(this.options.targetOffset),null!=this.scrollParent&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParent=this.target:this.scrollParent=m(this.target),this.options.enabled!==!1?this.enable(e):void 0},t.prototype.getTargetBounds=function(){var t,e,n,r,i,o,a,s,u;if(null==this.targetModifier)return f(this.target);switch(this.targetModifier){case"visible":return this.target===document.body?{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth}:(t=f(this.target),i={height:t.height,width:t.width,top:t.top,left:t.left},i.height=Math.min(i.height,t.height-(pageYOffset-t.top)),i.height=Math.min(i.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),i.height=Math.min(innerHeight,i.height),i.height-=2,i.width=Math.min(i.width,t.width-(pageXOffset-t.left)),i.width=Math.min(i.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),i.width=Math.min(innerWidth,i.width),i.width-=2,i.top<pageYOffset&&(i.top=pageYOffset),i.left<pageXOffset&&(i.left=pageXOffset),i);case"scroll-handle":return u=this.target,u===document.body?(u=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=f(u),s=getComputedStyle(u),n=u.scrollWidth>u.clientWidth||"scroll"===[s.overflow,s.overflowX]||this.target!==document.body,o=0,n&&(o=15),r=t.height-parseFloat(s.borderTopWidth)-parseFloat(s.borderBottomWidth)-o,i={width:15,height:.975*r*(r/u.scrollHeight),left:t.left+t.width-parseFloat(s.borderLeftWidth)-15},e=0,408>r&&this.target===document.body&&(e=-11e-5*Math.pow(r,2)-.00727*r+22.58),this.target!==document.body&&(i.height=Math.max(i.height,24)),a=this.target.scrollTop/(u.scrollHeight-r),i.top=a*(r-i.height-e)+t.top+parseFloat(s.borderTopWidth),this.target===document.body&&(i.height=Math.max(i.height,24)),i}},t.prototype.clearCache=function(){return this._cache={}},t.prototype.cache=function(t,e){return null==this._cache&&(this._cache={}),null==this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]},t.prototype.enable=function(t){return null==t&&(t=!0),i(this.target,this.getClass("enabled")),i(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParent!==document&&this.scrollParent.addEventListener("scroll",this.position),t?this.position():void 0},t.prototype.disable=function(){return _(this.target,this.getClass("enabled")),_(this.element,this.getClass("enabled")),this.enabled=!1,null!=this.scrollParent?this.scrollParent.removeEventListener("scroll",this.position):void 0},t.prototype.destroy=function(){var t,e,n,r,i;for(this.disable(),i=[],t=n=0,r=x.length;r>n;t=++n){if(e=x[t],e===this){x.splice(t,1);break}i.push(void 0)}return i},t.prototype.updateAttachClasses=function(t,e){var n,r,i,o,a,s,c,l,f,h=this;for(null==t&&(t=this.attachment),null==e&&(e=this.targetAttachment),o=["left","top","bottom","right","middle","center"],(null!=(f=this._addAttachClasses)?f.length:void 0)&&this._addAttachClasses.splice(0,this._addAttachClasses.length),n=null!=this._addAttachClasses?this._addAttachClasses:this._addAttachClasses=[],t.top&&n.push(""+this.getClass("element-attached")+"-"+t.top),t.left&&n.push(""+this.getClass("element-attached")+"-"+t.left),e.top&&n.push(""+this.getClass("target-attached")+"-"+e.top),e.left&&n.push(""+this.getClass("target-attached")+"-"+e.left),r=[],a=0,c=o.length;c>a;a++)i=o[a],r.push(""+this.getClass("element-attached")+"-"+i);for(s=0,l=o.length;l>s;s++)i=o[s],r.push(""+this.getClass("target-attached")+"-"+i);return u(function(){return null!=h._addAttachClasses?(E(h.element,h._addAttachClasses,r),E(h.target,h._addAttachClasses,r),h._addAttachClasses=void 0):void 0})},t.prototype.position=function(t){var e,n,i,u,c,d,m,v,g,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,P,R,F,B,L,U,V,q,H=this;if(null==t&&(t=!0),this.enabled){for(this.clearCache(),T=s(this.targetAttachment,this.attachment),this.updateAttachClasses(this.attachment,T),e=this.cache("element-bounds",function(){return f(H.element)}),D=e.width,i=e.height,0===D&&0===i&&null!=this.lastSize?(F=this.lastSize,D=F.width,i=F.height):this.lastSize={width:D,height:i},z=I=this.cache("target-bounds",function(){return H.getTargetBounds()}),g=$(a(this.attachment),{width:D,height:i}),O=$(a(T),z),c=$(this.offset,{width:D,height:i}),d=$(this.targetOffset,z),g=o(g,c),O=o(O,d),u=I.left+O.left-g.left,M=I.top+O.top-g.top,B=r.modules,j=0,P=B.length;P>j;j++)if(m=B[j],C=m.position.call(this,{left:u,top:M,targetAttachment:T,targetPos:I,attachment:this.attachment,elementPos:e,offset:g,targetOffset:O,manualOffset:c,manualTargetOffset:d,scrollbarSize:A}),null!=C&&"object"==typeof C){if(C===!1)return!1;M=C.top,u=C.left}if(v={page:{top:M,left:u},viewport:{top:M-pageYOffset,bottom:pageYOffset-M-i+innerHeight,left:u-pageXOffset,right:pageXOffset-u-D+innerWidth}},document.body.scrollWidth>window.innerWidth&&(A=this.cache("scrollbar-size",p),v.viewport.bottom-=A.height),document.body.scrollHeight>window.innerHeight&&(A=this.cache("scrollbar-size",p),v.viewport.right-=A.width),(""!==(L=document.body.style.position)&&"static"!==L||""!==(U=document.body.parentElement.style.position)&&"static"!==U)&&(v.page.bottom=document.body.scrollHeight-M-i,v.page.right=document.body.scrollWidth-u-D),(null!=(V=this.options.optimizations)?V.moveElement:void 0)!==!1&&null==this.targetModifier){for(b=this.cache("target-offsetparent",function(){return h(H.target)}),x=this.cache("target-offsetparent-bounds",function(){return f(b)}),_=getComputedStyle(b),n=getComputedStyle(this.element),w=x,y={},q=["Top","Left","Bottom","Right"],N=0,R=q.length;R>N;N++)S=q[N],y[S.toLowerCase()]=parseFloat(_["border"+S+"Width"]);x.right=document.body.scrollWidth-x.left-w.width+y.right,x.bottom=document.body.scrollHeight-x.top-w.height+y.bottom,v.page.top>=x.top+y.top&&v.page.bottom>=x.bottom&&v.page.left>=x.left+y.left&&v.page.right>=x.right&&(k=b.scrollTop,E=b.scrollLeft,v.offset={top:v.page.top-x.top+k-y.top,left:v.page.left-x.left+E-y.left})}return this.move(v),this.history.unshift(v),this.history.length>3&&this.history.pop(),t&&l(),!0}},t.prototype.move=function(t){var e,n,r,i,o,a,s,l,f,d,p,m,v,g,$,y,b,w=this;if(null!=this.element.parentNode){l={};for(d in t){l[d]={};for(i in t[d]){for(r=!1,y=this.history,g=0,$=y.length;$>g;g++)if(s=y[g],!k(null!=(b=s[d])?b[i]:void 0,t[d][i])){r=!0;break}r||(l[d][i]=!0)}}e={top:"",left:"",right:"",bottom:""},f=function(t,n){var r,i,o;return(null!=(o=w.options.optimizations)?o.gpu:void 0)===!1?(t.top?e.top=""+n.top+"px":e.bottom=""+n.bottom+"px",t.left?e.left=""+n.left+"px":e.right=""+n.right+"px"):(t.top?(e.top=0,i=n.top):(e.bottom=0,i=-n.bottom),t.left?(e.left=0,r=n.left):(e.right=0,r=-n.right),e[C]="translateX("+Math.round(r)+"px) translateY("+Math.round(i)+"px)","msTransform"!==C?e[C]+=" translateZ(0)":void 0)},o=!1,(l.page.top||l.page.bottom)&&(l.page.left||l.page.right)?(e.position="absolute",f(l.page,t.page)):(l.viewport.top||l.viewport.bottom)&&(l.viewport.left||l.viewport.right)?(e.position="fixed",f(l.viewport,t.viewport)):null!=l.offset&&l.offset.top&&l.offset.left?(e.position="absolute",a=this.cache("target-offsetparent",function(){return h(w.target)}),h(this.element)!==a&&u(function(){return w.element.parentNode.removeChild(w.element),a.appendChild(w.element)}),f(l.offset,t.offset),o=!0):(e.position="absolute",f({top:!0,left:!0},t.page)),o||"BODY"===this.element.parentNode.tagName||(this.element.parentNode.removeChild(this.element),document.body.appendChild(this.element)),v={},m=!1;for(i in e)p=e[i],n=this.element.style[i],""===n||""===p||"top"!==i&&"left"!==i&&"bottom"!==i&&"right"!==i||(n=parseFloat(n),p=parseFloat(p)),n!==p&&(m=!0,v[i]=e[i]);return m?u(function(){return c(w.element.style,v)}):void 0}},t}(),r.position=w,this.Tether=c(A,r)}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};c=this.Tether.Utils,a=c.getOuterSize,o=c.getBounds,s=c.getSize,r=c.extend,u=c.updateClasses,n=c.defer,e={left:"right",right:"left",top:"bottom",bottom:"top",middle:"middle"},t=["left","top","right","bottom"],i=function(e,n){var r,i,a,s,u,c,l;if("scrollParent"===n?n=e.scrollParent:"window"===n&&(n=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),n===document&&(n=n.documentElement),null!=n.nodeType)for(i=s=o(n),u=getComputedStyle(n),n=[i.left,i.top,s.width+i.left,s.height+i.top],r=c=0,l=t.length;l>c;r=++c)a=t[r],a=a[0].toUpperCase()+a.substr(1),"Top"===a||"Left"===a?n[r]+=parseFloat(u["border"+a+"Width"]):n[r]-=parseFloat(u["border"+a+"Width"]);return n},this.Tether.modules.push({position:function(e){var a,s,c,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,P,R,F,B,L,U,V,q,H,W,X,Y,Z,G,K,J,Q,tt,et=this;if(M=e.top,$=e.left,S=e.targetAttachment,!this.options.constraints)return!0;for(E=function(e){var n,r,i,o;for(et.removeClass(e),o=[],r=0,i=t.length;i>r;r++)n=t[r],o.push(et.removeClass(""+e+"-"+n));return o},X=this.cache("element-bounds",function(){return o(et.element)}),g=X.height,D=X.width,0===D&&0===g&&null!=this.lastSize&&(Y=this.lastSize,D=Y.width,g=Y.height),O=this.cache("target-bounds",function(){return et.getTargetBounds()}),T=O.height,I=O.width,A={},v={},s=[this.getClass("pinned"),this.getClass("out-of-bounds")],Z=this.options.constraints,j=0,F=Z.length;F>j;j++)m=Z[j],m.outOfBoundsClass&&s.push(m.outOfBoundsClass),m.pinnedClass&&s.push(m.pinnedClass);for(N=0,B=s.length;B>N;N++)for(p=s[N],G=["left","top","right","bottom"],P=0,L=G.length;L>P;P++)k=G[P],s.push(""+p+"-"+k);for(a=[],A=r({},S),v=r({},this.attachment),K=this.options.constraints,R=0,U=K.length;U>R;R++){if(m=K[R],z=m.to,c=m.attachment,_=m.pin,null==c&&(c=""),l.call(c," ")>=0?(J=c.split(" "),d=J[0],h=J[1]):h=d=c,f=i(this,z),("target"===d||"both"===d)&&(M<f[1]&&"top"===A.top&&(M+=T,A.top="bottom"),M+g>f[3]&&"bottom"===A.top&&(M-=T,A.top="top")),"together"===d&&(M<f[1]&&"top"===A.top&&("bottom"===v.top?(M+=T,A.top="bottom",M+=g,v.top="top"):"top"===v.top&&(M+=T,A.top="bottom",M-=g,v.top="bottom")),M+g>f[3]&&"bottom"===A.top&&("top"===v.top?(M-=T,A.top="top",M-=g,v.top="bottom"):"bottom"===v.top&&(M-=T,A.top="top",M+=g,v.top="top")),"middle"===A.top&&(M+g>f[3]&&"top"===v.top?(M-=g,v.top="bottom"):M<f[1]&&"bottom"===v.top&&(M+=g,v.top="top"))),("target"===h||"both"===h)&&($<f[0]&&"left"===A.left&&($+=I,A.left="right"),$+D>f[2]&&"right"===A.left&&($-=I,A.left="left")),"together"===h&&($<f[0]&&"left"===A.left?"right"===v.left?($+=I,A.left="right",$+=D,v.left="left"):"left"===v.left&&($+=I,A.left="right",$-=D,v.left="right"):$+D>f[2]&&"right"===A.left?"left"===v.left?($-=I,A.left="left",$-=D,v.left="right"):"right"===v.left&&($-=I,A.left="left",$+=D,v.left="left"):"center"===A.left&&($+D>f[2]&&"left"===v.left?($-=D,v.left="right"):$<f[0]&&"right"===v.left&&($+=D,v.left="left"))),("element"===d||"both"===d)&&(M<f[1]&&"bottom"===v.top&&(M+=g,v.top="top"),M+g>f[3]&&"top"===v.top&&(M-=g,v.top="bottom")),("element"===h||"both"===h)&&($<f[0]&&"right"===v.left&&($+=D,v.left="left"),$+D>f[2]&&"left"===v.left&&($-=D,v.left="right")),"string"==typeof _?_=function(){var t,e,n,r;for(n=_.split(","),r=[],e=0,t=n.length;t>e;e++)w=n[e],r.push(w.trim());return r}():_===!0&&(_=["top","left","right","bottom"]),_||(_=[]),x=[],y=[],M<f[1]&&(l.call(_,"top")>=0?(M=f[1],x.push("top")):y.push("top")),M+g>f[3]&&(l.call(_,"bottom")>=0?(M=f[3]-g,x.push("bottom")):y.push("bottom")),$<f[0]&&(l.call(_,"left")>=0?($=f[0],x.push("left")):y.push("left")),$+D>f[2]&&(l.call(_,"right")>=0?($=f[2]-D,
+x.push("right")):y.push("right")),x.length)for(C=null!=(Q=this.options.pinnedClass)?Q:this.getClass("pinned"),a.push(C),H=0,V=x.length;V>H;H++)k=x[H],a.push(""+C+"-"+k);if(y.length)for(b=null!=(tt=this.options.outOfBoundsClass)?tt:this.getClass("out-of-bounds"),a.push(b),W=0,q=y.length;q>W;W++)k=y[W],a.push(""+b+"-"+k);(l.call(x,"left")>=0||l.call(x,"right")>=0)&&(v.left=A.left=!1),(l.call(x,"top")>=0||l.call(x,"bottom")>=0)&&(v.top=A.top=!1),(A.top!==S.top||A.left!==S.left||v.top!==this.attachment.top||v.left!==this.attachment.left)&&this.updateAttachClasses(v,A)}return n(function(){return u(et.target,a,s),u(et.element,a,s)}),{top:M,left:$}}})}.call(this),function(){var t,e,n,r;r=this.Tether.Utils,e=r.getBounds,n=r.updateClasses,t=r.defer,this.Tether.modules.push({position:function(r){var i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=this;if(p=r.top,c=r.left,C=this.cache("element-bounds",function(){return e(T.element)}),u=C.height,m=C.width,d=this.getTargetBounds(),s=p+u,l=c+m,i=[],p<=d.bottom&&s>=d.top)for(E=["left","right"],v=0,b=E.length;b>v;v++)f=E[v],((k=d[f])===c||k===l)&&i.push(f);if(c<=d.right&&l>=d.left)for(A=["top","bottom"],g=0,w=A.length;w>g;g++)f=A[g],((S=d[f])===p||S===s)&&i.push(f);for(a=[],o=[],h=["left","top","right","bottom"],a.push(this.getClass("abutted")),$=0,_=h.length;_>$;$++)f=h[$],a.push(""+this.getClass("abutted")+"-"+f);for(i.length&&o.push(this.getClass("abutted")),y=0,x=i.length;x>y;y++)f=i[y],o.push(""+this.getClass("abutted")+"-"+f);return t(function(){return n(T.target,o,a),n(T.element,o,a)}),!0}})}.call(this),function(){this.Tether.modules.push({position:function(t){var e,n,r,i,o,a,s;return a=t.top,e=t.left,this.options.shift?(n=function(t){return"function"==typeof t?t.call(this,{top:a,left:e}):t},r=n(this.options.shift),"string"==typeof r?(r=r.split(" "),r[1]||(r[1]=r[0]),o=r[0],i=r[1],o=parseFloat(o,10),i=parseFloat(i,10)):(s=[r.top,r.left],o=s[0],i=s[1]),a+=o,e+=i,{top:a,left:e}):void 0}})}.call(this),this.Tether}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfillHacks=e()}(this,function(){"use strict";function t(t,o,u,c){if((e.contentHack||e.behaviorHack)&&("content"===u||"behavior"===u)){var l=e.contentHack&&!s&&"content"===u&&c.indexOf("use_css_content_hack")>-1,f=e.behaviorHack&&!a&&"behavior"===u&&c.indexOf("use_css_behavior_hack")>-1;if(l||f){var h=c.replace(r,"");f&&(h=h.replace(i,"")),h.split(";").forEach(function(e){var r=e.split(":");if(2===r.length){var i=r[0].trim(),a=r[1].trim();if("use_css_content_hack"!==i&&"use_css_behavior_hack"!==i&&(t.push([o,i,a]),n.test(a))){var s=a.replace(n,"-webkit-calc(");t.push([o,i,s])}}})}}}var e,n=/calc\(/g,r=/[\"\']/g,i=/url\([^\)]*\)/g,o=!1,a=!0,s=!0;return{required:function(t){return t.isMobileSafari||o},initialize:function(t){e=t;var n=document.createElement("div");n.style.width="1vmax",a=""!==n.style.width,e.isMobileSafari&&(s=!1)},initializeEvents:function(t,e,n){t.force||o&&!t._listeningToResize&&(window.addEventListener("resize",n,!0),t._listeningToResize=!0)},findDeclarations:function(e,n,r,i){null!==r&&t(e,n,r,i)},overwriteDeclaration:function(t,e,n){return o&&"filter"===e&&(n=n.replace(/px/g,"")),n}}}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfill=e()}(this,function(){"use strict";function t(t,e){var n;return function(){var r=this,i=arguments,o=function(){t.apply(r,i)};clearTimeout(n),n=setTimeout(o,e)}}function e(){try{return window.self!==window.top}catch(t){return!0}}function n(n){y||(n===!0&&(n={force:!0}),m=n||{},m.isMobileSafari=b,(m.force||b||x||m.hacks&&m.hacks.required(m))&&(m.hacks&&m.hacks.initialize(m),y=!0,$=document.createElement("style"),$.id="patched-viewport",document.head.appendChild($),f(function(){var n=t(i,m.refreshDebounceWait||100);window.addEventListener("orientationchange",n,!0),window.addEventListener("pageshow",n,!0),(m.force||x||e())&&(window.addEventListener("resize",n,!0),m._listeningToResize=!0),m.hacks&&m.hacks.initializeEvents(m,i,n),i()})))}function r(){$.textContent=s()}function i(){y&&(o(),setTimeout(function(){r()},1))}function o(){return g=[],_.call(document.styleSheets,function(t){"patched-viewport"!==t.ownerNode.id&&t.cssRules&&(t.media&&t.media.mediaText&&window.matchMedia&&!window.matchMedia(t.media.mediaText).matches||_.call(t.cssRules,a))}),g}function a(t){if(7===t.type){var e=t.cssText;return w.lastIndex=0,void(w.test(e)&&(g.push([t,null,e]),m.hacks&&m.hacks.findDeclarations(g,t,null,e)))}if(!t.style){if(!t.cssRules)return;return void _.call(t.cssRules,function(t){a(t)})}_.call(t.style,function(e){var n=t.style.getPropertyValue(e);w.lastIndex=0,w.test(n)&&(g.push([t,e,n]),m.hacks&&m.hacks.findDeclarations(g,t,e,n))})}function s(){v=l();var t,e,n=[],r=[];return g.forEach(function(i){var o=u.apply(null,i),a=o.selector.length?o.selector.join(" {\n")+" {\n":"",s=new Array(o.selector.length+1).join("\n}");return a&&a===t?(a&&!t&&(t=a,e=s),void r.push(o.content)):(r.length&&(n.push(t+r.join("\n")+e),r.length=0),void(a?(t=a,e=s,r.push(o.content)):(n.push(o.content),t=null,e=null)))}),r.length&&n.push(t+r.join("\n")+e),n.join("\n\n")}function u(t,e,n){var r=n.replace(w,c),i=[];m.hacks&&(r=m.hacks.overwriteDeclaration(t,e,r)),e&&(i.push(t.selectorText),r=e+": "+r+";");for(var o=t.parentRule;o;)i.unshift("@media "+o.media.mediaText),o=o.parentRule;return{selector:i,content:r}}function c(t,e,n){var r=v[n],i=parseFloat(e)/100;return i*r+"px"}function l(){var t=window.innerHeight,e=window.innerWidth;return{vh:t,vw:e,vmax:Math.max(e,t),vmin:Math.min(e,t)}}function f(t){var e=0,n=function(){e--,e||t()};_.call(document.styleSheets,function(t){t.href&&h(t.href)!==h(location.href)&&(e++,d(t.ownerNode,n))}),e||t()}function h(t){return t.slice(0,t.indexOf("/",t.indexOf("://")+3))}function d(t,e){p(t.href,function(){var n=document.createElement("style");n.media=t.media,n.setAttribute("data-href",t.href),n.textContent=this.responseText,t.parentNode.replaceChild(n,t),e()},e)}function p(t,e,n){var r=new XMLHttpRequest;if("withCredentials"in r)r.open("GET",t,!0);else{if("undefined"==typeof XDomainRequest)throw new Error("cross-domain XHR not supported");r=new XDomainRequest,r.open("GET",t)}return r.onload=e,r.onerror=n,r.send(),r}var m,v,g,$,y=!1,b=/(iPhone|iPod|iPad).+AppleWebKit/i.test(window.navigator.userAgent),w=/([+-]?[0-9.]+)(vh|vw|vmin|vmax)/g,_=[].forEach,x=!1;return{version:"0.4.1",findProperties:o,getCss:s,init:n,refresh:i}}); \ No newline at end of file
diff --git a/afb-client/dist.prod/opa/AFBclient.min.js b/afb-client/dist.prod/opa/AFBclient.min.js
index 1d9a736..67b51ae 100644
--- a/afb-client/dist.prod/opa/AFBclient.min.js
+++ b/afb-client/dist.prod/opa/AFBclient.min.js
@@ -1,2 +1,2 @@
-!function(){"use strict";var e='<div ng-click="clicked()"> <span><i class="{{icon}}"></i><span>{{label}}</span></span></div>';angular.module("SubmitButton",[]).directive("submitButton",function(){function t(e,t,n){e.icon=n.icon||"fi-foot",e.label=n.label||"Next",t.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:t,scope:{clicked:"="}}})}(),function(){"use strict";function e(e){var t=[],n=[];this.getId=function(){return e.sliderid},this.getCbHandle=function(){return e.cbhandle},this.getView=function(a){return a||(a=0),e.value[a]===t[a]?n[a]:(t[a]=e.value[a],e.formatter?n[a]=e.formatter(e.value[a],e.ctrlhandle):n[a]=e.value[a],n[a])},this.updateClass=function(t,n){e.updateClass(t,n)},this.forceRefresh=function(t){e.forceRefresh(t)},this.getValue=function(t){return t||(t=0),e.value[t]},this.getRelative=function(t){return t||(t=0),e.relative[t]},this.setValue=function(t,n){n||(n=0),e.setValue(t,n)},this.setDisable=function(t){e.setDisable(t)}}var t=angular.module("RangeSlider",[]);t.directive("rangeSlider",["$log","$document","$timeout",function(t,n,a){function i(t,i,s,o){t.initWidget=function(e){e.byStep&&(t.byStep=parseInt(e.byStep)),e.notMore&&(t.notMore=parseInt(e.notMore)),e.notLess&&(t.notLess=parseInt(e.notLess)),e.id&&(t.sliderid=e.id),void 0!==e.value&&(t.value=e.value,t.forceRefresh(50))},t.forceRefresh=function(e){var n=t.value;t.value=[void 0,void 0],a(function(){t.setValue(n[0],0),t.dual&&t.setValue(n[1],1)},e)},t.updateClass=function(e,t){t?i.addClass(e):i.removeClass(e)},t.setDisable=function(e){e?(i.addClass("disable"),t.handles[0].css("visibility","hidden"),t.dual&&t.handles[1].css("visibility","hidden")):(i.removeClass("disable"),t.handles[0].css("visibility","visible"),t.dual&&t.handles[1].css("visibility","visible"))},t.normalize=function(e){var n,a=t.notMore-t.notLess,i=e*a;if(t.byStep>0){var s=(i-i%t.byStep)/t.byStep,o=i%t.byStep,l=o>=.5*t.byStep?t.byStep:0;return n=s*t.byStep+l+t.notLess}if(t.byStep<0){var r=Math.pow(10,-1*t.byStep);return n=t.notLess+parseInt(i*r)/r}return i},t.getValue=function(e,n){t.vertical?t.relative[n]=(e-t.bounds.handles[n].getBoundingClientRect().height)/(t.bounds.bar.getBoundingClientRect().height-t.bounds.handles[n].getBoundingClientRect().height):t.relative[n]=e/(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[n].getBoundingClientRect().width);var a=t.normalize(t.relative[n]);a!==t.value[n]&&(a<t.startValue&&(a=t.startValue),a>t.stopValue&&(a=t.stopValue),t.formatter?t.viewValue=t.formatter(a,t.ctrlhandle):t.viewValue=a,t.displays[n]&&t.displays[n].html(t.viewValue),t.value[n]=a,o&&o.$setViewValue(t.viewValue),t.$apply(),a>t.startValue&&a<t.stopValue&&t.translate(e,n))},t.setStart=function(e){var n;e>t.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(n=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",n+"px")):(n=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("width",n+"px")),t.startValue=e},t.setStop=function(e){var n;e<t.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(n=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",n+"px")):(n=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.stop.css({right:0,width:t.bounds.bar.getBoundingClientRect().width-n+"px"})),t.stopValue=e},t.translate=function(e,n){var a;if(t.vertical){var i=t.bounds.bar.getBoundingClientRect().height-e;if(t.handles[n].css({"-webkit-transform":"translateY("+i+"px)","-moz-transform":"translateY("+i+"px)","-ms-transform":"translateY("+i+"px)","-o-transform":"translateY("+i+"px)",transform:"translateY("+i+"px)"}),t.dual){if(t.relative[1]&&t.relative[0]){var s=(t.relative[1]-t.relative[0])*t.bounds.bar.getBoundingClientRect().height;a=t.relative[0]*t.bounds.bar.getBoundingClientRect().height,t.slider.css({bottom:a+"px",height:s+"px"})}}else t.slider.css("height",e+"px")}else if(t.handles[n].css({"-webkit-transform":"translateX("+e+"px)","-moz-transform":"translateX("+e+"px)","-ms-transform":"translateX("+e+"px)","-o-transform":"translateX("+e+"px)",transform:"translateX("+e+"px)"}),t.dual){if(t.relative[1]&&t.relative[0]){var o=(t.relative[1]-t.relative[0])*t.bounds.bar.getBoundingClientRect().width;a=t.relative[0]*t.bounds.bar.getBoundingClientRect().width,t.slider.css({left:a+"px",width:o+"px"})}}else t.slider.css("width",e+"px")},t.setValue=function(e,n){var a;e!==t.value[n]&&(void 0===e&&(e=0),e>t.notMore&&(e=t.notMore),e<t.notLess&&(e=t.notLess),t.vertical?(t.relative[n]=(e-t.notLess)/(t.notMore-t.notLess),0===n&&(a=t.relative[n]*t.bounds.bar.getBoundingClientRect().height+t.bounds.handles[n].getBoundingClientRect().height/2),1===n&&(a=t.relative[n]*t.bounds.bar.getBoundingClientRect().height)):(t.relative[n]=(e-t.notLess)/(t.notMore-t.notLess),a=t.relative[n]*(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[n].getBoundingClientRect().width)),t.translate(a,n),t.value[n]=e,t.formatter?t.viewValue=t.formatter(e,void 0):t.viewValue=e,o&&o.$setViewValue(t.viewValue),t.displays[n]&&t.displays[n].html(t.viewValue))},t.keydown=function(e){switch(e.keyCode){case 39:case 38:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]+t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]+1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 37:case 40:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]-t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]-1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 27:t.handles[t.actif][0].blur()}},t.moveHandle=function(e,n,a){var i;t.vertical?(i=t.bounds.bar.getBoundingClientRect().bottom-a,i>t.bounds.bar.getBoundingClientRect().height&&(i=t.bounds.bar.getBoundingClientRect().height),i<t.bounds.handles[e].getBoundingClientRect().height&&(i=t.bounds.handles[e].getBoundingClientRect().height)):(i=n-t.bounds.bar.getBoundingClientRect().left,0>i&&(i=0),n+t.bounds.handles[e].getBoundingClientRect().width>t.bounds.bar.getBoundingClientRect().right&&(i=t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[e].getBoundingClientRect().width)),t.getValue(i,e),t.dual&&t.value[0]>t.value[1]&&(0===e?t.setValue(t.value[0],1):t.setValue(t.value[1],0))},t.focusCB=function(e){e?n.on("keydown",t.keydown):n.unbind("keydown",t.keydown)},t.touchBarCB=function(e){var n,a=0,i=e.changedTouches,s=t.value[a];if(e.preventDefault(),t.dual){n=t.vertical?(i[0].pageY-t.bounds.bar.getBoundingClientRect().bottom)/t.bounds.bar.getBoundingClientRect().height:(i[0].pageX-t.bounds.bar.getBoundingClientRect().left)/t.bounds.bar.getBoundingClientRect().width;var o=Math.abs(n-t.relative[0]),l=Math.abs(n-t.relative[1]);o>l&&(a=1)}t.moveHandle(a,i[0].pageX,i[0].pageY),t.callback&&s!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)},t.touchHandleCB=function(e,a){function s(e){e.preventDefault();for(var n=e.changedTouches,i=0;i<n.length;i++)t.moveHandle(a,n[i].pageX,n[i].pageY)}function o(e){n.unbind("touchmove",s),n.unbind("touchend",o),i.on("touchstart",t.touchBarCB),t.callback&&l!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)}var l=t.value[a];e.preventDefault(),n.on("touchmove",s),n.on("touchend",o),i.unbind("touchstart",t.touchBarCB)},t.handleCB=function(e,a){function i(e){t.moveHandle(a,e.clientX,e.clientY)}function o(){n.unbind("mousemove",i),n.unbind("mouseup",o),t.callback&&l!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)}if(!s.automatic){var l=t.value[a];e.preventDefault(),n.on("mousemove",i),n.on("mouseup",o),t.handles[a][0].focus(),t.actif=a}},t.find=function(e,t){var n;n=t?t[0].querySelector(e):i[0].querySelector(e);var a=angular.element(n);return a},t.initialSettings=function(e){var n;t.value=[],t.relative=[],null===t.precision&&(n=(""+t.byStep).match(/\.([\d]*)/),t.precision=n&&n[1]?n[1].length:0),i.on("touchstart",t.touchBarCB),t.handles[0].on("touchstart",function(e){t.touchHandleCB(e,0)}),t.dual&&(t.handles[1].addClass("range-slider-handle"),t.handles[1].on("touchstart",function(e){t.touchHandleCB(e,1)}),t.initvalues||t.setValue(e[1],1)),t.initvalues?t.initWidget(t.initvalues):t.setValue(e[0],0)},t.init=function(){if(t.sliderid=s.id||"slider-"+parseInt(1e3*Math.random()),t.startValue=-(1/0),t.stopValue=1/0,t.byStep=parseInt(s.byStep)||1,t.vertical=s.vertical||!1,t.dual=s.dualHandles||!1,t.trigger_input_change=!1,t.notMore=parseInt(s.notMore)||100,t.notLess=parseInt(s.notLess)||0,t.vertical&&i.addClass("vertical-range"),t.handles=[t.find(".handle-min"),t.find(".handle-max")],t.bar=i,t.slider=t.find(".range-slider-active-segment"),t.start=t.find(".ibz-range-slider-start"),t.stop=t.find(".ibz-range-slider-stop"),t.disable=s.disable||!1,t.ctrlhandle=new e(t),t.bounds={bar:i[0],handles:[t.handles[0][0],t.handles[1][0]]},"true"===s.disable&&t.setDisable(!0),s.displayTarget)switch(s.displayTarget){case!0:case"handle":t.displays=t.handles,t.handles[0].addClass("ibz-range-slider-display"),t.dual&&t.handles[1].addClass("ibz-range-slider-display");break;default:t.displays=[n.getElementById(s.displayTarget)]}else t.displays=[];if(s.initial){var a=s.initial.split(",");t.initial=[void 0!==a[0]?parseInt(a[0]):t.notLess,void 0!==a[1]?parseInt(a[1]):t.notMore]}else t.initial=[t.ngModel,t.ngModel];t.$watch("startAt",function(){t.value<t.startAt,t.startAt&&t.setStart(t.startAt)}),t.$watch("stopAt",function(){t.value>t.stopAt,t.stopAt&&t.setStop(t.stopAt)}),t.initialSettings(t.initial)},t.init(),t.$watch("inithook",function(){t.inithook&&t.inithook(t.ctrlhandle)}),t.$watch("initvalues",function(){t.initvalues&&t.initWidget(t.initvalues)}),t.$watch("ngModel",function(e){t.setValue(e,0)})}var s='<div class="ibz-range-slider range-slider" title="{{title}}"data-slider><span class="range-slider-handle handle-min" ng-mousedown="handleCB($event,0)" ng-focus="focusCB(true)" ng-blur="focusCB(false)" role="slider" tabindex="0"></span><span class="handle-max" ng-mousedown="handleCB($event,1)" ng-focus="focusCB(true)" ng-blur="focusCB(false)" role="slider" tabindex="0"></span><span class="range-slider-active-segment"></span><span class="ibz-range-slider-start" ></span> <span class="ibz-range-slider-stop"></span> <input id={{sliderid}} type="hidden"></div>';return{restrict:"E",scope:{startAt:"=",stopAt:"=",callback:"=",formatter:"=",inithook:"=",cbhandle:"=",initvalues:"=",ngModel:"="},require:"?ngModel",template:s,replace:!0,link:i}}])}(),function(){"use strict";var e='<div class="afb-monitor" ng-click="getping()"><span class="afb-refresh-token" >afb://{{hostname}}:{{httpdport}}</span><i class="{{icon}}"></i></div>';angular.module("TokenRefresh",["ConfigApp","ModalNotification"]).directive("tokenRefresh",["$timeout","$http","$location","Notification","ConfigApp",function(t,n,a,i,s){function o(e,o,l){e.status=void 0,e.online=function(){o.addClass("online"),o.removeClass("offline")},e.offline=function(){o.addClass("offline"),o.removeClass("online")},e.onerror=function(t,n,a){e.status!==!1&&(i.warning({message:"AppFramework Binder Lost",delay:5e3}),e.offline()),e.status=0},e.onsuccess=function(t,n,a,o){e.status!==!0&&(t.request.token&&(s.session.token=t.request.token),t.request.uuid&&(s.session.uuid=t.request.uuid),t.request.timeout&&(s.session.timeout=t.request.timeout),i.success({message:"AppFramework Binder Back to Live",delay:3e3}),e.online()),e.status=1},e.getping=function(){var a=n.get(s.session.ping+"?token="+s.session.token);a.success(e.onsuccess),a.error(e.onerror),t(e.getping,1e3*s.session.pingrate)},e.refresh=function(){var a=n.get(s.session.refresh+"?token="+s.session.token);a.success(e.onsuccess),a.error(e.onerror),t(e.refresh,250*s.session.timeout)},e.tkcreate=function(){var t=n.get(s.session.create+"?token="+s.session.initial);t.success(e.onsuccess),t.error(e.onerror)},e.icon=l.icon||"fi-lightbulb",e.hostname=a.host(),e.httpdport=a.port(),e.autolog=JSON.parse(l.autolog||!1),e.autolog&&e.tkcreate(),t(e.getping,1e3*s.session.pingrate),t(e.refresh,250*s.session.timeout)}return{template:e,scope:{callback:"="},restrict:"E",link:o}}])}(),function(){"use strict";var e='<div class="tip-modal-popup"><i class="{{icon}}"></i><span>{{tip}}</span></span></div>';angular.module("ModalNotification",[]).directive("tipModal",["$timeout",function(t){function n(e,n,a){function i(){function n(){e.show&&e.modal.css({opacity:1,visibility:"visible"})}e.show=!0,e.timeout=t(n,e.delay)}function s(){e.show=!1,e.modal.css({opacity:0,visibility:"hidden"})}e.parent=n.parent(),e.modal=n.find("div"),e.icon=a.icon||"fi-lightbulb",e.parent.addClass("as-modal-tip"),e.parent.bind("click",s),e.parent.bind("focus",i),e.parent.bind("mouseover",i),e.parent.bind("mouseleave",s),e.parent.bind("blur",s),e.delay=a.delay||1e3}return{restrict:"E",template:e,link:n,scope:{tip:"="}}}])}(),function(){"use strict";var e='<span title="Goto: {{href}}" ng-click="clicked()"><i class="{{icon}}"></i><span>{{label}}</span></span>';angular.module("LinkButton",[]).directive("linkButton",["$location",function(t){function n(e,n,a){e.clicked=function(){a.query?t.path(a.href).search(a.query):t.path(a.href)},e.icon=a.icon||"fi-link",e.label=a.label||"Jump",e.href=a.href||"/home",n.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:n,scope:{}}}])}(),function(){"use strict";function e(e,t,n,a,i){var s=new XMLHttpRequest,o=new FormData,l=function(e){i(e)};s.upload.onprogress=function(t){var n=Math.round(t.lengthComputable?100*t.loaded/t.total:0);e.slider&&e.slider.setValue(n)},s.onload=function(){t.addClass("success"),t.removeClass("error");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)},s.onerror=function(){t.addClass("error"),t.removeClass("success");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)},s.onabort=function(){t.addClass("error"),t.removeClass("success");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)};for(var r=0;r<a.length;r++){var u=a[r];if(u.type.match(e.mimetype)){if(u.size>1024*e.maxsize)return e.thumbnail=e.istoobig,void e.$apply("thumbnail");if(isNaN(u.size))return e.thumbnail=e.isnotvalid,void e.$apply("thumbnail");if(e.Basename=u.name.split("/").reverse()[0],e.imgElem[0].file=u,i){var c=new FileReader;c.readAsArrayBuffer(u),c.onload=l}o.append(e.name,u,u.name)}}s.open("POST",n,!0),s.send(o)}var t='<input type="file" name="{{name}}-input" onchange="angular.element(this).scope().UpLoadFile(this.files)" accept="{{mimetype}}" style="display:none"><div class="upload-file" ng-click="imgClicked()"><img id="{{name}}-img" src="{{thumbnail}}"><range-slider ng-show="!noslider" id="{{name}}-slider" automatic=true inithook="SliderInitCB"></range-slider></div>';angular.module("UploadFiles",["ConfigApp","ModalNotification","RangeSlider"]).directive("uploadImage",["ConfigApp","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=function(e){return t.imgElem[0].src=window.URL.createObjectURL(new Blob([e.target.result],{type:"image"})),!0},l=i.posturl+"?token="+n.session.token;new e(t,a,l,s,o)},t.name=i.name||"avatar",t.category=i.category||"image",t.mimetype=(i.accept||"image")+"/*",t.maxsize=i.maxsize||100,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"tux-bzh.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}]).directive("uploadAudio",["ConfigApp","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=i.posturl+"?token="+n.session.token;new e(t,a,o,s,!1)},t.name=i.name||"audio",t.category=i.category||"audio",t.mimetype=(i.accept||"audio")+"/*",t.maxsize=i.maxsize||1e4,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"upload-music.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}]).directive("uploadAppli",["ConfigApp","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=function(e){var a=new JSZip(e.target.result),i=a.file("afa-pkg/thumbnail.jpg");return i?(t.imgElem[0].src=window.URL.createObjectURL(new Blob([i.asArrayBuffer()],{type:"image"})),!0):(t.thumbnail=n.paths[t.category]+"isnotvalid.png",t.$apply("thumbnail"),!1)},l=i.posturl+"?token="+n.session.token;new e(t,a,l,s,o)},t.name=i.name||"appli",t.category=i.category||"appli",t.mimetype=i.accept||".zip",t.maxsize=i.maxsize||1e5,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"upload-appli.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}])}(),function(){"use strict";var e='<tip-modal tip="tip"></tip-modal><label for="{{name}}-intext">{{label}} <i ng-show="required" ng-click="ToBeDefined" class="required {{status}} fi-checkbox" title="Free Value But Mandatory Argument" alt="?"> &nbsp; </i></label><input type="{{type}}" id="{{name}}-intext" placeholder="{{placeholder}}" class="status-{{status}}" ng-model="value" ng-blur="validate()" ng-focus="selected()" ng-model-options="{ updateOn: \'default blur\', debounce: {default: 500, blur: 0} }"><alert data-ng-show="!valid&&errmsg">{{errmsg}}</alert>',t=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;angular.module("InputText",["JQueryEmu"]).directive("inputText",["JQemu",function(n){function a(e,a,i){e.error=!1,e.valid=!1,e.status="untouch",e.input=a.find("input"),e.required=0,"required"in i&&(e.required=1,a.addClass("required")),e.selected=function(){e.error=!1,e.errmsg=!1,e.status="touch"},e.validate=function(){e.parent.removeClass("ng-pristine"),e.value?(e.error=!1,e.value=e.value.trim(),"nospace"in i&&(e.value=e.value.replace(/\s/g,"")),"lowercase"in i&&(e.value=e.value.toLowerCase()),"minlen"in i&&e.value.length<i.minlen&&(e.status="invalid",e.errmsg=e.name+": Mininum Lengh= "+i.minlen+" Characters",e.error=!0),"email"in i&&(t.test(e.value)||(e.status="invalid",e.errmsg="invalid email address",e.error=!0))):e.required&&(e.status="invalid",e.errmsg=e.name+": Required Attribute",e.error=!0),e.error?(e.required&&e.valid&&(e.valid=!1,e.l4acounter.validated>0&&e.l4acounter.validated--),e.callback(i.name,null,e.done)):(e.required&&!e.valid&&e.l4acounter.validated++,e.status="valid",e.valid=!0,e.callback(i.name,e.value,e.done))},e.done=function(t){for(var n in t)e[n]=t[n]},e.label=i.label,e.name=i.name,e.placeholder=i.placeholder,e.type=i.type||"text",e.tip=i.tip,e.parent=n.parent(a,"FORM"),"email"in i&&(i.lowercase=!0,i.nospace=!0,i.minlen=6),e.required&&(e.l4acounter=e.parent.data("l4acounter"),e.l4acounter?e.l4acounter.required++:(e.l4acounter={required:1,validated:0},e.parent.data("l4acounter",e.l4acounter))),e.$watch("value",function(){e.value&&e.validate()})}return{restrict:"E",template:e,link:a,scope:{callback:"=",value:"="}}}])}(),function(){"use strict";var e='<input-text class="password" tip="{{tip1}}" placeholder="{{place1}}"label="{{label1}}" callback="valid1" name="{{name}}-1" value="pass1" required minlen="{{minlen}}" type="password" ></input-text><input-text class="password" tip="tip2" placeholder="{{place2}}"label="{{label2}}" callback="valid2" name="{{name}}-2" value="pass2" required minlen="{{minlen}}" type="password" > </input-text>';angular.module("InputPassword",[]).directive("inputPassword",function(){function t(e,t,n){e.valid1=function(t,n){e.firstpwd=n},e.valid2=function(t,a,i){e.firstpwd!==a?i({valid:!1,status:"invalid",errmsg:"both password should match"}):e.callback(n.name,a)},e.done=function(t){for(var n in t)e[n]=t[n]},e.name=n.name,e.label1=n.label||"Password",e.label2=n.label||"Password Verification",e.place1=n.placeholder1||"User Password",e.tip1=n.tip||"Choose a Password",e.place2=n.placeholder1||"Password Verification",e.tip2=n.tip||"Confirme your Password",e.minlen=n.minlen||10,"required"in n&&(e.required="required")}return{restrict:"E",template:e,link:t,scope:{callback:"="}}})}(),function(){"use strict";angular.module("SampleModule",["SubmitButton","UploadFiles"]).controller("SampleController",["$http",function(e){var t=this;t.FileUploaded=function(e){}}])}(),function(){"use strict";angular.module("HomeModule",["SubmitButton","TokenRefresh"]).controller("HomeController",["$http","ConfigApp",function(e,t){var n=this;n.uuid="none",n.token="none",n.session="none",n.status="err-no",n.ProcessResponse=function(e,a,i,s){var o="API"+e.request.api.replace("-","_");n.status="err-ok",n.errcode=a,n.request=e.request,n.response=e.response,e.request.token&&(t.session.token=e.request.token),e.request.uuid&&(t.session.uuid=e.request.uuid),e.request.timeout&&(t.session.timeout=e.request.timeout),("APIcreate"===o||"APIreset"===o)&&(n.APIreset="",n.APIcreate="",n.APIrefresh="",n.APIcheck=""),n[o]="success",e.request.token&&(n.token=e.request.token)},n.ProcessError=function(e,t,a,i){var s="API"+e.request.api.replace("-","_");n.status="err-fx",n.errcode=t,n.request=e.request,n.response="",n[s]="fail"},n.OpenSession=function(){var a={},i=e.post(t.session.create+"?token="+t.session.initial,a);i.success(n.ProcessResponse),i.error(n.ProcessError)},n.CheckSession=function(){var a={},i=e.post(t.session.check+"?token="+t.session.token,a);i.success(n.ProcessResponse),i.error(n.ProcessError)},n.RefreshSession=function(){var a={},i=e.post(t.session.refresh+"?token="+t.session.token,a);i.success(n.ProcessResponse),i.error(n.ProcessError)},n.ResetSession=function(){var a={},i=e.post(t.session.reset+"?token="+t.session.token,a);i.success(n.ProcessResponse),i.error(n.ProcessError)}}])}(),function(){"use strict";angular.module("JQueryEmu",[]).factory("JQemu",function(){var e=function(e,t){for(var n=e,a=t.toUpperCase();n[0];){if(a===n[0].tagName)return n;n=n.parent()}},t=function(e,t,n){for(var a=n.toLowerCase(),i=t.toLowerCase()+"Name",s=e.children();s[0];){if(a===s[0][i])return s;s=s.next()}},n=function(e,t){for(var n=t.toLowerCase(),a=e.children();a[0];){if(a.hasClass(n))return a;a=a.next()}},a={FindInParent:e,FindByTag:t,FindByClass:n};return a})}();var foundationRoutes=[{name:"mysample",url:"/sample",controller:"SampleController as ctrl",animationIn:"slideInRight",path:"pages/Sample/Sample.html"},{name:"myhome",url:"/home",controller:"HomeController as ctrl",animationIn:"slideInRight",path:"pages/Home/Home.html"}];!function(){"use strict";angular.module("ConfigApp",[]).factory("ConfigApp",["$location","$window",function(e,t){var n={paths:{image:"images/",avatar:"images/avatars/",audio:"images/audio/",appli:"images/appli/"},myapi:{token:"/api/myplugin/xxxx"},session:{create:"/api/token/create",refresh:"/api/token/refresh",check:"/api/token/check",reset:"/api/token/reset",ping:"/api/token/check",initial:"123456789",timeout:3600,pingrate:60,uuid:"",token:""}};return n}])}(),function(){"use strict";function e(e,t,n){e.otherwise("/home"),t.html5Mode(!0).hashPrefix("!")}function t(){FastClick.attach(document.body)}angular.module("AFBclient",["ui.router","ngAnimate","foundation","foundation.dynamicRouting","foundation.dynamicRouting.animations","ui-notification","ConfigApp","JQueryEmu","HomeModule","SampleModule","UploadFiles","LinkButton","TokenRefresh","RangeSlider","ModalNotification"]).config(e).run(t),e.$inject=["$urlRouterProvider","$locationProvider"]}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/Sample/Sample.html",'<h1><img class="logo" src="images/logo/triskel_iot_bzhx250.png" alt="IoT.bzh Logo" style="height:150px"> Post File Upload</h1><div class="sample-box box-content"><upload-image name="avatar" category="avatar" thumbnail="tux-visitor.png" maxsize="100" posturl="/api/post/upload-image" callback="ctrl.FileUploaded" accept="image" title="Change your Avatar"></upload-image><upload-audio name="music" posturl="/api/post/upload-music" callback="ctrl.FileUploaded" title="Upload your Music"></upload-audio><upload-appli name="appli" posturl="/api/post/upload-appli" callback="ctrl.FileUploaded" title="Upload AGL App"></upload-appli></div><link-button href="home" icon="fi-home" label="home"></link-button>')}])}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/Home/Home.html",'<h3><img class="logo" src="images/logo/triskel_iot_bzhx250.png" alt="IoT.bzh Logo" style="height:150px"> App Framework Binder Simple Client</h3><token-refresh autolog="true"></token-refresh><div class="button-box box-content"><submit-button class="session-button {{ctrl.APIcreate}}" icon="fi-unlock" label="Open" clicked="ctrl.OpenSession"></submit-button><submit-button class="session-button {{ctrl.APIcheck}}" icon="fi-checkbox" label="Check" clicked="ctrl.CheckSession"></submit-button><submit-button class="session-button {{ctrl.APIrefresh}}" icon="fi-arrows-compress" label="Refresh" clicked="ctrl.RefreshSession"></submit-button><submit-button class="session-button {{ctrl.APIreset}}" icon="fi-lock" label="Close" clicked="ctrl.ResetSession"></submit-button></div><div class="message-box box-content vertical grid-frame"><div class="response"><span class="grid-content noscroll req {{ctrl.status}}">req= {{ctrl.request}}</span> <span class="grid-content noscroll res {{ctrl.status}}">res= {{ctrl.response}}</span> <span class="grid-content noscroll status {{ctrl.status}}">status= {{ctrl.errcode}}</span></div></div><link-button href="sample" icon="fi-home" label="sample"></link-button>')}])}();
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpZGdldHMvQnV0dG9ucy9TdWJtaXRCdXR0b25zL1N1Ym1pdEJ1dHRvbnMuanMiLCJ3aWRnZXRzL1JhbmdlU2xpZGVycy9SYW5nZVNsaWRlck1vZC5qcyIsIndpZGdldHMvTm90aWZpY2F0aW9ucy9Ub2tlblJlZnJlc2hTdmMuanMiLCJ3aWRnZXRzL05vdGlmaWNhdGlvbnMvTW9kYWxOb3RpZmljYXRpb24uanMiLCJ3aWRnZXRzL05hdmlnYXRpb24vTGlua0J1dHRvbi5qcyIsIndpZGdldHMvRm9ybUlucHV0L1VwbG9hZEZpbGVzLmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvSW5wdXRUZXh0LmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvSW5wdXRQYXNzd29yZC5qcyIsInBhZ2VzL1NhbXBsZS9TYW1wbGVNb2R1bGUuanMiLCJwYWdlcy9Ib21lL0hvbWVNb2R1bGUuanMiLCJzZXJ2aWNlcy9KUXVlcnlFbXUuanMiLCJldGMvcm91dGVzLmpzIiwiZXRjL0NvbmZpZ0FwcC5qcyIsImFwcC5qcyIsInBhZ2VzL1NhbXBsZS9TYW1wbGUuanMiLCJwYWdlcy9Ib21lL0hvbWUuanMiXSwibmFtZXMiOlsidG1wbCIsImFuZ3VsYXIiLCJtb2R1bGUiLCJkaXJlY3RpdmUiLCJteW1ldGhvZHMiLCJzY29wZSIsImVsZW0iLCJhdHRycyIsImljb24iLCJsYWJlbCIsImFkZENsYXNzIiwidG9Mb3dlckNhc2UiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwibGluayIsImNsaWNrZWQiLCJSYW5nZVNsaWRlckhhbmRsZSIsImludGVybmFscyIsImV4dGVybmFscyIsInRoaXMiLCJnZXRJZCIsInNsaWRlcmlkIiwiZ2V0Q2JIYW5kbGUiLCJjYmhhbmRsZSIsImdldFZpZXciLCJoYW5kbGUiLCJ2YWx1ZSIsImZvcm1hdHRlciIsImN0cmxoYW5kbGUiLCJ1cGRhdGVDbGFzcyIsImNsYXNzZSIsInN0YXR1cyIsImZvcmNlUmVmcmVzaCIsInRpbWVyIiwiZ2V0VmFsdWUiLCJnZXRSZWxhdGl2ZSIsInJlbGF0aXZlIiwic2V0VmFsdWUiLCJzZXREaXNhYmxlIiwiZmxhZyIsIlJhbmdlU2xpZGVyIiwiJGxvZyIsIiRkb2N1bWVudCIsIiR0aW1lb3V0IiwiZWxlbWVudCIsIm1vZGVsIiwiaW5pdFdpZGdldCIsImluaXR2YWx1ZXMiLCJieVN0ZXAiLCJwYXJzZUludCIsIm5vdE1vcmUiLCJub3RMZXNzIiwiaWQiLCJ1bmRlZmluZWQiLCJkdWFsIiwicmVtb3ZlQ2xhc3MiLCJkaXNhYmxlZCIsImhhbmRsZXMiLCJjc3MiLCJub3JtYWxpemUiLCJyZXN1bHQiLCJyYW5nZSIsInBvaW50IiwibW9kIiwicmVtIiwicm91bmQiLCJwb3dlciIsIk1hdGgiLCJwb3ciLCJvZmZzZXQiLCJ2ZXJ0aWNhbCIsImJvdW5kcyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImJhciIsIndpZHRoIiwibmV3dmFsdWUiLCJzdGFydFZhbHVlIiwic3RvcFZhbHVlIiwidmlld1ZhbHVlIiwiZGlzcGxheXMiLCJodG1sIiwiJHNldFZpZXdWYWx1ZSIsIiRhcHBseSIsInRyYW5zbGF0ZSIsInNldFN0YXJ0Iiwic3RhcnQiLCJzZXRTdG9wIiwic3RvcCIsInJpZ2h0Iiwidm9mZnNldCIsIi13ZWJraXQtdHJhbnNmb3JtIiwiLW1vei10cmFuc2Zvcm0iLCItbXMtdHJhbnNmb3JtIiwiLW8tdHJhbnNmb3JtIiwidHJhbnNmb3JtIiwic2xpZGVyIiwiYm90dG9tIiwibGVmdCIsImtleWRvd24iLCJlIiwia2V5Q29kZSIsImFjdGlmIiwiY2FsbGJhY2siLCJibHVyIiwibW92ZUhhbmRsZSIsImNsaWVudFgiLCJjbGllbnRZIiwiZm9jdXNDQiIsImluc2lkZSIsIm9uIiwidW5iaW5kIiwidG91Y2hCYXJDQiIsImV2ZW50IiwidG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwib2xkdmFsdWUiLCJwcmV2ZW50RGVmYXVsdCIsInBhZ2VZIiwicGFnZVgiLCJkaXN0YW5jZTAiLCJhYnMiLCJkaXN0YW5jZTEiLCJ0b3VjaEhhbmRsZUNCIiwidG91Y2hldnQiLCJ0b3VjaG1vdmUiLCJpZHgiLCJsZW5ndGgiLCJ0b3VjaGVuZCIsImhhbmRsZUNCIiwiY2xpY2tldmVudCIsIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJhdXRvbWF0aWMiLCJmb2N1cyIsImZpbmQiLCJzZWxlY3QiLCJkb21lbGVtIiwicXVlcnlTZWxlY3RvciIsImFuZ2VsZW0iLCJpbml0aWFsU2V0dGluZ3MiLCJpbml0aWFsIiwiZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0IiwicHJlY2lzaW9uIiwibWF0Y2giLCJldnQiLCJpbml0IiwicmFuZG9tIiwiSW5maW5pdHkiLCJkdWFsSGFuZGxlcyIsInRyaWdnZXJfaW5wdXRfY2hhbmdlIiwiZGlzYWJsZSIsImRpc3BsYXlUYXJnZXQiLCJnZXRFbGVtZW50QnlJZCIsInNwbGl0IiwibmdNb2RlbCIsIiR3YXRjaCIsInN0YXJ0QXQiLCJzdG9wQXQiLCJpbml0aG9vayIsIm5ld1ZhbHVlIiwicmVxdWlyZSIsInJlcGxhY2UiLCIkaHR0cCIsIiRsb2NhdGlvbiIsIk5vdGlmaWNhdGlvbiIsIkNvbmZpZ0FwcCIsIm9ubGluZSIsIm9mZmxpbmUiLCJvbmVycm9yIiwiZGF0YSIsImVycmNvZGUiLCJoZWFkZXJzIiwid2FybmluZyIsIm1lc3NhZ2UiLCJkZWxheSIsIm9uc3VjY2VzcyIsImNvbmZpZyIsInJlcXVlc3QiLCJ0b2tlbiIsInNlc3Npb24iLCJ1dWlkIiwidGltZW91dCIsInN1Y2Nlc3MiLCJnZXRwaW5nIiwiaGFuZGxlciIsImdldCIsInBpbmciLCJlcnJvciIsInBpbmdyYXRlIiwicmVmcmVzaCIsInRrY3JlYXRlIiwiY3JlYXRlIiwiaG9zdG5hbWUiLCJob3N0IiwiaHR0cGRwb3J0IiwicG9ydCIsImF1dG9sb2ciLCJKU09OIiwicGFyc2UiLCJkaXNwbGF5IiwiYWN0aW9uIiwic2hvdyIsIm1vZGFsIiwib3BhY2l0eSIsInZpc2liaWxpdHkiLCJjbG9zZSIsInBhcmVudCIsImJpbmQiLCJ0aXAiLCJxdWVyeSIsInBhdGgiLCJocmVmIiwic2VhcmNoIiwiTG9hZEZpbGVTdmMiLCJwb3N0dXJsIiwiZmlsZXMiLCJ0aHVtYm5haWxDQiIsInhtbFJlcSIsIlhNTEh0dHBSZXF1ZXN0IiwieGZvcm0iLCJGb3JtRGF0YSIsIk9uTG9hZENCIiwidGFyZ2V0IiwidXBsb2FkIiwib25wcm9ncmVzcyIsInByb2dyZXNzIiwibGVuZ3RoQ29tcHV0YWJsZSIsImxvYWRlZCIsInRvdGFsIiwib25sb2FkIiwicmVzcG9uc2UiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJvbmFib3J0IiwiaSIsImZpbGUiLCJ0eXBlIiwibWltZXR5cGUiLCJzaXplIiwibWF4c2l6ZSIsInRodW1ibmFpbCIsImlzdG9vYmlnIiwiaXNOYU4iLCJpc25vdHZhbGlkIiwiQmFzZW5hbWUiLCJuYW1lIiwicmV2ZXJzZSIsImltZ0VsZW0iLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJhcHBlbmQiLCJvcGVuIiwic2VuZCIsIkpRZW11IiwiaW5wdXRFbGVtIiwiaW1nQ2xpY2tlZCIsImNsaWNrIiwiU2xpZGVySW5pdENCIiwiVXBMb2FkRmlsZSIsInJlYWRlckNCIiwic3JjIiwid2luZG93IiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiQmxvYiIsImNhdGVnb3J5IiwiYWNjZXB0IiwicmVnZXhwIiwiUmVnRXhwIiwicGF0aHMiLCJub3NsaWRlciIsIlR5cGVFcnJvciIsInppcGFwcCIsIkpTWmlwIiwiYXNBcnJheUJ1ZmZlciIsImVtYWlscGF0ZXJuIiwidmFsaWQiLCJpbnB1dCIsInJlcXVpcmVkIiwic2VsZWN0ZWQiLCJlcnJtc2ciLCJ2YWxpZGF0ZSIsInRyaW0iLCJtaW5sZW4iLCJ0ZXN0IiwibDRhY291bnRlciIsInZhbGlkYXRlZCIsImRvbmUiLCJwbGFjZWhvbGRlciIsImxvd2VyY2FzZSIsIm5vc3BhY2UiLCJ2YWxpZDEiLCJmaXJzdHB3ZCIsInZhbGlkMiIsImxhYmVsMSIsImxhYmVsMiIsInBsYWNlMSIsInBsYWNlaG9sZGVyMSIsInRpcDEiLCJwbGFjZTIiLCJ0aXAyIiwiY29udHJvbGxlciIsIkZpbGVVcGxvYWRlZCIsIlByb2Nlc3NSZXNwb25zZSIsImFwaW5hbWUiLCJhcGkiLCJBUElyZXNldCIsIkFQSWNyZWF0ZSIsIkFQSXJlZnJlc2giLCJBUEljaGVjayIsIlByb2Nlc3NFcnJvciIsIk9wZW5TZXNzaW9uIiwicG9zdGRhdGEiLCJwb3N0IiwiQ2hlY2tTZXNzaW9uIiwiY2hlY2siLCJSZWZyZXNoU2Vzc2lvbiIsIlJlc2V0U2Vzc2lvbiIsInJlc2V0IiwiZmFjdG9yeSIsIkZpbmRJblBhcmVudCIsInNlbGVjdG9yIiwidG9VcHBlckNhc2UiLCJ0YWdOYW1lIiwiRmluZEJ5VGFnIiwidGFnIiwiY2hpbGRyZW4iLCJuZXh0IiwiRmluZEJ5Q2xhc3MiLCJoYXNDbGFzcyIsIm15TWV0aG9kcyIsImZvdW5kYXRpb25Sb3V0ZXMiLCJ1cmwiLCJhbmltYXRpb25JbiIsIiR3aW5kb3ciLCJteUNvbmZpZyIsImltYWdlIiwiYXZhdGFyIiwiYXVkaW8iLCJhcHBsaSIsIm15YXBpIiwiJHVybFByb3ZpZGVyIiwiJGxvY2F0aW9uUHJvdmlkZXIiLCJvdGhlcndpc2UiLCJodG1sNU1vZGUiLCJoYXNoUHJlZml4IiwicnVuIiwiRmFzdENsaWNrIiwiYXR0YWNoIiwiZG9jdW1lbnQiLCJib2R5IiwiJGluamVjdCIsIiR0ZW1wbGF0ZUNhY2hlIiwicHV0Il0sIm1hcHBpbmdzIjoiQ0FvQkEsV0FDQSxZQUVBLElBQUFBLEdBQUEsK0ZBS0FDLFNBQUFDLE9BQUEsbUJBQ0FDLFVBQUEsZUFBQSxXQUVBLFFBQUFDLEdBQUFDLEVBQUFDLEVBQUFDLEdBR0FGLEVBQUFHLEtBQUFELEVBQUFDLE1BQUEsVUFDQUgsRUFBQUksTUFBQUYsRUFBQUUsT0FBQSxPQUdBSCxFQUFBSSxTQUFBTCxFQUFBSSxNQUFBRSxlQU1BLE9BQ0FDLFNBQUEsSUFDQUMsU0FBQWIsRUFDQWMsS0FBQVYsRUFDQUMsT0FBQVUsUUFBQSxXQ0VBLFdBQ0EsWUFJ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LFFBQUEsWUFDQXlDLFFBQUEsS0FDQU8sU0FBQSxHQUNBUixLQUFBLEdBQ0FGLE1BQUEsSUFJQSxPQUFBNkosU0NyQ0EsV0FDQSxZQWlDQSxTQUFBL0osR0FBQXFLLEVBQUFDLEVBQUFqTCxHQUNBZ0wsRUFBQUUsVUFBQSxTQUdBRCxFQUFBRSxXQUFBLEdBQUFDLFdBQUEsS0FJQSxRQUFBQyxLQUNBQyxVQUFBQyxPQUFBQyxTQUFBQyxNQXhDQTlWLFFBQUFDLE9BQUEsYUFDQSxZQUNBLFlBR0EsYUFDQSw0QkFDQSx1Q0FHQSxrQkFHQSxZQUNBLFlBQ0EsYUFDQSxlQUNBLGNBQ0EsYUFDQSxlQUNBLGNBQ0Esc0JBRUErSyxPQUFBQSxHQUNBMEssSUFBQUEsR0FHQTFLLEVBQUErSyxTQUFBLHFCQUFBLHdCQzlCQSxXQUFBL1YsUUFBQUMsT0FBQSxhQUFBeVYsS0FBQSxpQkFBQSxTQUFBTSxHQUFBQSxFQUFBQyxJQUFBLDJCQUNBLHFzQkNEQSxXQUFBalcsUUFBQUMsT0FBQSxhQUFBeVYsS0FBQSxpQkFBQSxTQUFBTSxHQUFBQSxFQUFBQyxJQUFBLHVCQUNBIiwiZmlsZSI6IkFGQmNsaWVudC5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqIFxuICogQnVnczogSW5wdXQgd2l0aCBDYWxsYmFjayBTSE9VTEQgQkUgZ2V0ICdyZXF1aXJlZCcgY2xhc3NcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciB0bXBsID0gJzxkaXYgIG5nLWNsaWNrPVwiY2xpY2tlZCgpXCI+IDxzcGFuPicgK1xuICAgICAgICAgICAgJzxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+JyArXG4gICAgICAgICAgICAnPHNwYW4+e3tsYWJlbH19PC9zcGFuPicgK1xuICAgICAgICAgICAgJzwvc3Bhbj48L2Rpdj4nO1xuXG4gICAgYW5ndWxhci5tb2R1bGUoJ1N1Ym1pdEJ1dHRvbicsIFtdKVxuICAgICAgICAgICAgLmRpcmVjdGl2ZSgnc3VibWl0QnV0dG9uJywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGFqdXN0IGljb24gb3IgdXNlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaWNvbiA9IGF0dHJzLmljb24gfHwgJ2ZpLWZvb3QnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5sYWJlbCA9IGF0dHJzLmxhYmVsIHx8ICdOZXh0JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZCBsYWJlbCBhcyBjbGFzc1xuICAgICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzIChzY29wZS5sYWJlbC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGNsaWNrZWQgaW4gaW1wb3J0ZWQgYW5kIHdoZW4gdGVtcGxhdGUgaXMgY2xpY2tlZFxuICAgICAgICAgICAgICAgICAgICAvLyBpdCB3aWxsIGNhbGwgY2xpY2tlZCBtZXRob2QgcGFzc2VkIGluIHBhcmFtLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICBzY29wZToge2NsaWNrZWQgOiAnPSd9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xufSkoKTtcbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICogXG4gKiBCdWdzOiBJbnB1dCB3aXRoIENhbGxiYWNrIFNIT1VMRCBCRSBnZXQgJ3JlcXVpcmVkJyBjbGFzc1xuICogXG4gKiByZWY6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9tb3VzZW92ZXJcbiAqIFxuICogdXNhZ2U6IFxuVXNhZ2UgIDxyYW5nZS1zbGlkZXI+XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIDxyYW5nZS1zbGlkZXJcbiAgICAgIGlkPVwibXktc2xpZGVyLW5hbWVcIiAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgdXNlIGFzIGFuIGFyZ3VtZW50IHRvIGNhbGxiYWNrXG4gICAgICBjbGFzcz1cIm15LWN1c3RvbS1jbGFzc1wiICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGNsYXNzIGlzIGliei1yYW5nZS1zbGlkZXJcbiAgICAgIHBsYWNlaG9sZGVyPVwiVHJhY2sgRGF0ZSBTZWxlY3Rpb25cIiAgICAgIC8vIHBsYWNlIGhvbGRlciBmb3IgZGF0ZSByZWFkb25seSBpbnB1dCB6b25lXG5cbiAgICAgIDwhLS0gRm91bmRhdGlvbiBjbGFzc2VzIC0tPlxuICAgICAgY2xhc3M9XCJyYWRpdXNcIiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgWnVyYiBmb3VuZGF0aW9uIGRvYyBmb3IgZnVydGhlciBpbmZvLlxuICAgICAgY2xhc3M9XCJpYnotaGFuZGxlLWRpc3BsYXlcIiAgICAgICAgICAgICAgLy8gaW5jcmVhc2UgaGFuZGxlIHdpZHRoIHRvIGhvbGQgc2xpZGVyIGN1cnJlbnQgdmFsdWVcblxuICAgICAgPCEtLSBBbmd1bGFyIFNjb3BlIFZhcmlhYmxlcyAtLT5cbiAgICAgIGNhbGxiYWNrPVwibXlDYWxsQmFja1wiICAgICAgICAgICAgICAgICAgICAvLyAkc2NvcGUubXlDYWxsQmFjayhzbGlkZXJoYW5kbGUpIGlzIGNhbGxlZCB3aGVuIGV2ZXIgc2xpZGVyIGhhbmRsZSBibHVyXG4gICAgICBmb3JtYXR0ZXI9XCJTbGlkZXJGb3JtYXRDQlwiICAgICAgICAgICAgICAgLy8gJHNjb3BlLm15Rm9ybWF0dGVyKHZhbHVlLCBzbGlkZXJpZCkgd2hlbiBleGlzdCBpcyBjYWxsIHdoZW4gZXZlciBzbGlkZXIgaGFuZGxlIG1vdmVzLiBTaG91bGQgcmV0dXJuIGV4dGVybmFsIGZvcm0gb2Ygc2xpZGVyIHZhbHVlLlxuICAgICAgbmctbW9kZWw9XCJ4eHh4eHhcIiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHh4eCBNdXN0IGJlIGRlZmluZWQsIHNjcmlwdCB3aWxsIHN0b3JlIGEgbmV3IFJhbmdlck9iamVjdCB3aXRoaW4gcHJvdmlkZWQgbmctbW9kZWwgdmFyaWFibGUuXG4gICAgICBzdGFydC1hdD1cIlNjb3BlVmFyXCIgICAgICAgICAgICAgICAgICAgICAgLy8gRHluYW1pYyBsaW1pdGF0aW9uIHdoZW4gc2xpZGVyIGlzIGNvbnN0cmFpbnMgYnkgYW4gZXh0ZXJuYWwgY29tcG9uYW50IFtleDogY2hlY2sgaW4vb3V0XVxuICAgICAgc3RvcC1hdD1cIlNjb3BlVmFyXCIgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW0gYnV0IGZvciBlbmQuXG5cbiAgICAgIDwhLS0gQW5ndWxhciBEaXJlY3RpdmUgQXR0cmlidXRlcyAtLT5cbiAgICAgIG5vdC1sZXNzPVwiaW50ZWdlclwiICAgICAgICAgICAgICAgICAgICAgICAvLyBGaXhlZCBzdGFydGluZyB2YWx1ZSBmb3Igc2xpZGVyIFtkZWZhdWx0IDBdXG4gICAgICBub3QtbW9yZT1cImludGVnZXJcIiAgICAgICAgICAgICAgICAgICAgICAgLy8gRml4ZWQgZW5kIHZhbHVlIGZvciBzbGlkZXJzIFtkZWZhdWx0IDEwMF1cbiAgICAgIGJ5LXN0ZXA9XCIrLWludGVnZXJcIiAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBieS1zdGVwIGlzID4wIHRoZW4gc2xpZGVyIHVzZSBpdCBhcyBzdGVwLXZhbHVlLCB3aGVuIG5lZ2F0aXZlIHVzZSBpdCBmb3IgZGVjaW1hbCBwcmVjaXNpb25cbiAgICAgIGRpc3BsYXktdGFyZ2V0PVwiaGFuZGxlXCIgICAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHNsaWRlciBleHRlcm5hbCBmb3JtYXRlZCB2YWx1ZSBpbiB0aGUgaGFuZGxlIFtyZXF1aXJlciBjYWxzcz1cImliei1oYW5kbGUtZGlzcGxheVwiXVxuICAgICAgZHVhbC1oYW5kbGVzPSd0cnVlJyAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgYSBzZWNvbmQgaGFuZGxlIHRvIHNsaWRlciBmb3IgbWluL21heCByYW5nZVxuICAgICAgaW5pdGlhbD0ndmFsdWV8W3N0YXJ0L3N0b3BdJyAgICAgICAgICAgICAvLyBzbGlkZXIgaW5pdGlhbCB2YWx1ZSBbZHVhbC1oYW5kbGVzXSBtYXkgaGF2ZSBpbml0aWFsIHZhbHVlc1xuICAgLz48L3JhbmdlLXNsaWRlcj5cbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxudmFyIFJhbmdlU2xpZGVyID0gYW5ndWxhci5tb2R1bGUoJ1JhbmdlU2xpZGVyJyxbXSk7XG5cbmZ1bmN0aW9uIFJhbmdlU2xpZGVySGFuZGxlIChzY29wZSkge1xuICAgIHZhciBpbnRlcm5hbHMgPSBbXTtcbiAgICB2YXIgZXh0ZXJuYWxzID0gW107XG5cbiAgICB0aGlzLmdldElkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY29wZS5zbGlkZXJpZDtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRDYkhhbmRsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NvcGUuY2JoYW5kbGU7XG4gICAgfTtcblxuICAgIHRoaXMuZ2V0Vmlldz0gZnVuY3Rpb24gKGhhbmRsZSkge1xuICAgICAgICBpZiAoIWhhbmRsZSkgaGFuZGxlID0gMDtcblxuICAgICAgICAvLyBpZiB2YWx1ZSBkaWQgbm90IGNoYW5nZSByZXR1cm4gY3VycmVudCBleHRlcm5hbCByZXByZXNlbnRhdGlvblxuICAgICAgICBpZiAoc2NvcGUudmFsdWVbaGFuZGxlXSA9PT0gaW50ZXJuYWxzW2hhbmRsZV0pIHJldHVybiBleHRlcm5hbHNbaGFuZGxlXTtcblxuICAgICAgICAvLyBidWlsZCBleHRlcm5hbCByZXByZXNlbnRhdGlvbiBhbmQgc2F2ZSBpdCBmb3IgZnVydGhlciByZXF1ZXN0c1xuICAgICAgICBpbnRlcm5hbHNbaGFuZGxlXSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG4gICAgICAgIGlmIChzY29wZS5mb3JtYXR0ZXIpIGV4dGVybmFsc1toYW5kbGVdID0gc2NvcGUuZm9ybWF0dGVyKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICBlbHNlICBleHRlcm5hbHNbaGFuZGxlXSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG5cbiAgICAgICAgcmV0dXJuIGV4dGVybmFsc1toYW5kbGVdO1xuICAgIH07XG5cbiAgICB0aGlzLnVwZGF0ZUNsYXNzID0gZnVuY3Rpb24gKGNsYXNzZSwgc3RhdHVzKSB7XG4gICAgICAgc2NvcGUudXBkYXRlQ2xhc3MgKGNsYXNzZSwgc3RhdHVzKTtcbiAgICB9O1xuXG4gICAgdGhpcy5mb3JjZVJlZnJlc2ggPSBmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICBzY29wZS5mb3JjZVJlZnJlc2godGltZXIpO1xuICAgIH07XG5cbiAgICB0aGlzLmdldFZhbHVlPSBmdW5jdGlvbiAoaGFuZGxlKSB7XG4gICAgICAgIGlmICghaGFuZGxlKSBoYW5kbGUgPSAwO1xuICAgICAgICByZXR1cm4gc2NvcGUudmFsdWVbaGFuZGxlXTtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRSZWxhdGl2ZT0gZnVuY3Rpb24gKGhhbmRsZSkge1xuICAgICAgICBpZiAoIWhhbmRsZSkgaGFuZGxlID0gMDtcbiAgICAgICAgcmV0dXJuIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV07XG4gICAgfTtcblxuICAgIHRoaXMuc2V0VmFsdWU9IGZ1bmN0aW9uICh2YWx1ZSwgaGFuZGxlKSB7XG4gICAgICAgIGlmICghaGFuZGxlKSBoYW5kbGUgPSAwO1xuICAgICAgICBzY29wZS5zZXRWYWx1ZSAodmFsdWUsIGhhbmRsZSk7XG4gICAgfTtcblxuICAgIHRoaXMuc2V0RGlzYWJsZT0gZnVuY3Rpb24gKGZsYWcpIHtcbiAgICAgICAgc2NvcGUuc2V0RGlzYWJsZShmbGFnKTtcbiAgICB9O1xufVxuXG5SYW5nZVNsaWRlci5kaXJlY3RpdmUoJ3JhbmdlU2xpZGVyJywgW1wiJGxvZ1wiLCBcIiRkb2N1bWVudFwiLCBcIiR0aW1lb3V0XCIsIGZ1bmN0aW9uICgkbG9nLCAkZG9jdW1lbnQsICR0aW1lb3V0KSB7XG5cbiAgICB2YXIgdGVtcGxhdGU9ICc8ZGl2IGNsYXNzPVwiaWJ6LXJhbmdlLXNsaWRlciByYW5nZS1zbGlkZXJcIiB0aXRsZT1cInt7dGl0bGV9fVwiZGF0YS1zbGlkZXI+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInJhbmdlLXNsaWRlci1oYW5kbGUgaGFuZGxlLW1pblwiIG5nLW1vdXNlZG93bj1cImhhbmRsZUNCKCRldmVudCwwKVwiIG5nLWZvY3VzPVwiZm9jdXNDQih0cnVlKVwiIG5nLWJsdXI9XCJmb2N1c0NCKGZhbHNlKVwiIHJvbGU9XCJzbGlkZXJcIiB0YWJpbmRleD1cIjBcIj48L3NwYW4+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImhhbmRsZS1tYXhcIiBuZy1tb3VzZWRvd249XCJoYW5kbGVDQigkZXZlbnQsMSlcIiBuZy1mb2N1cz1cImZvY3VzQ0IodHJ1ZSlcIiBuZy1ibHVyPVwiZm9jdXNDQihmYWxzZSlcIiByb2xlPVwic2xpZGVyXCIgdGFiaW5kZXg9XCIwXCI+PC9zcGFuPicrXG4gICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJyYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnRcIj48L3NwYW4+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImliei1yYW5nZS1zbGlkZXItc3RhcnRcIiA+PC9zcGFuPiAnK1xuICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiaWJ6LXJhbmdlLXNsaWRlci1zdG9wXCI+PC9zcGFuPiAnK1xuICAgICAgICAgICAgICAgICAgJzxpbnB1dCBpZD17e3NsaWRlcmlkfX0gdHlwZT1cImhpZGRlblwiPicrXG4gICAgICAgICAgICAgICAgICAnPC9kaXY+JztcblxuXG4gICAgZnVuY3Rpb24gbGluayAoc2NvcGUsIGVsZW1lbnQsIGF0dHJzLCBtb2RlbCkge1xuICAgICAgICAvLyBmdWxsIGluaXRpYWxpc2F0aW9uIG9mIHNsaWRlciBmcm9tIGEgc2luZ2xlIG9iamVjdFxuICAgICAgICBzY29wZS5pbml0V2lkZ2V0ID0gZnVuY3Rpb24gKGluaXR2YWx1ZXMpIHtcblxuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMuYnlTdGVwKSAgc2NvcGUuYnlTdGVwICA9IHBhcnNlSW50KGluaXR2YWx1ZXMuYnlTdGVwKTtcbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLm5vdE1vcmUpIHNjb3BlLm5vdE1vcmUgPSBwYXJzZUludChpbml0dmFsdWVzLm5vdE1vcmUpO1xuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMubm90TGVzcykgc2NvcGUubm90TGVzcyA9IHBhcnNlSW50KGluaXR2YWx1ZXMubm90TGVzcyk7XG4gICAgICAgICAgICBpZiAoaW5pdHZhbHVlcy5pZCkgICAgICBzY29wZS5zbGlkZXJpZD0gaW5pdHZhbHVlcy5pZDtcblxuICAgICAgICAgICAgLy8gaHVnZWx5IGJ1dCBpbiBzb21lIGNhc2UgRE9NIGlzIG5vdCBmaW5pc2ggd2hlbiB3ZSB0cnkgdG8gc2V0IHZhbHVlcyAhISFcbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLnZhbHVlICE9PSB1bmRlZmluZWQpICAge1xuICAgICAgICAgICAgICAgIHNjb3BlLnZhbHVlID0gaW5pdHZhbHVlcy52YWx1ZTtcbiAgICAgICAgICAgICAgICBzY29wZS5mb3JjZVJlZnJlc2ggKDUwKTsgLy8gd2FpdCA1MG1zIGZvciBET00gdG8gYmUgcmVhZHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIHJlY29tcHV0ZSBzbGlkZSBwb3NpdGlvbmluZ1xuICAgICAgICBzY29wZS5mb3JjZVJlZnJlc2ggPSBmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICAgICAgdmFyIHZhbHVlID0gc2NvcGUudmFsdWU7XG4gICAgICAgICAgIHNjb3BlLnZhbHVlID0gW3VuZGVmaW5lZCx1bmRlZmluZWRdO1xuICAgICAgICAgICAkdGltZW91dCAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICBzY29wZS5zZXRWYWx1ZSh2YWx1ZVswXSwwKTtcbiAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSAgc2NvcGUuc2V0VmFsdWUodmFsdWVbMV0sMSk7XG4gICAgICAgICAgIH0sIHRpbWVyKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBoYW5kbGVyIHRvIGNoYW5nZSBjbGFzcyBmcm9tIHNsaWRlciBoYW5kbGVcbiAgICAgICAgc2NvcGUudXBkYXRlQ2xhc3MgPSBmdW5jdGlvbiAoY2xhc3NlLCBzdGF0dXMpIHtcblxuICAgICAgICAgICAgaWYgKHN0YXR1cykgZWxlbWVudC5hZGRDbGFzcyAoY2xhc3NlKTtcbiAgICAgICAgICAgIGVsc2UgIGVsZW1lbnQucmVtb3ZlQ2xhc3MgKGNsYXNzZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuc2V0RGlzYWJsZSA9IGZ1bmN0aW9uIChkaXNhYmxlZCkge1xuXG4gICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFkZENsYXNzIChcImRpc2FibGVcIik7XG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1swXS5jc3MgKCd2aXNpYmlsaXR5JywnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1sxXS5jc3MgKCd2aXNpYmlsaXR5JywnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNsYXNzIChcImRpc2FibGVcIik7XG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1swXS5jc3MgKCd2aXNpYmlsaXR5JywndmlzaWJsZScpO1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSBzY29wZS5oYW5kbGVzWzFdLmNzcyAoJ3Zpc2liaWxpdHknLCd2aXNpYmxlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5ub3JtYWxpemUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQ7XG4gICAgICAgICAgICB2YXIgcmFuZ2UgPSBzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcztcbiAgICAgICAgICAgIHZhciBwb2ludCA9IHZhbHVlICogcmFuZ2U7XG5cbiAgICAgICAgICAgIC8vIGlmIHN0ZXAgaXMgcG9zaXRpdmUgbGV0J3Mgcm91bmQgc3RlcCBieSBzdGVwXG4gICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwID4gIDApIHtcbiAgICAgICAgICAgICAgICB2YXIgbW9kID0gKHBvaW50IC0gKHBvaW50ICUgc2NvcGUuYnlTdGVwKSkgLyBzY29wZS5ieVN0ZXA7XG4gICAgICAgICAgICAgICAgdmFyIHJlbSA9IHBvaW50ICUgc2NvcGUuYnlTdGVwO1xuXG4gICAgICAgICAgICAgICAgdmFyIHJvdW5kID0gKHJlbSA+PSBzY29wZS5ieVN0ZXAgKiAwLjUgPyBzY29wZS5ieVN0ZXAgOiAwKTtcbiAgICAgICAgICAgICAgICByZXN1bHQ9IChtb2QgKiBzY29wZS5ieVN0ZXAgKyByb3VuZCkgKyBzY29wZS5ub3RMZXNzO1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2cgKFwicmFuZ2U9JWQgdmFsdWU9JWQgcG9pbnQ9JWQgbW9kPSVkIHJlbT0lZCByb3VuZD0lZCByZXN1bHQ9JWRcIiwgcmFuZ2UsIHZhbHVlLCBwb2ludCwgbW9kLCByZW0sIHJvdW5kLCByZXN1bHQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgc3RlcCBpcyBuZWdhdGl2ZSByZXR1cm4gcm91bmQgdG8gYXNrZWQgZGVjaW1hbFxuICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA8ICAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBvd2VyICA9ICBNYXRoLnBvdyAoMTAsKHNjb3BlLmJ5U3RlcCAqIC0xKSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gc2NvcGUubm90TGVzcyArIHBhcnNlSW50IChwb2ludCAqIHBvd2VyKSAvIHBvd2VyO1xuICAgICAgICAgICAgICAgIHJldHVybiAocmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgc3RlcCBpcyBudWxsIHJldHVybiBmdWxsIHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gcG9pbnQ7XG4gICAgICAgfTtcblxuICAgICAgICAvLyByZXR1cm4gY3VycmVudCB2YWx1ZVxuICAgICAgICBzY29wZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChvZmZzZXQsIGhhbmRsZSkge1xuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUucmVsYXRpdmVbaGFuZGxlXSA9IChvZmZzZXQgLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgLyAoc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gPSBvZmZzZXQgLyAgKHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIG5ld3ZhbHVlID0gc2NvcGUubm9ybWFsaXplIChzY29wZS5yZWxhdGl2ZVtoYW5kbGVdKTtcblxuXG4gICAgICAgICAgICAvLyBpZiBpbnRlcm5hbCB2YWx1ZSBjaGFuZ2UgdXBkYXRlIG9yIG1vZGVsXG4gICAgICAgICAgICBpZiAobmV3dmFsdWUgIT09IHNjb3BlLnZhbHVlW2hhbmRsZV0pIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3dmFsdWUgPCBzY29wZS5zdGFydFZhbHVlKSBuZXd2YWx1ZT1zY29wZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChuZXd2YWx1ZSA+IHNjb3BlLnN0b3BWYWx1ZSkgIG5ld3ZhbHVlPXNjb3BlLnN0b3BWYWx1ZTtcblxuXG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS52aWV3VmFsdWUgPSBzY29wZS5mb3JtYXR0ZXIgKG5ld3ZhbHVlLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS52aWV3VmFsdWUgPSBuZXd2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmRpc3BsYXlzW2hhbmRsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXNbaGFuZGxlXS5odG1sIChzY29wZS52aWV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBleHRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWxcbiAgICAgICAgICAgICAgICBzY29wZS52YWx1ZVtoYW5kbGVdID0gbmV3dmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVsKSBtb2RlbC4kc2V0Vmlld1ZhbHVlIChzY29wZS52aWV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIHNjb3BlLiRhcHBseSgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXd2YWx1ZSA+IHNjb3BlLnN0YXJ0VmFsdWUgJiYgbmV3dmFsdWUgPCBzY29wZS5zdG9wVmFsdWUpIHNjb3BlLnRyYW5zbGF0ZShvZmZzZXQsIGhhbmRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cblxuICAgICAgICBzY29wZS5zZXRTdGFydCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIG9mZnNldDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHZhbHVlID4gc2NvcGUudmFsdWVbMF0pIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmR1YWwpIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwwKTtcbiAgICAgICAgICAgICAgICBlbHNlIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgKiAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuc3RhcnQuY3NzKCdoZWlnaHQnLG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICogKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0YXJ0LmNzcygnd2lkdGgnLG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS5zdGFydFZhbHVlPSB2YWx1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5zZXRTdG9wID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodmFsdWUgPCBzY29wZS52YWx1ZVswXSkge1xuICAgICAgICAgICAgICAgIGlmICghc2NvcGUuZHVhbCkgc2NvcGUuc2V0VmFsdWUgKHZhbHVlLDApO1xuICAgICAgICAgICAgICAgIGVsc2Ugc2NvcGUuc2V0VmFsdWUgKHZhbHVlLDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAqICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBzY29wZS5zdGFydC5jc3MoJ2hlaWdodCcsb2Zmc2V0ICsgJ3B4Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKiAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuc3RvcC5jc3MoeydyaWdodCc6IDAsICd3aWR0aCc6IChzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICAtIG9mZnNldCkgKyAncHgnfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlLnN0b3BWYWx1ZT0gdmFsdWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUudHJhbnNsYXRlID0gZnVuY3Rpb24gKG9mZnNldCwgaGFuZGxlKSB7XG4gICAgICAgICAgICB2YXIgc3RhcnQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIC8vIHRha2UgaGFuZGxlIHNpemUgaW4gYWNjb3VudCB0byBjb21wdXRlIG1pZGRsZVxuICAgICAgICAgICAgICAgIHZhciB2b2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSBvZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzW2hhbmRsZV0uY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgJy13ZWJraXQtdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tb3otdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tcy10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWSgnICsgdm9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW8tdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVZKCcgKyB2b2Zmc2V0ICsgJ3B4KSdcbiAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgaWYgKCFzY29wZS5kdWFsKSBzY29wZS5zbGlkZXIuY3NzKCdoZWlnaHQnLCBvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjb3BlLnJlbGF0aXZlWzFdICYmIHNjb3BlLnJlbGF0aXZlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IChzY29wZS5yZWxhdGl2ZVsxXSAtIHNjb3BlLnJlbGF0aXZlWzBdKSAqICBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICBzdGFydCAgPSAoc2NvcGUucmVsYXRpdmVbMF0gKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgIHNjb3BlLnNsaWRlci5jc3MgKHsnYm90dG9tJzogc3RhcnQrJ3B4JywnaGVpZ2h0JzogaGVpZ2h0ICsgJ3B4J30pO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbaGFuZGxlXS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctbW96LXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tcy10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctby10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICd0cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KSdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmR1YWwpIHNjb3BlLnNsaWRlci5jc3MoJ3dpZHRoJyxvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzY29wZS5yZWxhdGl2ZVsxXSAmJiBzY29wZS5yZWxhdGl2ZVswXSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgd2lkdGggPSAoc2NvcGUucmVsYXRpdmVbMV0gLSBzY29wZS5yZWxhdGl2ZVswXSkgKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSAoc2NvcGUucmVsYXRpdmVbMF0gKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnNsaWRlci5jc3MgKHsnbGVmdCc6IHN0YXJ0KydweCcsJ3dpZHRoJzogd2lkdGggKyAncHgnfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHBvc2l0aW9uIGhhbmRsZSBvbiB0aGUgYmFyIGRlcGVuZGluZyBhIGdpdmVuIHZhbHVlXG4gICAgICAgIHNjb3BlLnNldFZhbHVlID0gZnVuY3Rpb24gKHZhbHVlICwgaGFuZGxlKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0O1xuXG4gICAgICAgICAgICAvLyBpZiB2YWx1ZSBkaWQgbm90IGNoYW5nZSBpZ25vcmVcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpICAgdmFsdWU9MDtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IHNjb3BlLm5vdE1vcmUpIHZhbHVlPXNjb3BlLm5vdE1vcmU7XG4gICAgICAgICAgICBpZiAodmFsdWUgPCBzY29wZS5ub3RMZXNzKSB2YWx1ZT1zY29wZS5ub3RMZXNzO1xuXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdID0gKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGUgPT09IDApIG9mZnNldCA9IChzY29wZS5yZWxhdGl2ZVtoYW5kbGVdICogc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpICsgc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQvMjtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlID09PSAxKSBvZmZzZXQgPSBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdICogc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2NvcGUucmVsYXRpdmVbaGFuZGxlXSA9ICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdICogIChzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlLnRyYW5zbGF0ZSAob2Zmc2V0LGhhbmRsZSk7XG4gICAgICAgICAgICBzY29wZS52YWx1ZVtoYW5kbGVdID0gdmFsdWU7XG5cbiAgICAgICAgICAgIGlmIChzY29wZS5mb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNhbGwgdGhyb3VnaCBzZXRWYWx1ZSB3ZSBkbyBub3QgcGFzcyBjYkhhbmRsZVxuICAgICAgICAgICAgICAgIHNjb3BlLnZpZXdWYWx1ZSA9IHNjb3BlLmZvcm1hdHRlciAodmFsdWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjb3BlLnZpZXdWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobW9kZWwpIG1vZGVsLiRzZXRWaWV3VmFsdWUoIHNjb3BlLnZpZXdWYWx1ZSk7XG5cbiAgICAgICAgICAgIGlmIChzY29wZS5kaXNwbGF5c1toYW5kbGVdKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXNbaGFuZGxlXS5odG1sIChzY29wZS52aWV3VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG5cbiAgICAgICAgLy8gTWluaW1hbCBrZXlzdHJva2UgaGFuZGxpbmcgdG8gY2xvc2UgcGlja2VyIHdpdGggRVNDIFtzY29wZS5hY3RpZiBpcyBjdXJyZW50IGhhbmRsZSBpbmRleF1cbiAgICAgICAgc2NvcGUua2V5ZG93bj0gIGZ1bmN0aW9uKGUpe1xuXG4gICAgICAgICAgICBzd2l0Y2goZS5rZXlDb2RlKXtcbiAgICAgICAgICAgICAgICBjYXNlIDM5OiAvLyBSaWdodFxuICAgICAgICAgICAgICAgIGNhc2UgMzg6IC8vIHVwXG4gICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwID4gMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdK3Njb3BlLmJ5U3RlcCksIHNjb3BlLmFjdGlmKSk7XG4gICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwIDwgMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdKygxIC8gTWF0aC5wb3coMTAsIHNjb3BlLmJ5U3RlcCotMSkpKSxzY29wZS5hY3RpZikpO1xuICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmNhbGxiYWNrKSAgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM3OiAvLyBsZWZ0XG4gICAgICAgICAgICAgICAgY2FzZSA0MDogLy8gZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwID4gMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdIC0gc2NvcGUuYnlTdGVwKSwgc2NvcGUuYWN0aWYpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA8IDApIHNjb3BlLiRhcHBseShzY29wZS5zZXRWYWx1ZSAoKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSAtICgxIC8gTWF0aC5wb3coMTAsIHNjb3BlLmJ5U3RlcCotMSkpKSxzY29wZS5hY3RpZikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2spICBzY29wZS5jYWxsYmFjayAoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyNzogLy8gZXNjXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbc2NvcGUuYWN0aWZdWzBdLmJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5tb3ZlSGFuZGxlID0gZnVuY3Rpb24gKGhhbmRsZSwgY2xpZW50WCwgY2xpZW50WSkge1xuICAgICAgICAgICAgdmFyIG9mZnNldDtcbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tIC0gY2xpZW50WTtcbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID4gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPCBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IGNsaWVudFggLSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCkgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICBpZiAoKGNsaWVudFggKyBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSA+IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS5nZXRWYWx1ZSAgKG9mZnNldCwgaGFuZGxlKTtcblxuICAgICAgICAgICAgLy8gcHJldmVudCBkdWFsIGhhbmRsZSB0byBjcm9zc1xuICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwgJiYgc2NvcGUudmFsdWUgWzBdID4gc2NvcGUudmFsdWVbMV0pIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlID09PSAwKSBzY29wZS5zZXRWYWx1ZSAoc2NvcGUudmFsdWVbMF0gLCAxKTtcbiAgICAgICAgICAgICAgICBlbHNlIHNjb3BlLnNldFZhbHVlKHNjb3BlLnZhbHVlWzFdLDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG5cbiAgICAgICAgc2NvcGUuZm9jdXNDQiA9IGZ1bmN0aW9uIChpbnNpZGUpIHtcbiAgICAgICAgICAgIGlmIChpbnNpZGUpIHtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQub24oJ2tleWRvd24nLHNjb3BlLmtleWRvd24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQudW5iaW5kKCdrZXlkb3duJyxzY29wZS5rZXlkb3duKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBiYXIgd2FzIHRvdWNoIGxldCBtb3ZlIGhhbmRsZSB0byB0aGlzIHBvaW50XG4gICAgICAgIHNjb3BlLnRvdWNoQmFyQ0IgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGU9MDtcbiAgICAgICAgICAgIHZhciByZWxhdGl2ZTtcbiAgICAgICAgICAgIHZhciB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXM7XG4gICAgICAgICAgICB2YXIgb2xkdmFsdWUgPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byBoYW5kbGVzIHNlbGVjdCBjbG9zZXN0IG9uZSBmcm9tIHRvdWNoIHBvaW50XG4gICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkge1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkgcmVsYXRpdmUgPSAodG91Y2hlc1swXS5wYWdlWSAtIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKSAvIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGVsc2UgcmVsYXRpdmU9ICh0b3VjaGVzWzBdLnBhZ2VYIC0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KSAvIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgICAgICAgICB2YXIgZGlzdGFuY2UwID0gTWF0aC5hYnMocmVsYXRpdmUgLSBzY29wZS5yZWxhdGl2ZVswXSk7XG4gICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlMSA9IE1hdGguYWJzKHJlbGF0aXZlIC0gc2NvcGUucmVsYXRpdmVbMV0pO1xuICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZTEgPCBkaXN0YW5jZTApIGhhbmRsZT0xO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBtb3ZlIGhhbmRsZSB0byBuZXcgcGxhY2VcbiAgICAgICAgICAgIHNjb3BlLm1vdmVIYW5kbGUgKGhhbmRsZSx0b3VjaGVzWzBdLnBhZ2VYLCB0b3VjaGVzWzBdLnBhZ2VZKTtcbiAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjayAmJiBvbGR2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGhhbmRsZSB3YXMgdG91Y2ggYW5kIGRyYWdcbiAgICAgICAgc2NvcGUudG91Y2hIYW5kbGVDQiA9IGZ1bmN0aW9uICh0b3VjaGV2dCwgaGFuZGxlKSB7XG4gICAgICAgICAgICB2YXIgb2xkdmFsdWUgPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuXG4gICAgICAgICAgICB0b3VjaGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCd0b3VjaG1vdmUnLHRvdWNobW92ZSk7XG4gICAgICAgICAgICAkZG9jdW1lbnQub24oJ3RvdWNoZW5kJyAsdG91Y2hlbmQpO1xuICAgICAgICAgICAgZWxlbWVudC51bmJpbmQoJ3RvdWNoc3RhcnQnLCBzY29wZS50b3VjaEJhckNCKTtcblxuICAgICAgICAgICAgZnVuY3Rpb24gdG91Y2htb3ZlKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IHRvdWNoZXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5tb3ZlSGFuZGxlIChoYW5kbGUsdG91Y2hlc1tpZHhdLnBhZ2VYLCB0b3VjaGVzW2lkeF0ucGFnZVkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnVuY3Rpb24gdG91Y2hlbmQoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ3RvdWNobW92ZScsdG91Y2htb3ZlKTtcbiAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ3RvdWNoZW5kJyAsdG91Y2hlbmQpO1xuICAgICAgICAgICAgICAgZWxlbWVudC5vbigndG91Y2hzdGFydCcsIHNjb3BlLnRvdWNoQmFyQ0IpO1xuXG4gICAgICAgICAgICAgICAgLy8gaWYgdmFsdWUgY2hhbmdlIG5vdGlmeSBhcHBsaWNhdGlvbiBjYWxsYmFja1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjayAmJiBvbGR2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLmhhbmRsZUNCID0gZnVuY3Rpb24gKGNsaWNrZXZlbnQsIGhhbmRsZSkge1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuYXV0b21hdGljKSByZXR1cm47XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHZhciBvbGR2YWx1ZSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG4gICAgICAgICAgICAvLyByZWdpc3RlciBtb3VzZSBldmVudCB0byB0cmFjayBoYW5kbGVcbiAgICAgICAgICAgIGNsaWNrZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCdtb3VzZW1vdmUnLG1vdXNlbW92ZSk7XG4gICAgICAgICAgICAkZG9jdW1lbnQub24oJ21vdXNldXAnLCBtb3VzZXVwKTtcbiAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbaGFuZGxlXVswXS5mb2N1cygpO1xuICAgICAgICAgICAgc2NvcGUuYWN0aWY9aGFuZGxlO1xuXG4gICAgICAgICAgICAvLyBzbGlkZXIgaGFuZGxlIGlzIG1vdmluZ1xuICAgICAgICAgICAgZnVuY3Rpb24gbW91c2Vtb3ZlKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgc2NvcGUubW92ZUhhbmRsZSAoaGFuZGxlLCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbW91c2UgaXMgdXAgZGFucyBsZWF2ZSBzbGlkZXIgc2VuZCByZXNpemUgZXZlbnRzXG4gICAgICAgICAgICBmdW5jdGlvbiBtb3VzZXVwKCkge1xuICAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ21vdXNlbW92ZScsIG1vdXNlbW92ZSk7XG4gICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgnbW91c2V1cCcsIG1vdXNldXApO1xuXG4gICAgICAgICAgICAgICAgLy8gaWYgdmFsdWUgY2hhbmdlIG5vdGlmeSBhcHBsaWNhdGlvbiBjYWxsYmFja1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjayAmJiBvbGR2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHNpbXVsYXRlIGpxdWVyeSBmaW5kIGJ5IGNsYXNzZXMgY2FwYWJpbGl0aWVzIFt3YXJuaW5nIG9ubHkgcmV0dXJuIDFzdCBlbGVtZW50c11cbiAgICAgICAgc2NvcGUuZmluZCA9IGZ1bmN0aW9uIChzZWxlY3QsIGVsZW0pIHtcbiAgICAgICAgICAgIHZhciBkb21lbGVtO1xuXG4gICAgICAgICAgICBpZiAoZWxlbSkgZG9tZWxlbSA9IGVsZW1bMF0ucXVlcnlTZWxlY3RvcihzZWxlY3QpO1xuICAgICAgICAgICAgZWxzZSBkb21lbGVtID0gZWxlbWVudFswXS5xdWVyeVNlbGVjdG9yKHNlbGVjdCk7XG5cbiAgICAgICAgICAgIHZhciBhbmdlbGVtID0gYW5ndWxhci5lbGVtZW50KGRvbWVsZW0pO1xuICAgICAgICAgICAgcmV0dXJuIChhbmdlbGVtKTtcbiAgICAgICAgfTtcblxuXG5cbiAgICAgICAgc2NvcGUuaW5pdGlhbFNldHRpbmdzID0gZnVuY3Rpb24gKGluaXRpYWwpIHtcbiAgICAgICAgICAgIHZhciBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHQ7XG4gICAgICAgICAgICBzY29wZS52YWx1ZT1bXTsgIC8vIHN0b3JlIGxvdy9oZWlnaHQgdmFsdWUgd2hlbiB0d28gaGFuZGxlc1xuICAgICAgICAgICAgc2NvcGUucmVsYXRpdmU9W107XG5cbiAgICAgICAgICAgIGlmIChzY29wZS5wcmVjaXNpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHQgPSAoJycgKyBzY29wZS5ieVN0ZXApLm1hdGNoKC9cXC4oW1xcZF0qKS8pO1xuICAgICAgICAgICAgICAgIHNjb3BlLnByZWNpc2lvbiA9IGRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdCAmJiBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHRbMV0gPyBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHRbMV0ubGVuZ3RoIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gcG9zaXRpb24gaGFuZGxlIHRvIGluaXRpYWwgdmFsdWUocylcbiAgICAgICAgICAgIGVsZW1lbnQub24oJ3RvdWNoc3RhcnQnLCBzY29wZS50b3VjaEJhckNCKTtcbiAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMF0ub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihldnQpe3Njb3BlLnRvdWNoSGFuZGxlQ0IoZXZ0LDApO30pO1xuXG4gICAgICAgICAgICAvLyB0aGlzIHNsaWRlciBoYXMgdHdvIGhhbmRsZXMgbG93L2hpZ2h0XG4gICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMV0uYWRkQ2xhc3MoJ3JhbmdlLXNsaWRlci1oYW5kbGUnKTtcbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzFdLm9uKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24oZXZ0KXtzY29wZS50b3VjaEhhbmRsZUNCKGV2dCwxKTt9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmluaXR2YWx1ZXMpIHNjb3BlLnNldFZhbHVlIChpbml0aWFsWzFdLDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFuIGluaXRzdGF0ZSBvYmplY3QgYXBwbHkgaXRcbiAgICAgICAgICAgIGlmIChzY29wZS5pbml0dmFsdWVzKSBzY29wZS5pbml0V2lkZ2V0IChzY29wZS5pbml0dmFsdWVzKTtcbiAgICAgICAgICAgIGVsc2UgICBzY29wZS5zZXRWYWx1ZSAoaW5pdGlhbFswXSwwKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2NvcGUuc2xpZGVyaWQgICA9IGF0dHJzLmlkIHx8IFwic2xpZGVyLVwiICsgcGFyc2VJbnQgKE1hdGgucmFuZG9tKCkgKiAxMDAwKTtcbiAgICAgICAgICAgIHNjb3BlLnN0YXJ0VmFsdWUgPSAtSW5maW5pdHk7XG4gICAgICAgICAgICBzY29wZS5zdG9wVmFsdWUgID0gSW5maW5pdHk7XG4gICAgICAgICAgICBzY29wZS5ieVN0ZXAgICA9IHBhcnNlSW50KGF0dHJzLmJ5U3RlcCkgfHwgMTtcbiAgICAgICAgICAgIHNjb3BlLnZlcnRpY2FsID0gYXR0cnMudmVydGljYWwgICB8fCBmYWxzZTtcbiAgICAgICAgICAgIHNjb3BlLmR1YWwgICAgID0gYXR0cnMuZHVhbEhhbmRsZXN8fCBmYWxzZTtcbiAgICAgICAgICAgIHNjb3BlLnRyaWdnZXJfaW5wdXRfY2hhbmdlPSBmYWxzZTtcbiAgICAgICAgICAgIHNjb3BlLm5vdE1vcmUgID0gcGFyc2VJbnQoYXR0cnMubm90TW9yZSkgICB8fCAxMDA7XG4gICAgICAgICAgICBzY29wZS5ub3RMZXNzICA9IHBhcnNlSW50KGF0dHJzLm5vdExlc3MpICAgfHwgMDtcblxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSBlbGVtZW50LmFkZENsYXNzKFwidmVydGljYWwtcmFuZ2VcIik7XG5cbiAgICAgICAgICAgIHNjb3BlLmhhbmRsZXM9IFtzY29wZS5maW5kKCcuaGFuZGxlLW1pbicpLCBzY29wZS5maW5kKCcuaGFuZGxlLW1heCcpXTtcbiAgICAgICAgICAgIHNjb3BlLmJhciAgICA9IGVsZW1lbnQ7XG4gICAgICAgICAgICBzY29wZS5zbGlkZXIgPSBzY29wZS5maW5kKCcucmFuZ2Utc2xpZGVyLWFjdGl2ZS1zZWdtZW50Jyk7XG4gICAgICAgICAgICBzY29wZS5zdGFydCAgPSBzY29wZS5maW5kKCcuaWJ6LXJhbmdlLXNsaWRlci1zdGFydCcpO1xuICAgICAgICAgICAgc2NvcGUuc3RvcCAgID0gc2NvcGUuZmluZCgnLmliei1yYW5nZS1zbGlkZXItc3RvcCcpO1xuICAgICAgICAgICAgc2NvcGUuZGlzYWJsZT0gYXR0cnMuZGlzYWJsZSB8fCBmYWxzZTtcblxuICAgICAgICAgICAgc2NvcGUuY3RybGhhbmRsZSA9IG5ldyBSYW5nZVNsaWRlckhhbmRsZSAoc2NvcGUpO1xuXG4gICAgICAgICAgICAvLyBwcmVwYXJlIERPTSBvYmplY3QgcG9pbnRlciB0byBjb21wdXRlIHNpemUgZHluYW1pY2FsbHlcbiAgICAgICAgICAgIHNjb3BlLmJvdW5kcyA9IHtcbiAgICAgICAgICAgICAgICBiYXIgICAgOiBlbGVtZW50WzBdLFxuICAgICAgICAgICAgICAgIGhhbmRsZXM6IFtzY29wZS5oYW5kbGVzWzBdWzBdLCBzY29wZS5oYW5kbGVzWzFdWzBdXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmRpc2FibGUgPT09ICd0cnVlJykgc2NvcGUuc2V0RGlzYWJsZSh0cnVlKTtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmRpc3BsYXlUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGF0dHJzLmRpc3BsYXlUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlIDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGFuZGxlJyA6XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5kaXNwbGF5cyA9IHNjb3BlLmhhbmRsZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzBdLmFkZENsYXNzKCdpYnotcmFuZ2Utc2xpZGVyLWRpc3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSBzY29wZS5oYW5kbGVzWzFdLmFkZENsYXNzKCdpYnotcmFuZ2Utc2xpZGVyLWRpc3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXMgPSAgWyRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCAoYXR0cnMuZGlzcGxheVRhcmdldCldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBzY29wZS5kaXNwbGF5cz1bXTtcblxuICAgICAgICAgICAgLy8gZXh0cmFjdCBpbml0aWFsIHZhbHVlcyBmcm9tIGF0dHJzIGFuZCBwYXJzZSBpbnRvIGludFxuICAgICAgICAgICAgaWYgKCFhdHRycy5pbml0aWFsKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuaW5pdGlhbCAgPSBbc2NvcGUubmdNb2RlbCwgc2NvcGUubmdNb2RlbF07IC8vIGluaXRpYWxpemUgdG8gbW9kZWwgdmFsdWVzXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBpbml0aWFsICA9IGF0dHJzLmluaXRpYWwuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICBzY29wZS5pbml0aWFsID0gW1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsWzBdICE9PSB1bmRlZmluZWQgPyBwYXJzZUludCAoaW5pdGlhbFswXSkgOiBzY29wZS5ub3RMZXNzLFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsWzFdICE9PSB1bmRlZmluZWQgPyBwYXJzZUludCAoaW5pdGlhbFsxXSkgOiBzY29wZS5ub3RNb3JlXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTW9uaXRvciBhbnkgY2hhbmdlcyBvbiBzdGFydC9zdG9wIGRhdGVzLlxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoKCdzdGFydEF0JywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnZhbHVlIDwgc2NvcGUuc3RhcnRBdCApIHtcbiAgICAgICAgICAgICAgICAgICAgLy9zY29wZS5zZXRWYWx1ZSAoc2NvcGUuc3RhcnRBdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzY29wZS5zdGFydEF0KSBzY29wZS5zZXRTdGFydCAoc2NvcGUuc3RhcnRBdCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoKCdzdG9wQXQnICwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnZhbHVlID4gc2NvcGUuc3RvcEF0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2NvcGUuc2V0VmFsdWUgKHNjb3BlLnN0b3BBdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzY29wZS5zdG9wQXQpIHNjb3BlLnNldFN0b3AgKHNjb3BlLnN0b3BBdCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gZmluaXNoIHdpZGdldCBpbml0aWFsaXNhdGlvblxuICAgICAgICAgICAgc2NvcGUuaW5pdGlhbFNldHRpbmdzIChzY29wZS5pbml0aWFsKTtcblxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLmluaXQoKTtcbiAgICAgICAgXG4gICAgICAgICAvLyBzbGlkZXIgaXMgcmVhZHkgcHJvdmlkZSBjb250cm9sIGhhbmRsZSB0byBhcHBsaWNhdGlvbiBjb250cm9sbGVyXG4gICAgICAgIHNjb3BlLiR3YXRjaCAoJ2luaXRob29rJywgZnVuY3Rpb24gKCkgeyAgICAgICAgIC8vIGluaXQgVmFsdWVzIG1heSBhcnJpdmUgbGF0ZVxuICAgICAgICAgICAgaWYgKHNjb3BlLmluaXRob29rKSBzY29wZS5pbml0aG9vayAoc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNjb3BlLiR3YXRjaCAoJ2luaXR2YWx1ZXMnLCBmdW5jdGlvbiAoKSB7IFx0Ly8gaW5pdCBWYWx1ZXMgbWF5IGFycml2ZSBsYXRlXG4gICAgICAgICAgICBpZiAoc2NvcGUuaW5pdHZhbHVlcykgc2NvcGUuaW5pdFdpZGdldChzY29wZS5pbml0dmFsdWVzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdHdvLXdheSBiaW5kaW5nIGlmIG1vZGVsIHZhbHVlIGNoYW5nZXNcbiAgICAgICAgc2NvcGUuJHdhdGNoICgnbmdNb2RlbCcsIGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgICAgIHNjb3BlLnNldFZhbHVlKG5ld1ZhbHVlLCAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5yZXR1cm4ge1xuICAgIHJlc3RyaWN0OiBcIkVcIiwgICAgLy8gcmVzdHJpY3QgdG8gPHJhbmdlLXNsaWRlcj4gSFRNTCBlbGVtZW50IG5hbWVcbiAgICBzY29wZToge1xuICAgICAgICBzdGFydEF0ICA6Jz0nLCAgLy8gRmlyc3QgYWNjZXB0YWJsZSBkYXRlXG4gICAgICAgIHN0b3BBdCAgIDonPScsICAvLyBMYXN0IGFjY2VwdGFibGUgZGF0ZVxuICAgICAgICBjYWxsYmFjayA6Jz0nLCAgLy8gQ2FsbGJhY2sgdG8gYWN0aWYgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICAgICAgZm9ybWF0dGVyOic9JywgIC8vIENhbGxiYWNrIGZvciBkcmFnIGV2ZW50IGNhbGwgZWFjaCB0aW1lIGludGVybmFsIHZhbHVlIGNoYW5nZXNcbiAgICAgICAgaW5pdGhvb2sgOic9JywgIC8vIEhvb2sgcG9pbnQgdG8gY29udHJvbCBzbGlkZXIgZnJvbSBBUElcbiAgICAgICAgY2JoYW5kbGUgOic9JywgIC8vIEFyZ3VtZW50IGFkZGVkIHRvIGV2ZXJ5IGNhbGxiYWNrXG4gICAgICAgIGluaXR2YWx1ZXM6Jz0nLCAgIC8vIEluaXRpYWwgdmFsdWVzIGFzIGEgc2luZ2xlIG9iamVjdFxuICAgICAgICBuZ01vZGVsOiAnPScgICAgLy8gdGhlIG1vZGVsIHZhbHVlXG4gICAgfSxcbiAgICByZXF1aXJlOiAnP25nTW9kZWwnLFxuICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSwgLy8gaHRtbCB0ZW1wbGF0ZSBpcyBidWlsZCBmcm9tIEpTXG4gICAgcmVwbGFjZTogdHJ1ZSwgICAgICAvLyByZXBsYWNlIGN1cnJlbnQgZGlyZWN0aXZlIHdpdGggdGVtcGxhdGUgd2hpbGUgaW5oZXJpdGluZyBvZiBjbGFzc1xuICAgIGxpbms6IGxpbmsgICAgICAgICAgLy8gcGlja2FkYXRlIG9iamVjdCdzIG1ldGhvZHNcbn07XG59XSk7XG5cbmNvbnNvbGUubG9nIChcIlJhbmdlU2xpZGVyIExvYWRlZFwiKTtcblxufSkoKTsiLCIvKlxuIGFsc2EtZ2F0ZXdheSAtLSBwcm92aWRlIGEgUkVTVC9IVFRQIGludGVyZmFjZSB0byBBTFNBLU1peGVyXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTUsIEZ1bHVwIEFyIEZvbGxcblxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHNjb3BlIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS5cblxuIFJlZmVyZW5jZXM6XG5cbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciB0ZW1wbGF0ZSA9XG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJhZmItbW9uaXRvclwiIG5nLWNsaWNrPVwiZ2V0cGluZygpXCI+JyArXG4gICAgICAgICAnPHNwYW4gY2xhc3M9XCJhZmItcmVmcmVzaC10b2tlblwiICA+YWZiOi8ve3tob3N0bmFtZX19Ont7aHR0cGRwb3J0fX08L3NwYW4+JyArXG4gICAgICAgICAnPGkgY2xhc3M9XCJ7e2ljb259fVwiPjwvaT4nICtcbiAgICAgICAgICc8L2Rpdj4nO1xuXG5cbi8vIHNjb3BlIG1vZHVsZSBpcyBsb2FkIHN0YXRpY2FsbHkgYmVmb3JlIGFueSByb3V0ZSBpcyBjYXRpdmF0ZWRcbmFuZ3VsYXIubW9kdWxlKCdUb2tlblJlZnJlc2gnLCBbJ0NvbmZpZ0FwcCcsICdNb2RhbE5vdGlmaWNhdGlvbiddKVxuXG4gICAgLmRpcmVjdGl2ZSAoJ3Rva2VuUmVmcmVzaCcsIFtcIiR0aW1lb3V0XCIsIFwiJGh0dHBcIiwgXCIkbG9jYXRpb25cIiwgXCJOb3RpZmljYXRpb25cIiwgXCJDb25maWdBcHBcIiwgZnVuY3Rpb24oJHRpbWVvdXQsICRodHRwLCAkbG9jYXRpb24sIE5vdGlmaWNhdGlvbiwgQ29uZmlnQXBwKSB7XG5cbiAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgIHNjb3BlLnN0YXR1cz11bmRlZmluZWQ7IC8vIG5laXRoZXIgdGh1IG5laXRoZXIgZmFsc2VcbiAgICAgICAgXG4gICAgXG4gICAgICAgIHNjb3BlLm9ubGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgICAgKFwib25saW5lXCIpO1xuICAgICAgICAgICAgZWxlbS5yZW1vdmVDbGFzcyAoXCJvZmZsaW5lXCIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLm9mZmxpbmUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgZWxlbS5hZGRDbGFzcyAgICAoXCJvZmZsaW5lXCIpO1xuICAgICAgICAgICAgZWxlbS5yZW1vdmVDbGFzcyAoXCJvbmxpbmVcIik7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5vbmVycm9yID0gZnVuY3Rpb24oZGF0YSwgZXJyY29kZSwgaGVhZGVycykge1xuICAgICAgICAgICAgaWYgKHNjb3BlLnN0YXR1cyAhPT0gZmFsc2UpICB7XG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLndhcm5pbmcgKHttZXNzYWdlOiBcIkFwcEZyYW1ld29yayBCaW5kZXIgTG9zdFwiLCBkZWxheTogNTAwMH0pO1xuICAgICAgICAgICAgICAgIHNjb3BlLm9mZmxpbmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLnN0YXR1cyA9IDA7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihkYXRhLCBlcnJjb2RlLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChzY29wZS5zdGF0dXMgIT09IHRydWUpICB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50b2tlbikgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4gPSBkYXRhLnJlcXVlc3QudG9rZW47XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC51dWlkKSAgQ29uZmlnQXBwLnNlc3Npb24udXVpZCAgPSBkYXRhLnJlcXVlc3QudXVpZDtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXF1ZXN0LnRpbWVvdXQpICBDb25maWdBcHAuc2Vzc2lvbi50aW1lb3V0ICA9IGRhdGEucmVxdWVzdC50aW1lb3V0O1xuXG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLnN1Y2Nlc3MgKHttZXNzYWdlOiBcIkFwcEZyYW1ld29yayBCaW5kZXIgQmFjayB0byBMaXZlXCIsIGRlbGF5OiAzMDAwfSk7XG4gICAgICAgICAgICAgICAgc2NvcGUub25saW5lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5zdGF0dXMgPSAxO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENoZWNrIEJpbmRlciBzdGF0dXNcbiAgICAgICAgc2NvcGUuZ2V0cGluZyA9IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICB2YXIgaGFuZGxlciA9ICRodHRwLmdldChDb25maWdBcHAuc2Vzc2lvbi5waW5nKyc/dG9rZW49JysgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwcm9jZXNzIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUub25zdWNjZXNzKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUub25lcnJvcik7XG5cbiAgICAgICAgICAgIC8vIHJlc3RhcnQgYSBuZXcgdGltZXIgZm9yIG5leHQgcGluZ1xuICAgICAgICAgICAgJHRpbWVvdXQgKHNjb3BlLmdldHBpbmcsIENvbmZpZ0FwcC5zZXNzaW9uLnBpbmdyYXRlKjEwMDApO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gQ2hlY2sgQmluZGVyIHN0YXR1c1xuICAgICAgICBzY29wZS5yZWZyZXNoID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaGFuZGxlciA9ICRodHRwLmdldChDb25maWdBcHAuc2Vzc2lvbi5yZWZyZXNoKyc/dG9rZW49JysgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwcm9jZXNzIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUub25zdWNjZXNzKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUub25lcnJvcik7XG4gICAgICAgICAgICAvLyByZXN0YXJ0IGEgbmV3IHRpbWVyIGZvciBuZXh0IHJlZnJlc2ggdG8gMS80IG9mIHRpbWVvdXQgc2Vzc2lvblxuICAgICAgICAgICAgJHRpbWVvdXQgKHNjb3BlLnJlZnJlc2gsIENvbmZpZ0FwcC5zZXNzaW9uLnRpbWVvdXQgKjI1MCk7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBJbml0aWFsIGNvbm5lY3Rpb25cbiAgICAgICAgc2NvcGUudGtjcmVhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gJGh0dHAuZ2V0KENvbmZpZ0FwcC5zZXNzaW9uLmNyZWF0ZSsnP3Rva2VuPScrIENvbmZpZ0FwcC5zZXNzaW9uLmluaXRpYWwpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwcm9jZXNzIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUub25zdWNjZXNzKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUub25lcnJvcik7XG4gICAgICAgIH07XG4gXG4gICAgICAgIHNjb3BlLmljb24gICAgICA9IGF0dHJzLmljb24gICB8fCBcImZpLWxpZ2h0YnVsYlwiO1xuICAgICAgICBzY29wZS5ob3N0bmFtZSAgPSAkbG9jYXRpb24uaG9zdCgpO1xuICAgICAgICBzY29wZS5odHRwZHBvcnQgPSAkbG9jYXRpb24ucG9ydCgpO1xuICAgICAgICBzY29wZS5hdXRvbG9nICAgPSBKU09OLnBhcnNlKGF0dHJzLmF1dG9sb2cgfHwgZmFsc2UpO1xuICAgICAgICBcbiAgICAgICAgaWYgKHNjb3BlLmF1dG9sb2cpIHNjb3BlLnRrY3JlYXRlKCk7XG5cbiAgICAgICAgLy8gSW5pdCBwaW5nIGFuZCByZWZyZXNoIHByb2Nlc3NcbiAgICAgICAgJHRpbWVvdXQgKHNjb3BlLmdldHBpbmcsIENvbmZpZ0FwcC5zZXNzaW9uLnBpbmdyYXRlKjEwMDApO1xuICAgICAgICAkdGltZW91dCAoc2NvcGUucmVmcmVzaCwgQ29uZmlnQXBwLnNlc3Npb24udGltZW91dCAqMjUwKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6IFwiPVwiXG4gICAgICAgIH0sXG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIGxpbms6IG15bWV0aG9kc1xuICAgIH07XG59XSk7XG5cbn0pKCk7XG5jb25zb2xlLmxvZyAoXCJUb2tlbiBSZWZyZXNoIExvYWRlZFwiKTtcblxuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKiBcbiAqIHJlZjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL21vdXNlb3ZlclxuICogXG4gKiB1c2FnZTogXG4gKiBcbiAqIHRpcE1vZGFsOiBsaXN0ZW4gZXZlbnQgZnJvbSBlbGVtLnBhcmVudCgpIHRvIGRpc3BsYXkgdGlwLW1vZGFsXG4gKiAgICAgIDxkaXYgY2xhc3M9XCJ4eHh4XCI+XG4gKiAgICAgICAgICA8dGlwLW1vZGFsIHRpcD14eHh4PjwvdGlwLW1vZGFsPlxuICogICAgICAgICAgPGlucHV0LXRleHQgLi4uLj48L2lucHV0LXRleHQ+XG4gKiAgICAgIDwvZGl2PlxuICogICAgICBcbiAqIE5vdGU6IHVzZSBDU1MudmlzaWJpbGl0eSB0byBhdm9pZCBkaXNwbGF5IGZsaWNrZXJpbmcgYXQgaW5pdGlhbCBkaXNwbGF5LlxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIHRtcGwgPSAnPGRpdiBjbGFzcz1cInRpcC1tb2RhbC1wb3B1cFwiPicgK1xuICAgICAgICAgICAgJzxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+JyArXG4gICAgICAgICAgICAnPHNwYW4+e3t0aXB9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L3NwYW4+PC9kaXY+JyA7XG5cbiAgICBhbmd1bGFyLm1vZHVsZSgnTW9kYWxOb3RpZmljYXRpb24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ3RpcE1vZGFsJywgW1wiJHRpbWVvdXRcIiwgZnVuY3Rpb24gKCR0aW1lb3V0KSB7XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudCA9IGVsZW0ucGFyZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZGFsICAgID0gZWxlbS5maW5kKFwiZGl2XCIpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVsYXkgdGlwIGRpc3BsYXkgdG8gYXZvaWQgYmxpbmtpbmcgd2hlbiBtb3ZpbmcgbW91c2UgZmFzdFxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkaXNwbGF5ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLnNob3cpIHNjb3BlLm1vZGFsLmNzcyh7b3BhY2l0eTogMSwgdmlzaWJpbGl0eTondmlzaWJsZSd9KTsgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuc2hvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS50aW1lb3V0ID0gJHRpbWVvdXQoYWN0aW9uLCBzY29wZS5kZWxheSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsb3NlICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzY29wZS5zaG93ID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgc2NvcGUubW9kYWwuY3NzKHtvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OidoaWRkZW4nfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYWp1c3QgaWNvbiBvciB1c2UgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICBzY29wZS5pY29uICA9IGF0dHJzLmljb24gfHwgJ2ZpLWxpZ2h0YnVsYic7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgUGFyZW50IGVsZW1lbnQgdG8gZ2V0IG1vdXNlIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5hZGRDbGFzcyAoJ2FzLW1vZGFsLXRpcCcpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnY2xpY2snLCBjbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdmb2N1cycsIGRpc3BsYXkpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnbW91c2VvdmVyJywgZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdtb3VzZWxlYXZlJywgY2xvc2UpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnYmx1cicsIGNsb3NlKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmRlbGF5ID0gYXR0cnMuZGVsYXkgfHwgMTAwMDsgLy8gd2FpdCAxcyBiZWZvcmUgZGlzcGxheWluZyB0aXBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICBzY29wZToge3RpcDogXCI9XCJ9IC8vIHRpcCBtYXkgbm90IGJlIGRlZmluZWQgd2hlbiB3aWRnZXQgaXMgZGlzcGxheVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XSk7XG59KSgpO1xuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgdG1wbCA9ICc8c3BhbiB0aXRsZT1cIkdvdG86IHt7aHJlZn19XCIgbmctY2xpY2s9XCJjbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPicgK1xuICAgICAgICAgICAgJzxzcGFuPnt7bGFiZWx9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L3NwYW4+JztcblxuXG4gICAgYW5ndWxhci5tb2R1bGUoJ0xpbmtCdXR0b24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ2xpbmtCdXR0b24nLCBbXCIkbG9jYXRpb25cIiwgZnVuY3Rpb24gKCRsb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcblxuICAgICAgICAgICAgICAgICAgICBzY29wZS5jbGlja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0dHJzLnF1ZXJ5KSAkbG9jYXRpb24ucGF0aChhdHRycy5ocmVmKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgJGxvY2F0aW9uLnBhdGgoYXR0cnMuaHJlZikuc2VhcmNoKGF0dHJzLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBhanVzdCBpY29uIG9yIHVzZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmljb24gPSBhdHRycy5pY29uICAgfHwgJ2ZpLWxpbmsnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5sYWJlbCA9IGF0dHJzLmxhYmVsIHx8ICdKdW1wJztcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaHJlZiAgPSBhdHRycy5ocmVmICB8fCAnL2hvbWUnO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGxhYmVsIGFzIGNsYXNzXG4gICAgICAgICAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgKHNjb3BlLmxhYmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICAgICAgICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlOiB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XSk7XG59KSgpO1xuIiwiXG4vKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLi5cbiAqIFxuICogUmVmZXJlbmNlOlxuICogICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRmlsZVJlYWRlciBcbiAqICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Vc2luZ19maWxlc19mcm9tX3dlYl9hcHBsaWNhdGlvbnMjVXNpbmdfaGlkZGVuX2ZpbGVfaW5wdXRfZWxlbWVudHNfdXNpbmdfdGhlX2NsaWNrJTI4JTI5X21ldGhvZFxuICogICBodHRwczovL3VuY29ya2Vkc3R1ZGlvcy5jb20vYmxvZy9tdWx0aXBhcnRmb3JtZGF0YS1maWxlLXVwbG9hZC13aXRoLWFuZ3VsYXJqc1xuICogICBodHRwczovL3d3dy50ZXJsaWNpLmNvbS8yMDE1LzA1LzE2L3VwbG9hZGluZy1maWxlcy1sb2NhbGx5Lmh0bWxcbiAqICAgaHR0cHM6Ly9naXRodWIuY29tL25lcnZnaC9hbmd1bGFyLWZpbGUtdXBsb2FkL2Jsb2IvbWFzdGVyL3NyYy9zZXJ2aWNlcy9GaWxlVXBsb2FkZXIuanNcbiAqICAgaHR0cHM6Ly9zdHVrLmdpdGh1Yi5pby9qc3ppcC9kb2N1bWVudGF0aW9uL2hvd3RvL3JlYWRfemlwLmh0bWxcbiAqICAgaHR0cDovL29uZWh1bmdyeW1pbmQuY29tL3ppcC1wYXJzaW5nLWpzemlwLWFuZ3VsYXIvXG4gKiAgIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTUzNDE5MTIvaG93LXRvLWdvLWZyb20tYmxvYi10by1hcnJheWJ1ZmZlclxuICogICBcbiAqICAgQnVnczogemlwIGZpbGUgc2VudCBldmVuIHdoZW4gZmxhZyBhcyBpbnZhbGlkIFxuICovXG5cbiBcblxuKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG4vLyBXQVJOSU5HOiBBbmd1bGFyIG5nLWNoYW5nZSBkb2VzIG5vdCB3b3JrIG9uIGlucHV0L2ZpbGUuIExldCdzIGhvb2sgb3VyIGNhbGxiYWNrIHRocm91Z2ggc3RhbmRhcmQgSlMgZnVuY3Rpb25cbnZhciB0bXBsID0gICc8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwie3tuYW1lfX0taW5wdXRcIiBvbmNoYW5nZT1cImFuZ3VsYXIuZWxlbWVudCh0aGlzKS5zY29wZSgpLlVwTG9hZEZpbGUodGhpcy5maWxlcylcIiBhY2NlcHQ9XCJ7e21pbWV0eXBlfX1cIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPicrXG4gICAgICAgICAgICAnPGRpdiBjbGFzcz1cInVwbG9hZC1maWxlXCIgbmctY2xpY2s9XCJpbWdDbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aW1nIGlkPVwie3tuYW1lfX0taW1nXCIgc3JjPVwie3t0aHVtYm5haWx9fVwiPicgK1xuICAgICAgICAgICAgJzxyYW5nZS1zbGlkZXIgbmctc2hvdz1cIiFub3NsaWRlclwiIGlkPVwie3tuYW1lfX0tc2xpZGVyXCIgYXV0b21hdGljPXRydWUgaW5pdGhvb2s9XCJTbGlkZXJJbml0Q0JcIj48L3JhbmdlLXNsaWRlcj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nO1xuICAgIFxuXG4vLyBTZXJ2aWNlIENyZWF0ZSB4Zm9ybSBpbnNlcnQgZmlsZXMgaW4gYW5kIFBvc3QgaXQgdG8gdXJsXG5mdW5jdGlvbiBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCB0aHVtYm5haWxDQikge1xuICAgIHZhciB4bWxSZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB2YXIgeGZvcm0gID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgXG4gICAgdmFyIE9uTG9hZENCID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICB2YXIgc3RhdHVzID0gdGh1bWJuYWlsQ0IgKHRhcmdldCk7XG4gICAgICAgIC8vaWYgKHN0YXR1cykgeGZvcm0uYXBwZW5kKHNjb3BlLm5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XG4gICAgfTtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzbGlkZXIgZHVyaW5nIFVwbG9hZFxuICAgIHhtbFJlcS51cGxvYWQub25wcm9ncmVzcyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB2YXIgcHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKGV2ZW50Lmxlbmd0aENvbXB1dGFibGUgPyBldmVudC5sb2FkZWQgKiAxMDAgLyBldmVudC50b3RhbCA6IDApO1xuICAgICAgICBpZiAoc2NvcGUuc2xpZGVyKSBzY29wZS5zbGlkZXIuc2V0VmFsdWUgKHByb2dyZXNzKTtcbiAgICB9O1xuXG4gICAgLy8gVXBsb2FkIGlzIGZpbmlzaCBsZXQncyBub3RpZnkgY29udHJvbGVyIGNhbGxiYWNrXG4gICAgeG1sUmVxLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZWxlbS5hZGRDbGFzcyAoXCJzdWNjZXNzXCIpO1xuICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcImVycm9yXCIpO1xuICAgICAgICB2YXIgcmVzcG9uc2UgPXtcbiAgICAgICAgICAgIHN0YXR1cyA6IHhtbFJlcS5zdGF0dXMsXG4gICAgICAgICAgICBoZWFkZXJzOiB4bWxSZXEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgXG4gICAgICAgIH07XG4gICAgICAgIHNjb3BlLmNhbGxiYWNrIChyZXNwb25zZSk7XG4gICAgfTtcblxuICAgIHhtbFJlcS5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBlbGVtLmFkZENsYXNzIChcImVycm9yXCIpO1xuICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcInN1Y2Nlc3NcIik7XG4gICAgICAgIHZhciByZXNwb25zZSA9e1xuICAgICAgICAgICAgc3RhdHVzIDogeG1sUmVxLnN0YXR1cyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHhtbFJlcS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUuY2FsbGJhY2sgKHJlc3BvbnNlKTtcbiAgICB9O1xuXG4gICAgeG1sUmVxLm9uYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwiZXJyb3JcIik7XG4gICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgdmFyIHJlc3BvbnNlID17XG4gICAgICAgICAgICBzdGF0dXMgOiB4bWxSZXEuc3RhdHVzLFxuICAgICAgICAgICAgaGVhZGVyczogeG1sUmVxLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIFxuICAgICAgICB9O1xuICAgICAgICBzY29wZS5jYWxsYmFjayAocmVzcG9uc2UpO1xuICAgIH07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmaWxlID0gZmlsZXNbaV07XG4gICAgICAgIGlmICghZmlsZS50eXBlLm1hdGNoKHNjb3BlLm1pbWV0eXBlKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyAoXCJTZWxlY3RlZCBmaWxlPVwiICsgZmlsZS5uYW1lICsgXCIgc2l6ZT1cIisgZmlsZS5zaXplLzEwMjQgKyBcIiBUeXBlPVwiKyBmaWxlLnR5cGUpO1xuXG4gICAgICAgIC8vIEZpbGUgdG8gdXBsb2FkIGlzIHRvbyBiaWdcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHNjb3BlLm1heHNpemUqMTAyNCkge1xuICAgICAgICAgICAgc2NvcGUudGh1bWJuYWlsID0gc2NvcGUuaXN0b29iaWc7IC8vIHdhcm5pbmcgaWYgaW1hZ2UgcGF0aCBpcyB3cm9uZyBub3RoaW5nIGhhcHBlblxuICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCd0aHVtYm5haWwnKTsgLy8gd2Ugc2hvcnQtY2lyY3VpdCBBbmd1bGFyIHJlc3luYyBJbWFnZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYW4gdXBsb2FkYWJsZSBmaWxlXG4gICAgICAgIGlmKGlzTmFOKGZpbGUuc2l6ZSkpIHtcbiAgICAgICAgICAgIHNjb3BlLnRodW1ibmFpbCA9IHNjb3BlLmlzbm90dmFsaWQ7IFxuICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCd0aHVtYm5haWwnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjb3BlLkJhc2VuYW1lPSBmaWxlLm5hbWUuc3BsaXQoJy8nKS5yZXZlcnNlKClbMF07XG4gICAgICAgIHNjb3BlLmltZ0VsZW1bMF0uZmlsZSA9IGZpbGU7XG5cbiAgICAgICAgLy8gSWYgRmlsZSBpcyBhbiBpbWFnZSBsZXQgZGlzcGxheSBpdCBub3dcbiAgICAgICAgaWYgKHRodW1ibmFpbENCKSB7XG4gICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBPbkxvYWRDQjtcbiAgICAgICAgfSBcbiAgICAgICAgLy8gaWYgZXZlcnl0aGluZyBpcyBPSyBsZXQncyBhZGQgZmlsZSB0byB4Zm9ybVxuICAgICAgICB4Zm9ybS5hcHBlbmQoc2NvcGUubmFtZSwgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICB9XG5cblxuICAgIC8vIGV2ZXJ5dGhpbmcgbG9va3MgT0sgbGV0J3MgUG9zdCBpdFxuICAgIHhtbFJlcS5vcGVuKFwiUE9TVFwiLCBwb3N0dXJsICwgdHJ1ZSk7XG4gICAgeG1sUmVxLnNlbmQoeGZvcm0pO1xufVxuXG5hbmd1bGFyLm1vZHVsZSgnVXBsb2FkRmlsZXMnLFsnQ29uZmlnQXBwJywgJ01vZGFsTm90aWZpY2F0aW9uJywgJ1JhbmdlU2xpZGVyJ10pXG5cbi5kaXJlY3RpdmUoJ3VwbG9hZEltYWdlJywgW1wiQ29uZmlnQXBwXCIsIFwiSlFlbXVcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24oQ29uZmlnQXBwLCAgSlFlbXUsIE5vdGlmaWNhdGlvbikge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW1nRWxlbSAgICA9IGVsZW0uZmluZCgnaW1nJyk7XG4gICAgICAgIHNjb3BlLmlucHV0RWxlbSAgPSBlbGVtLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgIHZhciByZWFkZXJDQiA9IGZ1bmN0aW9uICh1cGxvYWQpIHtcbiAgICAgICAgICAgICAgICAvLyBzY29wZS50aHVtYm5haWwgPSB1cGxvYWQudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICBzY29wZS5pbWdFbGVtWzBdLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFt1cGxvYWQudGFyZ2V0LnJlc3VsdF0sIHt0eXBlOiBcImltYWdlXCJ9KSk7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyB0cnVlIGFjdGl2YXRlcyBwb3N0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHBvc3R1cmwgPSBhdHRycy5wb3N0dXJsICsgXCI/dG9rZW49XCIgKyBDb25maWdBcHAuc2Vzc2lvbi50b2tlbjtcbiAgICAgICAgICAgIG5ldyBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCByZWFkZXJDQik7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSW5pdGlhbGxpemUgZGVmYXVsdCB2YWx1ZXMgZnJvbSBhdHRyaWJ1dGVzIHZhbHVlc1xuICAgICAgICBzY29wZS5uYW1lPSBhdHRycy5uYW1lIHx8ICdhdmF0YXInO1xuICAgICAgICBzY29wZS5jYXRlZ29yeT0gYXR0cnMuY2F0ZWdvcnkgIHx8ICdpbWFnZSc7XG4gICAgICAgIHNjb3BlLm1pbWV0eXBlPSAoYXR0cnMuYWNjZXB0IHx8ICdpbWFnZScpICsgJy8qJztcbiAgICAgICAgc2NvcGUubWF4c2l6ZT0gYXR0cnMubWF4c2l6ZSB8fCAxMDA7IC8vIGRlZmF1bHQgbWF4IHNpemUgMTAwS0JcbiAgICAgICAgc2NvcGUucmVnZXhwID0gbmV3IFJlZ0V4cCAoYXR0cnMuYWNjZXB0KyAnLionLCdpJyk7XG5cbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUudGh1bWJuYWlsPSBDb25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLnRodW1ibmFpbDtcbiAgICAgICAgZWxzZSAgc2NvcGUudGh1bWJuYWlsPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAndHV4LWJ6aC5wbmcnO1xuICAgICAgICBcbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUuaXNub3R2YWxpZD0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc25vdHZhbGlkO1xuICAgICAgICBlbHNlICBzY29wZS5pc25vdHZhbGlkPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXNub3R2YWxpZC5wbmcnO1xuXG4gICAgICAgIGlmIChhdHRycy5pc3Rvb2JpZykgc2NvcGUuaXN0b29iaWc9IENvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXN0b29iaWc7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzdG9vYmlnPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXN0b29iaWcucG5nJztcbiAgICAgICAgc2NvcGUubm9zbGlkZXIgPSBhdHRycy5ub3NsaWRlciB8fCBmYWxzZTtcblxuICAgICAgICBpZiAoIWF0dHJzLnBvc3R1cmwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZpbGUtdXBsb2FkICVzIHBvc3R1cmw9L2FwaS94eHh4L3h4eHggcmVxdWlyZWQnLCBzY29wZS5hdHRycyk7ICAgICAgICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbn1dKVxuICAgIFxuLmRpcmVjdGl2ZSgndXBsb2FkQXVkaW8nLCBbXCJDb25maWdBcHBcIiwgXCJKUWVtdVwiLCBcIk5vdGlmaWNhdGlvblwiLCBmdW5jdGlvbihDb25maWdBcHAsICBKUWVtdSwgTm90aWZpY2F0aW9uKSB7XG4gICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuICAgICAgICBcbiAgICAgICAgLy8gZ2V0IHdpZGdldCBpbWFnZSBoYW5kbGUgZnJvbSB0ZW1wbGF0ZVxuICAgICAgICBzY29wZS5pbWdFbGVtICAgID0gZWxlbS5maW5kKCdpbWcnKTtcbiAgICAgICAgc2NvcGUuaW5wdXRFbGVtICA9IGVsZW0uZmluZCgnaW5wdXQnKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEltYWdlIHdhcyBja2ljayBsZXQncyBzaW11bGF0ZSBhbiBpbnB1dCAoZmlsZSkgY2xpY2tcbiAgICAgICAgc2NvcGUuaW1nQ2xpY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNjb3BlLmlucHV0RWxlbVswXS5jbGljaygpOyAvLyBXYXJuaW5nIEFuZ3VsYXIgVHJpZ2dlckV2ZW50IGRvZXMgbm90IHdvcmshISFcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFNsaWRlciBjb250cm9sIGhhbmRsZSByZWdpc3RyYXRpb24gYWZ0ZXIgY3JlYXRpb25cbiAgICAgICAgc2NvcGUuU2xpZGVySW5pdENCPWZ1bmN0aW9uIChzbGlkZXIpIHtcbiAgICAgICAgICAgc2NvcGUuc2xpZGVyPSBzbGlkZXI7IFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gVXBsb2FkIGlzIGRlbGVnYXRlZCB0byBhIHNoYXJlZCBmdW5jdGlvblxuICAgICAgICBzY29wZS5VcExvYWRGaWxlPWZ1bmN0aW9uIChmaWxlcykge1xuICAgICAgICAgICAgdmFyIHBvc3R1cmwgPSBhdHRycy5wb3N0dXJsICsgXCI/dG9rZW49XCIgKyBDb25maWdBcHAuc2Vzc2lvbi50b2tlbjtcbiAgICAgICAgICAgIG5ldyBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCBmYWxzZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSW5pdGlhbGxpemUgZGVmYXVsdCB2YWx1ZXMgZnJvbSBhdHRyaWJ1dGVzIHZhbHVlc1xuICAgICAgICBzY29wZS5uYW1lPSBhdHRycy5uYW1lIHx8ICdhdWRpbyc7XG4gICAgICAgIHNjb3BlLmNhdGVnb3J5PSBhdHRycy5jYXRlZ29yeSAgfHwgJ2F1ZGlvJztcbiAgICAgICAgc2NvcGUubWltZXR5cGU9IChhdHRycy5hY2NlcHQgfHwgJ2F1ZGlvJykgKyAnLyonO1xuICAgICAgICBzY29wZS5tYXhzaXplPSBhdHRycy5tYXhzaXplIHx8IDEwMDAwOyAvLyBkZWZhdWx0IG1heCBzaXplIDEwTUJcbiAgICAgICAgc2NvcGUucmVnZXhwID0gbmV3IFJlZ0V4cCAoYXR0cnMuYWNjZXB0KyAnLionLCdpJyk7XG5cbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUudGh1bWJuYWlsPSBDb25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLnRodW1ibmFpbDtcbiAgICAgICAgZWxzZSAgc2NvcGUudGh1bWJuYWlsPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAndXBsb2FkLW11c2ljLnBuZyc7XG4gICAgICAgIFxuICAgICAgICBpZiAoYXR0cnMudGh1bWJuYWlsKSBzY29wZS5pc25vdHZhbGlkPSBDb25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLmlzbm90dmFsaWQ7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzbm90dmFsaWQ9Q29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc25vdHZhbGlkLnBuZyc7XG5cbiAgICAgICAgaWYgKGF0dHJzLmlzdG9vYmlnKSBzY29wZS5pc3Rvb2JpZz0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc3Rvb2JpZztcbiAgICAgICAgZWxzZSAgc2NvcGUuaXN0b29iaWc9Q29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc3Rvb2JpZy5wbmcnO1xuICAgICAgICBzY29wZS5ub3NsaWRlciA9IGF0dHJzLm5vc2xpZGVyIHx8IGZhbHNlO1xuXG4gICAgICAgIGlmICghYXR0cnMucG9zdHVybCkgdGhyb3cgbmV3IFR5cGVFcnJvcignZmlsZS11cGxvYWQgJXMgcG9zdHVybD0vYXBpL3h4eHgveHh4eCByZXF1aXJlZCcsIHNjb3BlLmF0dHJzKTsgICAgICAgICAgICBcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogJz0nXG4gICAgICAgIH1cbiAgICB9O1xuICAgIFxufV0pXG5cbi5kaXJlY3RpdmUoJ3VwbG9hZEFwcGxpJywgW1wiQ29uZmlnQXBwXCIsIFwiSlFlbXVcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24oQ29uZmlnQXBwLCAgSlFlbXUsIE5vdGlmaWNhdGlvbikge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW1nRWxlbSAgICA9IGVsZW0uZmluZCgnaW1nJyk7XG4gICAgICAgIHNjb3BlLmlucHV0RWxlbSAgPSBlbGVtLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB2YXIgcmVhZGVyQ0IgPSBmdW5jdGlvbiAodXBsb2FkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHppcGFwcCA9IG5ldyBKU1ppcCh1cGxvYWQudGFyZ2V0LnJlc3VsdCk7XG4gICAgICAgICAgICAgICAgdmFyIHRodW1ibmFpbCA9IHppcGFwcC5maWxlKFwiYWZhLXBrZy90aHVtYm5haWwuanBnXCIpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlzIHdlIGhhdmUgYSB0aHVtYm5haWwgd2l0aGluIGxvYWRlZCBaaXBmaWxlXG4gICAgICAgICAgICAgICAgaWYgKCF0aHVtYm5haWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiVGhpcyBpcyBub3QgYSB2YWxpZCBBcHBsaWNhdGlvbiBGcmFtZXdvcmsgQVBQXCIpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS50aHVtYm5haWw9Q29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc25vdHZhbGlkLnBuZyc7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLiRhcHBseSgndGh1bWJuYWlsJyk7IC8vIHdlIHNob3J0LWNpcmN1aXQgQW5ndWxhciByZXN5bmMgSW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBkbyBub3QgcG9zdCB6aXAgb24gYmluZGVyXG4gICAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgICAgICBzY29wZS5pbWdFbGVtWzBdLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFt0aHVtYm5haWwuYXNBcnJheUJ1ZmZlcigpXSwge3R5cGU6IFwiaW1hZ2VcIn0pKTsgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gdHJ1ZSBhY3RpdmF0ZXMgcG9zdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBwb3N0dXJsID0gYXR0cnMucG9zdHVybCArIFwiP3Rva2VuPVwiICsgQ29uZmlnQXBwLnNlc3Npb24udG9rZW47XG4gICAgICAgICAgICBuZXcgTG9hZEZpbGVTdmMgKHNjb3BlLCBlbGVtLCBwb3N0dXJsLCBmaWxlcywgcmVhZGVyQ0IpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEluaXRpYWxsaXplIGRlZmF1bHQgdmFsdWVzIGZyb20gYXR0cmlidXRlcyB2YWx1ZXNcbiAgICAgICAgc2NvcGUubmFtZT0gYXR0cnMubmFtZSB8fCAnYXBwbGknO1xuICAgICAgICBzY29wZS5jYXRlZ29yeT0gYXR0cnMuY2F0ZWdvcnkgIHx8ICdhcHBsaSc7XG4gICAgICAgIHNjb3BlLm1pbWV0eXBlPSAoYXR0cnMuYWNjZXB0IHx8ICcuemlwJyk7XG4gICAgICAgIHNjb3BlLm1heHNpemU9IGF0dHJzLm1heHNpemUgfHwgMTAwMDAwOyAvLyBkZWZhdWx0IG1heCBzaXplIDEwME1CXG4gICAgICAgIHNjb3BlLnJlZ2V4cCA9IG5ldyBSZWdFeHAgKGF0dHJzLmFjY2VwdCsgJy4qJywnaScpO1xuXG4gICAgICAgIGlmIChhdHRycy50aHVtYm5haWwpIHNjb3BlLnRodW1ibmFpbD0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy50aHVtYm5haWw7XG4gICAgICAgIGVsc2UgIHNjb3BlLnRodW1ibmFpbD1Db25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ3VwbG9hZC1hcHBsaS5wbmcnO1xuICAgICAgICBcbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUuaXNub3R2YWxpZD0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc25vdHZhbGlkO1xuICAgICAgICBlbHNlICBzY29wZS5pc25vdHZhbGlkPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXNub3R2YWxpZC5wbmcnO1xuXG4gICAgICAgIGlmIChhdHRycy5pc3Rvb2JpZykgc2NvcGUuaXN0b29iaWc9IENvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXN0b29iaWc7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzdG9vYmlnPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXN0b29iaWcucG5nJztcbiAgICAgICAgc2NvcGUubm9zbGlkZXIgPSBhdHRycy5ub3NsaWRlciB8fCBmYWxzZTtcblxuICAgICAgICBpZiAoIWF0dHJzLnBvc3R1cmwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZpbGUtdXBsb2FkICVzIHBvc3R1cmw9L2FwaS94eHh4L3h4eHggcmVxdWlyZWQnLCBzY29wZS5hdHRycyk7ICAgICAgICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn1dKTtcblxuY29uc29sZS5sb2cgKFwiVXBsb2FkRmlsZSBMb2FkZWRcIik7XG59KSgpO1xuIiwiXG4vKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLi5cbiAqL1xuXG5cblxuKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgdG1wbCA9ICc8dGlwLW1vZGFsIHRpcD1cInRpcFwiPjwvdGlwLW1vZGFsPicgK1xuICAgICAgICAgICAnPGxhYmVsIGZvcj1cInt7bmFtZX19LWludGV4dFwiPnt7bGFiZWx9fSA8aSBuZy1zaG93PVwicmVxdWlyZWRcIiBuZy1jbGljaz1cIlRvQmVEZWZpbmVkXCIgJyArXG4gICAgICAgICAgICdjbGFzcz1cInJlcXVpcmVkIHt7c3RhdHVzfX0gZmktY2hlY2tib3hcIiB0aXRsZT1cIkZyZWUgVmFsdWUgQnV0IE1hbmRhdG9yeSBBcmd1bWVudFwiIGFsdD1cIj9cIj4gJm5ic3A7IDwvaT48L2xhYmVsPicrICAgICAgICAgIFxuICAgICAgICAgICAnPGlucHV0ICcrXG4gICAgICAgICAgICcgdHlwZT1cInt7dHlwZX19XCIgaWQ9XCJ7e25hbWV9fS1pbnRleHRcIiBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiICBjbGFzcz1cInN0YXR1cy17e3N0YXR1c319XCInK1xuICAgICAgICAgICAnIG5nLW1vZGVsPVwidmFsdWVcIiBuZy1ibHVyPVwidmFsaWRhdGUoKVwiIG5nLWZvY3VzPVwic2VsZWN0ZWQoKVwiICcrXG4gICAgICAgICAgICcgbmctbW9kZWwtb3B0aW9ucz1cInsgdXBkYXRlT246IFxcJ2RlZmF1bHQgYmx1clxcJywgZGVib3VuY2U6IHtkZWZhdWx0OiA1MDAsIGJsdXI6IDB9IH1cIicgK1xuICAgICAgICAgICAnPjxhbGVydCBkYXRhLW5nLXNob3c9XCIhdmFsaWQmJmVycm1zZ1wiPnt7ZXJybXNnfX08L2FsZXJ0Pic7XG5cbnZhciBlbWFpbHBhdGVybiA9IC9eKChbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXStcXC4pK1tePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvaTtcblxuYW5ndWxhci5tb2R1bGUoJ0lucHV0VGV4dCcsWydKUXVlcnlFbXUnXSlcblxuLmRpcmVjdGl2ZSgnaW5wdXRUZXh0JywgW1wiSlFlbXVcIiwgZnVuY3Rpb24oSlFlbXUpIHtcbiAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgXG4gICAgLy8gZGVmYXVsdCB2YWx1ZSBhdCAxc3QgcmVuZGVyaW5nXG4gICAgc2NvcGUuZXJyb3IgID0gZmFsc2U7XG4gICAgc2NvcGUudmFsaWQgID0gZmFsc2U7XG4gICAgc2NvcGUuc3RhdHVzID0gJ3VudG91Y2gnO1xuICAgXG4gICAgc2NvcGUuaW5wdXQgPSBlbGVtLmZpbmQgKFwiaW5wdXRcIik7XG4gICAgc2NvcGUucmVxdWlyZWQgPSAwO1xuICAgIFxuICAgIC8vIHJlcXVpcmVyIGlzIHVzZSB0byBpbmNyZW1lbnQgcmVxdWVzdGVkIGNvdW50ZXJcbiAgICBpZiAoXCJyZXF1aXJlZFwiIGluIGF0dHJzKSB7XG4gICAgICAgIHNjb3BlLnJlcXVpcmVkID0gMTtcbiAgICAgICAgZWxlbS5hZGRDbGFzcyAoXCJyZXF1aXJlZFwiKTtcbiAgICB9XG4gICAgICAgXG4gICAgIC8vIHVzZXIgZW50ZXIgaW5wdXQgcmVzZXQgZXJyb3Igc3RhdHVzXG4gICAgIHNjb3BlLnNlbGVjdGVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzY29wZS5lcnJvcj1mYWxzZTsgXG4gICAgICAgIHNjb3BlLmVycm1zZz1mYWxzZTsgXG4gICAgICAgIHNjb3BlLnN0YXR1cyA9ICd0b3VjaCc7XG4gICAgIH07ICAgXG4gICAgICAgICAgICBcbiAgICAgc2NvcGUudmFsaWRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICBcbiAgICAgICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0IGZpZWxkIGJ5cGFzc2luZyBBbmd1bGFyIG5nLW1vZGVsXG4gICAgICAgICBjb25zb2xlLmxvZyAoXCJDbGlja2VkIElucHV0VGV4dCBuYW1lPSVzIHZhbHVlPSVzIHZhbGlkPSVzXCIsIHNjb3BlLm5hbWUsIHNjb3BlLnZhbHVlLCBzY29wZS52YWxpZCk7ICAgICAgICBcblxuICAgICAgICAgLy8gZm9ybSBpcyBub3QgdW50b3VjaGVkIGFueW1vcmVcbiAgICAgICAgIHNjb3BlLnBhcmVudC5yZW1vdmVDbGFzcyAoXCJuZy1wcmlzdGluZVwiKTtcblxuICAgICAgICAgLy8gaWYgdmFsdWUgbm90IG51bGwgY2xlYW4gdXAgc3RyaW5nXG4gICAgICAgICBpZiAoc2NvcGUudmFsdWUpIHtcbiAgICAgICAgICAgICBzY29wZS5lcnJvcj1mYWxzZTsgXG4gICAgICAgICAgICAvLyByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxsaW5nIHNwYWNlXG4gICAgICAgICAgICBzY29wZS52YWx1ZSA9IHNjb3BlLnZhbHVlLnRyaW0oKTtcbiAgICAgICAgIFxuICAgICAgICAgICAgLy8gcmVtb3ZlIGFueSBzcGFjZSBpcyBub3QgYWxsb3dlZFxuICAgICAgICAgICAgaWYgKCdub3NwYWNlJyBpbiBhdHRycykge1xuICAgICAgICAgICAgICAgc2NvcGUudmFsdWU9c2NvcGUudmFsdWUucmVwbGFjZSgvXFxzL2csICcnKTsgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICBcbiAgICAgICAgICAgIGlmICgnbG93ZXJjYXNlJyBpbiBhdHRycykge1xuICAgICAgICAgICAgICAgc2NvcGUudmFsdWUgPSBzY29wZS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgXG4gICAgICAgICAgICAvLyBjaGVjayBtaW5pbXVtIGxlbmdodFxuICAgICAgICAgICAgaWYgKFwibWlubGVuXCIgaW4gYXR0cnMpIHtcbiAgICAgICAgICAgICAgaWYgKHNjb3BlLnZhbHVlLmxlbmd0aCA8IGF0dHJzLm1pbmxlbikge1xuICAgICAgICAgICAgICAgICBzY29wZS5zdGF0dXM9J2ludmFsaWQnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJtc2c9c2NvcGUubmFtZSArICc6IE1pbmludW0gTGVuZ2g9ICcgKyBhdHRycy5taW5sZW4gKyAnIENoYXJhY3RlcnMnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJvcj10cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICgnZW1haWwnIGluIGF0dHJzKSB7XG4gICAgICAgICAgICBpZiAoIWVtYWlscGF0ZXJuLnRlc3QgKHNjb3BlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0YXR1cz0naW52YWxpZCc7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXJybXNnPSdpbnZhbGlkIGVtYWlsIGFkZHJlc3MnO1xuICAgICAgICAgICAgICAgIHNjb3BlLmVycm9yPXRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzY29wZS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICBzY29wZS5zdGF0dXM9J2ludmFsaWQnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJtc2c9c2NvcGUubmFtZSArICc6IFJlcXVpcmVkIEF0dHJpYnV0ZSc7XG4gICAgICAgICAgICAgICAgIHNjb3BlLmVycm9yPXRydWU7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgIC8vIElmIGxvY2FsIGNvbnRyb2wgZmFpbCBsZXQncyByZWZ1c2UgaW5wdXRcbiAgICAgICAgIGlmIChzY29wZS5lcnJvcikge1xuICAgICAgICAgICAgIGlmIChzY29wZS5yZXF1aXJlZCAmJiBzY29wZS52YWxpZCkge1xuICAgICAgICAgICAgICAgICBzY29wZS52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICBpZiAoc2NvcGUubDRhY291bnRlci52YWxpZGF0ZWQgPiAwKSBzY29wZS5sNGFjb3VudGVyLnZhbGlkYXRlZCAtLTtcbiAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgIC8vIHVzZSBjYWxsIHRvIHVwZGF0ZSBmb3JtIHNjb3BlIG9uIGZvcm0gY29tcGxldGVuZXNzXG4gICAgICAgICAgICAgc2NvcGUuY2FsbGJhY2sgKGF0dHJzLm5hbWUsIG51bGwsIHNjb3BlLmRvbmUpO1xuICAgICAgICAgfSBlbHNlIHsgXG4gICAgICAgICAgICAgLy8gbG9jYWxjaGVjayBpcyBPSyBiYWNrdXAgbWF5IG5ldmVydGhlbGVzcyBjaGFuZ2Ugc3RhdHVzIHRvIGZhbHNlXG4gICAgICAgICAgICBpZiAoc2NvcGUucmVxdWlyZWQgICYmICFzY29wZS52YWxpZCkgc2NvcGUubDRhY291bnRlci52YWxpZGF0ZWQgKys7XG4gICAgICAgICAgICBzY29wZS5zdGF0dXM9J3ZhbGlkJztcbiAgICAgICAgICAgIHNjb3BlLnZhbGlkPXRydWU7XG4gICAgICAgICAgICBzY29wZS5jYWxsYmFjayAoYXR0cnMubmFtZSwgc2NvcGUudmFsdWUsIHNjb3BlLmRvbmUpO1xuICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICB9O1xuICAgICBcbiAgICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBmcm9tIGNvbnRyb2xsZXIgdG8gdXBkYXRlIHdpZGdldCBzdGF0dXNcbiAgICAgc2NvcGUuZG9uZT1mdW5jdGlvbiAoZGF0YSkge1xuICAgICAgIGNvbnNvbGUubG9nIChcIlRleHQtSW5wdXQgQ2FsbGJhY2sgSUQ9XCIrIGF0dHJzLm5hbWUgKyBcIiBkYXRhPVwiLCBkYXRhKTtcbiAgICAgICBmb3IgKHZhciBpIGluIGRhdGEpIHNjb3BlW2ldID0gZGF0YVtpXTsgICAgICAgICBcbiAgICAgfTtcbiAgICAgXG4gICAgIC8vIEV4cG9ydCBzb21lIGF0dHJpYnV0ZXMgd2l0aGluIGRpcmVjdGl2ZSBzY29wZSBmb3IgdGVtcGxhdGVcbiAgICAgc2NvcGUubGFiZWwgICAgICAgPSBhdHRycy5sYWJlbDtcbiAgICAgc2NvcGUubmFtZSAgICAgICAgPSBhdHRycy5uYW1lO1xuICAgICBzY29wZS5wbGFjZWhvbGRlciA9IGF0dHJzLnBsYWNlaG9sZGVyO1xuICAgICBzY29wZS50eXBlICAgICAgICA9IGF0dHJzLnR5cGUgfHwgXCJ0ZXh0XCI7XG4gICAgIHNjb3BlLnRpcCAgICAgICAgID0gYXR0cnMudGlwO1xuXG4gICAgIC8vIHNlYXJjaCBmb3IgZm9ybSB3aXRoaW4gcGFyZW50IGVsZW1udHNcbiAgICAgc2NvcGUucGFyZW50ID0gSlFlbXUucGFyZW50IChlbGVtLCBcIkZPUk1cIik7XG5cbiAgICAgLy8gZW1haWwgZW5mb3JjZSBsb3dlcmNhc2UgYW5kIG5vc3BhY2UgICBcbiAgICAgaWYgKFwiZW1haWxcIiBpbiBhdHRycykge1xuICAgICAgICBhdHRycy5sb3dlcmNhc2U9dHJ1ZTsgXG4gICAgICAgIGF0dHJzLm5vc3BhY2U9dHJ1ZTsgXG4gICAgICAgIGF0dHJzLm1pbmxlbj02OyBcbiAgICAgfVxuXG4gICAgIGlmIChzY29wZS5yZXF1aXJlZCkge1xuICAgICAgICAgc2NvcGUubDRhY291bnRlciA9IHNjb3BlLnBhcmVudC5kYXRhIChcImw0YWNvdW50ZXJcIik7XG4gICAgICAgICBpZiAoIXNjb3BlLmw0YWNvdW50ZXIpIHsgXG4gICAgICAgICAgICBzY29wZS5sNGFjb3VudGVyID0gIHtyZXF1aXJlZDoxLCB2YWxpZGF0ZWQ6MH07XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZpZWxkIFwiK3Njb3BlLm5hbWUrXCIgaXMgcmVxdWlyZWQgKDFzdClcIik7XG4gICAgICAgICAgICBzY29wZS5wYXJlbnQuZGF0YSAoXCJsNGFjb3VudGVyXCIsIHNjb3BlLmw0YWNvdW50ZXIpOyBcbiAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgY29uc29sZS5sb2coXCJGaWVsZCBcIitzY29wZS5uYW1lK1wiIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICAgICAgIHNjb3BlLmw0YWNvdW50ZXIucmVxdWlyZWQgKys7XG4gICAgICAgICB9XG4gICAgIH1cbiAgICAgICAgIFxuICAgICAvLyByZWZyZXNoIHZhbGlkYXRpb24gZWFjaCB0aW1lIGNvbnRyb2xlciB1cGRhdGUgdmFsdWVcbiAgICAgc2NvcGUuJHdhdGNoICgndmFsdWUnLCBmdW5jdGlvbigpe1xuICAgICAgICAgaWYoc2NvcGUudmFsdWUpIHNjb3BlLnZhbGlkYXRlKCk7IH1cbiAgICAgKTtcbiAgICBcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogJz0nLFxuICAgICAgICAgICAgdmFsdWU6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbn1dKTtcblxuY29uc29sZS5sb2cgKFwiSW5wdXRUZXh0IExvYWRlZFwiKTtcbn0pKCk7XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5cbihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIHRtcGwgPSAnPGlucHV0LXRleHQgIGNsYXNzPVwicGFzc3dvcmRcIiB0aXA9XCJ7e3RpcDF9fVwiICBwbGFjZWhvbGRlcj1cInt7cGxhY2UxfX1cIicgK1xuICAgICAgICAgICAnbGFiZWw9XCJ7e2xhYmVsMX19XCIgY2FsbGJhY2s9XCJ2YWxpZDFcIiBuYW1lPVwie3tuYW1lfX0tMVwiIHZhbHVlPVwicGFzczFcIiByZXF1aXJlZCBtaW5sZW49XCJ7e21pbmxlbn19XCIgdHlwZT1cInBhc3N3b3JkXCIgPicgK1xuICAgICAgICAgICAnPC9pbnB1dC10ZXh0PicgKyBcbiAgICAgICAgICAgJzxpbnB1dC10ZXh0ICBjbGFzcz1cInBhc3N3b3JkXCIgdGlwPVwidGlwMlwiICBwbGFjZWhvbGRlcj1cInt7cGxhY2UyfX1cIicgK1xuICAgICAgICAgICAnbGFiZWw9XCJ7e2xhYmVsMn19XCIgY2FsbGJhY2s9XCJ2YWxpZDJcIiBuYW1lPVwie3tuYW1lfX0tMlwiIHZhbHVlPVwicGFzczJcIiByZXF1aXJlZCBtaW5sZW49XCJ7e21pbmxlbn19XCIgdHlwZT1cInBhc3N3b3JkXCIgPiAnK1xuICAgICAgICAgICAnPC9pbnB1dC10ZXh0Pic7XG5cbmFuZ3VsYXIubW9kdWxlKCdJbnB1dFBhc3N3b3JkJyxbXSlcblxuLmRpcmVjdGl2ZSgnaW5wdXRQYXNzd29yZCcsIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICBcbiAgICBzY29wZS52YWxpZDEgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc29sZS5sb2cgKFwiQ2xpY2tlZCBJbnB1dFBhc3N3b3JkMSBuYW1lPSVzIHZhbHVlPSVzXCIsIG5hbWUsIHZhbHVlKTsgICAgICAgIFxuICAgICAgICBzY29wZS5maXJzdHB3ZCA9IHZhbHVlO1xuICAgIH07XG4gICAgXG4gICAgc2NvcGUudmFsaWQyID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCBkb25lKSB7ICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2cgKFwiQ2xpY2tlZCBJbnB1dFBhc3N3b3JkMiBuYW1lPSVzIHZhbHVlPSVzXCIsIG5hbWUsIHZhbHVlKTsgICAgICAgIFxuICAgICAgICBcbiAgICAgICAgLy8gaWYgYm90aCBwYXNzd2QgZXF1YWwgdGhlbiBjYWxsIGZvcm0gQ0JcbiAgICAgICAgaWYgKHNjb3BlLmZpcnN0cHdkICE9PSB2YWx1ZSkge1xuICAgICAgICAgIGRvbmUoe3ZhbGlkOiBmYWxzZSwgc3RhdHVzOiAnaW52YWxpZCcsIGVycm1zZzogXCJib3RoIHBhc3N3b3JkIHNob3VsZCBtYXRjaFwifSk7ICBcbiAgICAgICAgfSBlbHNlIHsgIFxuICAgICAgICAgIHNjb3BlLmNhbGxiYWNrIChhdHRycy5uYW1lLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIFxuICAgICB9O1xuICAgICBcbiAgICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBmcm9tIGNvbnRyb2xsZXIgdG8gdXBkYXRlIHdpZGdldCBzdGF0dXNcbiAgICAgc2NvcGUuZG9uZT1mdW5jdGlvbiAoZGF0YSkge1xuICAgICAgIGNvbnNvbGUubG9nIChcIlRleHQtSW5wdXQgQ2FsbGJhY2sgSUQ9XCIrIGF0dHJzLm5hbWUgKyBcIiBkYXRhPVwiLCBkYXRhKTtcbiAgICAgICBmb3IgKHZhciBpIGluIGRhdGEpIHNjb3BlW2ldID0gZGF0YVtpXTsgICAgICAgICBcbiAgICAgfTtcbiAgICAgXG4gICAgIC8vIEV4cG9ydCBzb21lIGF0dHJpYnV0ZXMgd2l0aGluIGRpcmVjdGl2ZSBzY29wZSBmb3IgdGVtcGxhdGVcbiAgICAgc2NvcGUubmFtZSAgID0gYXR0cnMubmFtZTtcbiAgICAgc2NvcGUubGFiZWwxID0gYXR0cnMubGFiZWwgfHwgJ1Bhc3N3b3JkJztcbiAgICAgc2NvcGUubGFiZWwyID0gYXR0cnMubGFiZWwgfHwgJ1Bhc3N3b3JkIFZlcmlmaWNhdGlvbic7XG4gICAgIHNjb3BlLnBsYWNlMSA9IGF0dHJzLnBsYWNlaG9sZGVyMSB8fCAnVXNlciBQYXNzd29yZCc7XG4gICAgIHNjb3BlLnRpcDEgICA9IGF0dHJzLnRpcCB8fCAnQ2hvb3NlIGEgUGFzc3dvcmQnO1xuICAgICBzY29wZS5wbGFjZTIgPSBhdHRycy5wbGFjZWhvbGRlcjEgfHwgJ1Bhc3N3b3JkIFZlcmlmaWNhdGlvbic7XG4gICAgIHNjb3BlLnRpcDIgICA9IGF0dHJzLnRpcCAgICB8fCAnQ29uZmlybWUgeW91ciBQYXNzd29yZCc7XG4gICAgIHNjb3BlLm1pbmxlbiA9IGF0dHJzLm1pbmxlbiB8fCAxMDtcbiAgICAgXG4gICAgIGlmIChcInJlcXVpcmVkXCIgaW4gYXR0cnMpIHNjb3BlLnJlcXVpcmVkID0gJ3JlcXVpcmVkJztcbiAgICAgICAgIFxuICAgIH1cbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgICAgY2FsbGJhY2sgOiAnPScsXG4gICAgICAgIH1cbiAgICB9O1xufSk7XG5cbmNvbnNvbGUubG9nIChcIklucHV0UGFzc3dvcmQgTG9hZGVkXCIpO1xufSkoKTtcbiIsIihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gbGlzdCBhbGwgcmVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgcGFnZSArIGNvbnRyb2xlciBpZiBuZWVkZWRcbmFuZ3VsYXIubW9kdWxlKCdTYW1wbGVNb2R1bGUnLCBbJ1N1Ym1pdEJ1dHRvbicsJ1VwbG9hZEZpbGVzJ10pXG5cbiAgLmNvbnRyb2xsZXIoJ1NhbXBsZUNvbnRyb2xsZXInLCBbXCIkaHR0cFwiLCBmdW5jdGlvbiAoJGh0dHApIHtcbiAgICAgICAgdmFyIHNjb3BlID0gdGhpczsgLy8gSSBoYXRlIEphdmFTY3JpcHRcblxuICAgICAgICBjb25zb2xlLmxvZyAoXCJzYW1wbGUgSW5pdFwiKTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLkZpbGVVcGxvYWRlZCA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJGaWxlVXBsb2FkZWQgcmVzcG9uc2U9JXNcIiwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpKTtcbiAgICAgICAgfTtcbiAgIH1dKTtcblxuY29uc29sZS5sb2cgKFwiU2FtcGxlQ29udHJvbGVyIExvYWRlZFwiKTtcbn0pKCk7ICIsIihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gV0FSTklORzogbWFrZSBzdXJlIHRoYW4gYXBwL2Zyb250ZW5kL3NlcnZpY2VzL0NvbmZpZ0FwcC5qcyBtYXRjaCB5b3VyIHNlcnZlclxuXG4vLyBsaXN0IGFsbCByZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBwYWdlICsgY29udHJvbGVyIGlmIG5lZWRlZFxuYW5ndWxhci5tb2R1bGUoJ0hvbWVNb2R1bGUnLCBbJ1N1Ym1pdEJ1dHRvbicsICdUb2tlblJlZnJlc2gnXSlcblxuICAuY29udHJvbGxlcignSG9tZUNvbnRyb2xsZXInLCBbXCIkaHR0cFwiLCBcIkNvbmZpZ0FwcFwiLCBmdW5jdGlvbiAoJGh0dHAsIENvbmZpZ0FwcCkge1xuICAgICAgICB2YXIgc2NvcGUgPSB0aGlzOyAvLyBJIGhhdGUgSmF2YVNjcmlwdFxuICAgICAgICBzY29wZS51dWlkICAgPVwibm9uZVwiO1xuICAgICAgICBzY29wZS50b2tlbiAgPVwibm9uZVwiO1xuICAgICAgICBzY29wZS5zZXNzaW9uPVwibm9uZVwiO1xuICAgICAgICBzY29wZS5zdGF0dXMgPVwiZXJyLW5vXCI7XG5cbiAgICAgICAgY29uc29sZS5sb2cgKFwiSG9tZSBDb250cm9sbGVyXCIpO1xuICAgICAgICBcbiAgICAgICAgc2NvcGUuUHJvY2Vzc1Jlc3BvbnNlPSBmdW5jdGlvbihkYXRhLCBlcnJjb2RlLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIHZhciBhcGluYW1lPSAnQVBJJysgZGF0YS5yZXF1ZXN0LmFwaS5yZXBsYWNlKCctJywnXycpO1xuICAgICAgICAgICAgc2NvcGUuc3RhdHVzID0gXCJlcnItb2tcIjtcbiAgICAgICAgICAgIHNjb3BlLmVycmNvZGU9IGVycmNvZGU7XG4gICAgICAgICAgICBzY29wZS5yZXF1ZXN0ICA9IGRhdGEucmVxdWVzdDtcbiAgICAgICAgICAgIHNjb3BlLnJlc3BvbnNlID0gZGF0YS5yZXNwb25zZTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gaWYgdG9rZW4gd2FzIHJlZnJlc2ggbGV0J3MgdXBkYXRlIENvbmZpZ0FwcFxuICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50b2tlbikgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4gPSBkYXRhLnJlcXVlc3QudG9rZW47XG4gICAgICAgICAgICBpZiAoZGF0YS5yZXF1ZXN0LnV1aWQpICBDb25maWdBcHAuc2Vzc2lvbi51dWlkICA9IGRhdGEucmVxdWVzdC51dWlkO1xuICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50aW1lb3V0KSAgQ29uZmlnQXBwLnNlc3Npb24udGltZW91dCAgPSBkYXRhLnJlcXVlc3QudGltZW91dDtcblxuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNsZWFuIGV2ZXJ5dGhpbmcgd2hlbiBPcGVuL0Nsb3NlIGlzIGNhbGxlZFxuICAgICAgICAgICAgaWYgKGFwaW5hbWUgPT09IFwiQVBJY3JlYXRlXCIgfHwgYXBpbmFtZSA9PT0gXCJBUElyZXNldFwiKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuQVBJcmVzZXQgID0nJztcbiAgICAgICAgICAgICAgICBzY29wZS5BUEljcmVhdGUgPScnO1xuICAgICAgICAgICAgICAgIHNjb3BlLkFQSXJlZnJlc2g9Jyc7XG4gICAgICAgICAgICAgICAgc2NvcGUuQVBJY2hlY2sgID0nJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlW2FwaW5hbWVdPVwic3VjY2Vzc1wiO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbmV3IHRva2VuIGxldCdzIHVwZGF0ZSBpdFxuICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50b2tlbikgc2NvcGUudG9rZW49ZGF0YS5yZXF1ZXN0LnRva2VuO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJPSzogXCIrIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLlByb2Nlc3NFcnJvcj0gZnVuY3Rpb24oZGF0YSwgZXJyY29kZSwgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICB2YXIgYXBpbmFtZT0gJ0FQSScrZGF0YS5yZXF1ZXN0LmFwaS5yZXBsYWNlKCctJywnXycpO1xuICAgICAgICAgICAgc2NvcGUuc3RhdHVzICAgPSBcImVyci1meFwiO1xuICAgICAgICAgICAgc2NvcGUuZXJyY29kZSAgPSBlcnJjb2RlO1xuICAgICAgICAgICAgc2NvcGUucmVxdWVzdCAgPSBkYXRhLnJlcXVlc3Q7XG4gICAgICAgICAgICBzY29wZS5yZXNwb25zZSA9IFwiXCI7XG4gICAgICAgICAgICBzY29wZVthcGluYW1lXT1cImZhaWxcIjtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiRlg6IFwiKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuT3BlblNlc3Npb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIk9wZW5TZXNzaW9uXCIpOyBcbiAgICAgICAgICAgIHZhciBwb3N0ZGF0YT0gey8qIGFueSBqc29uIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQgKi99O1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5wb3N0KENvbmZpZ0FwcC5zZXNzaW9uLmNyZWF0ZSArICc/dG9rZW49JytDb25maWdBcHAuc2Vzc2lvbi5pbml0aWFsLCBwb3N0ZGF0YSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5Qcm9jZXNzUmVzcG9uc2UpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5Qcm9jZXNzRXJyb3IpO1xuICAgICAgICB9OyAgICAgICAgXG5cbiAgICAgICAgc2NvcGUuQ2hlY2tTZXNzaW9uID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJDbG9zZVNlc3Npb25cIik7XG4gICAgICAgICAgICB2YXIgcG9zdGRhdGE9IHsvKiBhbnkganNvbiB5b3VyIGFwcGxpY2F0aW9uIG1heSBuZWVkICovfTtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gJGh0dHAucG9zdChDb25maWdBcHAuc2Vzc2lvbi5jaGVjayArICc/dG9rZW49JytDb25maWdBcHAuc2Vzc2lvbi50b2tlbiwgcG9zdGRhdGEpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUuUHJvY2Vzc1Jlc3BvbnNlKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUuUHJvY2Vzc0Vycm9yKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLlJlZnJlc2hTZXNzaW9uID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJSZWZyZXNoU2Vzc2lvblwiKTtcbiAgICAgICAgICAgIHZhciBwb3N0ZGF0YT0gey8qIGFueSBqc29uIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQgKi99O1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5wb3N0KENvbmZpZ0FwcC5zZXNzaW9uLnJlZnJlc2ggKyAnP3Rva2VuPScrQ29uZmlnQXBwLnNlc3Npb24udG9rZW4sIHBvc3RkYXRhKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaGFuZGxlci5zdWNjZXNzKHNjb3BlLlByb2Nlc3NSZXNwb25zZSk7XG4gICAgICAgICAgICBoYW5kbGVyLmVycm9yKHNjb3BlLlByb2Nlc3NFcnJvcik7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5SZXNldFNlc3Npb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIlJlc2V0U2Vzc2lvblwiKTtcbiAgICAgICAgICAgIHZhciBwb3N0ZGF0YT0gey8qIGFueSBqc29uIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQgKi99O1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5wb3N0KENvbmZpZ0FwcC5zZXNzaW9uLnJlc2V0ICsgJz90b2tlbj0nK0NvbmZpZ0FwcC5zZXNzaW9uLnRva2VuLCBwb3N0ZGF0YSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5Qcm9jZXNzUmVzcG9uc2UpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5Qcm9jZXNzRXJyb3IpO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgIH1dKTtcblxuY29uc29sZS5sb2cgKFwiU2FtcGxlQ29udHJvbGVyIExvYWRlZFwiKTtcbn0pKCk7ICIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKiBcbiAqIFVzYWdlOlxuICogXG4gKiAgIC8vIG1vdXNlIGV2ZW50IHByb2JhYmx5IHBvaW50IG9uIGljb24gYW5kIG5vdCBvbiBidXR0b24gZGl2XG4gKiAgIC4uLiBuZy1jbGljaz1cIkxvY2tDaGFubmVsKCRldmVudClcbiAgICAgdmFyIHRhcmdldD0gYW5ndWxhci5lbGVtZW50KGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICB2YXIgYnV0dG9uPSBKUWVtdS5GaW5kSW5QYXJlbnQgKHRhcmdldCwgJ2RpdicpO1xuICogXG4gKi9cblxuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuXG4gICAgICAgICAgXG4gICAgLy8gX2FsbCBtb2R1bGVzIG9ubHkgcmVmZXJlbmNlIGRlcGVuZGVuY2llc1xuICAgIGFuZ3VsYXIubW9kdWxlKCdKUXVlcnlFbXUnLCBbXSlcblxuICAgICAgICAgICAgLy8gRmFjdG9yeSBpcyBhIHNpbmdsZXRvbiBhbmQgc2hhcmUgaXRzIGNvbnRleHQgd2l0aGluIGFsbCBpbnN0YW5jZXMuXG4gICAgICAgICAgICAuZmFjdG9yeSgnSlFlbXUnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgRmluZEluUGFyZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VhcmNoID0gc2VsZWN0b3IudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBhcmVudFswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaCA9PT0gcGFyZW50WzBdLnRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSAgLy8gSFRNTERpdkVsZW1lbnQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YXIgIEZpbmRCeVRhZz0gZnVuY3Rpb24gKGVsZW1lbnQsIHRhZywgc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaCA9IHNlbGVjdG9yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXBlICAgPSB0YWcudG9Mb3dlckNhc2UoKSsgXCJOYW1lXCI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IGVsZW1lbnQuY2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNoaWxkcmVuWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VhcmNoID09PSBjaGlsZHJlblswXVt0eXBlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gIC8vIEhUTUxEaXZFbGVtZW50IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4ubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YXIgIEZpbmRCeUNsYXNzPSBmdW5jdGlvbiAoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaCA9IHNlbGVjdG9yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IGVsZW1lbnQuY2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNoaWxkcmVuWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW4uaGFzQ2xhc3Moc2VhcmNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gIC8vIEhUTUxEaXZFbGVtZW50IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4ubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHZhciBteU1ldGhvZHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIEZpbmRJblBhcmVudDogRmluZEluUGFyZW50LFxuICAgICAgICAgICAgICAgICAgICBGaW5kQnlUYWc6IEZpbmRCeVRhZyxcbiAgICAgICAgICAgICAgICAgICAgRmluZEJ5Q2xhc3M6IEZpbmRCeUNsYXNzXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBteU1ldGhvZHM7XG4gICAgICAgICAgICB9KTtcblxufSkoKTsiLCJ2YXIgZm91bmRhdGlvblJvdXRlcyA9IFt7XCJuYW1lXCI6XCJteXNhbXBsZVwiLFwidXJsXCI6XCIvc2FtcGxlXCIsXCJjb250cm9sbGVyXCI6XCJTYW1wbGVDb250cm9sbGVyIGFzIGN0cmxcIixcImFuaW1hdGlvbkluXCI6XCJzbGlkZUluUmlnaHRcIixcInBhdGhcIjpcInBhZ2VzL1NhbXBsZS9TYW1wbGUuaHRtbFwifSx7XCJuYW1lXCI6XCJteWhvbWVcIixcInVybFwiOlwiL2hvbWVcIixcImNvbnRyb2xsZXJcIjpcIkhvbWVDb250cm9sbGVyIGFzIGN0cmxcIixcImFuaW1hdGlvbkluXCI6XCJzbGlkZUluUmlnaHRcIixcInBhdGhcIjpcInBhZ2VzL0hvbWUvSG9tZS5odG1sXCJ9XTsgXG4iLCIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIF9hbGwgbW9kdWxlcyBvbmx5IHJlZmVyZW5jZSBkZXBlbmRlbmNpZXNcbiAgICBhbmd1bGFyLm1vZHVsZSgnQ29uZmlnQXBwJywgW10pXG5cbiAgICAgICAgICAgIC8vIEZhY3RvcnkgaXMgYSBzaW5nbGV0b24gYW5kIHNoYXJlIGl0cyBjb250ZXh0IHdpdGhpbiBhbGwgaW5zdGFuY2VzLlxuICAgICAgICAgICAgLmZhY3RvcnkoJ0NvbmZpZ0FwcCcsIFtcIiRsb2NhdGlvblwiLCBcIiR3aW5kb3dcIiwgZnVuY3Rpb24gKCRsb2NhdGlvbiwgJHdpbmRvdykge1xuXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cgKFwiVVJMPVwiKyAkbG9jYXRpb24udXJsKCkgKyBcIiBRdWVyeT1cIiArIGxvY2F0aW9uLmhyZWYrIFwiIHdpbmRvdz1cIiArIGRvY3VtZW50LnJlZmVycmVyKTtcblxuICAgICAgICAgICAgICAgIHZhciBteUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aHM6IHsgLy8gV2FybmluZyBwYXRocyBzaG91bGQgZW5kIHdpdGggL1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UgOiAnaW1hZ2VzLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI6ICdpbWFnZXMvYXZhdGFycy8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8gOiAnaW1hZ2VzL2F1ZGlvLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaSA6ICdpbWFnZXMvYXBwbGkvJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgbXlhcGk6IHsgLy8gV2FybmluZyBwYXRocyBzaG91bGQgZW5kIHdpdGggL1xuICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA6ICcvYXBpL215cGx1Z2luL3h4eHgnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uOiB7IC8vIFRob3NlIGRhdGEgYXJlIHVwZGF0ZWQgYnkgc2Vzc2lvbiBzZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSAgOiAnL2FwaS90b2tlbi9jcmVhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoIDogJy9hcGkvdG9rZW4vcmVmcmVzaCcsXG4gICAgICAgICAgICAgICAgICAgICAgIGNoZWNrICAgOiAnL2FwaS90b2tlbi9jaGVjaycsXG4gICAgICAgICAgICAgICAgICAgICAgIHJlc2V0ICAgOiAnL2FwaS90b2tlbi9yZXNldCcsXG4gICAgICAgICAgICAgICAgICAgICAgIHBpbmcgICAgOiAnL2FwaS90b2tlbi9jaGVjaycsXG4gICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWwgOiAnMTIzNDU2Nzg5JywgIC8vIHR5cGljYWwgZGV2IGluaXRpYWwgdG9rZW5cbiAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCA6IDM2MDAsICAgICAgICAgLy8gdGltZW91dCBpcyB1cGRhdGVkIGNsaWVudCBzZXNzaW4gY29udGV4dCBjcmVhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBwaW5ncmF0ZTogNjAsICAgICAgICAgICAvLyBQaW5nIHJhdGUgdG8gY2hlY2sgaWYgc2VydmVyIGlzIHN0aWxsIGFsaXZlXG4gICAgICAgICAgICAgICAgICAgICAgIHV1aWQgICAgOiAnJywgICAgICAgICAgIC8vIHV1aWQgbWFwIHdpdGggY29va2llIG9yIGxvbmcgdGVybSBzZXNzaW9uIGFjY2VzcyBrZXlcbiAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gICA6ICcnICAgICAgICAgICAgLy8gd2lsbCBiZSByZXR1cm5lZCBmcm9tIGF1dGhlbnRpY2F0aW9uICAgIFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBteUNvbmZpZztcbiAgICAgICAgICAgIH1dKTtcblxufSkoKTsiLCIoZnVuY3Rpb24oKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICBhbmd1bGFyLm1vZHVsZSgnQUZCY2xpZW50JywgWyAvLyBXYXJuaW5nOiBBcHBuYW1lIHNob3VsZCBmaXQgd2l0aCBndWxwZmlsZS5qcyAmIGluZGV4Lmh0bWxcbiAgICAndWkucm91dGVyJyxcbiAgICAnbmdBbmltYXRlJyxcblxuICAgIC8vZm91bmRhdGlvblxuICAgICdmb3VuZGF0aW9uJyxcbiAgICAnZm91bmRhdGlvbi5keW5hbWljUm91dGluZycsXG4gICAgJ2ZvdW5kYXRpb24uZHluYW1pY1JvdXRpbmcuYW5pbWF0aW9ucycsXG4gICAgXG4gICAgLy8gZXh0ZXJuYWwgY29tcG9uZW50c1xuICAgICd1aS1ub3RpZmljYXRpb24nLFxuICAgIFxuICAgIC8vIEFwcGxpY2F0aW9uIENvbXBvbmVudHNcbiAgICAnQ29uZmlnQXBwJyxcbiAgICAnSlF1ZXJ5RW11JyxcbiAgICAnSG9tZU1vZHVsZScsXG4gICAgJ1NhbXBsZU1vZHVsZScsXG4gICAgJ1VwbG9hZEZpbGVzJyxcbiAgICAnTGlua0J1dHRvbicsXG4gICAgJ1Rva2VuUmVmcmVzaCcsXG4gICAgJ1JhbmdlU2xpZGVyJyxcbiAgICAnTW9kYWxOb3RpZmljYXRpb24nXG4gIF0pXG4gICAgLmNvbmZpZyhjb25maWcpXG4gICAgLnJ1bihydW4pXG4gIDtcblxuICBjb25maWcuJGluamVjdCA9IFsnJHVybFJvdXRlclByb3ZpZGVyJywgJyRsb2NhdGlvblByb3ZpZGVyJ107XG4gIFxuICBjb25zb2xlLmxvZyAoXCIqKipsb2NhdGlvbj1cIiArIHdpbmRvdy5sb2NhdGlvbiArIFwiIHNlYXJjaFwiICsgd2luZG93LnNlYXJjaCk7XG5cbiAgZnVuY3Rpb24gY29uZmlnKCR1cmxQcm92aWRlciwgJGxvY2F0aW9uUHJvdmlkZXIsIENvbmZpZ0FwcCkge1xuICAgICR1cmxQcm92aWRlci5vdGhlcndpc2UoJy9ob21lJyk7XG5cbiAgICAvLyBodHRwczovL2RvY3MuYW5ndWxhcmpzLm9yZy9lcnJvci8kbG9jYXRpb24vbm9iYXNlXG4gICAgJGxvY2F0aW9uUHJvdmlkZXIuaHRtbDVNb2RlKHRydWUpLmhhc2hQcmVmaXgoJyEnKTtcbiAgICBcbiAgfVxuXG4gIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICBGYXN0Q2xpY2suYXR0YWNoKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbmNvbnNvbGUubG9nIChcIm9wYT1BRkJjbGllbnQgTG9hZGVkXCIpO1xufSkoKTtcbiIsIihmdW5jdGlvbigpIHthbmd1bGFyLm1vZHVsZSgnQUZCY2xpZW50JykucnVuKFsnJHRlbXBsYXRlQ2FjaGUnLCBmdW5jdGlvbigkdGVtcGxhdGVDYWNoZSkgeyR0ZW1wbGF0ZUNhY2hlLnB1dCgncGFnZXMvU2FtcGxlL1NhbXBsZS5odG1sJyxcbiAgICAnPGgxPjxpbWcgY2xhc3M9XCJsb2dvXCIgc3JjPVwiaW1hZ2VzL2xvZ28vdHJpc2tlbF9pb3RfYnpoeDI1MC5wbmdcIiBhbHQ9XCJJb1QuYnpoIExvZ29cIiBzdHlsZT1cImhlaWdodDoxNTBweFwiPiBQb3N0IEZpbGUgVXBsb2FkPC9oMT48ZGl2IGNsYXNzPVwic2FtcGxlLWJveCBib3gtY29udGVudFwiPjx1cGxvYWQtaW1hZ2UgbmFtZT1cImF2YXRhclwiIGNhdGVnb3J5PVwiYXZhdGFyXCIgdGh1bWJuYWlsPVwidHV4LXZpc2l0b3IucG5nXCIgbWF4c2l6ZT1cIjEwMFwiIHBvc3R1cmw9XCIvYXBpL3Bvc3QvdXBsb2FkLWltYWdlXCIgY2FsbGJhY2s9XCJjdHJsLkZpbGVVcGxvYWRlZFwiIGFjY2VwdD1cImltYWdlXCIgdGl0bGU9XCJDaGFuZ2UgeW91ciBBdmF0YXJcIj48L3VwbG9hZC1pbWFnZT48dXBsb2FkLWF1ZGlvIG5hbWU9XCJtdXNpY1wiIHBvc3R1cmw9XCIvYXBpL3Bvc3QvdXBsb2FkLW11c2ljXCIgY2FsbGJhY2s9XCJjdHJsLkZpbGVVcGxvYWRlZFwiIHRpdGxlPVwiVXBsb2FkIHlvdXIgTXVzaWNcIj48L3VwbG9hZC1hdWRpbz48dXBsb2FkLWFwcGxpIG5hbWU9XCJhcHBsaVwiIHBvc3R1cmw9XCIvYXBpL3Bvc3QvdXBsb2FkLWFwcGxpXCIgY2FsbGJhY2s9XCJjdHJsLkZpbGVVcGxvYWRlZFwiIHRpdGxlPVwiVXBsb2FkIEFHTCBBcHBcIj48L3VwbG9hZC1hcHBsaT48L2Rpdj48bGluay1idXR0b24gaHJlZj1cImhvbWVcIiBpY29uPVwiZmktaG9tZVwiIGxhYmVsPVwiaG9tZVwiPjwvbGluay1idXR0b24+Jyk7fV0pO1xufSkoKTtcbiIsIihmdW5jdGlvbigpIHthbmd1bGFyLm1vZHVsZSgnQUZCY2xpZW50JykucnVuKFsnJHRlbXBsYXRlQ2FjaGUnLCBmdW5jdGlvbigkdGVtcGxhdGVDYWNoZSkgeyR0ZW1wbGF0ZUNhY2hlLnB1dCgncGFnZXMvSG9tZS9Ib21lLmh0bWwnLFxuICAgICc8aDM+PGltZyBjbGFzcz1cImxvZ29cIiBzcmM9XCJpbWFnZXMvbG9nby90cmlza2VsX2lvdF9iemh4MjUwLnBuZ1wiIGFsdD1cIklvVC5iemggTG9nb1wiIHN0eWxlPVwiaGVpZ2h0OjE1MHB4XCI+IEFwcCBGcmFtZXdvcmsgQmluZGVyIFNpbXBsZSBDbGllbnQ8L2gzPjx0b2tlbi1yZWZyZXNoIGF1dG9sb2c9XCJ0cnVlXCI+PC90b2tlbi1yZWZyZXNoPjxkaXYgY2xhc3M9XCJidXR0b24tYm94IGJveC1jb250ZW50XCI+PHN1Ym1pdC1idXR0b24gY2xhc3M9XCJzZXNzaW9uLWJ1dHRvbiB7e2N0cmwuQVBJY3JlYXRlfX1cIiBpY29uPVwiZmktdW5sb2NrXCIgbGFiZWw9XCJPcGVuXCIgY2xpY2tlZD1cImN0cmwuT3BlblNlc3Npb25cIj48L3N1Ym1pdC1idXR0b24+PHN1Ym1pdC1idXR0b24gY2xhc3M9XCJzZXNzaW9uLWJ1dHRvbiB7e2N0cmwuQVBJY2hlY2t9fVwiIGljb249XCJmaS1jaGVja2JveFwiIGxhYmVsPVwiQ2hlY2tcIiBjbGlja2VkPVwiY3RybC5DaGVja1Nlc3Npb25cIj48L3N1Ym1pdC1idXR0b24+PHN1Ym1pdC1idXR0b24gY2xhc3M9XCJzZXNzaW9uLWJ1dHRvbiB7e2N0cmwuQVBJcmVmcmVzaH19XCIgaWNvbj1cImZpLWFycm93cy1jb21wcmVzc1wiIGxhYmVsPVwiUmVmcmVzaFwiIGNsaWNrZWQ9XCJjdHJsLlJlZnJlc2hTZXNzaW9uXCI+PC9zdWJtaXQtYnV0dG9uPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLkFQSXJlc2V0fX1cIiBpY29uPVwiZmktbG9ja1wiIGxhYmVsPVwiQ2xvc2VcIiBjbGlja2VkPVwiY3RybC5SZXNldFNlc3Npb25cIj48L3N1Ym1pdC1idXR0b24+PC9kaXY+PGRpdiBjbGFzcz1cIm1lc3NhZ2UtYm94IGJveC1jb250ZW50IHZlcnRpY2FsIGdyaWQtZnJhbWVcIj48ZGl2IGNsYXNzPVwicmVzcG9uc2VcIj48c3BhbiBjbGFzcz1cImdyaWQtY29udGVudCBub3Njcm9sbCByZXEge3tjdHJsLnN0YXR1c319XCI+cmVxPSB7e2N0cmwucmVxdWVzdH19PC9zcGFuPiA8c3BhbiBjbGFzcz1cImdyaWQtY29udGVudCBub3Njcm9sbCByZXMge3tjdHJsLnN0YXR1c319XCI+cmVzPSB7e2N0cmwucmVzcG9uc2V9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJncmlkLWNvbnRlbnQgbm9zY3JvbGwgc3RhdHVzIHt7Y3RybC5zdGF0dXN9fVwiPnN0YXR1cz0ge3tjdHJsLmVycmNvZGV9fTwvc3Bhbj48L2Rpdj48L2Rpdj48bGluay1idXR0b24gaHJlZj1cInNhbXBsZVwiIGljb249XCJmaS1ob21lXCIgbGFiZWw9XCJzYW1wbGVcIj48L2xpbmstYnV0dG9uPicpO31dKTtcbn0pKCk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
+!function(){"use strict";var e='<div ng-click="clicked()"> <span><i class="{{icon}}"></i><span>{{label}}</span></div>';angular.module("SubmitButton",[]).directive("submitButton",function(){function t(e,t,n){e.icon=n.icon||"fi-foot",e.label=n.label||"Next",t.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:t,scope:{clicked:"="}}})}(),function(){"use strict";function e(e){var t=[],n=[];this.getId=function(){return e.sliderid},this.getCbHandle=function(){return e.cbhandle},this.getView=function(a){return a||(a=0),e.value[a]===t[a]?n[a]:(t[a]=e.value[a],e.formatter?n[a]=e.formatter(e.value[a],e.ctrlhandle):n[a]=e.value[a],n[a])},this.updateClass=function(t,n){e.updateClass(t,n)},this.forceRefresh=function(t){e.forceRefresh(t)},this.getValue=function(t){return t||(t=0),e.value[t]},this.getRelative=function(t){return t||(t=0),e.relative[t]},this.setValue=function(t,n){n||(n=0),e.setValue(t,n)},this.setDisable=function(t){e.setDisable(t)}}var t=angular.module("RangeSlider",[]);t.directive("rangeSlider",["$log","$document","$timeout",function(t,n,a){function i(t,i,s,o){t.initWidget=function(e){e.byStep&&(t.byStep=parseInt(e.byStep)),e.notMore&&(t.notMore=parseInt(e.notMore)),e.notLess&&(t.notLess=parseInt(e.notLess)),e.id&&(t.sliderid=e.id),void 0!==e.value&&(t.value=e.value,t.forceRefresh(50))},t.forceRefresh=function(e){var n=t.value;t.value=[void 0,void 0],a(function(){t.setValue(n[0],0),t.dual&&t.setValue(n[1],1)},e)},t.updateClass=function(e,t){t?i.addClass(e):i.removeClass(e)},t.setDisable=function(e){e?(i.addClass("disable"),t.handles[0].css("visibility","hidden"),t.dual&&t.handles[1].css("visibility","hidden")):(i.removeClass("disable"),t.handles[0].css("visibility","visible"),t.dual&&t.handles[1].css("visibility","visible"))},t.normalize=function(e){var n,a=t.notMore-t.notLess,i=e*a;if(t.byStep>0){var s=(i-i%t.byStep)/t.byStep,o=i%t.byStep,l=o>=.5*t.byStep?t.byStep:0;return n=s*t.byStep+l+t.notLess}if(t.byStep<0){var r=Math.pow(10,-1*t.byStep);return n=t.notLess+parseInt(i*r)/r}return i},t.getValue=function(e,n){t.vertical?t.relative[n]=(e-t.bounds.handles[n].getBoundingClientRect().height)/(t.bounds.bar.getBoundingClientRect().height-t.bounds.handles[n].getBoundingClientRect().height):t.relative[n]=e/(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[n].getBoundingClientRect().width);var a=t.normalize(t.relative[n]);a!==t.value[n]&&(a<t.startValue&&(a=t.startValue),a>t.stopValue&&(a=t.stopValue),t.formatter?t.viewValue=t.formatter(a,t.ctrlhandle):t.viewValue=a,t.displays[n]&&t.displays[n].html(t.viewValue),t.value[n]=a,o&&o.$setViewValue(t.viewValue),t.$apply(),a>t.startValue&&a<t.stopValue&&t.translate(e,n))},t.setStart=function(e){var n;e>t.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(n=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",n+"px")):(n=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("width",n+"px")),t.startValue=e},t.setStop=function(e){var n;e<t.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(n=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",n+"px")):(n=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.stop.css({right:0,width:t.bounds.bar.getBoundingClientRect().width-n+"px"})),t.stopValue=e},t.translate=function(e,n){var a;if(t.vertical){var i=t.bounds.bar.getBoundingClientRect().height-e;if(t.handles[n].css({"-webkit-transform":"translateY("+i+"px)","-moz-transform":"translateY("+i+"px)","-ms-transform":"translateY("+i+"px)","-o-transform":"translateY("+i+"px)",transform:"translateY("+i+"px)"}),t.dual){if(t.relative[1]&&t.relative[0]){var s=(t.relative[1]-t.relative[0])*t.bounds.bar.getBoundingClientRect().height;a=t.relative[0]*t.bounds.bar.getBoundingClientRect().height,t.slider.css({bottom:a+"px",height:s+"px"})}}else t.slider.css("height",e+"px")}else if(t.handles[n].css({"-webkit-transform":"translateX("+e+"px)","-moz-transform":"translateX("+e+"px)","-ms-transform":"translateX("+e+"px)","-o-transform":"translateX("+e+"px)",transform:"translateX("+e+"px)"}),t.dual){if(t.relative[1]&&t.relative[0]){var o=(t.relative[1]-t.relative[0])*t.bounds.bar.getBoundingClientRect().width;a=t.relative[0]*t.bounds.bar.getBoundingClientRect().width,t.slider.css({left:a+"px",width:o+"px"})}}else t.slider.css("width",e+"px")},t.setValue=function(e,n){var a;e!==t.value[n]&&(void 0===e&&(e=0),e>t.notMore&&(e=t.notMore),e<t.notLess&&(e=t.notLess),t.vertical?(t.relative[n]=(e-t.notLess)/(t.notMore-t.notLess),0===n&&(a=t.relative[n]*t.bounds.bar.getBoundingClientRect().height+t.bounds.handles[n].getBoundingClientRect().height/2),1===n&&(a=t.relative[n]*t.bounds.bar.getBoundingClientRect().height)):(t.relative[n]=(e-t.notLess)/(t.notMore-t.notLess),a=t.relative[n]*(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[n].getBoundingClientRect().width)),t.translate(a,n),t.value[n]=e,t.formatter?t.viewValue=t.formatter(e,void 0):t.viewValue=e,o&&o.$setViewValue(t.viewValue),t.displays[n]&&t.displays[n].html(t.viewValue))},t.keydown=function(e){switch(e.keyCode){case 39:case 38:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]+t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]+1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 37:case 40:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]-t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]-1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 27:t.handles[t.actif][0].blur()}},t.moveHandle=function(e,n,a){var i;t.vertical?(i=t.bounds.bar.getBoundingClientRect().bottom-a,i>t.bounds.bar.getBoundingClientRect().height&&(i=t.bounds.bar.getBoundingClientRect().height),i<t.bounds.handles[e].getBoundingClientRect().height&&(i=t.bounds.handles[e].getBoundingClientRect().height)):(i=n-t.bounds.bar.getBoundingClientRect().left,0>i&&(i=0),n+t.bounds.handles[e].getBoundingClientRect().width>t.bounds.bar.getBoundingClientRect().right&&(i=t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[e].getBoundingClientRect().width)),t.getValue(i,e),t.dual&&t.value[0]>t.value[1]&&(0===e?t.setValue(t.value[0],1):t.setValue(t.value[1],0))},t.focusCB=function(e){e?n.on("keydown",t.keydown):n.unbind("keydown",t.keydown)},t.touchBarCB=function(e){var n,a=0,i=e.changedTouches,s=t.value[a];if(e.preventDefault(),t.dual){n=t.vertical?(i[0].pageY-t.bounds.bar.getBoundingClientRect().bottom)/t.bounds.bar.getBoundingClientRect().height:(i[0].pageX-t.bounds.bar.getBoundingClientRect().left)/t.bounds.bar.getBoundingClientRect().width;var o=Math.abs(n-t.relative[0]),l=Math.abs(n-t.relative[1]);o>l&&(a=1)}t.moveHandle(a,i[0].pageX,i[0].pageY),t.callback&&s!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)},t.touchHandleCB=function(e,a){function s(e){e.preventDefault();for(var n=e.changedTouches,i=0;i<n.length;i++)t.moveHandle(a,n[i].pageX,n[i].pageY)}function o(e){n.unbind("touchmove",s),n.unbind("touchend",o),i.on("touchstart",t.touchBarCB),t.callback&&l!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)}var l=t.value[a];e.preventDefault(),n.on("touchmove",s),n.on("touchend",o),i.unbind("touchstart",t.touchBarCB)},t.handleCB=function(e,a){function i(e){t.moveHandle(a,e.clientX,e.clientY)}function o(){n.unbind("mousemove",i),n.unbind("mouseup",o),t.callback&&l!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)}if(!s.automatic){var l=t.value[a];e.preventDefault(),n.on("mousemove",i),n.on("mouseup",o),t.handles[a][0].focus(),t.actif=a}},t.find=function(e,t){var n;n=t?t[0].querySelector(e):i[0].querySelector(e);var a=angular.element(n);return a},t.initialSettings=function(e){var n;t.value=[],t.relative=[],null===t.precision&&(n=(""+t.byStep).match(/\.([\d]*)/),t.precision=n&&n[1]?n[1].length:0),i.on("touchstart",t.touchBarCB),t.handles[0].on("touchstart",function(e){t.touchHandleCB(e,0)}),t.dual&&(t.handles[1].addClass("range-slider-handle"),t.handles[1].on("touchstart",function(e){t.touchHandleCB(e,1)}),t.initvalues||t.setValue(e[1],1)),t.initvalues?t.initWidget(t.initvalues):t.setValue(e[0],0)},t.init=function(){if(t.sliderid=s.id||"slider-"+parseInt(1e3*Math.random()),t.startValue=-(1/0),t.stopValue=1/0,t.byStep=parseInt(s.byStep)||1,t.vertical=s.vertical||!1,t.dual=s.dualHandles||!1,t.trigger_input_change=!1,t.notMore=parseInt(s.notMore)||100,t.notLess=parseInt(s.notLess)||0,t.vertical&&i.addClass("vertical-range"),t.handles=[t.find(".handle-min"),t.find(".handle-max")],t.bar=i,t.slider=t.find(".range-slider-active-segment"),t.start=t.find(".ibz-range-slider-start"),t.stop=t.find(".ibz-range-slider-stop"),t.disable=s.disable||!1,t.ctrlhandle=new e(t),t.bounds={bar:i[0],handles:[t.handles[0][0],t.handles[1][0]]},"true"===s.disable&&t.setDisable(!0),s.displayTarget)switch(s.displayTarget){case!0:case"handle":t.displays=t.handles,t.handles[0].addClass("ibz-range-slider-display"),t.dual&&t.handles[1].addClass("ibz-range-slider-display");break;default:t.displays=[n.getElementById(s.displayTarget)]}else t.displays=[];if(s.initial){var a=s.initial.split(",");t.initial=[void 0!==a[0]?parseInt(a[0]):t.notLess,void 0!==a[1]?parseInt(a[1]):t.notMore]}else t.initial=[t.ngModel,t.ngModel];t.$watch("startAt",function(){t.value<t.startAt,t.startAt&&t.setStart(t.startAt)}),t.$watch("stopAt",function(){t.value>t.stopAt,t.stopAt&&t.setStop(t.stopAt)}),t.initialSettings(t.initial)},t.init(),t.$watch("inithook",function(){t.inithook&&t.inithook(t.ctrlhandle)}),t.$watch("initvalues",function(){t.initvalues&&t.initWidget(t.initvalues)}),t.$watch("ngModel",function(e){t.setValue(e,0)})}var s='<div class="ibz-range-slider range-slider" title="{{title}}"data-slider><span class="range-slider-handle handle-min" ng-mousedown="handleCB($event,0)" ng-focus="focusCB(true)" ng-blur="focusCB(false)" role="slider" tabindex="0"></span><span class="handle-max" ng-mousedown="handleCB($event,1)" ng-focus="focusCB(true)" ng-blur="focusCB(false)" role="slider" tabindex="0"></span><span class="range-slider-active-segment"></span><span class="ibz-range-slider-start" ></span> <span class="ibz-range-slider-stop"></span> <input id={{sliderid}} type="hidden"></div>';return{restrict:"E",scope:{startAt:"=",stopAt:"=",callback:"=",formatter:"=",inithook:"=",cbhandle:"=",initvalues:"=",ngModel:"="},require:"?ngModel",template:s,replace:!0,link:i}}])}(),function(){"use strict";var e='<div class="afb-monitor" ng-click="getping()"><span class="afb-refresh-token" >afb://{{hostname}}:{{httpdport}}</span><i class="{{icon}}"></i></div>';angular.module("TokenRefresh",["ConfigApp","ModalNotification"]).directive("tokenRefresh",["$timeout","$http","$location","Notification","ConfigApp",function(t,n,a,i,s){function o(e,o,l){e.status=void 0,e.online=function(){o.addClass("online"),o.removeClass("offline")},e.offline=function(){o.addClass("offline"),o.removeClass("online")},e.onerror=function(t,n,a){e.status!==!1&&(i.warning({message:"AppFramework Binder Lost",delay:5e3}),e.offline()),e.status=0},e.onsuccess=function(t,n,a,o){e.status!==!0&&(t.request.token&&(s.session.token=t.request.token),t.request.uuid&&(s.session.uuid=t.request.uuid),t.request.timeout&&(s.session.timeout=t.request.timeout),i.success({message:"AppFramework Binder Back to Live",delay:3e3}),e.online()),e.status=1},e.getping=function(){var a=n.get(s.session.ping+"?token="+s.session.token);a.success(e.onsuccess),a.error(e.onerror),t(e.getping,1e3*s.session.pingrate)},e.refresh=function(){var a=n.get(s.session.refresh+"?token="+s.session.token);a.success(e.onsuccess),a.error(e.onerror),t(e.refresh,250*s.session.timeout)},e.tkcreate=function(){var t=n.get(s.session.create+"?token="+s.session.initial);t.success(e.onsuccess),t.error(e.onerror)},e.icon=l.icon||"fi-lightbulb",e.hostname=a.host(),e.httpdport=a.port(),e.autolog=JSON.parse(l.autolog||!1),e.autolog&&e.tkcreate(),t(e.getping,1e3*s.session.pingrate),t(e.refresh,250*s.session.timeout)}return{template:e,scope:{callback:"="},restrict:"E",link:o}}])}(),function(){"use strict";var e='<div class="tip-modal-popup"><i class="{{icon}}"></i><span>{{tip}}</span></span></div>';angular.module("ModalNotification",[]).directive("tipModal",["$timeout",function(t){function n(e,n,a){function i(){function n(){e.show&&e.modal.css({opacity:1,visibility:"visible"})}e.show=!0,e.timeout=t(n,e.delay)}function s(){e.show=!1,e.modal.css({opacity:0,visibility:"hidden"})}e.parent=n.parent(),e.modal=n.find("div"),e.icon=a.icon||"fi-lightbulb",e.parent.addClass("as-modal-tip"),e.parent.bind("click",s),e.parent.bind("focus",i),e.parent.bind("mouseover",i),e.parent.bind("mouseleave",s),e.parent.bind("blur",s),e.delay=a.delay||1e3}return{restrict:"E",template:e,link:n,scope:{tip:"="}}}])}(),function(){"use strict";var e='<span title="Goto: {{href}}" ng-click="clicked()"><i class="{{icon}}"></i><span>{{label}}</span></span>';angular.module("LinkButton",[]).directive("linkButton",["$location",function(t){function n(e,n,a){e.clicked=function(){a.query?t.path(a.href).search(a.query):t.path(a.href)},e.icon=a.icon||"fi-link",e.label=a.label||"Jump",e.href=a.href||"/home",n.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:n,scope:{}}}])}(),function(){"use strict";function e(e,t,n,a,i){var s=new XMLHttpRequest,o=new FormData,l=function(e){i(e)};s.upload.onprogress=function(t){var n=Math.round(t.lengthComputable?100*t.loaded/t.total:0);e.slider&&e.slider.setValue(n)},s.onload=function(){t.addClass("success"),t.removeClass("error");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)},s.onerror=function(){t.addClass("error"),t.removeClass("success");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)},s.onabort=function(){t.addClass("error"),t.removeClass("success");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)};for(var r=0;r<a.length;r++){var u=a[r];if(u.type.match(e.mimetype)){if(u.size>1024*e.maxsize)return e.thumbnail=e.istoobig,void e.$apply("thumbnail");if(isNaN(u.size))return e.thumbnail=e.isnotvalid,void e.$apply("thumbnail");if(e.Basename=u.name.split("/").reverse()[0],e.imgElem[0].file=u,i){var c=new FileReader;c.readAsArrayBuffer(u),c.onload=l}o.append(e.name,u,u.name)}}s.open("POST",n,!0),s.send(o)}var t='<input type="file" name="{{name}}-input" onchange="angular.element(this).scope().UpLoadFile(this.files)" accept="{{mimetype}}" style="display:none"><div class="upload-file" ng-click="imgClicked()"><img id="{{name}}-img" src="{{thumbnail}}"><range-slider ng-show="!noslider" id="{{name}}-slider" automatic=true inithook="SliderInitCB"></range-slider></div>';angular.module("UploadFiles",["ConfigApp","ModalNotification","RangeSlider"]).directive("uploadImage",["ConfigApp","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=function(e){return t.imgElem[0].src=window.URL.createObjectURL(new Blob([e.target.result],{type:"image"})),!0},l=i.posturl+"?token="+n.session.token;new e(t,a,l,s,o)},t.name=i.name||"avatar",t.category=i.category||"image",t.mimetype=(i.accept||"image")+"/*",t.maxsize=i.maxsize||100,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"tux-bzh.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}]).directive("uploadAudio",["ConfigApp","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=i.posturl+"?token="+n.session.token;new e(t,a,o,s,!1)},t.name=i.name||"audio",t.category=i.category||"audio",t.mimetype=(i.accept||"audio")+"/*",t.maxsize=i.maxsize||1e4,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"upload-music.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}]).directive("uploadAppli",["ConfigApp","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=function(e){var a=new JSZip(e.target.result),i=a.file("afa-pkg/thumbnail.jpg");return i?(t.imgElem[0].src=window.URL.createObjectURL(new Blob([i.asArrayBuffer()],{type:"image"})),!0):(t.thumbnail=n.paths[t.category]+"isnotvalid.png",t.$apply("thumbnail"),!1)},l=i.posturl+"?token="+n.session.token;new e(t,a,l,s,o)},t.name=i.name||"appli",t.category=i.category||"appli",t.mimetype=i.accept||".zip",t.maxsize=i.maxsize||1e5,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"upload-appli.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}])}(),function(){"use strict";var e='<tip-modal tip="tip"></tip-modal><label for="{{name}}-intext">{{label}} <i ng-show="required" ng-click="ToBeDefined" class="required {{status}} fi-checkbox" title="Free Value But Mandatory Argument" alt="?"> &nbsp; </i></label><input type="{{type}}" id="{{name}}-intext" placeholder="{{placeholder}}" class="status-{{status}}" ng-model="value" ng-blur="validate()" ng-focus="selected()" ng-model-options="{ updateOn: \'default blur\', debounce: {default: 500, blur: 0} }"><alert data-ng-show="!valid&&errmsg">{{errmsg}}</alert>',t=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;angular.module("InputText",["JQueryEmu"]).directive("inputText",["JQemu",function(n){function a(e,a,i){e.error=!1,e.valid=!1,e.status="untouch",e.input=a.find("input"),e.required=0,"required"in i&&(e.required=1,a.addClass("required")),e.selected=function(){e.error=!1,e.errmsg=!1,e.status="touch"},e.validate=function(){e.parent.removeClass("ng-pristine"),e.value?(e.error=!1,e.value=e.value.trim(),"nospace"in i&&(e.value=e.value.replace(/\s/g,"")),"lowercase"in i&&(e.value=e.value.toLowerCase()),"minlen"in i&&e.value.length<i.minlen&&(e.status="invalid",e.errmsg=e.name+": Mininum Lengh= "+i.minlen+" Characters",e.error=!0),"email"in i&&(t.test(e.value)||(e.status="invalid",e.errmsg="invalid email address",e.error=!0))):e.required&&(e.status="invalid",e.errmsg=e.name+": Required Attribute",e.error=!0),e.error?(e.required&&e.valid&&(e.valid=!1,e.l4acounter.validated>0&&e.l4acounter.validated--),e.callback(i.name,null,e.done)):(e.required&&!e.valid&&e.l4acounter.validated++,e.status="valid",e.valid=!0,e.callback(i.name,e.value,e.done))},e.done=function(t){for(var n in t)e[n]=t[n]},e.label=i.label,e.name=i.name,e.placeholder=i.placeholder,e.type=i.type||"text",e.tip=i.tip,e.parent=n.parent(a,"FORM"),"email"in i&&(i.lowercase=!0,i.nospace=!0,i.minlen=6),e.required&&(e.l4acounter=e.parent.data("l4acounter"),e.l4acounter?e.l4acounter.required++:(e.l4acounter={required:1,validated:0},e.parent.data("l4acounter",e.l4acounter))),e.$watch("value",function(){e.value&&e.validate()})}return{restrict:"E",template:e,link:a,scope:{callback:"=",value:"="}}}])}(),function(){"use strict";var e='<input-text class="password" tip="{{tip1}}" placeholder="{{place1}}"label="{{label1}}" callback="valid1" name="{{name}}-1" value="pass1" required minlen="{{minlen}}" type="password" ></input-text><input-text class="password" tip="tip2" placeholder="{{place2}}"label="{{label2}}" callback="valid2" name="{{name}}-2" value="pass2" required minlen="{{minlen}}" type="password" > </input-text>';angular.module("InputPassword",[]).directive("inputPassword",function(){function t(e,t,n){e.valid1=function(t,n){e.firstpwd=n},e.valid2=function(t,a,i){e.firstpwd!==a?i({valid:!1,status:"invalid",errmsg:"both password should match"}):e.callback(n.name,a)},e.done=function(t){for(var n in t)e[n]=t[n]},e.name=n.name,e.label1=n.label||"Password",e.label2=n.label||"Password Verification",e.place1=n.placeholder1||"User Password",e.tip1=n.tip||"Choose a Password",e.place2=n.placeholder1||"Password Verification",e.tip2=n.tip||"Confirme your Password",e.minlen=n.minlen||10,"required"in n&&(e.required="required")}return{restrict:"E",template:e,link:t,scope:{callback:"="}}})}(),function(){"use strict";angular.module("SampleModule",["SubmitButton","UploadFiles"]).controller("SampleController",["$http",function(e){var t=this;t.FileUploaded=function(e){}}])}(),function(){"use strict";angular.module("HomeModule",["SubmitButton","TokenRefresh"]).controller("HomeController",["$http","ConfigApp",function(e,t){var n=this;n.uuid="none",n.token="none",n.session="none",n.status="err-no",n.ProcessResponse=function(e,a,i,s){var o="API"+e.request.api.replace("-","_");n.status="err-ok",n.errcode=a,n.request=e.request,n.response=e.response,e.request.token&&(t.session.token=e.request.token),e.request.uuid&&(t.session.uuid=e.request.uuid),e.request.timeout&&(t.session.timeout=e.request.timeout),("APIcreate"===o||"APIreset"===o)&&(n.APIreset="",n.APIcreate="",n.APIrefresh="",n.APIcheck=""),n[o]="success",e.request.token&&(n.token=e.request.token)},n.ProcessError=function(e,t,a,i){var s="API"+e.request.api.replace("-","_");n.status="err-fx",n.errcode=t,n.request=e.request,n.response="",n[s]="fail"},n.OpenSession=function(){var a={},i=e.post(t.session.create+"?token="+t.session.initial,a);i.success(n.ProcessResponse),i.error(n.ProcessError)},n.CheckSession=function(){var a={},i=e.post(t.session.check+"?token="+t.session.token,a);i.success(n.ProcessResponse),i.error(n.ProcessError)},n.RefreshSession=function(){var a={},i=e.post(t.session.refresh+"?token="+t.session.token,a);i.success(n.ProcessResponse),i.error(n.ProcessError)},n.ResetSession=function(){var a={},i=e.post(t.session.reset+"?token="+t.session.token,a);i.success(n.ProcessResponse),i.error(n.ProcessError)}}])}(),function(){"use strict";angular.module("JQueryEmu",[]).factory("JQemu",function(){var e=function(e,t){for(var n=e,a=t.toUpperCase();n[0];){if(a===n[0].tagName)return n;n=n.parent()}},t=function(e,t,n){for(var a=n.toLowerCase(),i=t.toLowerCase()+"Name",s=e.children();s[0];){if(a===s[0][i])return s;s=s.next()}},n=function(e,t){for(var n=t.toLowerCase(),a=e.children();a[0];){if(a.hasClass(n))return a;a=a.next()}},a={FindInParent:e,FindByTag:t,FindByClass:n};return a})}();var foundationRoutes=[{name:"mysample",url:"/sample",controller:"SampleController as ctrl",animationIn:"slideInRight",path:"pages/Sample/Sample.html"},{name:"myhome",url:"/home",controller:"HomeController as ctrl",animationIn:"slideInRight",path:"pages/Home/Home.html"}];!function(){"use strict";angular.module("ConfigApp",[]).factory("ConfigApp",["urlquery",function(e){var t={paths:{image:"images/",avatar:"images/avatars/",audio:"images/audio/",appli:"images/appli/"},myapi:{token:"/api/myplugin/xxxx"},session:{create:"/api/token/create",refresh:"/api/token/refresh",check:"/api/token/check",reset:"/api/token/reset",ping:"/api/token/check",initial:e.token||"123456789",timeout:3600,pingrate:60,uuid:"",token:""}};return t}])}(),function(){"use strict";function e(){var e={};return location.search.substr(1).split("&").forEach(function(t){var n=t.split("=")[0],a=decodeURIComponent(t.split("=")[1]);n in e?e[n].push(a):e[n]=[a]}),e}function t(e,t,n){e.otherwise("/home"),t.html5Mode(!0).hashPrefix("!")}function n(){FastClick.attach(document.body)}angular.module("AFBclient",["ui.router","ngAnimate","foundation","foundation.dynamicRouting","foundation.dynamicRouting.animations","ui-notification","ConfigApp","JQueryEmu","HomeModule","SampleModule","UploadFiles","LinkButton","TokenRefresh","RangeSlider","ModalNotification"]).value("urlquery",e()).config(t).run(n),t.$inject=["$urlRouterProvider","$locationProvider"]}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/Sample/Sample.html",'<h1><img class="logo" src="images/logo/triskel_iot_bzhx250.png" alt="IoT.bzh Logo" style="height:150px"> Post File Upload</h1><div class="sample-box box-content"><upload-image name="avatar" category="avatar" thumbnail="tux-visitor.png" maxsize="100" posturl="/api/post/upload-image" callback="ctrl.FileUploaded" accept="image" title="Change your Avatar"></upload-image><upload-audio name="music" posturl="/api/post/upload-music" callback="ctrl.FileUploaded" title="Upload your Music"></upload-audio><upload-appli name="appli" posturl="/api/post/upload-appli" callback="ctrl.FileUploaded" title="Upload AGL App"></upload-appli></div><link-button href="home" icon="fi-home" label="home"></link-button>')}])}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/Home/Home.html",'<h3><img class="logo" src="images/logo/triskel_iot_bzhx250.png" alt="IoT.bzh Logo" style="height:150px"> App Framework Binder Simple Client</h3><token-refresh autolog="true"></token-refresh><div class="button-box box-content"><submit-button class="session-button {{ctrl.APIcreate}}" icon="fi-unlock" label="Open" clicked="ctrl.OpenSession"></submit-button><submit-button class="session-button {{ctrl.APIcheck}}" icon="fi-checkbox" label="Check" clicked="ctrl.CheckSession"></submit-button><submit-button class="session-button {{ctrl.APIrefresh}}" icon="fi-arrows-compress" label="Refresh" clicked="ctrl.RefreshSession"></submit-button><submit-button class="session-button {{ctrl.APIreset}}" icon="fi-lock" label="Close" clicked="ctrl.ResetSession"></submit-button></div><div class="message-box box-content vertical grid-frame"><div class="response"><span class="grid-content noscroll req {{ctrl.status}}">req= {{ctrl.request}}</span> <span class="grid-content noscroll res {{ctrl.status}}">res= {{ctrl.response}}</span> <span class="grid-content noscroll status {{ctrl.status}}">status= {{ctrl.errcode}}</span></div></div><link-button href="sample" icon="fi-home" label="sample"></link-button>')}])}();
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpZGdldHMvQnV0dG9ucy9TdWJtaXRCdXR0b25zL1N1Ym1pdEJ1dHRvbnMuanMiLCJ3aWRnZXRzL1JhbmdlU2xpZGVycy9SYW5nZVNsaWRlck1vZC5qcyIsIndpZGdldHMvTm90aWZpY2F0aW9ucy9Ub2tlblJlZnJlc2hTdmMuanMiLCJ3aWRnZXRzL05vdGlmaWNhdGlvbnMvTW9kYWxOb3RpZmljYXRpb24uanMiLCJ3aWRnZXRzL05hdmlnYXRpb24vTGlua0J1dHRvbi5qcyIsIndpZGdldHMvRm9ybUlucHV0L1VwbG9hZEZpbGVzLmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvSW5wdXRUZXh0LmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvSW5wdXRQYXNzd29yZC5qcyIsInBhZ2VzL1NhbXBsZS9TYW1wbGVNb2R1bGUuanMiLCJwYWdlcy9Ib21lL0hvbWVNb2R1bGUuanMiLCJzZXJ2aWNlcy9KUXVlcnlFbXUuanMiLCJldGMvcm91dGVzLmpzIiwiZXRjL0NvbmZpZ0FwcC5qcyIsImFwcC5qcyIsInBhZ2VzL1NhbXBsZS9TYW1wbGUuanMiLCJwYWdlcy9Ib21lL0hvbWUuanMiXSwibmFtZXMiOlsidG1wbCIsImFuZ3VsYXIiLCJtb2R1bGUiLCJkaXJlY3RpdmUiLCJteW1ldGhvZHMiLCJzY29wZSIsImVsZW0iLCJhdHRycyIsImljb24iLCJsYWJlbCIsImFkZENsYXNzIiwidG9Mb3dlckNhc2UiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwibGluayIsImNsaWNrZWQiLCJSYW5nZVNsaWRlckhhbmRsZSIsImludGVybmFscyIsImV4dGVybmFscyIsInRoaXMiLCJnZXRJZCIsInNsaWRlcmlkIiwiZ2V0Q2JIYW5kbGUiLCJjYmhhbmRsZSIsImdldFZpZXciLCJoYW5kbGUiLCJ2YWx1ZSIsImZvcm1hdHRlciIsImN0cmxoYW5kbGUiLCJ1cGRhdGVDbGFzcyIsImNsYXNzZSIsInN0YXR1cyIsImZvcmNlUmVmcmVzaCIsInRpbWVyIiwiZ2V0VmFsdWUiLCJnZXRSZWxhdGl2ZSIsInJlbGF0aXZlIiwic2V0VmFsdWUiLCJzZXREaXNhYmxlIiwiZmxhZyIsIlJhbmdlU2xpZGVyIiwiJGxvZyIsIiRkb2N1bWVudCIsIiR0aW1lb3V0IiwiZWxlbWVudCIsIm1vZGVsIiwiaW5pdFdpZGdldCIsImluaXR2YWx1ZXMiLCJieVN0ZXAiLCJwYXJzZUludCIsIm5vdE1vcmUiLCJub3RMZXNzIiwiaWQiLCJ1bmRlZmluZWQiLCJkdWFsIiwicmVtb3ZlQ2xhc3MiLCJkaXNhYmxlZCIsImhhbmRsZXMiLCJjc3MiLCJub3JtYWxpemUiLCJyZXN1bHQiLCJyYW5nZSIsInBvaW50IiwibW9kIiwicmVtIiwicm91bmQiLCJwb3dlciIsIk1hdGgiLCJwb3ciLCJvZmZzZXQiLCJ2ZXJ0aWNhbCIsImJvdW5kcyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImJhciIsIndpZHRoIiwibmV3dmFsdWUiLCJzdGFydFZhbHVlIiwic3RvcFZhbHVlIiwidmlld1ZhbHVlIiwiZGlzcGxheXMiLCJodG1sIiwiJHNldFZpZXdWYWx1ZSIsIiRhcHBseSIsInRyYW5zbGF0ZSIsInNldFN0YXJ0Iiwic3RhcnQiLCJzZXRTdG9wIiwic3RvcCIsInJpZ2h0Iiwidm9mZnNldCIsIi13ZWJraXQtdHJhbnNmb3JtIiwiLW1vei10cmFuc2Zvcm0iLCItbXMtdHJhbnNmb3JtIiwiLW8tdHJhbnNmb3JtIiwidHJhbnNmb3JtIiwic2xpZGVyIiwiYm90dG9tIiwibGVmdCIsImtleWRvd24iLCJlIiwia2V5Q29kZSIsImFjdGlmIiwiY2FsbGJhY2siLCJibHVyIiwibW92ZUhhbmRsZSIsImNsaWVudFgiLCJjbGllbnRZIiwiZm9jdXNDQiIsImluc2lkZSIsIm9uIiwidW5iaW5kIiwidG91Y2hCYXJDQiIsImV2ZW50IiwidG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwib2xkdmFsdWUiLCJwcmV2ZW50RGVmYXVsdCIsInBhZ2VZIiwicGFnZVgiLCJkaXN0YW5jZTAiLCJhYnMiLCJkaXN0YW5jZTEiLCJ0b3VjaEhhbmRsZUNCIiwidG91Y2hldnQiLCJ0b3VjaG1vdmUiLCJpZHgiLCJsZW5ndGgiLCJ0b3VjaGVuZCIsImhhbmRsZUNCIiwiY2xpY2tldmVudCIsIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJhdXRvbWF0aWMiLCJmb2N1cyIsImZpbmQiLCJzZWxlY3QiLCJkb21lbGVtIiwicXVlcnlTZWxlY3RvciIsImFuZ2VsZW0iLCJpbml0aWFsU2V0dGluZ3MiLCJpbml0aWFsIiwiZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0IiwicHJlY2lzaW9uIiwibWF0Y2giLCJldnQiLCJpbml0IiwicmFuZG9tIiwiSW5maW5pdHkiLCJkdWFsSGFuZGxlcyIsInRyaWdnZXJfaW5wdXRfY2hhbmdlIiwiZGlzYWJsZSIsImRpc3BsYXlUYXJnZXQiLCJnZXRFbGVtZW50QnlJZCIsInNwbGl0IiwibmdNb2RlbCIsIiR3YXRjaCIsInN0YXJ0QXQiLCJzdG9wQXQiLCJpbml0aG9vayIsIm5ld1ZhbHVlIiwicmVxdWlyZSIsInJlcGxhY2UiLCIkaHR0cCIsIiRsb2NhdGlvbiIsIk5vdGlmaWNhdGlvbiIsIkNvbmZpZ0FwcCIsIm9ubGluZSIsIm9mZmxpbmUiLCJvbmVycm9yIiwiZGF0YSIsImVycmNvZGUiLCJoZWFkZXJzIiwid2FybmluZyIsIm1lc3NhZ2UiLCJkZWxheSIsIm9uc3VjY2VzcyIsImNvbmZpZyIsInJlcXVlc3QiLCJ0b2tlbiIsInNlc3Npb24iLCJ1dWlkIiwidGltZW91dCIsInN1Y2Nlc3MiLCJnZXRwaW5nIiwiaGFuZGxlciIsImdldCIsInBpbmciLCJlcnJvciIsInBpbmdyYXRlIiwicmVmcmVzaCIsInRrY3JlYXRlIiwiY3JlYXRlIiwiaG9zdG5hbWUiLCJob3N0IiwiaHR0cGRwb3J0IiwicG9ydCIsImF1dG9sb2ciLCJKU09OIiwicGFyc2UiLCJkaXNwbGF5IiwiYWN0aW9uIiwic2hvdyIsIm1vZGFsIiwib3BhY2l0eSIsInZpc2liaWxpdHkiLCJjbG9zZSIsInBhcmVudCIsImJpbmQiLCJ0aXAiLCJxdWVyeSIsInBhdGgiLCJocmVmIiwic2VhcmNoIiwiTG9hZEZpbGVTdmMiLCJwb3N0dXJsIiwiZmlsZXMiLCJ0aHVtYm5haWxDQiIsInhtbFJlcSIsIlhNTEh0dHBSZXF1ZXN0IiwieGZvcm0iLCJGb3JtRGF0YSIsIk9uTG9hZENCIiwidGFyZ2V0IiwidXBsb2FkIiwib25wcm9ncmVzcyIsInByb2dyZXNzIiwibGVuZ3RoQ29tcHV0YWJsZSIsImxvYWRlZCIsInRvdGFsIiwib25sb2FkIiwicmVzcG9uc2UiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJvbmFib3J0IiwiaSIsImZpbGUiLCJ0eXBlIiwibWltZXR5cGUiLCJzaXplIiwibWF4c2l6ZSIsInRodW1ibmFpbCIsImlzdG9vYmlnIiwiaXNOYU4iLCJpc25vdHZhbGlkIiwiQmFzZW5hbWUiLCJuYW1lIiwicmV2ZXJzZSIsImltZ0VsZW0iLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJhcHBlbmQiLCJvcGVuIiwic2VuZCIsIkpRZW11IiwiaW5wdXRFbGVtIiwiaW1nQ2xpY2tlZCIsImNsaWNrIiwiU2xpZGVySW5pdENCIiwiVXBMb2FkRmlsZSIsInJlYWRlckNCIiwic3JjIiwid2luZG93IiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiQmxvYiIsImNhdGVnb3J5IiwiYWNjZXB0IiwicmVnZXhwIiwiUmVnRXhwIiwicGF0aHMiLCJub3NsaWRlciIsIlR5cGVFcnJvciIsInppcGFwcCIsIkpTWmlwIiwiYXNBcnJheUJ1ZmZlciIsImVtYWlscGF0ZXJuIiwidmFsaWQiLCJpbnB1dCIsInJlcXVpcmVkIiwic2VsZWN0ZWQiLCJlcnJtc2ciLCJ2YWxpZGF0ZSIsInRyaW0iLCJtaW5sZW4iLCJ0ZXN0IiwibDRhY291bnRlciIsInZhbGlkYXRlZCIsImRvbmUiLCJwbGFjZWhvbGRlciIsImxvd2VyY2FzZSIsIm5vc3BhY2UiLCJ2YWxpZDEiLCJmaXJzdHB3ZCIsInZhbGlkMiIsImxhYmVsMSIsImxhYmVsMiIsInBsYWNlMSIsInBsYWNlaG9sZGVyMSIsInRpcDEiLCJwbGFjZTIiLCJ0aXAyIiwiY29udHJvbGxlciIsIkZpbGVVcGxvYWRlZCIsIlByb2Nlc3NSZXNwb25zZSIsImFwaW5hbWUiLCJhcGkiLCJBUElyZXNldCIsIkFQSWNyZWF0ZSIsIkFQSXJlZnJlc2giLCJBUEljaGVjayIsIlByb2Nlc3NFcnJvciIsIk9wZW5TZXNzaW9uIiwicG9zdGRhdGEiLCJwb3N0IiwiQ2hlY2tTZXNzaW9uIiwiY2hlY2siLCJSZWZyZXNoU2Vzc2lvbiIsIlJlc2V0U2Vzc2lvbiIsInJlc2V0IiwiZmFjdG9yeSIsIkZpbmRJblBhcmVudCIsInNlbGVjdG9yIiwidG9VcHBlckNhc2UiLCJ0YWdOYW1lIiwiRmluZEJ5VGFnIiwidGFnIiwiY2hpbGRyZW4iLCJuZXh0IiwiRmluZEJ5Q2xhc3MiLCJoYXNDbGFzcyIsIm15TWV0aG9kcyIsImZvdW5kYXRpb25Sb3V0ZXMiLCJ1cmwiLCJhbmltYXRpb25JbiIsInVybHF1ZXJ5IiwibXlDb25maWciLCJpbWFnZSIsImF2YXRhciIsImF1ZGlvIiwiYXBwbGkiLCJteWFwaSIsIlBhcnNlUXVlcnlTdHJpbmciLCJxZCIsImxvY2F0aW9uIiwic3Vic3RyIiwiZm9yRWFjaCIsIml0ZW0iLCJrIiwidiIsImRlY29kZVVSSUNvbXBvbmVudCIsInB1c2giLCIkdXJsUHJvdmlkZXIiLCIkbG9jYXRpb25Qcm92aWRlciIsIm90aGVyd2lzZSIsImh0bWw1TW9kZSIsImhhc2hQcmVmaXgiLCJydW4iLCJGYXN0Q2xpY2siLCJhdHRhY2giLCJkb2N1bWVudCIsImJvZHkiLCIkaW5qZWN0IiwiJHRlbXBsYXRlQ2FjaGUiLCJwdXQiXSwibWFwcGluZ3MiOiJDQW9CQSxXQUNBLFlBRUEsSUFBQUEsR0FBQSx3RkFLQUMsU0FBQUMsT0FBQSxtQkFDQUMsVUFBQSxlQUFBLFdBRUEsUUFBQUMsR0FBQUMsRUFBQUMsRUFBQUMsR0FHQUYsRUFBQUcsS0FBQUQsRUFBQUMsTUFBQSxVQUNBSCxFQUFBSSxNQUFBRixFQUFBRSxPQUFBLE9B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Q0FsSyxNQUFBLHNCQUdBQyxTQUNBWSxPQUFBLG9CQUNBRixRQUFBLHFCQUNBOEgsTUFBQSxtQkFDQUcsTUFBQSxtQkFDQXBJLEtBQUEsbUJBQ0E5QyxRQUFBa00sRUFBQTVKLE9BQUEsWUFDQUcsUUFBQSxLQUNBTyxTQUFBLEdBQ0FSLEtBQUEsR0FDQUYsTUFBQSxJQUlBLE9BQUE2SixTQ25DQSxXQUNBLFlBRUEsU0FBQU0sS0FDQSxHQUFBQyxLQU1BLE9BTEFDLFVBQUFuSSxPQUFBb0ksT0FBQSxHQUFBL0wsTUFBQSxLQUFBZ00sUUFBQSxTQUFBQyxHQUNBLEdBQUFDLEdBQUFELEVBQUFqTSxNQUFBLEtBQUEsR0FDQW1NLEVBQUFDLG1CQUFBSCxFQUFBak0sTUFBQSxLQUFBLEdBQ0FrTSxLQUFBTCxHQUFBQSxFQUFBSyxHQUFBRyxLQUFBRixHQUFBTixFQUFBSyxJQUFBQyxLQUVBTixFQWlDQSxRQUFBdEssR0FBQStLLEVBQUFDLEVBQUEzTCxHQUNBMEwsRUFBQUUsVUFBQSxTQUdBRCxFQUFBRSxXQUFBLEdBQUFDLFdBQUEsS0FJQSxRQUFBQyxLQUNBQyxVQUFBQyxPQUFBQyxTQUFBQyxNQXZDQXhXLFFBQUFDLE9BQUEsYUFDQSxZQUNBLFlBR0EsYUFDQSw0QkFDQSx1Q0FHQSxrQkFHQSxZQUNBLFlBQ0EsYUFDQSxlQUNBLGNBQ0EsYUFDQSxlQUNBLGNBQ0Esc0JBRUF3QixNQUFBLFdBQUE0VCxLQUNBckssT0FBQUEsR0FDQW9MLElBQUFBLEdBR0FwTCxFQUFBeUwsU0FBQSxxQkFBQSx3QkN6Q0EsV0FBQXpXLFFBQUFDLE9BQUEsYUFBQW1XLEtBQUEsaUJBQUEsU0FBQU0sR0FBQUEsRUFBQUMsSUFBQSwyQkFDQSxxc0JDREEsV0FBQTNXLFFBQUFDLE9BQUEsYUFBQW1XLEtBQUEsaUJBQUEsU0FBQU0sR0FBQUEsRUFBQUMsSUFBQSx1QkFDQSIsImZpbGUiOiJBRkJjbGllbnQubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgdG1wbCA9ICc8ZGl2ICBuZy1jbGljaz1cImNsaWNrZWQoKVwiPiA8c3Bhbj4nICtcbiAgICAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPicgK1xuICAgICAgICAgICAgJzxzcGFuPnt7bGFiZWx9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nO1xuXG4gICAgYW5ndWxhci5tb2R1bGUoJ1N1Ym1pdEJ1dHRvbicsIFtdKVxuICAgICAgICAgICAgLmRpcmVjdGl2ZSgnc3VibWl0QnV0dG9uJywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGFqdXN0IGljb24gb3IgdXNlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaWNvbiA9IGF0dHJzLmljb24gfHwgJ2ZpLWZvb3QnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5sYWJlbCA9IGF0dHJzLmxhYmVsIHx8ICdOZXh0JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZCBsYWJlbCBhcyBjbGFzc1xuICAgICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzIChzY29wZS5sYWJlbC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGNsaWNrZWQgaW4gaW1wb3J0ZWQgYW5kIHdoZW4gdGVtcGxhdGUgaXMgY2xpY2tlZFxuICAgICAgICAgICAgICAgICAgICAvLyBpdCB3aWxsIGNhbGwgY2xpY2tlZCBtZXRob2QgcGFzc2VkIGluIHBhcmFtLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICBzY29wZToge2NsaWNrZWQgOiAnPSd9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xufSkoKTtcbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICogXG4gKiBCdWdzOiBJbnB1dCB3aXRoIENhbGxiYWNrIFNIT1VMRCBCRSBnZXQgJ3JlcXVpcmVkJyBjbGFzc1xuICogXG4gKiByZWY6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9tb3VzZW92ZXJcbiAqIFxuICogdXNhZ2U6IFxuVXNhZ2UgIDxyYW5nZS1zbGlkZXI+XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIDxyYW5nZS1zbGlkZXJcbiAgICAgIGlkPVwibXktc2xpZGVyLW5hbWVcIiAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgdXNlIGFzIGFuIGFyZ3VtZW50IHRvIGNhbGxiYWNrXG4gICAgICBjbGFzcz1cIm15LWN1c3RvbS1jbGFzc1wiICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGNsYXNzIGlzIGliei1yYW5nZS1zbGlkZXJcbiAgICAgIHBsYWNlaG9sZGVyPVwiVHJhY2sgRGF0ZSBTZWxlY3Rpb25cIiAgICAgIC8vIHBsYWNlIGhvbGRlciBmb3IgZGF0ZSByZWFkb25seSBpbnB1dCB6b25lXG5cbiAgICAgIDwhLS0gRm91bmRhdGlvbiBjbGFzc2VzIC0tPlxuICAgICAgY2xhc3M9XCJyYWRpdXNcIiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgWnVyYiBmb3VuZGF0aW9uIGRvYyBmb3IgZnVydGhlciBpbmZvLlxuICAgICAgY2xhc3M9XCJpYnotaGFuZGxlLWRpc3BsYXlcIiAgICAgICAgICAgICAgLy8gaW5jcmVhc2UgaGFuZGxlIHdpZHRoIHRvIGhvbGQgc2xpZGVyIGN1cnJlbnQgdmFsdWVcblxuICAgICAgPCEtLSBBbmd1bGFyIFNjb3BlIFZhcmlhYmxlcyAtLT5cbiAgICAgIGNhbGxiYWNrPVwibXlDYWxsQmFja1wiICAgICAgICAgICAgICAgICAgICAvLyAkc2NvcGUubXlDYWxsQmFjayhzbGlkZXJoYW5kbGUpIGlzIGNhbGxlZCB3aGVuIGV2ZXIgc2xpZGVyIGhhbmRsZSBibHVyXG4gICAgICBmb3JtYXR0ZXI9XCJTbGlkZXJGb3JtYXRDQlwiICAgICAgICAgICAgICAgLy8gJHNjb3BlLm15Rm9ybWF0dGVyKHZhbHVlLCBzbGlkZXJpZCkgd2hlbiBleGlzdCBpcyBjYWxsIHdoZW4gZXZlciBzbGlkZXIgaGFuZGxlIG1vdmVzLiBTaG91bGQgcmV0dXJuIGV4dGVybmFsIGZvcm0gb2Ygc2xpZGVyIHZhbHVlLlxuICAgICAgbmctbW9kZWw9XCJ4eHh4eHhcIiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHh4eCBNdXN0IGJlIGRlZmluZWQsIHNjcmlwdCB3aWxsIHN0b3JlIGEgbmV3IFJhbmdlck9iamVjdCB3aXRoaW4gcHJvdmlkZWQgbmctbW9kZWwgdmFyaWFibGUuXG4gICAgICBzdGFydC1hdD1cIlNjb3BlVmFyXCIgICAgICAgICAgICAgICAgICAgICAgLy8gRHluYW1pYyBsaW1pdGF0aW9uIHdoZW4gc2xpZGVyIGlzIGNvbnN0cmFpbnMgYnkgYW4gZXh0ZXJuYWwgY29tcG9uYW50IFtleDogY2hlY2sgaW4vb3V0XVxuICAgICAgc3RvcC1hdD1cIlNjb3BlVmFyXCIgICAgICAgICAgICAgICAgICAgICAgIC8vIElkZW0gYnV0IGZvciBlbmQuXG5cbiAgICAgIDwhLS0gQW5ndWxhciBEaXJlY3RpdmUgQXR0cmlidXRlcyAtLT5cbiAgICAgIG5vdC1sZXNzPVwiaW50ZWdlclwiICAgICAgICAgICAgICAgICAgICAgICAvLyBGaXhlZCBzdGFydGluZyB2YWx1ZSBmb3Igc2xpZGVyIFtkZWZhdWx0IDBdXG4gICAgICBub3QtbW9yZT1cImludGVnZXJcIiAgICAgICAgICAgICAgICAgICAgICAgLy8gRml4ZWQgZW5kIHZhbHVlIGZvciBzbGlkZXJzIFtkZWZhdWx0IDEwMF1cbiAgICAgIGJ5LXN0ZXA9XCIrLWludGVnZXJcIiAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBieS1zdGVwIGlzID4wIHRoZW4gc2xpZGVyIHVzZSBpdCBhcyBzdGVwLXZhbHVlLCB3aGVuIG5lZ2F0aXZlIHVzZSBpdCBmb3IgZGVjaW1hbCBwcmVjaXNpb25cbiAgICAgIGRpc3BsYXktdGFyZ2V0PVwiaGFuZGxlXCIgICAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHNsaWRlciBleHRlcm5hbCBmb3JtYXRlZCB2YWx1ZSBpbiB0aGUgaGFuZGxlIFtyZXF1aXJlciBjYWxzcz1cImliei1oYW5kbGUtZGlzcGxheVwiXVxuICAgICAgZHVhbC1oYW5kbGVzPSd0cnVlJyAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgYSBzZWNvbmQgaGFuZGxlIHRvIHNsaWRlciBmb3IgbWluL21heCByYW5nZVxuICAgICAgaW5pdGlhbD0ndmFsdWV8W3N0YXJ0L3N0b3BdJyAgICAgICAgICAgICAvLyBzbGlkZXIgaW5pdGlhbCB2YWx1ZSBbZHVhbC1oYW5kbGVzXSBtYXkgaGF2ZSBpbml0aWFsIHZhbHVlc1xuICAgLz48L3JhbmdlLXNsaWRlcj5cbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxudmFyIFJhbmdlU2xpZGVyID0gYW5ndWxhci5tb2R1bGUoJ1JhbmdlU2xpZGVyJyxbXSk7XG5cbmZ1bmN0aW9uIFJhbmdlU2xpZGVySGFuZGxlIChzY29wZSkge1xuICAgIHZhciBpbnRlcm5hbHMgPSBbXTtcbiAgICB2YXIgZXh0ZXJuYWxzID0gW107XG5cbiAgICB0aGlzLmdldElkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY29wZS5zbGlkZXJpZDtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRDYkhhbmRsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NvcGUuY2JoYW5kbGU7XG4gICAgfTtcblxuICAgIHRoaXMuZ2V0Vmlldz0gZnVuY3Rpb24gKGhhbmRsZSkge1xuICAgICAgICBpZiAoIWhhbmRsZSkgaGFuZGxlID0gMDtcblxuICAgICAgICAvLyBpZiB2YWx1ZSBkaWQgbm90IGNoYW5nZSByZXR1cm4gY3VycmVudCBleHRlcm5hbCByZXByZXNlbnRhdGlvblxuICAgICAgICBpZiAoc2NvcGUudmFsdWVbaGFuZGxlXSA9PT0gaW50ZXJuYWxzW2hhbmRsZV0pIHJldHVybiBleHRlcm5hbHNbaGFuZGxlXTtcblxuICAgICAgICAvLyBidWlsZCBleHRlcm5hbCByZXByZXNlbnRhdGlvbiBhbmQgc2F2ZSBpdCBmb3IgZnVydGhlciByZXF1ZXN0c1xuICAgICAgICBpbnRlcm5hbHNbaGFuZGxlXSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG4gICAgICAgIGlmIChzY29wZS5mb3JtYXR0ZXIpIGV4dGVybmFsc1toYW5kbGVdID0gc2NvcGUuZm9ybWF0dGVyKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICBlbHNlICBleHRlcm5hbHNbaGFuZGxlXSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG5cbiAgICAgICAgcmV0dXJuIGV4dGVybmFsc1toYW5kbGVdO1xuICAgIH07XG5cbiAgICB0aGlzLnVwZGF0ZUNsYXNzID0gZnVuY3Rpb24gKGNsYXNzZSwgc3RhdHVzKSB7XG4gICAgICAgc2NvcGUudXBkYXRlQ2xhc3MgKGNsYXNzZSwgc3RhdHVzKTtcbiAgICB9O1xuXG4gICAgdGhpcy5mb3JjZVJlZnJlc2ggPSBmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICBzY29wZS5mb3JjZVJlZnJlc2godGltZXIpO1xuICAgIH07XG5cbiAgICB0aGlzLmdldFZhbHVlPSBmdW5jdGlvbiAoaGFuZGxlKSB7XG4gICAgICAgIGlmICghaGFuZGxlKSBoYW5kbGUgPSAwO1xuICAgICAgICByZXR1cm4gc2NvcGUudmFsdWVbaGFuZGxlXTtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRSZWxhdGl2ZT0gZnVuY3Rpb24gKGhhbmRsZSkge1xuICAgICAgICBpZiAoIWhhbmRsZSkgaGFuZGxlID0gMDtcbiAgICAgICAgcmV0dXJuIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV07XG4gICAgfTtcblxuICAgIHRoaXMuc2V0VmFsdWU9IGZ1bmN0aW9uICh2YWx1ZSwgaGFuZGxlKSB7XG4gICAgICAgIGlmICghaGFuZGxlKSBoYW5kbGUgPSAwO1xuICAgICAgICBzY29wZS5zZXRWYWx1ZSAodmFsdWUsIGhhbmRsZSk7XG4gICAgfTtcblxuICAgIHRoaXMuc2V0RGlzYWJsZT0gZnVuY3Rpb24gKGZsYWcpIHtcbiAgICAgICAgc2NvcGUuc2V0RGlzYWJsZShmbGFnKTtcbiAgICB9O1xufVxuXG5SYW5nZVNsaWRlci5kaXJlY3RpdmUoJ3JhbmdlU2xpZGVyJywgW1wiJGxvZ1wiLCBcIiRkb2N1bWVudFwiLCBcIiR0aW1lb3V0XCIsIGZ1bmN0aW9uICgkbG9nLCAkZG9jdW1lbnQsICR0aW1lb3V0KSB7XG5cbiAgICB2YXIgdGVtcGxhdGU9ICc8ZGl2IGNsYXNzPVwiaWJ6LXJhbmdlLXNsaWRlciByYW5nZS1zbGlkZXJcIiB0aXRsZT1cInt7dGl0bGV9fVwiZGF0YS1zbGlkZXI+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInJhbmdlLXNsaWRlci1oYW5kbGUgaGFuZGxlLW1pblwiIG5nLW1vdXNlZG93bj1cImhhbmRsZUNCKCRldmVudCwwKVwiIG5nLWZvY3VzPVwiZm9jdXNDQih0cnVlKVwiIG5nLWJsdXI9XCJmb2N1c0NCKGZhbHNlKVwiIHJvbGU9XCJzbGlkZXJcIiB0YWJpbmRleD1cIjBcIj48L3NwYW4+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImhhbmRsZS1tYXhcIiBuZy1tb3VzZWRvd249XCJoYW5kbGVDQigkZXZlbnQsMSlcIiBuZy1mb2N1cz1cImZvY3VzQ0IodHJ1ZSlcIiBuZy1ibHVyPVwiZm9jdXNDQihmYWxzZSlcIiByb2xlPVwic2xpZGVyXCIgdGFiaW5kZXg9XCIwXCI+PC9zcGFuPicrXG4gICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJyYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnRcIj48L3NwYW4+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImliei1yYW5nZS1zbGlkZXItc3RhcnRcIiA+PC9zcGFuPiAnK1xuICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiaWJ6LXJhbmdlLXNsaWRlci1zdG9wXCI+PC9zcGFuPiAnK1xuICAgICAgICAgICAgICAgICAgJzxpbnB1dCBpZD17e3NsaWRlcmlkfX0gdHlwZT1cImhpZGRlblwiPicrXG4gICAgICAgICAgICAgICAgICAnPC9kaXY+JztcblxuXG4gICAgZnVuY3Rpb24gbGluayAoc2NvcGUsIGVsZW1lbnQsIGF0dHJzLCBtb2RlbCkge1xuICAgICAgICAvLyBmdWxsIGluaXRpYWxpc2F0aW9uIG9mIHNsaWRlciBmcm9tIGEgc2luZ2xlIG9iamVjdFxuICAgICAgICBzY29wZS5pbml0V2lkZ2V0ID0gZnVuY3Rpb24gKGluaXR2YWx1ZXMpIHtcblxuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMuYnlTdGVwKSAgc2NvcGUuYnlTdGVwICA9IHBhcnNlSW50KGluaXR2YWx1ZXMuYnlTdGVwKTtcbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLm5vdE1vcmUpIHNjb3BlLm5vdE1vcmUgPSBwYXJzZUludChpbml0dmFsdWVzLm5vdE1vcmUpO1xuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMubm90TGVzcykgc2NvcGUubm90TGVzcyA9IHBhcnNlSW50KGluaXR2YWx1ZXMubm90TGVzcyk7XG4gICAgICAgICAgICBpZiAoaW5pdHZhbHVlcy5pZCkgICAgICBzY29wZS5zbGlkZXJpZD0gaW5pdHZhbHVlcy5pZDtcblxuICAgICAgICAgICAgLy8gaHVnZWx5IGJ1dCBpbiBzb21lIGNhc2UgRE9NIGlzIG5vdCBmaW5pc2ggd2hlbiB3ZSB0cnkgdG8gc2V0IHZhbHVlcyAhISFcbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLnZhbHVlICE9PSB1bmRlZmluZWQpICAge1xuICAgICAgICAgICAgICAgIHNjb3BlLnZhbHVlID0gaW5pdHZhbHVlcy52YWx1ZTtcbiAgICAgICAgICAgICAgICBzY29wZS5mb3JjZVJlZnJlc2ggKDUwKTsgLy8gd2FpdCA1MG1zIGZvciBET00gdG8gYmUgcmVhZHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIHJlY29tcHV0ZSBzbGlkZSBwb3NpdGlvbmluZ1xuICAgICAgICBzY29wZS5mb3JjZVJlZnJlc2ggPSBmdW5jdGlvbiAodGltZXIpIHtcbiAgICAgICAgICAgdmFyIHZhbHVlID0gc2NvcGUudmFsdWU7XG4gICAgICAgICAgIHNjb3BlLnZhbHVlID0gW3VuZGVmaW5lZCx1bmRlZmluZWRdO1xuICAgICAgICAgICAkdGltZW91dCAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICBzY29wZS5zZXRWYWx1ZSh2YWx1ZVswXSwwKTtcbiAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSAgc2NvcGUuc2V0VmFsdWUodmFsdWVbMV0sMSk7XG4gICAgICAgICAgIH0sIHRpbWVyKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBoYW5kbGVyIHRvIGNoYW5nZSBjbGFzcyBmcm9tIHNsaWRlciBoYW5kbGVcbiAgICAgICAgc2NvcGUudXBkYXRlQ2xhc3MgPSBmdW5jdGlvbiAoY2xhc3NlLCBzdGF0dXMpIHtcblxuICAgICAgICAgICAgaWYgKHN0YXR1cykgZWxlbWVudC5hZGRDbGFzcyAoY2xhc3NlKTtcbiAgICAgICAgICAgIGVsc2UgIGVsZW1lbnQucmVtb3ZlQ2xhc3MgKGNsYXNzZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuc2V0RGlzYWJsZSA9IGZ1bmN0aW9uIChkaXNhYmxlZCkge1xuXG4gICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFkZENsYXNzIChcImRpc2FibGVcIik7XG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1swXS5jc3MgKCd2aXNpYmlsaXR5JywnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1sxXS5jc3MgKCd2aXNpYmlsaXR5JywnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNsYXNzIChcImRpc2FibGVcIik7XG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1swXS5jc3MgKCd2aXNpYmlsaXR5JywndmlzaWJsZScpO1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSBzY29wZS5oYW5kbGVzWzFdLmNzcyAoJ3Zpc2liaWxpdHknLCd2aXNpYmxlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5ub3JtYWxpemUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQ7XG4gICAgICAgICAgICB2YXIgcmFuZ2UgPSBzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcztcbiAgICAgICAgICAgIHZhciBwb2ludCA9IHZhbHVlICogcmFuZ2U7XG5cbiAgICAgICAgICAgIC8vIGlmIHN0ZXAgaXMgcG9zaXRpdmUgbGV0J3Mgcm91bmQgc3RlcCBieSBzdGVwXG4gICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwID4gIDApIHtcbiAgICAgICAgICAgICAgICB2YXIgbW9kID0gKHBvaW50IC0gKHBvaW50ICUgc2NvcGUuYnlTdGVwKSkgLyBzY29wZS5ieVN0ZXA7XG4gICAgICAgICAgICAgICAgdmFyIHJlbSA9IHBvaW50ICUgc2NvcGUuYnlTdGVwO1xuXG4gICAgICAgICAgICAgICAgdmFyIHJvdW5kID0gKHJlbSA+PSBzY29wZS5ieVN0ZXAgKiAwLjUgPyBzY29wZS5ieVN0ZXAgOiAwKTtcbiAgICAgICAgICAgICAgICByZXN1bHQ9IChtb2QgKiBzY29wZS5ieVN0ZXAgKyByb3VuZCkgKyBzY29wZS5ub3RMZXNzO1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2cgKFwicmFuZ2U9JWQgdmFsdWU9JWQgcG9pbnQ9JWQgbW9kPSVkIHJlbT0lZCByb3VuZD0lZCByZXN1bHQ9JWRcIiwgcmFuZ2UsIHZhbHVlLCBwb2ludCwgbW9kLCByZW0sIHJvdW5kLCByZXN1bHQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgc3RlcCBpcyBuZWdhdGl2ZSByZXR1cm4gcm91bmQgdG8gYXNrZWQgZGVjaW1hbFxuICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA8ICAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBvd2VyICA9ICBNYXRoLnBvdyAoMTAsKHNjb3BlLmJ5U3RlcCAqIC0xKSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gc2NvcGUubm90TGVzcyArIHBhcnNlSW50IChwb2ludCAqIHBvd2VyKSAvIHBvd2VyO1xuICAgICAgICAgICAgICAgIHJldHVybiAocmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgc3RlcCBpcyBudWxsIHJldHVybiBmdWxsIHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gcG9pbnQ7XG4gICAgICAgfTtcblxuICAgICAgICAvLyByZXR1cm4gY3VycmVudCB2YWx1ZVxuICAgICAgICBzY29wZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChvZmZzZXQsIGhhbmRsZSkge1xuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUucmVsYXRpdmVbaGFuZGxlXSA9IChvZmZzZXQgLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgLyAoc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gPSBvZmZzZXQgLyAgKHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIG5ld3ZhbHVlID0gc2NvcGUubm9ybWFsaXplIChzY29wZS5yZWxhdGl2ZVtoYW5kbGVdKTtcblxuXG4gICAgICAgICAgICAvLyBpZiBpbnRlcm5hbCB2YWx1ZSBjaGFuZ2UgdXBkYXRlIG9yIG1vZGVsXG4gICAgICAgICAgICBpZiAobmV3dmFsdWUgIT09IHNjb3BlLnZhbHVlW2hhbmRsZV0pIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3dmFsdWUgPCBzY29wZS5zdGFydFZhbHVlKSBuZXd2YWx1ZT1zY29wZS5zdGFydFZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChuZXd2YWx1ZSA+IHNjb3BlLnN0b3BWYWx1ZSkgIG5ld3ZhbHVlPXNjb3BlLnN0b3BWYWx1ZTtcblxuXG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS52aWV3VmFsdWUgPSBzY29wZS5mb3JtYXR0ZXIgKG5ld3ZhbHVlLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS52aWV3VmFsdWUgPSBuZXd2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmRpc3BsYXlzW2hhbmRsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXNbaGFuZGxlXS5odG1sIChzY29wZS52aWV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBleHRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWxcbiAgICAgICAgICAgICAgICBzY29wZS52YWx1ZVtoYW5kbGVdID0gbmV3dmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVsKSBtb2RlbC4kc2V0Vmlld1ZhbHVlIChzY29wZS52aWV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIHNjb3BlLiRhcHBseSgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXd2YWx1ZSA+IHNjb3BlLnN0YXJ0VmFsdWUgJiYgbmV3dmFsdWUgPCBzY29wZS5zdG9wVmFsdWUpIHNjb3BlLnRyYW5zbGF0ZShvZmZzZXQsIGhhbmRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cblxuICAgICAgICBzY29wZS5zZXRTdGFydCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIG9mZnNldDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHZhbHVlID4gc2NvcGUudmFsdWVbMF0pIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmR1YWwpIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwwKTtcbiAgICAgICAgICAgICAgICBlbHNlIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgKiAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuc3RhcnQuY3NzKCdoZWlnaHQnLG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICogKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0YXJ0LmNzcygnd2lkdGgnLG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS5zdGFydFZhbHVlPSB2YWx1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5zZXRTdG9wID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodmFsdWUgPCBzY29wZS52YWx1ZVswXSkge1xuICAgICAgICAgICAgICAgIGlmICghc2NvcGUuZHVhbCkgc2NvcGUuc2V0VmFsdWUgKHZhbHVlLDApO1xuICAgICAgICAgICAgICAgIGVsc2Ugc2NvcGUuc2V0VmFsdWUgKHZhbHVlLDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAqICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBzY29wZS5zdGFydC5jc3MoJ2hlaWdodCcsb2Zmc2V0ICsgJ3B4Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKiAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuc3RvcC5jc3MoeydyaWdodCc6IDAsICd3aWR0aCc6IChzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICAtIG9mZnNldCkgKyAncHgnfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlLnN0b3BWYWx1ZT0gdmFsdWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUudHJhbnNsYXRlID0gZnVuY3Rpb24gKG9mZnNldCwgaGFuZGxlKSB7XG4gICAgICAgICAgICB2YXIgc3RhcnQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIC8vIHRha2UgaGFuZGxlIHNpemUgaW4gYWNjb3VudCB0byBjb21wdXRlIG1pZGRsZVxuICAgICAgICAgICAgICAgIHZhciB2b2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSBvZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzW2hhbmRsZV0uY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgJy13ZWJraXQtdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tb3otdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tcy10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWSgnICsgdm9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW8tdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVZKCcgKyB2b2Zmc2V0ICsgJ3B4KSdcbiAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgaWYgKCFzY29wZS5kdWFsKSBzY29wZS5zbGlkZXIuY3NzKCdoZWlnaHQnLCBvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjb3BlLnJlbGF0aXZlWzFdICYmIHNjb3BlLnJlbGF0aXZlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IChzY29wZS5yZWxhdGl2ZVsxXSAtIHNjb3BlLnJlbGF0aXZlWzBdKSAqICBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICBzdGFydCAgPSAoc2NvcGUucmVsYXRpdmVbMF0gKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgIHNjb3BlLnNsaWRlci5jc3MgKHsnYm90dG9tJzogc3RhcnQrJ3B4JywnaGVpZ2h0JzogaGVpZ2h0ICsgJ3B4J30pO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbaGFuZGxlXS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctbW96LXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tcy10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctby10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICd0cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgnICsgb2Zmc2V0ICsgJ3B4KSdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmR1YWwpIHNjb3BlLnNsaWRlci5jc3MoJ3dpZHRoJyxvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzY29wZS5yZWxhdGl2ZVsxXSAmJiBzY29wZS5yZWxhdGl2ZVswXSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgd2lkdGggPSAoc2NvcGUucmVsYXRpdmVbMV0gLSBzY29wZS5yZWxhdGl2ZVswXSkgKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSAoc2NvcGUucmVsYXRpdmVbMF0gKiAgc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnNsaWRlci5jc3MgKHsnbGVmdCc6IHN0YXJ0KydweCcsJ3dpZHRoJzogd2lkdGggKyAncHgnfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHBvc2l0aW9uIGhhbmRsZSBvbiB0aGUgYmFyIGRlcGVuZGluZyBhIGdpdmVuIHZhbHVlXG4gICAgICAgIHNjb3BlLnNldFZhbHVlID0gZnVuY3Rpb24gKHZhbHVlICwgaGFuZGxlKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0O1xuXG4gICAgICAgICAgICAvLyBpZiB2YWx1ZSBkaWQgbm90IGNoYW5nZSBpZ25vcmVcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpICAgdmFsdWU9MDtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+IHNjb3BlLm5vdE1vcmUpIHZhbHVlPXNjb3BlLm5vdE1vcmU7XG4gICAgICAgICAgICBpZiAodmFsdWUgPCBzY29wZS5ub3RMZXNzKSB2YWx1ZT1zY29wZS5ub3RMZXNzO1xuXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdID0gKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGUgPT09IDApIG9mZnNldCA9IChzY29wZS5yZWxhdGl2ZVtoYW5kbGVdICogc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpICsgc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQvMjtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlID09PSAxKSBvZmZzZXQgPSBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdICogc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2NvcGUucmVsYXRpdmVbaGFuZGxlXSA9ICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdICogIChzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlLnRyYW5zbGF0ZSAob2Zmc2V0LGhhbmRsZSk7XG4gICAgICAgICAgICBzY29wZS52YWx1ZVtoYW5kbGVdID0gdmFsdWU7XG5cbiAgICAgICAgICAgIGlmIChzY29wZS5mb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNhbGwgdGhyb3VnaCBzZXRWYWx1ZSB3ZSBkbyBub3QgcGFzcyBjYkhhbmRsZVxuICAgICAgICAgICAgICAgIHNjb3BlLnZpZXdWYWx1ZSA9IHNjb3BlLmZvcm1hdHRlciAodmFsdWUsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjb3BlLnZpZXdWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobW9kZWwpIG1vZGVsLiRzZXRWaWV3VmFsdWUoIHNjb3BlLnZpZXdWYWx1ZSk7XG5cbiAgICAgICAgICAgIGlmIChzY29wZS5kaXNwbGF5c1toYW5kbGVdKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXNbaGFuZGxlXS5odG1sIChzY29wZS52aWV3VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG5cbiAgICAgICAgLy8gTWluaW1hbCBrZXlzdHJva2UgaGFuZGxpbmcgdG8gY2xvc2UgcGlja2VyIHdpdGggRVNDIFtzY29wZS5hY3RpZiBpcyBjdXJyZW50IGhhbmRsZSBpbmRleF1cbiAgICAgICAgc2NvcGUua2V5ZG93bj0gIGZ1bmN0aW9uKGUpe1xuXG4gICAgICAgICAgICBzd2l0Y2goZS5rZXlDb2RlKXtcbiAgICAgICAgICAgICAgICBjYXNlIDM5OiAvLyBSaWdodFxuICAgICAgICAgICAgICAgIGNhc2UgMzg6IC8vIHVwXG4gICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwID4gMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdK3Njb3BlLmJ5U3RlcCksIHNjb3BlLmFjdGlmKSk7XG4gICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwIDwgMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdKygxIC8gTWF0aC5wb3coMTAsIHNjb3BlLmJ5U3RlcCotMSkpKSxzY29wZS5hY3RpZikpO1xuICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmNhbGxiYWNrKSAgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM3OiAvLyBsZWZ0XG4gICAgICAgICAgICAgICAgY2FzZSA0MDogLy8gZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwID4gMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdIC0gc2NvcGUuYnlTdGVwKSwgc2NvcGUuYWN0aWYpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmJ5U3RlcCA8IDApIHNjb3BlLiRhcHBseShzY29wZS5zZXRWYWx1ZSAoKHNjb3BlLnZhbHVlW3Njb3BlLmFjdGlmXSAtICgxIC8gTWF0aC5wb3coMTAsIHNjb3BlLmJ5U3RlcCotMSkpKSxzY29wZS5hY3RpZikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2spICBzY29wZS5jYWxsYmFjayAoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyNzogLy8gZXNjXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbc2NvcGUuYWN0aWZdWzBdLmJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5tb3ZlSGFuZGxlID0gZnVuY3Rpb24gKGhhbmRsZSwgY2xpZW50WCwgY2xpZW50WSkge1xuICAgICAgICAgICAgdmFyIG9mZnNldDtcbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tIC0gY2xpZW50WTtcbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID4gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPCBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IGNsaWVudFggLSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCkgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICBpZiAoKGNsaWVudFggKyBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSA+IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS5nZXRWYWx1ZSAgKG9mZnNldCwgaGFuZGxlKTtcblxuICAgICAgICAgICAgLy8gcHJldmVudCBkdWFsIGhhbmRsZSB0byBjcm9zc1xuICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwgJiYgc2NvcGUudmFsdWUgWzBdID4gc2NvcGUudmFsdWVbMV0pIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlID09PSAwKSBzY29wZS5zZXRWYWx1ZSAoc2NvcGUudmFsdWVbMF0gLCAxKTtcbiAgICAgICAgICAgICAgICBlbHNlIHNjb3BlLnNldFZhbHVlKHNjb3BlLnZhbHVlWzFdLDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG5cbiAgICAgICAgc2NvcGUuZm9jdXNDQiA9IGZ1bmN0aW9uIChpbnNpZGUpIHtcbiAgICAgICAgICAgIGlmIChpbnNpZGUpIHtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQub24oJ2tleWRvd24nLHNjb3BlLmtleWRvd24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQudW5iaW5kKCdrZXlkb3duJyxzY29wZS5rZXlkb3duKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBiYXIgd2FzIHRvdWNoIGxldCBtb3ZlIGhhbmRsZSB0byB0aGlzIHBvaW50XG4gICAgICAgIHNjb3BlLnRvdWNoQmFyQ0IgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGU9MDtcbiAgICAgICAgICAgIHZhciByZWxhdGl2ZTtcbiAgICAgICAgICAgIHZhciB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXM7XG4gICAgICAgICAgICB2YXIgb2xkdmFsdWUgPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byBoYW5kbGVzIHNlbGVjdCBjbG9zZXN0IG9uZSBmcm9tIHRvdWNoIHBvaW50XG4gICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkge1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkgcmVsYXRpdmUgPSAodG91Y2hlc1swXS5wYWdlWSAtIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tKSAvIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGVsc2UgcmVsYXRpdmU9ICh0b3VjaGVzWzBdLnBhZ2VYIC0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KSAvIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgICAgICAgICB2YXIgZGlzdGFuY2UwID0gTWF0aC5hYnMocmVsYXRpdmUgLSBzY29wZS5yZWxhdGl2ZVswXSk7XG4gICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlMSA9IE1hdGguYWJzKHJlbGF0aXZlIC0gc2NvcGUucmVsYXRpdmVbMV0pO1xuICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZTEgPCBkaXN0YW5jZTApIGhhbmRsZT0xO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBtb3ZlIGhhbmRsZSB0byBuZXcgcGxhY2VcbiAgICAgICAgICAgIHNjb3BlLm1vdmVIYW5kbGUgKGhhbmRsZSx0b3VjaGVzWzBdLnBhZ2VYLCB0b3VjaGVzWzBdLnBhZ2VZKTtcbiAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjayAmJiBvbGR2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGhhbmRsZSB3YXMgdG91Y2ggYW5kIGRyYWdcbiAgICAgICAgc2NvcGUudG91Y2hIYW5kbGVDQiA9IGZ1bmN0aW9uICh0b3VjaGV2dCwgaGFuZGxlKSB7XG4gICAgICAgICAgICB2YXIgb2xkdmFsdWUgPSBzY29wZS52YWx1ZVtoYW5kbGVdO1xuXG4gICAgICAgICAgICB0b3VjaGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCd0b3VjaG1vdmUnLHRvdWNobW92ZSk7XG4gICAgICAgICAgICAkZG9jdW1lbnQub24oJ3RvdWNoZW5kJyAsdG91Y2hlbmQpO1xuICAgICAgICAgICAgZWxlbWVudC51bmJpbmQoJ3RvdWNoc3RhcnQnLCBzY29wZS50b3VjaEJhckNCKTtcblxuICAgICAgICAgICAgZnVuY3Rpb24gdG91Y2htb3ZlKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IHRvdWNoZXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5tb3ZlSGFuZGxlIChoYW5kbGUsdG91Y2hlc1tpZHhdLnBhZ2VYLCB0b3VjaGVzW2lkeF0ucGFnZVkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnVuY3Rpb24gdG91Y2hlbmQoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ3RvdWNobW92ZScsdG91Y2htb3ZlKTtcbiAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ3RvdWNoZW5kJyAsdG91Y2hlbmQpO1xuICAgICAgICAgICAgICAgZWxlbWVudC5vbigndG91Y2hzdGFydCcsIHNjb3BlLnRvdWNoQmFyQ0IpO1xuXG4gICAgICAgICAgICAgICAgLy8gaWYgdmFsdWUgY2hhbmdlIG5vdGlmeSBhcHBsaWNhdGlvbiBjYWxsYmFja1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjayAmJiBvbGR2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLmhhbmRsZUNCID0gZnVuY3Rpb24gKGNsaWNrZXZlbnQsIGhhbmRsZSkge1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuYXV0b21hdGljKSByZXR1cm47XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHZhciBvbGR2YWx1ZSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG4gICAgICAgICAgICAvLyByZWdpc3RlciBtb3VzZSBldmVudCB0byB0cmFjayBoYW5kbGVcbiAgICAgICAgICAgIGNsaWNrZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgJGRvY3VtZW50Lm9uKCdtb3VzZW1vdmUnLG1vdXNlbW92ZSk7XG4gICAgICAgICAgICAkZG9jdW1lbnQub24oJ21vdXNldXAnLCBtb3VzZXVwKTtcbiAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbaGFuZGxlXVswXS5mb2N1cygpO1xuICAgICAgICAgICAgc2NvcGUuYWN0aWY9aGFuZGxlO1xuXG4gICAgICAgICAgICAvLyBzbGlkZXIgaGFuZGxlIGlzIG1vdmluZ1xuICAgICAgICAgICAgZnVuY3Rpb24gbW91c2Vtb3ZlKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgc2NvcGUubW92ZUhhbmRsZSAoaGFuZGxlLCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbW91c2UgaXMgdXAgZGFucyBsZWF2ZSBzbGlkZXIgc2VuZCByZXNpemUgZXZlbnRzXG4gICAgICAgICAgICBmdW5jdGlvbiBtb3VzZXVwKCkge1xuICAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ21vdXNlbW92ZScsIG1vdXNlbW92ZSk7XG4gICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgnbW91c2V1cCcsIG1vdXNldXApO1xuXG4gICAgICAgICAgICAgICAgLy8gaWYgdmFsdWUgY2hhbmdlIG5vdGlmeSBhcHBsaWNhdGlvbiBjYWxsYmFja1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjayAmJiBvbGR2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLnZhbHVlW2hhbmRsZV0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHNpbXVsYXRlIGpxdWVyeSBmaW5kIGJ5IGNsYXNzZXMgY2FwYWJpbGl0aWVzIFt3YXJuaW5nIG9ubHkgcmV0dXJuIDFzdCBlbGVtZW50c11cbiAgICAgICAgc2NvcGUuZmluZCA9IGZ1bmN0aW9uIChzZWxlY3QsIGVsZW0pIHtcbiAgICAgICAgICAgIHZhciBkb21lbGVtO1xuXG4gICAgICAgICAgICBpZiAoZWxlbSkgZG9tZWxlbSA9IGVsZW1bMF0ucXVlcnlTZWxlY3RvcihzZWxlY3QpO1xuICAgICAgICAgICAgZWxzZSBkb21lbGVtID0gZWxlbWVudFswXS5xdWVyeVNlbGVjdG9yKHNlbGVjdCk7XG5cbiAgICAgICAgICAgIHZhciBhbmdlbGVtID0gYW5ndWxhci5lbGVtZW50KGRvbWVsZW0pO1xuICAgICAgICAgICAgcmV0dXJuIChhbmdlbGVtKTtcbiAgICAgICAgfTtcblxuXG5cbiAgICAgICAgc2NvcGUuaW5pdGlhbFNldHRpbmdzID0gZnVuY3Rpb24gKGluaXRpYWwpIHtcbiAgICAgICAgICAgIHZhciBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHQ7XG4gICAgICAgICAgICBzY29wZS52YWx1ZT1bXTsgIC8vIHN0b3JlIGxvdy9oZWlnaHQgdmFsdWUgd2hlbiB0d28gaGFuZGxlc1xuICAgICAgICAgICAgc2NvcGUucmVsYXRpdmU9W107XG5cbiAgICAgICAgICAgIGlmIChzY29wZS5wcmVjaXNpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHQgPSAoJycgKyBzY29wZS5ieVN0ZXApLm1hdGNoKC9cXC4oW1xcZF0qKS8pO1xuICAgICAgICAgICAgICAgIHNjb3BlLnByZWNpc2lvbiA9IGRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdCAmJiBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHRbMV0gPyBkZWNpbWFsX3BsYWNlc19tYXRjaF9yZXN1bHRbMV0ubGVuZ3RoIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gcG9zaXRpb24gaGFuZGxlIHRvIGluaXRpYWwgdmFsdWUocylcbiAgICAgICAgICAgIGVsZW1lbnQub24oJ3RvdWNoc3RhcnQnLCBzY29wZS50b3VjaEJhckNCKTtcbiAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMF0ub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihldnQpe3Njb3BlLnRvdWNoSGFuZGxlQ0IoZXZ0LDApO30pO1xuXG4gICAgICAgICAgICAvLyB0aGlzIHNsaWRlciBoYXMgdHdvIGhhbmRsZXMgbG93L2hpZ2h0XG4gICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMV0uYWRkQ2xhc3MoJ3JhbmdlLXNsaWRlci1oYW5kbGUnKTtcbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzFdLm9uKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24oZXZ0KXtzY29wZS50b3VjaEhhbmRsZUNCKGV2dCwxKTt9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLmluaXR2YWx1ZXMpIHNjb3BlLnNldFZhbHVlIChpbml0aWFsWzFdLDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFuIGluaXRzdGF0ZSBvYmplY3QgYXBwbHkgaXRcbiAgICAgICAgICAgIGlmIChzY29wZS5pbml0dmFsdWVzKSBzY29wZS5pbml0V2lkZ2V0IChzY29wZS5pbml0dmFsdWVzKTtcbiAgICAgICAgICAgIGVsc2UgICBzY29wZS5zZXRWYWx1ZSAoaW5pdGlhbFswXSwwKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2NvcGUuc2xpZGVyaWQgICA9IGF0dHJzLmlkIHx8IFwic2xpZGVyLVwiICsgcGFyc2VJbnQgKE1hdGgucmFuZG9tKCkgKiAxMDAwKTtcbiAgICAgICAgICAgIHNjb3BlLnN0YXJ0VmFsdWUgPSAtSW5maW5pdHk7XG4gICAgICAgICAgICBzY29wZS5zdG9wVmFsdWUgID0gSW5maW5pdHk7XG4gICAgICAgICAgICBzY29wZS5ieVN0ZXAgICA9IHBhcnNlSW50KGF0dHJzLmJ5U3RlcCkgfHwgMTtcbiAgICAgICAgICAgIHNjb3BlLnZlcnRpY2FsID0gYXR0cnMudmVydGljYWwgICB8fCBmYWxzZTtcbiAgICAgICAgICAgIHNjb3BlLmR1YWwgICAgID0gYXR0cnMuZHVhbEhhbmRsZXN8fCBmYWxzZTtcbiAgICAgICAgICAgIHNjb3BlLnRyaWdnZXJfaW5wdXRfY2hhbmdlPSBmYWxzZTtcbiAgICAgICAgICAgIHNjb3BlLm5vdE1vcmUgID0gcGFyc2VJbnQoYXR0cnMubm90TW9yZSkgICB8fCAxMDA7XG4gICAgICAgICAgICBzY29wZS5ub3RMZXNzICA9IHBhcnNlSW50KGF0dHJzLm5vdExlc3MpICAgfHwgMDtcblxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSBlbGVtZW50LmFkZENsYXNzKFwidmVydGljYWwtcmFuZ2VcIik7XG5cbiAgICAgICAgICAgIHNjb3BlLmhhbmRsZXM9IFtzY29wZS5maW5kKCcuaGFuZGxlLW1pbicpLCBzY29wZS5maW5kKCcuaGFuZGxlLW1heCcpXTtcbiAgICAgICAgICAgIHNjb3BlLmJhciAgICA9IGVsZW1lbnQ7XG4gICAgICAgICAgICBzY29wZS5zbGlkZXIgPSBzY29wZS5maW5kKCcucmFuZ2Utc2xpZGVyLWFjdGl2ZS1zZWdtZW50Jyk7XG4gICAgICAgICAgICBzY29wZS5zdGFydCAgPSBzY29wZS5maW5kKCcuaWJ6LXJhbmdlLXNsaWRlci1zdGFydCcpO1xuICAgICAgICAgICAgc2NvcGUuc3RvcCAgID0gc2NvcGUuZmluZCgnLmliei1yYW5nZS1zbGlkZXItc3RvcCcpO1xuICAgICAgICAgICAgc2NvcGUuZGlzYWJsZT0gYXR0cnMuZGlzYWJsZSB8fCBmYWxzZTtcblxuICAgICAgICAgICAgc2NvcGUuY3RybGhhbmRsZSA9IG5ldyBSYW5nZVNsaWRlckhhbmRsZSAoc2NvcGUpO1xuXG4gICAgICAgICAgICAvLyBwcmVwYXJlIERPTSBvYmplY3QgcG9pbnRlciB0byBjb21wdXRlIHNpemUgZHluYW1pY2FsbHlcbiAgICAgICAgICAgIHNjb3BlLmJvdW5kcyA9IHtcbiAgICAgICAgICAgICAgICBiYXIgICAgOiBlbGVtZW50WzBdLFxuICAgICAgICAgICAgICAgIGhhbmRsZXM6IFtzY29wZS5oYW5kbGVzWzBdWzBdLCBzY29wZS5oYW5kbGVzWzFdWzBdXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmRpc2FibGUgPT09ICd0cnVlJykgc2NvcGUuc2V0RGlzYWJsZSh0cnVlKTtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmRpc3BsYXlUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGF0dHJzLmRpc3BsYXlUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlIDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGFuZGxlJyA6XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5kaXNwbGF5cyA9IHNjb3BlLmhhbmRsZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzBdLmFkZENsYXNzKCdpYnotcmFuZ2Utc2xpZGVyLWRpc3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSBzY29wZS5oYW5kbGVzWzFdLmFkZENsYXNzKCdpYnotcmFuZ2Utc2xpZGVyLWRpc3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuZGlzcGxheXMgPSAgWyRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCAoYXR0cnMuZGlzcGxheVRhcmdldCldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBzY29wZS5kaXNwbGF5cz1bXTtcblxuICAgICAgICAgICAgLy8gZXh0cmFjdCBpbml0aWFsIHZhbHVlcyBmcm9tIGF0dHJzIGFuZCBwYXJzZSBpbnRvIGludFxuICAgICAgICAgICAgaWYgKCFhdHRycy5pbml0aWFsKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuaW5pdGlhbCAgPSBbc2NvcGUubmdNb2RlbCwgc2NvcGUubmdNb2RlbF07IC8vIGluaXRpYWxpemUgdG8gbW9kZWwgdmFsdWVzXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBpbml0aWFsICA9IGF0dHJzLmluaXRpYWwuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICBzY29wZS5pbml0aWFsID0gW1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsWzBdICE9PSB1bmRlZmluZWQgPyBwYXJzZUludCAoaW5pdGlhbFswXSkgOiBzY29wZS5ub3RMZXNzLFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsWzFdICE9PSB1bmRlZmluZWQgPyBwYXJzZUludCAoaW5pdGlhbFsxXSkgOiBzY29wZS5ub3RNb3JlXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTW9uaXRvciBhbnkgY2hhbmdlcyBvbiBzdGFydC9zdG9wIGRhdGVzLlxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoKCdzdGFydEF0JywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnZhbHVlIDwgc2NvcGUuc3RhcnRBdCApIHtcbiAgICAgICAgICAgICAgICAgICAgLy9zY29wZS5zZXRWYWx1ZSAoc2NvcGUuc3RhcnRBdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzY29wZS5zdGFydEF0KSBzY29wZS5zZXRTdGFydCAoc2NvcGUuc3RhcnRBdCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoKCdzdG9wQXQnICwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnZhbHVlID4gc2NvcGUuc3RvcEF0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vc2NvcGUuc2V0VmFsdWUgKHNjb3BlLnN0b3BBdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzY29wZS5zdG9wQXQpIHNjb3BlLnNldFN0b3AgKHNjb3BlLnN0b3BBdCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gZmluaXNoIHdpZGdldCBpbml0aWFsaXNhdGlvblxuICAgICAgICAgICAgc2NvcGUuaW5pdGlhbFNldHRpbmdzIChzY29wZS5pbml0aWFsKTtcblxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLmluaXQoKTtcbiAgICAgICAgXG4gICAgICAgICAvLyBzbGlkZXIgaXMgcmVhZHkgcHJvdmlkZSBjb250cm9sIGhhbmRsZSB0byBhcHBsaWNhdGlvbiBjb250cm9sbGVyXG4gICAgICAgIHNjb3BlLiR3YXRjaCAoJ2luaXRob29rJywgZnVuY3Rpb24gKCkgeyAgICAgICAgIC8vIGluaXQgVmFsdWVzIG1heSBhcnJpdmUgbGF0ZVxuICAgICAgICAgICAgaWYgKHNjb3BlLmluaXRob29rKSBzY29wZS5pbml0aG9vayAoc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNjb3BlLiR3YXRjaCAoJ2luaXR2YWx1ZXMnLCBmdW5jdGlvbiAoKSB7IFx0Ly8gaW5pdCBWYWx1ZXMgbWF5IGFycml2ZSBsYXRlXG4gICAgICAgICAgICBpZiAoc2NvcGUuaW5pdHZhbHVlcykgc2NvcGUuaW5pdFdpZGdldChzY29wZS5pbml0dmFsdWVzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdHdvLXdheSBiaW5kaW5nIGlmIG1vZGVsIHZhbHVlIGNoYW5nZXNcbiAgICAgICAgc2NvcGUuJHdhdGNoICgnbmdNb2RlbCcsIGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgICAgIHNjb3BlLnNldFZhbHVlKG5ld1ZhbHVlLCAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5yZXR1cm4ge1xuICAgIHJlc3RyaWN0OiBcIkVcIiwgICAgLy8gcmVzdHJpY3QgdG8gPHJhbmdlLXNsaWRlcj4gSFRNTCBlbGVtZW50IG5hbWVcbiAgICBzY29wZToge1xuICAgICAgICBzdGFydEF0ICA6Jz0nLCAgLy8gRmlyc3QgYWNjZXB0YWJsZSBkYXRlXG4gICAgICAgIHN0b3BBdCAgIDonPScsICAvLyBMYXN0IGFjY2VwdGFibGUgZGF0ZVxuICAgICAgICBjYWxsYmFjayA6Jz0nLCAgLy8gQ2FsbGJhY2sgdG8gYWN0aWYgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICAgICAgZm9ybWF0dGVyOic9JywgIC8vIENhbGxiYWNrIGZvciBkcmFnIGV2ZW50IGNhbGwgZWFjaCB0aW1lIGludGVybmFsIHZhbHVlIGNoYW5nZXNcbiAgICAgICAgaW5pdGhvb2sgOic9JywgIC8vIEhvb2sgcG9pbnQgdG8gY29udHJvbCBzbGlkZXIgZnJvbSBBUElcbiAgICAgICAgY2JoYW5kbGUgOic9JywgIC8vIEFyZ3VtZW50IGFkZGVkIHRvIGV2ZXJ5IGNhbGxiYWNrXG4gICAgICAgIGluaXR2YWx1ZXM6Jz0nLCAgIC8vIEluaXRpYWwgdmFsdWVzIGFzIGEgc2luZ2xlIG9iamVjdFxuICAgICAgICBuZ01vZGVsOiAnPScgICAgLy8gdGhlIG1vZGVsIHZhbHVlXG4gICAgfSxcbiAgICByZXF1aXJlOiAnP25nTW9kZWwnLFxuICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSwgLy8gaHRtbCB0ZW1wbGF0ZSBpcyBidWlsZCBmcm9tIEpTXG4gICAgcmVwbGFjZTogdHJ1ZSwgICAgICAvLyByZXBsYWNlIGN1cnJlbnQgZGlyZWN0aXZlIHdpdGggdGVtcGxhdGUgd2hpbGUgaW5oZXJpdGluZyBvZiBjbGFzc1xuICAgIGxpbms6IGxpbmsgICAgICAgICAgLy8gcGlja2FkYXRlIG9iamVjdCdzIG1ldGhvZHNcbn07XG59XSk7XG5cbmNvbnNvbGUubG9nIChcIlJhbmdlU2xpZGVyIExvYWRlZFwiKTtcblxufSkoKTsiLCIvKlxuIGFsc2EtZ2F0ZXdheSAtLSBwcm92aWRlIGEgUkVTVC9IVFRQIGludGVyZmFjZSB0byBBTFNBLU1peGVyXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTUsIEZ1bHVwIEFyIEZvbGxcblxuIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvclxuIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiBhbG9uZyB3aXRoIHNjb3BlIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS5cblxuIFJlZmVyZW5jZXM6XG5cbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciB0ZW1wbGF0ZSA9XG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJhZmItbW9uaXRvclwiIG5nLWNsaWNrPVwiZ2V0cGluZygpXCI+JyArXG4gICAgICAgICAnPHNwYW4gY2xhc3M9XCJhZmItcmVmcmVzaC10b2tlblwiICA+YWZiOi8ve3tob3N0bmFtZX19Ont7aHR0cGRwb3J0fX08L3NwYW4+JyArXG4gICAgICAgICAnPGkgY2xhc3M9XCJ7e2ljb259fVwiPjwvaT4nICtcbiAgICAgICAgICc8L2Rpdj4nO1xuXG5cbi8vIHNjb3BlIG1vZHVsZSBpcyBsb2FkIHN0YXRpY2FsbHkgYmVmb3JlIGFueSByb3V0ZSBpcyBjYXRpdmF0ZWRcbmFuZ3VsYXIubW9kdWxlKCdUb2tlblJlZnJlc2gnLCBbJ0NvbmZpZ0FwcCcsICdNb2RhbE5vdGlmaWNhdGlvbiddKVxuXG4gICAgLmRpcmVjdGl2ZSAoJ3Rva2VuUmVmcmVzaCcsIFtcIiR0aW1lb3V0XCIsIFwiJGh0dHBcIiwgXCIkbG9jYXRpb25cIiwgXCJOb3RpZmljYXRpb25cIiwgXCJDb25maWdBcHBcIiwgZnVuY3Rpb24oJHRpbWVvdXQsICRodHRwLCAkbG9jYXRpb24sIE5vdGlmaWNhdGlvbiwgQ29uZmlnQXBwKSB7XG5cbiAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgIHNjb3BlLnN0YXR1cz11bmRlZmluZWQ7IC8vIG5laXRoZXIgdGh1IG5laXRoZXIgZmFsc2VcbiAgICAgICAgXG4gICAgXG4gICAgICAgIHNjb3BlLm9ubGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgICAgKFwib25saW5lXCIpO1xuICAgICAgICAgICAgZWxlbS5yZW1vdmVDbGFzcyAoXCJvZmZsaW5lXCIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLm9mZmxpbmUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgZWxlbS5hZGRDbGFzcyAgICAoXCJvZmZsaW5lXCIpO1xuICAgICAgICAgICAgZWxlbS5yZW1vdmVDbGFzcyAoXCJvbmxpbmVcIik7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5vbmVycm9yID0gZnVuY3Rpb24oZGF0YSwgZXJyY29kZSwgaGVhZGVycykge1xuICAgICAgICAgICAgaWYgKHNjb3BlLnN0YXR1cyAhPT0gZmFsc2UpICB7XG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLndhcm5pbmcgKHttZXNzYWdlOiBcIkFwcEZyYW1ld29yayBCaW5kZXIgTG9zdFwiLCBkZWxheTogNTAwMH0pO1xuICAgICAgICAgICAgICAgIHNjb3BlLm9mZmxpbmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLnN0YXR1cyA9IDA7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihkYXRhLCBlcnJjb2RlLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChzY29wZS5zdGF0dXMgIT09IHRydWUpICB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50b2tlbikgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4gPSBkYXRhLnJlcXVlc3QudG9rZW47XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC51dWlkKSAgQ29uZmlnQXBwLnNlc3Npb24udXVpZCAgPSBkYXRhLnJlcXVlc3QudXVpZDtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5yZXF1ZXN0LnRpbWVvdXQpICBDb25maWdBcHAuc2Vzc2lvbi50aW1lb3V0ICA9IGRhdGEucmVxdWVzdC50aW1lb3V0O1xuXG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLnN1Y2Nlc3MgKHttZXNzYWdlOiBcIkFwcEZyYW1ld29yayBCaW5kZXIgQmFjayB0byBMaXZlXCIsIGRlbGF5OiAzMDAwfSk7XG4gICAgICAgICAgICAgICAgc2NvcGUub25saW5lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5zdGF0dXMgPSAxO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENoZWNrIEJpbmRlciBzdGF0dXNcbiAgICAgICAgc2NvcGUuZ2V0cGluZyA9IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICB2YXIgaGFuZGxlciA9ICRodHRwLmdldChDb25maWdBcHAuc2Vzc2lvbi5waW5nKyc/dG9rZW49JysgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwcm9jZXNzIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUub25zdWNjZXNzKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUub25lcnJvcik7XG5cbiAgICAgICAgICAgIC8vIHJlc3RhcnQgYSBuZXcgdGltZXIgZm9yIG5leHQgcGluZ1xuICAgICAgICAgICAgJHRpbWVvdXQgKHNjb3BlLmdldHBpbmcsIENvbmZpZ0FwcC5zZXNzaW9uLnBpbmdyYXRlKjEwMDApO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gQ2hlY2sgQmluZGVyIHN0YXR1c1xuICAgICAgICBzY29wZS5yZWZyZXNoID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaGFuZGxlciA9ICRodHRwLmdldChDb25maWdBcHAuc2Vzc2lvbi5yZWZyZXNoKyc/dG9rZW49JysgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwcm9jZXNzIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUub25zdWNjZXNzKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUub25lcnJvcik7XG4gICAgICAgICAgICAvLyByZXN0YXJ0IGEgbmV3IHRpbWVyIGZvciBuZXh0IHJlZnJlc2ggdG8gMS80IG9mIHRpbWVvdXQgc2Vzc2lvblxuICAgICAgICAgICAgJHRpbWVvdXQgKHNjb3BlLnJlZnJlc2gsIENvbmZpZ0FwcC5zZXNzaW9uLnRpbWVvdXQgKjI1MCk7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBJbml0aWFsIGNvbm5lY3Rpb25cbiAgICAgICAgc2NvcGUudGtjcmVhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gJGh0dHAuZ2V0KENvbmZpZ0FwcC5zZXNzaW9uLmNyZWF0ZSsnP3Rva2VuPScrIENvbmZpZ0FwcC5zZXNzaW9uLmluaXRpYWwpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBwcm9jZXNzIHN1Y2Nlc3MgYW5kIGVycm9yXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUub25zdWNjZXNzKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUub25lcnJvcik7XG4gICAgICAgIH07XG4gXG4gICAgICAgIHNjb3BlLmljb24gICAgICA9IGF0dHJzLmljb24gICB8fCBcImZpLWxpZ2h0YnVsYlwiO1xuICAgICAgICBzY29wZS5ob3N0bmFtZSAgPSAkbG9jYXRpb24uaG9zdCgpO1xuICAgICAgICBzY29wZS5odHRwZHBvcnQgPSAkbG9jYXRpb24ucG9ydCgpO1xuICAgICAgICBzY29wZS5hdXRvbG9nICAgPSBKU09OLnBhcnNlKGF0dHJzLmF1dG9sb2cgfHwgZmFsc2UpO1xuICAgICAgICBcbiAgICAgICAgaWYgKHNjb3BlLmF1dG9sb2cpIHNjb3BlLnRrY3JlYXRlKCk7XG5cbiAgICAgICAgLy8gSW5pdCBwaW5nIGFuZCByZWZyZXNoIHByb2Nlc3NcbiAgICAgICAgJHRpbWVvdXQgKHNjb3BlLmdldHBpbmcsIENvbmZpZ0FwcC5zZXNzaW9uLnBpbmdyYXRlKjEwMDApO1xuICAgICAgICAkdGltZW91dCAoc2NvcGUucmVmcmVzaCwgQ29uZmlnQXBwLnNlc3Npb24udGltZW91dCAqMjUwKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6IFwiPVwiXG4gICAgICAgIH0sXG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIGxpbms6IG15bWV0aG9kc1xuICAgIH07XG59XSk7XG5cbn0pKCk7XG5jb25zb2xlLmxvZyAoXCJUb2tlbiBSZWZyZXNoIExvYWRlZFwiKTtcblxuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKiBcbiAqIHJlZjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL21vdXNlb3ZlclxuICogXG4gKiB1c2FnZTogXG4gKiBcbiAqIHRpcE1vZGFsOiBsaXN0ZW4gZXZlbnQgZnJvbSBlbGVtLnBhcmVudCgpIHRvIGRpc3BsYXkgdGlwLW1vZGFsXG4gKiAgICAgIDxkaXYgY2xhc3M9XCJ4eHh4XCI+XG4gKiAgICAgICAgICA8dGlwLW1vZGFsIHRpcD14eHh4PjwvdGlwLW1vZGFsPlxuICogICAgICAgICAgPGlucHV0LXRleHQgLi4uLj48L2lucHV0LXRleHQ+XG4gKiAgICAgIDwvZGl2PlxuICogICAgICBcbiAqIE5vdGU6IHVzZSBDU1MudmlzaWJpbGl0eSB0byBhdm9pZCBkaXNwbGF5IGZsaWNrZXJpbmcgYXQgaW5pdGlhbCBkaXNwbGF5LlxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIHRtcGwgPSAnPGRpdiBjbGFzcz1cInRpcC1tb2RhbC1wb3B1cFwiPicgK1xuICAgICAgICAgICAgJzxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+JyArXG4gICAgICAgICAgICAnPHNwYW4+e3t0aXB9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L3NwYW4+PC9kaXY+JyA7XG5cbiAgICBhbmd1bGFyLm1vZHVsZSgnTW9kYWxOb3RpZmljYXRpb24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ3RpcE1vZGFsJywgW1wiJHRpbWVvdXRcIiwgZnVuY3Rpb24gKCR0aW1lb3V0KSB7XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudCA9IGVsZW0ucGFyZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZGFsICAgID0gZWxlbS5maW5kKFwiZGl2XCIpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVsYXkgdGlwIGRpc3BsYXkgdG8gYXZvaWQgYmxpbmtpbmcgd2hlbiBtb3ZpbmcgbW91c2UgZmFzdFxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkaXNwbGF5ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLnNob3cpIHNjb3BlLm1vZGFsLmNzcyh7b3BhY2l0eTogMSwgdmlzaWJpbGl0eTondmlzaWJsZSd9KTsgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuc2hvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS50aW1lb3V0ID0gJHRpbWVvdXQoYWN0aW9uLCBzY29wZS5kZWxheSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsb3NlICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzY29wZS5zaG93ID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgc2NvcGUubW9kYWwuY3NzKHtvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OidoaWRkZW4nfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYWp1c3QgaWNvbiBvciB1c2UgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICBzY29wZS5pY29uICA9IGF0dHJzLmljb24gfHwgJ2ZpLWxpZ2h0YnVsYic7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgUGFyZW50IGVsZW1lbnQgdG8gZ2V0IG1vdXNlIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5hZGRDbGFzcyAoJ2FzLW1vZGFsLXRpcCcpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnY2xpY2snLCBjbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdmb2N1cycsIGRpc3BsYXkpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnbW91c2VvdmVyJywgZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdtb3VzZWxlYXZlJywgY2xvc2UpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnYmx1cicsIGNsb3NlKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmRlbGF5ID0gYXR0cnMuZGVsYXkgfHwgMTAwMDsgLy8gd2FpdCAxcyBiZWZvcmUgZGlzcGxheWluZyB0aXBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICBzY29wZToge3RpcDogXCI9XCJ9IC8vIHRpcCBtYXkgbm90IGJlIGRlZmluZWQgd2hlbiB3aWRnZXQgaXMgZGlzcGxheVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XSk7XG59KSgpO1xuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgdG1wbCA9ICc8c3BhbiB0aXRsZT1cIkdvdG86IHt7aHJlZn19XCIgbmctY2xpY2s9XCJjbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPicgK1xuICAgICAgICAgICAgJzxzcGFuPnt7bGFiZWx9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L3NwYW4+JztcblxuXG4gICAgYW5ndWxhci5tb2R1bGUoJ0xpbmtCdXR0b24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ2xpbmtCdXR0b24nLCBbXCIkbG9jYXRpb25cIiwgZnVuY3Rpb24gKCRsb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcblxuICAgICAgICAgICAgICAgICAgICBzY29wZS5jbGlja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0dHJzLnF1ZXJ5KSAkbG9jYXRpb24ucGF0aChhdHRycy5ocmVmKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgJGxvY2F0aW9uLnBhdGgoYXR0cnMuaHJlZikuc2VhcmNoKGF0dHJzLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBhanVzdCBpY29uIG9yIHVzZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmljb24gPSBhdHRycy5pY29uICAgfHwgJ2ZpLWxpbmsnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5sYWJlbCA9IGF0dHJzLmxhYmVsIHx8ICdKdW1wJztcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaHJlZiAgPSBhdHRycy5ocmVmICB8fCAnL2hvbWUnO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGxhYmVsIGFzIGNsYXNzXG4gICAgICAgICAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgKHNjb3BlLmxhYmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICAgICAgICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlOiB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XSk7XG59KSgpO1xuIiwiXG4vKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLi5cbiAqIFxuICogUmVmZXJlbmNlOlxuICogICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRmlsZVJlYWRlciBcbiAqICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Vc2luZ19maWxlc19mcm9tX3dlYl9hcHBsaWNhdGlvbnMjVXNpbmdfaGlkZGVuX2ZpbGVfaW5wdXRfZWxlbWVudHNfdXNpbmdfdGhlX2NsaWNrJTI4JTI5X21ldGhvZFxuICogICBodHRwczovL3VuY29ya2Vkc3R1ZGlvcy5jb20vYmxvZy9tdWx0aXBhcnRmb3JtZGF0YS1maWxlLXVwbG9hZC13aXRoLWFuZ3VsYXJqc1xuICogICBodHRwczovL3d3dy50ZXJsaWNpLmNvbS8yMDE1LzA1LzE2L3VwbG9hZGluZy1maWxlcy1sb2NhbGx5Lmh0bWxcbiAqICAgaHR0cHM6Ly9naXRodWIuY29tL25lcnZnaC9hbmd1bGFyLWZpbGUtdXBsb2FkL2Jsb2IvbWFzdGVyL3NyYy9zZXJ2aWNlcy9GaWxlVXBsb2FkZXIuanNcbiAqICAgaHR0cHM6Ly9zdHVrLmdpdGh1Yi5pby9qc3ppcC9kb2N1bWVudGF0aW9uL2hvd3RvL3JlYWRfemlwLmh0bWxcbiAqICAgaHR0cDovL29uZWh1bmdyeW1pbmQuY29tL3ppcC1wYXJzaW5nLWpzemlwLWFuZ3VsYXIvXG4gKiAgIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTUzNDE5MTIvaG93LXRvLWdvLWZyb20tYmxvYi10by1hcnJheWJ1ZmZlclxuICogICBcbiAqICAgQnVnczogemlwIGZpbGUgc2VudCBldmVuIHdoZW4gZmxhZyBhcyBpbnZhbGlkIFxuICovXG5cbiBcblxuKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG4vLyBXQVJOSU5HOiBBbmd1bGFyIG5nLWNoYW5nZSBkb2VzIG5vdCB3b3JrIG9uIGlucHV0L2ZpbGUuIExldCdzIGhvb2sgb3VyIGNhbGxiYWNrIHRocm91Z2ggc3RhbmRhcmQgSlMgZnVuY3Rpb25cbnZhciB0bXBsID0gICc8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwie3tuYW1lfX0taW5wdXRcIiBvbmNoYW5nZT1cImFuZ3VsYXIuZWxlbWVudCh0aGlzKS5zY29wZSgpLlVwTG9hZEZpbGUodGhpcy5maWxlcylcIiBhY2NlcHQ9XCJ7e21pbWV0eXBlfX1cIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPicrXG4gICAgICAgICAgICAnPGRpdiBjbGFzcz1cInVwbG9hZC1maWxlXCIgbmctY2xpY2s9XCJpbWdDbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aW1nIGlkPVwie3tuYW1lfX0taW1nXCIgc3JjPVwie3t0aHVtYm5haWx9fVwiPicgK1xuICAgICAgICAgICAgJzxyYW5nZS1zbGlkZXIgbmctc2hvdz1cIiFub3NsaWRlclwiIGlkPVwie3tuYW1lfX0tc2xpZGVyXCIgYXV0b21hdGljPXRydWUgaW5pdGhvb2s9XCJTbGlkZXJJbml0Q0JcIj48L3JhbmdlLXNsaWRlcj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nO1xuICAgIFxuXG4vLyBTZXJ2aWNlIENyZWF0ZSB4Zm9ybSBpbnNlcnQgZmlsZXMgaW4gYW5kIFBvc3QgaXQgdG8gdXJsXG5mdW5jdGlvbiBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCB0aHVtYm5haWxDQikge1xuICAgIHZhciB4bWxSZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB2YXIgeGZvcm0gID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgXG4gICAgdmFyIE9uTG9hZENCID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICB2YXIgc3RhdHVzID0gdGh1bWJuYWlsQ0IgKHRhcmdldCk7XG4gICAgICAgIC8vaWYgKHN0YXR1cykgeGZvcm0uYXBwZW5kKHNjb3BlLm5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XG4gICAgfTtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzbGlkZXIgZHVyaW5nIFVwbG9hZFxuICAgIHhtbFJlcS51cGxvYWQub25wcm9ncmVzcyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB2YXIgcHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKGV2ZW50Lmxlbmd0aENvbXB1dGFibGUgPyBldmVudC5sb2FkZWQgKiAxMDAgLyBldmVudC50b3RhbCA6IDApO1xuICAgICAgICBpZiAoc2NvcGUuc2xpZGVyKSBzY29wZS5zbGlkZXIuc2V0VmFsdWUgKHByb2dyZXNzKTtcbiAgICB9O1xuXG4gICAgLy8gVXBsb2FkIGlzIGZpbmlzaCBsZXQncyBub3RpZnkgY29udHJvbGVyIGNhbGxiYWNrXG4gICAgeG1sUmVxLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZWxlbS5hZGRDbGFzcyAoXCJzdWNjZXNzXCIpO1xuICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcImVycm9yXCIpO1xuICAgICAgICB2YXIgcmVzcG9uc2UgPXtcbiAgICAgICAgICAgIHN0YXR1cyA6IHhtbFJlcS5zdGF0dXMsXG4gICAgICAgICAgICBoZWFkZXJzOiB4bWxSZXEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgXG4gICAgICAgIH07XG4gICAgICAgIHNjb3BlLmNhbGxiYWNrIChyZXNwb25zZSk7XG4gICAgfTtcblxuICAgIHhtbFJlcS5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBlbGVtLmFkZENsYXNzIChcImVycm9yXCIpO1xuICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcInN1Y2Nlc3NcIik7XG4gICAgICAgIHZhciByZXNwb25zZSA9e1xuICAgICAgICAgICAgc3RhdHVzIDogeG1sUmVxLnN0YXR1cyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHhtbFJlcS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUuY2FsbGJhY2sgKHJlc3BvbnNlKTtcbiAgICB9O1xuXG4gICAgeG1sUmVxLm9uYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwiZXJyb3JcIik7XG4gICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgdmFyIHJlc3BvbnNlID17XG4gICAgICAgICAgICBzdGF0dXMgOiB4bWxSZXEuc3RhdHVzLFxuICAgICAgICAgICAgaGVhZGVyczogeG1sUmVxLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIFxuICAgICAgICB9O1xuICAgICAgICBzY29wZS5jYWxsYmFjayAocmVzcG9uc2UpO1xuICAgIH07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmaWxlID0gZmlsZXNbaV07XG4gICAgICAgIGlmICghZmlsZS50eXBlLm1hdGNoKHNjb3BlLm1pbWV0eXBlKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyAoXCJTZWxlY3RlZCBmaWxlPVwiICsgZmlsZS5uYW1lICsgXCIgc2l6ZT1cIisgZmlsZS5zaXplLzEwMjQgKyBcIiBUeXBlPVwiKyBmaWxlLnR5cGUpO1xuXG4gICAgICAgIC8vIEZpbGUgdG8gdXBsb2FkIGlzIHRvbyBiaWdcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHNjb3BlLm1heHNpemUqMTAyNCkge1xuICAgICAgICAgICAgc2NvcGUudGh1bWJuYWlsID0gc2NvcGUuaXN0b29iaWc7IC8vIHdhcm5pbmcgaWYgaW1hZ2UgcGF0aCBpcyB3cm9uZyBub3RoaW5nIGhhcHBlblxuICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCd0aHVtYm5haWwnKTsgLy8gd2Ugc2hvcnQtY2lyY3VpdCBBbmd1bGFyIHJlc3luYyBJbWFnZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYW4gdXBsb2FkYWJsZSBmaWxlXG4gICAgICAgIGlmKGlzTmFOKGZpbGUuc2l6ZSkpIHtcbiAgICAgICAgICAgIHNjb3BlLnRodW1ibmFpbCA9IHNjb3BlLmlzbm90dmFsaWQ7IFxuICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCd0aHVtYm5haWwnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjb3BlLkJhc2VuYW1lPSBmaWxlLm5hbWUuc3BsaXQoJy8nKS5yZXZlcnNlKClbMF07XG4gICAgICAgIHNjb3BlLmltZ0VsZW1bMF0uZmlsZSA9IGZpbGU7XG5cbiAgICAgICAgLy8gSWYgRmlsZSBpcyBhbiBpbWFnZSBsZXQgZGlzcGxheSBpdCBub3dcbiAgICAgICAgaWYgKHRodW1ibmFpbENCKSB7XG4gICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBPbkxvYWRDQjtcbiAgICAgICAgfSBcbiAgICAgICAgLy8gaWYgZXZlcnl0aGluZyBpcyBPSyBsZXQncyBhZGQgZmlsZSB0byB4Zm9ybVxuICAgICAgICB4Zm9ybS5hcHBlbmQoc2NvcGUubmFtZSwgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICB9XG5cblxuICAgIC8vIGV2ZXJ5dGhpbmcgbG9va3MgT0sgbGV0J3MgUG9zdCBpdFxuICAgIHhtbFJlcS5vcGVuKFwiUE9TVFwiLCBwb3N0dXJsICwgdHJ1ZSk7XG4gICAgeG1sUmVxLnNlbmQoeGZvcm0pO1xufVxuXG5hbmd1bGFyLm1vZHVsZSgnVXBsb2FkRmlsZXMnLFsnQ29uZmlnQXBwJywgJ01vZGFsTm90aWZpY2F0aW9uJywgJ1JhbmdlU2xpZGVyJ10pXG5cbi5kaXJlY3RpdmUoJ3VwbG9hZEltYWdlJywgW1wiQ29uZmlnQXBwXCIsIFwiSlFlbXVcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24oQ29uZmlnQXBwLCAgSlFlbXUsIE5vdGlmaWNhdGlvbikge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW1nRWxlbSAgICA9IGVsZW0uZmluZCgnaW1nJyk7XG4gICAgICAgIHNjb3BlLmlucHV0RWxlbSAgPSBlbGVtLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgIHZhciByZWFkZXJDQiA9IGZ1bmN0aW9uICh1cGxvYWQpIHtcbiAgICAgICAgICAgICAgICAvLyBzY29wZS50aHVtYm5haWwgPSB1cGxvYWQudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICBzY29wZS5pbWdFbGVtWzBdLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFt1cGxvYWQudGFyZ2V0LnJlc3VsdF0sIHt0eXBlOiBcImltYWdlXCJ9KSk7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyB0cnVlIGFjdGl2YXRlcyBwb3N0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHBvc3R1cmwgPSBhdHRycy5wb3N0dXJsICsgXCI/dG9rZW49XCIgKyBDb25maWdBcHAuc2Vzc2lvbi50b2tlbjtcbiAgICAgICAgICAgIG5ldyBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCByZWFkZXJDQik7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSW5pdGlhbGxpemUgZGVmYXVsdCB2YWx1ZXMgZnJvbSBhdHRyaWJ1dGVzIHZhbHVlc1xuICAgICAgICBzY29wZS5uYW1lPSBhdHRycy5uYW1lIHx8ICdhdmF0YXInO1xuICAgICAgICBzY29wZS5jYXRlZ29yeT0gYXR0cnMuY2F0ZWdvcnkgIHx8ICdpbWFnZSc7XG4gICAgICAgIHNjb3BlLm1pbWV0eXBlPSAoYXR0cnMuYWNjZXB0IHx8ICdpbWFnZScpICsgJy8qJztcbiAgICAgICAgc2NvcGUubWF4c2l6ZT0gYXR0cnMubWF4c2l6ZSB8fCAxMDA7IC8vIGRlZmF1bHQgbWF4IHNpemUgMTAwS0JcbiAgICAgICAgc2NvcGUucmVnZXhwID0gbmV3IFJlZ0V4cCAoYXR0cnMuYWNjZXB0KyAnLionLCdpJyk7XG5cbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUudGh1bWJuYWlsPSBDb25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLnRodW1ibmFpbDtcbiAgICAgICAgZWxzZSAgc2NvcGUudGh1bWJuYWlsPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAndHV4LWJ6aC5wbmcnO1xuICAgICAgICBcbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUuaXNub3R2YWxpZD0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc25vdHZhbGlkO1xuICAgICAgICBlbHNlICBzY29wZS5pc25vdHZhbGlkPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXNub3R2YWxpZC5wbmcnO1xuXG4gICAgICAgIGlmIChhdHRycy5pc3Rvb2JpZykgc2NvcGUuaXN0b29iaWc9IENvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXN0b29iaWc7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzdG9vYmlnPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXN0b29iaWcucG5nJztcbiAgICAgICAgc2NvcGUubm9zbGlkZXIgPSBhdHRycy5ub3NsaWRlciB8fCBmYWxzZTtcblxuICAgICAgICBpZiAoIWF0dHJzLnBvc3R1cmwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZpbGUtdXBsb2FkICVzIHBvc3R1cmw9L2FwaS94eHh4L3h4eHggcmVxdWlyZWQnLCBzY29wZS5hdHRycyk7ICAgICAgICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbn1dKVxuICAgIFxuLmRpcmVjdGl2ZSgndXBsb2FkQXVkaW8nLCBbXCJDb25maWdBcHBcIiwgXCJKUWVtdVwiLCBcIk5vdGlmaWNhdGlvblwiLCBmdW5jdGlvbihDb25maWdBcHAsICBKUWVtdSwgTm90aWZpY2F0aW9uKSB7XG4gICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuICAgICAgICBcbiAgICAgICAgLy8gZ2V0IHdpZGdldCBpbWFnZSBoYW5kbGUgZnJvbSB0ZW1wbGF0ZVxuICAgICAgICBzY29wZS5pbWdFbGVtICAgID0gZWxlbS5maW5kKCdpbWcnKTtcbiAgICAgICAgc2NvcGUuaW5wdXRFbGVtICA9IGVsZW0uZmluZCgnaW5wdXQnKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEltYWdlIHdhcyBja2ljayBsZXQncyBzaW11bGF0ZSBhbiBpbnB1dCAoZmlsZSkgY2xpY2tcbiAgICAgICAgc2NvcGUuaW1nQ2xpY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNjb3BlLmlucHV0RWxlbVswXS5jbGljaygpOyAvLyBXYXJuaW5nIEFuZ3VsYXIgVHJpZ2dlckV2ZW50IGRvZXMgbm90IHdvcmshISFcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFNsaWRlciBjb250cm9sIGhhbmRsZSByZWdpc3RyYXRpb24gYWZ0ZXIgY3JlYXRpb25cbiAgICAgICAgc2NvcGUuU2xpZGVySW5pdENCPWZ1bmN0aW9uIChzbGlkZXIpIHtcbiAgICAgICAgICAgc2NvcGUuc2xpZGVyPSBzbGlkZXI7IFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gVXBsb2FkIGlzIGRlbGVnYXRlZCB0byBhIHNoYXJlZCBmdW5jdGlvblxuICAgICAgICBzY29wZS5VcExvYWRGaWxlPWZ1bmN0aW9uIChmaWxlcykge1xuICAgICAgICAgICAgdmFyIHBvc3R1cmwgPSBhdHRycy5wb3N0dXJsICsgXCI/dG9rZW49XCIgKyBDb25maWdBcHAuc2Vzc2lvbi50b2tlbjtcbiAgICAgICAgICAgIG5ldyBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCBmYWxzZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSW5pdGlhbGxpemUgZGVmYXVsdCB2YWx1ZXMgZnJvbSBhdHRyaWJ1dGVzIHZhbHVlc1xuICAgICAgICBzY29wZS5uYW1lPSBhdHRycy5uYW1lIHx8ICdhdWRpbyc7XG4gICAgICAgIHNjb3BlLmNhdGVnb3J5PSBhdHRycy5jYXRlZ29yeSAgfHwgJ2F1ZGlvJztcbiAgICAgICAgc2NvcGUubWltZXR5cGU9IChhdHRycy5hY2NlcHQgfHwgJ2F1ZGlvJykgKyAnLyonO1xuICAgICAgICBzY29wZS5tYXhzaXplPSBhdHRycy5tYXhzaXplIHx8IDEwMDAwOyAvLyBkZWZhdWx0IG1heCBzaXplIDEwTUJcbiAgICAgICAgc2NvcGUucmVnZXhwID0gbmV3IFJlZ0V4cCAoYXR0cnMuYWNjZXB0KyAnLionLCdpJyk7XG5cbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUudGh1bWJuYWlsPSBDb25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLnRodW1ibmFpbDtcbiAgICAgICAgZWxzZSAgc2NvcGUudGh1bWJuYWlsPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAndXBsb2FkLW11c2ljLnBuZyc7XG4gICAgICAgIFxuICAgICAgICBpZiAoYXR0cnMudGh1bWJuYWlsKSBzY29wZS5pc25vdHZhbGlkPSBDb25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLmlzbm90dmFsaWQ7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzbm90dmFsaWQ9Q29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc25vdHZhbGlkLnBuZyc7XG5cbiAgICAgICAgaWYgKGF0dHJzLmlzdG9vYmlnKSBzY29wZS5pc3Rvb2JpZz0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc3Rvb2JpZztcbiAgICAgICAgZWxzZSAgc2NvcGUuaXN0b29iaWc9Q29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc3Rvb2JpZy5wbmcnO1xuICAgICAgICBzY29wZS5ub3NsaWRlciA9IGF0dHJzLm5vc2xpZGVyIHx8IGZhbHNlO1xuXG4gICAgICAgIGlmICghYXR0cnMucG9zdHVybCkgdGhyb3cgbmV3IFR5cGVFcnJvcignZmlsZS11cGxvYWQgJXMgcG9zdHVybD0vYXBpL3h4eHgveHh4eCByZXF1aXJlZCcsIHNjb3BlLmF0dHJzKTsgICAgICAgICAgICBcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogJz0nXG4gICAgICAgIH1cbiAgICB9O1xuICAgIFxufV0pXG5cbi5kaXJlY3RpdmUoJ3VwbG9hZEFwcGxpJywgW1wiQ29uZmlnQXBwXCIsIFwiSlFlbXVcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24oQ29uZmlnQXBwLCAgSlFlbXUsIE5vdGlmaWNhdGlvbikge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW1nRWxlbSAgICA9IGVsZW0uZmluZCgnaW1nJyk7XG4gICAgICAgIHNjb3BlLmlucHV0RWxlbSAgPSBlbGVtLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB2YXIgcmVhZGVyQ0IgPSBmdW5jdGlvbiAodXBsb2FkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHppcGFwcCA9IG5ldyBKU1ppcCh1cGxvYWQudGFyZ2V0LnJlc3VsdCk7XG4gICAgICAgICAgICAgICAgdmFyIHRodW1ibmFpbCA9IHppcGFwcC5maWxlKFwiYWZhLXBrZy90aHVtYm5haWwuanBnXCIpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlzIHdlIGhhdmUgYSB0aHVtYm5haWwgd2l0aGluIGxvYWRlZCBaaXBmaWxlXG4gICAgICAgICAgICAgICAgaWYgKCF0aHVtYm5haWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiVGhpcyBpcyBub3QgYSB2YWxpZCBBcHBsaWNhdGlvbiBGcmFtZXdvcmsgQVBQXCIpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS50aHVtYm5haWw9Q29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICdpc25vdHZhbGlkLnBuZyc7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLiRhcHBseSgndGh1bWJuYWlsJyk7IC8vIHdlIHNob3J0LWNpcmN1aXQgQW5ndWxhciByZXN5bmMgSW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBkbyBub3QgcG9zdCB6aXAgb24gYmluZGVyXG4gICAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgICAgICBzY29wZS5pbWdFbGVtWzBdLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFt0aHVtYm5haWwuYXNBcnJheUJ1ZmZlcigpXSwge3R5cGU6IFwiaW1hZ2VcIn0pKTsgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gdHJ1ZSBhY3RpdmF0ZXMgcG9zdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBwb3N0dXJsID0gYXR0cnMucG9zdHVybCArIFwiP3Rva2VuPVwiICsgQ29uZmlnQXBwLnNlc3Npb24udG9rZW47XG4gICAgICAgICAgICBuZXcgTG9hZEZpbGVTdmMgKHNjb3BlLCBlbGVtLCBwb3N0dXJsLCBmaWxlcywgcmVhZGVyQ0IpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEluaXRpYWxsaXplIGRlZmF1bHQgdmFsdWVzIGZyb20gYXR0cmlidXRlcyB2YWx1ZXNcbiAgICAgICAgc2NvcGUubmFtZT0gYXR0cnMubmFtZSB8fCAnYXBwbGknO1xuICAgICAgICBzY29wZS5jYXRlZ29yeT0gYXR0cnMuY2F0ZWdvcnkgIHx8ICdhcHBsaSc7XG4gICAgICAgIHNjb3BlLm1pbWV0eXBlPSAoYXR0cnMuYWNjZXB0IHx8ICcuemlwJyk7XG4gICAgICAgIHNjb3BlLm1heHNpemU9IGF0dHJzLm1heHNpemUgfHwgMTAwMDAwOyAvLyBkZWZhdWx0IG1heCBzaXplIDEwME1CXG4gICAgICAgIHNjb3BlLnJlZ2V4cCA9IG5ldyBSZWdFeHAgKGF0dHJzLmFjY2VwdCsgJy4qJywnaScpO1xuXG4gICAgICAgIGlmIChhdHRycy50aHVtYm5haWwpIHNjb3BlLnRodW1ibmFpbD0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy50aHVtYm5haWw7XG4gICAgICAgIGVsc2UgIHNjb3BlLnRodW1ibmFpbD1Db25maWdBcHAucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ3VwbG9hZC1hcHBsaS5wbmcnO1xuICAgICAgICBcbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUuaXNub3R2YWxpZD0gQ29uZmlnQXBwLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc25vdHZhbGlkO1xuICAgICAgICBlbHNlICBzY29wZS5pc25vdHZhbGlkPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXNub3R2YWxpZC5wbmcnO1xuXG4gICAgICAgIGlmIChhdHRycy5pc3Rvb2JpZykgc2NvcGUuaXN0b29iaWc9IENvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXN0b29iaWc7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzdG9vYmlnPUNvbmZpZ0FwcC5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXN0b29iaWcucG5nJztcbiAgICAgICAgc2NvcGUubm9zbGlkZXIgPSBhdHRycy5ub3NsaWRlciB8fCBmYWxzZTtcblxuICAgICAgICBpZiAoIWF0dHJzLnBvc3R1cmwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZpbGUtdXBsb2FkICVzIHBvc3R1cmw9L2FwaS94eHh4L3h4eHggcmVxdWlyZWQnLCBzY29wZS5hdHRycyk7ICAgICAgICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn1dKTtcblxuY29uc29sZS5sb2cgKFwiVXBsb2FkRmlsZSBMb2FkZWRcIik7XG59KSgpO1xuIiwiXG4vKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLi5cbiAqL1xuXG5cblxuKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgdG1wbCA9ICc8dGlwLW1vZGFsIHRpcD1cInRpcFwiPjwvdGlwLW1vZGFsPicgK1xuICAgICAgICAgICAnPGxhYmVsIGZvcj1cInt7bmFtZX19LWludGV4dFwiPnt7bGFiZWx9fSA8aSBuZy1zaG93PVwicmVxdWlyZWRcIiBuZy1jbGljaz1cIlRvQmVEZWZpbmVkXCIgJyArXG4gICAgICAgICAgICdjbGFzcz1cInJlcXVpcmVkIHt7c3RhdHVzfX0gZmktY2hlY2tib3hcIiB0aXRsZT1cIkZyZWUgVmFsdWUgQnV0IE1hbmRhdG9yeSBBcmd1bWVudFwiIGFsdD1cIj9cIj4gJm5ic3A7IDwvaT48L2xhYmVsPicrICAgICAgICAgIFxuICAgICAgICAgICAnPGlucHV0ICcrXG4gICAgICAgICAgICcgdHlwZT1cInt7dHlwZX19XCIgaWQ9XCJ7e25hbWV9fS1pbnRleHRcIiBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiICBjbGFzcz1cInN0YXR1cy17e3N0YXR1c319XCInK1xuICAgICAgICAgICAnIG5nLW1vZGVsPVwidmFsdWVcIiBuZy1ibHVyPVwidmFsaWRhdGUoKVwiIG5nLWZvY3VzPVwic2VsZWN0ZWQoKVwiICcrXG4gICAgICAgICAgICcgbmctbW9kZWwtb3B0aW9ucz1cInsgdXBkYXRlT246IFxcJ2RlZmF1bHQgYmx1clxcJywgZGVib3VuY2U6IHtkZWZhdWx0OiA1MDAsIGJsdXI6IDB9IH1cIicgK1xuICAgICAgICAgICAnPjxhbGVydCBkYXRhLW5nLXNob3c9XCIhdmFsaWQmJmVycm1zZ1wiPnt7ZXJybXNnfX08L2FsZXJ0Pic7XG5cbnZhciBlbWFpbHBhdGVybiA9IC9eKChbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXStcXC4pK1tePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvaTtcblxuYW5ndWxhci5tb2R1bGUoJ0lucHV0VGV4dCcsWydKUXVlcnlFbXUnXSlcblxuLmRpcmVjdGl2ZSgnaW5wdXRUZXh0JywgW1wiSlFlbXVcIiwgZnVuY3Rpb24oSlFlbXUpIHtcbiAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgXG4gICAgLy8gZGVmYXVsdCB2YWx1ZSBhdCAxc3QgcmVuZGVyaW5nXG4gICAgc2NvcGUuZXJyb3IgID0gZmFsc2U7XG4gICAgc2NvcGUudmFsaWQgID0gZmFsc2U7XG4gICAgc2NvcGUuc3RhdHVzID0gJ3VudG91Y2gnO1xuICAgXG4gICAgc2NvcGUuaW5wdXQgPSBlbGVtLmZpbmQgKFwiaW5wdXRcIik7XG4gICAgc2NvcGUucmVxdWlyZWQgPSAwO1xuICAgIFxuICAgIC8vIHJlcXVpcmVyIGlzIHVzZSB0byBpbmNyZW1lbnQgcmVxdWVzdGVkIGNvdW50ZXJcbiAgICBpZiAoXCJyZXF1aXJlZFwiIGluIGF0dHJzKSB7XG4gICAgICAgIHNjb3BlLnJlcXVpcmVkID0gMTtcbiAgICAgICAgZWxlbS5hZGRDbGFzcyAoXCJyZXF1aXJlZFwiKTtcbiAgICB9XG4gICAgICAgXG4gICAgIC8vIHVzZXIgZW50ZXIgaW5wdXQgcmVzZXQgZXJyb3Igc3RhdHVzXG4gICAgIHNjb3BlLnNlbGVjdGVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzY29wZS5lcnJvcj1mYWxzZTsgXG4gICAgICAgIHNjb3BlLmVycm1zZz1mYWxzZTsgXG4gICAgICAgIHNjb3BlLnN0YXR1cyA9ICd0b3VjaCc7XG4gICAgIH07ICAgXG4gICAgICAgICAgICBcbiAgICAgc2NvcGUudmFsaWRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICBcbiAgICAgICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0IGZpZWxkIGJ5cGFzc2luZyBBbmd1bGFyIG5nLW1vZGVsXG4gICAgICAgICBjb25zb2xlLmxvZyAoXCJDbGlja2VkIElucHV0VGV4dCBuYW1lPSVzIHZhbHVlPSVzIHZhbGlkPSVzXCIsIHNjb3BlLm5hbWUsIHNjb3BlLnZhbHVlLCBzY29wZS52YWxpZCk7ICAgICAgICBcblxuICAgICAgICAgLy8gZm9ybSBpcyBub3QgdW50b3VjaGVkIGFueW1vcmVcbiAgICAgICAgIHNjb3BlLnBhcmVudC5yZW1vdmVDbGFzcyAoXCJuZy1wcmlzdGluZVwiKTtcblxuICAgICAgICAgLy8gaWYgdmFsdWUgbm90IG51bGwgY2xlYW4gdXAgc3RyaW5nXG4gICAgICAgICBpZiAoc2NvcGUudmFsdWUpIHtcbiAgICAgICAgICAgICBzY29wZS5lcnJvcj1mYWxzZTsgXG4gICAgICAgICAgICAvLyByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxsaW5nIHNwYWNlXG4gICAgICAgICAgICBzY29wZS52YWx1ZSA9IHNjb3BlLnZhbHVlLnRyaW0oKTtcbiAgICAgICAgIFxuICAgICAgICAgICAgLy8gcmVtb3ZlIGFueSBzcGFjZSBpcyBub3QgYWxsb3dlZFxuICAgICAgICAgICAgaWYgKCdub3NwYWNlJyBpbiBhdHRycykge1xuICAgICAgICAgICAgICAgc2NvcGUudmFsdWU9c2NvcGUudmFsdWUucmVwbGFjZSgvXFxzL2csICcnKTsgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICBcbiAgICAgICAgICAgIGlmICgnbG93ZXJjYXNlJyBpbiBhdHRycykge1xuICAgICAgICAgICAgICAgc2NvcGUudmFsdWUgPSBzY29wZS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgXG4gICAgICAgICAgICAvLyBjaGVjayBtaW5pbXVtIGxlbmdodFxuICAgICAgICAgICAgaWYgKFwibWlubGVuXCIgaW4gYXR0cnMpIHtcbiAgICAgICAgICAgICAgaWYgKHNjb3BlLnZhbHVlLmxlbmd0aCA8IGF0dHJzLm1pbmxlbikge1xuICAgICAgICAgICAgICAgICBzY29wZS5zdGF0dXM9J2ludmFsaWQnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJtc2c9c2NvcGUubmFtZSArICc6IE1pbmludW0gTGVuZ2g9ICcgKyBhdHRycy5taW5sZW4gKyAnIENoYXJhY3RlcnMnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJvcj10cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICgnZW1haWwnIGluIGF0dHJzKSB7XG4gICAgICAgICAgICBpZiAoIWVtYWlscGF0ZXJuLnRlc3QgKHNjb3BlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0YXR1cz0naW52YWxpZCc7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXJybXNnPSdpbnZhbGlkIGVtYWlsIGFkZHJlc3MnO1xuICAgICAgICAgICAgICAgIHNjb3BlLmVycm9yPXRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzY29wZS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICBzY29wZS5zdGF0dXM9J2ludmFsaWQnO1xuICAgICAgICAgICAgICAgICBzY29wZS5lcnJtc2c9c2NvcGUubmFtZSArICc6IFJlcXVpcmVkIEF0dHJpYnV0ZSc7XG4gICAgICAgICAgICAgICAgIHNjb3BlLmVycm9yPXRydWU7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgIC8vIElmIGxvY2FsIGNvbnRyb2wgZmFpbCBsZXQncyByZWZ1c2UgaW5wdXRcbiAgICAgICAgIGlmIChzY29wZS5lcnJvcikge1xuICAgICAgICAgICAgIGlmIChzY29wZS5yZXF1aXJlZCAmJiBzY29wZS52YWxpZCkge1xuICAgICAgICAgICAgICAgICBzY29wZS52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICBpZiAoc2NvcGUubDRhY291bnRlci52YWxpZGF0ZWQgPiAwKSBzY29wZS5sNGFjb3VudGVyLnZhbGlkYXRlZCAtLTtcbiAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgIC8vIHVzZSBjYWxsIHRvIHVwZGF0ZSBmb3JtIHNjb3BlIG9uIGZvcm0gY29tcGxldGVuZXNzXG4gICAgICAgICAgICAgc2NvcGUuY2FsbGJhY2sgKGF0dHJzLm5hbWUsIG51bGwsIHNjb3BlLmRvbmUpO1xuICAgICAgICAgfSBlbHNlIHsgXG4gICAgICAgICAgICAgLy8gbG9jYWxjaGVjayBpcyBPSyBiYWNrdXAgbWF5IG5ldmVydGhlbGVzcyBjaGFuZ2Ugc3RhdHVzIHRvIGZhbHNlXG4gICAgICAgICAgICBpZiAoc2NvcGUucmVxdWlyZWQgICYmICFzY29wZS52YWxpZCkgc2NvcGUubDRhY291bnRlci52YWxpZGF0ZWQgKys7XG4gICAgICAgICAgICBzY29wZS5zdGF0dXM9J3ZhbGlkJztcbiAgICAgICAgICAgIHNjb3BlLnZhbGlkPXRydWU7XG4gICAgICAgICAgICBzY29wZS5jYWxsYmFjayAoYXR0cnMubmFtZSwgc2NvcGUudmFsdWUsIHNjb3BlLmRvbmUpO1xuICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICB9O1xuICAgICBcbiAgICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBmcm9tIGNvbnRyb2xsZXIgdG8gdXBkYXRlIHdpZGdldCBzdGF0dXNcbiAgICAgc2NvcGUuZG9uZT1mdW5jdGlvbiAoZGF0YSkge1xuICAgICAgIGNvbnNvbGUubG9nIChcIlRleHQtSW5wdXQgQ2FsbGJhY2sgSUQ9XCIrIGF0dHJzLm5hbWUgKyBcIiBkYXRhPVwiLCBkYXRhKTtcbiAgICAgICBmb3IgKHZhciBpIGluIGRhdGEpIHNjb3BlW2ldID0gZGF0YVtpXTsgICAgICAgICBcbiAgICAgfTtcbiAgICAgXG4gICAgIC8vIEV4cG9ydCBzb21lIGF0dHJpYnV0ZXMgd2l0aGluIGRpcmVjdGl2ZSBzY29wZSBmb3IgdGVtcGxhdGVcbiAgICAgc2NvcGUubGFiZWwgICAgICAgPSBhdHRycy5sYWJlbDtcbiAgICAgc2NvcGUubmFtZSAgICAgICAgPSBhdHRycy5uYW1lO1xuICAgICBzY29wZS5wbGFjZWhvbGRlciA9IGF0dHJzLnBsYWNlaG9sZGVyO1xuICAgICBzY29wZS50eXBlICAgICAgICA9IGF0dHJzLnR5cGUgfHwgXCJ0ZXh0XCI7XG4gICAgIHNjb3BlLnRpcCAgICAgICAgID0gYXR0cnMudGlwO1xuXG4gICAgIC8vIHNlYXJjaCBmb3IgZm9ybSB3aXRoaW4gcGFyZW50IGVsZW1udHNcbiAgICAgc2NvcGUucGFyZW50ID0gSlFlbXUucGFyZW50IChlbGVtLCBcIkZPUk1cIik7XG5cbiAgICAgLy8gZW1haWwgZW5mb3JjZSBsb3dlcmNhc2UgYW5kIG5vc3BhY2UgICBcbiAgICAgaWYgKFwiZW1haWxcIiBpbiBhdHRycykge1xuICAgICAgICBhdHRycy5sb3dlcmNhc2U9dHJ1ZTsgXG4gICAgICAgIGF0dHJzLm5vc3BhY2U9dHJ1ZTsgXG4gICAgICAgIGF0dHJzLm1pbmxlbj02OyBcbiAgICAgfVxuXG4gICAgIGlmIChzY29wZS5yZXF1aXJlZCkge1xuICAgICAgICAgc2NvcGUubDRhY291bnRlciA9IHNjb3BlLnBhcmVudC5kYXRhIChcImw0YWNvdW50ZXJcIik7XG4gICAgICAgICBpZiAoIXNjb3BlLmw0YWNvdW50ZXIpIHsgXG4gICAgICAgICAgICBzY29wZS5sNGFjb3VudGVyID0gIHtyZXF1aXJlZDoxLCB2YWxpZGF0ZWQ6MH07XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZpZWxkIFwiK3Njb3BlLm5hbWUrXCIgaXMgcmVxdWlyZWQgKDFzdClcIik7XG4gICAgICAgICAgICBzY29wZS5wYXJlbnQuZGF0YSAoXCJsNGFjb3VudGVyXCIsIHNjb3BlLmw0YWNvdW50ZXIpOyBcbiAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgY29uc29sZS5sb2coXCJGaWVsZCBcIitzY29wZS5uYW1lK1wiIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICAgICAgIHNjb3BlLmw0YWNvdW50ZXIucmVxdWlyZWQgKys7XG4gICAgICAgICB9XG4gICAgIH1cbiAgICAgICAgIFxuICAgICAvLyByZWZyZXNoIHZhbGlkYXRpb24gZWFjaCB0aW1lIGNvbnRyb2xlciB1cGRhdGUgdmFsdWVcbiAgICAgc2NvcGUuJHdhdGNoICgndmFsdWUnLCBmdW5jdGlvbigpe1xuICAgICAgICAgaWYoc2NvcGUudmFsdWUpIHNjb3BlLnZhbGlkYXRlKCk7IH1cbiAgICAgKTtcbiAgICBcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgdGVtcGxhdGU6IHRtcGwsXG4gICAgICAgIGxpbms6IG15bWV0aG9kcyxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogJz0nLFxuICAgICAgICAgICAgdmFsdWU6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbn1dKTtcblxuY29uc29sZS5sb2cgKFwiSW5wdXRUZXh0IExvYWRlZFwiKTtcbn0pKCk7XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5cbihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIHRtcGwgPSAnPGlucHV0LXRleHQgIGNsYXNzPVwicGFzc3dvcmRcIiB0aXA9XCJ7e3RpcDF9fVwiICBwbGFjZWhvbGRlcj1cInt7cGxhY2UxfX1cIicgK1xuICAgICAgICAgICAnbGFiZWw9XCJ7e2xhYmVsMX19XCIgY2FsbGJhY2s9XCJ2YWxpZDFcIiBuYW1lPVwie3tuYW1lfX0tMVwiIHZhbHVlPVwicGFzczFcIiByZXF1aXJlZCBtaW5sZW49XCJ7e21pbmxlbn19XCIgdHlwZT1cInBhc3N3b3JkXCIgPicgK1xuICAgICAgICAgICAnPC9pbnB1dC10ZXh0PicgKyBcbiAgICAgICAgICAgJzxpbnB1dC10ZXh0ICBjbGFzcz1cInBhc3N3b3JkXCIgdGlwPVwidGlwMlwiICBwbGFjZWhvbGRlcj1cInt7cGxhY2UyfX1cIicgK1xuICAgICAgICAgICAnbGFiZWw9XCJ7e2xhYmVsMn19XCIgY2FsbGJhY2s9XCJ2YWxpZDJcIiBuYW1lPVwie3tuYW1lfX0tMlwiIHZhbHVlPVwicGFzczJcIiByZXF1aXJlZCBtaW5sZW49XCJ7e21pbmxlbn19XCIgdHlwZT1cInBhc3N3b3JkXCIgPiAnK1xuICAgICAgICAgICAnPC9pbnB1dC10ZXh0Pic7XG5cbmFuZ3VsYXIubW9kdWxlKCdJbnB1dFBhc3N3b3JkJyxbXSlcblxuLmRpcmVjdGl2ZSgnaW5wdXRQYXNzd29yZCcsIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICBcbiAgICBzY29wZS52YWxpZDEgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc29sZS5sb2cgKFwiQ2xpY2tlZCBJbnB1dFBhc3N3b3JkMSBuYW1lPSVzIHZhbHVlPSVzXCIsIG5hbWUsIHZhbHVlKTsgICAgICAgIFxuICAgICAgICBzY29wZS5maXJzdHB3ZCA9IHZhbHVlO1xuICAgIH07XG4gICAgXG4gICAgc2NvcGUudmFsaWQyID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCBkb25lKSB7ICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2cgKFwiQ2xpY2tlZCBJbnB1dFBhc3N3b3JkMiBuYW1lPSVzIHZhbHVlPSVzXCIsIG5hbWUsIHZhbHVlKTsgICAgICAgIFxuICAgICAgICBcbiAgICAgICAgLy8gaWYgYm90aCBwYXNzd2QgZXF1YWwgdGhlbiBjYWxsIGZvcm0gQ0JcbiAgICAgICAgaWYgKHNjb3BlLmZpcnN0cHdkICE9PSB2YWx1ZSkge1xuICAgICAgICAgIGRvbmUoe3ZhbGlkOiBmYWxzZSwgc3RhdHVzOiAnaW52YWxpZCcsIGVycm1zZzogXCJib3RoIHBhc3N3b3JkIHNob3VsZCBtYXRjaFwifSk7ICBcbiAgICAgICAgfSBlbHNlIHsgIFxuICAgICAgICAgIHNjb3BlLmNhbGxiYWNrIChhdHRycy5uYW1lLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIFxuICAgICB9O1xuICAgICBcbiAgICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBmcm9tIGNvbnRyb2xsZXIgdG8gdXBkYXRlIHdpZGdldCBzdGF0dXNcbiAgICAgc2NvcGUuZG9uZT1mdW5jdGlvbiAoZGF0YSkge1xuICAgICAgIGNvbnNvbGUubG9nIChcIlRleHQtSW5wdXQgQ2FsbGJhY2sgSUQ9XCIrIGF0dHJzLm5hbWUgKyBcIiBkYXRhPVwiLCBkYXRhKTtcbiAgICAgICBmb3IgKHZhciBpIGluIGRhdGEpIHNjb3BlW2ldID0gZGF0YVtpXTsgICAgICAgICBcbiAgICAgfTtcbiAgICAgXG4gICAgIC8vIEV4cG9ydCBzb21lIGF0dHJpYnV0ZXMgd2l0aGluIGRpcmVjdGl2ZSBzY29wZSBmb3IgdGVtcGxhdGVcbiAgICAgc2NvcGUubmFtZSAgID0gYXR0cnMubmFtZTtcbiAgICAgc2NvcGUubGFiZWwxID0gYXR0cnMubGFiZWwgfHwgJ1Bhc3N3b3JkJztcbiAgICAgc2NvcGUubGFiZWwyID0gYXR0cnMubGFiZWwgfHwgJ1Bhc3N3b3JkIFZlcmlmaWNhdGlvbic7XG4gICAgIHNjb3BlLnBsYWNlMSA9IGF0dHJzLnBsYWNlaG9sZGVyMSB8fCAnVXNlciBQYXNzd29yZCc7XG4gICAgIHNjb3BlLnRpcDEgICA9IGF0dHJzLnRpcCB8fCAnQ2hvb3NlIGEgUGFzc3dvcmQnO1xuICAgICBzY29wZS5wbGFjZTIgPSBhdHRycy5wbGFjZWhvbGRlcjEgfHwgJ1Bhc3N3b3JkIFZlcmlmaWNhdGlvbic7XG4gICAgIHNjb3BlLnRpcDIgICA9IGF0dHJzLnRpcCAgICB8fCAnQ29uZmlybWUgeW91ciBQYXNzd29yZCc7XG4gICAgIHNjb3BlLm1pbmxlbiA9IGF0dHJzLm1pbmxlbiB8fCAxMDtcbiAgICAgXG4gICAgIGlmIChcInJlcXVpcmVkXCIgaW4gYXR0cnMpIHNjb3BlLnJlcXVpcmVkID0gJ3JlcXVpcmVkJztcbiAgICAgICAgIFxuICAgIH1cbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgICAgY2FsbGJhY2sgOiAnPScsXG4gICAgICAgIH1cbiAgICB9O1xufSk7XG5cbmNvbnNvbGUubG9nIChcIklucHV0UGFzc3dvcmQgTG9hZGVkXCIpO1xufSkoKTtcbiIsIihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gbGlzdCBhbGwgcmVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgcGFnZSArIGNvbnRyb2xlciBpZiBuZWVkZWRcbmFuZ3VsYXIubW9kdWxlKCdTYW1wbGVNb2R1bGUnLCBbJ1N1Ym1pdEJ1dHRvbicsJ1VwbG9hZEZpbGVzJ10pXG5cbiAgLmNvbnRyb2xsZXIoJ1NhbXBsZUNvbnRyb2xsZXInLCBbXCIkaHR0cFwiLCBmdW5jdGlvbiAoJGh0dHApIHtcbiAgICAgICAgdmFyIHNjb3BlID0gdGhpczsgLy8gSSBoYXRlIEphdmFTY3JpcHRcblxuICAgICAgICBjb25zb2xlLmxvZyAoXCJzYW1wbGUgSW5pdFwiKTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLkZpbGVVcGxvYWRlZCA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJGaWxlVXBsb2FkZWQgcmVzcG9uc2U9JXNcIiwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpKTtcbiAgICAgICAgfTtcbiAgIH1dKTtcblxuY29uc29sZS5sb2cgKFwiU2FtcGxlQ29udHJvbGVyIExvYWRlZFwiKTtcbn0pKCk7ICIsIihmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxuLy8gV0FSTklORzogbWFrZSBzdXJlIHRoYW4gYXBwL2Zyb250ZW5kL3NlcnZpY2VzL0NvbmZpZ0FwcC5qcyBtYXRjaCB5b3VyIHNlcnZlclxuXG4vLyBsaXN0IGFsbCByZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBwYWdlICsgY29udHJvbGVyIGlmIG5lZWRlZFxuYW5ndWxhci5tb2R1bGUoJ0hvbWVNb2R1bGUnLCBbJ1N1Ym1pdEJ1dHRvbicsICdUb2tlblJlZnJlc2gnXSlcblxuICAuY29udHJvbGxlcignSG9tZUNvbnRyb2xsZXInLCBbXCIkaHR0cFwiLCBcIkNvbmZpZ0FwcFwiLCBmdW5jdGlvbiAoJGh0dHAsIENvbmZpZ0FwcCkge1xuICAgICAgICB2YXIgc2NvcGUgPSB0aGlzOyAvLyBJIGhhdGUgSmF2YVNjcmlwdFxuICAgICAgICBzY29wZS51dWlkICAgPVwibm9uZVwiO1xuICAgICAgICBzY29wZS50b2tlbiAgPVwibm9uZVwiO1xuICAgICAgICBzY29wZS5zZXNzaW9uPVwibm9uZVwiO1xuICAgICAgICBzY29wZS5zdGF0dXMgPVwiZXJyLW5vXCI7XG5cbiAgICAgICAgY29uc29sZS5sb2cgKFwiSG9tZSBDb250cm9sbGVyXCIpO1xuICAgICAgICBcbiAgICAgICAgc2NvcGUuUHJvY2Vzc1Jlc3BvbnNlPSBmdW5jdGlvbihkYXRhLCBlcnJjb2RlLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIHZhciBhcGluYW1lPSAnQVBJJysgZGF0YS5yZXF1ZXN0LmFwaS5yZXBsYWNlKCctJywnXycpO1xuICAgICAgICAgICAgc2NvcGUuc3RhdHVzID0gXCJlcnItb2tcIjtcbiAgICAgICAgICAgIHNjb3BlLmVycmNvZGU9IGVycmNvZGU7XG4gICAgICAgICAgICBzY29wZS5yZXF1ZXN0ICA9IGRhdGEucmVxdWVzdDtcbiAgICAgICAgICAgIHNjb3BlLnJlc3BvbnNlID0gZGF0YS5yZXNwb25zZTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gaWYgdG9rZW4gd2FzIHJlZnJlc2ggbGV0J3MgdXBkYXRlIENvbmZpZ0FwcFxuICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50b2tlbikgQ29uZmlnQXBwLnNlc3Npb24udG9rZW4gPSBkYXRhLnJlcXVlc3QudG9rZW47XG4gICAgICAgICAgICBpZiAoZGF0YS5yZXF1ZXN0LnV1aWQpICBDb25maWdBcHAuc2Vzc2lvbi51dWlkICA9IGRhdGEucmVxdWVzdC51dWlkO1xuICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50aW1lb3V0KSAgQ29uZmlnQXBwLnNlc3Npb24udGltZW91dCAgPSBkYXRhLnJlcXVlc3QudGltZW91dDtcblxuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNsZWFuIGV2ZXJ5dGhpbmcgd2hlbiBPcGVuL0Nsb3NlIGlzIGNhbGxlZFxuICAgICAgICAgICAgaWYgKGFwaW5hbWUgPT09IFwiQVBJY3JlYXRlXCIgfHwgYXBpbmFtZSA9PT0gXCJBUElyZXNldFwiKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuQVBJcmVzZXQgID0nJztcbiAgICAgICAgICAgICAgICBzY29wZS5BUEljcmVhdGUgPScnO1xuICAgICAgICAgICAgICAgIHNjb3BlLkFQSXJlZnJlc2g9Jyc7XG4gICAgICAgICAgICAgICAgc2NvcGUuQVBJY2hlY2sgID0nJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlW2FwaW5hbWVdPVwic3VjY2Vzc1wiO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbmV3IHRva2VuIGxldCdzIHVwZGF0ZSBpdFxuICAgICAgICAgICAgaWYgKGRhdGEucmVxdWVzdC50b2tlbikgc2NvcGUudG9rZW49ZGF0YS5yZXF1ZXN0LnRva2VuO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJPSzogXCIrIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLlByb2Nlc3NFcnJvcj0gZnVuY3Rpb24oZGF0YSwgZXJyY29kZSwgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICB2YXIgYXBpbmFtZT0gJ0FQSScrZGF0YS5yZXF1ZXN0LmFwaS5yZXBsYWNlKCctJywnXycpO1xuICAgICAgICAgICAgc2NvcGUuc3RhdHVzICAgPSBcImVyci1meFwiO1xuICAgICAgICAgICAgc2NvcGUuZXJyY29kZSAgPSBlcnJjb2RlO1xuICAgICAgICAgICAgc2NvcGUucmVxdWVzdCAgPSBkYXRhLnJlcXVlc3Q7XG4gICAgICAgICAgICBzY29wZS5yZXNwb25zZSA9IFwiXCI7XG4gICAgICAgICAgICBzY29wZVthcGluYW1lXT1cImZhaWxcIjtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiRlg6IFwiKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuT3BlblNlc3Npb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIk9wZW5TZXNzaW9uXCIpOyBcbiAgICAgICAgICAgIHZhciBwb3N0ZGF0YT0gey8qIGFueSBqc29uIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQgKi99O1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5wb3N0KENvbmZpZ0FwcC5zZXNzaW9uLmNyZWF0ZSArICc/dG9rZW49JytDb25maWdBcHAuc2Vzc2lvbi5pbml0aWFsLCBwb3N0ZGF0YSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5Qcm9jZXNzUmVzcG9uc2UpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5Qcm9jZXNzRXJyb3IpO1xuICAgICAgICB9OyAgICAgICAgXG5cbiAgICAgICAgc2NvcGUuQ2hlY2tTZXNzaW9uID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJDbG9zZVNlc3Npb25cIik7XG4gICAgICAgICAgICB2YXIgcG9zdGRhdGE9IHsvKiBhbnkganNvbiB5b3VyIGFwcGxpY2F0aW9uIG1heSBuZWVkICovfTtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gJGh0dHAucG9zdChDb25maWdBcHAuc2Vzc2lvbi5jaGVjayArICc/dG9rZW49JytDb25maWdBcHAuc2Vzc2lvbi50b2tlbiwgcG9zdGRhdGEpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBoYW5kbGVyLnN1Y2Nlc3Moc2NvcGUuUHJvY2Vzc1Jlc3BvbnNlKTtcbiAgICAgICAgICAgIGhhbmRsZXIuZXJyb3Ioc2NvcGUuUHJvY2Vzc0Vycm9yKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHNjb3BlLlJlZnJlc2hTZXNzaW9uID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyAoXCJSZWZyZXNoU2Vzc2lvblwiKTtcbiAgICAgICAgICAgIHZhciBwb3N0ZGF0YT0gey8qIGFueSBqc29uIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQgKi99O1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5wb3N0KENvbmZpZ0FwcC5zZXNzaW9uLnJlZnJlc2ggKyAnP3Rva2VuPScrQ29uZmlnQXBwLnNlc3Npb24udG9rZW4sIHBvc3RkYXRhKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaGFuZGxlci5zdWNjZXNzKHNjb3BlLlByb2Nlc3NSZXNwb25zZSk7XG4gICAgICAgICAgICBoYW5kbGVyLmVycm9yKHNjb3BlLlByb2Nlc3NFcnJvcik7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5SZXNldFNlc3Npb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIlJlc2V0U2Vzc2lvblwiKTtcbiAgICAgICAgICAgIHZhciBwb3N0ZGF0YT0gey8qIGFueSBqc29uIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQgKi99O1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSAkaHR0cC5wb3N0KENvbmZpZ0FwcC5zZXNzaW9uLnJlc2V0ICsgJz90b2tlbj0nK0NvbmZpZ0FwcC5zZXNzaW9uLnRva2VuLCBwb3N0ZGF0YSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGhhbmRsZXIuc3VjY2VzcyhzY29wZS5Qcm9jZXNzUmVzcG9uc2UpO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcihzY29wZS5Qcm9jZXNzRXJyb3IpO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgIH1dKTtcblxuY29uc29sZS5sb2cgKFwiU2FtcGxlQ29udHJvbGVyIExvYWRlZFwiKTtcbn0pKCk7ICIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKiBcbiAqIFVzYWdlOlxuICogXG4gKiAgIC8vIG1vdXNlIGV2ZW50IHByb2JhYmx5IHBvaW50IG9uIGljb24gYW5kIG5vdCBvbiBidXR0b24gZGl2XG4gKiAgIC4uLiBuZy1jbGljaz1cIkxvY2tDaGFubmVsKCRldmVudClcbiAgICAgdmFyIHRhcmdldD0gYW5ndWxhci5lbGVtZW50KGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICB2YXIgYnV0dG9uPSBKUWVtdS5GaW5kSW5QYXJlbnQgKHRhcmdldCwgJ2RpdicpO1xuICogXG4gKi9cblxuXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuXG4gICAgICAgICAgXG4gICAgLy8gX2FsbCBtb2R1bGVzIG9ubHkgcmVmZXJlbmNlIGRlcGVuZGVuY2llc1xuICAgIGFuZ3VsYXIubW9kdWxlKCdKUXVlcnlFbXUnLCBbXSlcblxuICAgICAgICAgICAgLy8gRmFjdG9yeSBpcyBhIHNpbmdsZXRvbiBhbmQgc2hhcmUgaXRzIGNvbnRleHQgd2l0aGluIGFsbCBpbnN0YW5jZXMuXG4gICAgICAgICAgICAuZmFjdG9yeSgnSlFlbXUnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgRmluZEluUGFyZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VhcmNoID0gc2VsZWN0b3IudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBhcmVudFswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaCA9PT0gcGFyZW50WzBdLnRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSAgLy8gSFRNTERpdkVsZW1lbnQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YXIgIEZpbmRCeVRhZz0gZnVuY3Rpb24gKGVsZW1lbnQsIHRhZywgc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaCA9IHNlbGVjdG9yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXBlICAgPSB0YWcudG9Mb3dlckNhc2UoKSsgXCJOYW1lXCI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IGVsZW1lbnQuY2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNoaWxkcmVuWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VhcmNoID09PSBjaGlsZHJlblswXVt0eXBlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gIC8vIEhUTUxEaXZFbGVtZW50IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4ubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YXIgIEZpbmRCeUNsYXNzPSBmdW5jdGlvbiAoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaCA9IHNlbGVjdG9yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IGVsZW1lbnQuY2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNoaWxkcmVuWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW4uaGFzQ2xhc3Moc2VhcmNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gIC8vIEhUTUxEaXZFbGVtZW50IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4ubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHZhciBteU1ldGhvZHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIEZpbmRJblBhcmVudDogRmluZEluUGFyZW50LFxuICAgICAgICAgICAgICAgICAgICBGaW5kQnlUYWc6IEZpbmRCeVRhZyxcbiAgICAgICAgICAgICAgICAgICAgRmluZEJ5Q2xhc3M6IEZpbmRCeUNsYXNzXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBteU1ldGhvZHM7XG4gICAgICAgICAgICB9KTtcblxufSkoKTsiLCJ2YXIgZm91bmRhdGlvblJvdXRlcyA9IFt7XCJuYW1lXCI6XCJteXNhbXBsZVwiLFwidXJsXCI6XCIvc2FtcGxlXCIsXCJjb250cm9sbGVyXCI6XCJTYW1wbGVDb250cm9sbGVyIGFzIGN0cmxcIixcImFuaW1hdGlvbkluXCI6XCJzbGlkZUluUmlnaHRcIixcInBhdGhcIjpcInBhZ2VzL1NhbXBsZS9TYW1wbGUuaHRtbFwifSx7XCJuYW1lXCI6XCJteWhvbWVcIixcInVybFwiOlwiL2hvbWVcIixcImNvbnRyb2xsZXJcIjpcIkhvbWVDb250cm9sbGVyIGFzIGN0cmxcIixcImFuaW1hdGlvbkluXCI6XCJzbGlkZUluUmlnaHRcIixcInBhdGhcIjpcInBhZ2VzL0hvbWUvSG9tZS5odG1sXCJ9XTsgXG4iLCIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIF9hbGwgbW9kdWxlcyBvbmx5IHJlZmVyZW5jZSBkZXBlbmRlbmNpZXNcbiAgICBhbmd1bGFyLm1vZHVsZSgnQ29uZmlnQXBwJywgW10pXG5cbiAgICAgICAgICAgIC8vIEZhY3RvcnkgaXMgYSBzaW5nbGV0b24gYW5kIHNoYXJlIGl0cyBjb250ZXh0IHdpdGhpbiBhbGwgaW5zdGFuY2VzLlxuICAgICAgICAgICAgLmZhY3RvcnkoJ0NvbmZpZ0FwcCcsIFtcInVybHF1ZXJ5XCIsIGZ1bmN0aW9uICh1cmxxdWVyeSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIG15Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoczogeyAvLyBXYXJuaW5nIHBhdGhzIHNob3VsZCBlbmQgd2l0aCAvXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZSA6ICdpbWFnZXMvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcjogJ2ltYWdlcy9hdmF0YXJzLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdWRpbyA6ICdpbWFnZXMvYXVkaW8vJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpIDogJ2ltYWdlcy9hcHBsaS8nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBteWFwaTogeyAvLyBXYXJuaW5nIHBhdGhzIHNob3VsZCBlbmQgd2l0aCAvXG4gICAgICAgICAgICAgICAgICAgICAgIHRva2VuIDogJy9hcGkvbXlwbHVnaW4veHh4eCdcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb246IHsgLy8gVGhvc2UgZGF0YSBhcmUgdXBkYXRlZCBieSBzZXNzaW9uIHNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlICA6ICcvYXBpL3Rva2VuL2NyZWF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2ggOiAnL2FwaS90b2tlbi9yZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgY2hlY2sgICA6ICcvYXBpL3Rva2VuL2NoZWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQgICA6ICcvYXBpL3Rva2VuL3Jlc2V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgcGluZyAgICA6ICcvYXBpL3Rva2VuL2NoZWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbCA6IHVybHF1ZXJ5LnRva2VuIHx8ICcxMjM0NTY3ODknLCAgLy8gdHlwaWNhbCBkZXYgaW5pdGlhbCB0b2tlblxuICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0IDogMzYwMCwgICAgICAgICAvLyB0aW1lb3V0IGlzIHVwZGF0ZWQgY2xpZW50IHNlc3NpbiBjb250ZXh0IGNyZWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIHBpbmdyYXRlOiA2MCwgICAgICAgICAgIC8vIFBpbmcgcmF0ZSB0byBjaGVjayBpZiBzZXJ2ZXIgaXMgc3RpbGwgYWxpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgdXVpZCAgICA6ICcnLCAgICAgICAgICAgLy8gdXVpZCBtYXAgd2l0aCBjb29raWUgb3IgbG9uZyB0ZXJtIHNlc3Npb24gYWNjZXNzIGtleVxuICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiAgIDogJycgICAgICAgICAgICAvLyB3aWxsIGJlIHJldHVybmVkIGZyb20gYXV0aGVudGljYXRpb24gICAgXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG15Q29uZmlnO1xuICAgICAgICAgICAgfV0pO1xuXG59KSgpOyIsIihmdW5jdGlvbigpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuICBcbiAgZnVuY3Rpb24gIFBhcnNlUXVlcnlTdHJpbmcgKCkge1xuICAgICAgdmFyIHFkID0ge307XG4gICAgICBsb2NhdGlvbi5zZWFyY2guc3Vic3RyKDEpLnNwbGl0KFwiJlwiKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICB2YXIgayA9IGl0ZW0uc3BsaXQoXCI9XCIpWzBdO1xuICAgICAgICAgIHZhciB2ID0gZGVjb2RlVVJJQ29tcG9uZW50KGl0ZW0uc3BsaXQoXCI9XCIpWzFdKTsgXG4gICAgICAgICAgaWYgKGsgaW4gcWQpIHFkW2tdLnB1c2godik7IGVsc2UgcWRba10gPSBbdl07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBxZDtcbiAgfVxuXG4gIGFuZ3VsYXIubW9kdWxlKCdBRkJjbGllbnQnLCBbIC8vIFdhcm5pbmc6IEFwcG5hbWUgc2hvdWxkIGZpdCB3aXRoIGd1bHBmaWxlLmpzICYgaW5kZXguaHRtbFxuICAgICd1aS5yb3V0ZXInLFxuICAgICduZ0FuaW1hdGUnLFxuXG4gICAgLy9mb3VuZGF0aW9uXG4gICAgJ2ZvdW5kYXRpb24nLFxuICAgICdmb3VuZGF0aW9uLmR5bmFtaWNSb3V0aW5nJyxcbiAgICAnZm91bmRhdGlvbi5keW5hbWljUm91dGluZy5hbmltYXRpb25zJyxcbiAgICBcbiAgICAvLyBleHRlcm5hbCBjb21wb25lbnRzXG4gICAgJ3VpLW5vdGlmaWNhdGlvbicsXG4gICAgXG4gICAgLy8gQXBwbGljYXRpb24gQ29tcG9uZW50c1xuICAgICdDb25maWdBcHAnLFxuICAgICdKUXVlcnlFbXUnLFxuICAgICdIb21lTW9kdWxlJyxcbiAgICAnU2FtcGxlTW9kdWxlJyxcbiAgICAnVXBsb2FkRmlsZXMnLFxuICAgICdMaW5rQnV0dG9uJyxcbiAgICAnVG9rZW5SZWZyZXNoJyxcbiAgICAnUmFuZ2VTbGlkZXInLFxuICAgICdNb2RhbE5vdGlmaWNhdGlvbidcbiAgXSlcbiAgICAudmFsdWUgKCd1cmxxdWVyeScsIFBhcnNlUXVlcnlTdHJpbmcoKSlcbiAgICAuY29uZmlnKGNvbmZpZylcbiAgICAucnVuKHJ1bilcbiAgO1xuXG4gIGNvbmZpZy4kaW5qZWN0ID0gWyckdXJsUm91dGVyUHJvdmlkZXInLCAnJGxvY2F0aW9uUHJvdmlkZXInXTtcbiAgXG4gIGZ1bmN0aW9uIGNvbmZpZygkdXJsUHJvdmlkZXIsICRsb2NhdGlvblByb3ZpZGVyLCBDb25maWdBcHApIHtcbiAgICAkdXJsUHJvdmlkZXIub3RoZXJ3aXNlKCcvaG9tZScpO1xuXG4gICAgLy8gaHR0cHM6Ly9kb2NzLmFuZ3VsYXJqcy5vcmcvZXJyb3IvJGxvY2F0aW9uL25vYmFzZVxuICAgICRsb2NhdGlvblByb3ZpZGVyLmh0bWw1TW9kZSh0cnVlKS5oYXNoUHJlZml4KCchJyk7XG4gICAgXG4gIH1cblxuICBmdW5jdGlvbiBydW4oKSB7XG4gICAgRmFzdENsaWNrLmF0dGFjaChkb2N1bWVudC5ib2R5KTtcbiAgfVxuXG5jb25zb2xlLmxvZyAoXCJvcGE9QUZCY2xpZW50IExvYWRlZFwiKTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKSB7YW5ndWxhci5tb2R1bGUoJ0FGQmNsaWVudCcpLnJ1bihbJyR0ZW1wbGF0ZUNhY2hlJywgZnVuY3Rpb24oJHRlbXBsYXRlQ2FjaGUpIHskdGVtcGxhdGVDYWNoZS5wdXQoJ3BhZ2VzL1NhbXBsZS9TYW1wbGUuaHRtbCcsXG4gICAgJzxoMT48aW1nIGNsYXNzPVwibG9nb1wiIHNyYz1cImltYWdlcy9sb2dvL3RyaXNrZWxfaW90X2J6aHgyNTAucG5nXCIgYWx0PVwiSW9ULmJ6aCBMb2dvXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHhcIj4gUG9zdCBGaWxlIFVwbG9hZDwvaDE+PGRpdiBjbGFzcz1cInNhbXBsZS1ib3ggYm94LWNvbnRlbnRcIj48dXBsb2FkLWltYWdlIG5hbWU9XCJhdmF0YXJcIiBjYXRlZ29yeT1cImF2YXRhclwiIHRodW1ibmFpbD1cInR1eC12aXNpdG9yLnBuZ1wiIG1heHNpemU9XCIxMDBcIiBwb3N0dXJsPVwiL2FwaS9wb3N0L3VwbG9hZC1pbWFnZVwiIGNhbGxiYWNrPVwiY3RybC5GaWxlVXBsb2FkZWRcIiBhY2NlcHQ9XCJpbWFnZVwiIHRpdGxlPVwiQ2hhbmdlIHlvdXIgQXZhdGFyXCI+PC91cGxvYWQtaW1hZ2U+PHVwbG9hZC1hdWRpbyBuYW1lPVwibXVzaWNcIiBwb3N0dXJsPVwiL2FwaS9wb3N0L3VwbG9hZC1tdXNpY1wiIGNhbGxiYWNrPVwiY3RybC5GaWxlVXBsb2FkZWRcIiB0aXRsZT1cIlVwbG9hZCB5b3VyIE11c2ljXCI+PC91cGxvYWQtYXVkaW8+PHVwbG9hZC1hcHBsaSBuYW1lPVwiYXBwbGlcIiBwb3N0dXJsPVwiL2FwaS9wb3N0L3VwbG9hZC1hcHBsaVwiIGNhbGxiYWNrPVwiY3RybC5GaWxlVXBsb2FkZWRcIiB0aXRsZT1cIlVwbG9hZCBBR0wgQXBwXCI+PC91cGxvYWQtYXBwbGk+PC9kaXY+PGxpbmstYnV0dG9uIGhyZWY9XCJob21lXCIgaWNvbj1cImZpLWhvbWVcIiBsYWJlbD1cImhvbWVcIj48L2xpbmstYnV0dG9uPicpO31dKTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKSB7YW5ndWxhci5tb2R1bGUoJ0FGQmNsaWVudCcpLnJ1bihbJyR0ZW1wbGF0ZUNhY2hlJywgZnVuY3Rpb24oJHRlbXBsYXRlQ2FjaGUpIHskdGVtcGxhdGVDYWNoZS5wdXQoJ3BhZ2VzL0hvbWUvSG9tZS5odG1sJyxcbiAgICAnPGgzPjxpbWcgY2xhc3M9XCJsb2dvXCIgc3JjPVwiaW1hZ2VzL2xvZ28vdHJpc2tlbF9pb3RfYnpoeDI1MC5wbmdcIiBhbHQ9XCJJb1QuYnpoIExvZ29cIiBzdHlsZT1cImhlaWdodDoxNTBweFwiPiBBcHAgRnJhbWV3b3JrIEJpbmRlciBTaW1wbGUgQ2xpZW50PC9oMz48dG9rZW4tcmVmcmVzaCBhdXRvbG9nPVwidHJ1ZVwiPjwvdG9rZW4tcmVmcmVzaD48ZGl2IGNsYXNzPVwiYnV0dG9uLWJveCBib3gtY29udGVudFwiPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLkFQSWNyZWF0ZX19XCIgaWNvbj1cImZpLXVubG9ja1wiIGxhYmVsPVwiT3BlblwiIGNsaWNrZWQ9XCJjdHJsLk9wZW5TZXNzaW9uXCI+PC9zdWJtaXQtYnV0dG9uPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLkFQSWNoZWNrfX1cIiBpY29uPVwiZmktY2hlY2tib3hcIiBsYWJlbD1cIkNoZWNrXCIgY2xpY2tlZD1cImN0cmwuQ2hlY2tTZXNzaW9uXCI+PC9zdWJtaXQtYnV0dG9uPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLkFQSXJlZnJlc2h9fVwiIGljb249XCJmaS1hcnJvd3MtY29tcHJlc3NcIiBsYWJlbD1cIlJlZnJlc2hcIiBjbGlja2VkPVwiY3RybC5SZWZyZXNoU2Vzc2lvblwiPjwvc3VibWl0LWJ1dHRvbj48c3VibWl0LWJ1dHRvbiBjbGFzcz1cInNlc3Npb24tYnV0dG9uIHt7Y3RybC5BUElyZXNldH19XCIgaWNvbj1cImZpLWxvY2tcIiBsYWJlbD1cIkNsb3NlXCIgY2xpY2tlZD1cImN0cmwuUmVzZXRTZXNzaW9uXCI+PC9zdWJtaXQtYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9XCJtZXNzYWdlLWJveCBib3gtY29udGVudCB2ZXJ0aWNhbCBncmlkLWZyYW1lXCI+PGRpdiBjbGFzcz1cInJlc3BvbnNlXCI+PHNwYW4gY2xhc3M9XCJncmlkLWNvbnRlbnQgbm9zY3JvbGwgcmVxIHt7Y3RybC5zdGF0dXN9fVwiPnJlcT0ge3tjdHJsLnJlcXVlc3R9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJncmlkLWNvbnRlbnQgbm9zY3JvbGwgcmVzIHt7Y3RybC5zdGF0dXN9fVwiPnJlcz0ge3tjdHJsLnJlc3BvbnNlfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwiZ3JpZC1jb250ZW50IG5vc2Nyb2xsIHN0YXR1cyB7e2N0cmwuc3RhdHVzfX1cIj5zdGF0dXM9IHt7Y3RybC5lcnJjb2RlfX08L3NwYW4+PC9kaXY+PC9kaXY+PGxpbmstYnV0dG9uIGhyZWY9XCJzYW1wbGVcIiBpY29uPVwiZmktaG9tZVwiIGxhYmVsPVwic2FtcGxlXCI+PC9saW5rLWJ1dHRvbj4nKTt9XSk7XG59KSgpO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9