From 0ac5a9cd4fbaa15d8275d9ad911047c2d852f6e9 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 13 Oct 2016 00:07:13 -0400 Subject: [PATCH] Update 2016-10-13T04:07:08.988Z --- app/tools/views/toolsImport.html | 6 ++++-- app/views/backendLayout.html | 12 +++++++----- js/app.min.js | 4 ++-- js/lib.min.js | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/tools/views/toolsImport.html b/app/tools/views/toolsImport.html index b5001beb..8bfa1128 100644 --- a/app/tools/views/toolsImport.html +++ b/app/tools/views/toolsImport.html @@ -7,8 +7,10 @@
diff --git a/app/views/backendLayout.html b/app/views/backendLayout.html index 90e72f16..06464a59 100644 --- a/app/views/backendLayout.html +++ b/app/views/backendLayout.html @@ -113,7 +113,8 @@
  • - MOBILE APPSFREE + FREE + MOBILE APPS
  • - BROWSER EXTENSIONS FREE + FREE + BROWSER EXTENSIONS
  • - Firefox coming very soon + Firefox
  • - Opera coming very soon + Opera
  • - Edge coming soon + Edge
  • diff --git a/js/app.min.js b/js/app.min.js index 304f798d..d74125b1 100644 --- a/js/app.min.js +++ b/js/app.min.js @@ -1,2 +1,2 @@ -angular.module("bit",["ui.router","ngMessages","angular-jwt","angular-md5","ui.bootstrap.showErrors","toastr","angulartics","angulartics.google.analytics","bit.directives","bit.services","bit.global","bit.accounts","bit.vault","bit.settings","bit.tools"]),angular.module("bit").constant("appSettings",{rememberedEmailCookieName:"bit.rememberedEmail",version:"1.0.1",environment:"Production",apiUri:"https://api.bitwarden.com"}),angular.module("bit.accounts",["ui.bootstrap","ngCookies"]),angular.module("bit.directives",[]),angular.module("bit.global",[]),angular.module("bit.services",["ngResource","ngStorage","angular-jwt"]),angular.module("bit.settings",["ui.bootstrap","toastr"]),angular.module("bit.tools",["ui.bootstrap","toastr"]),angular.module("bit.vault",["ui.bootstrap","ngclipboard"]),angular.module("bit").factory("apiInterceptor",["$injector","$q","toastr",function(e,t,r){return{request:function(e){return e},response:function(o){return 401!==o.status&&403!==o.status||(e.get("authService").logOut(),e.get("$state").go("frontend.login.info").then(function(){r.warning("Your login session has expired.","Logged out")})),o||t.when(o)},responseError:function(o){return 401!==o.status&&403!==o.status||(e.get("authService").logOut(),e.get("$state").go("frontend.login.info").then(function(){r.warning("Your login session has expired.","Logged out")})),t.reject(o)}}}]),angular.module("bit").config(["$stateProvider","$urlRouterProvider","$httpProvider","jwtInterceptorProvider","$uibTooltipProvider","toastrConfig",function(e,t,r,o,a,n){o.urlParam="access_token",o.tokenGetter=["config","appSettings","tokenService",function(e,t,r){return 0===e.url.indexOf(t.apiUri)?r.getToken():void 0}],angular.extend(n,{closeButton:!0,progressBar:!0,showMethod:"slideDown",target:".toast-target"}),a.options({popupDelay:600}),r.defaults.headers.post&&(r.defaults.headers.post={}),r.defaults.headers.post["Content-Type"]="text/plain; charset=utf-8",r.interceptors.push("apiInterceptor"),r.interceptors.push("jwtInterceptor"),t.otherwise("/"),e.state("backend",{templateUrl:"app/views/backendLayout.html","abstract":!0,data:{authorize:!0}}).state("backend.vault",{url:"^/",templateUrl:"app/vault/views/vault.html",controller:"vaultController",data:{pageTitle:"My Vault"}}).state("backend.settings",{url:"^/settings",templateUrl:"app/settings/views/settings.html",controller:"settingsController",data:{pageTitle:"Settings"}}).state("backend.tools",{url:"^/tools",templateUrl:"app/tools/views/tools.html",controller:"toolsController",data:{pageTitle:"Tools"}}).state("frontend",{templateUrl:"app/views/frontendLayout.html","abstract":!0,data:{authorize:!1}}).state("frontend.login",{templateUrl:"app/accounts/views/accountsLogin.html",controller:"accountsLoginController",data:{bodyClass:"login-page"}}).state("frontend.login.info",{url:"^/login",templateUrl:"app/accounts/views/accountsLoginInfo.html",data:{pageTitle:"Log In"}}).state("frontend.login.twoFactor",{url:"^/login/two-factor",templateUrl:"app/accounts/views/accountsLoginTwoFactor.html",data:{pageTitle:"Log In (Two Factor)",authorizeTwoFactor:!0}}).state("frontend.logout",{url:"^/logout",controller:"accountsLogoutController",data:{authorize:!0}}).state("frontend.passwordHint",{url:"^/password-hint",templateUrl:"app/accounts/views/accountsPasswordHint.html",controller:"accountsPasswordHintController",data:{pageTitle:"Master Password Hint",bodyClass:"login-page"}}).state("frontend.register",{url:"^/register",templateUrl:"app/accounts/views/accountsRegister.html",controller:"accountsRegisterController",data:{pageTitle:"Register",bodyClass:"register-page"}})}]).run(["$rootScope","authService","jwtHelper","tokenService","$state",function(e,t,r,o,a){e.$on("$stateChangeStart",function(e,n,s){return n.data&&n.data.authorize?void(t.isAuthenticated()&&!r.isTokenExpired(o.getToken())||(e.preventDefault(),t.logOut(),a.go("frontend.login.info"))):void(t.isAuthenticated()&&!r.isTokenExpired(o.getToken())&&(e.preventDefault(),a.go("backend.vault")))})}]),angular.module("bit.accounts").controller("accountsLoginController",["$scope","$rootScope","$cookies","apiService","cryptoService","authService","$state","appSettings","$analytics",function(e,t,r,o,a,n,s,i,l){var c=r.get(i.rememberedEmailCookieName);c&&(e.model={email:c,rememberEmail:!0}),e.login=function(t){e.loginPromise=n.logIn(t.email,t.masterPassword),e.loginPromise.then(function(){if(t.rememberEmail){var e=new Date;e.setFullYear(e.getFullYear()+10),r.put(i.rememberedEmailCookieName,t.email,{expires:e})}else r.remove(i.rememberedEmailCookieName);var o=n.getUserProfile();o.twoFactor?(l.eventTrack("Logged In To Two-step"),s.go("frontend.login.twoFactor")):(l.eventTrack("Logged In"),s.go("backend.vault"))})},e.twoFactor=function(t){e.twoFactorPromise=n.logInTwoFactor(t.code,"Authenticator"),e.twoFactorPromise.then(function(){l.eventTrack("Logged In From Two-step"),s.go("backend.vault")})}}]),angular.module("bit.accounts").controller("accountsLogoutController",["$scope","authService","$state","$analytics",function(e,t,r,o){t.logOut(),o.eventTrack("Logged Out"),r.go("frontend.login.info")}]),angular.module("bit.accounts").controller("accountsPasswordHintController",["$scope","$rootScope","apiService",function(e,t,r){e.success=!1,e.submit=function(t){e.submitPromise=r.accounts.postPasswordHint({email:t.email},function(){e.success=!0}).$promise}}]),angular.module("bit.accounts").controller("accountsRegisterController",["$scope","$location","apiService","cryptoService","validationService","$analytics",function(e,t,r,o,a,n){var s=t.search();e.success=!1,e.model={email:s.email},e.registerPromise=null,e.register=function(t){var s=!1;if(e.model.masterPassword.length<8&&(a.addError(t,"MasterPassword","Master password must be at least 8 characters long.",!0),s=!0),e.model.masterPassword!==e.model.confirmMasterPassword&&(a.addError(t,"ConfirmMasterPassword","Master password confirmation does not match.",!0),s=!0),!s){var i=e.model.email.toLowerCase(),l=o.makeKey(e.model.masterPassword,i),c={name:e.model.name,email:i,masterPasswordHash:o.hashPassword(e.model.masterPassword,l),masterPasswordHint:e.model.masterPasswordHint};e.registerPromise=r.accounts.register(c,function(){e.success=!0,n.eventTrack("Registered")}).$promise}}}]),angular.module("bit.directives").directive("apiField",function(){var e=function(e,t,r,o){function a(){return o.$setValidity("api",!0),!0}function n(){o.$setValidity("api",!1)}o.$registerApiError=n,o.$validators.apiValidate=a};return{require:"ngModel",restrict:"A",compile:function(t,r){if(!r.name||""===r.name)throw"api-field element does not have a valid name attribute";return e}}}),angular.module("bit.directives").directive("apiForm",["$rootScope","validationService",function(e,t){function r(e,r,o){o&&o.then&&(e.$errors=null,e.$loading=!0,o.then(function(t){e.$loading=!1},function(o){e.$loading=!1,t.addErrors(e,o),r.$broadcast("show-errors-check-validity")}))}return{require:"form",restrict:"A",link:function(e,t,o,a){var n=o.apiForm||null;void 0!==n&&e.$watch(n,r.bind(null,a,e))}}}]),angular.module("bit.directives").directive("masterPassword",["cryptoService","authService",function(e,t){return{require:"ngModel",restrict:"A",link:function(r,o,a,n){var s=t.getUserProfile();s&&(n.$parsers.unshift(function(t){if(t){var r=e.makeKey(t,s.email,!0),o=r===e.getKey(!0);return n.$setValidity("masterPassword",o),o?t:void 0}}),n.$formatters.unshift(function(t){if(t){var r=e.makeKey(t,s.email,!0),o=r===e.getKey(!0);return n.$setValidity("masterPassword",o),t}}))}}}]),angular.module("bit.directives").directive("pageTitle",["$rootScope","$timeout","appSettings",function(e,t,r){return{link:function(r,o){var a=function(e,r,a,n,s){var i="bitwarden Password Manager";r.data&&r.data.pageTitle&&(i=r.data.pageTitle+" - bitwarden Password Manager"),t(function(){o.text(i)})};e.$on("$stateChangeStart",a)}}}]),angular.module("bit.directives").directive("passwordMeter",function(){return{template:'
    {{value}}%
    ',restrict:"A",scope:{password:"=passwordMeter",username:"=passwordMeterUsername",outerClass:"@?"},link:function(e){var t=function(e,t){if(!t||t===e)return 0;var r=t.length;return e&&""!==e&&(-1!==e.indexOf(t)&&(r-=15),-1!==t.indexOf(e)&&(r-=e.length)),t.length>0&&t.length<=4?r+=t.length:t.length>=5&&t.length<=7?r+=6:t.length>=8&&t.length<=15?r+=12:t.length>=16&&(r+=18),t.match(/[a-z]/)&&(r+=1),t.match(/[A-Z]/)&&(r+=5),t.match(/\d/)&&(r+=5),t.match(/.*\d.*\d.*\d/)&&(r+=5),t.match(/[!,@,#,$,%,^,&,*,?,_,~]/)&&(r+=5),t.match(/.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~]/)&&(r+=5),t.match(/(?=.*[a-z])(?=.*[A-Z])/)&&(r+=2),t.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/)&&(r+=2),t.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!,@,#,$,%,^,&,*,?,_,~])/)&&(r+=2),r=Math.round(2*r),Math.max(0,Math.min(100,r))},r=function(e){switch(Math.round(e/33)){case 0:case 1:return"danger";case 2:return"warning";case 3:return"success"}},o=function(e){e.value=t(e.username,e.password),e.valueClass=r(e.value)};e.$watch("password",function(){o(e)}),e.$watch("username",function(){o(e)})}}}),angular.module("bit.directives").directive("passwordViewer",function(){return{restrict:"A",link:function(e,t,r){var o=r.passwordViewer;o&&(t.onclick=function(e){},t.on("click",function(e){var r=$(o);r&&"password"===r.attr("type")?(t.removeClass("fa-eye").addClass("fa-eye-slash"),r.attr("type","text")):r&&"text"===r.attr("type")&&(t.removeClass("fa-eye-slash").addClass("fa-eye"),r.attr("type","password"))}))}}}),angular.module("bit.global").controller("mainController",["$scope","$state","authService","appSettings","toastr",function(e,t,r,o,a){var n=this;n.bodyClass="",n.userProfile=null,n.searchVaultText=null,n.version=o.version,e.currentYear=(new Date).getFullYear(),e.$on("$viewContentLoaded",function(){$.AdminLTE&&($.AdminLTE.layout&&($.AdminLTE.layout.fix(),$.AdminLTE.layout.fixSidebar()),$.AdminLTE.pushMenu&&$.AdminLTE.pushMenu.expandOnHover())}),e.$on("$stateChangeSuccess",function(e,t,o,a,s){return n.searchVaultText=null,n.userProfile=r.getUserProfile(),t.data.bodyClass?void(n.bodyClass=t.data.bodyClass):void(n.bodyClass="")}),e.searchVault=function(){t.go("backend.vault")},e.addSite=function(){e.$broadcast("vaultAddSite")},e.addFolder=function(){e.$broadcast("vaultAddFolder")},e.changeEmail=function(){e.$broadcast("settingsChangeEmail")},e.changePassword=function(){e.$broadcast("settingsChangePassword")},e.sessions=function(){e.$broadcast("settingsSessions")},e["delete"]=function(){e.$broadcast("settingsDelete")},e.twoFactor=function(){e.$broadcast("settingsTwoFactor")},e["import"]=function(){e.$broadcast("toolsImport")},e["export"]=function(){e.$broadcast("toolsExport")},e.audits=function(){e.$broadcast("toolsAudits")}}]),angular.module("bit.global").controller("sideNavController",["$scope","$state",function(e,t){e.$state=t}]),angular.module("bit.global").controller("topNavController",["$scope",function(e){}]),angular.module("bit.services").factory("apiService",["$resource","tokenService","appSettings",function(e,t,r){var o={},a=r.apiUri;return o.sites=e(a+"/sites/:id",{},{get:{method:"GET",params:{id:"@id"}},list:{method:"GET",params:{}},post:{method:"POST",params:{}},put:{method:"POST",params:{id:"@id"}},del:{url:a+"/sites/:id/delete",method:"POST",params:{id:"@id"}}}),o.folders=e(a+"/folders/:id",{},{get:{method:"GET",params:{id:"@id"}},list:{method:"GET",params:{}},post:{method:"POST",params:{}},put:{method:"POST",params:{id:"@id"}},del:{url:a+"/folders/:id/delete",method:"POST",params:{id:"@id"}}}),o.ciphers=e(a+"/ciphers/:id",{},{get:{method:"GET",params:{id:"@id"}},list:{method:"GET",params:{}},"import":{url:a+"/ciphers/import",method:"POST",params:{}},favorite:{url:a+"/ciphers/:id/favorite",method:"POST",params:{id:"@id"}},del:{url:a+"/ciphers/:id/delete",method:"POST",params:{id:"@id"}}}),o.accounts=e(a+"/accounts",{},{register:{url:a+"/accounts/register",method:"POST",params:{}},emailToken:{url:a+"/accounts/email-token",method:"POST",params:{}},email:{url:a+"/accounts/email",method:"POST",params:{}},putPassword:{url:a+"/accounts/password",method:"POST",params:{}},getProfile:{url:a+"/accounts/profile",method:"GET",params:{}},putProfile:{url:a+"/accounts/profile",method:"POST",params:{}},getTwoFactor:{url:a+"/accounts/two-factor",method:"GET",params:{}},putTwoFactor:{url:a+"/accounts/two-factor",method:"POST",params:{}},postPasswordHint:{url:a+"/accounts/password-hint",method:"POST",params:{}},putSecurityStamp:{url:a+"/accounts/security-stamp",method:"POST",params:{}},"import":{url:a+"/accounts/import",method:"POST",params:{}},postDelete:{url:a+"/accounts/delete",method:"POST",params:{}}}),o.auth=e(a+"/auth",{},{token:{url:a+"/auth/token",method:"POST",params:{}},tokenTwoFactor:{url:a+"/auth/token/two-factor",method:"POST",params:{}}}),o}]),angular.module("bit.services").factory("authService",["cryptoService","apiService","tokenService","$q","jwtHelper",function(e,t,r,o,a){function n(e){i.extended={name:e.Name,twoFactorEnabled:e.TwoFactorEnabled,culture:e.Culture}}var s={},i=null;return s.logIn=function(a,n){a=a.toLowerCase();var i=e.makeKey(n,a),l={email:a,masterPasswordHash:e.hashPassword(n,i)},c=o.defer();return t.auth.token(l,function(t){t&&t.Token&&(r.setToken(t.Token),e.setKey(i),s.setUserProfile(t.Profile),c.resolve(t))},function(e){c.reject(e)}),c.promise},s.logInTwoFactor=function(e,a){var n={code:e,provider:a},i=o.defer();return t.auth.tokenTwoFactor(n,function(e){e&&e.Token&&(r.setToken(e.Token),s.setUserProfile(e.Profile),i.resolve(e))},function(e){i.reject(e)}),i.promise},s.logOut=function(){r.clearToken(),e.clearKey(),i=null},s.getUserProfile=function(){return i||s.setUserProfile(),i},s.setUserProfile=function(e){var o=r.getToken();if(o){var s=a.decodeToken(o),l="TwoFactor"===s.authmethod;i={id:s.nameid,email:s.email,twoFactor:l},!l&&e?n(e):l||e||t.accounts.getProfile({},n)}},s.isAuthenticated=function(){return null!==s.getUserProfile()&&!s.getUserProfile().twoFactor},s.isTwoFactorAuthenticated=function(){return null!==s.getUserProfile()&&s.getUserProfile().twoFactor},s}]),angular.module("bit.services").factory("cipherService",["cryptoService","apiService",function(e,t){var r={};return r.decryptSites=function(e){if(!e)throw"encryptedSites is undefined or null";for(var t=[],o=0;o0)for(var s=0;s0)for(var i=0;i0)for(var l=0;l0)for(var c=0;c=t?e:new Array(t-e.length+1).join(r)+e}l.eventTrack("toolsExportController",{category:"Modal"}),e["export"]=function(r){e.startedExport=!0,t.sites.list({expand:["folder"]},function(t){try{for(var r=n.decryptSites(t.Data),o=[],a=0;a0&&(r[0].folderId=t.folderId,r[0].name=t.name,r[0].username=t.username,r[0].favorite=t.favorite)})},e.$on("vaultAddSite",function(t,r){e.addSite()}),e.addSite=function(r){var o=t.open({animation:!0,templateUrl:"app/vault/views/vaultAddSite.html",controller:"vaultAddSiteController",resolve:{folders:function(){return e.folders},selectedFolder:function(){return r}}});o.result.then(function(t){e.sites.push(t)})},e.deleteSite=function(t){confirm("Are you sure you want to delete this site ("+t.name+")?")&&r.sites.del({id:t.id},function(){var r=e.sites.indexOf(t);e.sites.splice(r,1)})},e.editFolder=function(r){var a=t.open({animation:!0,templateUrl:"app/vault/views/vaultEditFolder.html",controller:"vaultEditFolderController",size:"sm",resolve:{folderId:function(){return r.id}}});a.result.then(function(t){var r=o("filter")(e.folders,{id:t.id},!0);r&&r.length>0&&(r[0].name=t.name)})},e.$on("vaultAddFolder",function(t,r){e.addFolder()}),e.addFolder=function(){var r=t.open({animation:!0,templateUrl:"app/vault/views/vaultAddFolder.html",controller:"vaultAddFolderController",size:"sm"});r.result.then(function(t){e.folders.push(t)})},e.deleteFolder=function(t){confirm("Are you sure you want to delete this folder ("+t.name+")?")&&r.folders.del({id:t.id},function(){var r=e.folders.indexOf(t);e.folders.splice(r,1)})},e.canDeleteFolder=function(t){if(!t||!t.id)return!1;var r=o("filter")(e.sites,{folderId:t.id});return 0===r.length}}]),angular.module("bit.vault").controller("vaultEditFolderController",["$scope","apiService","$uibModalInstance","cryptoService","cipherService","folderId","$analytics",function(e,t,r,o,a,n,s){s.eventTrack("vaultEditFolderController",{category:"Modal"}),e.folder={},t.folders.get({id:n},function(t){e.folder=a.decryptFolder(t)}),e.savePromise=null,e.save=function(o){var i=a.encryptFolder(o);e.savePromise=t.folders.put({id:n},i,function(e){s.eventTrack("Edited Folder");var t=a.decryptFolder(e);r.close(t)}).$promise},e.close=function(){r.dismiss("cancel")}}]),angular.module("bit.vault").controller("vaultEditSiteController",["$scope","apiService","$uibModalInstance","cryptoService","cipherService","passwordService","siteId","folders","$analytics",function(e,t,r,o,a,n,s,i,l){function c(e){var t=$(e.trigger).parent().prev();"text"===t.attr("type")&&t.select()}l.eventTrack("vaultEditSiteController",{category:"Modal"}),e.folders=i,e.site={},t.sites.get({id:s},function(t){e.site=a.decryptSite(t)}),e.save=function(o){var n=a.encryptSite(o);e.savePromise=t.sites.put({id:s},n,function(e){l.eventTrack("Edited Site");var t=a.decryptSite(e);r.close(t)}).$promise},e.generatePassword=function(){e.site.password&&!confirm("Are you sure you want to overwrite the current password?")||(l.eventTrack("Generated Password From Edit"),e.site.password=n.generatePassword({length:10,special:!0}))},e.clipboardSuccess=function(e){e.clearSelection(),c(e)},e.clipboardError=function(e,t){t&&c(e),alert("Your web browser does not support easy clipboard copying. Copy it manually instead.")},e.close=function(){r.dismiss("cancel")}}]); \ No newline at end of file +angular.module("bit",["ui.router","ngMessages","angular-jwt","angular-md5","ui.bootstrap.showErrors","toastr","angulartics","angulartics.google.analytics","bit.directives","bit.services","bit.global","bit.accounts","bit.vault","bit.settings","bit.tools"]),angular.module("bit").constant("appSettings",{rememberedEmailCookieName:"bit.rememberedEmail",version:"1.1.0",environment:"Development",apiUri:"http://localhost:4000"}),angular.module("bit.accounts",["ui.bootstrap","ngCookies"]),angular.module("bit.directives",[]),angular.module("bit.global",[]),angular.module("bit.services",["ngResource","ngStorage","angular-jwt"]),angular.module("bit.settings",["ui.bootstrap","toastr"]),angular.module("bit.vault",["ui.bootstrap","ngclipboard"]),angular.module("bit.tools",["ui.bootstrap","toastr"]),angular.module("bit").factory("apiInterceptor",["$injector","$q","toastr",function(e,t,r){return{request:function(e){return e},response:function(o){return 401!==o.status&&403!==o.status||(e.get("authService").logOut(),e.get("$state").go("frontend.login.info").then(function(){r.warning("Your login session has expired.","Logged out")})),o||t.when(o)},responseError:function(o){return 401!==o.status&&403!==o.status||(e.get("authService").logOut(),e.get("$state").go("frontend.login.info").then(function(){r.warning("Your login session has expired.","Logged out")})),t.reject(o)}}}]),angular.module("bit").config(["$stateProvider","$urlRouterProvider","$httpProvider","jwtInterceptorProvider","$uibTooltipProvider","toastrConfig",function(e,t,r,o,a,n){o.urlParam="access_token",o.tokenGetter=["config","appSettings","tokenService",function(e,t,r){return 0===e.url.indexOf(t.apiUri)?r.getToken():void 0}],angular.extend(n,{closeButton:!0,progressBar:!0,showMethod:"slideDown",target:".toast-target"}),a.options({popupDelay:600}),r.defaults.headers.post&&(r.defaults.headers.post={}),r.defaults.headers.post["Content-Type"]="text/plain; charset=utf-8",r.interceptors.push("apiInterceptor"),r.interceptors.push("jwtInterceptor"),t.otherwise("/"),e.state("backend",{templateUrl:"app/views/backendLayout.html","abstract":!0,data:{authorize:!0}}).state("backend.vault",{url:"^/",templateUrl:"app/vault/views/vault.html",controller:"vaultController",data:{pageTitle:"My Vault"}}).state("backend.settings",{url:"^/settings",templateUrl:"app/settings/views/settings.html",controller:"settingsController",data:{pageTitle:"Settings"}}).state("backend.tools",{url:"^/tools",templateUrl:"app/tools/views/tools.html",controller:"toolsController",data:{pageTitle:"Tools"}}).state("frontend",{templateUrl:"app/views/frontendLayout.html","abstract":!0,data:{authorize:!1}}).state("frontend.login",{templateUrl:"app/accounts/views/accountsLogin.html",controller:"accountsLoginController",data:{bodyClass:"login-page"}}).state("frontend.login.info",{url:"^/login",templateUrl:"app/accounts/views/accountsLoginInfo.html",data:{pageTitle:"Log In"}}).state("frontend.login.twoFactor",{url:"^/login/two-factor",templateUrl:"app/accounts/views/accountsLoginTwoFactor.html",data:{pageTitle:"Log In (Two Factor)",authorizeTwoFactor:!0}}).state("frontend.logout",{url:"^/logout",controller:"accountsLogoutController",data:{authorize:!0}}).state("frontend.passwordHint",{url:"^/password-hint",templateUrl:"app/accounts/views/accountsPasswordHint.html",controller:"accountsPasswordHintController",data:{pageTitle:"Master Password Hint",bodyClass:"login-page"}}).state("frontend.register",{url:"^/register",templateUrl:"app/accounts/views/accountsRegister.html",controller:"accountsRegisterController",data:{pageTitle:"Register",bodyClass:"register-page"}})}]).run(["$rootScope","authService","jwtHelper","tokenService","$state",function(e,t,r,o,a){e.$on("$stateChangeStart",function(e,n,s){return n.data&&n.data.authorize?void(t.isAuthenticated()&&!r.isTokenExpired(o.getToken())||(e.preventDefault(),t.logOut(),a.go("frontend.login.info"))):void(t.isAuthenticated()&&!r.isTokenExpired(o.getToken())&&(e.preventDefault(),a.go("backend.vault")))})}]),angular.module("bit.accounts").controller("accountsLoginController",["$scope","$rootScope","$cookies","apiService","cryptoService","authService","$state","appSettings","$analytics",function(e,t,r,o,a,n,s,i,l){var c=r.get(i.rememberedEmailCookieName);c&&(e.model={email:c,rememberEmail:!0}),e.login=function(t){e.loginPromise=n.logIn(t.email,t.masterPassword),e.loginPromise.then(function(){if(t.rememberEmail){var e=new Date;e.setFullYear(e.getFullYear()+10),r.put(i.rememberedEmailCookieName,t.email,{expires:e})}else r.remove(i.rememberedEmailCookieName);var o=n.getUserProfile();o.twoFactor?(l.eventTrack("Logged In To Two-step"),s.go("frontend.login.twoFactor")):(l.eventTrack("Logged In"),s.go("backend.vault"))})},e.twoFactor=function(t){e.twoFactorPromise=n.logInTwoFactor(t.code,"Authenticator"),e.twoFactorPromise.then(function(){l.eventTrack("Logged In From Two-step"),s.go("backend.vault")})}}]),angular.module("bit.accounts").controller("accountsLogoutController",["$scope","authService","$state","$analytics",function(e,t,r,o){t.logOut(),o.eventTrack("Logged Out"),r.go("frontend.login.info")}]),angular.module("bit.accounts").controller("accountsPasswordHintController",["$scope","$rootScope","apiService",function(e,t,r){e.success=!1,e.submit=function(t){e.submitPromise=r.accounts.postPasswordHint({email:t.email},function(){e.success=!0}).$promise}}]),angular.module("bit.accounts").controller("accountsRegisterController",["$scope","$location","apiService","cryptoService","validationService","$analytics",function(e,t,r,o,a,n){var s=t.search();e.success=!1,e.model={email:s.email},e.registerPromise=null,e.register=function(t){var s=!1;if(e.model.masterPassword.length<8&&(a.addError(t,"MasterPassword","Master password must be at least 8 characters long.",!0),s=!0),e.model.masterPassword!==e.model.confirmMasterPassword&&(a.addError(t,"ConfirmMasterPassword","Master password confirmation does not match.",!0),s=!0),!s){var i=e.model.email.toLowerCase(),l=o.makeKey(e.model.masterPassword,i),c={name:e.model.name,email:i,masterPasswordHash:o.hashPassword(e.model.masterPassword,l),masterPasswordHint:e.model.masterPasswordHint};e.registerPromise=r.accounts.register(c,function(){e.success=!0,n.eventTrack("Registered")}).$promise}}}]),angular.module("bit.directives").directive("apiField",function(){var e=function(e,t,r,o){function a(){return o.$setValidity("api",!0),!0}function n(){o.$setValidity("api",!1)}o.$registerApiError=n,o.$validators.apiValidate=a};return{require:"ngModel",restrict:"A",compile:function(t,r){if(!r.name||""===r.name)throw"api-field element does not have a valid name attribute";return e}}}),angular.module("bit.directives").directive("apiForm",["$rootScope","validationService",function(e,t){function r(e,r,o){o&&o.then&&(e.$errors=null,e.$loading=!0,o.then(function(t){e.$loading=!1},function(o){e.$loading=!1,t.addErrors(e,o),r.$broadcast("show-errors-check-validity")}))}return{require:"form",restrict:"A",link:function(e,t,o,a){var n=o.apiForm||null;void 0!==n&&e.$watch(n,r.bind(null,a,e))}}}]),angular.module("bit.directives").directive("masterPassword",["cryptoService","authService",function(e,t){return{require:"ngModel",restrict:"A",link:function(r,o,a,n){var s=t.getUserProfile();s&&(n.$parsers.unshift(function(t){if(t){var r=e.makeKey(t,s.email,!0),o=r===e.getKey(!0);return n.$setValidity("masterPassword",o),o?t:void 0}}),n.$formatters.unshift(function(t){if(t){var r=e.makeKey(t,s.email,!0),o=r===e.getKey(!0);return n.$setValidity("masterPassword",o),t}}))}}}]),angular.module("bit.directives").directive("pageTitle",["$rootScope","$timeout","appSettings",function(e,t,r){return{link:function(r,o){var a=function(e,r,a,n,s){var i="bitwarden Password Manager";r.data&&r.data.pageTitle&&(i=r.data.pageTitle+" - bitwarden Password Manager"),t(function(){o.text(i)})};e.$on("$stateChangeStart",a)}}}]),angular.module("bit.directives").directive("passwordMeter",function(){return{template:'
    {{value}}%
    ',restrict:"A",scope:{password:"=passwordMeter",username:"=passwordMeterUsername",outerClass:"@?"},link:function(e){var t=function(e,t){if(!t||t===e)return 0;var r=t.length;return e&&""!==e&&(-1!==e.indexOf(t)&&(r-=15),-1!==t.indexOf(e)&&(r-=e.length)),t.length>0&&t.length<=4?r+=t.length:t.length>=5&&t.length<=7?r+=6:t.length>=8&&t.length<=15?r+=12:t.length>=16&&(r+=18),t.match(/[a-z]/)&&(r+=1),t.match(/[A-Z]/)&&(r+=5),t.match(/\d/)&&(r+=5),t.match(/.*\d.*\d.*\d/)&&(r+=5),t.match(/[!,@,#,$,%,^,&,*,?,_,~]/)&&(r+=5),t.match(/.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~]/)&&(r+=5),t.match(/(?=.*[a-z])(?=.*[A-Z])/)&&(r+=2),t.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/)&&(r+=2),t.match(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!,@,#,$,%,^,&,*,?,_,~])/)&&(r+=2),r=Math.round(2*r),Math.max(0,Math.min(100,r))},r=function(e){switch(Math.round(e/33)){case 0:case 1:return"danger";case 2:return"warning";case 3:return"success"}},o=function(e){e.value=t(e.username,e.password),e.valueClass=r(e.value)};e.$watch("password",function(){o(e)}),e.$watch("username",function(){o(e)})}}}),angular.module("bit.directives").directive("passwordViewer",function(){return{restrict:"A",link:function(e,t,r){var o=r.passwordViewer;o&&(t.onclick=function(e){},t.on("click",function(e){var r=$(o);r&&"password"===r.attr("type")?(t.removeClass("fa-eye").addClass("fa-eye-slash"),r.attr("type","text")):r&&"text"===r.attr("type")&&(t.removeClass("fa-eye-slash").addClass("fa-eye"),r.attr("type","password"))}))}}}),angular.module("bit.global").controller("mainController",["$scope","$state","authService","appSettings","toastr",function(e,t,r,o,a){var n=this;n.bodyClass="",n.userProfile=null,n.searchVaultText=null,n.version=o.version,e.currentYear=(new Date).getFullYear(),e.$on("$viewContentLoaded",function(){$.AdminLTE&&($.AdminLTE.layout&&($.AdminLTE.layout.fix(),$.AdminLTE.layout.fixSidebar()),$.AdminLTE.pushMenu&&$.AdminLTE.pushMenu.expandOnHover())}),e.$on("$stateChangeSuccess",function(e,t,o,a,s){return n.searchVaultText=null,n.userProfile=r.getUserProfile(),t.data.bodyClass?void(n.bodyClass=t.data.bodyClass):void(n.bodyClass="")}),e.searchVault=function(){t.go("backend.vault")},e.addSite=function(){e.$broadcast("vaultAddSite")},e.addFolder=function(){e.$broadcast("vaultAddFolder")},e.changeEmail=function(){e.$broadcast("settingsChangeEmail")},e.changePassword=function(){e.$broadcast("settingsChangePassword")},e.sessions=function(){e.$broadcast("settingsSessions")},e["delete"]=function(){e.$broadcast("settingsDelete")},e.twoFactor=function(){e.$broadcast("settingsTwoFactor")},e["import"]=function(){e.$broadcast("toolsImport")},e["export"]=function(){e.$broadcast("toolsExport")},e.audits=function(){e.$broadcast("toolsAudits")}}]),angular.module("bit.global").controller("sideNavController",["$scope","$state",function(e,t){e.$state=t}]),angular.module("bit.global").controller("topNavController",["$scope",function(e){}]),angular.module("bit.services").factory("apiService",["$resource","tokenService","appSettings",function(e,t,r){var o={},a=r.apiUri;return o.sites=e(a+"/sites/:id",{},{get:{method:"GET",params:{id:"@id"}},list:{method:"GET",params:{}},post:{method:"POST",params:{}},put:{method:"POST",params:{id:"@id"}},del:{url:a+"/sites/:id/delete",method:"POST",params:{id:"@id"}}}),o.folders=e(a+"/folders/:id",{},{get:{method:"GET",params:{id:"@id"}},list:{method:"GET",params:{}},post:{method:"POST",params:{}},put:{method:"POST",params:{id:"@id"}},del:{url:a+"/folders/:id/delete",method:"POST",params:{id:"@id"}}}),o.ciphers=e(a+"/ciphers/:id",{},{get:{method:"GET",params:{id:"@id"}},list:{method:"GET",params:{}},"import":{url:a+"/ciphers/import",method:"POST",params:{}},favorite:{url:a+"/ciphers/:id/favorite",method:"POST",params:{id:"@id"}},del:{url:a+"/ciphers/:id/delete",method:"POST",params:{id:"@id"}}}),o.accounts=e(a+"/accounts",{},{register:{url:a+"/accounts/register",method:"POST",params:{}},emailToken:{url:a+"/accounts/email-token",method:"POST",params:{}},email:{url:a+"/accounts/email",method:"POST",params:{}},putPassword:{url:a+"/accounts/password",method:"POST",params:{}},getProfile:{url:a+"/accounts/profile",method:"GET",params:{}},putProfile:{url:a+"/accounts/profile",method:"POST",params:{}},getTwoFactor:{url:a+"/accounts/two-factor",method:"GET",params:{}},putTwoFactor:{url:a+"/accounts/two-factor",method:"POST",params:{}},postPasswordHint:{url:a+"/accounts/password-hint",method:"POST",params:{}},putSecurityStamp:{url:a+"/accounts/security-stamp",method:"POST",params:{}},"import":{url:a+"/accounts/import",method:"POST",params:{}},postDelete:{url:a+"/accounts/delete",method:"POST",params:{}}}),o.auth=e(a+"/auth",{},{token:{url:a+"/auth/token",method:"POST",params:{}},tokenTwoFactor:{url:a+"/auth/token/two-factor",method:"POST",params:{}}}),o}]),angular.module("bit.services").factory("authService",["cryptoService","apiService","tokenService","$q","jwtHelper",function(e,t,r,o,a){function n(e){i.extended={name:e.Name,twoFactorEnabled:e.TwoFactorEnabled,culture:e.Culture}}var s={},i=null;return s.logIn=function(a,n){a=a.toLowerCase();var i=e.makeKey(n,a),l={email:a,masterPasswordHash:e.hashPassword(n,i)},c=o.defer();return t.auth.token(l,function(t){t&&t.Token&&(r.setToken(t.Token),e.setKey(i),s.setUserProfile(t.Profile),c.resolve(t))},function(e){c.reject(e)}),c.promise},s.logInTwoFactor=function(e,a){var n={code:e,provider:a},i=o.defer();return t.auth.tokenTwoFactor(n,function(e){e&&e.Token&&(r.setToken(e.Token),s.setUserProfile(e.Profile),i.resolve(e))},function(e){i.reject(e)}),i.promise},s.logOut=function(){r.clearToken(),e.clearKey(),i=null},s.getUserProfile=function(){return i||s.setUserProfile(),i},s.setUserProfile=function(e){var o=r.getToken();if(o){var s=a.decodeToken(o),l="TwoFactor"===s.authmethod;i={id:s.nameid,email:s.email,twoFactor:l},!l&&e?n(e):l||e||t.accounts.getProfile({},n)}},s.isAuthenticated=function(){return null!==s.getUserProfile()&&!s.getUserProfile().twoFactor},s.isTwoFactorAuthenticated=function(){return null!==s.getUserProfile()&&s.getUserProfile().twoFactor},s}]),angular.module("bit.services").factory("cipherService",["cryptoService","apiService",function(e,t){var r={};return r.decryptSites=function(e){if(!e)throw"encryptedSites is undefined or null";for(var t=[],o=0;o "),l+=e.find("> Name").text(),a.push({name:l}));var c=e.find("> Entry");if(c.length)for(var u=0;u String"),g=0;g Key").text(),w=v.find("> Value").text();if(""!==w)switch(h){case"URL":m.uri=w;break;case"UserName":m.username=w;break;case"Password":m.password=w;break;case"Title":m.name=w;break;case"Notes":m.notes=null===m.notes?w+"\n":m.notes+w+"\n";break;default:m.notes=null===m.notes?h+": "+w+"\n":m.notes+h+": "+w+"\n"}}""===m.name&&(m.name="--"),n.push(m),t||s.push({key:p,value:i})}var y=e.find("> Group");if(y.length)for(var b=0;b Group");u.length&&(o($(u[0]),!0,""),t(a,n,s))}else r()},i.onerror=function(e){r()}}var a={};return a["import"]=function(a,n,s,i){switch(a){case"local":e(n,s,i);break;case"lastpass":t(n,s,i);break;case"safeincloudcsv":r(n,s,i);break;case"keypassxml":o(n,s,i);break;default:i()}},a}),angular.module("bit.services").factory("passwordService",function(){function e(e,t){return Math.floor(Math.random()*(t-e+1))+e}var t={};return t.generatePassword=function(t){var r={length:10,ambiguous:!1,number:!0,minNumber:1,uppercase:!0,minUppercase:1,lowercase:!0,minLowercase:1,special:!1,minSpecial:1},o=angular.extend({},r,t);o.uppercase&&o.minUppercase<0&&(o.minUppercase=1),o.lowercase&&o.minLowercase<0&&(o.minLowercase=1),o.number&&o.minNumber<0&&(o.minNumber=1),o.special&&o.minSpecial<0&&(o.minSpecial=1),(!o.length||o.length<1)&&(o.length=10);var a=o.minUppercase+o.minLowercase+o.minNumber+o.minSpecial;o.length0)for(var s=0;s0)for(var i=0;i0)for(var l=0;l0)for(var c=0;c0&&(r[0].folderId=t.folderId,r[0].name=t.name,r[0].username=t.username,r[0].favorite=t.favorite)})},e.$on("vaultAddSite",function(t,r){e.addSite()}),e.addSite=function(r){var o=t.open({animation:!0,templateUrl:"app/vault/views/vaultAddSite.html",controller:"vaultAddSiteController",resolve:{folders:function(){return e.folders},selectedFolder:function(){return r}}});o.result.then(function(t){e.sites.push(t)})},e.deleteSite=function(t){confirm("Are you sure you want to delete this site ("+t.name+")?")&&r.sites.del({id:t.id},function(){var r=e.sites.indexOf(t);e.sites.splice(r,1)})},e.editFolder=function(r){var a=t.open({animation:!0,templateUrl:"app/vault/views/vaultEditFolder.html",controller:"vaultEditFolderController",size:"sm",resolve:{folderId:function(){return r.id}}});a.result.then(function(t){var r=o("filter")(e.folders,{id:t.id},!0);r&&r.length>0&&(r[0].name=t.name)})},e.$on("vaultAddFolder",function(t,r){e.addFolder()}),e.addFolder=function(){var r=t.open({animation:!0,templateUrl:"app/vault/views/vaultAddFolder.html",controller:"vaultAddFolderController",size:"sm"});r.result.then(function(t){e.folders.push(t)})},e.deleteFolder=function(t){confirm("Are you sure you want to delete this folder ("+t.name+")?")&&r.folders.del({id:t.id},function(){var r=e.folders.indexOf(t);e.folders.splice(r,1)})},e.canDeleteFolder=function(t){if(!t||!t.id)return!1;var r=o("filter")(e.sites,{folderId:t.id});return 0===r.length}}]),angular.module("bit.vault").controller("vaultEditFolderController",["$scope","apiService","$uibModalInstance","cryptoService","cipherService","folderId","$analytics",function(e,t,r,o,a,n,s){s.eventTrack("vaultEditFolderController",{category:"Modal"}),e.folder={},t.folders.get({id:n},function(t){e.folder=a.decryptFolder(t)}),e.savePromise=null,e.save=function(o){var i=a.encryptFolder(o);e.savePromise=t.folders.put({id:n},i,function(e){s.eventTrack("Edited Folder");var t=a.decryptFolder(e);r.close(t)}).$promise},e.close=function(){r.dismiss("cancel")}}]),angular.module("bit.vault").controller("vaultEditSiteController",["$scope","apiService","$uibModalInstance","cryptoService","cipherService","passwordService","siteId","folders","$analytics",function(e,t,r,o,a,n,s,i,l){function c(e){var t=$(e.trigger).parent().prev();"text"===t.attr("type")&&t.select()}l.eventTrack("vaultEditSiteController",{category:"Modal"}),e.folders=i,e.site={},t.sites.get({id:s},function(t){e.site=a.decryptSite(t)}),e.save=function(o){var n=a.encryptSite(o);e.savePromise=t.sites.put({id:s},n,function(e){l.eventTrack("Edited Site");var t=a.decryptSite(e);r.close(t)}).$promise},e.generatePassword=function(){e.site.password&&!confirm("Are you sure you want to overwrite the current password?")||(l.eventTrack("Generated Password From Edit"),e.site.password=n.generatePassword({length:10,special:!0}))},e.clipboardSuccess=function(e){e.clearSelection(),c(e)},e.clipboardError=function(e,t){t&&c(e),alert("Your web browser does not support easy clipboard copying. Copy it manually instead.")},e.close=function(){r.dismiss("cancel")}}]),angular.module("bit.tools").controller("toolsAuditsController",["$scope","apiService","$uibModalInstance","toastr","$analytics",function(e,t,r,o,a){a.eventTrack("toolsAuditsController",{category:"Modal"}),e.close=function(){r.dismiss("cancel")}}]),angular.module("bit.tools").controller("toolsController",["$scope","$uibModal","apiService","toastr","authService",function(e,t,r,o,a){e["import"]=function(){t.open({animation:!0,templateUrl:"app/tools/views/toolsImport.html",controller:"toolsImportController",size:"sm"})},e.$on("toolsImport",function(t,r){e["import"]()}),e["export"]=function(){t.open({animation:!0,templateUrl:"app/tools/views/toolsExport.html",controller:"toolsExportController",size:"sm"})},e.$on("toolsExport",function(t,r){e["export"]()}),e.audits=function(){t.open({animation:!0,templateUrl:"app/tools/views/toolsAudits.html",controller:"toolsAuditsController"})},e.$on("toolsAudits",function(t,r){e.audits()})}]),angular.module("bit.tools").controller("toolsExportController",["$scope","apiService","authService","$uibModalInstance","cryptoService","cipherService","$q","toastr","$analytics",function(e,t,r,o,a,n,s,i,l){function c(){var e=new Date,t=e.getFullYear()+""+u(e.getMonth()+1,2)+u(e.getDate(),2)+u(e.getHours(),2)+u(e.getMinutes(),2)+u(e.getSeconds(),2);return"bitwarden_export_"+t+".csv"}function u(e,t,r){return r=r||"0",e+="",e.length>=t?e:new Array(t-e.length+1).join(r)+e}l.eventTrack("toolsExportController",{category:"Modal"}),e["export"]=function(r){e.startedExport=!0,t.sites.list({expand:["folder"]},function(t){try{for(var r=n.decryptSites(t.Data),o=[],a=0;a0&&l.setDate(-s+1);for(var c=this.getDates(l,42),u=0;42>u;u++)c[u]=angular.extend(this.createDateObject(c[u],this.formatDay),{secondary:c[u].getMonth()!==r,uid:e.uniqueId+"-"+u});e.labels=new Array(7);for(var p=0;7>p;p++)e.labels[p]={abbr:n(c[p].date,this.formatDayHeader),full:n(c[p].date,"EEEE")};if(e.title=n(this.activeDate,this.formatDayTitle),e.rows=this.split(c,7),e.showWeeks){e.weekNumbers=[];for(var d=(11-this.startingDay)%7,f=e.rows.length,h=0;f>h;h++)e.weekNumbers.push(i(e.rows[h][d].date))}},this.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},this.handleKeyDown=function(e,t){var n=this.activeDate.getDate();if("left"===e)n-=1;else if("up"===e)n-=7;else if("right"===e)n+=1;else if("down"===e)n+=7;else if("pageup"===e||"pagedown"===e){var i=this.activeDate.getMonth()+("pageup"===e?-1:1);this.activeDate.setMonth(i,1),n=Math.min(r(this.activeDate.getFullYear(),this.activeDate.getMonth()),n)}else"home"===e?n=1:"end"===e&&(n=r(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(n)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(e,t,n){this.step={years:1},this.element=t,this.init=function(e){angular.extend(e,this),e.refreshView()},this._refreshView=function(){for(var t,r=new Array(12),i=this.activeDate.getFullYear(),a=0;12>a;a++)t=new Date(this.activeDate),t.setFullYear(i,a,1),r[a]=angular.extend(this.createDateObject(t,this.formatMonth),{uid:e.uniqueId+"-"+a});e.title=n(this.activeDate,this.formatMonthTitle),e.rows=this.split(r,3)},this.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth())-new Date(t.getFullYear(),t.getMonth())},this.handleKeyDown=function(e,t){var n=this.activeDate.getMonth();if("left"===e)n-=1;else if("up"===e)n-=3;else if("right"===e)n+=1;else if("down"===e)n+=3;else if("pageup"===e||"pagedown"===e){var r=this.activeDate.getFullYear()+("pageup"===e?-1:1);this.activeDate.setFullYear(r)}else"home"===e?n=0:"end"===e&&(n=11);this.activeDate.setMonth(n)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(e,t,n){function r(e){return parseInt((e-1)/i,10)*i+1}var i;this.element=t,this.yearpickerInit=function(){i=this.yearRange,this.step={years:i}},this._refreshView=function(){for(var t,n=new Array(i),a=0,o=r(this.activeDate.getFullYear());i>a;a++)t=new Date(this.activeDate),t.setFullYear(o+a,0,1),n[a]=angular.extend(this.createDateObject(t,this.formatYear),{uid:e.uniqueId+"-"+a});e.title=[n[0].label,n[i-1].label].join(" - "),e.rows=this.split(n,5)},this.compare=function(e,t){return e.getFullYear()-t.getFullYear()},this.handleKeyDown=function(e,t){var n=this.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=5:"right"===e?n+=1:"down"===e?n+=5:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*this.step.years:"home"===e?n=r(this.activeDate.getFullYear()):"end"===e&&(n=r(this.activeDate.getFullYear())+i-1),this.activeDate.setFullYear(n)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(e,t,n,r){var i=r[0],a=r[1];i.init(a)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/day.html"},require:["^?uibDatepicker","uibDaypicker","^?datepicker"],controller:"UibDaypickerController",link:function(e,t,n,r){var i=r[0]||r[2],a=r[1];a.init(i)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/month.html"},require:["^?uibDatepicker","uibMonthpicker","^?datepicker"],controller:"UibMonthpickerController",link:function(e,t,n,r){var i=r[0]||r[2],a=r[1];a.init(i)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/year.html"},require:["^?uibDatepicker","uibYearpicker","^?datepicker"],controller:"UibYearpickerController",link:function(e,t,n,r){var i=r[0]||r[2];angular.extend(i,r[1]),i.yearpickerInit(),i.refreshView()}}}).constant("uibDatepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"template/datepicker/popup.html",datepickerTemplateUrl:"template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$parse","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout",function(e,t,n,r,i,a,o,s,l,c,u,p){function d(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}function f(t){angular.isNumber(t)&&(t=new Date(t));{if(!t)return null;if(angular.isDate(t)&&!isNaN(t))return t;if(angular.isString(t)){var n=c.parse(t,v,e.date);return isNaN(n)?void 0:n}}}function h(e,t){var r=e||t;if(!n.ngRequired&&!r)return!0;if(angular.isNumber(r)&&(r=new Date(r)),r){if(angular.isDate(r)&&!isNaN(r))return!0;if(angular.isString(r)){var i=c.parse(r,v);return!isNaN(i)}return!1}return!0}function g(n){var r=T[0],i=t[0].contains(n.target),a=void 0!==r.contains&&r.contains(n.target);!e.isOpen||i||a||e.$apply(function(){e.isOpen=!1})}function m(n){27===n.which&&e.isOpen?(n.preventDefault(),n.stopPropagation(),e.$apply(function(){e.isOpen=!1}),t[0].focus()):40!==n.which||e.isOpen||(n.preventDefault(),n.stopPropagation(),e.$apply(function(){e.isOpen=!0}))}var v,b,$,y,w,k,x,C,D,T,S={},E=!1;e.watchData={},this.init=function(s){if(D=s,b=angular.isDefined(n.closeOnDateSelection)?e.$parent.$eval(n.closeOnDateSelection):u.closeOnDateSelection,$=angular.isDefined(n.datepickerAppendToBody)?e.$parent.$eval(n.datepickerAppendToBody):u.appendToBody,y=angular.isDefined(n.onOpenFocus)?e.$parent.$eval(n.onOpenFocus):u.onOpenFocus,w=angular.isDefined(n.datepickerPopupTemplateUrl)?n.datepickerPopupTemplateUrl:u.datepickerPopupTemplateUrl,k=angular.isDefined(n.datepickerTemplateUrl)?n.datepickerTemplateUrl:u.datepickerTemplateUrl,e.showButtonBar=angular.isDefined(n.showButtonBar)?e.$parent.$eval(n.showButtonBar):u.showButtonBar,u.html5Types[n.type]?(v=u.html5Types[n.type],E=!0):(v=n.datepickerPopup||n.uibDatepickerPopup||u.datepickerPopup,n.$observe("uibDatepickerPopup",function(e,t){var n=e||u.datepickerPopup;if(n!==v&&(v=n,D.$modelValue=null,!v))throw new Error("uibDatepickerPopup must have a date format specified.")})),!v)throw new Error("uibDatepickerPopup must have a date format specified.");if(E&&n.datepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");if(x=angular.element("
    "),x.attr({"ng-model":"date","ng-change":"dateSelection(date)","template-url":w}),C=angular.element(x.children()[0]),C.attr("template-url",k),E&&"month"===n.type&&(C.attr("datepicker-mode",'"month"'),C.attr("min-mode","month")),n.datepickerOptions){var p=e.$parent.$eval(n.datepickerOptions);p&&p.initDate&&(e.initDate=p.initDate,C.attr("init-date","initDate"),delete p.initDate),angular.forEach(p,function(e,t){C.attr(d(t),e)})}angular.forEach(["minMode","maxMode","minDate","maxDate","datepickerMode","initDate","shortcutPropagation"],function(t){if(n[t]){var r=i(n[t]);if(e.$parent.$watch(r,function(n){e.watchData[t]=n,"minDate"!==t&&"maxDate"!==t||(S[t]=new Date(n))}),C.attr(d(t),"watchData."+t),"datepickerMode"===t){var a=r.assign;e.$watch("watchData."+t,function(t,n){angular.isFunction(a)&&t!==n&&a(e.$parent,t)})}}}),n.dateDisabled&&C.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),n.showWeeks&&C.attr("show-weeks",n.showWeeks),n.customClass&&C.attr("custom-class","customClass({ date: date, mode: mode })"),E?D.$formatters.push(function(t){return e.date=t,t}):(D.$$parserName="date",D.$validators.date=h,D.$parsers.unshift(f),D.$formatters.push(function(t){return e.date=t,D.$isEmpty(t)?t:l(t,v)})),D.$viewChangeListeners.push(function(){e.date=c.parse(D.$viewValue,v,e.date)}),t.bind("keydown",m),T=r(x)(e),x.remove(),$?a.find("body").append(T):t.after(T),e.$on("$destroy",function(){e.isOpen===!0&&(o.$$phase||e.$apply(function(){e.isOpen=!1})),T.remove(),t.unbind("keydown",m),a.unbind("click",g)})},e.getText=function(t){return e[t+"Text"]||u[t+"Text"]},e.isDisabled=function(t){return"today"===t&&(t=new Date),e.watchData.minDate&&e.compare(t,S.minDate)<0||e.watchData.maxDate&&e.compare(t,S.maxDate)>0},e.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},e.dateSelection=function(n){angular.isDefined(n)&&(e.date=n);var r=e.date?l(e.date,v):null;t.val(r),D.$setViewValue(r),b&&(e.isOpen=!1,t[0].focus())},e.keydown=function(n){27===n.which&&(e.isOpen=!1,t[0].focus())},e.select=function(t){if("today"===t){var n=new Date;angular.isDate(e.date)?(t=new Date(e.date),t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate())):t=new Date(n.setHours(0,0,0,0))}e.dateSelection(t)},e.close=function(){e.isOpen=!1,t[0].focus()},e.$watch("isOpen",function(n){n?(e.position=$?s.offset(t):s.position(t),e.position.top=e.position.top+t.prop("offsetHeight"),p(function(){y&&e.$broadcast("uib:datepicker.focus"),a.bind("click",g)},0,!1)):a.unbind("click",g)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(e,t,n,r){var i=r[0],a=r[1];a.init(i)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/popup.html"}}}),angular.module("ui.bootstrap.datepicker").value("$datepickerSuppressWarning",!1).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","uibDatepickerConfig","$datepickerSuppressError","$datepickerSuppressWarning",function(e,t,n,r,i,a,o,s,l){l||i.warn("DatepickerController is now deprecated. Use UibDatepickerController instead.");var c=this,u={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRange","shortcutPropagation"],function(n,i){c[n]=angular.isDefined(t[n])?6>i?r(t[n])(e.$parent):e.$parent.$eval(t[n]):o[n]}),angular.forEach(["minDate","maxDate"],function(r){t[r]?e.$parent.$watch(n(t[r]),function(e){c[r]=e?new Date(e):null,c.refreshView()}):c[r]=o[r]?new Date(o[r]):null}),angular.forEach(["minMode","maxMode"],function(r){t[r]?e.$parent.$watch(n(t[r]),function(n){c[r]=angular.isDefined(n)?n:t[r],e[r]=c[r],("minMode"==r&&c.modes.indexOf(e.datepickerMode)c.modes.indexOf(c[r]))&&(e.datepickerMode=c[r])}):(c[r]=o[r]||null,e[r]=c[r])}),e.datepickerMode=e.datepickerMode||o.datepickerMode,e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(t.initDate)?(this.activeDate=e.$parent.$eval(t.initDate)||new Date,e.$parent.$watch(t.initDate,function(e){e&&(u.$isEmpty(u.$modelValue)||u.$invalid)&&(c.activeDate=e,c.refreshView())})):this.activeDate=new Date,e.isActive=function(t){return 0===c.compare(t.date,c.activeDate)?(e.activeDateId=t.uid,!0):!1},this.init=function(e){u=e,u.$render=function(){c.render()}},this.render=function(){if(u.$viewValue){var e=new Date(u.$viewValue),t=!isNaN(e);t?this.activeDate=e:s||i.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var e=u.$viewValue?new Date(u.$viewValue):null;u.$setValidity("dateDisabled",!e||this.element&&!this.isDisabled(e))}},this.createDateObject=function(e,t){var n=u.$viewValue?new Date(u.$viewValue):null;return{date:e,label:a(e,t),selected:n&&0===this.compare(e,n),disabled:this.isDisabled(e),current:0===this.compare(e,new Date),customClass:this.customClass(e)}},this.isDisabled=function(n){return this.minDate&&this.compare(n,this.minDate)<0||this.maxDate&&this.compare(n,this.maxDate)>0||t.dateDisabled&&e.dateDisabled({date:n,mode:e.datepickerMode})},this.customClass=function(t){return e.customClass({date:t,mode:e.datepickerMode})},this.split=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},this.fixTimeZone=function(e){var t=e.getHours();e.setHours(23===t?t+2:0)},e.select=function(t){if(e.datepickerMode===c.minMode){var n=u.$viewValue?new Date(u.$viewValue):new Date(0,0,0,0,0,0,0);n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),u.$setViewValue(n),u.$render()}else c.activeDate=t,e.datepickerMode=c.modes[c.modes.indexOf(e.datepickerMode)-1]},e.move=function(e){var t=c.activeDate.getFullYear()+e*(c.step.years||0),n=c.activeDate.getMonth()+e*(c.step.months||0);c.activeDate.setFullYear(t,n,1),c.refreshView()},e.toggleMode=function(t){t=t||1,e.datepickerMode===c.maxMode&&1===t||e.datepickerMode===c.minMode&&-1===t||(e.datepickerMode=c.modes[c.modes.indexOf(e.datepickerMode)+t])},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var p=function(){c.element[0].focus()};e.$on("uib:datepicker.focus",p),e.keydown=function(t){var n=e.keys[t.which];if(n&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),c.shortcutPropagation||t.stopPropagation(),"enter"===n||"space"===n){if(c.isDisabled(c.activeDate))return;e.select(c.activeDate)}else!t.ctrlKey||"up"!==n&&"down"!==n?(c.handleKeyDown(n,t),c.refreshView()):e.toggleMode("up"===n?1:-1)}}]).directive("datepicker",["$log","$datepickerSuppressWarning",function(e,t){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["datepicker","^ngModel"],controller:"DatepickerController",controllerAs:"datepicker",link:function(n,r,i,a){t||e.warn("datepicker is now deprecated. Use uib-datepicker instead.");var o=a[0],s=a[1];o.init(s)}}}]).directive("daypicker",["$log","$datepickerSuppressWarning",function(e,t){return{replace:!0,templateUrl:"template/datepicker/day.html",require:["^datepicker","daypicker"],controller:"UibDaypickerController",link:function(n,r,i,a){t||e.warn("daypicker is now deprecated. Use uib-daypicker instead.");var o=a[0],s=a[1];s.init(o)}}}]).directive("monthpicker",["$log","$datepickerSuppressWarning",function(e,t){return{replace:!0,templateUrl:"template/datepicker/month.html",require:["^datepicker","monthpicker"],controller:"UibMonthpickerController",link:function(n,r,i,a){t||e.warn("monthpicker is now deprecated. Use uib-monthpicker instead.");var o=a[0],s=a[1];s.init(o)}}}]).directive("yearpicker",["$log","$datepickerSuppressWarning",function(e,t){return{replace:!0,templateUrl:"template/datepicker/year.html",require:["^datepicker","yearpicker"],controller:"UibYearpickerController",link:function(n,r,i,a){t||e.warn("yearpicker is now deprecated. Use uib-yearpicker instead.");var o=a[0];angular.extend(o,a[1]),o.yearpickerInit(),o.refreshView()}}}]).directive("datepickerPopup",["$log","$datepickerSuppressWarning",function(e,t){return{require:["ngModel","datepickerPopup"],controller:"UibDatepickerPopupController",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(n,r,i,a){t||e.warn("datepicker-popup is now deprecated. Use uib-datepicker-popup instead.");var o=a[0],s=a[1];s.init(o)}}}]).directive("datepickerPopupWrap",["$log","$datepickerSuppressWarning",function(e,t){return{replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"template/datepicker/popup.html"},link:function(){t||e.warn("datepicker-popup-wrap is now deprecated. Use uib-datepicker-popup-wrap instead.")}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(e,t){var n=null;this.open=function(t){n||(e.bind("click",r),e.bind("keydown",i)),n&&n!==t&&(n.isOpen=!1),n=t},this.close=function(t){n===t&&(n=null,e.unbind("click",r),e.unbind("keydown",i))};var r=function(e){if(n&&(!e||"disabled"!==n.getAutoClose())){var r=n.getToggleElement();if(!(e&&r&&r[0].contains(e.target))){var i=n.getDropdownElement();e&&"outsideClick"===n.getAutoClose()&&i&&i[0].contains(e.target)||(n.isOpen=!1,t.$$phase||n.$apply())}}},i=function(e){27===e.which?(n.focusToggleElement(),r()):n.isKeynavEnabled()&&/(38|40)/.test(e.which)&&n.isOpen&&(e.preventDefault(),e.stopPropagation(),n.focusDropdownEntry(e.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,r,i,a,o,s,l,c,u){var p,d,f=this,h=e.$new(),g=i.openClass,m=angular.noop,v=n.onToggle?r(n.onToggle):angular.noop,b=!1,$=!1;t.addClass("dropdown"),this.init=function(){n.isOpen&&(d=r(n.isOpen),m=d.assign,e.$watch(d,function(e){h.isOpen=!!e})),b=angular.isDefined(n.dropdownAppendToBody),$=angular.isDefined(n.uibKeyboardNav),b&&f.dropdownMenu&&(l.find("body").append(f.dropdownMenu),t.on("$destroy",function(){f.dropdownMenu.remove()}))},this.toggle=function(e){return h.isOpen=arguments.length?!!e:!h.isOpen},this.isOpen=function(){return h.isOpen},h.getToggleElement=function(){return f.toggleElement},h.getAutoClose=function(){return n.autoClose||"always"},h.getElement=function(){return t},h.isKeynavEnabled=function(){return $},h.focusDropdownEntry=function(e){var n=f.dropdownMenu?angular.element(f.dropdownMenu).find("a"):angular.element(t).find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=n.length-1}n[f.selectedOption].focus()},h.getDropdownElement=function(){return f.dropdownMenu},h.focusToggleElement=function(){f.toggleElement&&f.toggleElement[0].focus()},h.$watch("isOpen",function(n,r){if(b&&f.dropdownMenu){var i=s.positionElements(t,f.dropdownMenu,"bottom-left",!0),l={top:i.top+"px",display:n?"block":"none"},d=f.dropdownMenu.hasClass("dropdown-menu-right");d?(l.left="auto",l.right=window.innerWidth-(i.left+t.prop("offsetWidth"))+"px"):(l.left=i.left+"px",l.right="auto"),f.dropdownMenu.css(l)}if(o[n?"addClass":"removeClass"](t,g).then(function(){angular.isDefined(n)&&n!==r&&v(e,{open:!!n})}),n)f.dropdownMenuTemplateUrl&&u(f.dropdownMenuTemplateUrl).then(function(e){p=h.$new(),c(e.trim())(p,function(e){var t=e;f.dropdownMenu.replaceWith(t),f.dropdownMenu=t})}),h.focusToggleElement(),a.open(h);else{if(f.dropdownMenuTemplateUrl){p&&p.$destroy();var $=angular.element('');f.dropdownMenu.replaceWith($),f.dropdownMenu=$}a.close(h),f.selectedOption=null}angular.isFunction(m)&&m(e,n)}),e.$on("$locationChangeSuccess",function(){"disabled"!==h.getAutoClose()&&(h.isOpen=!1)});var y=e.$on("$destroy",function(){h.$destroy()});h.$on("$destroy",y)}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(e,t,n,r){r.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"AC",require:"?^uibDropdown",link:function(e,t,n,r){if(r&&!angular.isDefined(n.dropdownNested)){t.addClass("dropdown-menu");var i=n.templateUrl;i&&(r.dropdownMenuTemplateUrl=i),r.dropdownMenu||(r.dropdownMenu=t)}}}}).directive("uibKeyboardNav",function(){return{restrict:"A",require:"?^uibDropdown",link:function(e,t,n,r){t.bind("keydown",function(e){if(-1!==[38,40].indexOf(e.which)){e.preventDefault(),e.stopPropagation();var t=r.dropdownMenu.find("a");switch(e.which){case 40:angular.isNumber(r.selectedOption)?r.selectedOption=r.selectedOption===t.length-1?r.selectedOption:r.selectedOption+1:r.selectedOption=0;break;case 38:angular.isNumber(r.selectedOption)?r.selectedOption=0===r.selectedOption?0:r.selectedOption-1:r.selectedOption=t.length-1}t[r.selectedOption].focus()}})}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(e,t,n,r){if(r){t.addClass("dropdown-toggle"),r.toggleElement=t;var i=function(i){i.preventDefault(),t.hasClass("disabled")||n.disabled||e.$apply(function(){r.toggle()})};t.bind("click",i),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(r.isOpen,function(e){t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){t.unbind("click",i)})}}}}),angular.module("ui.bootstrap.dropdown").value("$dropdownSuppressWarning",!1).service("dropdownService",["$log","$dropdownSuppressWarning","uibDropdownService",function(e,t,n){t||e.warn("dropdownService is now deprecated. Use uibDropdownService instead."),angular.extend(this,n)}]).controller("DropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest","$log","$dropdownSuppressWarning",function(e,t,n,r,i,a,o,s,l,c,u,p,d){d||p.warn("DropdownController is now deprecated. Use UibDropdownController instead.");var f,h,g=this,m=e.$new(),v=i.openClass,b=angular.noop,$=n.onToggle?r(n.onToggle):angular.noop,y=!1,w=!1;t.addClass("dropdown"),this.init=function(){n.isOpen&&(h=r(n.isOpen),b=h.assign,e.$watch(h,function(e){m.isOpen=!!e})),y=angular.isDefined(n.dropdownAppendToBody),w=angular.isDefined(n.uibKeyboardNav),y&&g.dropdownMenu&&(l.find("body").append(g.dropdownMenu),t.on("$destroy",function(){g.dropdownMenu.remove()}))},this.toggle=function(e){return m.isOpen=arguments.length?!!e:!m.isOpen},this.isOpen=function(){return m.isOpen},m.getToggleElement=function(){return g.toggleElement},m.getAutoClose=function(){return n.autoClose||"always"},m.getElement=function(){return t},m.isKeynavEnabled=function(){return w},m.focusDropdownEntry=function(e){var n=g.dropdownMenu?angular.element(g.dropdownMenu).find("a"):angular.element(t).find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(g.selectedOption)?g.selectedOption=g.selectedOption===n.length-1?g.selectedOption:g.selectedOption+1:g.selectedOption=0;break;case 38:angular.isNumber(g.selectedOption)?g.selectedOption=0===g.selectedOption?0:g.selectedOption-1:g.selectedOption=n.length-1}n[g.selectedOption].focus()},m.getDropdownElement=function(){return g.dropdownMenu},m.focusToggleElement=function(){g.toggleElement&&g.toggleElement[0].focus()},m.$watch("isOpen",function(n,r){if(y&&g.dropdownMenu){var i=s.positionElements(t,g.dropdownMenu,"bottom-left",!0),l={top:i.top+"px",display:n?"block":"none"},p=g.dropdownMenu.hasClass("dropdown-menu-right");p?(l.left="auto",l.right=window.innerWidth-(i.left+t.prop("offsetWidth"))+"px"):(l.left=i.left+"px",l.right="auto"),g.dropdownMenu.css(l)}if(o[n?"addClass":"removeClass"](t,v).then(function(){angular.isDefined(n)&&n!==r&&$(e,{open:!!n})}),n)g.dropdownMenuTemplateUrl&&u(g.dropdownMenuTemplateUrl).then(function(e){f=m.$new(),c(e.trim())(f,function(e){var t=e;g.dropdownMenu.replaceWith(t),g.dropdownMenu=t})}),m.focusToggleElement(),a.open(m);else{if(g.dropdownMenuTemplateUrl){f&&f.$destroy();var d=angular.element('');g.dropdownMenu.replaceWith(d),g.dropdownMenu=d}a.close(m),g.selectedOption=null}angular.isFunction(b)&&b(e,n)}),e.$on("$locationChangeSuccess",function(){"disabled"!==m.getAutoClose()&&(m.isOpen=!1)});var k=e.$on("$destroy",function(){m.$destroy()});m.$on("$destroy",k)}]).directive("dropdown",["$log","$dropdownSuppressWarning",function(e,t){return{controller:"DropdownController",link:function(n,r,i,a){t||e.warn("dropdown is now deprecated. Use uib-dropdown instead."),a.init()}}}]).directive("dropdownMenu",["$log","$dropdownSuppressWarning",function(e,t){return{restrict:"AC",require:"?^dropdown",link:function(n,r,i,a){if(a&&!angular.isDefined(i.dropdownNested)){t||e.warn("dropdown-menu is now deprecated. Use uib-dropdown-menu instead."),r.addClass("dropdown-menu");var o=i.templateUrl;o&&(a.dropdownMenuTemplateUrl=o),a.dropdownMenu||(a.dropdownMenu=r)}}}}]).directive("keyboardNav",["$log","$dropdownSuppressWarning",function(e,t){return{restrict:"A",require:"?^dropdown",link:function(n,r,i,a){t||e.warn("keyboard-nav is now deprecated. Use uib-keyboard-nav instead."),r.bind("keydown",function(e){if(-1!==[38,40].indexOf(e.which)){e.preventDefault(),e.stopPropagation();var t=a.dropdownMenu.find("a");switch(e.which){case 40:angular.isNumber(a.selectedOption)?a.selectedOption=a.selectedOption===t.length-1?a.selectedOption:a.selectedOption+1:a.selectedOption=0;break;case 38:angular.isNumber(a.selectedOption)?a.selectedOption=0===a.selectedOption?0:a.selectedOption-1:a.selectedOption=t.length-1}t[a.selectedOption].focus()}})}}}]).directive("dropdownToggle",["$log","$dropdownSuppressWarning",function(e,t){return{require:"?^dropdown",link:function(n,r,i,a){if(t||e.warn("dropdown-toggle is now deprecated. Use uib-dropdown-toggle instead."),a){r.addClass("dropdown-toggle"),a.toggleElement=r;var o=function(e){e.preventDefault(),r.hasClass("disabled")||i.disabled||n.$apply(function(){a.toggle()})};r.bind("click",o),r.attr({"aria-haspopup":!0,"aria-expanded":!1}),n.$watch(a.isOpen,function(e){r.attr("aria-expanded",!!e)}),n.$on("$destroy",function(){r.unbind("click",o)})}}}}]),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n0&&(t=y.top().value,t.modalDomEl.toggleClass(t.windowTopClass||"",e))}function d(){if(m&&-1==c()){var e=v;f(m,v,function(){e=null}),m=void 0,v=void 0}}function f(t,n,r){function i(){i.done||(i.done=!0,g?g(t,{event:"leave"}).start().then(function(){t.remove()}):e.leave(t),n.$destroy(),r&&r())}var o,s=null,l=function(){return o||(o=a.defer(),s=o.promise),function(){o.resolve()}};return n.$broadcast(k.NOW_CLOSING_EVENT,l),a.when(s).then(i)}function h(e,t,n){return!e.value.modalScope.$broadcast("modal.closing",t,n).defaultPrevented}var g=null;o.has("$animateCss")&&(g=o.get("$animateCss"));var m,v,b,$="modal-open",y=l.createNew(),w=s.createNew(),k={NOW_CLOSING_EVENT:"modal.stack.now-closing"},x=0,C="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return i.$watch(c,function(e){v&&(v.index=e)}),n.bind("keydown",function(e){if(e.isDefaultPrevented())return e;var t=y.top();if(t&&t.value.keyboard)switch(e.which){case 27:e.preventDefault(),i.$apply(function(){k.dismiss(t.key,"escape key press")});break;case 9:k.loadFocusElementList(t);var n=!1;e.shiftKey?k.isFocusInFirstItem(e)&&(n=k.focusLastFocusableElement()):k.isFocusInLastItem(e)&&(n=k.focusFirstFocusableElement()),n&&(e.preventDefault(),e.stopPropagation())}}),k.open=function(e,t){var a=n[0].activeElement,o=t.openedClass||$;p(!1),y.add(e,{deferred:t.deferred,renderDeferred:t.renderDeferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard,openedClass:t.openedClass,windowTopClass:t.windowTopClass}),w.put(o,e);var s=n.find("body").eq(0),l=c();if(l>=0&&!m){v=i.$new(!0),v.index=l;var u=angular.element('
    ');u.attr("backdrop-class",t.backdropClass),t.animation&&u.attr("modal-animation","true"),m=r(u)(v),s.append(m)}var d=angular.element('
    ');d.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,"window-top-class":t.windowTopClass,size:t.size,index:y.length()-1,animate:"animate"}).html(t.content),t.animation&&d.attr("modal-animation","true");var f=r(d)(t.scope);y.top().value.modalDomEl=f,y.top().value.modalOpener=a,s.append(f),s.addClass(o),k.clearFocusListCache()},k.close=function(e,t){var n=y.get(e);return n&&h(n,t,!0)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.resolve(t),u(e,n.value.modalOpener),!0):!n},k.dismiss=function(e,t){var n=y.get(e);return n&&h(n,t,!1)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.reject(t),u(e,n.value.modalOpener),!0):!n},k.dismissAll=function(e){for(var t=this.getTop();t&&this.dismiss(t.key,e);)t=this.getTop(); },k.getTop=function(){return y.top()},k.modalRendered=function(e){var t=y.get(e);t&&t.value.renderDeferred.resolve()},k.focusFirstFocusableElement=function(){return b.length>0?(b[0].focus(),!0):!1},k.focusLastFocusableElement=function(){return b.length>0?(b[b.length-1].focus(),!0):!1},k.isFocusInFirstItem=function(e){return b.length>0?(e.target||e.srcElement)==b[0]:!1},k.isFocusInLastItem=function(e){return b.length>0?(e.target||e.srcElement)==b[b.length-1]:!1},k.clearFocusListCache=function(){b=[],x=0},k.loadFocusElementList=function(e){if((void 0===b||!b.length)&&e){var t=e.value.modalDomEl;t&&t.length&&(b=t[0].querySelectorAll(C))}},k}]).provider("$uibModal",function(){var e={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$templateRequest","$controller","$uibModalStack","$modalSuppressWarning","$log",function(t,n,r,i,a,o,s,l){function c(e){return e.template?r.when(e.template):i(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl)}function u(e){var n=[];return angular.forEach(e,function(e){angular.isFunction(e)||angular.isArray(e)?n.push(r.when(t.invoke(e))):angular.isString(e)?n.push(r.when(t.get(e))):n.push(r.when(e))}),n}var p={},d=null;return p.getPromiseChain=function(){return d},p.open=function(t){function i(){return v}var p=r.defer(),f=r.defer(),h=r.defer(),g={result:p.promise,opened:f.promise,rendered:h.promise,close:function(e){return o.close(g,e)},dismiss:function(e){return o.dismiss(g,e)}};if(t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");var m,v=r.all([c(t)].concat(u(t.resolve)));return m=d=r.all([d]).then(i,i).then(function(e){var r=(t.scope||n).$new();r.$close=g.close,r.$dismiss=g.dismiss,r.$on("$destroy",function(){r.$$uibDestructionScheduled||r.$dismiss("$uibUnscheduledDestruction")});var i,c={},u=1;t.controller&&(c.$scope=r,c.$uibModalInstance=g,Object.defineProperty(c,"$modalInstance",{get:function(){return s||l.warn("$modalInstance is now deprecated. Use $uibModalInstance instead."),g}}),angular.forEach(t.resolve,function(t,n){c[n]=e[u++]}),i=a(t.controller,c),t.controllerAs&&(t.bindToController&&angular.extend(i,r),r[t.controllerAs]=i)),o.open(g,{scope:r,deferred:p,renderDeferred:h,content:e[0],animation:t.animation,backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowTopClass:t.windowTopClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size,openedClass:t.openedClass}),f.resolve(!0)},function(e){f.reject(e),p.reject(e)})["finally"](function(){d===m&&(d=null)}),g},p}]};return e}),angular.module("ui.bootstrap.modal").value("$modalSuppressWarning",!1).directive("modalBackdrop",["$animate","$injector","$modalStack","$log","$modalSuppressWarning",function(e,t,n,r,i){function a(t,a,s){i||r.warn("modal-backdrop is now deprecated. Use uib-modal-backdrop instead."),a.addClass("modal-backdrop"),s.modalInClass&&(o?o(a,{addClass:s.modalInClass}).start():e.addClass(a,s.modalInClass),t.$on(n.NOW_CLOSING_EVENT,function(t,n){var r=n();o?o(a,{removeClass:s.modalInClass}).start().then(r):e.removeClass(a,s.modalInClass).then(r)}))}var o=null;return t.has("$animateCss")&&(o=t.get("$animateCss")),{replace:!0,templateUrl:"template/modal/backdrop.html",compile:function(e,t){return e.addClass(t.backdropClass),a}}}]).directive("modalWindow",["$modalStack","$q","$animate","$injector","$log","$modalSuppressWarning",function(e,t,n,r,i,a){var o=null;return r.has("$animateCss")&&(o=r.get("$animateCss")),{scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"template/modal/window.html"},link:function(r,s,l){a||i.warn("modal-window is now deprecated. Use uib-modal-window instead."),s.addClass(l.windowClass||""),s.addClass(l.windowTopClass||""),r.size=l.size,r.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!==n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))},s.on("click",r.close),r.$isRendered=!0;var c=t.defer();l.$observe("modalRender",function(e){"true"==e&&c.resolve()}),c.promise.then(function(){var i=null;l.modalInClass&&(i=o?o(s,{addClass:l.modalInClass}).start():n.addClass(s,l.modalInClass),r.$on(e.NOW_CLOSING_EVENT,function(e,t){var r=t();o?o(s,{removeClass:l.modalInClass}).start().then(r):n.removeClass(s,l.modalInClass).then(r)})),t.when(i).then(function(){var e=s[0].querySelector("[autofocus]");e?e.focus():s[0].focus()});var a=e.getTop();a&&e.modalRendered(a.key)})}}}]).directive("modalAnimationClass",["$log","$modalSuppressWarning",function(e,t){return{compile:function(n,r){t||e.warn("modal-animation-class is now deprecated. Use uib-modal-animation-class instead."),r.modalAnimation&&n.addClass(r.modalAnimationClass)}}}]).directive("modalTransclude",["$log","$modalSuppressWarning",function(e,t){return{link:function(n,r,i,a,o){t||e.warn("modal-transclude is now deprecated. Use uib-modal-transclude instead."),o(n.$parent,function(e){r.empty(),r.append(e)})}}}]).service("$modalStack",["$animate","$timeout","$document","$compile","$rootScope","$q","$injector","$$multiMap","$$stackedMap","$uibModalStack","$log","$modalSuppressWarning",function(e,t,n,r,i,a,o,s,l,c,u,p){p||u.warn("$modalStack is now deprecated. Use $uibModalStack instead."),angular.extend(this,c)}]).provider("$modal",["$uibModalProvider",function(e){angular.extend(this,e),this.$get=["$injector","$log","$modalSuppressWarning",function(t,n,r){return r||n.warn("$modal is now deprecated. Use $uibModal instead."),t.invoke(e.$get)}]}]),angular.module("ui.bootstrap.pagination",[]).controller("UibPaginationController",["$scope","$attrs","$parse",function(e,t,n){var r=this,i={$setViewValue:angular.noop},a=t.numPages?n(t.numPages).assign:angular.noop;this.init=function(o,s){i=o,this.config=s,i.$render=function(){r.render()},t.itemsPerPage?e.$parent.$watch(n(t.itemsPerPage),function(t){r.itemsPerPage=parseInt(t,10),e.totalPages=r.calculateTotalPages()}):this.itemsPerPage=s.itemsPerPage,e.$watch("totalItems",function(){e.totalPages=r.calculateTotalPages()}),e.$watch("totalPages",function(t){a(e.$parent,t),e.page>t?e.selectPage(t):i.$render()})},this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(e.totalItems/this.itemsPerPage);return Math.max(t||0,1)},this.render=function(){e.page=parseInt(i.$viewValue,10)||1},e.selectPage=function(t,n){n&&n.preventDefault();var r=!e.ngDisabled||!n;r&&e.page!==t&&t>0&&t<=e.totalPages&&(n&&n.target&&n.target.blur(),i.$setViewValue(t),i.$render())},e.getText=function(t){return e[t+"Text"]||r.config[t+"Text"]},e.noPrevious=function(){return 1===e.page},e.noNext=function(){return e.page===e.totalPages}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("uibPagination",["$parse","uibPaginationConfig",function(e,t){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(e,t){return t.templateUrl||"template/pagination/pagination.html"},replace:!0,link:function(n,r,i,a){function o(e,t,n){return{number:e,text:t,active:n}}function s(e,t){var n=[],r=1,i=t,a=angular.isDefined(u)&&t>u;a&&(p?(r=Math.max(e-Math.floor(u/2),1),i=r+u-1,i>t&&(i=t,r=i-u+1)):(r=(Math.ceil(e/u)-1)*u+1,i=Math.min(r+u-1,t)));for(var s=r;i>=s;s++){var l=o(s,s,s===e);n.push(l)}if(a&&!p){if(r>1){var c=o(r-1,"...",!1);n.unshift(c)}if(t>i){var d=o(i+1,"...",!1);n.push(d)}}return n}var l=a[0],c=a[1];if(c){var u=angular.isDefined(i.maxSize)?n.$parent.$eval(i.maxSize):t.maxSize,p=angular.isDefined(i.rotate)?n.$parent.$eval(i.rotate):t.rotate;n.boundaryLinks=angular.isDefined(i.boundaryLinks)?n.$parent.$eval(i.boundaryLinks):t.boundaryLinks,n.directionLinks=angular.isDefined(i.directionLinks)?n.$parent.$eval(i.directionLinks):t.directionLinks,l.init(c,t),i.maxSize&&n.$parent.$watch(e(i.maxSize),function(e){u=parseInt(e,10),l.render()});var d=l.render;l.render=function(){d(),n.page>0&&n.page<=n.totalPages&&(n.pages=s(n.page,n.totalPages))}}}}}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(e){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(e,t){return t.templateUrl||"template/pagination/pager.html"},replace:!0,link:function(t,n,r,i){var a=i[0],o=i[1];o&&(t.align=angular.isDefined(r.align)?t.$parent.$eval(r.align):e.align,a.init(o,e))}}}]),angular.module("ui.bootstrap.pagination").value("$paginationSuppressWarning",!1).controller("PaginationController",["$scope","$attrs","$parse","$log","$paginationSuppressWarning",function(e,t,n,r,i){i||r.warn("PaginationController is now deprecated. Use UibPaginationController instead.");var a=this,o={$setViewValue:angular.noop},s=t.numPages?n(t.numPages).assign:angular.noop;this.init=function(r,i){o=r,this.config=i,o.$render=function(){a.render()},t.itemsPerPage?e.$parent.$watch(n(t.itemsPerPage),function(t){a.itemsPerPage=parseInt(t,10),e.totalPages=a.calculateTotalPages()}):this.itemsPerPage=i.itemsPerPage,e.$watch("totalItems",function(){e.totalPages=a.calculateTotalPages()}),e.$watch("totalPages",function(t){s(e.$parent,t),e.page>t?e.selectPage(t):o.$render()})},this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(e.totalItems/this.itemsPerPage);return Math.max(t||0,1)},this.render=function(){e.page=parseInt(o.$viewValue,10)||1},e.selectPage=function(t,n){n&&n.preventDefault();var r=!e.ngDisabled||!n;r&&e.page!==t&&t>0&&t<=e.totalPages&&(n&&n.target&&n.target.blur(),o.$setViewValue(t),o.$render())},e.getText=function(t){return e[t+"Text"]||a.config[t+"Text"]},e.noPrevious=function(){return 1===e.page},e.noNext=function(){return e.page===e.totalPages}}]).directive("pagination",["$parse","uibPaginationConfig","$log","$paginationSuppressWarning",function(e,t,n,r){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["pagination","?ngModel"],controller:"PaginationController",controllerAs:"pagination",templateUrl:function(e,t){return t.templateUrl||"template/pagination/pagination.html"},replace:!0,link:function(i,a,o,s){function l(e,t,n){return{number:e,text:t,active:n}}function c(e,t){var n=[],r=1,i=t,a=angular.isDefined(d)&&t>d;a&&(f?(r=Math.max(e-Math.floor(d/2),1),i=r+d-1,i>t&&(i=t,r=i-d+1)):(r=(Math.ceil(e/d)-1)*d+1,i=Math.min(r+d-1,t)));for(var o=r;i>=o;o++){var s=l(o,o,o===e);n.push(s)}if(a&&!f){if(r>1){var c=l(r-1,"...",!1);n.unshift(c)}if(t>i){var u=l(i+1,"...",!1);n.push(u)}}return n}r||n.warn("pagination is now deprecated. Use uib-pagination instead.");var u=s[0],p=s[1];if(p){var d=angular.isDefined(o.maxSize)?i.$parent.$eval(o.maxSize):t.maxSize,f=angular.isDefined(o.rotate)?i.$parent.$eval(o.rotate):t.rotate;i.boundaryLinks=angular.isDefined(o.boundaryLinks)?i.$parent.$eval(o.boundaryLinks):t.boundaryLinks,i.directionLinks=angular.isDefined(o.directionLinks)?i.$parent.$eval(o.directionLinks):t.directionLinks,u.init(p,t),o.maxSize&&i.$parent.$watch(e(o.maxSize),function(e){d=parseInt(e,10),u.render()});var h=u.render;u.render=function(){h(),i.page>0&&i.page<=i.totalPages&&(i.pages=c(i.page,i.totalPages))}}}}}]).directive("pager",["uibPagerConfig","$log","$paginationSuppressWarning",function(e,t,n){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["pager","?ngModel"],controller:"PaginationController",controllerAs:"pagination",templateUrl:function(e,t){return t.templateUrl||"template/pagination/pager.html"},replace:!0,link:function(r,i,a,o){n||t.warn("pager is now deprecated. Use uib-pager instead.");var s=o[0],l=o[1];l&&(r.align=angular.isDefined(a.align)?r.$parent.$eval(a.align):e.align,s.init(l,e))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var t={placement:"top",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},n={mouseenter:"mouseleave",click:"click",focus:"blur",none:""},r={};this.options=function(e){angular.extend(r,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(i,a,o,s,l,c,u,p,d){var f=d.createNew();return s.on("keypress",function(e){if(27===e.which){var t=f.top();t&&(t.value.close(),f.removeTop(),t=null)}}),function(i,u,d,h){function g(e){var t=(e||h.trigger||d).split(" "),r=t.map(function(e){return n[e]||e});return{show:t,hide:r}}h=angular.extend({},t,r,h);var m=e(i),v=c.startSymbol(),b=c.endSymbol(),$="
    ';return{compile:function(e,t){var n=a($);return function(e,t,r,a){function c(){q.isOpen?m():d()}function d(){_&&!e.$eval(r[u+"Enable"])||(y(),x(),q.popupDelay?P||(P=o(v,q.popupDelay,!1)):v())}function m(){b(),q.popupCloseDelay?A||(A=o($,q.popupCloseDelay,!1)):$()}function v(){return b(),y(),q.content?(w(),void q.$evalAsync(function(){q.isOpen=!0,C(!0),H()})):angular.noop}function b(){P&&(o.cancel(P),P=null),j&&(o.cancel(j),j=null)}function $(){b(),y(),q&&q.$evalAsync(function(){q.isOpen=!1,C(!1),q.animation?M||(M=o(k,150,!1)):k()})}function y(){A&&(o.cancel(A),A=null),M&&(o.cancel(M),M=null)}function w(){E||(O=q.$new(),E=n(O,function(e){I?s.find("body").append(e):t.after(e)}),D())}function k(){T(),M=null,E&&(E.remove(),E=null),O&&(O.$destroy(),O=null)}function x(){q.title=r[u+"Title"],F?q.content=F(e):q.content=r[i],q.popupClass=r[u+"Class"],q.placement=angular.isDefined(r[u+"Placement"])?r[u+"Placement"]:h.placement;var t=parseInt(r[u+"PopupDelay"],10),n=parseInt(r[u+"PopupCloseDelay"],10);q.popupDelay=isNaN(t)?h.popupDelay:t,q.popupCloseDelay=isNaN(n)?h.popupCloseDelay:n}function C(t){R&&angular.isFunction(R.assign)&&R.assign(e,t)}function D(){B.length=0,F?(B.push(e.$watch(F,function(e){q.content=e,!e&&q.isOpen&&$()})),B.push(O.$watch(function(){L||(L=!0,O.$$postDigest(function(){L=!1,q&&q.isOpen&&H()}))}))):B.push(r.$observe(i,function(e){q.content=e,!e&&q.isOpen?$():H()})),B.push(r.$observe(u+"Title",function(e){q.title=e,q.isOpen&&H()})),B.push(r.$observe(u+"Placement",function(e){q.placement=e?e:h.placement,q.isOpen&&H()}))}function T(){B.length&&(angular.forEach(B,function(e){e()}),B.length=0)}function S(){var e=r[u+"Trigger"];N(),U=g(e),"none"!==U.show&&U.show.forEach(function(e,n){e===U.hide[n]?t[0].addEventListener(e,c):e&&(t[0].addEventListener(e,d),U.hide[n].split(" ").forEach(function(e){t[0].addEventListener(e,m)})),t.on("keypress",function(e){27===e.which&&m()})})}var E,O,M,P,A,j,I=angular.isDefined(h.appendToBody)?h.appendToBody:!1,U=g(void 0),_=angular.isDefined(r[u+"Enable"]),q=e.$new(!0),L=!1,R=angular.isDefined(r[u+"IsOpen"])?p(r[u+"IsOpen"]):!1,F=h.useContentExp?p(r[i]):!1,B=[],H=function(){E&&E.html()&&(j||(j=o(function(){E.css({top:0,left:0});var e=l.positionElements(t,E,q.placement,I);e.top+="px",e.left+="px",e.visibility="visible",E.css(e),j=null},0,!1)))};q.origScope=e,q.isOpen=!1,f.add(q,{close:$}),q.contentExp=function(){return q.content},r.$observe("disabled",function(e){e&&b(),e&&q.isOpen&&$()}),R&&e.$watch(R,function(e){q&&!e===q.isOpen&&c()});var N=function(){U.show.forEach(function(e){t.unbind(e,d)}),U.hide.forEach(function(e){e.split(" ").forEach(function(e){t[0].removeEventListener(e,m)})})};S();var W=e.$eval(r[u+"Animation"]);q.animation=angular.isDefined(W)?!!W:h.animation;var V=e.$eval(r[u+"AppendToBody"]);I=angular.isDefined(V)?V:I,I&&e.$on("$locationChangeSuccess",function(){q.isOpen&&$()}),e.$on("$destroy",function(){b(),y(),N(),k(),f.remove(q),q=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(e,t,n,r){return{link:function(i,a,o){var s,l,c,u=i.$eval(o.tooltipTemplateTranscludeScope),p=0,d=function(){l&&(l.remove(),l=null),s&&(s.$destroy(),s=null),c&&(e.leave(c).then(function(){l=null}),l=c,c=null)};i.$watch(t.parseAsResourceUrl(o.uibTooltipTemplateTransclude),function(t){var o=++p;t?(r(t,!0).then(function(r){if(o===p){var i=u.$new(),l=r,f=n(l)(i,function(t){d(),e.enter(t,a)});s=i,c=f,s.$emit("$includeContentLoaded",t)}},function(){o===p&&(d(),i.$emit("$includeContentError",t))}),i.$emit("$includeContentRequested",t)):d()}),i.$on("$destroy",d)}}}]).directive("uibTooltipClasses",function(){return{restrict:"A",link:function(e,t,n){e.placement&&t.addClass(e.placement),e.popupClass&&t.addClass(e.popupClass),e.animation()&&t.addClass(n.tooltipAnimationClass)}}}).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html",link:function(e,t){t.addClass("tooltip")}}}).directive("uibTooltip",["$uibTooltip",function(e){return e("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/tooltip/tooltip-template-popup.html",link:function(e,t){t.addClass("tooltip")}}}).directive("uibTooltipTemplate",["$uibTooltip",function(e){return e("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-popup.html",link:function(e,t){t.addClass("tooltip")}}}).directive("uibTooltipHtml",["$uibTooltip",function(e){return e("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.tooltip").value("$tooltipSuppressWarning",!1).provider("$tooltip",["$uibTooltipProvider",function(e){angular.extend(this,e),this.$get=["$log","$tooltipSuppressWarning","$injector",function(t,n,r){return n||t.warn("$tooltip is now deprecated. Use $uibTooltip instead."),r.invoke(e.$get)}]}]).directive("tooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest","$log","$tooltipSuppressWarning",function(e,t,n,r,i,a){return{link:function(o,s,l){a||i.warn("tooltip-template-transclude is now deprecated. Use uib-tooltip-template-transclude instead.");var c,u,p,d=o.$eval(l.tooltipTemplateTranscludeScope),f=0,h=function(){u&&(u.remove(),u=null),c&&(c.$destroy(),c=null),p&&(e.leave(p).then(function(){u=null}),u=p,p=null)};o.$watch(t.parseAsResourceUrl(l.tooltipTemplateTransclude),function(t){var i=++f;t?(r(t,!0).then(function(r){if(i===f){var a=d.$new(),o=r,l=n(o)(a,function(t){h(),e.enter(t,s)});c=a,p=l,c.$emit("$includeContentLoaded",t)}},function(){i===f&&(h(),o.$emit("$includeContentError",t))}),o.$emit("$includeContentRequested",t)):h()}),o.$on("$destroy",h)}}}]).directive("tooltipClasses",["$log","$tooltipSuppressWarning",function(e,t){return{restrict:"A",link:function(n,r,i){t||e.warn("tooltip-classes is now deprecated. Use uib-tooltip-classes instead."),n.placement&&r.addClass(n.placement),n.popupClass&&r.addClass(n.popupClass),n.animation()&&r.addClass(i.tooltipAnimationClass)}}}]).directive("tooltipPopup",["$log","$tooltipSuppressWarning",function(e,t){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html",link:function(n,r){t||e.warn("tooltip-popup is now deprecated. Use uib-tooltip-popup instead."),r.addClass("tooltip")}}}]).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipTemplatePopup",["$log","$tooltipSuppressWarning",function(e,t){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/tooltip/tooltip-template-popup.html",link:function(n,r){t||e.warn("tooltip-template-popup is now deprecated. Use uib-tooltip-template-popup instead."),r.addClass("tooltip")}}}]).directive("tooltipTemplate",["$tooltip",function(e){return e("tooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("tooltipHtmlPopup",["$log","$tooltipSuppressWarning",function(e,t){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-popup.html",link:function(n,r){t||e.warn("tooltip-html-popup is now deprecated. Use uib-tooltip-html-popup instead."),r.addClass("tooltip")}}}]).directive("tooltipHtml",["$tooltip",function(e){return e("tooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/popover/popover-template.html",link:function(e,t){t.addClass("popover")}}}).directive("uibPopoverTemplate",["$uibTooltip",function(e){return e("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover-html.html",link:function(e,t){t.addClass("popover")}}}).directive("uibPopoverHtml",["$uibTooltip",function(e){return e("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html",link:function(e,t){t.addClass("popover")}}}).directive("uibPopover",["$uibTooltip",function(e){return e("uibPopover","popover","click")}]),angular.module("ui.bootstrap.popover").value("$popoverSuppressWarning",!1).directive("popoverTemplatePopup",["$log","$popoverSuppressWarning",function(e,t){return{replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/popover/popover-template.html",link:function(n,r){t||e.warn("popover-template-popup is now deprecated. Use uib-popover-template-popup instead."),r.addClass("popover")}}}]).directive("popoverTemplate",["$tooltip",function(e){return e("popoverTemplate","popover","click",{useContentExp:!0})}]).directive("popoverHtmlPopup",["$log","$popoverSuppressWarning",function(e,t){return{replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover-html.html",link:function(n,r){t||e.warn("popover-html-popup is now deprecated. Use uib-popover-html-popup instead."),r.addClass("popover")}}}]).directive("popoverHtml",["$tooltip",function(e){return e("popoverHtml","popover","click",{useContentExp:!0})}]).directive("popoverPopup",["$log","$popoverSuppressWarning",function(e,t){return{replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html",link:function(n,r){t||e.warn("popover-popup is now deprecated. Use uib-popover-popup instead."),r.addClass("popover")}}}]).directive("popover",["$tooltip",function(e){return e("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(e,t,n){var r=this,i=angular.isDefined(t.animate)?e.$parent.$eval(t.animate):n.animate;this.bars=[],e.max=angular.isDefined(e.max)?e.max:n.max,this.addBar=function(t,n,a){i||n.css({transition:"none"}),this.bars.push(t),t.max=e.max,t.title=a&&angular.isDefined(a.title)?a.title:"progressbar",t.$watch("value",function(e){t.recalculatePercentage()}),t.recalculatePercentage=function(){var e=r.bars.reduce(function(e,t){return t.percent=+(100*t.value/t.max).toFixed(2),e+t.percent},0);e>100&&(t.percent-=e-100)},t.$on("$destroy",function(){n=null,r.removeBar(t)})},this.removeBar=function(e){this.bars.splice(this.bars.indexOf(e),1),this.bars.forEach(function(e){e.recalculatePercentage()})},e.$watch("max",function(t){r.bars.forEach(function(t){t.max=e.max,t.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{max:"=?"},templateUrl:"template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(e,t,n,r){r.addBar(e,t,n)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(e,t,n,r){r.addBar(e,angular.element(t.children()[0]),{title:n.title})}}}),angular.module("ui.bootstrap.progressbar").value("$progressSuppressWarning",!1).controller("ProgressController",["$scope","$attrs","uibProgressConfig","$log","$progressSuppressWarning",function(e,t,n,r,i){i||r.warn("ProgressController is now deprecated. Use UibProgressController instead.");var a=this,o=angular.isDefined(t.animate)?e.$parent.$eval(t.animate):n.animate;this.bars=[],e.max=angular.isDefined(e.max)?e.max:n.max,this.addBar=function(t,n,r){o||n.css({transition:"none"}),this.bars.push(t),t.max=e.max,t.title=r&&angular.isDefined(r.title)?r.title:"progressbar",t.$watch("value",function(e){t.recalculatePercentage()}),t.recalculatePercentage=function(){t.percent=+(100*t.value/t.max).toFixed(2);var e=a.bars.reduce(function(e,t){return e+t.percent},0);e>100&&(t.percent-=e-100)},t.$on("$destroy",function(){n=null,a.removeBar(t)})},this.removeBar=function(e){this.bars.splice(this.bars.indexOf(e),1)},e.$watch("max",function(t){a.bars.forEach(function(t){t.max=e.max,t.recalculatePercentage()})})}]).directive("progress",["$log","$progressSuppressWarning",function(e,t){return{replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{max:"=?",title:"@?"},templateUrl:"template/progressbar/progress.html",link:function(){t||e.warn("progress is now deprecated. Use uib-progress instead.")}}}]).directive("bar",["$log","$progressSuppressWarning",function(e,t){return{replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,r,i,a){t||e.warn("bar is now deprecated. Use uib-bar instead."),a.addBar(n,r)}}}]).directive("progressbar",["$log","$progressSuppressWarning",function(e,t){return{replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(n,r,i,a){t||e.warn("progressbar is now deprecated. Use uib-progressbar instead."),a.addBar(n,angular.element(r.children()[0]),{title:i.title})}}}]),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(e,t,n){var r={$setViewValue:angular.noop};this.init=function(i){r=i,r.$render=this.render,r.$formatters.push(function(e){return angular.isNumber(e)&&e<<0!==e&&(e=Math.round(e)),e}),this.stateOn=angular.isDefined(t.stateOn)?e.$parent.$eval(t.stateOn):n.stateOn,this.stateOff=angular.isDefined(t.stateOff)?e.$parent.$eval(t.stateOff):n.stateOff;var a=angular.isDefined(t.titles)?e.$parent.$eval(t.titles):n.titles;this.titles=angular.isArray(a)&&a.length>0?a:n.titles;var o=angular.isDefined(t.ratingStates)?e.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?e.$parent.$eval(t.max):n.max);e.range=this.buildTemplateObjects(o)},this.buildTemplateObjects=function(e){for(var t=0,n=e.length;n>t;t++)e[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(t)},e[t]);return e},this.getTitle=function(e){return e>=this.titles.length?e+1:this.titles[e]},e.rate=function(t){!e.readonly&&t>=0&&t<=e.range.length&&(r.$setViewValue(r.$viewValue===t?0:t),r.$render())},e.enter=function(t){e.readonly||(e.value=t),e.onHover({value:t})},e.reset=function(){e.value=r.$viewValue,e.onLeave()},e.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),e.rate(e.value+(38===t.which||39===t.which?1:-1)))},this.render=function(){e.value=r.$viewValue}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(e,t,n,r){var i=r[0],a=r[1];i.init(a)}}}),angular.module("ui.bootstrap.rating").value("$ratingSuppressWarning",!1).controller("RatingController",["$scope","$attrs","$controller","$log","$ratingSuppressWarning",function(e,t,n,r,i){i||r.warn("RatingController is now deprecated. Use UibRatingController instead."),angular.extend(this,n("UibRatingController",{$scope:e,$attrs:t}))}]).directive("rating",["$log","$ratingSuppressWarning",function(e,t){return{require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(n,r,i,a){t||e.warn("rating is now deprecated. Use uib-rating instead.");var o=a[0],s=a[1];o.init(s)}}}]),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(e){var t=this,n=t.tabs=e.tabs=[];t.select=function(e){angular.forEach(n,function(t){t.active&&t!==e&&(t.active=!1,t.onDeselect(),e.selectCalled=!1)}),e.active=!0,e.selectCalled||(e.onSelect(),e.selectCalled=!0)},t.addTab=function(e){n.push(e),1===n.length&&e.active!==!1?e.active=!0:e.active?t.select(e):e.active=!1},t.removeTab=function(e){var i=n.indexOf(e);if(e.active&&n.length>1&&!r){var a=i==n.length-1?i-1:i+1;t.select(n[a])}n.splice(i,1)};var r;e.$on("$destroy",function(){r=!0})}]).directive("uibTabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"UibTabsetController",templateUrl:"template/tabs/tabset.html",link:function(e,t,n){e.vertical=angular.isDefined(n.vertical)?e.$parent.$eval(n.vertical):!1,e.justified=angular.isDefined(n.justified)?e.$parent.$eval(n.justified):!1}}}).directive("uibTab",["$parse",function(e){return{require:"^uibTabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},link:function(t,n,r,i,a){t.$watch("active",function(e){e&&i.select(t)}),t.disabled=!1,r.disable&&t.$parent.$watch(e(r.disable),function(e){t.disabled=!!e}),t.select=function(){t.disabled||(t.active=!0)},i.addTab(t),t.$on("$destroy",function(){i.removeTab(t)}),t.$transcludeFn=a}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:["?^uibTab","?^tab"],link:function(e,t){e.$watch("headingElement",function(e){e&&(t.html(""),t.append(e))})}}}).directive("uibTabContentTransclude",function(){function e(e){return e.tagName&&(e.hasAttribute("tab-heading")||e.hasAttribute("data-tab-heading")||e.hasAttribute("x-tab-heading")||e.hasAttribute("uib-tab-heading")||e.hasAttribute("data-uib-tab-heading")||e.hasAttribute("x-uib-tab-heading")||"tab-heading"===e.tagName.toLowerCase()||"data-tab-heading"===e.tagName.toLowerCase()||"x-tab-heading"===e.tagName.toLowerCase()||"uib-tab-heading"===e.tagName.toLowerCase()||"data-uib-tab-heading"===e.tagName.toLowerCase()||"x-uib-tab-heading"===e.tagName.toLowerCase()); }return{restrict:"A",require:["?^uibTabset","?^tabset"],link:function(t,n,r){var i=t.$eval(r.uibTabContentTransclude);i.$transcludeFn(i.$parent,function(t){angular.forEach(t,function(t){e(t)?i.headingElement=t:n.append(t)})})}}}),angular.module("ui.bootstrap.tabs").value("$tabsSuppressWarning",!1).controller("TabsetController",["$scope","$controller","$log","$tabsSuppressWarning",function(e,t,n,r){r||n.warn("TabsetController is now deprecated. Use UibTabsetController instead."),angular.extend(this,t("UibTabsetController",{$scope:e}))}]).directive("tabset",["$log","$tabsSuppressWarning",function(e,t){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(n,r,i){t||e.warn("tabset is now deprecated. Use uib-tabset instead."),n.vertical=angular.isDefined(i.vertical)?n.$parent.$eval(i.vertical):!1,n.justified=angular.isDefined(i.justified)?n.$parent.$eval(i.justified):!1}}}]).directive("tab",["$parse","$log","$tabsSuppressWarning",function(e,t,n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},link:function(r,i,a,o,s){n||t.warn("tab is now deprecated. Use uib-tab instead."),r.$watch("active",function(e){e&&o.select(r)}),r.disabled=!1,a.disable&&r.$parent.$watch(e(a.disable),function(e){r.disabled=!!e}),r.select=function(){r.disabled||(r.active=!0)},o.addTab(r),r.$on("$destroy",function(){o.removeTab(r)}),r.$transcludeFn=s}}}]).directive("tabHeadingTransclude",["$log","$tabsSuppressWarning",function(e,t){return{restrict:"A",require:"^tab",link:function(n,r){t||e.warn("tab-heading-transclude is now deprecated. Use uib-tab-heading-transclude instead."),n.$watch("headingElement",function(e){e&&(r.html(""),r.append(e))})}}}]).directive("tabContentTransclude",["$log","$tabsSuppressWarning",function(e,t){function n(e){return e.tagName&&(e.hasAttribute("tab-heading")||e.hasAttribute("data-tab-heading")||e.hasAttribute("x-tab-heading")||"tab-heading"===e.tagName.toLowerCase()||"data-tab-heading"===e.tagName.toLowerCase()||"x-tab-heading"===e.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(r,i,a){t||e.warn("tab-content-transclude is now deprecated. Use uib-tab-content-transclude instead.");var o=r.$eval(a.tabContentTransclude);o.$transcludeFn(o.$parent,function(e){angular.forEach(e,function(e){n(e)?o.headingElement=e:i.append(e)})})}}}]),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(e,t,n,r,i,a,o){function s(){var t=parseInt(e.hours,10),n=e.showMeridian?t>0&&13>t:t>=0&&24>t;return n?(e.showMeridian&&(12===t&&(t=0),e.meridian===v[1]&&(t+=12)),t):void 0}function l(){var t=parseInt(e.minutes,10);return t>=0&&60>t?t:void 0}function c(e){return angular.isDefined(e)&&e.toString().length<2?"0"+e:e.toString()}function u(e){p(),m.$setViewValue(new Date(g)),d(e)}function p(){m.$setValidity("time",!0),e.invalidHours=!1,e.invalidMinutes=!1}function d(t){var n=g.getHours(),r=g.getMinutes();e.showMeridian&&(n=0===n||12===n?12:n%12),e.hours="h"===t?n:c(n),"m"!==t&&(e.minutes=c(r)),e.meridian=g.getHours()<12?v[0]:v[1]}function f(e,t){var n=new Date(e.getTime()+6e4*t),r=new Date(e);return r.setHours(n.getHours(),n.getMinutes()),r}function h(e){g=f(g,e),u()}var g=new Date,m={$setViewValue:angular.noop},v=angular.isDefined(n.meridians)?e.$parent.$eval(n.meridians):o.meridians||a.DATETIME_FORMATS.AMPMS;e.tabindex=angular.isDefined(n.tabindex)?n.tabindex:0,t.removeAttr("tabindex"),this.init=function(t,r){m=t,m.$render=this.render,m.$formatters.unshift(function(e){return e?new Date(e):null});var i=r.eq(0),a=r.eq(1),s=angular.isDefined(n.mousewheel)?e.$parent.$eval(n.mousewheel):o.mousewheel;s&&this.setupMousewheelEvents(i,a);var l=angular.isDefined(n.arrowkeys)?e.$parent.$eval(n.arrowkeys):o.arrowkeys;l&&this.setupArrowkeyEvents(i,a),e.readonlyInput=angular.isDefined(n.readonlyInput)?e.$parent.$eval(n.readonlyInput):o.readonlyInput,this.setupInputEvents(i,a)};var b=o.hourStep;n.hourStep&&e.$parent.$watch(r(n.hourStep),function(e){b=parseInt(e,10)});var $=o.minuteStep;n.minuteStep&&e.$parent.$watch(r(n.minuteStep),function(e){$=parseInt(e,10)});var y;e.$parent.$watch(r(n.min),function(e){var t=new Date(e);y=isNaN(t)?void 0:t});var w;e.$parent.$watch(r(n.max),function(e){var t=new Date(e);w=isNaN(t)?void 0:t}),e.noIncrementHours=function(){var e=f(g,60*b);return e>w||g>e&&y>e},e.noDecrementHours=function(){var e=f(g,60*-b);return y>e||e>g&&e>w},e.noIncrementMinutes=function(){var e=f(g,$);return e>w||g>e&&y>e},e.noDecrementMinutes=function(){var e=f(g,-$);return y>e||e>g&&e>w},e.noToggleMeridian=function(){return g.getHours()<13?f(g,720)>w:f(g,-720)0};t.bind("mousewheel wheel",function(t){e.$apply(r(t)?e.incrementHours():e.decrementHours()),t.preventDefault()}),n.bind("mousewheel wheel",function(t){e.$apply(r(t)?e.incrementMinutes():e.decrementMinutes()),t.preventDefault()})},this.setupArrowkeyEvents=function(t,n){t.bind("keydown",function(t){38===t.which?(t.preventDefault(),e.incrementHours(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementHours(),e.$apply())}),n.bind("keydown",function(t){38===t.which?(t.preventDefault(),e.incrementMinutes(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementMinutes(),e.$apply())})},this.setupInputEvents=function(t,n){if(e.readonlyInput)return e.updateHours=angular.noop,void(e.updateMinutes=angular.noop);var r=function(t,n){m.$setViewValue(null),m.$setValidity("time",!1),angular.isDefined(t)&&(e.invalidHours=t),angular.isDefined(n)&&(e.invalidMinutes=n)};e.updateHours=function(){var e=s(),t=l();angular.isDefined(e)&&angular.isDefined(t)?(g.setHours(e),y>g||g>w?r(!0):u("h")):r(!0)},t.bind("blur",function(t){!e.invalidHours&&e.hours<10&&e.$apply(function(){e.hours=c(e.hours)})}),e.updateMinutes=function(){var e=l(),t=s();angular.isDefined(e)&&angular.isDefined(t)?(g.setMinutes(e),y>g||g>w?r(void 0,!0):u("m")):r(void 0,!0)},n.bind("blur",function(t){!e.invalidMinutes&&e.minutes<10&&e.$apply(function(){e.minutes=c(e.minutes)})})},this.render=function(){var t=m.$viewValue;isNaN(t)?(m.$setValidity("time",!1),i.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(t&&(g=t),y>g||g>w?(m.$setValidity("time",!1),e.invalidHours=!0,e.invalidMinutes=!0):p(),d())},e.showSpinners=angular.isDefined(n.showSpinners)?e.$parent.$eval(n.showSpinners):o.showSpinners,e.incrementHours=function(){e.noIncrementHours()||h(60*b)},e.decrementHours=function(){e.noDecrementHours()||h(60*-b)},e.incrementMinutes=function(){e.noIncrementMinutes()||h($)},e.decrementMinutes=function(){e.noDecrementMinutes()||h(-$)},e.toggleMeridian=function(){e.noToggleMeridian()||h(720*(g.getHours()<12?1:-1))}}]).directive("uibTimepicker",function(){return{restrict:"EA",require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(e,t){return t.templateUrl||"template/timepicker/timepicker.html"},link:function(e,t,n,r){var i=r[0],a=r[1];a&&i.init(a,t.find("input"))}}}),angular.module("ui.bootstrap.timepicker").value("$timepickerSuppressWarning",!1).controller("TimepickerController",["$scope","$element","$attrs","$controller","$log","$timepickerSuppressWarning",function(e,t,n,r,i,a){a||i.warn("TimepickerController is now deprecated. Use UibTimepickerController instead."),angular.extend(this,r("UibTimepickerController",{$scope:e,$element:t,$attrs:n}))}]).directive("timepicker",["$log","$timepickerSuppressWarning",function(e,t){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(e,t){return t.templateUrl||"template/timepicker/timepicker.html"},link:function(n,r,i,a){t||e.warn("timepicker is now deprecated. Use uib-timepicker instead.");var o=a[0],s=a[1];s&&o.init(s,r.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(e){var t=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(n){var r=n.match(t);if(!r)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+n+'".');return{itemName:r[3],source:e(r[4]),viewMapper:e(r[2]||r[1]),modelMapper:e(r[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$uibPosition","uibTypeaheadParser",function(e,t,n,r,i,a,o,s,l,c,u,p){function d(){_.moveInProgress||(_.moveInProgress=!0,_.$digest()),W&&o.cancel(W),W=o(function(){_.matches.length&&f(),_.moveInProgress=!1},v)}function f(){_.position=E?u.offset(t):u.position(t),_.position.top+=t.prop("offsetHeight")}var h,g,m=[9,13,27,38,40],v=200,b=e.$eval(n.typeaheadMinLength);b||0===b||(b=1);var $,y,w=e.$eval(n.typeaheadWaitMs)||0,k=e.$eval(n.typeaheadEditable)!==!1,x=i(n.typeaheadLoading).assign||angular.noop,C=i(n.typeaheadOnSelect),D=angular.isDefined(n.typeaheadSelectOnBlur)?e.$eval(n.typeaheadSelectOnBlur):!1,T=i(n.typeaheadNoResults).assign||angular.noop,S=n.typeaheadInputFormatter?i(n.typeaheadInputFormatter):void 0,E=n.typeaheadAppendToBody?e.$eval(n.typeaheadAppendToBody):!1,O=n.typeaheadAppendToElementId||!1,M=e.$eval(n.typeaheadFocusFirst)!==!1,P=n.typeaheadSelectOnExact?e.$eval(n.typeaheadSelectOnExact):!1,A=i(n.ngModel),j=i(n.ngModel+"($$$p)"),I=function(t,n){return angular.isFunction(A(e))&&g&&g.$options&&g.$options.getterSetter?j(t,{$$$p:n}):A.assign(t,n)},U=p.parse(n.uibTypeahead),_=e.$new(),q=e.$on("$destroy",function(){_.$destroy()});_.$on("$destroy",q);var L="typeahead-"+_.$id+"-"+Math.floor(1e4*Math.random());t.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":L});var R=angular.element("
    ");R.attr({id:L,matches:"matches",active:"activeIdx",select:"select(activeIdx)","move-in-progress":"moveInProgress",query:"query",position:"position"}),angular.isDefined(n.typeaheadTemplateUrl)&&R.attr("template-url",n.typeaheadTemplateUrl),angular.isDefined(n.typeaheadPopupTemplateUrl)&&R.attr("popup-template-url",n.typeaheadPopupTemplateUrl);var F=function(){_.matches=[],_.activeIdx=-1,t.attr("aria-expanded",!1)},B=function(e){return L+"-option-"+e};_.$watch("activeIdx",function(e){0>e?t.removeAttr("aria-activedescendant"):t.attr("aria-activedescendant",B(e))});var H=function(e,t){return _.matches.length>t&&e?e.toUpperCase()===_.matches[t].label.toUpperCase():!1},N=function(n){var r={$viewValue:n};x(e,!0),T(e,!1),a.when(U.source(e,r)).then(function(i){var a=n===h.$viewValue;if(a&&$)if(i&&i.length>0){_.activeIdx=M?0:-1,T(e,!1),_.matches.length=0;for(var o=0;o0?_.activeIdx:_.matches.length)-1,_.$digest()):13===e.which||9===e.which?_.$apply(function(){_.select(_.activeIdx)}):27===e.which&&(e.stopPropagation(),F(),_.$digest())}}),t.bind("blur",function(){D&&_.matches.length&&-1!==_.activeIdx&&!y&&(y=!0,_.$apply(function(){_.select(_.activeIdx)})),$=!1,y=!1});var K=function(e){t[0]!==e.target&&3!==e.which&&0!==_.matches.length&&(F(),c.$$phase||_.$digest())};s.bind("click",K),e.$on("$destroy",function(){s.unbind("click",K),(E||O)&&G.remove(),E&&(angular.element(l).unbind("resize",d),s.find("body").unbind("scroll",d)),R.remove()});var G=r(R)(_);E?s.find("body").append(G):O!==!1?angular.element(s[0].getElementById(O)).append(G):t.after(G),this.init=function(t,n){h=t,g=n,h.$parsers.unshift(function(t){return $=!0,0===b||t&&t.length>=b?w>0?(Y(),z(t)):N(t):(x(e,!1),Y(),F()),k?t:t?void h.$setValidity("editable",!1):(h.$setValidity("editable",!0),null)}),h.$formatters.push(function(t){var n,r,i={};return k||h.$setValidity("editable",!0),S?(i.$model=t,S(e,i)):(i[U.itemName]=t,n=U.viewMapper(e,i),i[U.itemName]=void 0,r=U.viewMapper(e,i),n!==r?n:t)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(e,t,n,r){r[2].init(r[0],r[1])}}}).directive("uibTypeaheadPopup",function(){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&"},replace:!0,templateUrl:function(e,t){return t.popupTemplateUrl||"template/typeahead/typeahead-popup.html"},link:function(e,t,n){e.templateUrl=n.templateUrl,e.isOpen=function(){return e.matches.length>0},e.isActive=function(t){return e.active==t},e.selectActive=function(t){e.active=t},e.selectMatch=function(t){e.select({activeIdx:t})}}}}).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(e,t,n){return{scope:{index:"=",match:"=",query:"="},link:function(r,i,a){var o=n(a.templateUrl)(r.$parent)||"template/typeahead/typeahead-match.html";e(o).then(function(e){t(e.trim())(r,function(e){i.replaceWith(e)})})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(e,t,n){function r(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function i(e){return/<.*>/g.test(e)}var a;return a=t.has("$sanitize"),function(t,o){return!a&&i(t)&&n.warn("Unsafe use of typeahead please use ngSanitize"),t=o?(""+t).replace(new RegExp(r(o),"gi"),"$&"):t,a||(t=e.trustAsHtml(t)),t}}]),angular.module("ui.bootstrap.typeahead").value("$typeaheadSuppressWarning",!1).service("typeaheadParser",["$parse","uibTypeaheadParser","$log","$typeaheadSuppressWarning",function(e,t,n,r){return r||n.warn("typeaheadParser is now deprecated. Use uibTypeaheadParser instead."),t}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$window","$rootScope","$uibPosition","typeaheadParser","$log","$typeaheadSuppressWarning",function(e,t,n,r,i,a,o,s,l,c,u){var p=[9,13,27,38,40],d=200;return{require:["ngModel","^?ngModelOptions"],link:function(f,h,g,m){function v(){R.moveInProgress||(R.moveInProgress=!0,R.$digest()),Y&&r.cancel(Y),Y=r(function(){R.matches.length&&b(),R.moveInProgress=!1},d)}function b(){R.position=P?s.offset(h):s.position(h),R.position.top+=h.prop("offsetHeight")}u||c.warn("typeahead is now deprecated. Use uib-typeahead instead.");var $=m[0],y=m[1],w=f.$eval(g.typeaheadMinLength);w||0===w||(w=1);var k,x,C=f.$eval(g.typeaheadWaitMs)||0,D=f.$eval(g.typeaheadEditable)!==!1,T=t(g.typeaheadLoading).assign||angular.noop,S=t(g.typeaheadOnSelect),E=angular.isDefined(g.typeaheadSelectOnBlur)?f.$eval(g.typeaheadSelectOnBlur):!1,O=t(g.typeaheadNoResults).assign||angular.noop,M=g.typeaheadInputFormatter?t(g.typeaheadInputFormatter):void 0,P=g.typeaheadAppendToBody?f.$eval(g.typeaheadAppendToBody):!1,A=g.typeaheadAppendToElementId||!1,j=f.$eval(g.typeaheadFocusFirst)!==!1,I=g.typeaheadSelectOnExact?f.$eval(g.typeaheadSelectOnExact):!1,U=t(g.ngModel),_=t(g.ngModel+"($$$p)"),q=function(e,t){return angular.isFunction(U(f))&&y&&y.$options&&y.$options.getterSetter?_(e,{$$$p:t}):U.assign(e,t)},L=l.parse(g.typeahead),R=f.$new(),F=f.$on("$destroy",function(){R.$destroy()});R.$on("$destroy",F);var B="typeahead-"+R.$id+"-"+Math.floor(1e4*Math.random());h.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":B});var H=angular.element("
    ");H.attr({id:B,matches:"matches",active:"activeIdx",select:"select(activeIdx)","move-in-progress":"moveInProgress",query:"query",position:"position"}),angular.isDefined(g.typeaheadTemplateUrl)&&H.attr("template-url",g.typeaheadTemplateUrl),angular.isDefined(g.typeaheadPopupTemplateUrl)&&H.attr("popup-template-url",g.typeaheadPopupTemplateUrl);var N=function(){R.matches=[],R.activeIdx=-1,h.attr("aria-expanded",!1)},W=function(e){return B+"-option-"+e};R.$watch("activeIdx",function(e){0>e?h.removeAttr("aria-activedescendant"):h.attr("aria-activedescendant",W(e))});var V=function(e,t){return R.matches.length>t&&e?e.toUpperCase()===R.matches[t].label.toUpperCase():!1},z=function(e){var t={$viewValue:e};T(f,!0),O(f,!1),n.when(L.source(f,t)).then(function(n){var r=e===$.$viewValue;if(r&&k)if(n&&n.length>0){R.activeIdx=j?0:-1,O(f,!1),R.matches.length=0;for(var i=0;i=w?C>0?(J(),G(e)):z(e):(T(f,!1),J(),N()),D?e:e?void $.$setValidity("editable",!1):($.$setValidity("editable",!0),null)}),$.$formatters.push(function(e){var t,n,r={};return D||$.$setValidity("editable",!0),M?(r.$model=e,M(f,r)):(r[L.itemName]=e,t=L.viewMapper(f,r),r[L.itemName]=void 0,n=L.viewMapper(f,r),t!==n?t:e)}),R.select=function(e){var t,n,i={};x=!0,i[L.itemName]=n=R.matches[e].model,t=L.modelMapper(f,i),q(f,t),$.$setValidity("editable",!0),$.$setValidity("parse",!0),S(f,{$item:n,$model:t,$label:L.viewMapper(f,i)}),N(),R.$eval(g.typeaheadFocusOnSelect)!==!1&&r(function(){h[0].focus()},0,!1)},h.bind("keydown",function(e){if(0!==R.matches.length&&-1!==p.indexOf(e.which)){if(-1===R.activeIdx&&(9===e.which||13===e.which))return N(),void R.$digest();e.preventDefault(),40===e.which?(R.activeIdx=(R.activeIdx+1)%R.matches.length,R.$digest()):38===e.which?(R.activeIdx=(R.activeIdx>0?R.activeIdx:R.matches.length)-1,R.$digest()):13===e.which||9===e.which?R.$apply(function(){R.select(R.activeIdx)}):27===e.which&&(e.stopPropagation(),N(),R.$digest())}}),h.bind("blur",function(){E&&R.matches.length&&-1!==R.activeIdx&&!x&&(x=!0,R.$apply(function(){R.select(R.activeIdx)})),k=!1,x=!1});var Q=function(e){h[0]!==e.target&&3!==e.which&&0!==R.matches.length&&(N(),o.$$phase||R.$digest())};i.bind("click",Q),f.$on("$destroy",function(){i.unbind("click",Q),(P||A)&&X.remove(),P&&(angular.element(a).unbind("resize",v),i.find("body").unbind("scroll",v)),H.remove()});var X=e(H)(R);P?i.find("body").append(X):A!==!1?angular.element(i[0].getElementById(A)).append(X):h.after(X)}}}]).directive("typeaheadPopup",["$typeaheadSuppressWarning","$log",function(e,t){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&"},replace:!0,templateUrl:function(e,t){return t.popupTemplateUrl||"template/typeahead/typeahead-popup.html"},link:function(n,r,i){e||t.warn("typeahead-popup is now deprecated. Use uib-typeahead-popup instead."),n.templateUrl=i.templateUrl,n.isOpen=function(){return n.matches.length>0},n.isActive=function(e){return n.active==e},n.selectActive=function(e){n.active=e},n.selectMatch=function(e){n.select({activeIdx:e})}}}}]).directive("typeaheadMatch",["$templateRequest","$compile","$parse","$typeaheadSuppressWarning","$log",function(e,t,n,r,i){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(a,o,s){r||i.warn("typeahead-match is now deprecated. Use uib-typeahead-match instead.");var l=n(s.templateUrl)(a.$parent)||"template/typeahead/typeahead-match.html";e(l).then(function(e){t(e.trim())(a,function(e){o.replaceWith(e)})})}}}]).filter("typeaheadHighlight",["$sce","$injector","$log","$typeaheadSuppressWarning",function(e,t,n,r){function i(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function a(e){return/<.*>/g.test(e)}var o;return o=t.has("$sanitize"),function(t,s){return r||n.warn("typeaheadHighlight is now deprecated. Use uibTypeaheadHighlight instead."),!o&&a(t)&&n.warn("Unsafe use of typeahead please use ngSanitize"),t=s?(""+t).replace(new RegExp(i(s),"gi"),"$&"):t,o||(t=e.trustAsHtml(t)),t}}]),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(e){e.put("template/accordion/accordion-group.html",'
    \n
    \n

    \n {{heading}}\n

    \n
    \n
    \n
    \n
    \n
    \n')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(e){e.put("template/accordion/accordion.html",'
    ')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(e){e.put("template/alert/alert.html",'\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(e){e.put("template/carousel/carousel.html",'')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(e){e.put("template/carousel/slide.html",'
    \n')}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/datepicker.html",'
    \n \n \n \n
    ')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/day.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{::label.abbr}}
    {{ weekNumbers[$index] }}\n \n
    \n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/month.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/popup.html",'\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(e){e.put("template/datepicker/year.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("template/modal/backdrop.html",'
    \n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(e){e.put("template/modal/window.html",'\n')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(e){e.put("template/pagination/pager.html",'\n')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(e){e.put("template/pagination/pagination.html",'\n'); -}]),angular.module("template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-popup.html",'\n
    \n
    \n
    \n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'\n
    \n
    \n\n')}]),angular.module("template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-template-popup.html",'\n
    \n
    \n\n')}]),angular.module("template/popover/popover-html.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover-html.html",'
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n')}]),angular.module("template/popover/popover-template.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover-template.html",'
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover.html",'
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/bar.html",'
    \n')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/progress.html",'
    ')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/progressbar.html",'
    \n
    \n
    \n')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(e){e.put("template/rating/rating.html",'\n ({{ $index < value ? \'*\' : \' \' }})\n \n\n')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tab.html",'
  • \n {{heading}}\n
  • \n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tabset.html",'
    \n \n
    \n
    \n
    \n
    \n
    \n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(e){e.put("template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     
    \n \n :\n \n
     
    \n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(e){e.put("template/typeahead/typeahead-match.html",'\n')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(e){e.put("template/typeahead/typeahead-popup.html",'\n')}]),!angular.$$csp()&&angular.element(document).find("head").prepend(''),"undefined"!=typeof module&&(module.exports="ui.bootstrap"),function(){var e;e=angular.module("ui.bootstrap.showErrors",[]),e.directive("showErrors",["$timeout","showErrorsConfig","$interpolate",function(e,t,n){var r,i,a;return i=function(e){var n;return n=t.trigger,e&&null!=e.trigger&&(n=e.trigger),n},r=function(e){var n;return n=t.showSuccess,e&&null!=e.showSuccess&&(n=e.showSuccess),n},a=function(t,a,o,s){var l,c,u,p,d,f,h,g;if(l=!1,d=t.$eval(o.showErrors),f=r(d),g=i(d),c=a[0].querySelector(".form-control[name]"),p=angular.element(c),u=n(p.attr("name")||"")(t),!u)throw"show-errors element has no child input elements with a 'name' attribute and a 'form-control' class";return p.bind(g,function(){return l=!0,h(s[u].$invalid)}),t.$watch(function(){return s[u]&&s[u].$invalid},function(e){return l?h(e):void 0}),t.$on("show-errors-check-validity",function(){return h(s[u].$invalid)}),t.$on("show-errors-reset",function(){return e(function(){return a.removeClass("has-error"),a.removeClass("has-success"),l=!1},0,!1)}),h=function(e){return a.toggleClass("has-error",e),f?a.toggleClass("has-success",!e):void 0}},{restrict:"A",require:"^form",compile:function(e,t){if(-1===t.showErrors.indexOf("skipFormGroupCheck")&&!e.hasClass("form-group")&&!e.hasClass("input-group"))throw"show-errors element does not have the 'form-group' or 'input-group' class";return a}}}]),e.provider("showErrorsConfig",function(){var e,t;e=!1,t="blur",this.showSuccess=function(t){return e=t},this.trigger=function(e){return t=e},this.$get=function(){return{showSuccess:e,trigger:t}}})}.call(this),function(e,t){function n(e,n,r){function i(e,r,i){var o,s;i=i||{},s=i.expires,o=t.isDefined(i.path)?i.path:a,t.isUndefined(r)&&(s="Thu, 01 Jan 1970 00:00:00 GMT",r=""),t.isString(s)&&(s=new Date(s));var l=encodeURIComponent(e)+"="+encodeURIComponent(r);l+=o?";path="+o:"",l+=i.domain?";domain="+i.domain:"",l+=s?";expires="+s.toUTCString():"",l+=i.secure?";secure":"";var c=l.length+1;return c>4096&&n.warn("Cookie '"+e+"' possibly not set or overflowed because it was too large ("+c+" > 4096 bytes)!"),l}var a=r.baseHref(),o=e[0];return function(e,t,n){o.cookie=i(e,t,n)}}t.module("ngCookies",["ng"]).provider("$cookies",[function(){function e(e){return e?t.extend({},n,e):n}var n=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(n,r){return{get:function(e){return n()[e]},getObject:function(e){var n=this.get(e);return n?t.fromJson(n):n},getAll:function(){return n()},put:function(t,n,i){r(t,n,e(i))},putObject:function(e,n,r){this.put(e,t.toJson(n),r)},remove:function(t,n){r(t,void 0,e(n))}}}]}]),t.module("ngCookies").factory("$cookieStore",["$cookies",function(e){return{get:function(t){return e.getObject(t)},put:function(t,n){e.putObject(t,n)},remove:function(t){e.remove(t)}}}]),n.$inject=["$document","$log","$browser"],t.module("ngCookies").provider("$$cookieWriter",function(){this.$get=n})}(window,window.angular),function(){angular.module("angular-jwt",["angular-jwt.interceptor","angular-jwt.jwt"]),angular.module("angular-jwt.interceptor",[]).provider("jwtInterceptor",function(){this.urlParam=null,this.authHeader="Authorization",this.authPrefix="Bearer ",this.tokenGetter=function(){return null};var e=this;this.$get=["$q","$injector","$rootScope",function(t,n,r){return{request:function(r){if(r.skipAuthorization)return r;if(e.urlParam){if(r.params=r.params||{},r.params[e.urlParam])return r}else if(r.headers=r.headers||{},r.headers[e.authHeader])return r;var i=t.when(n.invoke(e.tokenGetter,this,{config:r}));return i.then(function(t){return t&&(e.urlParam?r.params[e.urlParam]=t:r.headers[e.authHeader]=e.authPrefix+t),r})},responseError:function(e){return 401===e.status&&r.$broadcast("unauthenticated",e),t.reject(e)}}}]}),angular.module("angular-jwt.jwt",[]).service("jwtHelper",function(){this.urlBase64Decode=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}return decodeURIComponent(escape(window.atob(t)))},this.decodeToken=function(e){var t=e.split(".");if(3!==t.length)throw new Error("JWT must have 3 parts");var n=this.urlBase64Decode(t[1]);if(!n)throw new Error("Cannot decode the token");return JSON.parse(n)},this.getTokenExpirationDate=function(e){var t;if(t=this.decodeToken(e),"undefined"==typeof t.exp)return null;var n=new Date(0);return n.setUTCSeconds(t.exp),n},this.isTokenExpired=function(e,t){var n=this.getTokenExpirationDate(e);return t=t||0,null===n?!1:!(n.valueOf()>(new Date).valueOf()+1e3*t)}})}(),function(e,t){function n(){function e(e,t){return e?r(e)?e.indexOf(t)>=0:e.hasOwnProperty(t):void 0}return["$animate",function(t){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(n,i,a,o,s){var l,c=i[0],u=a.ngMessage||a.when,p=a.ngMessageExp||a.whenExp,d=function(e){l=e?r(e)?e:e.split(/[\s,]+/):null,o.reRender()};p?(d(n.$eval(p)),n.$watchCollection(p,d)):d(u);var f,h;o.register(c,h={test:function(t){return e(l,t)},attach:function(){f||s(n,function(e){t.enter(e,null,i),f=e;var n=f.$$attachId=o.getAttachId();f.on("$destroy",function(){f&&f.$$attachId===n&&(o.deregister(c),h.detach())})})},detach:function(){if(f){var e=f;f=null,t.leave(e)}}})}}}]}var r=t.isArray,i=t.forEach,a=t.isString,o=t.element;t.module("ngMessages",[]).directive("ngMessages",["$animate",function(e){function t(e,t){return a(t)&&0===t.length||n(e.$eval(t))}function n(e){return a(e)?e.length:!!e}var r="ng-active",o="ng-inactive";return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(a,s,l){function c(e,t){for(var n=t,r=[];n&&n!==e;){var i=n.$$ngMessageNode;if(i&&i.length)return v[i];n.childNodes.length&&-1==r.indexOf(n)?(r.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,r.push(n))}}function u(e,t,n){var r=v[n];if(d.head){var i=c(e,t);i?(r.next=i.next,i.next=r):(r.next=d.head,d.head=r)}else d.head=r}function p(e,t,n){var r=v[n],i=c(e,t);i?i.next=r.next:d.head=r.next}var d=this,f=0,h=0;this.getAttachId=function(){return h++};var g,m,v=this.messages={};this.render=function(c){c=c||{},g=!1,m=c;for(var u=t(s,l.ngMessagesMultiple)||t(s,l.multiple),p=[],f={},h=d.head,v=!1,b=0;null!=h;){b++;var $=h.message,y=!1;v||i(c,function(e,t){if(!y&&n(e)&&$.test(t)){if(f[t])return;f[t]=!0,y=!0,$.attach()}}),y?v=!u:p.push($),h=h.next}i(p,function(e){e.detach()}),p.length!==b?e.setClass(a,r,o):e.setClass(a,o,r)},s.$watchCollection(l.ngMessages||l["for"],d.render),a.on("$destroy",function(){i(v,function(e){e.message.detach()})}),this.reRender=function(){g||(g=!0,s.$evalAsync(function(){g&&m&&d.render(m)}))},this.register=function(e,t){var n=f.toString();v[n]={message:t},u(a[0],e,n),e.$$ngMessageNode=n,f++,d.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode,p(a[0],e,t),delete v[t],d.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){return{restrict:"AE",require:"^^ngMessages",link:function(r,i,a){var s=a.ngMessagesInclude||a.src;e(s).then(function(e){r.$$destroyed||n(e)(r,function(e){i.after(e);var r=n.$$createComment?n.$$createComment("ngMessagesInclude",s):t[0].createComment(" ngMessagesInclude: "+s+" "),a=o(r);i.after(a),i.remove()})})}}}]).directive("ngMessage",n()).directive("ngMessageExp",n())}(window,window.angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="angular-md5"),function(e){e.module("angular-md5",["gdi2290.md5"]),e.module("ngMd5",["gdi2290.md5"]),e.module("gdi2290.md5",["gdi2290.gravatar-filter","gdi2290.md5-service","gdi2290.md5-filter"]),e.module("gdi2290.gravatar-filter",[]).filter("gravatar",["md5",function(e){var t={};return function(n,r){return t[n]||(r=r?e.createHash(r.toString().toLowerCase()):"",t[n]=n?e.createHash(n.toString().toLowerCase()):r),t[n]}}]),e.module("gdi2290.md5-filter",[]).filter("md5",["md5",function(e){return function(t){return t?e.createHash(t.toString().toLowerCase()):t}}]),e.module("gdi2290.md5-service",[]).factory("md5",[function(){var e={createHash:function(e){if(null===e)return null;var t,n,r,i,a,o,s,l,c,u,p=function(e,t){return e<>>32-t},d=function(e,t){var n,r,i,a,o;return i=2147483648&e,a=2147483648&t,n=1073741824&e,r=1073741824&t,o=(1073741823&e)+(1073741823&t),n&r?2147483648^o^i^a:n|r?1073741824&o?3221225472^o^i^a:1073741824^o^i^a:o^i^a},f=function(e,t,n){return e&t|~e&n},h=function(e,t,n){return e&n|t&~n},g=function(e,t,n){return e^t^n},m=function(e,t,n){return t^(e|~n)},v=function(e,t,n,r,i,a,o){return e=d(e,d(d(f(t,n,r),i),o)),d(p(e,a),t)},b=function(e,t,n,r,i,a,o){return e=d(e,d(d(h(t,n,r),i),o)),d(p(e,a),t)},$=function(e,t,n,r,i,a,o){return e=d(e,d(d(g(t,n,r),i),o)),d(p(e,a),t)},y=function(e,t,n,r,i,a,o){return e=d(e,d(d(m(t,n,r),i),o)),d(p(e,a),t)},w=function(e){for(var t,n=e.length,r=n+8,i=(r-r%64)/64,a=16*(i+1),o=new Array(a-1),s=0,l=0;n>l;)t=(l-l%4)/4,s=l%4*8,o[t]=o[t]|e.charCodeAt(l)<>>29,o},k=function(e){var t,n,r="",i="";for(n=0;3>=n;n++)t=e>>>8*n&255,i="0"+t.toString(16),r+=i.substr(i.length-2,2);return r},x=[],C=7,D=12,T=17,S=22,E=5,O=9,M=14,P=20,A=4,j=11,I=16,U=23,_=6,q=10,L=15,R=21;for(x=w(e),s=1732584193,l=4023233417,c=2562383102,u=271733878,t=x.length,n=0;t>n;n+=16)r=s,i=l,a=c,o=u,s=v(s,l,c,u,x[n+0],C,3614090360),u=v(u,s,l,c,x[n+1],D,3905402710),c=v(c,u,s,l,x[n+2],T,606105819),l=v(l,c,u,s,x[n+3],S,3250441966),s=v(s,l,c,u,x[n+4],C,4118548399),u=v(u,s,l,c,x[n+5],D,1200080426),c=v(c,u,s,l,x[n+6],T,2821735955),l=v(l,c,u,s,x[n+7],S,4249261313),s=v(s,l,c,u,x[n+8],C,1770035416),u=v(u,s,l,c,x[n+9],D,2336552879),c=v(c,u,s,l,x[n+10],T,4294925233),l=v(l,c,u,s,x[n+11],S,2304563134),s=v(s,l,c,u,x[n+12],C,1804603682),u=v(u,s,l,c,x[n+13],D,4254626195),c=v(c,u,s,l,x[n+14],T,2792965006),l=v(l,c,u,s,x[n+15],S,1236535329),s=b(s,l,c,u,x[n+1],E,4129170786),u=b(u,s,l,c,x[n+6],O,3225465664),c=b(c,u,s,l,x[n+11],M,643717713),l=b(l,c,u,s,x[n+0],P,3921069994),s=b(s,l,c,u,x[n+5],E,3593408605),u=b(u,s,l,c,x[n+10],O,38016083),c=b(c,u,s,l,x[n+15],M,3634488961),l=b(l,c,u,s,x[n+4],P,3889429448),s=b(s,l,c,u,x[n+9],E,568446438),u=b(u,s,l,c,x[n+14],O,3275163606),c=b(c,u,s,l,x[n+3],M,4107603335),l=b(l,c,u,s,x[n+8],P,1163531501),s=b(s,l,c,u,x[n+13],E,2850285829),u=b(u,s,l,c,x[n+2],O,4243563512),c=b(c,u,s,l,x[n+7],M,1735328473),l=b(l,c,u,s,x[n+12],P,2368359562),s=$(s,l,c,u,x[n+5],A,4294588738),u=$(u,s,l,c,x[n+8],j,2272392833),c=$(c,u,s,l,x[n+11],I,1839030562),l=$(l,c,u,s,x[n+14],U,4259657740),s=$(s,l,c,u,x[n+1],A,2763975236),u=$(u,s,l,c,x[n+4],j,1272893353),c=$(c,u,s,l,x[n+7],I,4139469664),l=$(l,c,u,s,x[n+10],U,3200236656),s=$(s,l,c,u,x[n+13],A,681279174),u=$(u,s,l,c,x[n+0],j,3936430074),c=$(c,u,s,l,x[n+3],I,3572445317),l=$(l,c,u,s,x[n+6],U,76029189),s=$(s,l,c,u,x[n+9],A,3654602809),u=$(u,s,l,c,x[n+12],j,3873151461),c=$(c,u,s,l,x[n+15],I,530742520),l=$(l,c,u,s,x[n+2],U,3299628645),s=y(s,l,c,u,x[n+0],_,4096336452),u=y(u,s,l,c,x[n+7],q,1126891415),c=y(c,u,s,l,x[n+14],L,2878612391),l=y(l,c,u,s,x[n+5],R,4237533241),s=y(s,l,c,u,x[n+12],_,1700485571),u=y(u,s,l,c,x[n+3],q,2399980690),c=y(c,u,s,l,x[n+10],L,4293915773),l=y(l,c,u,s,x[n+1],R,2240044497),s=y(s,l,c,u,x[n+8],_,1873313359),u=y(u,s,l,c,x[n+15],q,4264355552),c=y(c,u,s,l,x[n+6],L,2734768916),l=y(l,c,u,s,x[n+13],R,1309151649),s=y(s,l,c,u,x[n+4],_,4149444226),u=y(u,s,l,c,x[n+11],q,3174756917),c=y(c,u,s,l,x[n+2],L,718787259),l=y(l,c,u,s,x[n+9],R,3951481745),s=d(s,r),l=d(l,i),c=d(c,a),u=d(u,o);var F=k(s)+k(l)+k(c)+k(u);return F.toLowerCase()}};return e}])}(angular),function(e,t){function n(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&o.test("."+e)}function r(e,r){if(!n(r))throw a("badmember",'Dotted member path "@{0}" is invalid.',r);for(var i=r.split("."),o=0,s=i.length;s>o&&t.isDefined(e);o++){var l=i[o];e=null!==e?e[l]:void 0}return e}function i(e,n){n=n||{},t.forEach(n,function(e,t){delete n[t]});for(var r in e)!e.hasOwnProperty(r)||"$"===r.charAt(0)&&"$"===r.charAt(1)||(n[r]=e[r]);return n}var a=t.$$minErr("$resource"),o=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;t.module("ngResource",["ng"]).provider("$resource",function(){var e=/^https?:\/\/[^\/]*/,n=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(o,s,l,c){function u(e){return p(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function p(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function d(e,t){this.template=e,this.defaults=m({},n.defaults,t),this.urlParams={}}function f(e,u,p,$){function y(e,t){var n={};return t=m({},u,t),g(t,function(t,i){b(t)&&(t=t()),n[i]=t&&t.charAt&&"@"==t.charAt(0)?r(e,t.substr(1)):t}),n}function w(e){return e.resource}function k(e){i(e||{},this)}var x=new d(e,$);return p=m({},n.defaults.actions,p),k.prototype.toJSON=function(){var e=m({},this);return delete e.$promise,delete e.$resolved,e},g(p,function(e,r){var u=/^(POST|PUT|PATCH)$/i.test(e.method),p=e.timeout,d=t.isDefined(e.cancellable)?e.cancellable:$&&t.isDefined($.cancellable)?$.cancellable:n.defaults.cancellable;p&&!t.isNumber(p)&&(s.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,p=null),k[r]=function(n,s,f,$){var C,D,T,S={};switch(arguments.length){case 4:T=$,D=f;case 3:case 2:if(!b(s)){S=n,C=s,D=f;break}if(b(n)){D=n,T=s;break}D=s,T=f;case 1:b(n)?D=n:u?C=n:S=n;break;case 0:break;default:throw a("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var E,O,M=this instanceof k,P=M?C:e.isArray?[]:new k(C),A={},j=e.interceptor&&e.interceptor.response||w,I=e.interceptor&&e.interceptor.responseError||void 0;g(e,function(e,t){switch(t){default:A[t]=v(e);break;case"params":case"isArray":case"interceptor":case"cancellable":}}),!M&&d&&(E=l.defer(),A.timeout=E.promise,p&&(O=c(E.resolve,p))),u&&(A.data=C),x.setUrlParams(A,m({},y(C,e.params||{}),S),e.url);var U=o(A).then(function(n){var o=n.data;if(o){if(t.isArray(o)!==!!e.isArray)throw a("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",r,e.isArray?"array":"object",t.isArray(o)?"array":"object",A.method,A.url);if(e.isArray)P.length=0,g(o,function(e){"object"==typeof e?P.push(new k(e)):P.push(e)});else{var s=P.$promise;i(o,P),P.$promise=s}}return n.resource=P,n},function(e){return(T||h)(e),l.reject(e)});return U["finally"](function(){P.$resolved=!0,!M&&d&&(P.$cancelRequest=t.noop,c.cancel(O),E=O=A.timeout=null)}),U=U.then(function(e){var t=j(e);return(D||h)(t,e.headers),t},I),M?U:(P.$promise=U,P.$resolved=!1,d&&(P.$cancelRequest=E.resolve),P)},k.prototype["$"+r]=function(e,t,n){b(e)&&(n=t,t=e,e={});var i=k[r].call(this,e,this,t,n);return i.$promise||i}}),k.bind=function(t){return f(e,m({},u,t),p)},k}var h=t.noop,g=t.forEach,m=t.extend,v=t.copy,b=t.isFunction;return d.prototype={setUrlParams:function(n,r,i){var o,s,l=this,c=i||l.template,d="",f=l.urlParams={};g(c.split(/\W/),function(e){if("hasOwnProperty"===e)throw a("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(c)&&(f[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(c)})}),c=c.replace(/\\:/g,":"),c=c.replace(e,function(e){return d=e,""}),r=r||{},g(l.urlParams,function(e,n){o=r.hasOwnProperty(n)?r[n]:l.defaults[n],t.isDefined(o)&&null!==o?(s=e.isQueryParamValue?p(o,!0):u(o),c=c.replace(new RegExp(":"+n+"(\\W|$)","g"),function(e,t){return s+t})):c=c.replace(new RegExp("(/?):"+n+"(\\W|$)","g"),function(e,t,n){return"/"==n.charAt(0)?n:t+n})}),l.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/"),c=c.replace(/\/\.(?=\w+($|\?))/,"."),n.url=d+c.replace(/\/\\\./,"/."),g(r,function(e,t){l.urlParams[t]||(n.params=n.params||{},n.params[t]=e)})}},f}]})}(window,window.angular),function(){function e(e,t,n,r,i,a,o){function s(){return y.length}function l(e){if(1!==arguments.length||e)if(e)f(e.toastId);else for(var t=0;t=t&&y[t-1].open.resolve(),i()&&(b.remove(),b=null,x=o.defer())}))}function h(e,t,n,r){return angular.isObject(n)&&(r=n,n=null),v({iconClass:e,message:t,optionsOverride:r,title:n})}function g(){return angular.extend({},a)}function m(t){if(b)return x.promise;b=angular.element("
    "),b.attr("id",t.containerId),b.addClass(t.positionClass),b.css({"pointer-events":"auto"});var n=angular.element(document.querySelector(t.target));if(!n||!n.length)throw"Target for toasts doesn't exist";return e.enter(b,n).then(function(){x.resolve()}),x.promise}function v(n){function a(){return d.autoDismiss&&d.maxOpened&&y.length>d.maxOpened}function s(e,t,n){function r(t){return n[t]?function(){n[t](e)}:void 0}n.allowHtml?(e.scope.allowHtml=!0,e.scope.title=i.trustAsHtml(t.title),e.scope.message=i.trustAsHtml(t.message)):(e.scope.title=t.title,e.scope.message=t.message),e.scope.toastType=e.iconClass,e.scope.toastId=e.toastId,e.scope.extraData=n.extraData,e.scope.options={extendedTimeOut:n.extendedTimeOut,messageClass:n.messageClass,onHidden:n.onHidden,onShown:r("onShown"),onTap:r("onTap"),progressBar:n.progressBar,tapToDismiss:n.tapToDismiss,timeOut:n.timeOut,titleClass:n.titleClass,toastClass:n.toastClass},n.closeButton&&(e.scope.options.closeHtml=n.closeHtml)}function l(){function e(e){for(var t=["containerId","iconClasses","maxOpened","newestOnTop","positionClass","preventDuplicates","preventOpenDuplicates","templates"],n=0,r=t.length;r>n;n++)delete e[t[n]];return e}var t={toastId:$++,isOpened:!1,scope:r.$new(),open:o.defer()};return t.iconClass=n.iconClass,n.optionsOverride&&(angular.extend(d,e(n.optionsOverride)),t.iconClass=n.optionsOverride.iconClass||t.iconClass),s(t,n,d),t.el=c(t.scope),t}function c(e){var n=angular.element("
    "),r=t.get("$compile");return r(n)(e)}function u(){return d.maxOpened&&y.length<=d.maxOpened||!d.maxOpened}function p(){var e=d.preventDuplicates&&n.message===w,t=d.preventOpenDuplicates&&k[n.message];return e||t?!0:(w=n.message,k[n.message]=!0,!1)}var d=g();if(!p()){var h=l();if(y.push(h),a())for(var v=y.slice(0,y.length-d.maxOpened),x=0,C=v.length;C>x;x++)f(v[x].toastId);return u()&&h.open.resolve(),h.open.promise.then(function(){m(d).then(function(){if(h.isOpened=!0,d.newestOnTop)e.enter(h.el,b).then(function(){h.scope.init()});else{var t=b[0].lastChild?angular.element(b[0].lastChild):null;e.enter(h.el,b,t).then(function(){h.scope.init()})}})}),h}}var b,$=0,y=[],w="",k={},x=o.defer(),C={active:s,clear:l,error:c,info:u,remove:f,success:p,warning:d};return C}angular.module("toastr",[]).factory("toastr",e),e.$inject=["$animate","$injector","$document","$rootScope","$sce","toastrConfig","$q"]}(),function(){angular.module("toastr").constant("toastrConfig",{allowHtml:!1,autoDismiss:!1,closeButton:!1,closeHtml:"",containerId:"toast-container",extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},maxOpened:0,messageClass:"toast-message",newestOnTop:!0,onHidden:null,onShown:null,onTap:null,positionClass:"toast-top-right",preventDuplicates:!1,preventOpenDuplicates:!1,progressBar:!1,tapToDismiss:!0,target:"body",templates:{toast:"directives/toast/toast.html",progressbar:"directives/progressbar/progressbar.html"},timeOut:5e3,titleClass:"toast-title",toastClass:"toast"})}(),function(){function e(e){function t(e,t,n,r){function i(){var e=(s-(new Date).getTime())/o*100;t.css("width",e+"%")}var a,o,s;r.progressBar=e,e.start=function(e){a&&clearInterval(a),o=parseFloat(e),s=(new Date).getTime()+o,a=setInterval(i,10)},e.stop=function(){a&&clearInterval(a)},e.$on("$destroy",function(){clearInterval(a)})}return{replace:!0,require:"^toast",templateUrl:function(){return e.templates.progressbar},link:t}}angular.module("toastr").directive("progressBar",e),e.$inject=["toastrConfig"]}(),function(){function e(){this.progressBar=null,this.startProgressBar=function(e){this.progressBar&&this.progressBar.start(e)},this.stopProgressBar=function(){this.progressBar&&this.progressBar.stop()}}angular.module("toastr").controller("ToastController",e)}(),function(){function e(e,t,n,r){function i(n,i,a,o){function s(e){return o.startProgressBar(e),t(function(){o.stopProgressBar(),r.remove(n.toastId)},e,1)}function l(){n.progressBar=!1,o.stopProgressBar()}function c(){return n.options.closeHtml}var u;if(n.toastClass=n.options.toastClass,n.titleClass=n.options.titleClass,n.messageClass=n.options.messageClass,n.progressBar=n.options.progressBar,c()){var p=angular.element(n.options.closeHtml),d=e.get("$compile");p.addClass("toast-close-button"),p.attr("ng-click","close(true, $event)"),d(p)(n),i.prepend(p)}n.init=function(){n.options.timeOut&&(u=s(n.options.timeOut)),n.options.onShown&&n.options.onShown()},i.on("mouseenter",function(){l(),u&&t.cancel(u)}),n.tapToast=function(){angular.isFunction(n.options.onTap)&&n.options.onTap(),n.options.tapToDismiss&&n.close(!0)},n.close=function(e,t){t&&angular.isFunction(t.stopPropagation)&&t.stopPropagation(),r.remove(n.toastId,e)},i.on("mouseleave",function(){0===n.options.timeOut&&0===n.options.extendedTimeOut||(n.$apply(function(){n.progressBar=n.options.progressBar}),u=s(n.options.extendedTimeOut))})}return{replace:!0,templateUrl:function(){return n.templates.toast},controller:"ToastController",link:i}}angular.module("toastr").directive("toast",e),e.$inject=["$injector","$interval","toastrConfig","toastr"]}(),function(){function e(e,t,n,r,i,a,o){function s(){return y.length}function l(e){if(1!==arguments.length||e)if(e)f(e.toastId);else for(var t=0;t=t&&y[t-1].open.resolve(),i()&&(b.remove(),b=null,x=o.defer())}))}function h(e,t,n,r){return angular.isObject(n)&&(r=n, +}]),angular.module("template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-popup.html",'\n
    \n
    \n\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'\n
    \n
    \n\n')}]),angular.module("template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-template-popup.html",'\n
    \n
    \n\n')}]),angular.module("template/popover/popover-html.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover-html.html",'
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n')}]),angular.module("template/popover/popover-template.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover-template.html",'
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(e){e.put("template/popover/popover.html",'
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/bar.html",'
    \n')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/progress.html",'
    ')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(e){e.put("template/progressbar/progressbar.html",'
    \n
    \n
    \n')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(e){e.put("template/rating/rating.html",'\n ({{ $index < value ? \'*\' : \' \' }})\n \n\n')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tab.html",'
  • \n {{heading}}\n
  • \n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(e){e.put("template/tabs/tabset.html",'
    \n \n
    \n
    \n
    \n
    \n
    \n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(e){e.put("template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     
    \n \n :\n \n
     
    \n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(e){e.put("template/typeahead/typeahead-match.html",'\n')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(e){e.put("template/typeahead/typeahead-popup.html",'\n')}]),!angular.$$csp()&&angular.element(document).find("head").prepend(''),"undefined"!=typeof module&&(module.exports="ui.bootstrap"),function(){var e;e=angular.module("ui.bootstrap.showErrors",[]),e.directive("showErrors",["$timeout","showErrorsConfig","$interpolate",function(e,t,n){var r,i,a;return i=function(e){var n;return n=t.trigger,e&&null!=e.trigger&&(n=e.trigger),n},r=function(e){var n;return n=t.showSuccess,e&&null!=e.showSuccess&&(n=e.showSuccess),n},a=function(t,a,o,s){var l,c,u,p,d,f,h,g;if(l=!1,d=t.$eval(o.showErrors),f=r(d),g=i(d),c=a[0].querySelector(".form-control[name]"),p=angular.element(c),u=n(p.attr("name")||"")(t),!u)throw"show-errors element has no child input elements with a 'name' attribute and a 'form-control' class";return p.bind(g,function(){return l=!0,h(s[u].$invalid)}),t.$watch(function(){return s[u]&&s[u].$invalid},function(e){return l?h(e):void 0}),t.$on("show-errors-check-validity",function(){return h(s[u].$invalid)}),t.$on("show-errors-reset",function(){return e(function(){return a.removeClass("has-error"),a.removeClass("has-success"),l=!1},0,!1)}),h=function(e){return a.toggleClass("has-error",e),f?a.toggleClass("has-success",!e):void 0}},{restrict:"A",require:"^form",compile:function(e,t){if(-1===t.showErrors.indexOf("skipFormGroupCheck")&&!e.hasClass("form-group")&&!e.hasClass("input-group"))throw"show-errors element does not have the 'form-group' or 'input-group' class";return a}}}]),e.provider("showErrorsConfig",function(){var e,t;e=!1,t="blur",this.showSuccess=function(t){return e=t},this.trigger=function(e){return t=e},this.$get=function(){return{showSuccess:e,trigger:t}}})}.call(this),function(e,t){function n(e,n,r){function i(e,r,i){var o,s;i=i||{},s=i.expires,o=t.isDefined(i.path)?i.path:a,t.isUndefined(r)&&(s="Thu, 01 Jan 1970 00:00:00 GMT",r=""),t.isString(s)&&(s=new Date(s));var l=encodeURIComponent(e)+"="+encodeURIComponent(r);l+=o?";path="+o:"",l+=i.domain?";domain="+i.domain:"",l+=s?";expires="+s.toUTCString():"",l+=i.secure?";secure":"";var c=l.length+1;return c>4096&&n.warn("Cookie '"+e+"' possibly not set or overflowed because it was too large ("+c+" > 4096 bytes)!"),l}var a=r.baseHref(),o=e[0];return function(e,t,n){o.cookie=i(e,t,n)}}t.module("ngCookies",["ng"]).provider("$cookies",[function(){function e(e){return e?t.extend({},n,e):n}var n=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(n,r){return{get:function(e){return n()[e]},getObject:function(e){var n=this.get(e);return n?t.fromJson(n):n},getAll:function(){return n()},put:function(t,n,i){r(t,n,e(i))},putObject:function(e,n,r){this.put(e,t.toJson(n),r)},remove:function(t,n){r(t,void 0,e(n))}}}]}]),t.module("ngCookies").factory("$cookieStore",["$cookies",function(e){return{get:function(t){return e.getObject(t)},put:function(t,n){e.putObject(t,n)},remove:function(t){e.remove(t)}}}]),n.$inject=["$document","$log","$browser"],t.module("ngCookies").provider("$$cookieWriter",function(){this.$get=n})}(window,window.angular),function(){angular.module("angular-jwt",["angular-jwt.interceptor","angular-jwt.jwt"]),angular.module("angular-jwt.interceptor",[]).provider("jwtInterceptor",function(){this.urlParam=null,this.authHeader="Authorization",this.authPrefix="Bearer ",this.tokenGetter=function(){return null};var e=this;this.$get=["$q","$injector","$rootScope",function(t,n,r){return{request:function(r){if(r.skipAuthorization)return r;if(e.urlParam){if(r.params=r.params||{},r.params[e.urlParam])return r}else if(r.headers=r.headers||{},r.headers[e.authHeader])return r;var i=t.when(n.invoke(e.tokenGetter,this,{config:r}));return i.then(function(t){return t&&(e.urlParam?r.params[e.urlParam]=t:r.headers[e.authHeader]=e.authPrefix+t),r})},responseError:function(e){return 401===e.status&&r.$broadcast("unauthenticated",e),t.reject(e)}}}]}),angular.module("angular-jwt.jwt",[]).service("jwtHelper",function(){this.urlBase64Decode=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}return decodeURIComponent(escape(window.atob(t)))},this.decodeToken=function(e){var t=e.split(".");if(3!==t.length)throw new Error("JWT must have 3 parts");var n=this.urlBase64Decode(t[1]);if(!n)throw new Error("Cannot decode the token");return JSON.parse(n)},this.getTokenExpirationDate=function(e){var t;if(t=this.decodeToken(e),"undefined"==typeof t.exp)return null;var n=new Date(0);return n.setUTCSeconds(t.exp),n},this.isTokenExpired=function(e,t){var n=this.getTokenExpirationDate(e);return t=t||0,null===n?!1:!(n.valueOf()>(new Date).valueOf()+1e3*t)}})}(),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="angular-md5"),function(e){e.module("angular-md5",["gdi2290.md5"]),e.module("ngMd5",["gdi2290.md5"]),e.module("gdi2290.md5",["gdi2290.gravatar-filter","gdi2290.md5-service","gdi2290.md5-filter"]),e.module("gdi2290.gravatar-filter",[]).filter("gravatar",["md5",function(e){var t={};return function(n,r){return t[n]||(r=r?e.createHash(r.toString().toLowerCase()):"",t[n]=n?e.createHash(n.toString().toLowerCase()):r),t[n]}}]),e.module("gdi2290.md5-filter",[]).filter("md5",["md5",function(e){return function(t){return t?e.createHash(t.toString().toLowerCase()):t}}]),e.module("gdi2290.md5-service",[]).factory("md5",[function(){var e={createHash:function(e){if(null===e)return null;var t,n,r,i,a,o,s,l,c,u,p=function(e,t){return e<>>32-t},d=function(e,t){var n,r,i,a,o;return i=2147483648&e,a=2147483648&t,n=1073741824&e,r=1073741824&t,o=(1073741823&e)+(1073741823&t),n&r?2147483648^o^i^a:n|r?1073741824&o?3221225472^o^i^a:1073741824^o^i^a:o^i^a},f=function(e,t,n){return e&t|~e&n},h=function(e,t,n){return e&n|t&~n},g=function(e,t,n){return e^t^n},m=function(e,t,n){return t^(e|~n)},v=function(e,t,n,r,i,a,o){return e=d(e,d(d(f(t,n,r),i),o)),d(p(e,a),t)},b=function(e,t,n,r,i,a,o){return e=d(e,d(d(h(t,n,r),i),o)),d(p(e,a),t)},$=function(e,t,n,r,i,a,o){return e=d(e,d(d(g(t,n,r),i),o)),d(p(e,a),t)},y=function(e,t,n,r,i,a,o){return e=d(e,d(d(m(t,n,r),i),o)),d(p(e,a),t)},w=function(e){for(var t,n=e.length,r=n+8,i=(r-r%64)/64,a=16*(i+1),o=new Array(a-1),s=0,l=0;n>l;)t=(l-l%4)/4,s=l%4*8,o[t]=o[t]|e.charCodeAt(l)<>>29,o},k=function(e){var t,n,r="",i="";for(n=0;3>=n;n++)t=e>>>8*n&255,i="0"+t.toString(16),r+=i.substr(i.length-2,2);return r},x=[],C=7,D=12,T=17,S=22,E=5,O=9,M=14,P=20,A=4,j=11,I=16,U=23,_=6,q=10,L=15,R=21;for(x=w(e),s=1732584193,l=4023233417,c=2562383102,u=271733878,t=x.length,n=0;t>n;n+=16)r=s,i=l,a=c,o=u,s=v(s,l,c,u,x[n+0],C,3614090360),u=v(u,s,l,c,x[n+1],D,3905402710),c=v(c,u,s,l,x[n+2],T,606105819),l=v(l,c,u,s,x[n+3],S,3250441966),s=v(s,l,c,u,x[n+4],C,4118548399),u=v(u,s,l,c,x[n+5],D,1200080426),c=v(c,u,s,l,x[n+6],T,2821735955),l=v(l,c,u,s,x[n+7],S,4249261313),s=v(s,l,c,u,x[n+8],C,1770035416),u=v(u,s,l,c,x[n+9],D,2336552879),c=v(c,u,s,l,x[n+10],T,4294925233),l=v(l,c,u,s,x[n+11],S,2304563134),s=v(s,l,c,u,x[n+12],C,1804603682),u=v(u,s,l,c,x[n+13],D,4254626195),c=v(c,u,s,l,x[n+14],T,2792965006),l=v(l,c,u,s,x[n+15],S,1236535329),s=b(s,l,c,u,x[n+1],E,4129170786),u=b(u,s,l,c,x[n+6],O,3225465664),c=b(c,u,s,l,x[n+11],M,643717713),l=b(l,c,u,s,x[n+0],P,3921069994),s=b(s,l,c,u,x[n+5],E,3593408605),u=b(u,s,l,c,x[n+10],O,38016083),c=b(c,u,s,l,x[n+15],M,3634488961),l=b(l,c,u,s,x[n+4],P,3889429448),s=b(s,l,c,u,x[n+9],E,568446438),u=b(u,s,l,c,x[n+14],O,3275163606),c=b(c,u,s,l,x[n+3],M,4107603335),l=b(l,c,u,s,x[n+8],P,1163531501),s=b(s,l,c,u,x[n+13],E,2850285829),u=b(u,s,l,c,x[n+2],O,4243563512),c=b(c,u,s,l,x[n+7],M,1735328473),l=b(l,c,u,s,x[n+12],P,2368359562),s=$(s,l,c,u,x[n+5],A,4294588738),u=$(u,s,l,c,x[n+8],j,2272392833),c=$(c,u,s,l,x[n+11],I,1839030562),l=$(l,c,u,s,x[n+14],U,4259657740),s=$(s,l,c,u,x[n+1],A,2763975236),u=$(u,s,l,c,x[n+4],j,1272893353),c=$(c,u,s,l,x[n+7],I,4139469664),l=$(l,c,u,s,x[n+10],U,3200236656),s=$(s,l,c,u,x[n+13],A,681279174),u=$(u,s,l,c,x[n+0],j,3936430074),c=$(c,u,s,l,x[n+3],I,3572445317),l=$(l,c,u,s,x[n+6],U,76029189),s=$(s,l,c,u,x[n+9],A,3654602809),u=$(u,s,l,c,x[n+12],j,3873151461),c=$(c,u,s,l,x[n+15],I,530742520),l=$(l,c,u,s,x[n+2],U,3299628645),s=y(s,l,c,u,x[n+0],_,4096336452),u=y(u,s,l,c,x[n+7],q,1126891415),c=y(c,u,s,l,x[n+14],L,2878612391),l=y(l,c,u,s,x[n+5],R,4237533241),s=y(s,l,c,u,x[n+12],_,1700485571),u=y(u,s,l,c,x[n+3],q,2399980690),c=y(c,u,s,l,x[n+10],L,4293915773),l=y(l,c,u,s,x[n+1],R,2240044497),s=y(s,l,c,u,x[n+8],_,1873313359),u=y(u,s,l,c,x[n+15],q,4264355552),c=y(c,u,s,l,x[n+6],L,2734768916),l=y(l,c,u,s,x[n+13],R,1309151649),s=y(s,l,c,u,x[n+4],_,4149444226),u=y(u,s,l,c,x[n+11],q,3174756917),c=y(c,u,s,l,x[n+2],L,718787259),l=y(l,c,u,s,x[n+9],R,3951481745),s=d(s,r),l=d(l,i),c=d(c,a),u=d(u,o);var F=k(s)+k(l)+k(c)+k(u);return F.toLowerCase()}};return e}])}(angular),function(e,t){function n(){function e(e,t){return e?r(e)?e.indexOf(t)>=0:e.hasOwnProperty(t):void 0}return["$animate",function(t){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(n,i,a,o,s){var l,c=i[0],u=a.ngMessage||a.when,p=a.ngMessageExp||a.whenExp,d=function(e){l=e?r(e)?e:e.split(/[\s,]+/):null,o.reRender()};p?(d(n.$eval(p)),n.$watchCollection(p,d)):d(u);var f,h;o.register(c,h={test:function(t){return e(l,t)},attach:function(){f||s(n,function(e){t.enter(e,null,i),f=e;var n=f.$$attachId=o.getAttachId();f.on("$destroy",function(){f&&f.$$attachId===n&&(o.deregister(c),h.detach())})})},detach:function(){if(f){var e=f;f=null,t.leave(e)}}})}}}]}var r=t.isArray,i=t.forEach,a=t.isString,o=t.element;t.module("ngMessages",[]).directive("ngMessages",["$animate",function(e){function t(e,t){return a(t)&&0===t.length||n(e.$eval(t))}function n(e){return a(e)?e.length:!!e}var r="ng-active",o="ng-inactive";return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(a,s,l){function c(e,t){for(var n=t,r=[];n&&n!==e;){var i=n.$$ngMessageNode;if(i&&i.length)return v[i];n.childNodes.length&&-1==r.indexOf(n)?(r.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,r.push(n))}}function u(e,t,n){var r=v[n];if(d.head){var i=c(e,t);i?(r.next=i.next,i.next=r):(r.next=d.head,d.head=r)}else d.head=r}function p(e,t,n){var r=v[n],i=c(e,t);i?i.next=r.next:d.head=r.next}var d=this,f=0,h=0;this.getAttachId=function(){return h++};var g,m,v=this.messages={};this.render=function(c){c=c||{},g=!1,m=c;for(var u=t(s,l.ngMessagesMultiple)||t(s,l.multiple),p=[],f={},h=d.head,v=!1,b=0;null!=h;){b++;var $=h.message,y=!1;v||i(c,function(e,t){if(!y&&n(e)&&$.test(t)){if(f[t])return;f[t]=!0,y=!0,$.attach()}}),y?v=!u:p.push($),h=h.next}i(p,function(e){e.detach()}),p.length!==b?e.setClass(a,r,o):e.setClass(a,o,r)},s.$watchCollection(l.ngMessages||l["for"],d.render),a.on("$destroy",function(){i(v,function(e){e.message.detach()})}),this.reRender=function(){g||(g=!0,s.$evalAsync(function(){g&&m&&d.render(m)}))},this.register=function(e,t){var n=f.toString();v[n]={message:t},u(a[0],e,n),e.$$ngMessageNode=n,f++,d.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode,p(a[0],e,t),delete v[t],d.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){return{restrict:"AE",require:"^^ngMessages",link:function(r,i,a){var s=a.ngMessagesInclude||a.src;e(s).then(function(e){r.$$destroyed||n(e)(r,function(e){i.after(e);var r=n.$$createComment?n.$$createComment("ngMessagesInclude",s):t[0].createComment(" ngMessagesInclude: "+s+" "),a=o(r);i.after(a),i.remove()})})}}}]).directive("ngMessage",n()).directive("ngMessageExp",n())}(window,window.angular),function(e,t){function n(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&o.test("."+e)}function r(e,r){if(!n(r))throw a("badmember",'Dotted member path "@{0}" is invalid.',r);for(var i=r.split("."),o=0,s=i.length;s>o&&t.isDefined(e);o++){var l=i[o];e=null!==e?e[l]:void 0}return e}function i(e,n){n=n||{},t.forEach(n,function(e,t){delete n[t]});for(var r in e)!e.hasOwnProperty(r)||"$"===r.charAt(0)&&"$"===r.charAt(1)||(n[r]=e[r]);return n}var a=t.$$minErr("$resource"),o=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;t.module("ngResource",["ng"]).provider("$resource",function(){var e=/^https?:\/\/[^\/]*/,n=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(o,s,l,c){function u(e){return p(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function p(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function d(e,t){this.template=e,this.defaults=m({},n.defaults,t),this.urlParams={}}function f(e,u,p,$){function y(e,t){var n={};return t=m({},u,t),g(t,function(t,i){b(t)&&(t=t()),n[i]=t&&t.charAt&&"@"==t.charAt(0)?r(e,t.substr(1)):t}),n}function w(e){return e.resource}function k(e){i(e||{},this)}var x=new d(e,$);return p=m({},n.defaults.actions,p),k.prototype.toJSON=function(){var e=m({},this);return delete e.$promise,delete e.$resolved,e},g(p,function(e,r){var u=/^(POST|PUT|PATCH)$/i.test(e.method),p=e.timeout,d=t.isDefined(e.cancellable)?e.cancellable:$&&t.isDefined($.cancellable)?$.cancellable:n.defaults.cancellable;p&&!t.isNumber(p)&&(s.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,p=null),k[r]=function(n,s,f,$){var C,D,T,S={};switch(arguments.length){case 4:T=$,D=f;case 3:case 2:if(!b(s)){S=n,C=s,D=f;break}if(b(n)){D=n,T=s;break}D=s,T=f;case 1:b(n)?D=n:u?C=n:S=n;break;case 0:break;default:throw a("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var E,O,M=this instanceof k,P=M?C:e.isArray?[]:new k(C),A={},j=e.interceptor&&e.interceptor.response||w,I=e.interceptor&&e.interceptor.responseError||void 0;g(e,function(e,t){switch(t){default:A[t]=v(e);break;case"params":case"isArray":case"interceptor":case"cancellable":}}),!M&&d&&(E=l.defer(),A.timeout=E.promise,p&&(O=c(E.resolve,p))),u&&(A.data=C),x.setUrlParams(A,m({},y(C,e.params||{}),S),e.url);var U=o(A).then(function(n){var o=n.data;if(o){if(t.isArray(o)!==!!e.isArray)throw a("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",r,e.isArray?"array":"object",t.isArray(o)?"array":"object",A.method,A.url);if(e.isArray)P.length=0,g(o,function(e){"object"==typeof e?P.push(new k(e)):P.push(e)});else{var s=P.$promise;i(o,P),P.$promise=s}}return n.resource=P,n},function(e){return(T||h)(e),l.reject(e)});return U["finally"](function(){P.$resolved=!0,!M&&d&&(P.$cancelRequest=t.noop,c.cancel(O),E=O=A.timeout=null)}),U=U.then(function(e){var t=j(e);return(D||h)(t,e.headers),t},I),M?U:(P.$promise=U,P.$resolved=!1,d&&(P.$cancelRequest=E.resolve),P)},k.prototype["$"+r]=function(e,t,n){b(e)&&(n=t,t=e,e={});var i=k[r].call(this,e,this,t,n);return i.$promise||i}}),k.bind=function(t){return f(e,m({},u,t),p)},k}var h=t.noop,g=t.forEach,m=t.extend,v=t.copy,b=t.isFunction;return d.prototype={setUrlParams:function(n,r,i){var o,s,l=this,c=i||l.template,d="",f=l.urlParams={};g(c.split(/\W/),function(e){if("hasOwnProperty"===e)throw a("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(c)&&(f[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(c)})}),c=c.replace(/\\:/g,":"),c=c.replace(e,function(e){return d=e,""}),r=r||{},g(l.urlParams,function(e,n){o=r.hasOwnProperty(n)?r[n]:l.defaults[n],t.isDefined(o)&&null!==o?(s=e.isQueryParamValue?p(o,!0):u(o),c=c.replace(new RegExp(":"+n+"(\\W|$)","g"),function(e,t){return s+t})):c=c.replace(new RegExp("(/?):"+n+"(\\W|$)","g"),function(e,t,n){return"/"==n.charAt(0)?n:t+n})}),l.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/"),c=c.replace(/\/\.(?=\w+($|\?))/,"."),n.url=d+c.replace(/\/\\\./,"/."),g(r,function(e,t){l.urlParams[t]||(n.params=n.params||{},n.params[t]=e)})}},f}]})}(window,window.angular),function(){function e(e,t,n,r,i,a,o){function s(){return y.length}function l(e){if(1!==arguments.length||e)if(e)f(e.toastId);else for(var t=0;t=t&&y[t-1].open.resolve(),i()&&(b.remove(),b=null,x=o.defer())}))}function h(e,t,n,r){return angular.isObject(n)&&(r=n,n=null),v({iconClass:e,message:t,optionsOverride:r,title:n})}function g(){return angular.extend({},a)}function m(t){if(b)return x.promise;b=angular.element("
    "),b.attr("id",t.containerId),b.addClass(t.positionClass),b.css({"pointer-events":"auto"});var n=angular.element(document.querySelector(t.target));if(!n||!n.length)throw"Target for toasts doesn't exist";return e.enter(b,n).then(function(){x.resolve()}),x.promise}function v(n){function a(){return d.autoDismiss&&d.maxOpened&&y.length>d.maxOpened}function s(e,t,n){function r(t){return n[t]?function(){n[t](e)}:void 0}n.allowHtml?(e.scope.allowHtml=!0,e.scope.title=i.trustAsHtml(t.title),e.scope.message=i.trustAsHtml(t.message)):(e.scope.title=t.title,e.scope.message=t.message),e.scope.toastType=e.iconClass,e.scope.toastId=e.toastId,e.scope.extraData=n.extraData,e.scope.options={extendedTimeOut:n.extendedTimeOut,messageClass:n.messageClass,onHidden:n.onHidden,onShown:r("onShown"),onTap:r("onTap"),progressBar:n.progressBar,tapToDismiss:n.tapToDismiss,timeOut:n.timeOut,titleClass:n.titleClass,toastClass:n.toastClass},n.closeButton&&(e.scope.options.closeHtml=n.closeHtml)}function l(){function e(e){for(var t=["containerId","iconClasses","maxOpened","newestOnTop","positionClass","preventDuplicates","preventOpenDuplicates","templates"],n=0,r=t.length;r>n;n++)delete e[t[n]];return e}var t={toastId:$++,isOpened:!1,scope:r.$new(),open:o.defer()};return t.iconClass=n.iconClass,n.optionsOverride&&(angular.extend(d,e(n.optionsOverride)),t.iconClass=n.optionsOverride.iconClass||t.iconClass),s(t,n,d),t.el=c(t.scope),t}function c(e){var n=angular.element("
    "),r=t.get("$compile");return r(n)(e)}function u(){return d.maxOpened&&y.length<=d.maxOpened||!d.maxOpened}function p(){var e=d.preventDuplicates&&n.message===w,t=d.preventOpenDuplicates&&k[n.message];return e||t?!0:(w=n.message,k[n.message]=!0,!1)}var d=g();if(!p()){var h=l();if(y.push(h),a())for(var v=y.slice(0,y.length-d.maxOpened),x=0,C=v.length;C>x;x++)f(v[x].toastId);return u()&&h.open.resolve(),h.open.promise.then(function(){m(d).then(function(){if(h.isOpened=!0,d.newestOnTop)e.enter(h.el,b).then(function(){h.scope.init()});else{var t=b[0].lastChild?angular.element(b[0].lastChild):null;e.enter(h.el,b,t).then(function(){h.scope.init()})}})}),h}}var b,$=0,y=[],w="",k={},x=o.defer(),C={active:s,clear:l,error:c,info:u,remove:f,success:p,warning:d};return C}angular.module("toastr",[]).factory("toastr",e),e.$inject=["$animate","$injector","$document","$rootScope","$sce","toastrConfig","$q"]}(),function(){angular.module("toastr").constant("toastrConfig",{allowHtml:!1,autoDismiss:!1,closeButton:!1,closeHtml:"",containerId:"toast-container",extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},maxOpened:0,messageClass:"toast-message",newestOnTop:!0,onHidden:null,onShown:null,onTap:null,positionClass:"toast-top-right",preventDuplicates:!1,preventOpenDuplicates:!1,progressBar:!1,tapToDismiss:!0,target:"body",templates:{toast:"directives/toast/toast.html",progressbar:"directives/progressbar/progressbar.html"},timeOut:5e3,titleClass:"toast-title",toastClass:"toast"})}(),function(){function e(e){function t(e,t,n,r){function i(){var e=(s-(new Date).getTime())/o*100;t.css("width",e+"%")}var a,o,s;r.progressBar=e,e.start=function(e){a&&clearInterval(a),o=parseFloat(e),s=(new Date).getTime()+o,a=setInterval(i,10)},e.stop=function(){a&&clearInterval(a)},e.$on("$destroy",function(){clearInterval(a)})}return{replace:!0,require:"^toast",templateUrl:function(){return e.templates.progressbar},link:t}}angular.module("toastr").directive("progressBar",e),e.$inject=["toastrConfig"]}(),function(){function e(){this.progressBar=null,this.startProgressBar=function(e){this.progressBar&&this.progressBar.start(e)},this.stopProgressBar=function(){this.progressBar&&this.progressBar.stop()}}angular.module("toastr").controller("ToastController",e)}(),function(){function e(e,t,n,r){function i(n,i,a,o){function s(e){return o.startProgressBar(e),t(function(){o.stopProgressBar(),r.remove(n.toastId)},e,1)}function l(){n.progressBar=!1,o.stopProgressBar()}function c(){return n.options.closeHtml}var u;if(n.toastClass=n.options.toastClass,n.titleClass=n.options.titleClass,n.messageClass=n.options.messageClass,n.progressBar=n.options.progressBar,c()){var p=angular.element(n.options.closeHtml),d=e.get("$compile");p.addClass("toast-close-button"),p.attr("ng-click","close(true, $event)"),d(p)(n),i.prepend(p)}n.init=function(){n.options.timeOut&&(u=s(n.options.timeOut)),n.options.onShown&&n.options.onShown()},i.on("mouseenter",function(){l(),u&&t.cancel(u)}),n.tapToast=function(){angular.isFunction(n.options.onTap)&&n.options.onTap(),n.options.tapToDismiss&&n.close(!0)},n.close=function(e,t){t&&angular.isFunction(t.stopPropagation)&&t.stopPropagation(),r.remove(n.toastId,e)},i.on("mouseleave",function(){0===n.options.timeOut&&0===n.options.extendedTimeOut||(n.$apply(function(){n.progressBar=n.options.progressBar}),u=s(n.options.extendedTimeOut))})}return{replace:!0,templateUrl:function(){return n.templates.toast},controller:"ToastController",link:i}}angular.module("toastr").directive("toast",e),e.$inject=["$injector","$interval","toastrConfig","toastr"]}(),function(){function e(e,t,n,r,i,a,o){function s(){return y.length}function l(e){if(1!==arguments.length||e)if(e)f(e.toastId);else for(var t=0;t=t&&y[t-1].open.resolve(),i()&&(b.remove(),b=null,x=o.defer())}))}function h(e,t,n,r){return angular.isObject(n)&&(r=n, n=null),v({iconClass:e,message:t,optionsOverride:r,title:n})}function g(){return angular.extend({},a)}function m(t){if(b)return x.promise;b=angular.element("
    "),b.attr("id",t.containerId),b.addClass(t.positionClass),b.css({"pointer-events":"auto"});var n=angular.element(document.querySelector(t.target));if(!n||!n.length)throw"Target for toasts doesn't exist";return e.enter(b,n).then(function(){x.resolve()}),x.promise}function v(n){function a(){return d.autoDismiss&&d.maxOpened&&y.length>d.maxOpened}function s(e,t,n){function r(t){return n[t]?function(){n[t](e)}:void 0}n.allowHtml?(e.scope.allowHtml=!0,e.scope.title=i.trustAsHtml(t.title),e.scope.message=i.trustAsHtml(t.message)):(e.scope.title=t.title,e.scope.message=t.message),e.scope.toastType=e.iconClass,e.scope.toastId=e.toastId,e.scope.extraData=n.extraData,e.scope.options={extendedTimeOut:n.extendedTimeOut,messageClass:n.messageClass,onHidden:n.onHidden,onShown:r("onShown"),onTap:r("onTap"),progressBar:n.progressBar,tapToDismiss:n.tapToDismiss,timeOut:n.timeOut,titleClass:n.titleClass,toastClass:n.toastClass},n.closeButton&&(e.scope.options.closeHtml=n.closeHtml)}function l(){function e(e){for(var t=["containerId","iconClasses","maxOpened","newestOnTop","positionClass","preventDuplicates","preventOpenDuplicates","templates"],n=0,r=t.length;r>n;n++)delete e[t[n]];return e}var t={toastId:$++,isOpened:!1,scope:r.$new(),open:o.defer()};return t.iconClass=n.iconClass,n.optionsOverride&&(angular.extend(d,e(n.optionsOverride)),t.iconClass=n.optionsOverride.iconClass||t.iconClass),s(t,n,d),t.el=c(t.scope),t}function c(e){var n=angular.element("
    "),r=t.get("$compile");return r(n)(e)}function u(){return d.maxOpened&&y.length<=d.maxOpened||!d.maxOpened}function p(){var e=d.preventDuplicates&&n.message===w,t=d.preventOpenDuplicates&&k[n.message];return e||t?!0:(w=n.message,k[n.message]=!0,!1)}var d=g();if(!p()){var h=l();if(y.push(h),a())for(var v=y.slice(0,y.length-d.maxOpened),x=0,C=v.length;C>x;x++)f(v[x].toastId);return u()&&h.open.resolve(),h.open.promise.then(function(){m(d).then(function(){if(h.isOpened=!0,d.newestOnTop)e.enter(h.el,b).then(function(){h.scope.init()});else{var t=b[0].lastChild?angular.element(b[0].lastChild):null;e.enter(h.el,b,t).then(function(){h.scope.init()})}})}),h}}var b,$=0,y=[],w="",k={},x=o.defer(),C={active:s,clear:l,error:c,info:u,remove:f,success:p,warning:d};return C}angular.module("toastr",[]).factory("toastr",e),e.$inject=["$animate","$injector","$document","$rootScope","$sce","toastrConfig","$q"]}(),function(){angular.module("toastr").constant("toastrConfig",{allowHtml:!1,autoDismiss:!1,closeButton:!1,closeHtml:"",containerId:"toast-container",extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},maxOpened:0,messageClass:"toast-message",newestOnTop:!0,onHidden:null,onShown:null,onTap:null,positionClass:"toast-top-right",preventDuplicates:!1,preventOpenDuplicates:!1,progressBar:!1,tapToDismiss:!0,target:"body",templates:{toast:"directives/toast/toast.html",progressbar:"directives/progressbar/progressbar.html"},timeOut:5e3,titleClass:"toast-title",toastClass:"toast"})}(),function(){function e(e){function t(e,t,n,r){function i(){var e=(s-(new Date).getTime())/o*100;t.css("width",e+"%")}var a,o,s;r.progressBar=e,e.start=function(e){a&&clearInterval(a),o=parseFloat(e),s=(new Date).getTime()+o,a=setInterval(i,10)},e.stop=function(){a&&clearInterval(a)},e.$on("$destroy",function(){clearInterval(a)})}return{replace:!0,require:"^toast",templateUrl:function(){return e.templates.progressbar},link:t}}angular.module("toastr").directive("progressBar",e),e.$inject=["toastrConfig"]}(),function(){function e(){this.progressBar=null,this.startProgressBar=function(e){this.progressBar&&this.progressBar.start(e)},this.stopProgressBar=function(){this.progressBar&&this.progressBar.stop()}}angular.module("toastr").controller("ToastController",e)}(),function(){function e(e,t,n,r){function i(n,i,a,o){function s(e){return o.startProgressBar(e),t(function(){o.stopProgressBar(),r.remove(n.toastId)},e,1)}function l(){n.progressBar=!1,o.stopProgressBar()}function c(){return n.options.closeHtml}var u;if(n.toastClass=n.options.toastClass,n.titleClass=n.options.titleClass,n.messageClass=n.options.messageClass,n.progressBar=n.options.progressBar,c()){var p=angular.element(n.options.closeHtml),d=e.get("$compile");p.addClass("toast-close-button"),p.attr("ng-click","close(true, $event)"),d(p)(n),i.prepend(p)}n.init=function(){n.options.timeOut&&(u=s(n.options.timeOut)),n.options.onShown&&n.options.onShown()},i.on("mouseenter",function(){l(),u&&t.cancel(u)}),n.tapToast=function(){angular.isFunction(n.options.onTap)&&n.options.onTap(),n.options.tapToDismiss&&n.close(!0)},n.close=function(e,t){t&&angular.isFunction(t.stopPropagation)&&t.stopPropagation(),r.remove(n.toastId,e)},i.on("mouseleave",function(){0===n.options.timeOut&&0===n.options.extendedTimeOut||(n.$apply(function(){n.progressBar=n.options.progressBar}),u=s(n.options.extendedTimeOut))})}return{replace:!0,templateUrl:function(){return n.templates.toast},controller:"ToastController",link:i}}angular.module("toastr").directive("toast",e),e.$inject=["$injector","$interval","toastrConfig","toastr"]}(),angular.module("toastr").run(["$templateCache",function(e){e.put("directives/progressbar/progressbar.html",'
    \n'),e.put("directives/toast/toast.html",'
    \n
    \n
    {{title}}
    \n
    {{message}}
    \n
    \n
    \n
    \n \n
    \n')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){function r(e,t){return N(new(N(function(){},{prototype:e})),t)}function i(e){return H(arguments,function(t){t!==e&&H(t,function(t,n){e.hasOwnProperty(n)||(e[n]=t)})}),e}function a(e,t){var n=[];for(var r in e.path){if(e.path[r]!==t.path[r])break;n.push(e.path[r])}return n}function o(e){if(Object.keys)return Object.keys(e);var t=[];return H(e,function(e,n){t.push(n)}),t}function s(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.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 e&&e[r]===t)return r;return-1}function l(e,t,n,r){var i,l=a(n,r),c={},u=[];for(var p in l)if(l[p]&&l[p].params&&(i=o(l[p].params),i.length))for(var d in i)s(u,i[d])>=0||(u.push(i[d]),c[i[d]]=e[i[d]]);return N({},c,t)}function c(e,t,n){if(!n){n=[];for(var r in e)n.push(r)}for(var i=0;i "));if(b[n]=r,R(e))m.push(n,[function(){return t.get(e)}],c);else{var i=t.annotate(e);H(i,function(e){e!==n&&l.hasOwnProperty(e)&&f(l[e],e)}),m.push(n,e,i)}v.pop(),b[n]=a}}function h(e){return F(e)&&e.then&&e.$$promises}if(!F(l))throw new Error("'invocables' must be an object");var g=o(l||{}),m=[],v=[],b={};return H(l,f),l=v=b=null,function(r,a,o){function s(){--y||(w||i($,a.$$values),v.$$values=$,v.$$promises=v.$$promises||!0,delete v.$$inheritedValues,f.resolve($))}function l(e){v.$$failure=e,f.reject(e)}function c(n,i,a){function c(e){p.reject(e),l(e)}function u(){if(!q(v.$$failure))try{p.resolve(t.invoke(i,o,$)),p.promise.then(function(e){$[n]=e,s()},c)}catch(e){c(e)}}var p=e.defer(),d=0;H(a,function(e){b.hasOwnProperty(e)&&!r.hasOwnProperty(e)&&(d++,b[e].then(function(t){$[e]=t,--d||u()},c))}),d||u(),b[n]=p.promise}if(h(r)&&o===n&&(o=a,a=r,r=null),r){if(!F(r))throw new Error("'locals' must be an object")}else r=u;if(a){if(!h(a))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else a=p;var f=e.defer(),v=f.promise,b=v.$$promises={},$=N({},r),y=1+m.length/3,w=!1;if(q(a.$$failure))return l(a.$$failure),v;a.$$inheritedValues&&i($,d(a.$$inheritedValues,g)),N(b,a.$$promises),a.$$values?(w=i($,d(a.$$values,g)),v.$$inheritedValues=d(a.$$values,g),s()):(a.$$inheritedValues&&(v.$$inheritedValues=d(a.$$inheritedValues,g)),a.then(s,l));for(var k=0,x=m.length;x>k;k+=3)r.hasOwnProperty(m[k])?s():c(m[k],m[k+1],m[k+2]);return v}},this.resolve=function(e,t,n,r){return this.study(e)(t,n,r)}}function m(e,t,n){this.fromConfig=function(e,t,n){return q(e.template)?this.fromString(e.template,t):q(e.templateUrl)?this.fromUrl(e.templateUrl,t):q(e.templateProvider)?this.fromProvider(e.templateProvider,t,n):null},this.fromString=function(e,t){return L(e)?e(t):e},this.fromUrl=function(n,r){return L(n)&&(n=n(r)),null==n?null:e.get(n,{cache:t,headers:{Accept:"text/html"}}).then(function(e){return e.data})},this.fromProvider=function(e,t,r){return n.invoke(e,null,r||{params:t})}}function v(e,t,i){function a(t,n,r,i){if(m.push(t),h[t])return h[t];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+e+"'");if(g[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+e+"'");return g[t]=new z.Param(t,n,r,i),g[t]}function o(e,t,n,r){var i=["",""],a=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return a;switch(n){case!1:i=["(",")"+(r?"?":"")];break;case!0:a=a.replace(/\/$/,""),i=["(?:/(",")|/)?"];break;default:i=["("+n+"|",")?"]}return a+i[0]+t+i[1]}function s(i,a){var o,s,l,c,u;return o=i[2]||i[3],u=t.params[o],l=e.substring(d,i.index),s=a?i[4]:i[4]||("*"==i[1]?".*":null),s&&(c=z.type(s)||r(z.type("string"),{pattern:new RegExp(s,t.caseInsensitive?"i":n)})),{id:o,regexp:s,segment:l,type:c,cfg:u}}t=N({params:{}},F(t)?t:{});var l,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,u=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,p="^",d=0,f=this.segments=[],h=i?i.params:{},g=this.params=i?i.params.$$new():new z.ParamSet,m=[];this.source=e;for(var v,b,$;(l=c.exec(e))&&(v=s(l,!1),!(v.segment.indexOf("?")>=0));)b=a(v.id,v.type,v.cfg,"path"),p+=o(v.segment,b.type.pattern.source,b.squash,b.isOptional),f.push(v.segment),d=c.lastIndex;$=e.substring(d);var y=$.indexOf("?");if(y>=0){var w=this.sourceSearch=$.substring(y);if($=$.substring(0,y),this.sourcePath=e.substring(0,d+y),w.length>0)for(d=0;l=u.exec(w);)v=s(l,!0),b=a(v.id,v.type,v.cfg,"search"),d=c.lastIndex}else this.sourcePath=e,this.sourceSearch="";p+=o($)+(t.strict===!1?"/?":"")+"$",f.push($),this.regexp=new RegExp(p,t.caseInsensitive?"i":n),this.prefix=f[0],this.$$paramNames=m}function b(e){N(this,e)}function $(){function e(e){return null!=e?e.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):e}function i(e){return null!=e?e.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):e}function a(){return{strict:g,caseInsensitive:d}}function l(e){return L(e)||B(e)&&L(e[e.length-1])}function c(){for(;k.length;){var e=k.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(y[e.name],p.invoke(e.def))}}function u(e){N(this,e||{})}z=this;var p,d=!1,g=!0,m=!1,y={},w=!0,k=[],x={string:{encode:e,decode:i,is:function(e){return null==e||!q(e)||"string"==typeof e},pattern:/[^\/]*/},"int":{encode:e,decode:function(e){return parseInt(e,10)},is:function(e){return q(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return e===!0||e===!1},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.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:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^\/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};$.$$getDefaultValue=function(e){if(!l(e.value))return e.value;if(!p)throw new Error("Injectable functions cannot be called at configuration time");return p.invoke(e.value)},this.caseInsensitive=function(e){return q(e)&&(d=e),d},this.strictMode=function(e){return q(e)&&(g=e),g},this.defaultSquashPolicy=function(e){if(!q(e))return m;if(e!==!0&&e!==!1&&!R(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return m=e,e},this.compile=function(e,t){return new v(e,N(a(),t))},this.isMatcher=function(e){if(!F(e))return!1;var t=!0;return H(v.prototype,function(n,r){L(n)&&(t=t&&q(e[r])&&L(e[r]))}),t},this.type=function(e,t,n){if(!q(t))return y[e];if(y.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return y[e]=new b(N({name:e},t)),n&&(k.push({name:e,def:n}),w||c()),this},H(x,function(e,t){y[t]=new b(N({name:t},e))}),y=r(y,{}),this.$get=["$injector",function(e){return p=e,w=!1,c(),H(x,function(e,t){y[t]||(y[t]=new b(e))}),this}],this.Param=function(e,r,i,a){function c(e){var t=F(e)?o(e):[],n=-1===s(t,"value")&&-1===s(t,"type")&&-1===s(t,"squash")&&-1===s(t,"array");return n&&(e={value:e}),e.$$fn=l(e.value)?e.value:function(){return e.value},e}function u(n,r,i){if(n.type&&r)throw new Error("Param '"+e+"' has two type configurations.");return r?r:n.type?t.isString(n.type)?y[n.type]:n.type instanceof b?n.type:new b(n.type):"config"===i?y.any:y.string}function d(){var t={array:"search"===a?"auto":!1},n=e.match(/\[\]$/)?{array:!0}:{};return N(t,n,i).array}function g(e,t){var n=e.squash;if(!t||n===!1)return!1;if(!q(n)||null==n)return m;if(n===!0||R(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}function v(e,t,r,i){var a,o,l=[{from:"",to:r||t?n:""},{from:null,to:r||t?n:""}];return a=B(e.replace)?e.replace:[],R(i)&&a.push({from:i,to:n}),o=h(a,function(e){return e.from}),f(l,function(e){return-1===s(o,e.from)}).concat(a)}function $(){if(!p)throw new Error("Injectable functions cannot be called at configuration time");var e=p.invoke(i.$$fn);if(null!==e&&e!==n&&!x.type.is(e))throw new Error("Default value ("+e+") for parameter '"+x.id+"' is not an instance of Type ("+x.type.name+")");return e}function w(e){function t(e){return function(t){return t.from===e}}function n(e){var n=h(f(x.replace,t(e)),function(e){return e.to});return n.length?n[0]:e}return e=n(e),q(e)?x.type.$normalize(e):$()}function k(){return"{Param:"+e+" "+r+" squash: '"+T+"' optional: "+D+"}"}var x=this;i=c(i),r=u(i,r,a);var C=d();r=C?r.$asArray(C,"search"===a):r,"string"!==r.name||C||"path"!==a||i.value!==n||(i.value="");var D=i.value!==n,T=g(i,D),S=v(i,C,D,T);N(this,{id:e,type:r,location:a,array:C,squash:T,replace:S,isOptional:D,value:w,dynamic:n,config:i,toString:k})},u.prototype={$$new:function(){return r(this,N(new u,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,r=o(u.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),H(t,function(t){H(o(t),function(t){-1===s(e,t)&&-1===s(r,t)&&e.push(t)})}),e},$$values:function(e){var t={},n=this;return H(n.$$keys(),function(r){t[r]=n[r].value(e&&e[r])}),t},$$equals:function(e,t){var n=!0,r=this;return H(r.$$keys(),function(i){var a=e&&e[i],o=t&&t[i];r[i].type.equals(a,o)||(n=!1)}),n},$$validates:function(e){var r,i,a,o,s,l=this.$$keys();for(r=0;ri;i++)if(t(c[i]))return;u&&t(u)}}function h(){return l=l||i.$on("$locationChangeSuccess",f)}var g,m=o.baseHref(),v=r.url();return p||h(),{sync:function(){f()},listen:function(){return h()},update:function(e){return e?void(v=r.url()):void(r.url()!==v&&(r.url(v),r.replace()))},push:function(e,t,i){var a=e.format(t||{});null!==a&&t&&t["#"]&&(a+="#"+t["#"]),r.url(a),g=i&&i.$$avoidResync?r.url():n,i&&i.replace&&r.replace()},href:function(n,i,a){if(!n.validates(i))return null;var o=e.html5Mode();t.isObject(o)&&(o=o.enabled),o=o&&s.history;var l=n.format(i);if(a=a||{},o||null===l||(l="#"+e.hashPrefix()+l),null!==l&&i&&i["#"]&&(l+="#"+i["#"]),l=d(l,o,a.absolute),!a.absolute||!l)return l;var c=!o&&l?"/":"",u=r.port();return u=80===u||443===u?"":":"+u,[r.protocol(),"://",r.host(),u,c,l].join("")}}}var l,c=[],u=null,p=!1;this.rule=function(e){if(!L(e))throw new Error("'rule' must be a function");return c.push(e),this},this.otherwise=function(e){if(R(e)){var t=e;e=function(){return t}}else if(!L(e))throw new Error("'rule' must be a function");return u=e,this},this.when=function(e,t){var n,s=R(t);if(R(e)&&(e=r.compile(e)),!s&&!L(t)&&!B(t))throw new Error("invalid 'handler' in when()");var l={matcher:function(e,t){return s&&(n=r.compile(t),t=["$match",function(e){return n.format(e)}]),N(function(n,r){return o(n,t,e.exec(r.path(),r.search()))},{prefix:R(e.prefix)?e.prefix:""})},regex:function(e,t){if(e.global||e.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=t,t=["$match",function(e){return a(n,e)}]),N(function(n,r){return o(n,t,e.exec(r.path()))},{prefix:i(e)})}},c={matcher:r.isMatcher(e),regex:e instanceof RegExp};for(var u in c)if(c[u])return this.rule(l[u](e,t));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(e){e===n&&(e=!0),p=e},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function w(e,i){function a(e){return 0===e.indexOf(".")||0===e.indexOf("^")}function d(e,t){if(!e)return n;var r=R(e),i=r?e:e.name,o=a(i);if(o){if(!t)throw new Error("No reference point given for path '"+i+"'");t=d(t);for(var s=i.split("."),l=0,c=s.length,u=t;c>l;l++)if(""!==s[l]||0!==l){if("^"!==s[l])break;if(!u.parent)throw new Error("Path '"+i+"' not valid for state '"+t.name+"'");u=u.parent}else u=t;s=s.slice(l).join("."),i=u.name+(u.name&&s?".":"")+s}var p=D[i];return!p||!r&&(r||p!==e&&p.self!==e)?n:p}function f(e,t){T[e]||(T[e]=[]),T[e].push(t)}function g(e){for(var t=T[e]||[];t.length;)m(t.shift())}function m(t){t=r(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}});var n=t.name;if(!R(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(D.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):R(t.parent)?t.parent:F(t.parent)&&R(t.parent.name)?t.parent.name:"";if(i&&!D[i])return f(i,t.self);for(var a in E)L(E[a])&&(t[a]=E[a](t,E.$delegates[a]));return D[n]=t,!t[S]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){C.$current.navigable==t&&c(e,n)||C.transitionTo(t,e,{inherit:!0,location:!1})}]),g(n),t}function v(e){return e.indexOf("*")>-1}function b(e){for(var t=e.split("."),n=C.$current.name.split("."),r=0,i=t.length;i>r;r++)"*"===t[r]&&(n[r]="*");return"**"===t[0]&&(n=n.slice(s(n,t[1])),n.unshift("**")),"**"===t[t.length-1]&&(n.splice(s(n,t[t.length-2])+1,Number.MAX_VALUE),n.push("**")),t.length!=n.length?!1:n.join("")===t.join("")}function $(e,t){return R(e)&&!q(t)?E[e]:L(t)&&R(e)?(E[e]&&!E.$delegates[e]&&(E.$delegates[e]=E[e]),E[e]=t,this):this}function y(e,t){return F(e)?t=e:t.name=e,m(t),this}function w(e,i,a,s,p,f,g,m,$){function y(t,n,r,a){var o=e.$broadcast("$stateNotFound",t,n,r);if(o.defaultPrevented)return g.update(),O;if(!o.retry)return null;if(a.$retry)return g.update(),M;var s=C.transition=i.when(o.retry);return s.then(function(){return s!==C.transition?T:(t.options.$retry=!0,C.transitionTo(t.to,t.toParams,t.options))},function(){return O}),g.update(),s}function w(e,n,r,o,l,c){function d(){var n=[];return H(e.views,function(r,i){var o=r.resolve&&r.resolve!==e.resolve?r.resolve:{};o.$template=[function(){return a.load(i,{view:r,locals:l.globals,params:f,notify:c.notify})||""}],n.push(p.resolve(o,l.globals,l.resolve,e).then(function(n){if(L(r.controllerProvider)||B(r.controllerProvider)){var a=t.extend({},o,l.globals);n.$$controller=s.invoke(r.controllerProvider,null,a)}else n.$$controller=r.controller;n.$$state=e,n.$$controllerAs=r.controllerAs,n.$$resolveAs=r.resolveAs,l[i]=n}))}),i.all(n).then(function(){return l.globals})}var f=r?n:u(e.params.$$keys(),n),h={$stateParams:f};l.resolve=p.resolve(e.resolve,h,l.resolve,e);var g=[l.resolve.then(function(e){l.globals=e})];return o&&g.push(o),i.all(g).then(d).then(function(e){return l})}var T=i.reject(new Error("transition superseded")),E=i.reject(new Error("transition prevented")),O=i.reject(new Error("transition aborted")),M=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(e){return C.transitionTo(C.current,f,{reload:e||!0,inherit:!1,notify:!0})},C.go=function(e,t,n){return C.transitionTo(e,t,N({inherit:!0,relative:C.$current},n))},C.transitionTo=function(t,n,a){n=n||{},a=N({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},a||{});var o,c=C.$current,p=C.params,h=c.path,m=d(t,a.relative),v=n["#"];if(!q(m)){var b={to:t,toParams:n,options:a},$=y(b,c.self,p,a);if($)return $;if(t=b.to,n=b.toParams,a=b.options,m=d(t,a.relative),!q(m)){if(!a.relative)throw new Error("No such state '"+t+"'");throw new Error("Could not resolve '"+t+"' from state '"+a.relative+"'")}}if(m[S])throw new Error("Cannot transition to abstract state '"+t+"'");if(a.inherit&&(n=l(f,n||{},C.$current,m)),!m.params.$$validates(n))return M;n=m.params.$$values(n),t=m;var D=t.path,O=0,P=D[O],A=x.locals,j=[];if(a.reload){if(R(a.reload)||F(a.reload)){if(F(a.reload)&&!a.reload.name)throw new Error("Invalid reload state object");var I=a.reload===!0?h[0]:d(a.reload);if(a.reload&&!I)throw new Error("No such reload state '"+(R(a.reload)?a.reload:a.reload.name)+"'");for(;P&&P===h[O]&&P!==I;)A=j[O]=P.locals,O++,P=D[O]}}else for(;P&&P===h[O]&&P.ownParams.$$equals(n,p);)A=j[O]=P.locals,O++,P=D[O];if(k(t,n,c,p,A,a))return v&&(n["#"]=v),C.params=n,W(C.params,f),W(u(t.params.$$keys(),f),t.locals.globals.$stateParams),a.location&&t.navigable&&t.navigable.url&&(g.push(t.navigable.url,n,{$$avoidResync:!0,replace:"replace"===a.location}),g.update(!0)),C.transition=null,i.when(C.current);if(n=u(t.params.$$keys(),n||{}),v&&(n["#"]=v),a.notify&&e.$broadcast("$stateChangeStart",t.self,n,c.self,p,a).defaultPrevented)return e.$broadcast("$stateChangeCancel",t.self,n,c.self,p),null==C.transition&&g.update(),E;for(var U=i.when(A),_=O;_=O;r--)o=h[r],o.self.onExit&&s.invoke(o.self.onExit,o.self,o.locals.globals),o.locals=null;for(r=O;r2?u.enter(e,null,n).then(r):u.enter(e,null,n,r)},leave:function(e,n){t.version.minor>2?u.leave(e).then(n):u.leave(e,n)}};if(c){var i=c&&c(n,e);return{enter:function(e,t,n){i.enter(e,null,t),n()},leave:function(e,t){i.leave(e),t()}}}return r()}var l=o(),c=l("$animator"),u=l("$animate"),p={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,l){return function(n,o,c){function u(){if(d&&(d.remove(),d=null),h&&(h.$destroy(),h=null),f){var e=f.data("$uiViewAnim");b.leave(f,function(){e.$$animLeave.resolve(),d=null}),d=f,f=null}}function p(s){var p,d=T(n,c,o,i),$=d&&e.$current&&e.$current.locals[d];if(s||$!==g){p=n.$new(),g=e.$current.locals[d],p.$emit("$viewContentLoading",d);var y=l(p,function(e){var i=a.defer(),s=a.defer(),l={$animEnter:i.promise,$animLeave:s.promise,$$animLeave:s};e.data("$uiViewAnim",l),b.enter(e,o,function(){i.resolve(),h&&h.$emit("$viewContentAnimationEnded"),(t.isDefined(v)&&!v||n.$eval(v))&&r(e)}),u()});f=y,h=p,h.$emit("$viewContentLoaded",d),h.$eval(m)}}var d,f,h,g,m=c.onload||"",v=c.autoscroll,b=s(c,n);o.inheritedData("$uiView");n.$on("$stateChangeSuccess",function(){p(!1)}),p(!0)}}};return p}function D(e,n,r,i){return{restrict:"ECA",priority:-400,compile:function(a){var o=a.html();return function(a,s,l){var c=r.$current,u=T(a,l,s,i),p=c&&c.locals[u];if(p){s.data("$uiView",{name:u,state:p.$$state}),s.html(p.$template?p.$template:o);var d=t.extend({},p);a[p.$$resolveAs]=d;var f=e(s.contents());if(p.$$controller){p.$scope=a,p.$element=s;var h=n(p.$$controller,p);p.$$controllerAs&&(a[p.$$controllerAs]=h,a[p.$$controllerAs][p.$$resolveAs]=d),L(h.$onInit)&&h.$onInit(),s.data("$ngControllerController",h),s.children().data("$ngControllerController",h)}f(a)}}}}}function T(e,t,n,r){var i=r(t.uiView||t.name||"")(e),a=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(a?a.state.name:"")}function S(e,t){var n,r=e.match(/^\s*({[^}]*})\s*$/);if(r&&(e=t+"("+r[1]+")"),n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!n||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function E(e){var t=e.parent().inheritedData("$uiView");return t&&t.state&&t.state.name?t.state:void 0}function O(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function M(e,t,n,r,i){return function(a){var o=a.which||a.button,s=i();if(!(o>1||a.ctrlKey||a.metaKey||a.shiftKey||e.attr("target"))){var l=n(function(){t.go(s.state,s.params,s.options)});a.preventDefault();var c=r.isAnchor&&!s.href?1:0;a.preventDefault=function(){c--<=0&&n.cancel(l)}}}}function P(e,t){return{relative:E(e)||t.$current,inherit:!0}}function A(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,a,o){var s,l=S(a.uiSref,e.current.name),c={state:l.state,href:null,params:null},u=O(i),p=o[1]||o[0],d=null;c.options=N(P(i,e),a.uiSrefOpts?r.$eval(a.uiSrefOpts):{});var f=function(n){n&&(c.params=t.copy(n)),c.href=e.href(l.state,c.params,c.options),d&&d(),p&&(d=p.$$addStateInfo(l.state,c.params)),null!==c.href&&a.$set(u.attr,c.href)};l.paramExpr&&(r.$watch(l.paramExpr,function(e){e!==c.params&&f(e)},!0),c.params=t.copy(r.$eval(l.paramExpr))),f(),u.clickable&&(s=M(i,e,n,u,function(){return c}),i.bind("click",s),r.$on("$destroy",function(){i.unbind("click",s)}))}}}function j(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,r,i,a){function o(t){d.state=t[0],d.params=t[1], d.options=t[2],d.href=e.href(d.state,d.params,d.options),f&&f(),c&&(f=c.$$addStateInfo(d.state,d.params)),d.href&&i.$set(l.attr,d.href)}var s,l=O(r),c=a[1]||a[0],u=[i.uiState,i.uiStateParams||null,i.uiStateOpts||null],p="["+u.map(function(e){return e||"null"}).join(", ")+"]",d={state:null,params:null,options:null,href:null},f=null;n.$watch(p,o,!0),o(n.$eval(p)),l.clickable&&(s=M(r,e,t,l,function(){return d}),r.bind("click",s),n.$on("$destroy",function(){r.unbind("click",s)}))}}}function I(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,r,i,a){function o(t,n,i){var a=e.get(t,E(r)),o=s(t,n),l={state:a||{name:t},params:n,hash:o};return g.push(l),m[o]=i,function(){var e=g.indexOf(l);-1!==e&&g.splice(e,1)}}function s(e,n){if(!R(e))throw new Error("state should be a string");return F(n)?e+V(n):(n=t.$eval(n),F(n)?e+V(n):e)}function l(){for(var e=0;e0)){var n=o(e,t,h);return l(),n}},t.$on("$stateChangeSuccess",l),l()}]}}function U(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function _(e){var t=function(t,n,r){return e.includes(t,n,r)};return t.$stateful=!0,t}var q=t.isDefined,L=t.isFunction,R=t.isString,F=t.isObject,B=t.isArray,H=t.forEach,N=t.extend,W=t.copy,V=t.toJson;t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),g.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",g),m.$inject=["$http","$templateCache","$injector"],t.module("ui.router.util").service("$templateFactory",m);var z;v.prototype.concat=function(e,t){var n={caseInsensitive:z.caseInsensitive(),strict:z.strictMode(),squash:z.defaultSquashPolicy()};return new v(this.sourcePath+e+this.sourceSearch,N(n,t),this)},v.prototype.toString=function(){return this.source},v.prototype.exec=function(e,t){function n(e){function t(e){return e.split("").reverse().join("")}function n(e){return e.replace(/\\-/g,"-")}var r=t(e).split(/-(?!\\)/),i=h(r,t);return h(i,n).reverse()}var r=this.regexp.exec(e);if(!r)return null;t=t||{};var i,a,o,s=this.parameters(),l=s.length,c=this.segments.length-1,u={};if(c!==r.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var p,d;for(i=0;c>i;i++){for(o=s[i],p=this.params[o],d=r[i+1],a=0;ai;i++){for(o=s[i],u[o]=this.params[o].value(t[o]),p=this.params[o],d=t[o],a=0;aa;a++){var u=s>a,p=r[a],d=i[p],f=d.value(e[p]),g=d.isOptional&&d.type.equals(d.value(),f),m=g?d.squash:!1,v=d.type.encode(f);if(u){var b=n[a+1],$=a+1===s;if(m===!1)null!=v&&(c+=B(v)?h(v,t).join("-"):encodeURIComponent(v)),c+=b;else if(m===!0){var y=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=b.match(y)[1]}else R(m)&&(c+=m+b);$&&d.squash===!0&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==v||g&&m!==!1)continue;if(B(v)||(v=[v]),0===v.length)continue;v=h(v,encodeURIComponent).join("&"+p+"="),c+=(o?"&":"?")+(p+"="+v),o=!0}}return c},b.prototype.is=function(e,t){return!0},b.prototype.encode=function(e,t){return e},b.prototype.decode=function(e,t){return e},b.prototype.equals=function(e,t){return e==t},b.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},b.prototype.pattern=/.*/,b.prototype.toString=function(){return"{Type:"+this.name+"}"},b.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},b.prototype.$asArray=function(e,t){function r(e,t){function r(e,t){return function(){return e[t].apply(e,arguments)}}function i(e){return B(e)?e:q(e)?[e]:[]}function a(e){switch(e.length){case 0:return n;case 1:return"auto"===t?e[0]:e;default:return e}}function o(e){return!e}function s(e,t){return function(n){if(B(n)&&0===n.length)return n;n=i(n);var r=h(n,e);return t===!0?0===f(r,o).length:a(r)}}function l(e){return function(t,n){var r=i(t),a=i(n);if(r.length!==a.length)return!1;for(var o=0;o=r;r++)"undefined"!=typeof t["dimension"+r]&&(n["dimension"+r]=t["dimension"+r]),"undefined"!=typeof t["metric"+r]&&(n["metric"+r]=t["metric"+r]);return n}}function a(n,a){if(!r.settings.ga.disableEventTracking){if(a&&a.category||(a=a||{},a.category="Event"),a.value){var o=parseInt(a.value,10);a.value=isNaN(o)?0:o}if(a.hitCallback&&"function"!=typeof a.hitCallback&&(a.hitCallback=null),a.hasOwnProperty("nonInteraction")||(a.nonInteraction=a.noninteraction),e.ga){var s={eventCategory:a.category,eventAction:n,eventLabel:a.label,eventValue:a.value,nonInteraction:a.nonInteraction,page:a.page||e.location.hash.substring(1)||e.location.pathname,userId:r.settings.ga.userId,hitCallback:a.hitCallback},l=i(a);t.extend(s,l),r.settings.ga.transport&&t.extend(s,r.settings.ga.transport),ga("send","event",s),t.forEach(r.settings.ga.additionalAccountNames,function(e){ga(e+".send","event",s)})}else e._gaq&&_gaq.push(["_trackEvent",a.category,n,a.label,a.value,a.nonInteraction])}}r.settings.pageTracking.trackRelativePath=!0,r.settings.ga={additionalAccountNames:n,disableEventTracking:null,disablePageTracking:null,userId:null},r.registerPageTrack(function(n){r.settings.ga.disablePageTracking||(e._gaq&&(_gaq.push(["_trackPageview",n]),t.forEach(r.settings.ga.additionalAccountNames,function(e){_gaq.push([e+"._trackPageview",n])})),e.ga&&(r.settings.ga.userId&&ga("set","userId",r.settings.ga.userId),ga("send","pageview",n),t.forEach(r.settings.ga.additionalAccountNames,function(e){ga(e+".send","pageview",n)})))}),r.registerEventTrack(a),r.registerExceptionTrack(function(e,t){a(e.toString(),{category:"Exceptions",label:e.stack,nonInteraction:!0})}),r.registerSetUsername(function(e){r.settings.ga.userId=e}),r.registerSetUserProperties(function(e){if(e){var t=i(e);ga("set",t)}}),r.registerUserTimings(function(t){return t&&t.timingCategory&&t.timingVar&&"undefined"!=typeof t.timingValue?void(e.ga&&ga("send","timing",t)):void console.log("Properties timingCategory, timingVar, and timingValue are required to be set.")})}])}(window,window.angular),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e;return function t(e,n,r){function i(o,s){if(!n[o]){if(!e[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[o]={exports:{}};e[o][0].call(u.exports,function(t){var n=e[o][1][t];return i(n?n:t)},u,u.exports,t,e,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;or;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],i=[];if(r&&t)for(var a=0,o=r.length;o>a;a++)r[a].fn!==t&&r[a].fn._!==t&&i.push(r[a]);return i.length?n[e]=i:delete n[e],this}},t.exports=r},{}],8:[function(t,n,r){!function(i,a){if("function"==typeof e&&e.amd)e(["module","select"],a);else if("undefined"!=typeof r)a(n,t("select"));else{var o={exports:{}};a(o,i.select),i.clipboardAction=o.exports}}(this,function(e,t){function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=n(t),a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;nt;t++)(e=h.key(t))&&n===e.slice(0,f)&&(g[e.slice(f)]=i(h.getItem(e)))},$apply:function(){var t;if(d=null,!e.equals(g,p)){t=e.copy(p),e.forEach(g,function(i,a){e.isDefined(i)&&"$"!==a[0]&&(h.setItem(n+a,r(i)),delete t[a])});for(var i in t)h.removeItem(n+i);p=e.copy(g)}}};return g.$sync(),p=e.copy(g),a.$watch(function(){d||(d=l(g.$apply,100,!1))}),o.addEventListener&&o.addEventListener("storage",function(t){if(t.key){var r=c[0];r.hasFocus&&r.hasFocus()||n!==t.key.slice(0,f)||(t.newValue?g[t.key.slice(f)]=i(t.newValue):delete g[t.key.slice(f)],p=e.copy(g),a.$apply())}}),o.addEventListener&&o.addEventListener("beforeunload",function(){g.$apply()}),g}]}}return e=e&&e.module?e:window.angular,e.module("ngStorage",[]).provider("$localStorage",t("localStorage")).provider("$sessionStorage",t("sessionStorage"))}),function(e){function t(t,n){if(n=n||{},n.worker&&C.WORKERS_SUPPORTED){var r=u();return r.userStep=n.step,r.userChunk=n.chunk,r.userComplete=n.complete,r.userError=n.error,n.step=v(n.step),n.chunk=v(n.chunk),n.complete=v(n.complete),n.error=v(n.error),delete n.worker,void r.postMessage({input:t,config:n,workerId:r.id})}var s=null;return"string"==typeof t?s=n.download?new i(n):new o(n):(e.File&&t instanceof File||t instanceof Object)&&(s=new a(n)),s.stream(t)}function n(e,t){function n(){"object"==typeof t&&("string"==typeof t.delimiter&&1==t.delimiter.length&&-1==C.BAD_DELIMITERS.indexOf(t.delimiter)&&(l=t.delimiter),("boolean"==typeof t.quotes||t.quotes instanceof Array)&&(s=t.quotes),"string"==typeof t.newline&&(c=t.newline))}function r(e){if("object"!=typeof e)return[];var t=[];for(var n in e)t.push(n);return t}function i(e,t){var n="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var r=e instanceof Array&&e.length>0,i=!(t[0]instanceof Array);if(r){for(var o=0;o0&&(n+=l),n+=a(e[o],o);t.length>0&&(n+=c)}for(var s=0;sp;p++){p>0&&(n+=l);var d=r&&i?e[p]:p;n+=a(t[s][d],p)}s-1||" "==e.charAt(0)||" "==e.charAt(e.length-1);return n?'"'+e+'"':e}function o(e,t){for(var n=0;n-1)return!0;return!1}var s=!1,l=",",c="\r\n";if(n(),"string"==typeof e&&(e=JSON.parse(e)),e instanceof Array){if(!e.length||e[0]instanceof Array)return i(null,e);if("object"==typeof e[0])return i(r(e[0]),e)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),e.data instanceof Array&&(e.fields||(e.fields=e.data[0]instanceof Array?e.fields:r(e.data[0])),e.data[0]instanceof Array||"object"==typeof e.data[0]||(e.data=[e.data])),i(e.fields||[],e.data||[]);throw"exception: Unable to serialize unrecognized input"}function r(t){function n(e){var t=g(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new s(t),this._handle.streamer=this,this._config=t}this._handle=null,this._paused=!1,this._finished=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},n.call(this,t),this.parseChunk=function(t){if(this.isFirstChunk&&v(this._config.beforeFirstChunk)){var n=this._config.beforeFirstChunk(t);void 0!==n&&(t=n)}this.isFirstChunk=!1;var r=this._partialLine+t;this._partialLine="";var i=this._handle.parse(r,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var a=i.meta.cursor;this._finished||(this._partialLine=r.substring(a-this._baseIndex),this._baseIndex=a),i&&i.data&&(this._rowCount+=i.data.length);var o=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(y)e.postMessage({results:i,workerId:C.WORKER_ID,finished:o});else if(v(this._config.chunk)){if(this._config.chunk(i,this._handle),this._paused)return;i=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(i.data),this._completeResults.errors=this._completeResults.errors.concat(i.errors),this._completeResults.meta=i.meta),!o||!v(this._config.complete)||i&&i.meta.aborted||this._config.complete(this._completeResults),o||i&&i.meta.paused||this._nextChunk(),i}},this._sendError=function(t){v(this._config.error)?this._config.error(t):y&&this._config.error&&e.postMessage({workerId:C.WORKER_ID,error:t,finished:!1})}}function i(e){function t(e){var t=e.getResponseHeader("Content-Range");return parseInt(t.substr(t.lastIndexOf("/")+1))}e=e||{},e.chunkSize||(e.chunkSize=C.RemoteChunkSize),r.call(this,e);var n;$?this._nextChunk=function(){this._readChunk(),this._chunkLoaded()}:this._nextChunk=function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)return void this._chunkLoaded();if(n=new XMLHttpRequest,$||(n.onload=m(this._chunkLoaded,this),n.onerror=m(this._chunkError,this)),n.open("GET",this._input,!$),this._config.chunkSize){var e=this._start+this._config.chunkSize-1;n.setRequestHeader("Range","bytes="+this._start+"-"+e),n.setRequestHeader("If-None-Match","webkit-no-cache")}try{n.send()}catch(t){this._chunkError(t.message)}$&&0==n.status?this._chunkError():this._start+=this._config.chunkSize},this._chunkLoaded=function(){if(4==n.readyState){if(n.status<200||n.status>=400)return void this._chunkError();this._finished=!this._config.chunkSize||this._start>t(n),this.parseChunk(n.responseText)}},this._chunkError=function(e){var t=n.statusText||e;this._sendError(t)}}function a(e){e=e||{},e.chunkSize||(e.chunkSize=C.LocalChunkSize),r.call(this,e);var t,n,i="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,i?(t=new FileReader,t.onload=m(this._chunkLoaded,this),t.onerror=m(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function o(e){e=e||{},r.call(this,e);var t,n;this.stream=function(e){return t=e,n=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e=this._config.chunkSize,t=e?n.substr(0,e):n;return n=e?n.substr(e):"",this._finished=!n,this.parseChunk(t)}}}function s(e){function t(){if(w&&d&&(c("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+C.DefaultDelimiter+"'"),d=!1),e.skipEmptyLines)for(var t=0;t=y.length?(n.__parsed_extra||(n.__parsed_extra=[]),n.__parsed_extra.push(w.data[t][r])):n[y[r]]=w.data[t][r])}e.header&&(w.data[t]=n,r>y.length?c("FieldMismatch","TooManyFields","Too many fields: expected "+y.length+" fields but parsed "+r,t):r1&&(c+=Math.abs(f-i),i=f):i=f}p.data.length>0&&(u/=p.data.length),("undefined"==typeof r||r>c)&&u>1.99&&(r=c,n=s)}return e.delimiter=n,{successful:!!n,bestDelimiter:n}}function o(e){e=e.substr(0,1048576);var t=e.split("\r");if(1==t.length)return"\n";for(var n=0,r=0;r=t.length/2?"\r\n":"\r"}function s(e){var t=f.test(e);return t?parseFloat(e):e}function c(e,t,n,r){w.errors.push({type:e,code:t,message:n,row:r})}var u,p,d,f=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,h=this,m=0,b=!1,$=!1,y=[],w={data:[],errors:[],meta:{}};if(v(e.step)){var k=e.step;e.step=function(r){if(w=r,n())t();else{if(t(),0==w.data.length)return;m+=r.data.length,e.preview&&m>e.preview?p.abort():k(w,h)}}}this.parse=function(n,r,i){if(e.newline||(e.newline=o(n)),d=!1,!e.delimiter){var s=a(n);s.successful?e.delimiter=s.bestDelimiter:(d=!0,e.delimiter=C.DefaultDelimiter),w.meta.delimiter=e.delimiter}var c=g(e);return e.preview&&e.header&&c.preview++,u=n,p=new l(c),w=p.parse(u,r,i),t(),b?{meta:{paused:!0}}:w||{meta:{paused:!1}}},this.paused=function(){return b},this.pause=function(){b=!0,p.abort(),u=u.substr(p.getCharIndex())},this.resume=function(){b=!1,h.streamer.parseChunk(u)},this.aborted=function(){return $},this.abort=function(){$=!0,p.abort(),w.meta.aborted=!0,v(e.complete)&&e.complete(w),u=""}}function l(e){e=e||{};var t=e.delimiter,n=e.newline,r=e.comments,i=e.step,a=e.preview,o=e.fastMode;if(("string"!=typeof t||C.BAD_DELIMITERS.indexOf(t)>-1)&&(t=","),r===t)throw"Comment character same as delimiter";r===!0?r="#":("string"!=typeof r||C.BAD_DELIMITERS.indexOf(r)>-1)&&(r=!1),"\n"!=n&&"\r"!=n&&"\r\n"!=n&&(n="\n");var s=0,l=!1;this.parse=function(e,c,u){function p(e){w.push(e),C=s}function d(t){return u?h():("undefined"==typeof t&&(t=e.substr(s)),x.push(t),s=m,p(x),y&&g(),h())}function f(t){s=t,p(x),x=[],E=e.indexOf(n,s)}function h(e){return{data:w,errors:k,meta:{delimiter:t,linebreak:n,aborted:l,truncated:!!e,cursor:C+(c||0)}}}function g(){i(h()),w=[],k=[]}if("string"!=typeof e)throw"Input must be a string";var m=e.length,v=t.length,b=n.length,$=r.length,y="function"==typeof i;s=0;var w=[],k=[],x=[],C=0;if(!e)return h();if(o||o!==!1&&-1===e.indexOf('"')){for(var D=e.split(n),T=0;T=a)return w=w.slice(0,a),h(!0)}}return h()}for(var S=e.indexOf(t,s),E=e.indexOf(n,s);;)if('"'!=e[s])if(r&&0===x.length&&e.substr(s,$)===r){if(-1==E)return h();s=E+b,E=e.indexOf(n,s),S=e.indexOf(t,s)}else if(-1!==S&&(E>S||-1===E))x.push(e.substring(s,S)),s=S+v,S=e.indexOf(t,s);else{if(-1===E)break;if(x.push(e.substring(s,E)), f(E+b),y&&(g(),l))return h();if(a&&w.length>=a)return h(!0)}else{var O=s;for(s++;;){var O=e.indexOf('"',O+1);if(-1===O)return u||k.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:w.length,index:s}),d();if(O===m-1){var M=e.substring(s,O).replace(/""/g,'"');return d(M)}if('"'!=e[O+1]){if(e[O+1]==t){x.push(e.substring(s,O).replace(/""/g,'"')),s=O+1+v,S=e.indexOf(t,s),E=e.indexOf(n,s);break}if(e.substr(O+1,b)===n){if(x.push(e.substring(s,O).replace(/""/g,'"')),f(O+1+b),S=e.indexOf(t,s),y&&(g(),l))return h();if(a&&w.length>=a)return h(!0);break}}else O++}}return d()},this.abort=function(){l=!0},this.getCharIndex=function(){return s}}function c(){var e=document.getElementsByTagName("script");return e.length?e[e.length-1].src:""}function u(){if(!C.WORKERS_SUPPORTED)return!1;if(!w&&null===C.SCRIPT_PATH)throw new Error("Script path cannot be determined automatically when Papa Parse is loaded asynchronously. You need to set Papa.SCRIPT_PATH manually.");var t=C.SCRIPT_PATH||b;t+=(-1!==t.indexOf("?")?"&":"?")+"papaworker";var n=new e.Worker(t);return n.onmessage=p,n.id=x++,k[n.id]=n,n}function p(e){var t=e.data,n=k[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var i=function(){r=!0,d(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},a={abort:i,pause:f,resume:f};if(v(n.userStep)){for(var o=0;o
    ');return this.each(function(){if(""===i.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var t=e(this),a=t.find(i.trigger).first();a.on("click",function(e){e.preventDefault(),n(t),t.find(".box-body").load(i.source,function(){r(t)})})})}}(jQuery),function(e){e.fn.activateBox=function(){e.AdminLTE.boxWidget.activate(this)},e.fn.toggleBox=function(){var t=e(e.AdminLTE.boxWidget.selectors.collapse,this);e.AdminLTE.boxWidget.collapse(t)},e.fn.removeBox=function(){var t=e(e.AdminLTE.boxWidget.selectors.remove,this);e.AdminLTE.boxWidget.remove(t)}}(jQuery),function(e){e.fn.todolist=function(t){var n=e.extend({onCheck:function(e){return e},onUncheck:function(e){return e}},t);return this.each(function(){"undefined"!=typeof e.fn.iCheck?(e("input",this).on("ifChecked",function(){var t=e(this).parents("li").first();t.toggleClass("done"),n.onCheck.call(t)}),e("input",this).on("ifUnchecked",function(){var t=e(this).parents("li").first();t.toggleClass("done"),n.onUncheck.call(t)})):e("input",this).on("change",function(){var t=e(this).parents("li").first();t.toggleClass("done"),e("input",t).is(":checked")?n.onCheck.call(t):n.onUncheck.call(t)})})}}(jQuery); \ No newline at end of file