"use strict";angular.module("ui.alias",[]).config(["$compileProvider","uiAliasConfig",function(n,t){t=t||{};angular.forEach(t,function(t,i){angular.isString(t)&&(t={replace:!0,template:t});n.directive(i,function(){return t})})}]);angular.module("ui.event",[]).directive("uiEvent",["$parse",function(n){return function(t,i,r){var u=t.$eval(r.uiEvent);angular.forEach(u,function(r,u){var f=n(r);i.bind(u,function(n){var i=Array.prototype.slice.call(arguments);i=i.splice(1);f(t,{$event:n,$params:i});t.$$phase||t.$apply()})})}}]);angular.module("ui.format",[]).filter("format",function(){return function(n,t){var i=n,r,u;return angular.isString(i)&&void 0!==t&&((angular.isArray(t)||angular.isObject(t)||(t=[t]),angular.isArray(t))?(r=t.length,u=function(n,i){return i=parseInt(i,10),i>=0&&r>i?t[i]:n},i=i.replace(/\$([0-9]+)/g,u)):angular.forEach(t,function(n,t){i=i.split(":"+t).join(n)})),i}});angular.module("ui.highlight",[]).filter("highlight",function(){return function(n,t,i){return t||angular.isNumber(t)?(n=n.toString(),t=t.toString(),i?n.split(t).join('<span class="ui-match">'+t+"<\/span>"):n.replace(new RegExp(t,"gi"),'<span class="ui-match">$&<\/span>')):n}});angular.module("ui.include",[]).directive("uiInclude",["$http","$templateCache","$anchorScroll","$compile",function(n,t,i,r){return{restrict:"ECA",terminal:!0,compile:function(u,f){var o=f.uiInclude||f.src,s=f.fragment||"",h=f.onload||"",e=f.autoscroll;return function(u,f){function a(){var a=++l,y=u.$eval(o),p=u.$eval(s);y?n.get(y,{cache:t}).success(function(n){if(a===l){c&&c.$destroy();c=u.$new();var t;t=p?angular.element("<div/>").html(n).find(p):angular.element("<div/>").html(n).contents();f.html(t);r(t)(c);!angular.isDefined(e)||e&&!u.$eval(e)||i();c.$emit("$includeContentLoaded");u.$eval(h)}}).error(function(){a===l&&v()}):v()}var c,l=0,v=function(){c&&(c.$destroy(),c=null);f.html("")};u.$watch(s,a);u.$watch(o,a)}}}}]);angular.module("ui.indeterminate",[]).directive("uiIndeterminate",[function(){return{compile:function(n,t){return t.type&&"checkbox"===t.type.toLowerCase()?function(n,t,i){n.$watch(i.uiIndeterminate,function(n){t[0].indeterminate=!!n})}:angular.noop}}}]);angular.module("ui.inflector",[]).filter("inflector",function(){function n(n){return n.replace(/^([a-z])|\s+([a-z])/g,function(n){return n.toUpperCase()})}function t(n,t){return n.replace(/[A-Z]/g,function(n){return t+n})}var i={humanize:function(i){return n(t(i," ").split("_").join(" "))},underscore:function(n){return n.substr(0,1).toLowerCase()+t(n.substr(1),"_").toLowerCase().split(" ").join("_")},variable:function(t){return t.substr(0,1).toLowerCase()+n(t.split("_").join(" ")).substr(1).split(" ").join("")}};return function(n,t){return t!==!1&&angular.isString(n)?(t=t||"humanize",i[t](n)):n}});angular.module("ui.jq",[]).value("uiJqConfig",{}).directive("uiJq",["uiJqConfig","$timeout",function(n,t){return{restrict:"A",compile:function(i,r){if(!angular.isFunction(i[r.uiJq]))throw new Error('ui-jq: The "'+r.uiJq+'" function does not exist');var u=n&&n[r.uiJq];return function(n,i,r){function e(){t(function(){i[r.uiJq].apply(i,f)},0,!1)}var f=[];r.uiOptions?(f=n.$eval("["+r.uiOptions+"]"),angular.isObject(u)&&angular.isObject(f[0])&&(f[0]=angular.extend({},u,f[0]))):u&&(f=[u]);r.ngModel&&i.is("select,input,textarea")&&i.bind("change",function(){i.trigger("input")});r.uiRefresh&&n.$watch(r.uiRefresh,function(){e()});e()}}}}]);angular.module("ui.keypress",[]).factory("keypressHelper",["$parse",function(n){var t={8:"backspace",9:"tab",13:"enter",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete"},i=function(n){return n.charAt(0).toUpperCase()+n.slice(1)};return function(r,u,f,e){var o,s=[];o=u.$eval(e["ui"+i(r)]);angular.forEach(o,function(t,i){var r,u;u=n(t);angular.forEach(i.split(" "),function(n){r={expression:u,keys:{}};angular.forEach(n.split("-"),function(n){r.keys[n]=!0});s.push(r)})});f.bind(r,function(n){var e=!(!n.metaKey||n.ctrlKey),o=!!n.altKey,h=!!n.ctrlKey,f=!!n.shiftKey,i=n.keyCode;"keypress"===r&&!f&&i>=97&&122>=i&&(i-=32);angular.forEach(s,function(r){var s=r.keys[t[i]]||r.keys[i.toString()],c=!!r.keys.meta,l=!!r.keys.alt,a=!!r.keys.ctrl,v=!!r.keys.shift;s&&c===e&&l===o&&a===h&&v===f&&u.$apply(function(){r.expression(u,{$event:n})})})})}}]);angular.module("ui.keypress").directive("uiKeydown",["keypressHelper",function(n){return{link:function(t,i,r){n("keydown",t,i,r)}}}]);angular.module("ui.keypress").directive("uiKeypress",["keypressHelper",function(n){return{link:function(t,i,r){n("keypress",t,i,r)}}}]);angular.module("ui.keypress").directive("uiKeyup",["keypressHelper",function(n){return{link:function(t,i,r){n("keyup",t,i,r)}}}]);angular.module("ui.mask",[]).value("uiMaskConfig",{maskDefinitions:{9:/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}}).directive("uiMask",["uiMaskConfig",function(n){return{priority:100,require:"ngModel",restrict:"A",compile:function(){var t=n;return function(n,i,r,u){function lt(n){return angular.isDefined(n)?(gt(n),l?(pt(),wt(),!0):et()):et()}function at(n){angular.isDefined(n)&&(s=n,l&&c())}function vt(n){return l?(f=a(n||""),o=b(f),u.$setValidity("mask",o),o&&f.length?v(f):void 0):n}function yt(n){return l?(f=a(n||""),o=b(f),u.$viewValue=f.length?v(f):"",u.$setValidity("mask",o),""===f&&void 0!==u.$error.required&&u.$setValidity("required",!1),o?f:void 0):n}function et(){return l=!1,bt(),angular.isDefined(ht)?i.attr("placeholder",ht):i.removeAttr("placeholder"),angular.isDefined(ct)?i.attr("maxlength",ct):i.removeAttr("maxlength"),i.val(u.$modelValue),u.$viewValue=u.$modelValue,!1}function pt(){f=ut=a(u.$modelValue||"");it=rt=v(f);o=b(f);var n=o&&f.length?it:"";r.maxlength&&i.attr("maxlength",2*e[e.length-1]);i.attr("placeholder",s);i.val(n);u.$viewValue=n}function wt(){w||(i.bind("blur",ot),i.bind("mousedown mouseup",y),i.bind("input keyup click focus",c),w=!0)}function bt(){w&&(i.unbind("blur",ot),i.unbind("mousedown",y),i.unbind("mouseup",y),i.unbind("input",c),i.unbind("keyup",c),i.unbind("click",c),i.unbind("focus",c),w=!1)}function b(n){return n.length?n.length>=tt:!0}function a(n){var i="",t=nt.slice();return n=n.toString(),angular.forEach(st,function(t){n=n.replace(t,"")}),angular.forEach(n.split(""),function(n){t.length&&t[0].test(n)&&(i+=n,t.shift())}),i}function v(n){var t="",i=e.slice();return angular.forEach(s.split(""),function(r,u){n.length&&u===i[0]?(t+=n.charAt(0)||"_",n=n.substr(1),i.shift()):t+=r}),t}function kt(n){var t=r.placeholder;return"undefined"!=typeof t&&t[n]?t[n]:"_"}function dt(){return s.replace(/[_]+/g,"_").replace(/([^_]+)([a-zA-Z0-9])([^_])/g,"$1$2_$3").split("_")}function gt(n){var t=0,i,r;(e=[],nt=[],s="","string"==typeof n)&&(tt=0,i=!1,r=n.split(""),angular.forEach(r,function(n,r){h.maskDefinitions[n]?(e.push(t),s+=kt(r),nt.push(h.maskDefinitions[n]),t++,i||tt++):"?"===n?i=!0:(s+=n,t++)}));e.push(e.slice().pop()+1);st=dt();l=e.length>1?!0:!1}function ot(){ft=0;p=0;o&&0!==f.length||(it="",i.val(""),n.$apply(function(){u.$setViewValue("")}))}function y(n){"mousedown"===n.type?i.bind("mouseout",k):i.unbind("mouseout",k)}function k(){p=g(this);i.unbind("mouseout",k)}function c(t){var f,s,tt;if(t=t||{},f=t.which,s=t.type,16!==f&&91!==f){var b,c=i.val(),w=rt,o=a(c),lt=ut,it=!1,r=ni(this)||0,et=ft||0,ot=r-et,h=e[0],l=e[o.length]||e.slice().shift(),y=p||0,at=g(this)>0,st=y>0,ht=c.length>w.length||y&&c.length>w.length-y,k=c.length<w.length||y&&c.length===w.length-y,vt=f>=37&&40>=f&&t.shiftKey,yt=37===f,ct=8===f||"keyup"!==s&&k&&-1===ot,pt=46===f||"keyup"!==s&&k&&0===ot&&!st,nt=(yt||ct||"click"===s)&&r>h;if(p=g(this),!vt&&(!at||"click"!==s&&"keyup"!==s)){if("input"===s&&k&&!st&&o===lt){for(;ct&&r>h&&!d(r);)r--;for(;pt&&l>r&&-1===e.indexOf(r);)r++;tt=e.indexOf(r);o=o.substring(0,tt)+o.substring(tt+1);it=!0}for(b=v(o),rt=b,ut=o,i.val(b),it&&n.$apply(function(){u.$setViewValue(o)}),ht&&h>=r&&(r=h+1),nt&&r--,r=r>l?l:h>r?h:r;!d(r)&&r>h&&l>r;)r+=nt?-1:1;(nt&&l>r||ht&&!d(et))&&r++;ft=r;ti(this,r)}}}function d(n){return e.indexOf(n)>-1}function ni(n){if(!n)return 0;if(void 0!==n.selectionStart)return n.selectionStart;if(document.selection){n.focus();var t=document.selection.createRange();return t.moveStart("character",-n.value.length),t.text.length}return 0}function ti(n,t){if(!n)return 0;if(0!==n.offsetWidth&&0!==n.offsetHeight)if(n.setSelectionRange)n.focus(),n.setSelectionRange(t,t);else if(n.createTextRange){var i=n.createTextRange();i.collapse(!0);i.moveEnd("character",t);i.moveStart("character",t);i.select()}}function g(n){return n?void 0!==n.selectionStart?n.selectionEnd-n.selectionStart:document.selection?document.selection.createRange().text.length:0:0}var e,nt,s,st,tt,f,it,o,rt,ut,ft,p,l=!1,w=!1,ht=r.placeholder,ct=r.maxlength,h={};r.uiOptions?(h=n.$eval("["+r.uiOptions+"]"),angular.isObject(h[0])&&(h=function(n,t){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]?angular.extend(t[i],n[i]):t[i]=angular.copy(n[i]));return t}(t,h[0]))):h=t;r.$observe("uiMask",lt);r.$observe("placeholder",at);u.$formatters.push(vt);u.$parsers.push(yt);i.bind("mousedown mouseup",y);Array.prototype.indexOf||(Array.prototype.indexOf=function(n){var u,r,t,i;if(null===this)throw new TypeError;if((u=Object(this),r=u.length>>>0,0===r)||(t=0,arguments.length>1&&(t=Number(arguments[1]),t!==t?t=0:0!==t&&1/0!==t&&t!==-1/0&&(t=(t>0||-1)*Math.floor(Math.abs(t)))),t>=r))return-1;for(i=t>=0?t:Math.max(r-Math.abs(t),0);r>i;i++)if(i in u&&u[i]===n)return i;return-1})}}}}]);angular.module("ui.reset",[]).value("uiResetConfig",null).directive("uiReset",["uiResetConfig",function(n){var t=null;return void 0!==n&&(t=n),{require:"ngModel",link:function(n,i,r,u){var f;f=angular.element('<a class="ui-reset" />');i.wrap('<span class="ui-resetwrap" />').after(f);f.bind("click",function(i){i.preventDefault();n.$apply(function(){u.$setViewValue(r.uiReset?n.$eval(r.uiReset):t);u.$render()})})}}}]);angular.module("ui.route",[]).directive("uiRoute",["$location","$parse",function(n,t){return{restrict:"AC",scope:!0,compile:function(i,r){var u;if(r.uiRoute)u="uiRoute";else if(r.ngHref)u="ngHref";else{if(!r.href)throw new Error("uiRoute missing a route or href property on "+i[0]);u="href"}return function(i,r,f){function o(t){var r=t.indexOf("#");r>-1&&(t=t.substr(r+1));(e=function(){h(i,n.path().indexOf(t)>-1)})()}function s(t){var r=t.indexOf("#");r>-1&&(t=t.substr(r+1));(e=function(){var r=new RegExp("^"+t+"$",["i"]);h(i,r.test(n.path()))})()}var h=t(f.ngModel||f.routeModel||"$uiRoute").assign,e=angular.noop;switch(u){case"uiRoute":f.uiRoute?s(f.uiRoute):f.$observe("uiRoute",s);break;case"ngHref":f.ngHref?o(f.ngHref):f.$observe("ngHref",o);break;case"href":o(f.href)}i.$on("$routeChangeSuccess",function(){e()});i.$on("$stateChangeSuccess",function(){e()})}}}}]);angular.module("ui.scroll.jqlite",["ui.scroll"]).service("jqLiteExtras",["$log","$window",function(n,t){return{registerFor:function(n){var i,u,s,r,f,e,o;return u=angular.element.prototype.css,n.prototype.css=function(n,t){var i,r;return r=this,i=r[0],i&&3!==i.nodeType&&8!==i.nodeType&&i.style?u.call(r,n,t):void 0},e=function(n){return n&&n.document&&n.location&&n.alert&&n.setInterval},o=function(n,t,i){var r,u,s,o,f;return r=n[0],f={top:["scrollTop","pageYOffset","scrollLeft"],left:["scrollLeft","pageXOffset","scrollTop"]}[t],u=f[0],o=f[1],s=f[2],e(r)?angular.isDefined(i)?r.scrollTo(n[s].call(n),i):o in r?r[o]:r.document.documentElement[u]:angular.isDefined(i)?r[u]=i:r[u]},t.getComputedStyle?(r=function(n){return t.getComputedStyle(n,null)},i=function(n,t){return parseFloat(t)}):(r=function(n){return n.currentStyle},i=function(n,t){var f,e,o,s,i,u,r;return f=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,s=new RegExp("^("+f+")(?!px)[a-z%]+$","i"),s.test(t)?(r=n.style,e=r.left,i=n.runtimeStyle,u=i&&i.left,i&&(i.left=r.left),r.left=t,o=r.pixelLeft,r.left=e,u&&(i.left=u),o):parseFloat(t)}),s=function(n,t){var f,c,l,a,v,u,o,s,y,p,w,b,h;return e(n)?(f=document.documentElement[{height:"clientHeight",width:"clientWidth"}[t]],{base:f,padding:0,border:0,margin:0}):(h={width:[n.offsetWidth,"Left","Right"],height:[n.offsetHeight,"Top","Bottom"]}[t],f=h[0],o=h[1],s=h[2],u=r(n),w=i(n,u["padding"+o])||0,b=i(n,u["padding"+s])||0,c=i(n,u["border"+o+"Width"])||0,l=i(n,u["border"+s+"Width"])||0,a=u["margin"+o],v=u["margin"+s],y=i(n,a)||0,p=i(n,v)||0,{base:f,padding:w+b,border:c+l,margin:y+p})},f=function(n,t,i){var e,u,f;return u=s(n,t),u.base>0?{base:u.base-u.padding-u.border,outer:u.base,outerfull:u.base+u.margin}[i]:(e=r(n),f=e[t],(0>f||null===f)&&(f=n.style[t]||0),f=parseFloat(f)||0,{base:f-u.padding-u.border,outer:f,outerfull:f+u.padding+u.border+u.margin}[i])},angular.forEach({before:function(n){var t,u,f,e,o,i,r;if(o=this,u=o[0],e=o.parent(),t=e.contents(),t[0]===u)return e.prepend(n);for(f=i=1,r=t.length-1;r>=1?r>=i:i>=r;f=r>=1?++i:--i)if(t[f]===u)return void angular.element(t[f-1]).after(n);throw new Error("invalid DOM structure "+u.outerHTML);},height:function(n){var t;return t=this,angular.isDefined(n)?(angular.isNumber(n)&&(n+="px"),u.call(t,"height",n)):f(this[0],"height","base")},outerHeight:function(n){return f(this[0],"height",n?"outerfull":"outer")},offset:function(n){var r,u,t,i,f,e;return f=this,arguments.length?void 0===n?f:n:(r={top:0,left:0},i=f[0],(u=i&&i.ownerDocument)?(t=u.documentElement,i.getBoundingClientRect&&(r=i.getBoundingClientRect()),e=u.defaultView||u.parentWindow,{top:r.top+(e.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(e.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):void 0)},scrollTop:function(n){return o(this,"top",n)},scrollLeft:function(n){return o(this,"left",n)}},function(t,i){if(!n.prototype[i])return n.prototype[i]=t})}}}]).run(["$log","$window","jqLiteExtras",function(n,t,i){if(!t.jQuery)return i.registerFor(angular.element)}]);angular.module("ui.scroll",[]).directive("ngScrollViewport",["$log",function(){return{controller:["$scope","$element",function(n,t){return t}]}}]).directive("ngScroll",["$log","$injector","$rootScope","$timeout",function(n,t,i,r){return{require:["?^ngScrollViewport"],transclude:"element",priority:1e3,terminal:!0,compile:function(u,f,e){return function(f,o,s,h){var l,k,dt,tt,et,c,it,w,gt,ni,p,ot,ct,rt,ut,lt,ft,a,b,at,d,vt,yt,st,v,g,ti,nt,pt,wt,ii,bt,kt,ri,ht,y;if(st=s.ngScroll.match(/^\s*(\w+)\s+in\s+(\w+)\s*$/),!st)throw new Error('Expected ngScroll in form of "item_ in _datasource_" but got "'+s.ngScroll+'"');if(vt=st[1],ot=st[2],at=function(n){return angular.isObject(n)&&n.get&&angular.isFunction(n.get)},p=f[ot],!at(p)&&(p=t.get(ot),!at(p)))throw new Error(ot+" is not a valid datasource");return w=Math.max(3,+s.bufferSize||10),it=function(){return y.height()*Math.max(.1,+s.padding||.1)},ii=function(n){return n[0].scrollHeight||n[0].document.documentElement.scrollHeight},l=null,e(ri=f.$new(),function(n){var i,e,o,t,r,f;if(t=n[0].localName,"dl"===t)throw new Error("ng-scroll directive does not support <"+n[0].localName+"> as a repeating tag: "+n[0].outerHTML);return"li"!==t&&"tr"!==t&&(t="div"),f=h[0]||angular.element(window),f.css({"overflow-y":"auto",display:"block"}),o=function(n){var i,t,r;switch(n){case"tr":return r=angular.element("<table><tr><td><div><\/div><\/td><\/tr><\/table>"),i=r.find("div"),t=r.find("tr"),t.paddingHeight=function(){return i.height.apply(i,arguments)},t;default:return t=angular.element("<"+n+"><\/"+n+">"),t.paddingHeight=t.height,t}},e=function(n,t,i){return t[{top:"before",bottom:"after"}[i]](n),{paddingHeight:function(){return n.paddingHeight.apply(n,arguments)},insert:function(t){return n[{top:"after",bottom:"before"}[i]](t)}}},r=e(o(t),u,"top"),i=e(o(t),u,"bottom"),ri.$destroy(),l={viewport:f,topPadding:r.paddingHeight,bottomPadding:i.paddingHeight,append:i.insert,prepend:r.insert,bottomDataPos:function(){return ii(f)-i.paddingHeight()},topDataPos:function(){return r.paddingHeight()}}}),y=l.viewport,a=1,v=1,c=[],g=[],rt=!1,tt=!1,yt=p.loading||function(){},d=!1,nt=function(n,t){for(var i,r=i=n;t>=n?t>i:i>t;r=t>=n?++i:--i)c[r].scope.$destroy(),c[r].element.remove();return c.splice(n,t-n)},ti=function(){return a=1,v=1,nt(0,c.length),l.topPadding(0),l.bottomPadding(0),g=[],rt=!1,tt=!1,k(!1)},et=function(){return y.scrollTop()+y.height()},ht=function(){return y.scrollTop()},bt=function(){return!rt&&l.bottomDataPos()<et()+it()},gt=function(){var r,u,f,t,i,e;for(r=0,t=0,u=i=e=c.length-1;(0>=e?0>=i:i>=0)&&(f=c[u].element.outerHeight(!0),l.bottomDataPos()-r-f>et()+it());u=0>=e?++i:--i)r+=f,t++,rt=!1;if(t>0)return(l.bottomPadding(l.bottomPadding()+r),nt(c.length-t,c.length),v-=t,n.log("clipped off bottom "+t+" bottom padding "+l.bottomPadding()))},kt=function(){return!tt&&l.topDataPos()>ht()-it()},ni=function(){var f,u,t,i,r,e;for(i=0,t=0,r=0,e=c.length;e>r&&(f=c[r],u=f.element.outerHeight(!0),l.topDataPos()+i+u<ht()-it());r++)i+=u,t++,tt=!1;if(t>0)return(l.topPadding(l.topPadding()+i),nt(0,t),a+=t,n.log("clipped off top "+t+" top padding "+l.topPadding()))},ct=function(n,t){return d||(d=!0,yt(!0)),1===g.push(n)?lt(t):void 0},b=function(n,t){var i,u,r;return i=f.$new(),i[vt]=t,u=n>a,i.$index=n,u&&i.$index--,r={scope:i},e(i,function(t){return r.element=t,u?n===v?(l.append(t),c.push(r)):(c[n-a].element.after(t),c.splice(n-a+1,0,r)):(l.prepend(t),c.unshift(r))}),{appended:u,wrapper:r}},dt=function(n,t){var i;return n?l.bottomPadding(Math.max(0,l.bottomPadding()-t.element.outerHeight(!0))):(i=l.topPadding()-t.element.outerHeight(!0),i>=0?l.topPadding(i):y.scrollTop(y.scrollTop()+t.element.outerHeight(!0)))},k=function(t,i,u){var f;return f=function(){return n.log("top {actual="+l.topDataPos()+" visible from="+ht()+" bottom {visible through="+et()+" actual="+l.bottomDataPos()+"}"),bt()?ct(!0,t):kt()&&ct(!1,t),u?u():void 0},i?r(function(){for(var t,n=0,r=i.length;r>n;n++)t=i[n],dt(t.appended,t.wrapper);return f()}):f()},ft=function(n,t){return k(n,t,function(){return g.shift(),0===g.length?(d=!1,yt(!1)):lt(n)})},lt=function(t){var i;return i=g[0],i?c.length&&!bt()?ft(t):p.get(v,w,function(i){var f,u,r,e;if(u=[],0===i.length)rt=!0,l.bottomPadding(0),n.log("appended: requested "+w+" records starting from "+v+" recieved: eof");else{for(ni(),r=0,e=i.length;e>r;r++)f=i[r],u.push(b(++v,f));n.log("appended: requested "+w+" received "+i.length+" buffer size "+c.length+" first "+a+" next "+v)}return ft(t,u)}):c.length&&!kt()?ft(t):p.get(a-w,w,function(i){var u,f,r,e;if(f=[],0===i.length)tt=!0,l.topPadding(0),n.log("prepended: requested "+w+" records starting from "+(a-w)+" recieved: bof");else{for(gt(),u=r=e=i.length-1;0>=e?0>=r:r>=0;u=0>=e?++r:--r)f.unshift(b(--a,i[u]));n.log("prepended: requested "+w+" received "+i.length+" buffer size "+c.length+" first "+a+" next "+v)}return ft(t,f)})},pt=function(){if(!i.$$phase&&!d)return(k(!1),f.$apply())},y.bind("resize",pt),wt=function(){if(!i.$$phase&&!d)return(k(!0),f.$apply())},y.bind("scroll",wt),f.$watch(p.revision,function(){return ti()}),ut=p.scope?p.scope.$new():f.$new(),f.$on("$destroy",function(){return ut.$destroy(),y.unbind("resize",pt),y.unbind("scroll",wt)}),ut.$on("update.items",function(n,t,i){var u,f,r,e,o;if(angular.isFunction(t))for(f=function(n){return t(n.scope)},r=0,e=c.length;e>r;r++)u=c[r],f(u);else 0<=(o=t-a-1)&&o<c.length&&(c[t-a-1].scope[vt]=i);return null}),ut.$on("delete.items",function(n,t){var i,u,r,s,h,f,e,o,l,y,p,w;if(angular.isFunction(t)){for(r=[],f=0,l=c.length;l>f;f++)u=c[f],r.unshift(u);for(h=function(n){if(t(n.scope))return(nt(r.length-1-i,r.length-i),v--)},i=e=0,y=r.length;y>e;i=++e)s=r[i],h(s)}else 0<=(w=t-a-1)&&w<c.length&&(nt(t-a-1,t-a),v--);for(i=o=0,p=c.length;p>o;i=++o)u=c[i],u.scope.$index=a+i;return k(!1)}),ut.$on("insert.item",function(n,t,i){var r,u,f,h,l,e,o,s,y,p,w,d;if(u=[],angular.isFunction(t)){for(f=[],e=0,y=c.length;y>e;e++)i=c[e],f.unshift(i);for(l=function(n){var e,f,o,h,s;if(f=t(n.scope)){if(b=function(n,t){return b(n,t),v++},angular.isArray(f)){for(s=[],e=o=0,h=f.length;h>o;e=++o)i=f[e],s.push(u.push(b(r+e,i)));return s}return u.push(b(r,f))}},r=o=0,p=f.length;p>o;r=++o)h=f[r],l(h)}else 0<=(d=t-a-1)&&d<c.length&&(u.push(b(t,i)),v++);for(r=s=0,w=c.length;w>s;r=++s)i=c[r],i.scope.$index=a+r;return k(!1,u)})}}}}]);angular.module("ui.scrollfix",[]).directive("uiScrollfix",["$window",function(n){return{require:"^?uiScrollfixTarget",link:function(t,i,r,u){function e(){var t,u;angular.isDefined(n.pageYOffset)?t=n.pageYOffset:(u=document.compatMode&&"BackCompat"!==document.compatMode?document.documentElement:document.body,t=u.scrollTop);!i.hasClass("ui-scrollfix")&&t>r.uiScrollfix?i.addClass("ui-scrollfix"):i.hasClass("ui-scrollfix")&&t<r.uiScrollfix&&i.removeClass("ui-scrollfix")}var f=i[0].offsetTop,o=u&&u.$element||angular.element(n);r.uiScrollfix?"string"==typeof r.uiScrollfix&&("-"===r.uiScrollfix.charAt(0)?r.uiScrollfix=f-parseFloat(r.uiScrollfix.substr(1)):"+"===r.uiScrollfix.charAt(0)&&(r.uiScrollfix=f+parseFloat(r.uiScrollfix.substr(1)))):r.uiScrollfix=f;o.on("scroll",e);t.$on("$destroy",function(){o.off("scroll",e)})}}}]).directive("uiScrollfixTarget",[function(){return{controller:["$element",function(n){this.$element=n}]}}]);angular.module("ui.showhide",[]).directive("uiShow",[function(){return function(n,t,i){n.$watch(i.uiShow,function(n){n?t.addClass("ui-show"):t.removeClass("ui-show")})}}]).directive("uiHide",[function(){return function(n,t,i){n.$watch(i.uiHide,function(n){n?t.addClass("ui-hide"):t.removeClass("ui-hide")})}}]).directive("uiToggle",[function(){return function(n,t,i){n.$watch(i.uiToggle,function(n){n?t.removeClass("ui-hide").addClass("ui-show"):t.removeClass("ui-show").addClass("ui-hide")})}}]);angular.module("ui.unique",[]).filter("unique",["$parse",function(n){return function(t,i){if(i===!1)return t;if((i||angular.isUndefined(i))&&angular.isArray(t)){var r=[],f=angular.isString(i)?n(i):function(n){return n},u=function(n){return angular.isObject(n)?f(n):n};angular.forEach(t,function(n){for(var i=!1,t=0;t<r.length;t++)if(angular.equals(u(r[t]),u(n))){i=!0;break}i||r.push(n)});t=r}return t}}]);angular.module("ui.validate",[]).directive("uiValidate",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){function o(t){return angular.isString(t)?void n.$watch(t,function(){angular.forEach(u,function(n){n(r.$modelValue)})}):angular.isArray(t)?void angular.forEach(t,function(t){n.$watch(t,function(){angular.forEach(u,function(n){n(r.$modelValue)})})}):void(angular.isObject(t)&&angular.forEach(t,function(t,i){angular.isString(t)&&n.$watch(t,function(){u[i](r.$modelValue)});angular.isArray(t)&&angular.forEach(t,function(t){n.$watch(t,function(){u[i](r.$modelValue)})})}))}var e,u={},f=n.$eval(i.uiValidate);f&&(angular.isString(f)&&(f={validator:f}),angular.forEach(f,function(t,i){e=function(u){var f=n.$eval(t,{$value:u});return angular.isObject(f)&&angular.isFunction(f.then)?(f.then(function(){r.$setValidity(i,!0)},function(){r.$setValidity(i,!1)}),u):f?(r.$setValidity(i,!0),u):(r.$setValidity(i,!1),u)};u[i]=e;r.$formatters.push(e);r.$parsers.push(e)}),i.uiValidateWatch&&o(n.$eval(i.uiValidateWatch)))}}});angular.module("ui.utils",["ui.event","ui.format","ui.highlight","ui.include","ui.indeterminate","ui.inflector","ui.jq","ui.keypress","ui.mask","ui.reset","ui.route","ui.scrollfix","ui.scroll","ui.scroll.jqlite","ui.showhide","ui.unique","ui.validate"]);angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(n,t,i){function u(n){for(var t in n)if(void 0!==f.style[t])return n[t]}var r=function(u,f,e){e=e||{};var s=n.defer(),o=r[e.animation?"animationEndEventName":"transitionEndEventName"],h=function(){i.$apply(function(){u.unbind(o,h);s.resolve(u)})};return o&&u.bind(o,h),t(function(){angular.isString(f)?u.addClass(f):angular.isFunction(f)?f(u):angular.isObject(f)&&u.css(f);o||s.resolve(u)}),s.promise.cancel=function(){o&&u.unbind(o,h);s.reject("Transition cancelled")},s.promise},f=document.createElement("trans");return r.transitionEndEventName=u({WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}),r.animationEndEventName=u({WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"}),r}]);angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(n){return{link:function(t,i,r){function e(t){function f(){u===r&&(u=void 0)}var r=n(i,t);return u&&u.cancel(),u=r,r.then(f,f),r}function h(){f?(f=!1,o()):(i.removeClass("collapse").addClass("collapsing"),e({height:i[0].scrollHeight+"px"}).then(o))}function o(){i.removeClass("collapsing");i.addClass("collapse in");i.css({height:"auto"})}function c(){f?(f=!1,s(),i.css({height:0})):(i.css({height:i[0].scrollHeight+"px"}),i[0].offsetWidth,i.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(s))}function s(){i.removeClass("collapsing");i.addClass("collapse")}var u,f=!0;t.$watch(r.collapse,function(n){n?c():h()})}}}]);angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(n,t,i){this.groups=[];this.closeOthers=function(r){var u=angular.isDefined(t.closeOthers)?n.$eval(t.closeOthers):i.closeOthers;u&&angular.forEach(this.groups,function(n){n!==r&&(n.isOpen=!1)})};this.addGroup=function(n){var t=this;this.groups.push(n);n.$on("$destroy",function(){t.removeGroup(n)})};this.removeGroup=function(n){var t=this.groups.indexOf(n);-1!==t&&this.groups.splice(t,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(n){this.heading=n}},link:function(n,t,i,r){r.addGroup(n);n.$watch("isOpen",function(t){t&&r.closeOthers(n)});n.toggleOpen=function(){n.isDisabled||(n.isOpen=!n.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(n,t,i,r,u){r.setHeading(u(n,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(n,t,i,r){n.$watch(function(){return r[i.accordionTransclude]},function(n){n&&(t.html(""),t.append(n))})}}});angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(n,t){n.closeable="close"in t}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}});angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(n,t,i){t.addClass("ng-binding").data("$binding",i.bindHtmlUnsafe);n.$watch(i.bindHtmlUnsafe,function(n){t.html(n||"")})}});angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(n){this.activeClass=n.activeClass||"active";this.toggleEvent=n.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,n.$eval(i.btnRadio)))};t.bind(f.toggleEvent,function(){var r=t.hasClass(f.activeClass);(!r||angular.isDefined(i.uncheckable))&&n.$apply(function(){u.$setViewValue(r?null:n.$eval(i.btnRadio));u.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){function e(){return o(i.btnCheckboxTrue,!0)}function s(){return o(i.btnCheckboxFalse,!1)}function o(t,i){var r=n.$eval(t);return angular.isDefined(r)?r:i}var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,e()))};t.bind(f.toggleEvent,function(){n.$apply(function(){u.$setViewValue(t.hasClass(f.activeClass)?s():e());u.$render()})})}}});angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function(n,t,i){function e(){h();var i=+n.interval;!isNaN(i)&&i>=0&&(o=t(l,i))}function h(){o&&(t.cancel(o),o=null)}function l(){s?(n.next(),e()):n.pause()}var o,s,u=this,r=u.slides=n.slides=[],f=-1,c;u.currentSlide=null;c=!1;u.select=n.select=function(o,s){function l(){c||(u.currentSlide&&angular.isString(s)&&!n.noTransition&&o.$element?(o.$element.addClass(s),o.$element[0].offsetWidth,angular.forEach(r,function(n){angular.extend(n,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(o,{direction:s,active:!0,entering:!0}),angular.extend(u.currentSlide||{},{direction:s,leaving:!0}),n.$currentTransition=i(o.$element,{}),function(t,i){n.$currentTransition.then(function(){h(t,i)},function(){h(t,i)})}(o,u.currentSlide)):h(o,u.currentSlide),u.currentSlide=o,f=a,e())}function h(t,i){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1});angular.extend(i||{},{direction:"",active:!1,leaving:!1,entering:!1});n.$currentTransition=null}var a=r.indexOf(o);void 0===s&&(s=a>f?"next":"prev");o&&o!==u.currentSlide&&(n.$currentTransition?(n.$currentTransition.cancel(),t(l)):l())};n.$on("$destroy",function(){c=!0});u.indexOfSlide=function(n){return r.indexOf(n)};n.next=function(){var t=(f+1)%r.length;if(!n.$currentTransition)return u.select(r[t],"next")};n.prev=function(){var t=0>f-1?r.length-1:f-1;if(!n.$currentTransition)return u.select(r[t],"prev")};n.isActive=function(n){return u.currentSlide===n};n.$watch("interval",e);n.$on("$destroy",h);n.play=function(){s||(s=!0,e())};n.pause=function(){n.noPause||(s=!1,h())};u.addSlide=function(t,i){t.$element=i;r.push(t);1===r.length||t.active?(u.select(r[r.length-1]),1==r.length&&n.play()):t.active=!1};u.removeSlide=function(n){var t=r.indexOf(n);r.splice(t,1);r.length>0&&n.active?u.select(t>=r.length?r[t-1]:r[t]):f>t&&f--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(n,t,i,r){r.addSlide(n,t);n.$on("$destroy",function(){r.removeSlide(n)});n.$watch("active",function(t){t&&r.select(n)})}}});angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(n,t){function i(n,t,i){return 1===t&&i>28?29===i&&(n%4==0&&n%100!=0||n%400==0):3===t||5===t||8===t||10===t?31>i:!0}this.parsers={};var r={yyyy:{regex:"\\d{4}",apply:function(n){this.year=+n}},yy:{regex:"\\d{2}",apply:function(n){this.year=+n+2e3}},y:{regex:"\\d{1,4}",apply:function(n){this.year=+n}},MMMM:{regex:n.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:n.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(n){this.month=n-1}},M:{regex:"[1-9]|1[0-2]",apply:function(n){this.month=n-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},EEEE:{regex:n.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:n.DATETIME_FORMATS.SHORTDAY.join("|")}};this.createParser=function(n){var u=[],i=n.split("");return angular.forEach(r,function(t,r){var f=n.indexOf(r),e,o;if(f>-1){for(n=n.split(""),i[f]="("+t.regex+")",n[f]="$",e=f+1,o=f+r.length;o>e;e++)i[e]="",n[e]="$";n=n.join("");u.push({index:f,apply:t.apply})}}),{regex:new RegExp("^"+i.join("")+"$"),map:t(u,"index")}};this.parse=function(t,r){var o;if(!angular.isString(t))return t;r=n.DATETIME_FORMATS[r]||r;this.parsers[r]||(this.parsers[r]=this.createParser(r));var s=this.parsers[r],c=s.regex,l=s.map,f=t.match(c);if(f&&f.length){for(var h,u={year:1900,month:0,date:1,hours:0},e=1,a=f.length;a>e;e++)o=l[e-1],o.apply&&o.apply.call(u,f[e]);return i(u.year,u.month,u.date)&&(h=new Date(u.year,u.month,u.date,u.hours)),h}}}]);angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(n,t){function i(n,i){return n.currentStyle?n.currentStyle[i]:t.getComputedStyle?t.getComputedStyle(n)[i]:n.style[i]}function r(n){return"static"===(i(n,"position")||"static")}var u=function(t){for(var u=n[0],i=t.offsetParent||u;i&&i!==u&&r(i);)i=i.offsetParent;return i||u};return{position:function(t){var e=this.offset(t),r={top:0,left:0},i=u(t[0]),f;return i!=n[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft),f=t[0].getBoundingClientRect(),{width:f.width||t.prop("offsetWidth"),height:f.height||t.prop("offsetHeight"),top:e.top-r.top,left:e.left-r.left}},offset:function(i){var r=i[0].getBoundingClientRect();return{width:r.width||i.prop("offsetWidth"),height:r.height||i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].documentElement.scrollLeft)}},positionElements:function(n,t,i,r){var u,h,c,f,a=i.split("-"),l=a[0],e=a[1]||"center",o,s;u=r?this.offset(n):this.position(n);h=t.prop("offsetWidth");c=t.prop("offsetHeight");o={center:function(){return u.left+u.width/2-h/2},left:function(){return u.left},right:function(){return u.left+u.width}};s={center:function(){return u.top+u.height/2-c/2},top:function(){return u.top},bottom:function(){return u.top+u.height}};switch(l){case"right":f={top:s[e](),left:o[l]()};break;case"left":f={top:s[e](),left:u.left-h};break;case"bottom":f={top:s[l](),left:o[e]()};break;default:f={top:u.top-c,left:o[e]()}}return f}}}]);angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(n,t,i,r,u,f,e,o){var s=this,h={$setViewValue:angular.noop},c;this.modes=["day","month","year"];angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(i,u){s[i]=angular.isDefined(t[i])?8>u?r(t[i])(n.$parent):n.$parent.$eval(t[i]):o[i]});angular.forEach(["minDate","maxDate"],function(r){t[r]?n.$parent.$watch(i(t[r]),function(n){s[r]=n?new Date(n):null;s.refreshView()}):s[r]=o[r]?new Date(o[r]):null});n.datepickerMode=n.datepickerMode||o.datepickerMode;n.uniqueId="datepicker-"+n.$id+"-"+Math.floor(1e4*Math.random());this.activeDate=angular.isDefined(t.initDate)?n.$parent.$eval(t.initDate):new Date;n.isActive=function(t){return 0===s.compare(t.date,s.activeDate)?(n.activeDateId=t.uid,!0):!1};this.init=function(n){h=n;h.$render=function(){s.render()}};this.render=function(){if(h.$modelValue){var n=new Date(h.$modelValue),t=!isNaN(n);t?this.activeDate=n:f.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.');h.$setValidity("date",t)}this.refreshView()};this.refreshView=function(){if(this.element){this._refreshView();var n=h.$modelValue?new Date(h.$modelValue):null;h.$setValidity("date-disabled",!n||this.element&&!this.isDisabled(n))}};this.createDateObject=function(n,t){var i=h.$modelValue?new Date(h.$modelValue):null;return{date:n,label:e(n,t),selected:i&&0===this.compare(n,i),disabled:this.isDisabled(n),current:0===this.compare(n,new Date)}};this.isDisabled=function(i){return this.minDate&&this.compare(i,this.minDate)<0||this.maxDate&&this.compare(i,this.maxDate)>0||t.dateDisabled&&n.dateDisabled({date:i,mode:n.datepickerMode})};this.split=function(n,t){for(var i=[];n.length>0;)i.push(n.splice(0,t));return i};n.select=function(t){if(n.datepickerMode===s.minMode){var i=h.$modelValue?new Date(h.$modelValue):new Date(0,0,0,0,0,0,0);i.setFullYear(t.getFullYear(),t.getMonth(),t.getDate());h.$setViewValue(i);h.$render()}else s.activeDate=t,n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)-1]};n.move=function(n){var t=s.activeDate.getFullYear()+n*(s.step.years||0),i=s.activeDate.getMonth()+n*(s.step.months||0);s.activeDate.setFullYear(t,i,1);s.refreshView()};n.toggleMode=function(t){t=t||1;n.datepickerMode===s.maxMode&&1===t||n.datepickerMode===s.minMode&&-1===t||(n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)+t])};n.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};c=function(){u(function(){s.element[0].focus()},0,!1)};n.$on("datepicker.focus",c);n.keydown=function(t){var i=n.keys[t.which];if(i&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),t.stopPropagation(),"enter"===i||"space"===i){if(s.isDisabled(s.activeDate))return;n.select(s.activeDate);c()}else!t.ctrlKey||"up"!==i&&"down"!==i?(s.handleKeyDown(i,t),s.refreshView()):(n.toggleMode("up"===i?1:-1),c())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}}).directive("daypicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(t,i,r,u){function f(n,t){return 1!==t||n%4!=0||n%100==0&&n%400!=0?s[t]:29}function e(n,t){var r=new Array(t),i=new Date(n),u=0;for(i.setHours(12);t>u;)r[u++]=new Date(i),i.setDate(i.getDate()+1);return r}function o(n){var t=new Date(n),i;return t.setDate(t.getDate()+4-(t.getDay()||7)),i=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((i-t)/864e5)/7)+1}t.showWeeks=u.showWeeks;u.step={months:1};u.element=i;var s=[31,28,31,30,31,30,31,31,30,31,30,31];u._refreshView=function(){var p=u.activeDate.getFullYear(),h=u.activeDate.getMonth(),c=new Date(p,h,1),s=u.startingDay-c.getDay(),l=s>0?7-s:-s,a=new Date(c),i,r,f,v,y;for(l>0&&a.setDate(-l+1),i=e(a,42),r=0;42>r;r++)i[r]=angular.extend(u.createDateObject(i[r],u.formatDay),{secondary:i[r].getMonth()!==h,uid:t.uniqueId+"-"+r});for(t.labels=new Array(7),f=0;7>f;f++)t.labels[f]={abbr:n(i[f].date,u.formatDayHeader),full:n(i[f].date,"EEEE")};if(t.title=n(u.activeDate,u.formatDayTitle),t.rows=u.split(i,7),t.showWeeks)for(t.weekNumbers=[],v=o(t.rows[0][0].date),y=t.rows.length;t.weekNumbers.push(v++)<y;);};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth(),n.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())};u.handleKeyDown=function(n){var t=u.activeDate.getDate(),i;"left"===n?t-=1:"up"===n?t-=7:"right"===n?t+=1:"down"===n?t+=7:"pageup"===n||"pagedown"===n?(i=u.activeDate.getMonth()+("pageup"===n?-1:1),u.activeDate.setMonth(i,1),t=Math.min(f(u.activeDate.getFullYear(),u.activeDate.getMonth()),t)):"home"===n?t=1:"end"===n&&(t=f(u.activeDate.getFullYear(),u.activeDate.getMonth()));u.activeDate.setDate(t)};u.refreshView()}}}]).directive("monthpicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(t,i,r,u){u.step={years:1};u.element=i;u._refreshView=function(){for(var r=new Array(12),f=u.activeDate.getFullYear(),i=0;12>i;i++)r[i]=angular.extend(u.createDateObject(new Date(f,i,1),u.formatMonth),{uid:t.uniqueId+"-"+i});t.title=n(u.activeDate,u.formatMonthTitle);t.rows=u.split(r,3)};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth())-new Date(t.getFullYear(),t.getMonth())};u.handleKeyDown=function(n){var t=u.activeDate.getMonth(),i;"left"===n?t-=1:"up"===n?t-=3:"right"===n?t+=1:"down"===n?t+=3:"pageup"===n||"pagedown"===n?(i=u.activeDate.getFullYear()+("pageup"===n?-1:1),u.activeDate.setFullYear(i)):"home"===n?t=0:"end"===n&&(t=11);u.activeDate.setMonth(t)};u.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(n,t,i,r){function f(n){return parseInt((n-1)/u,10)*u+1}var u=r.yearRange;r.step={years:u};r.element=t;r._refreshView=function(){for(var i=new Array(u),t=0,e=f(r.activeDate.getFullYear());u>t;t++)i[t]=angular.extend(r.createDateObject(new Date(e+t,0,1),r.formatYear),{uid:n.uniqueId+"-"+t});n.title=[i[0].label,i[u-1].label].join(" - ");n.rows=r.split(i,5)};r.compare=function(n,t){return n.getFullYear()-t.getFullYear()};r.handleKeyDown=function(n){var t=r.activeDate.getFullYear();"left"===n?t-=1:"up"===n?t-=5:"right"===n?t+=1:"down"===n?t+=5:"pageup"===n||"pagedown"===n?t+=("pageup"===n?-1:1)*r.step.years:"home"===n?t=f(r.activeDate.getFullYear()):"end"===n&&(t=f(r.activeDate.getFullYear())+u-1);r.activeDate.setFullYear(t)};r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(n,t,i,r,u,f,e){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(o,s,h,c){function b(n){return n.replace(/([A-Z])/g,function(n){return"-"+n.toLowerCase()})}function k(n){if(n){if(angular.isDate(n)&&!isNaN(n))return c.$setValidity("date",!0),n;if(angular.isString(n)){var t=f.parse(n,p)||new Date(n);return isNaN(t)?void c.$setValidity("date",!1):(c.$setValidity("date",!0),t)}return void c.$setValidity("date",!1)}return c.$setValidity("date",!0),null}var p,g=angular.isDefined(h.closeOnDateSelection)?o.$parent.$eval(h.closeOnDateSelection):e.closeOnDateSelection,d=angular.isDefined(h.datepickerAppendToBody)?o.$parent.$eval(h.datepickerAppendToBody):e.appendToBody,l,a,v,w,y;o.showButtonBar=angular.isDefined(h.showButtonBar)?o.$parent.$eval(h.showButtonBar):e.showButtonBar;o.getText=function(n){return o[n+"Text"]||e[n+"Text"]};h.$observe("datepickerPopup",function(n){p=n||e.datepickerPopup;c.$render()});l=angular.element("<div datepicker-popup-wrap><div datepicker><\/div><\/div>");l.attr({"ng-model":"date","ng-change":"dateSelection()"});a=angular.element(l.children()[0]);h.datepickerOptions&&angular.forEach(o.$parent.$eval(h.datepickerOptions),function(n,t){a.attr(b(t),n)});angular.forEach(["minDate","maxDate"],function(n){h[n]&&(o.$parent.$watch(t(h[n]),function(t){o[n]=t}),a.attr(b(n),n))});h.dateDisabled&&a.attr("date-disabled","dateDisabled({ date: date, mode: mode })");c.$parsers.unshift(k);o.dateSelection=function(n){angular.isDefined(n)&&(o.date=n);c.$setViewValue(o.date);c.$render();g&&(o.isOpen=!1,s[0].focus())};s.bind("input change keyup",function(){o.$apply(function(){o.date=c.$modelValue})});c.$render=function(){var n=c.$viewValue?u(c.$viewValue,p):"";s.val(n);o.date=k(c.$modelValue)};v=function(n){o.isOpen&&n.target!==s[0]&&o.$apply(function(){o.isOpen=!1})};w=function(n){o.keydown(n)};s.bind("keydown",w);o.keydown=function(n){27===n.which?(n.preventDefault(),n.stopPropagation(),o.close()):40!==n.which||o.isOpen||(o.isOpen=!0)};o.$watch("isOpen",function(n){n?(o.$broadcast("datepicker.focus"),o.position=d?r.offset(s):r.position(s),o.position.top=o.position.top+s.prop("offsetHeight"),i.bind("click",v)):i.unbind("click",v)});o.select=function(n){if("today"===n){var t=new Date;angular.isDate(c.$modelValue)?(n=new Date(c.$modelValue),n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):n=new Date(t.setHours(0,0,0,0))}o.dateSelection(n)};o.close=function(){o.isOpen=!1;s[0].focus()};y=n(l)(o);d?i.find("body").append(y):s.after(y);o.$on("$destroy",function(){y.remove();s.unbind("keydown",w);i.unbind("click",v)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(n,t){t.bind("click",function(n){n.preventDefault();n.stopPropagation()})}}});angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(n){var t=null,i,r;this.open=function(u){t||(n.bind("click",i),n.bind("keydown",r));t&&t!==u&&(t.isOpen=!1);t=u};this.close=function(u){t===u&&(t=null,n.unbind("click",i),n.unbind("keydown",r))};i=function(n){n&&n.isDefaultPrevented()||t.$apply(function(){t.isOpen=!1})};r=function(n){27===n.which&&(t.focusToggleElement(),i())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(n,t,i,r,u,f){var s,o=this,e=n.$new(),c=r.openClass,h=angular.noop,l=t.onToggle?i(t.onToggle):angular.noop;this.init=function(r){o.$element=r;t.isOpen&&(s=i(t.isOpen),h=s.assign,n.$watch(s,function(n){e.isOpen=!!n}))};this.toggle=function(n){return e.isOpen=arguments.length?!!n:!e.isOpen};this.isOpen=function(){return e.isOpen};e.focusToggleElement=function(){o.toggleElement&&o.toggleElement[0].focus()};e.$watch("isOpen",function(t,i){f[t?"addClass":"removeClass"](o.$element,c);t?(e.focusToggleElement(),u.open(e)):u.close(e);h(n,t);angular.isDefined(t)&&t!==i&&l(n,{open:!!t})});n.$on("$locationChangeSuccess",function(){e.isOpen=!1});n.$on("$destroy",function(){e.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(n,t,i,r){r.init(t)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(n,t,i,r){if(r){r.toggleElement=t;var u=function(u){u.preventDefault();t.hasClass("disabled")||i.disabled||n.$apply(function(){r.toggle()})};t.bind("click",u);t.attr({"aria-haspopup":!0,"aria-expanded":!1});n.$watch(r.isOpen,function(n){t.attr("aria-expanded",!!n)});n.$on("$destroy",function(){t.unbind("click",u)})}}}});angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var n=[];return{add:function(t,i){n.push({key:t,value:i})},get:function(t){for(var i=0;i<n.length;i++)if(t==n[i].key)return n[i]},keys:function(){for(var i=[],t=0;t<n.length;t++)i.push(n[t].key);return i},top:function(){return n[n.length-1]},remove:function(t){for(var r=-1,i=0;i<n.length;i++)if(t==n[i].key){r=i;break}return n.splice(r,1)[0]},removeTop:function(){return n.splice(n.length-1,1)[0]},length:function(){return n.length}}}}}).directive("modalBackdrop",["$timeout",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t){t.animate=!1;n(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(n,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(n,t){return t.templateUrl||"template/modal/window.html"},link:function(i,r,u){r.addClass(u.windowClass||"");i.size=u.size;t(function(){i.animate=!0;r[0].focus()});i.close=function(t){var i=n.getTop();i&&i.value.backdrop&&"static"!=i.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),n.dismiss(i.key,"backdrop click"))}}}}]).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(n,t,i,r,u,f){function c(){for(var t=-1,i=e.keys(),n=0;n<i.length;n++)e.get(i[n]).value.backdrop&&(t=n);return t}function l(n){var r=i.find("body").eq(0),t=e.get(n).value;e.remove(n);a(t.modalDomEl,t.modalScope,300,function(){t.modalScope.$destroy();r.toggleClass(v,e.length()>0);y()})}function y(){if(h&&-1==c()){var n=o;a(h,o,150,function(){n.$destroy();n=null});h=void 0;o=void 0}}function a(i,r,u,f){function e(){e.done||(e.done=!0,i.remove(),f&&f())}var o,s;r.animate=!1;o=n.transitionEndEventName;o?(s=t(e,u),i.bind(o,function(){t.cancel(s);e();r.$apply()})):t(e,0)}var h,o,v="modal-open",e=f.createNew(),s={};return u.$watch(c,function(n){o&&(o.index=n)}),i.bind("keydown",function(n){var t;27===n.which&&(t=e.top(),t&&t.value.keyboard&&(n.preventDefault(),u.$apply(function(){s.dismiss(t.key,"escape key press")})))}),s.open=function(n,t){var f,s,l,a;e.add(n,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});f=i.find("body").eq(0);s=c();s>=0&&!h&&(o=u.$new(!0),o.index=s,h=r("<div modal-backdrop><\/div>")(o),f.append(h));l=angular.element("<div modal-window><\/div>");l.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:e.length()-1,animate:"animate"}).html(t.content);a=r(l)(t.scope);e.top().value.modalDomEl=a;f.append(a);f.addClass(v)},s.close=function(n,t){var i=e.get(n).value;i&&(i.deferred.resolve(t),l(n))},s.dismiss=function(n,t){var i=e.get(n).value;i&&(i.deferred.reject(t),l(n))},s.dismissAll=function(n){for(var t=this.getTop();t;)this.dismiss(t.key,n),t=this.getTop()},s.getTop=function(){return e.top()},s}]).provider("$modal",function(){var n={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,i,r,u,f,e,o){function h(n){return n.template?r.when(n.template):u.get(n.templateUrl,{cache:f}).then(function(n){return n.data})}function c(n){var i=[];return angular.forEach(n,function(n){(angular.isFunction(n)||angular.isArray(n))&&i.push(r.when(t.invoke(n)))}),i}var s={};return s.open=function(t){var f=r.defer(),s=r.defer(),u={result:f.promise,opened:s.promise,close:function(n){o.close(u,n)},dismiss:function(n){o.dismiss(u,n)}},l;if(t=angular.extend({},n.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return l=r.all([h(t)].concat(c(t.resolve))),l.then(function(n){var s=(t.scope||i).$new(),c,r,h;s.$close=u.close;s.$dismiss=u.dismiss;r={};h=1;t.controller&&(r.$scope=s,r.$modalInstance=u,angular.forEach(t.resolve,function(t,i){r[i]=n[h++]}),c=e(t.controller,r));o.open(u,{scope:s,deferred:f,content:n[0],backdrop:t.backdrop,keyboard:t.keyboard,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(n){f.reject(n)}),l.then(function(){s.resolve(!0)},function(){s.reject(!1)}),u},s}]};return n});angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(n,t,i){var u=this,r={$setViewValue:angular.noop},f=t.numPages?i(t.numPages).assign:angular.noop;this.init=function(f,e){r=f;this.config=e;r.$render=function(){u.render()};t.itemsPerPage?n.$parent.$watch(i(t.itemsPerPage),function(t){u.itemsPerPage=parseInt(t,10);n.totalPages=u.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage};this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(n.totalItems/this.itemsPerPage);return Math.max(t||0,1)};this.render=function(){n.page=parseInt(r.$viewValue,10)||1};n.selectPage=function(t){n.page!==t&&t>0&&t<=n.totalPages&&(r.$setViewValue(t),r.$render())};n.getText=function(t){return n[t+"Text"]||u.config[t+"Text"]};n.noPrevious=function(){return 1===n.page};n.noNext=function(){return n.page===n.totalPages};n.$watch("totalItems",function(){n.totalPages=u.calculateTotalPages()});n.$watch("totalPages",function(t){f(n.$parent,t);n.page>t?n.selectPage(t):r.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(n,t){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(i,r,u,f){function s(n,t,i){return{number:n,text:t,active:i}}function a(n,t){var f=[],i=1,r=t,o=angular.isDefined(e)&&t>e,u,c,l,a;for(o&&(h?(i=Math.max(n-Math.floor(e/2),1),r=i+e-1,r>t&&(r=t,i=r-e+1)):(i=(Math.ceil(n/e)-1)*e+1,r=Math.min(i+e-1,t))),u=i;r>=u;u++)c=s(u,u,u===n),f.push(c);return o&&!h&&(i>1&&(l=s(i-1,"...",!1),f.unshift(l)),t>r&&(a=s(r+1,"...",!1),f.push(a))),f}var o=f[0],c=f[1],e,h,l;c&&(e=angular.isDefined(u.maxSize)?i.$parent.$eval(u.maxSize):t.maxSize,h=angular.isDefined(u.rotate)?i.$parent.$eval(u.rotate):t.rotate,i.boundaryLinks=angular.isDefined(u.boundaryLinks)?i.$parent.$eval(u.boundaryLinks):t.boundaryLinks,i.directionLinks=angular.isDefined(u.directionLinks)?i.$parent.$eval(u.directionLinks):t.directionLinks,o.init(c,t),u.maxSize&&i.$parent.$watch(n(u.maxSize),function(n){e=parseInt(n,10);o.render()}),l=o.render,o.render=function(){l();i.page>0&&i.page<=i.totalPages&&(i.pages=a(i.page,i.totalPages))})}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(n){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,i,r,u){var e=u[0],f=u[1];f&&(t.align=angular.isDefined(r.align)?t.$parent.$eval(r.align):n.align,e.init(f,n))}}}]);angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function i(n){var t="-";return n.replace(/[A-Z]/g,function(n,i){return(i?t:"")+n.toLowerCase()})}var r={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},t={};this.options=function(n){angular.extend(t,n)};this.setTriggers=function(t){angular.extend(n,t)};this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(u,f,e,o,s,h,c){return function(u,l,a){function w(t){var i=t||v.trigger||a,r=n[i]||i;return{show:i,hide:r}}var v=angular.extend({},r,t),b=i(u),y=c.startSymbol(),p=c.endSymbol(),k="<div "+b+'-popup title="'+y+"tt_title"+p+'" content="'+y+"tt_content"+p+'" placement="'+y+"tt_placement"+p+'" animation="tt_animation" is-open="tt_isOpen"><\/div>';return{restrict:"EA",scope:!0,compile:function(){var n=f(k);return function(t,i,r){function ut(){t.tt_isOpen?d():k()}function k(){(!et||t.$eval(r[l+"Enable"]))&&(t.tt_popupDelay?y||(y=e(it,t.tt_popupDelay,!1),y.then(function(n){n()})):it()())}function d(){t.$apply(function(){g()})}function it(){return y=null,a&&(e.cancel(a),a=null),t.tt_content?(ft(),f.css({top:0,left:0,display:"block"}),p?s.find("body").append(f):i.after(f),rt(),t.tt_isOpen=!0,t.$digest(),rt):angular.noop}function g(){t.tt_isOpen=!1;e.cancel(y);y=null;t.tt_animation?a||(a=e(b,500)):b()}function ft(){f&&b();f=n(t,function(){});t.$digest()}function b(){a=null;f&&(f.remove(),f=null)}var f,a,y,p=angular.isDefined(v.appendToBody)?v.appendToBody:!1,c=w(void 0),et=angular.isDefined(r[l+"Enable"]),rt=function(){var n=h.positionElements(i,f,t.tt_placement,p);n.top+="px";n.left+="px";f.css(n)},nt,tt;t.tt_isOpen=!1;r.$observe(u,function(n){t.tt_content=n;!n&&t.tt_isOpen&&g()});r.$observe(l+"Title",function(n){t.tt_title=n});r.$observe(l+"Placement",function(n){t.tt_placement=angular.isDefined(n)?n:v.placement});r.$observe(l+"PopupDelay",function(n){var i=parseInt(n,10);t.tt_popupDelay=isNaN(i)?v.popupDelay:i});nt=function(){i.unbind(c.show,k);i.unbind(c.hide,d)};r.$observe(l+"Trigger",function(n){nt();c=w(n);c.show===c.hide?i.bind(c.show,ut):(i.bind(c.show,k),i.bind(c.hide,d))});tt=t.$eval(r[l+"Animation"]);t.tt_animation=angular.isDefined(tt)?!!tt:v.animation;r.$observe(l+"AppendToBody",function(n){p=angular.isDefined(n)?o(n)(t):p});p&&t.$on("$locationChangeSuccess",function(){t.tt_isOpen&&g()});t.$on("$destroy",function(){e.cancel(a);e.cancel(y);nt();b()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(n){return n("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(n){return n("tooltipHtmlUnsafe","tooltip","mouseenter")}]);angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(n){return n("popover","popover","click")}]);angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(n,t,i){var r=this,u=angular.isDefined(t.animate)?n.$parent.$eval(t.animate):i.animate;this.bars=[];n.max=angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max;this.addBar=function(t,i){u||i.css({transition:"none"});this.bars.push(t);t.$watch("value",function(i){t.percent=+(100*i/n.max).toFixed(2)});t.$on("$destroy",function(){i=null;r.removeBar(t)})};this.removeBar=function(n){this.bars.splice(this.bars.indexOf(n),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,t,i,r){r.addBar(n,t)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(n,t,i,r){r.addBar(n,angular.element(t.children()[0]))}}});angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(n,t,i){var r={$setViewValue:angular.noop};this.init=function(u){r=u;r.$render=this.render;this.stateOn=angular.isDefined(t.stateOn)?n.$parent.$eval(t.stateOn):i.stateOn;this.stateOff=angular.isDefined(t.stateOff)?n.$parent.$eval(t.stateOff):i.stateOff;var f=angular.isDefined(t.ratingStates)?n.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max);n.range=this.buildTemplateObjects(f)};this.buildTemplateObjects=function(n){for(var t=0,i=n.length;i>t;t++)n[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff},n[t]);return n};n.rate=function(t){!n.readonly&&t>=0&&t<=n.range.length&&(r.$setViewValue(t),r.$render())};n.enter=function(t){n.readonly||(n.value=t);n.onHover({value:t})};n.reset=function(){n.value=r.$viewValue;n.onLeave()};n.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),n.rate(n.value+(38===t.which||39===t.which?1:-1)))};this.render=function(){n.value=r.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}});angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(n){var i=this,t=i.tabs=n.tabs=[];i.select=function(n){angular.forEach(t,function(t){t.active&&t!==n&&(t.active=!1,t.onDeselect())});n.active=!0;n.onSelect()};i.addTab=function(n){t.push(n);1===t.length?n.active=!0:n.active&&i.select(n)};i.removeTab=function(n){var r=t.indexOf(n),u;n.active&&t.length>1&&(u=r==t.length-1?r-1:r+1,i.select(t[u]));t.splice(r,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(n,t,i){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",function(n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(t,i,r){return function(t,i,u,f){t.$watch("active",function(n){n&&f.select(t)});t.disabled=!1;u.disabled&&t.$parent.$watch(n(u.disabled),function(n){t.disabled=!!n});t.select=function(){t.disabled||(t.active=!0)};f.addTab(t);t.$on("$destroy",function(){f.removeTab(t)});t.$transcludeFn=r}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(n,t){n.$watch("headingElement",function(n){n&&(t.html(""),t.append(n))})}}}]).directive("tabContentTransclude",function(){function n(n){return n.tagName&&(n.hasAttribute("tab-heading")||n.hasAttribute("data-tab-heading")||"tab-heading"===n.tagName.toLowerCase()||"data-tab-heading"===n.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(t,i,r){var u=t.$eval(r.tabContentTransclude);u.$transcludeFn(u.$parent,function(t){angular.forEach(t,function(t){n(t)?u.headingElement=t:i.append(t)})})}}});angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(n,t,i,r,u,f){function p(){var t=parseInt(n.hours,10),i=n.showMeridian?t>0&&13>t:t>=0&&24>t;if(i)return(n.showMeridian&&(12===t&&(t=0),n.meridian===y[1]&&(t+=12)),t)}function w(){var t=parseInt(n.minutes,10);if(t>=0&&60>t)return t}function h(n){return angular.isDefined(n)&&n.toString().length<2?"0"+n:n}function c(n){b();o.$setViewValue(new Date(e));v(n)}function b(){o.$setValidity("time",!0);n.invalidHours=!1;n.invalidMinutes=!1}function v(t){var i=e.getHours(),r=e.getMinutes();n.showMeridian&&(i=0===i||12===i?12:i%12);n.hours="h"===t?i:h(i);n.minutes="m"===t?r:h(r);n.meridian=e.getHours()<12?y[0]:y[1]}function s(n){var t=new Date(e.getTime()+6e4*n);e.setHours(t.getHours(),t.getMinutes());c()}var e=new Date,o={$setViewValue:angular.noop},y=angular.isDefined(t.meridians)?n.$parent.$eval(t.meridians):f.meridians||u.DATETIME_FORMATS.AMPMS,l,a;this.init=function(i,r){o=i;o.$render=this.render;var u=r.eq(0),e=r.eq(1),s=angular.isDefined(t.mousewheel)?n.$parent.$eval(t.mousewheel):f.mousewheel;s&&this.setupMousewheelEvents(u,e);n.readonlyInput=angular.isDefined(t.readonlyInput)?n.$parent.$eval(t.readonlyInput):f.readonlyInput;this.setupInputEvents(u,e)};l=f.hourStep;t.hourStep&&n.$parent.$watch(i(t.hourStep),function(n){l=parseInt(n,10)});a=f.minuteStep;t.minuteStep&&n.$parent.$watch(i(t.minuteStep),function(n){a=parseInt(n,10)});n.showMeridian=f.showMeridian;t.showMeridian&&n.$parent.$watch(i(t.showMeridian),function(t){if(n.showMeridian=!!t,o.$error.time){var i=p(),r=w();angular.isDefined(i)&&angular.isDefined(r)&&(e.setHours(i),c())}else v()});this.setupMousewheelEvents=function(t,i){var r=function(n){n.originalEvent&&(n=n.originalEvent);var t=n.wheelDelta?n.wheelDelta:-n.deltaY;return n.detail||t>0};t.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementHours():n.decrementHours());t.preventDefault()});i.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementMinutes():n.decrementMinutes());t.preventDefault()})};this.setupInputEvents=function(t,i){if(n.readonlyInput)return n.updateHours=angular.noop,void(n.updateMinutes=angular.noop);var r=function(t,i){o.$setViewValue(null);o.$setValidity("time",!1);angular.isDefined(t)&&(n.invalidHours=t);angular.isDefined(i)&&(n.invalidMinutes=i)};n.updateHours=function(){var n=p();angular.isDefined(n)?(e.setHours(n),c("h")):r(!0)};t.bind("blur",function(){!n.invalidHours&&n.hours<10&&n.$apply(function(){n.hours=h(n.hours)})});n.updateMinutes=function(){var n=w();angular.isDefined(n)?(e.setMinutes(n),c("m")):r(void 0,!0)};i.bind("blur",function(){!n.invalidMinutes&&n.minutes<10&&n.$apply(function(){n.minutes=h(n.minutes)})})};this.render=function(){var n=o.$modelValue?new Date(o.$modelValue):null;isNaN(n)?(o.$setValidity("time",!1),r.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.')):(n&&(e=n),b(),v())};n.incrementHours=function(){s(60*l)};n.decrementHours=function(){s(60*-l)};n.incrementMinutes=function(){s(a)};n.decrementMinutes=function(){s(-a)};n.toggleMeridian=function(){s(720*(e.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u,t.find("input"))}}});angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(n){var t=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(i){var r=i.match(t);if(!r)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+i+'".');return{itemName:r[3],source:n(r[4]),viewMapper:n(r[2]||r[1]),modelMapper:n(r[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(n,t,i,r,u,f,e){var o=[9,13,27,38,40];return{require:"ngModel",link:function(s,h,c,l){var k,et=s.$eval(c.typeaheadMinLength)||1,rt=s.$eval(c.typeaheadWaitMs)||0,ot=s.$eval(c.typeaheadEditable)!==!1,p=t(c.typeaheadLoading).assign||angular.noop,st=t(c.typeaheadOnSelect),ut=c.typeaheadInputFormatter?t(c.typeaheadInputFormatter):void 0,ft=c.typeaheadAppendToBody?s.$eval(c.typeaheadAppendToBody):!1,ht=t(c.ngModel).assign,v=e.parse(c.typeahead),a=s.$new(),w,b,y,d,g,nt,tt,it;s.$on("$destroy",function(){a.$destroy()});w="typeahead-"+a.$id+"-"+Math.floor(1e4*Math.random());h.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":w});b=angular.element("<div typeahead-popup><\/div>");b.attr({id:w,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});angular.isDefined(c.typeaheadTemplateUrl)&&b.attr("template-url",c.typeaheadTemplateUrl);y=function(){a.matches=[];a.activeIdx=-1;h.attr("aria-expanded",!1)};d=function(n){return w+"-option-"+n};a.$watch("activeIdx",function(n){0>n?h.removeAttr("aria-activedescendant"):h.attr("aria-activedescendant",d(n))});g=function(n){var t={$viewValue:n};p(s,!0);i.when(v.source(s,t)).then(function(i){var u=n===l.$viewValue,r;if(u&&k)if(i.length>0){for(a.activeIdx=0,a.matches.length=0,r=0;r<i.length;r++)t[v.itemName]=i[r],a.matches.push({id:d(r),label:v.viewMapper(a,t),model:i[r]});a.query=n;a.position=ft?f.offset(h):f.position(h);a.position.top=a.position.top+h.prop("offsetHeight");h.attr("aria-expanded",!0)}else y();u&&p(s,!1)},function(){y();p(s,!1)})};y();a.query=void 0;l.$parsers.unshift(function(n){return k=!0,n&&n.length>=et?rt>0?(nt&&r.cancel(nt),nt=r(function(){g(n)},rt)):g(n):(p(s,!1),y()),ot?n:n?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),n)});l.$formatters.push(function(n){var i,r,t={};return ut?(t.$model=n,ut(s,t)):(t[v.itemName]=n,i=v.viewMapper(s,t),t[v.itemName]=void 0,r=v.viewMapper(s,t),i!==r?i:n)});a.select=function(n){var t,u,i={};i[v.itemName]=u=a.matches[n].model;t=v.modelMapper(s,i);ht(s,t);l.$setValidity("editable",!0);st(s,{$item:u,$model:t,$label:v.viewMapper(s,i)});y();r(function(){h[0].focus()},0,!1)};h.bind("keydown",function(n){0!==a.matches.length&&-1!==o.indexOf(n.which)&&(n.preventDefault(),40===n.which?(a.activeIdx=(a.activeIdx+1)%a.matches.length,a.$digest()):38===n.which?(a.activeIdx=(a.activeIdx?a.activeIdx:a.matches.length)-1,a.$digest()):13===n.which||9===n.which?a.$apply(function(){a.select(a.activeIdx)}):27===n.which&&(n.stopPropagation(),y(),a.$digest()))});h.bind("blur",function(){k=!1});tt=function(n){h[0]!==n.target&&(y(),a.$digest())};u.bind("click",tt);s.$on("$destroy",function(){u.unbind("click",tt)});it=n(b)(a);ft?u.find("body").append(it):h.after(it)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(n,t,i){n.templateUrl=i.templateUrl;n.isOpen=function(){return n.matches.length>0};n.isActive=function(t){return n.active==t};n.selectActive=function(t){n.active=t};n.selectMatch=function(t){n.select({activeIdx:t})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(n,t,i,r){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(u,f,e){var o=r(e.templateUrl)(u.$parent)||"template/typeahead/typeahead-match.html";n.get(o,{cache:t}).success(function(n){f.replaceWith(i(n.trim())(u))})}}}]).filter("typeaheadHighlight",function(){function n(n){return n.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i?(""+t).replace(new RegExp(n(i),"gi"),"<strong>$&<\/strong>"):t}});angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n  <div class="panel-heading">\n    <h4 class="panel-title">\n      <a class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}<\/span><\/a>\n    <\/h4>\n  <\/div>\n  <div class="panel-collapse" collapse="!isOpen">\n\t  <div class="panel-body" ng-transclude><\/div>\n  <\/div>\n<\/div>')}]);angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude><\/div>')}]);angular.module("template/alert/alert.html",[]).run(["$templateCache",function(n){n.put("template/alert/alert.html",'<div class="alert" ng-class="{\'alert-{{type || \'warning\'}}\': true, \'alert-dismissable\': closeable}" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close()">\n        <span aria-hidden="true">&times;<\/span>\n        <span class="sr-only">Close<\/span>\n    <\/button>\n    <div ng-transclude><\/div>\n<\/div>\n')}]);angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(n){n.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"><\/li>\n    <\/ol>\n    <div class="carousel-inner" ng-transclude><\/div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"><\/span><\/a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"><\/span><\/a>\n<\/div>\n')}]);angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(n){n.put("template/carousel/slide.html","<div ng-class=\"{\n    'active': leaving || (active && !entering),\n    'prev': (next || active) && direction=='prev',\n    'next': (next || active) && direction=='next',\n    'right': direction=='prev',\n    'left': direction=='next'\n  }\" class=\"item text-center\" ng-transclude><\/div>\n")}]);angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"><\/daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"><\/monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"><\/yearpicker>\n<\/div>')}]);angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n    <tr>\n      <th ng-show="showWeeks" class="text-center"><\/th>\n      <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}<\/small><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}<\/em><\/td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n\t<li ng-transclude><\/li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n\t\t<span class="btn-group">\n\t\t\t<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}<\/button>\n\t\t\t<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}<\/button>\n\t\t<\/span>\n\t\t<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}<\/button>\n\t<\/li>\n<\/ul>\n')}]);angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(n){n.put("template/modal/backdrop.html",'<div class="modal-backdrop fade"\n     ng-class="{in: animate}"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n><\/div>\n')}]);angular.module("template/modal/window.html",[]).run(["$templateCache",function(n){n.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" ng-transclude><\/div><\/div>\n<\/div>')}]);angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n  <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" bind-html-unsafe="content"><\/div>\n<\/div>\n')}]);angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" ng-bind="content"><\/div>\n<\/div>\n')}]);angular.module("template/popover/popover.html",[]).run(["$templateCache",function(n){n.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="arrow"><\/div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-show="title"><\/h3>\n      <div class="popover-content" ng-bind="content"><\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>')}]);angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progress.html",'<div class="progress" ng-transclude><\/div>')}]);angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>\n<\/div>')}]);angular.module("template/rating/rating.html",[]).run(["$templateCache",function(n){n.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n        <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})<\/span>\n    <\/i>\n<\/span>')}]);angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a ng-click="select()" tab-heading-transclude>{{heading}}<\/a>\n<\/li>\n')}]);angular.module("template/tabs/tabset-titles.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset-titles.html","<ul class=\"nav {{type && 'nav-' + type}}\" ng-class=\"{'nav-stacked': vertical}\">\n<\/ul>\n")}]);angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset.html",'\n<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude><\/ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    <\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(n){n.put("template/timepicker/timepicker.html",'<table>\n\t<tbody>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n\t\t\t\t<input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td>:<\/td>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n\t\t\t\t<input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}<\/button><\/td>\n\t\t<\/tr>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n')}]);angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"><\/a>')}]);angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-if="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"><\/div>\n    <\/li>\n<\/ul>')}]);angular.module("ui.bootstrap",["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(n,t,i){function u(n){for(var t in n)if(void 0!==f.style[t])return n[t]}var r=function(u,f,e){e=e||{};var s=n.defer(),o=r[e.animation?"animationEndEventName":"transitionEndEventName"],h=function(){i.$apply(function(){u.unbind(o,h);s.resolve(u)})};return o&&u.bind(o,h),t(function(){angular.isString(f)?u.addClass(f):angular.isFunction(f)?f(u):angular.isObject(f)&&u.css(f);o||s.resolve(u)}),s.promise.cancel=function(){o&&u.unbind(o,h);s.reject("Transition cancelled")},s.promise},f=document.createElement("trans");return r.transitionEndEventName=u({WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}),r.animationEndEventName=u({WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"}),r}]);angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(n){return{link:function(t,i,r){function e(t){function f(){u===r&&(u=void 0)}var r=n(i,t);return u&&u.cancel(),u=r,r.then(f,f),r}function h(){f?(f=!1,o()):(i.removeClass("collapse").addClass("collapsing"),e({height:i[0].scrollHeight+"px"}).then(o))}function o(){i.removeClass("collapsing");i.addClass("collapse in");i.css({height:"auto"})}function c(){f?(f=!1,s(),i.css({height:0})):(i.css({height:i[0].scrollHeight+"px"}),i[0].offsetWidth,i.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(s))}function s(){i.removeClass("collapsing");i.addClass("collapse")}var u,f=!0;t.$watch(r.collapse,function(n){n?c():h()})}}}]);angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(n,t,i){this.groups=[];this.closeOthers=function(r){var u=angular.isDefined(t.closeOthers)?n.$eval(t.closeOthers):i.closeOthers;u&&angular.forEach(this.groups,function(n){n!==r&&(n.isOpen=!1)})};this.addGroup=function(n){var t=this;this.groups.push(n);n.$on("$destroy",function(){t.removeGroup(n)})};this.removeGroup=function(n){var t=this.groups.indexOf(n);-1!==t&&this.groups.splice(t,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(n){this.heading=n}},link:function(n,t,i,r){r.addGroup(n);n.$watch("isOpen",function(t){t&&r.closeOthers(n)});n.toggleOpen=function(){n.isDisabled||(n.isOpen=!n.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(n,t,i,r,u){r.setHeading(u(n,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(n,t,i,r){n.$watch(function(){return r[i.accordionTransclude]},function(n){n&&(t.html(""),t.append(n))})}}});angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(n,t){n.closeable="close"in t}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}});angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(n,t,i){t.addClass("ng-binding").data("$binding",i.bindHtmlUnsafe);n.$watch(i.bindHtmlUnsafe,function(n){t.html(n||"")})}});angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(n){this.activeClass=n.activeClass||"active";this.toggleEvent=n.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,n.$eval(i.btnRadio)))};t.bind(f.toggleEvent,function(){var r=t.hasClass(f.activeClass);(!r||angular.isDefined(i.uncheckable))&&n.$apply(function(){u.$setViewValue(r?null:n.$eval(i.btnRadio));u.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){function e(){return o(i.btnCheckboxTrue,!0)}function s(){return o(i.btnCheckboxFalse,!1)}function o(t,i){var r=n.$eval(t);return angular.isDefined(r)?r:i}var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,e()))};t.bind(f.toggleEvent,function(){n.$apply(function(){u.$setViewValue(t.hasClass(f.activeClass)?s():e());u.$render()})})}}});angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function(n,t,i){function e(){h();var i=+n.interval;!isNaN(i)&&i>=0&&(o=t(l,i))}function h(){o&&(t.cancel(o),o=null)}function l(){s?(n.next(),e()):n.pause()}var o,s,u=this,r=u.slides=n.slides=[],f=-1,c;u.currentSlide=null;c=!1;u.select=n.select=function(o,s){function l(){c||(u.currentSlide&&angular.isString(s)&&!n.noTransition&&o.$element?(o.$element.addClass(s),o.$element[0].offsetWidth,angular.forEach(r,function(n){angular.extend(n,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(o,{direction:s,active:!0,entering:!0}),angular.extend(u.currentSlide||{},{direction:s,leaving:!0}),n.$currentTransition=i(o.$element,{}),function(t,i){n.$currentTransition.then(function(){h(t,i)},function(){h(t,i)})}(o,u.currentSlide)):h(o,u.currentSlide),u.currentSlide=o,f=a,e())}function h(t,i){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1});angular.extend(i||{},{direction:"",active:!1,leaving:!1,entering:!1});n.$currentTransition=null}var a=r.indexOf(o);void 0===s&&(s=a>f?"next":"prev");o&&o!==u.currentSlide&&(n.$currentTransition?(n.$currentTransition.cancel(),t(l)):l())};n.$on("$destroy",function(){c=!0});u.indexOfSlide=function(n){return r.indexOf(n)};n.next=function(){var t=(f+1)%r.length;if(!n.$currentTransition)return u.select(r[t],"next")};n.prev=function(){var t=0>f-1?r.length-1:f-1;if(!n.$currentTransition)return u.select(r[t],"prev")};n.isActive=function(n){return u.currentSlide===n};n.$watch("interval",e);n.$on("$destroy",h);n.play=function(){s||(s=!0,e())};n.pause=function(){n.noPause||(s=!1,h())};u.addSlide=function(t,i){t.$element=i;r.push(t);1===r.length||t.active?(u.select(r[r.length-1]),1==r.length&&n.play()):t.active=!1};u.removeSlide=function(n){var t=r.indexOf(n);r.splice(t,1);r.length>0&&n.active?u.select(t>=r.length?r[t-1]:r[t]):f>t&&f--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(n,t,i,r){r.addSlide(n,t);n.$on("$destroy",function(){r.removeSlide(n)});n.$watch("active",function(t){t&&r.select(n)})}}});angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(n,t){function i(n,t,i){return 1===t&&i>28?29===i&&(n%4==0&&n%100!=0||n%400==0):3===t||5===t||8===t||10===t?31>i:!0}this.parsers={};var r={yyyy:{regex:"\\d{4}",apply:function(n){this.year=+n}},yy:{regex:"\\d{2}",apply:function(n){this.year=+n+2e3}},y:{regex:"\\d{1,4}",apply:function(n){this.year=+n}},MMMM:{regex:n.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:n.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(n){this.month=n-1}},M:{regex:"[1-9]|1[0-2]",apply:function(n){this.month=n-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},EEEE:{regex:n.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:n.DATETIME_FORMATS.SHORTDAY.join("|")}};this.createParser=function(n){var u=[],i=n.split("");return angular.forEach(r,function(t,r){var f=n.indexOf(r),e,o;if(f>-1){for(n=n.split(""),i[f]="("+t.regex+")",n[f]="$",e=f+1,o=f+r.length;o>e;e++)i[e]="",n[e]="$";n=n.join("");u.push({index:f,apply:t.apply})}}),{regex:new RegExp("^"+i.join("")+"$"),map:t(u,"index")}};this.parse=function(t,r){var o;if(!angular.isString(t))return t;r=n.DATETIME_FORMATS[r]||r;this.parsers[r]||(this.parsers[r]=this.createParser(r));var s=this.parsers[r],c=s.regex,l=s.map,f=t.match(c);if(f&&f.length){for(var h,u={year:1900,month:0,date:1,hours:0},e=1,a=f.length;a>e;e++)o=l[e-1],o.apply&&o.apply.call(u,f[e]);return i(u.year,u.month,u.date)&&(h=new Date(u.year,u.month,u.date,u.hours)),h}}}]);angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(n,t){function i(n,i){return n.currentStyle?n.currentStyle[i]:t.getComputedStyle?t.getComputedStyle(n)[i]:n.style[i]}function r(n){return"static"===(i(n,"position")||"static")}var u=function(t){for(var u=n[0],i=t.offsetParent||u;i&&i!==u&&r(i);)i=i.offsetParent;return i||u};return{position:function(t){var e=this.offset(t),r={top:0,left:0},i=u(t[0]),f;return i!=n[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft),f=t[0].getBoundingClientRect(),{width:f.width||t.prop("offsetWidth"),height:f.height||t.prop("offsetHeight"),top:e.top-r.top,left:e.left-r.left}},offset:function(i){var r=i[0].getBoundingClientRect();return{width:r.width||i.prop("offsetWidth"),height:r.height||i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].documentElement.scrollLeft)}},positionElements:function(n,t,i,r){var u,h,c,f,a=i.split("-"),l=a[0],e=a[1]||"center",o,s;u=r?this.offset(n):this.position(n);h=t.prop("offsetWidth");c=t.prop("offsetHeight");o={center:function(){return u.left+u.width/2-h/2},left:function(){return u.left},right:function(){return u.left+u.width}};s={center:function(){return u.top+u.height/2-c/2},top:function(){return u.top},bottom:function(){return u.top+u.height}};switch(l){case"right":f={top:s[e](),left:o[l]()};break;case"left":f={top:s[e](),left:u.left-h};break;case"bottom":f={top:s[l](),left:o[e]()};break;default:f={top:u.top-c,left:o[e]()}}return f}}}]);angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(n,t,i,r,u,f,e,o){var s=this,h={$setViewValue:angular.noop},c;this.modes=["day","month","year"];angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(i,u){s[i]=angular.isDefined(t[i])?8>u?r(t[i])(n.$parent):n.$parent.$eval(t[i]):o[i]});angular.forEach(["minDate","maxDate"],function(r){t[r]?n.$parent.$watch(i(t[r]),function(n){s[r]=n?new Date(n):null;s.refreshView()}):s[r]=o[r]?new Date(o[r]):null});n.datepickerMode=n.datepickerMode||o.datepickerMode;n.uniqueId="datepicker-"+n.$id+"-"+Math.floor(1e4*Math.random());this.activeDate=angular.isDefined(t.initDate)?n.$parent.$eval(t.initDate):new Date;n.isActive=function(t){return 0===s.compare(t.date,s.activeDate)?(n.activeDateId=t.uid,!0):!1};this.init=function(n){h=n;h.$render=function(){s.render()}};this.render=function(){if(h.$modelValue){var n=new Date(h.$modelValue),t=!isNaN(n);t?this.activeDate=n:f.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.');h.$setValidity("date",t)}this.refreshView()};this.refreshView=function(){if(this.element){this._refreshView();var n=h.$modelValue?new Date(h.$modelValue):null;h.$setValidity("date-disabled",!n||this.element&&!this.isDisabled(n))}};this.createDateObject=function(n,t){var i=h.$modelValue?new Date(h.$modelValue):null;return{date:n,label:e(n,t),selected:i&&0===this.compare(n,i),disabled:this.isDisabled(n),current:0===this.compare(n,new Date)}};this.isDisabled=function(i){return this.minDate&&this.compare(i,this.minDate)<0||this.maxDate&&this.compare(i,this.maxDate)>0||t.dateDisabled&&n.dateDisabled({date:i,mode:n.datepickerMode})};this.split=function(n,t){for(var i=[];n.length>0;)i.push(n.splice(0,t));return i};n.select=function(t){if(n.datepickerMode===s.minMode){var i=h.$modelValue?new Date(h.$modelValue):new Date(0,0,0,0,0,0,0);i.setFullYear(t.getFullYear(),t.getMonth(),t.getDate());h.$setViewValue(i);h.$render()}else s.activeDate=t,n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)-1]};n.move=function(n){var t=s.activeDate.getFullYear()+n*(s.step.years||0),i=s.activeDate.getMonth()+n*(s.step.months||0);s.activeDate.setFullYear(t,i,1);s.refreshView()};n.toggleMode=function(t){t=t||1;n.datepickerMode===s.maxMode&&1===t||n.datepickerMode===s.minMode&&-1===t||(n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)+t])};n.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};c=function(){u(function(){s.element[0].focus()},0,!1)};n.$on("datepicker.focus",c);n.keydown=function(t){var i=n.keys[t.which];if(i&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),t.stopPropagation(),"enter"===i||"space"===i){if(s.isDisabled(s.activeDate))return;n.select(s.activeDate);c()}else!t.ctrlKey||"up"!==i&&"down"!==i?(s.handleKeyDown(i,t),s.refreshView()):(n.toggleMode("up"===i?1:-1),c())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}}).directive("daypicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(t,i,r,u){function f(n,t){return 1!==t||n%4!=0||n%100==0&&n%400!=0?s[t]:29}function e(n,t){var r=new Array(t),i=new Date(n),u=0;for(i.setHours(12);t>u;)r[u++]=new Date(i),i.setDate(i.getDate()+1);return r}function o(n){var t=new Date(n),i;return t.setDate(t.getDate()+4-(t.getDay()||7)),i=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((i-t)/864e5)/7)+1}t.showWeeks=u.showWeeks;u.step={months:1};u.element=i;var s=[31,28,31,30,31,30,31,31,30,31,30,31];u._refreshView=function(){var p=u.activeDate.getFullYear(),h=u.activeDate.getMonth(),c=new Date(p,h,1),s=u.startingDay-c.getDay(),l=s>0?7-s:-s,a=new Date(c),i,r,f,v,y;for(l>0&&a.setDate(-l+1),i=e(a,42),r=0;42>r;r++)i[r]=angular.extend(u.createDateObject(i[r],u.formatDay),{secondary:i[r].getMonth()!==h,uid:t.uniqueId+"-"+r});for(t.labels=new Array(7),f=0;7>f;f++)t.labels[f]={abbr:n(i[f].date,u.formatDayHeader),full:n(i[f].date,"EEEE")};if(t.title=n(u.activeDate,u.formatDayTitle),t.rows=u.split(i,7),t.showWeeks)for(t.weekNumbers=[],v=o(t.rows[0][0].date),y=t.rows.length;t.weekNumbers.push(v++)<y;);};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth(),n.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())};u.handleKeyDown=function(n){var t=u.activeDate.getDate(),i;"left"===n?t-=1:"up"===n?t-=7:"right"===n?t+=1:"down"===n?t+=7:"pageup"===n||"pagedown"===n?(i=u.activeDate.getMonth()+("pageup"===n?-1:1),u.activeDate.setMonth(i,1),t=Math.min(f(u.activeDate.getFullYear(),u.activeDate.getMonth()),t)):"home"===n?t=1:"end"===n&&(t=f(u.activeDate.getFullYear(),u.activeDate.getMonth()));u.activeDate.setDate(t)};u.refreshView()}}}]).directive("monthpicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(t,i,r,u){u.step={years:1};u.element=i;u._refreshView=function(){for(var r=new Array(12),f=u.activeDate.getFullYear(),i=0;12>i;i++)r[i]=angular.extend(u.createDateObject(new Date(f,i,1),u.formatMonth),{uid:t.uniqueId+"-"+i});t.title=n(u.activeDate,u.formatMonthTitle);t.rows=u.split(r,3)};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth())-new Date(t.getFullYear(),t.getMonth())};u.handleKeyDown=function(n){var t=u.activeDate.getMonth(),i;"left"===n?t-=1:"up"===n?t-=3:"right"===n?t+=1:"down"===n?t+=3:"pageup"===n||"pagedown"===n?(i=u.activeDate.getFullYear()+("pageup"===n?-1:1),u.activeDate.setFullYear(i)):"home"===n?t=0:"end"===n&&(t=11);u.activeDate.setMonth(t)};u.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(n,t,i,r){function f(n){return parseInt((n-1)/u,10)*u+1}var u=r.yearRange;r.step={years:u};r.element=t;r._refreshView=function(){for(var i=new Array(u),t=0,e=f(r.activeDate.getFullYear());u>t;t++)i[t]=angular.extend(r.createDateObject(new Date(e+t,0,1),r.formatYear),{uid:n.uniqueId+"-"+t});n.title=[i[0].label,i[u-1].label].join(" - ");n.rows=r.split(i,5)};r.compare=function(n,t){return n.getFullYear()-t.getFullYear()};r.handleKeyDown=function(n){var t=r.activeDate.getFullYear();"left"===n?t-=1:"up"===n?t-=5:"right"===n?t+=1:"down"===n?t+=5:"pageup"===n||"pagedown"===n?t+=("pageup"===n?-1:1)*r.step.years:"home"===n?t=f(r.activeDate.getFullYear()):"end"===n&&(t=f(r.activeDate.getFullYear())+u-1);r.activeDate.setFullYear(t)};r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(n,t,i,r,u,f,e){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(o,s,h,c){function b(n){return n.replace(/([A-Z])/g,function(n){return"-"+n.toLowerCase()})}function k(n){if(n){if(angular.isDate(n)&&!isNaN(n))return c.$setValidity("date",!0),n;if(angular.isString(n)){var t=f.parse(n,p)||new Date(n);return isNaN(t)?void c.$setValidity("date",!1):(c.$setValidity("date",!0),t)}return void c.$setValidity("date",!1)}return c.$setValidity("date",!0),null}var p,g=angular.isDefined(h.closeOnDateSelection)?o.$parent.$eval(h.closeOnDateSelection):e.closeOnDateSelection,d=angular.isDefined(h.datepickerAppendToBody)?o.$parent.$eval(h.datepickerAppendToBody):e.appendToBody,l,a,v,w,y;o.showButtonBar=angular.isDefined(h.showButtonBar)?o.$parent.$eval(h.showButtonBar):e.showButtonBar;o.getText=function(n){return o[n+"Text"]||e[n+"Text"]};h.$observe("datepickerPopup",function(n){p=n||e.datepickerPopup;c.$render()});l=angular.element("<div datepicker-popup-wrap><div datepicker><\/div><\/div>");l.attr({"ng-model":"date","ng-change":"dateSelection()"});a=angular.element(l.children()[0]);h.datepickerOptions&&angular.forEach(o.$parent.$eval(h.datepickerOptions),function(n,t){a.attr(b(t),n)});angular.forEach(["minDate","maxDate"],function(n){h[n]&&(o.$parent.$watch(t(h[n]),function(t){o[n]=t}),a.attr(b(n),n))});h.dateDisabled&&a.attr("date-disabled","dateDisabled({ date: date, mode: mode })");c.$parsers.unshift(k);o.dateSelection=function(n){angular.isDefined(n)&&(o.date=n);c.$setViewValue(o.date);c.$render();g&&(o.isOpen=!1,s[0].focus())};s.bind("input change keyup",function(){o.$apply(function(){o.date=c.$modelValue})});c.$render=function(){var n=c.$viewValue?u(c.$viewValue,p):"";s.val(n);o.date=k(c.$modelValue)};v=function(n){o.isOpen&&n.target!==s[0]&&o.$apply(function(){o.isOpen=!1})};w=function(n){o.keydown(n)};s.bind("keydown",w);o.keydown=function(n){27===n.which?(n.preventDefault(),n.stopPropagation(),o.close()):40!==n.which||o.isOpen||(o.isOpen=!0)};o.$watch("isOpen",function(n){n?(o.$broadcast("datepicker.focus"),o.position=d?r.offset(s):r.position(s),o.position.top=o.position.top+s.prop("offsetHeight"),i.bind("click",v)):i.unbind("click",v)});o.select=function(n){if("today"===n){var t=new Date;angular.isDate(c.$modelValue)?(n=new Date(c.$modelValue),n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):n=new Date(t.setHours(0,0,0,0))}o.dateSelection(n)};o.close=function(){o.isOpen=!1;s[0].focus()};y=n(l)(o);d?i.find("body").append(y):s.after(y);o.$on("$destroy",function(){y.remove();s.unbind("keydown",w);i.unbind("click",v)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(n,t){t.bind("click",function(n){n.preventDefault();n.stopPropagation()})}}});angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(n){var t=null,i,r;this.open=function(u){t||(n.bind("click",i),n.bind("keydown",r));t&&t!==u&&(t.isOpen=!1);t=u};this.close=function(u){t===u&&(t=null,n.unbind("click",i),n.unbind("keydown",r))};i=function(n){n&&n.isDefaultPrevented()||t.$apply(function(){t.isOpen=!1})};r=function(n){27===n.which&&(t.focusToggleElement(),i())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(n,t,i,r,u,f){var s,o=this,e=n.$new(),c=r.openClass,h=angular.noop,l=t.onToggle?i(t.onToggle):angular.noop;this.init=function(r){o.$element=r;t.isOpen&&(s=i(t.isOpen),h=s.assign,n.$watch(s,function(n){e.isOpen=!!n}))};this.toggle=function(n){return e.isOpen=arguments.length?!!n:!e.isOpen};this.isOpen=function(){return e.isOpen};e.focusToggleElement=function(){o.toggleElement&&o.toggleElement[0].focus()};e.$watch("isOpen",function(t,i){f[t?"addClass":"removeClass"](o.$element,c);t?(e.focusToggleElement(),u.open(e)):u.close(e);h(n,t);angular.isDefined(t)&&t!==i&&l(n,{open:!!t})});n.$on("$locationChangeSuccess",function(){e.isOpen=!1});n.$on("$destroy",function(){e.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(n,t,i,r){r.init(t)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(n,t,i,r){if(r){r.toggleElement=t;var u=function(u){u.preventDefault();t.hasClass("disabled")||i.disabled||n.$apply(function(){r.toggle()})};t.bind("click",u);t.attr({"aria-haspopup":!0,"aria-expanded":!1});n.$watch(r.isOpen,function(n){t.attr("aria-expanded",!!n)});n.$on("$destroy",function(){t.unbind("click",u)})}}}});angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var n=[];return{add:function(t,i){n.push({key:t,value:i})},get:function(t){for(var i=0;i<n.length;i++)if(t==n[i].key)return n[i]},keys:function(){for(var i=[],t=0;t<n.length;t++)i.push(n[t].key);return i},top:function(){return n[n.length-1]},remove:function(t){for(var r=-1,i=0;i<n.length;i++)if(t==n[i].key){r=i;break}return n.splice(r,1)[0]},removeTop:function(){return n.splice(n.length-1,1)[0]},length:function(){return n.length}}}}}).directive("modalBackdrop",["$timeout",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t){t.animate=!1;n(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(n,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(n,t){return t.templateUrl||"template/modal/window.html"},link:function(i,r,u){r.addClass(u.windowClass||"");i.size=u.size;t(function(){i.animate=!0;r[0].focus()});i.close=function(t){var i=n.getTop();i&&i.value.backdrop&&"static"!=i.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),n.dismiss(i.key,"backdrop click"))}}}}]).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(n,t,i,r,u,f){function c(){for(var t=-1,i=e.keys(),n=0;n<i.length;n++)e.get(i[n]).value.backdrop&&(t=n);return t}function l(n){var r=i.find("body").eq(0),t=e.get(n).value;e.remove(n);a(t.modalDomEl,t.modalScope,300,function(){t.modalScope.$destroy();r.toggleClass(v,e.length()>0);y()})}function y(){if(h&&-1==c()){var n=o;a(h,o,150,function(){n.$destroy();n=null});h=void 0;o=void 0}}function a(i,r,u,f){function e(){e.done||(e.done=!0,i.remove(),f&&f())}var o,s;r.animate=!1;o=n.transitionEndEventName;o?(s=t(e,u),i.bind(o,function(){t.cancel(s);e();r.$apply()})):t(e,0)}var h,o,v="modal-open",e=f.createNew(),s={};return u.$watch(c,function(n){o&&(o.index=n)}),i.bind("keydown",function(n){var t;27===n.which&&(t=e.top(),t&&t.value.keyboard&&(n.preventDefault(),u.$apply(function(){s.dismiss(t.key,"escape key press")})))}),s.open=function(n,t){var f,s,l,a;e.add(n,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});f=i.find("body").eq(0);s=c();s>=0&&!h&&(o=u.$new(!0),o.index=s,h=r("<div modal-backdrop><\/div>")(o),f.append(h));l=angular.element("<div modal-window><\/div>");l.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:e.length()-1,animate:"animate"}).html(t.content);a=r(l)(t.scope);e.top().value.modalDomEl=a;f.append(a);f.addClass(v)},s.close=function(n,t){var i=e.get(n).value;i&&(i.deferred.resolve(t),l(n))},s.dismiss=function(n,t){var i=e.get(n).value;i&&(i.deferred.reject(t),l(n))},s.dismissAll=function(n){for(var t=this.getTop();t;)this.dismiss(t.key,n),t=this.getTop()},s.getTop=function(){return e.top()},s}]).provider("$modal",function(){var n={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,i,r,u,f,e,o){function h(n){return n.template?r.when(n.template):u.get(n.templateUrl,{cache:f}).then(function(n){return n.data})}function c(n){var i=[];return angular.forEach(n,function(n){(angular.isFunction(n)||angular.isArray(n))&&i.push(r.when(t.invoke(n)))}),i}var s={};return s.open=function(t){var f=r.defer(),s=r.defer(),u={result:f.promise,opened:s.promise,close:function(n){o.close(u,n)},dismiss:function(n){o.dismiss(u,n)}},l;if(t=angular.extend({},n.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return l=r.all([h(t)].concat(c(t.resolve))),l.then(function(n){var s=(t.scope||i).$new(),c,r,h;s.$close=u.close;s.$dismiss=u.dismiss;r={};h=1;t.controller&&(r.$scope=s,r.$modalInstance=u,angular.forEach(t.resolve,function(t,i){r[i]=n[h++]}),c=e(t.controller,r));o.open(u,{scope:s,deferred:f,content:n[0],backdrop:t.backdrop,keyboard:t.keyboard,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(n){f.reject(n)}),l.then(function(){s.resolve(!0)},function(){s.reject(!1)}),u},s}]};return n});angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(n,t,i){var u=this,r={$setViewValue:angular.noop},f=t.numPages?i(t.numPages).assign:angular.noop;this.init=function(f,e){r=f;this.config=e;r.$render=function(){u.render()};t.itemsPerPage?n.$parent.$watch(i(t.itemsPerPage),function(t){u.itemsPerPage=parseInt(t,10);n.totalPages=u.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage};this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(n.totalItems/this.itemsPerPage);return Math.max(t||0,1)};this.render=function(){n.page=parseInt(r.$viewValue,10)||1};n.selectPage=function(t){n.page!==t&&t>0&&t<=n.totalPages&&(r.$setViewValue(t),r.$render())};n.getText=function(t){return n[t+"Text"]||u.config[t+"Text"]};n.noPrevious=function(){return 1===n.page};n.noNext=function(){return n.page===n.totalPages};n.$watch("totalItems",function(){n.totalPages=u.calculateTotalPages()});n.$watch("totalPages",function(t){f(n.$parent,t);n.page>t?n.selectPage(t):r.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(n,t){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(i,r,u,f){function s(n,t,i){return{number:n,text:t,active:i}}function a(n,t){var f=[],i=1,r=t,o=angular.isDefined(e)&&t>e,u,c,l,a;for(o&&(h?(i=Math.max(n-Math.floor(e/2),1),r=i+e-1,r>t&&(r=t,i=r-e+1)):(i=(Math.ceil(n/e)-1)*e+1,r=Math.min(i+e-1,t))),u=i;r>=u;u++)c=s(u,u,u===n),f.push(c);return o&&!h&&(i>1&&(l=s(i-1,"...",!1),f.unshift(l)),t>r&&(a=s(r+1,"...",!1),f.push(a))),f}var o=f[0],c=f[1],e,h,l;c&&(e=angular.isDefined(u.maxSize)?i.$parent.$eval(u.maxSize):t.maxSize,h=angular.isDefined(u.rotate)?i.$parent.$eval(u.rotate):t.rotate,i.boundaryLinks=angular.isDefined(u.boundaryLinks)?i.$parent.$eval(u.boundaryLinks):t.boundaryLinks,i.directionLinks=angular.isDefined(u.directionLinks)?i.$parent.$eval(u.directionLinks):t.directionLinks,o.init(c,t),u.maxSize&&i.$parent.$watch(n(u.maxSize),function(n){e=parseInt(n,10);o.render()}),l=o.render,o.render=function(){l();i.page>0&&i.page<=i.totalPages&&(i.pages=a(i.page,i.totalPages))})}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(n){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,i,r,u){var e=u[0],f=u[1];f&&(t.align=angular.isDefined(r.align)?t.$parent.$eval(r.align):n.align,e.init(f,n))}}}]);angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function i(n){var t="-";return n.replace(/[A-Z]/g,function(n,i){return(i?t:"")+n.toLowerCase()})}var r={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},t={};this.options=function(n){angular.extend(t,n)};this.setTriggers=function(t){angular.extend(n,t)};this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(u,f,e,o,s,h,c){return function(u,l,a){function w(t){var i=t||v.trigger||a,r=n[i]||i;return{show:i,hide:r}}var v=angular.extend({},r,t),b=i(u),y=c.startSymbol(),p=c.endSymbol(),k="<div "+b+'-popup title="'+y+"tt_title"+p+'" content="'+y+"tt_content"+p+'" placement="'+y+"tt_placement"+p+'" animation="tt_animation" is-open="tt_isOpen"><\/div>';return{restrict:"EA",scope:!0,compile:function(){var n=f(k);return function(t,i,r){function ut(){t.tt_isOpen?d():k()}function k(){(!et||t.$eval(r[l+"Enable"]))&&(t.tt_popupDelay?y||(y=e(it,t.tt_popupDelay,!1),y.then(function(n){n()})):it()())}function d(){t.$apply(function(){g()})}function it(){return y=null,a&&(e.cancel(a),a=null),t.tt_content?(ft(),f.css({top:0,left:0,display:"block"}),p?s.find("body").append(f):i.after(f),rt(),t.tt_isOpen=!0,t.$digest(),rt):angular.noop}function g(){t.tt_isOpen=!1;e.cancel(y);y=null;t.tt_animation?a||(a=e(b,500)):b()}function ft(){f&&b();f=n(t,function(){});t.$digest()}function b(){a=null;f&&(f.remove(),f=null)}var f,a,y,p=angular.isDefined(v.appendToBody)?v.appendToBody:!1,c=w(void 0),et=angular.isDefined(r[l+"Enable"]),rt=function(){var n=h.positionElements(i,f,t.tt_placement,p);n.top+="px";n.left+="px";f.css(n)},nt,tt;t.tt_isOpen=!1;r.$observe(u,function(n){t.tt_content=n;!n&&t.tt_isOpen&&g()});r.$observe(l+"Title",function(n){t.tt_title=n});r.$observe(l+"Placement",function(n){t.tt_placement=angular.isDefined(n)?n:v.placement});r.$observe(l+"PopupDelay",function(n){var i=parseInt(n,10);t.tt_popupDelay=isNaN(i)?v.popupDelay:i});nt=function(){i.unbind(c.show,k);i.unbind(c.hide,d)};r.$observe(l+"Trigger",function(n){nt();c=w(n);c.show===c.hide?i.bind(c.show,ut):(i.bind(c.show,k),i.bind(c.hide,d))});tt=t.$eval(r[l+"Animation"]);t.tt_animation=angular.isDefined(tt)?!!tt:v.animation;r.$observe(l+"AppendToBody",function(n){p=angular.isDefined(n)?o(n)(t):p});p&&t.$on("$locationChangeSuccess",function(){t.tt_isOpen&&g()});t.$on("$destroy",function(){e.cancel(a);e.cancel(y);nt();b()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(n){return n("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(n){return n("tooltipHtmlUnsafe","tooltip","mouseenter")}]);angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(n){return n("popover","popover","click")}]);angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(n,t,i){var r=this,u=angular.isDefined(t.animate)?n.$parent.$eval(t.animate):i.animate;this.bars=[];n.max=angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max;this.addBar=function(t,i){u||i.css({transition:"none"});this.bars.push(t);t.$watch("value",function(i){t.percent=+(100*i/n.max).toFixed(2)});t.$on("$destroy",function(){i=null;r.removeBar(t)})};this.removeBar=function(n){this.bars.splice(this.bars.indexOf(n),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,t,i,r){r.addBar(n,t)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(n,t,i,r){r.addBar(n,angular.element(t.children()[0]))}}});angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(n,t,i){var r={$setViewValue:angular.noop};this.init=function(u){r=u;r.$render=this.render;this.stateOn=angular.isDefined(t.stateOn)?n.$parent.$eval(t.stateOn):i.stateOn;this.stateOff=angular.isDefined(t.stateOff)?n.$parent.$eval(t.stateOff):i.stateOff;var f=angular.isDefined(t.ratingStates)?n.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max);n.range=this.buildTemplateObjects(f)};this.buildTemplateObjects=function(n){for(var t=0,i=n.length;i>t;t++)n[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff},n[t]);return n};n.rate=function(t){!n.readonly&&t>=0&&t<=n.range.length&&(r.$setViewValue(t),r.$render())};n.enter=function(t){n.readonly||(n.value=t);n.onHover({value:t})};n.reset=function(){n.value=r.$viewValue;n.onLeave()};n.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),n.rate(n.value+(38===t.which||39===t.which?1:-1)))};this.render=function(){n.value=r.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}});angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(n){var i=this,t=i.tabs=n.tabs=[];i.select=function(n){angular.forEach(t,function(t){t.active&&t!==n&&(t.active=!1,t.onDeselect())});n.active=!0;n.onSelect()};i.addTab=function(n){t.push(n);1===t.length?n.active=!0:n.active&&i.select(n)};i.removeTab=function(n){var r=t.indexOf(n),u;n.active&&t.length>1&&(u=r==t.length-1?r-1:r+1,i.select(t[u]));t.splice(r,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(n,t,i){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",function(n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(t,i,r){return function(t,i,u,f){t.$watch("active",function(n){n&&f.select(t)});t.disabled=!1;u.disabled&&t.$parent.$watch(n(u.disabled),function(n){t.disabled=!!n});t.select=function(){t.disabled||(t.active=!0)};f.addTab(t);t.$on("$destroy",function(){f.removeTab(t)});t.$transcludeFn=r}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(n,t){n.$watch("headingElement",function(n){n&&(t.html(""),t.append(n))})}}}]).directive("tabContentTransclude",function(){function n(n){return n.tagName&&(n.hasAttribute("tab-heading")||n.hasAttribute("data-tab-heading")||"tab-heading"===n.tagName.toLowerCase()||"data-tab-heading"===n.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(t,i,r){var u=t.$eval(r.tabContentTransclude);u.$transcludeFn(u.$parent,function(t){angular.forEach(t,function(t){n(t)?u.headingElement=t:i.append(t)})})}}});angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(n,t,i,r,u,f){function p(){var t=parseInt(n.hours,10),i=n.showMeridian?t>0&&13>t:t>=0&&24>t;if(i)return(n.showMeridian&&(12===t&&(t=0),n.meridian===y[1]&&(t+=12)),t)}function w(){var t=parseInt(n.minutes,10);if(t>=0&&60>t)return t}function h(n){return angular.isDefined(n)&&n.toString().length<2?"0"+n:n}function c(n){b();o.$setViewValue(new Date(e));v(n)}function b(){o.$setValidity("time",!0);n.invalidHours=!1;n.invalidMinutes=!1}function v(t){var i=e.getHours(),r=e.getMinutes();n.showMeridian&&(i=0===i||12===i?12:i%12);n.hours="h"===t?i:h(i);n.minutes="m"===t?r:h(r);n.meridian=e.getHours()<12?y[0]:y[1]}function s(n){var t=new Date(e.getTime()+6e4*n);e.setHours(t.getHours(),t.getMinutes());c()}var e=new Date,o={$setViewValue:angular.noop},y=angular.isDefined(t.meridians)?n.$parent.$eval(t.meridians):f.meridians||u.DATETIME_FORMATS.AMPMS,l,a;this.init=function(i,r){o=i;o.$render=this.render;var u=r.eq(0),e=r.eq(1),s=angular.isDefined(t.mousewheel)?n.$parent.$eval(t.mousewheel):f.mousewheel;s&&this.setupMousewheelEvents(u,e);n.readonlyInput=angular.isDefined(t.readonlyInput)?n.$parent.$eval(t.readonlyInput):f.readonlyInput;this.setupInputEvents(u,e)};l=f.hourStep;t.hourStep&&n.$parent.$watch(i(t.hourStep),function(n){l=parseInt(n,10)});a=f.minuteStep;t.minuteStep&&n.$parent.$watch(i(t.minuteStep),function(n){a=parseInt(n,10)});n.showMeridian=f.showMeridian;t.showMeridian&&n.$parent.$watch(i(t.showMeridian),function(t){if(n.showMeridian=!!t,o.$error.time){var i=p(),r=w();angular.isDefined(i)&&angular.isDefined(r)&&(e.setHours(i),c())}else v()});this.setupMousewheelEvents=function(t,i){var r=function(n){n.originalEvent&&(n=n.originalEvent);var t=n.wheelDelta?n.wheelDelta:-n.deltaY;return n.detail||t>0};t.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementHours():n.decrementHours());t.preventDefault()});i.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementMinutes():n.decrementMinutes());t.preventDefault()})};this.setupInputEvents=function(t,i){if(n.readonlyInput)return n.updateHours=angular.noop,void(n.updateMinutes=angular.noop);var r=function(t,i){o.$setViewValue(null);o.$setValidity("time",!1);angular.isDefined(t)&&(n.invalidHours=t);angular.isDefined(i)&&(n.invalidMinutes=i)};n.updateHours=function(){var n=p();angular.isDefined(n)?(e.setHours(n),c("h")):r(!0)};t.bind("blur",function(){!n.invalidHours&&n.hours<10&&n.$apply(function(){n.hours=h(n.hours)})});n.updateMinutes=function(){var n=w();angular.isDefined(n)?(e.setMinutes(n),c("m")):r(void 0,!0)};i.bind("blur",function(){!n.invalidMinutes&&n.minutes<10&&n.$apply(function(){n.minutes=h(n.minutes)})})};this.render=function(){var n=o.$modelValue?new Date(o.$modelValue):null;isNaN(n)?(o.$setValidity("time",!1),r.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.')):(n&&(e=n),b(),v())};n.incrementHours=function(){s(60*l)};n.decrementHours=function(){s(60*-l)};n.incrementMinutes=function(){s(a)};n.decrementMinutes=function(){s(-a)};n.toggleMeridian=function(){s(720*(e.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u,t.find("input"))}}});angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(n){var t=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(i){var r=i.match(t);if(!r)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+i+'".');return{itemName:r[3],source:n(r[4]),viewMapper:n(r[2]||r[1]),modelMapper:n(r[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(n,t,i,r,u,f,e){var o=[9,13,27,38,40];return{require:"ngModel",link:function(s,h,c,l){var k,et=s.$eval(c.typeaheadMinLength)||1,rt=s.$eval(c.typeaheadWaitMs)||0,ot=s.$eval(c.typeaheadEditable)!==!1,p=t(c.typeaheadLoading).assign||angular.noop,st=t(c.typeaheadOnSelect),ut=c.typeaheadInputFormatter?t(c.typeaheadInputFormatter):void 0,ft=c.typeaheadAppendToBody?s.$eval(c.typeaheadAppendToBody):!1,ht=t(c.ngModel).assign,v=e.parse(c.typeahead),a=s.$new(),w,b,y,d,g,nt,tt,it;s.$on("$destroy",function(){a.$destroy()});w="typeahead-"+a.$id+"-"+Math.floor(1e4*Math.random());h.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":w});b=angular.element("<div typeahead-popup><\/div>");b.attr({id:w,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});angular.isDefined(c.typeaheadTemplateUrl)&&b.attr("template-url",c.typeaheadTemplateUrl);y=function(){a.matches=[];a.activeIdx=-1;h.attr("aria-expanded",!1)};d=function(n){return w+"-option-"+n};a.$watch("activeIdx",function(n){0>n?h.removeAttr("aria-activedescendant"):h.attr("aria-activedescendant",d(n))});g=function(n){var t={$viewValue:n};p(s,!0);i.when(v.source(s,t)).then(function(i){var u=n===l.$viewValue,r;if(u&&k)if(i.length>0){for(a.activeIdx=0,a.matches.length=0,r=0;r<i.length;r++)t[v.itemName]=i[r],a.matches.push({id:d(r),label:v.viewMapper(a,t),model:i[r]});a.query=n;a.position=ft?f.offset(h):f.position(h);a.position.top=a.position.top+h.prop("offsetHeight");h.attr("aria-expanded",!0)}else y();u&&p(s,!1)},function(){y();p(s,!1)})};y();a.query=void 0;l.$parsers.unshift(function(n){return k=!0,n&&n.length>=et?rt>0?(nt&&r.cancel(nt),nt=r(function(){g(n)},rt)):g(n):(p(s,!1),y()),ot?n:n?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),n)});l.$formatters.push(function(n){var i,r,t={};return ut?(t.$model=n,ut(s,t)):(t[v.itemName]=n,i=v.viewMapper(s,t),t[v.itemName]=void 0,r=v.viewMapper(s,t),i!==r?i:n)});a.select=function(n){var t,u,i={};i[v.itemName]=u=a.matches[n].model;t=v.modelMapper(s,i);ht(s,t);l.$setValidity("editable",!0);st(s,{$item:u,$model:t,$label:v.viewMapper(s,i)});y();r(function(){h[0].focus()},0,!1)};h.bind("keydown",function(n){0!==a.matches.length&&-1!==o.indexOf(n.which)&&(n.preventDefault(),40===n.which?(a.activeIdx=(a.activeIdx+1)%a.matches.length,a.$digest()):38===n.which?(a.activeIdx=(a.activeIdx?a.activeIdx:a.matches.length)-1,a.$digest()):13===n.which||9===n.which?a.$apply(function(){a.select(a.activeIdx)}):27===n.which&&(n.stopPropagation(),y(),a.$digest()))});h.bind("blur",function(){k=!1});tt=function(n){h[0]!==n.target&&(y(),a.$digest())};u.bind("click",tt);s.$on("$destroy",function(){u.unbind("click",tt)});it=n(b)(a);ft?u.find("body").append(it):h.after(it)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(n,t,i){n.templateUrl=i.templateUrl;n.isOpen=function(){return n.matches.length>0};n.isActive=function(t){return n.active==t};n.selectActive=function(t){n.active=t};n.selectMatch=function(t){n.select({activeIdx:t})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(n,t,i,r){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(u,f,e){var o=r(e.templateUrl)(u.$parent)||"template/typeahead/typeahead-match.html";n.get(o,{cache:t}).success(function(n){f.replaceWith(i(n.trim())(u))})}}}]).filter("typeaheadHighlight",function(){function n(n){return n.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i?(""+t).replace(new RegExp(n(i),"gi"),"<strong>$&<\/strong>"):t}}),function(n,t){function i(n,i,r){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(u,f,e,o,s){function v(){l&&(l.remove(),l=null);h&&(h.$destroy(),h=null);c&&(r.leave(c,function(){l=null}),l=c,c=null)}function y(){var e=n.current&&n.current.locals,o;t.isDefined(e&&e.$template)?(e=u.$new(),o=n.current,c=s(e,function(n){r.enter(n,null,c||f,function(){t.isDefined(a)&&(!a||u.$eval(a))&&i()});v()}),h=o.scope=e,h.$emit("$viewContentLoaded"),h.$eval(p)):v()}var h,c,l,a=e.autoscroll,p=e.onload||"";u.$on("$routeChangeSuccess",y);y()}}}function r(n,t,i){return{restrict:"ECA",priority:-400,link:function(r,u){var e=i.current,f=e.locals,o;u.html(f.$template);o=n(u.contents());e.controller&&(f.$scope=r,f=t(e.controller,f),e.controllerAs&&(r[e.controllerAs]=f),u.data("$ngControllerController",f),u.children().data("$ngControllerController",f));o(r)}}}n=t.module("ngRoute",["ng"]).provider("$route",function(){function i(n,i){return t.extend(new(t.extend(function(){},{prototype:n})),i)}function r(n,t){var r=t.caseInsensitiveMatch,i={originalPath:n,regexp:n},u=i.keys=[];return n=n.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(n,t,i,r){return n="?"===r?r:null,r="*"===r?r:null,u.push({name:i,optional:!!n}),t=t||"",""+(n?"":t)+"(?:"+(n?t:"")+(r&&"(.+?)"||"([^/]+)")+(n||"")+")"+(n||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=RegExp("^"+n+"$",r?"i":""),i}var n={};this.when=function(i,u){if(n[i]=t.extend({reloadOnSearch:!0},u,i&&r(i,u)),i){var f="/"==i[i.length-1]?i.substr(0,i.length-1):i+"/";n[f]=t.extend({redirectTo:i},r(f,u))}return this};this.otherwise=function(n){return this.when(null,n),this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(r,u,f,e,o,s,h,c){function v(){var n=y(),i=l.current;n&&i&&n.$$route===i.$$route&&t.equals(n.pathParams,i.pathParams)&&!n.reloadOnSearch&&!a?(i.params=n.params,t.copy(i.params,f),r.$broadcast("$routeUpdate",i)):(n||i)&&(a=!1,r.$broadcast("$routeChangeStart",n,i),(l.current=n)&&n.redirectTo&&(t.isString(n.redirectTo)?u.path(p(n.redirectTo,n.params)).search(n.params).replace():u.url(n.redirectTo(n.pathParams,u.path(),u.search())).replace()),e.when(n).then(function(){if(n){var u=t.extend({},n.resolve),r,i;return t.forEach(u,function(n,i){u[i]=t.isString(n)?o.get(n):o.invoke(n)}),t.isDefined(r=n.template)?t.isFunction(r)&&(r=r(n.params)):t.isDefined(i=n.templateUrl)&&(t.isFunction(i)&&(i=i(n.params)),i=c.getTrustedResourceUrl(i),t.isDefined(i)&&(n.loadedTemplateUrl=i,r=s.get(i,{cache:h}).then(function(n){return n.data}))),t.isDefined(r)&&(u.$template=r),e.all(u)}}).then(function(u){n==l.current&&(n&&(n.locals=u,t.copy(n.params,f)),r.$broadcast("$routeChangeSuccess",n,i))},function(t){n==l.current&&r.$broadcast("$routeChangeError",n,i,t)}))}function y(){var f,r;return t.forEach(n,function(n){var e,o,h,s,a,c,l;if(e=!r){if(o=u.path(),e=n.keys,h={},n.regexp)if(o=n.regexp.exec(o)){for(s=1,a=o.length;s<a;++s)c=e[s-1],l="string"==typeof o[s]?decodeURIComponent(o[s]):o[s],c&&l&&(h[c.name]=l);e=h}else e=null;else e=null;e=f=e}e&&(r=i(n,{params:t.extend({},u.search(),f),pathParams:f}),r.$$route=n)}),r||n[null]&&i(n[null],{params:{},pathParams:{}})}function p(n,i){var r=[];return t.forEach((n||"").split(":"),function(n,t){if(0===t)r.push(n);else{var u=n.match(/(\w+)(.*)/),f=u[1];r.push(i[f]);r.push(u[2]||"");delete i[f]}}),r.join("")}var a=!1,l={routes:n,reload:function(){a=!0;r.$evalAsync(v)}};return r.$on("$locationChangeSuccess",v),l}]});n.provider("$routeParams",function(){this.$get=function(){return{}}});n.directive("ngView",i);n.directive("ngView",r);i.$inject=["$route","$anchorScroll","$animate"];r.$inject=["$compile","$controller","$route"]}(window,window.angular)