From e50280faee928f28d0071aac24695a3db4159f54 Mon Sep 17 00:00:00 2001 From: lacksfish Date: Tue, 15 Mar 2022 11:37:21 +0100 Subject: [PATCH 1/3] QOL updates Update node and python, add image name in docker-compose, package.json update --- Dockerfile | 6 +++--- docker-compose.yml | 1 + package.json | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 47f1cbb..62153aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM node:13.14.0-stretch-slim +FROM nikolaik/python-nodejs:python3.7-nodejs16-slim RUN mkdir /home/dvws-node WORKDIR /home/dvws-node -RUN apt-get update && apt-get install -y git python3 build-essential --no-install-recommends +RUN apt-get update && apt-get install -y git build-essential --no-install-recommends COPY . . RUN npm install --build-from-source -ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.7.3/wait /wait +ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait RUN chmod +x /wait diff --git a/docker-compose.yml b/docker-compose.yml index 7b23ce0..3d0924c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,6 +7,7 @@ services: environment: MYSQL_ROOT_PASSWORD: mysecretpassword web: + image: snoopysecurity/dvws-node:latest build: . ports: - "80:80" diff --git a/package.json b/package.json index 7c2363f..40de39b 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "cors": "^2.8.5", "dotenv": "^6.0.0", "express": "^4.16.3", - "express-fileupload": "richardgirges/express-fileupload#1.1.7-alpha.4", + "express-fileupload": "1.1.7-alpha.4", "express-jwt": "^5.3.1", "express-jwt-permissions": "^1.3.3", "graphql": "^16.1.0", From d65dce5e75759ffc214554755ba827954948852e Mon Sep 17 00:00:00 2001 From: lacksfish Date: Tue, 15 Mar 2022 15:16:09 +0100 Subject: [PATCH 2/3] do not depend on CDN, use local files for angular, jquery and bootstrap --- index.html | 8 +- index.js | 6 ++ package.json | 3 + public/home.html | 8 +- public/index.html | 8 +- public/notes.html | 8 +- public/passphrasegen.html | 8 +- public/search.html | 8 +- public/static/angular1.1.1.min.js | 162 ++++++++++++++++++++++++++++++ public/upload.html | 9 +- 10 files changed, 199 insertions(+), 29 deletions(-) create mode 100644 public/static/angular1.1.1.min.js diff --git a/index.html b/index.html index 412912e..29ce084 100644 --- a/index.html +++ b/index.html @@ -1,8 +1,8 @@ - - - - + + + + diff --git a/index.js b/index.js index 27f7967..7b7b7b9 100644 --- a/index.js +++ b/index.js @@ -5,6 +5,7 @@ const bodyParser = require('body-parser'); const cors = require('cors'); const swaggerUI = require('swagger-ui-express'); const fileUpload = require('express-fileupload'); +const path = require('path'); const swaggerDocument = require('./swagger'); //Swagger const soapservice = require('./soapserver/dvwsuserservice'); //SOAP Service @@ -23,6 +24,11 @@ const stage = require('./config')[environment]; const routes = require('./routes/index.js'); app.use(express.static('public')); +app.use("/css", express.static(path.join(__dirname, "node_modules/bootstrap/dist/css"))); +app.use("/js", express.static(path.join(__dirname, "node_modules/bootstrap/dist/js"))); +app.use("/js", express.static(path.join(__dirname, "node_modules/jquery/dist"))); +app.use("/js", express.static(path.join(__dirname, "node_modules/angular"))); + app.use(bodyParser.urlencoded({ extended: true })); app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(swaggerDocument)); app.use('/dvwsuserservice', soapservice); diff --git a/package.json b/package.json index 40de39b..a867253 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,11 @@ "homepage": "https://github.com/snoopysecurity/dvws-node#readme", "dependencies": { "@graphql-tools/schema": "^8.3.1", + "angular": "1.3.9", "apollo-server": "^3.5.0", "bcrypt": "^3.0.1", "body-parser": "^1.18.3", + "bootstrap": "4.0.0", "cors": "^2.8.5", "dotenv": "^6.0.0", "express": "^4.16.3", @@ -32,6 +34,7 @@ "graphql-tools": "^8.2.0", "http-proxy-middleware": "^1.0.3", "install": "^0.13.0", + "jquery": "1.11.1", "jsonwebtoken": "^8.3.0", "libxmljs": "^0.19.7", "mongoose": "^5.10.15", diff --git a/public/home.html b/public/home.html index 1b8d104..c10c0bf 100644 --- a/public/home.html +++ b/public/home.html @@ -1,7 +1,7 @@ - - - - + + + + diff --git a/public/index.html b/public/index.html index 412912e..29ce084 100644 --- a/public/index.html +++ b/public/index.html @@ -1,8 +1,8 @@ - - - - + + + + diff --git a/public/notes.html b/public/notes.html index 947fc84..ad062bf 100644 --- a/public/notes.html +++ b/public/notes.html @@ -2,10 +2,10 @@ - - - - + + + + diff --git a/public/passphrasegen.html b/public/passphrasegen.html index 15df4f5..023df53 100644 --- a/public/passphrasegen.html +++ b/public/passphrasegen.html @@ -1,10 +1,10 @@ - - - - + + + + diff --git a/public/search.html b/public/search.html index f5b116e..c58110b 100644 --- a/public/search.html +++ b/public/search.html @@ -1,8 +1,8 @@ - - - - + + + + diff --git a/public/static/angular1.1.1.min.js b/public/static/angular1.1.1.min.js new file mode 100644 index 0000000..455538d --- /dev/null +++ b/public/static/angular1.1.1.min.js @@ -0,0 +1,162 @@ +/* + AngularJS v1.1.1 + (c) 2010-2012 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(U,ba,p){'use strict';function m(b,a,c){var d;if(b)if(N(b))for(d in b)d!="prototype"&&d!="length"&&d!="name"&&b.hasOwnProperty(d)&&a.call(c,b[d],d);else if(b.forEach&&b.forEach!==m)b.forEach(a,c);else if(M(b)&&ya(b.length))for(d=0;d=0&&b.splice(c,1);return a}function V(b,a){if(pa(b)||b&&b.$evalAsync&&b.$watch)throw y("Can't copy Window or Scope");if(a){if(b=== +a)throw y("Can't copy equivalent objects or arrays");if(H(b)){for(;a.length;)a.pop();for(var c=0;c2?ia.call(arguments,2):[];return N(a)&&!(a instanceof RegExp)?c.length? +function(){return arguments.length?a.apply(b,c.concat(ia.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}:a}function ic(b,a){var c=a;/^\$+/.test(b)?c=p:pa(a)?c="$WINDOW":a&&ba===a?c="$DOCUMENT":a&&a.$evalAsync&&a.$watch&&(c="$SCOPE");return c}function ca(b,a){return JSON.stringify(b,ic,a?" ":null)}function pb(b){return F(b)?JSON.parse(b):b}function Da(b){b&&b.length!==0?(b=G(""+b),b=!(b=="f"||b=="0"||b=="false"||b=="no"||b=="n"||b=="[]")):b=!1; +return b}function qa(b){b=t(b).clone();try{b.html("")}catch(a){}return t("
").append(b).html().match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+G(b)})}function Ya(b){var a={},c,d;m((b||"").split("&"),function(b){b&&(c=b.split("="),d=decodeURIComponent(c[0]),a[d]=s(c[1])?decodeURIComponent(c[1]):!0)});return a}function qb(b){var a=[];m(b,function(b,d){a.push(Za(d,!0)+(b===!0?"":"="+Za(b,!0)))});return a.length?a.join("&"):""}function $a(b){return Za(b,!0).replace(/%26/gi,"&").replace(/%3D/gi, +"=").replace(/%2B/gi,"+")}function Za(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(a?null:/%20/g,"+")}function jc(b,a){function c(a){a&&d.push(a)}var d=[b],e,h,i=["ng:app","ng-app","x-ng-app","data-ng-app"],f=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;m(i,function(a){i[a]=!0;c(ba.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(m(b.querySelectorAll("."+a),c),m(b.querySelectorAll("."+a+"\\:"),c),m(b.querySelectorAll("["+ +a+"]"),c))});m(d,function(a){if(!e){var b=f.exec(" "+a.className+" ");b?(e=a,h=(b[2]||"").replace(/\s+/g,",")):m(a.attributes,function(b){if(!e&&i[b.name])e=a,h=b.value})}});e&&a(e,h?[h]:[])}function rb(b,a){b=t(b);a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");var c=sb(a);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,i){a.$apply(function(){b.data("$injector",i);c(b)(a)})}]);return c}function ab(b,a){a=a||"_";return b.replace(kc, +function(b,d){return(d?a:"")+b.toLowerCase()})}function ra(b,a,c){if(!b)throw new y("Argument '"+(a||"?")+"' is "+(c||"required"));return b}function sa(b,a,c){c&&H(b)&&(b=b[b.length-1]);ra(N(b),a,"not a function, got "+(b&&typeof b=="object"?b.constructor.name||"Object":typeof b));return b}function lc(b){function a(a,b,e){return a[b]||(a[b]=e())}return a(a(b,"angular",Object),"module",function(){var b={};return function(d,e,h){e&&b.hasOwnProperty(d)&&(b[d]=null);return a(b,d,function(){function a(c, +d,e){return function(){b[e||"push"]([c,d,arguments]);return j}}if(!e)throw y("No module: "+d);var b=[],c=[],k=a("$injector","invoke"),j={_invokeQueue:b,_runBlocks:c,requires:e,name:d,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:k,run:function(a){c.push(a); +return this}};h&&k(h);return j})}})}function tb(b){return b.replace(mc,function(a,b,d,e){return e?d.toUpperCase():d}).replace(nc,"Moz$1")}function bb(b,a){function c(){var e;for(var b=[this],c=a,i,f,g,k,j,l;b.length;){i=b.shift();f=0;for(g=i.length;f 
"+b;a.removeChild(a.firstChild);cb(this,a.childNodes);this.remove()}else cb(this,b)}function db(b){return b.cloneNode(!0)}function ta(b){ub(b);for(var a=0,b=b.childNodes||[];a-1}function xb(b,a){a&&m(a.split(" "),function(a){b.className= +R((" "+b.className+" ").replace(/[\n\t]/g," ").replace(" "+R(a)+" "," "))})}function yb(b,a){a&&m(a.split(" "),function(a){if(!Ga(b,a))b.className=R(b.className+" "+R(a))})}function cb(b,a){if(a)for(var a=!a.nodeName&&s(a.length)&&!pa(a)?a:[a],c=0;c4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"),W.length>20&&c.warn("Cookie '"+a+"' possibly not set or overflowed because too many cookies were already set ("+ +W.length+" > 20 )")}else{if(g.cookie!==x){x=g.cookie;d=x.split("; ");W={};for(f=0;f0&&(W[unescape(e.substring(0,k))]=unescape(e.substring(k+1)))}return W}};f.defer=function(a,b){var c;n++;c=l(function(){delete q[c];e(a)},b||0);q[c]=!0;return c};f.defer.cancel=function(a){return q[a]?(delete q[a],o(a),e(D),!0):!1}}function wc(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new vc(b,d,a,c)}]}function xc(){this.$get=function(){function b(b, +d){function e(a){if(a!=l){if(o){if(o==a)o=a.n}else o=a;h(a.n,a.p);h(a,l);l=a;l.n=null}}function h(a,b){if(a!=b){if(a)a.p=b;if(b)b.n=a}}if(b in a)throw y("cacheId "+b+" taken");var i=0,f=B({},d,{id:b}),g={},k=d&&d.capacity||Number.MAX_VALUE,j={},l=null,o=null;return a[b]={put:function(a,b){var c=j[a]||(j[a]={key:a});e(c);if(!u(b))return a in g||i++,g[a]=b,i>k&&this.remove(o.key),b},get:function(a){var b=j[a];if(b)return e(b),g[a]},remove:function(a){var b=j[a];if(b){if(b==l)l=b.p;if(b==o)o=b.n;h(b.n, +b.p);delete j[a];delete g[a];i--}},removeAll:function(){g={};i=0;j={};l=o=null},destroy:function(){j=f=g=null;delete a[b]},info:function(){return B({},f,{size:i})}}}var a={};b.info=function(){var b={};m(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function yc(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function Db(b){var a={},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,h="Template must have exactly one root element. was: "; +this.directive=function f(d,e){F(d)?(ra(e,"directive"),a.hasOwnProperty(d)||(a[d]=[],b.factory(d+c,["$injector","$exceptionHandler",function(b,c){var e=[];m(a[d],function(a){try{var f=b.invoke(a);if(N(f))f={compile:L(f)};else if(!f.compile&&f.link)f.compile=L(f.link);f.priority=f.priority||0;f.name=f.name||d;f.require=f.require||f.controller&&f.name;f.restrict=f.restrict||"A";e.push(f)}catch(k){c(k)}});return e}])),a[d].push(e)):m(d,ob(f));return this};this.$get=["$injector","$interpolate","$exceptionHandler", +"$http","$templateCache","$parse","$controller","$rootScope",function(b,g,k,j,l,o,q,n){function z(a,b,c){a instanceof t||(a=t(a));m(a,function(b,c){b.nodeType==3&&(a[c]=t(b).wrap("").parent()[0])});var d=v(a,b,a,c);return function(b,c){ra(b,"scope");var e=c?va.clone.call(a):a;e.data("$scope",b);r(e,"ng-scope");c&&c(e,b);d&&d(b,e,e);return e}}function r(a,b){try{a.addClass(b)}catch(c){}}function v(a,b,c,d){function e(a,c,d,k){for(var g,h,j,n,o,l=0,q=0,r=f.length;lA.priority)break;if(Y=A.scope)I("isolated scope",C,A,x),M(Y)&&(r(x,"ng-isolate-scope"),C=A),r(x,"ng-scope"),K=K||A;J=A.name;if(Y=A.controller)s=s||{},I("'"+J+"' controller",s[J],A,x),s[J]=A;if(Y=A.transclude)I("transclusion",D,A,x),D=A,j=A.priority,Y=="element"?(X=t(b),x=c.$$element=t("<\!-- "+J+": "+c[J]+" --\>"),b=x[0],Ka(e,t(X[0]),b),u=z(X,d,j)):(X=t(db(b)).contents(),x.html(""),u=z(X,d));if(Y=A.template)if(I("template",w,A,x),w=A,Y=Gb(Y),A.replace){X=t("
"+R(Y)+"
").contents(); +b=X[0];if(X.length!=1||b.nodeType!==1)throw new y(h+Y);Ka(e,x,b);J={$attr:{}};a=a.concat(da(b,a.splice(E+1,a.length-(E+1)),J));Q(c,J);G=a.length}else x.html(Y);if(A.templateUrl)I("template",w,A,x),w=A,n=W(a.splice(E,a.length-E),n,x,c,e,A.replace,u),G=a.length;else if(A.compile)try{B=A.compile(x,c,u),N(B)?f(null,B):B&&f(B.pre,B.post)}catch(L){k(L,qa(x))}if(A.terminal)n.terminal=!0,j=Math.max(j,A.priority)}n.scope=K&&K.scope;n.transclude=D&&u;return n}function w(d,e,g,h){var j=!1;if(a.hasOwnProperty(e))for(var n, +e=b.get(e+c),l=0,o=e.length;ln.priority)&&n.restrict.indexOf(g)!=-1)d.push(n),j=!0}catch(q){k(q)}return j}function Q(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;m(a,function(d,e){e.charAt(0)!="$"&&(b[e]&&(d+=(e==="style"?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});m(b,function(b,f){f=="class"?(r(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):f=="style"?e.attr("style",e.attr("style")+";"+b):f.charAt(0)!="$"&&!a.hasOwnProperty(f)&&(a[f]=b,d[f]=c[f])})}function W(a,b,c,d,e, +f,g){var k=[],n,o,q=c[0],r=a.shift(),z=B({},r,{controller:null,templateUrl:null,transclude:null,scope:null});c.html("");j.get(r.templateUrl,{cache:l}).success(function(j){var l,r,j=Gb(j);if(f){r=t("
"+R(j)+"
").contents();l=r[0];if(r.length!=1||l.nodeType!==1)throw new y(h+j);j={$attr:{}};Ka(e,c,l);da(l,a,j);Q(d,j)}else l=q,c.html(j);a.unshift(z);n=C(a,c,d,g);for(o=v(c.contents(),g);k.length;){var K=k.pop(),j=k.pop();r=k.pop();var x=k.pop(),m=l;r!==q&&(m=db(l),Ka(j,t(r),m));n(function(){b(o, +x,m,e,K)},x,m,e,K)}k=null}).error(function(a,b,c,d){throw y("Failed to load template: "+d.url);});return function(a,c,d,e,f){k?(k.push(c),k.push(d),k.push(e),k.push(f)):n(function(){b(o,c,d,e,f)},c,d,e,f)}}function x(a,b){return b.priority-a.priority}function I(a,b,c,d){if(b)throw y("Multiple directives ["+b.name+", "+c.name+"] asking for "+a+" on: "+qa(d));}function J(a,b){var c=g(b,!0);c&&a.push({priority:0,compile:L(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);r(d.data("$binding", +e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function X(a,b,c,d){var e=g(c,!0);e&&b.push({priority:100,compile:L(function(a,b,c){b=c.$$observers||(c.$$observers={});d==="class"&&(e=g(c[d],!0));c[d]=p;(b[d]||(b[d]=[])).$$inter=!0;(c.$$observers&&c.$$observers[d].$$scope||a).$watch(e,function(a){c.$set(d,a)})})})}function Ka(a,b,c){var d=b[0],e=d.parentNode,f,g;if(a){f=0;for(g=a.length;f0){var e=I[0],f=e.text;if(f==a||f==b||f==c||f==d||!a&&!b&&!c&&!d)return e}return!1}function f(b,c,d,f){return(b=i(b,c,d,f))?(a&&!b.json&&e("is not valid json",b),I.shift(),b):!1}function g(a){f(a)||e("is unexpected, expecting ["+a+"]",i())}function k(a,b){return function(c,d){return a(c,d,b)}}function j(a,b,c){return function(d,e){return b(d,e,a,c)}}function l(){for(var a=[];;)if(I.length>0&&!i("}",")",";","]")&& +a.push(s()),!f(";"))return a.length==1?a[0]:function(b,c){for(var d,e=0;e","<=",">="))a=j(a,b.fn,r());return a}function v(){for(var a=m(),b;b=f("*","/","%");)a=j(a,b.fn,m());return a}function m(){var a;return f("+")?C():(a=f("-"))?j(W,a.fn,m()):(a=f("!"))?k(a.fn,m()):C()}function C(){var a;if(f("("))a=s(),g(")");else if(f("["))a=w();else if(f("{"))a=Q();else{var b=f();(a=b.fn)||e("not a primary expression",b)}for(var c;b=f("(","[",".");)b.text==="("?(a=t(a,c),c=null):b.text=== +"["?(c=a,a=ea(a)):b.text==="."?(c=a,a=u(a)):e("IMPOSSIBLE");return a}function w(){var a=[];if(h().text!="]"){do a.push(J());while(f(","))}g("]");return function(b,c){for(var d=[],e=0;e1;d++){var e=a.shift(),h=b[e];h||(h={},b[e]=h);b=h}return b[a.shift()]=c}function gb(b,a,c){if(!a)return b;for(var a=a.split("."),d,e=b,h=a.length,i=0;i7),hasEvent:function(a){if(a=="input"&&aa==9)return!1;if(u(c[a])){var b=e.createElement("div");c[a]="on"+a in b}return c[a]},csp:e.securityPolicy?e.securityPolicy.isActive:!1}}]}function Uc(){this.$get=L(U)} +function Nb(b){var a={},c,d,e;if(!b)return a;m(b.split("\n"),function(b){e=b.indexOf(":");c=G(R(b.substr(0,e)));d=R(b.substr(e+1));c&&(a[c]?a[c]+=", "+d:a[c]=d)});return a}function Vc(b,a){var c=Wc.exec(b);if(c==null)return!0;var d={protocol:c[2],host:c[4],port:E(c[6])||xa[c[2]]||null,relativeProtocol:c[2]===p||c[2]===""},c=hb.exec(a),c={protocol:c[1],host:c[3],port:E(c[5])||xa[c[1]]||null};return(d.protocol==c.protocol||d.relativeProtocol)&&d.host==c.host&&(d.port==c.port||d.relativeProtocol&&c.port== +xa[c.protocol])}function Ob(b){var a=M(b)?b:p;return function(c){a||(a=Nb(b));return c?a[G(c)]||null:a}}function Pb(b,a,c){if(N(c))return c(b,a);m(c,function(c){b=c(b,a)});return b}function Xc(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d=this.defaults={transformResponse:[function(d){F(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=pb(d,!0)));return d}],transformRequest:[function(a){return M(a)&&Va.apply(a)!=="[object File]"?ca(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"}, +post:{"Content-Type":"application/json;charset=utf-8"},put:{"Content-Type":"application/json;charset=utf-8"}}},e=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,g,k,j){function l(a){function c(a){var b=B({},a,{data:Pb(a.data,a.headers,f)});return 200<=a.status&&a.status<300?b:k.reject(b)}a.method=la(a.method);var e=a.transformRequest||d.transformRequest,f=a.transformResponse||d.transformResponse,g=d.headers,h=Vc(a.url, +b.url())?b.cookies()["XSRF-TOKEN"]:p,g=B({"X-XSRF-TOKEN":h},g.common,g[G(a.method)],a.headers),e=Pb(a.data,Ob(g),e),j;u(a.data)&&delete g["Content-Type"];if(u(a.withCredentials)&&!u(d.withCredentials))a.withCredentials=d.withCredentials;j=o(a,e,g);j=j.then(c,c);m(z,function(a){j=a(j)});j.success=function(b){j.then(function(c){b(c.data,c.status,c.headers,a)});return j};j.error=function(b){j.then(null,function(c){b(c.data,c.status,c.headers,a)});return j};return j}function o(b,c,d){function e(a,b,c){m&& +(200<=a&&a<300?m.put(z,[a,b,Nb(c)]):m.remove(z));f(b,a,c);g.$apply()}function f(a,c,d){c=Math.max(c,0);(200<=c&&c<300?j.resolve:j.reject)({data:a,status:c,headers:Ob(d),config:b})}function i(){var a=Ba(l.pendingRequests,b);a!==-1&&l.pendingRequests.splice(a,1)}var j=k.defer(),o=j.promise,m,p,z=q(b.url,b.params);l.pendingRequests.push(b);o.then(i,i);b.cache&&b.method=="GET"&&(m=M(b.cache)?b.cache:n);if(m)if(p=m.get(z))if(p.then)return p.then(i,i),p;else H(p)?f(p[1],p[0],V(p[2])):f(p,200,{});else m.put(z, +o);p||a(b.method,z,c,e,d,b.timeout,b.withCredentials,b.responseType);return o}function q(a,b){if(!b)return a;var c=[];ec(b,function(a,b){a==null||a==p||(H(a)||(a=[a]),m(a,function(a){M(a)&&(a=ca(a));c.push(encodeURIComponent(b)+"="+encodeURIComponent(a))}))});return a+(a.indexOf("?")==-1?"?":"&")+c.join("&")}var n=c("$http"),z=[];m(e,function(a){z.push(F(a)?j.get(a):j.invoke(a))});l.pendingRequests=[];(function(a){m(arguments,function(a){l[a]=function(b,c){return l(B(c||{},{method:a,url:b}))}})})("get", +"delete","head","jsonp");(function(a){m(arguments,function(a){l[a]=function(b,c,d){return l(B(d||{},{method:a,url:b,data:c}))}})})("post","put");l.defaults=d;return l}]}function Yc(){this.$get=["$browser","$window","$document",function(b,a,c){return Zc(b,$c,b.defer,a.angular.callbacks,c[0],a.location.protocol.replace(":",""))}]}function Zc(b,a,c,d,e,h){function i(a,b){var c=e.createElement("script"),d=function(){e.body.removeChild(c);b&&b()};c.type="text/javascript";c.src=a;aa?c.onreadystatechange= +function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror=d;e.body.appendChild(c)}return function(e,g,k,j,l,o,q,n){function p(a,c,d,e){c=(g.match(hb)||["",h])[1]=="file"?d?200:404:c;a(c==1223?204:c,d,e);b.$$completeOutstandingRequest(D)}b.$$incOutstandingRequestCount();g=g||b.url();if(G(e)=="jsonp"){var r="_"+(d.counter++).toString(36);d[r]=function(a){d[r].data=a};i(g.replace("JSON_CALLBACK","angular.callbacks."+r),function(){d[r].data?p(j,200,d[r].data):p(j,-2);delete d[r]})}else{var v= +new a;v.open(e,g,!0);m(l,function(a,b){a&&v.setRequestHeader(b,a)});var t;v.onreadystatechange=function(){v.readyState==4&&p(j,t||v.status,v.response||v.responseText,v.getAllResponseHeaders())};if(q)v.withCredentials=!0;if(n)v.responseType=n;v.send(k||"");o>0&&c(function(){t=-1;v.abort()},o)}}}function ad(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1, +minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y", +longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return b===1?"one":"other"}}}}function bd(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,f,g){var k=c.defer(),j=k.promise,l=s(g)&&!g,f=a.defer(function(){try{k.resolve(e())}catch(a){k.reject(a),d(a)}l||b.$apply()},f),g=function(){delete h[j.$$timeoutId]};j.$$timeoutId=f;h[f]=k;j.then(g,g);return j}var h={};e.cancel=function(b){return b&& +b.$$timeoutId in h?(h[b.$$timeoutId].reject("canceled"),a.defer.cancel(b.$$timeoutId)):!1};return e}]}function Qb(b){function a(a,e){return b.factory(a+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",Rb);a("date",Sb);a("filter",cd);a("json",dd);a("limitTo",ed);a("lowercase",fd);a("number",Tb);a("orderBy",Ub);a("uppercase",gd)}function cd(){return function(b,a){if(!(b instanceof Array))return b;var c=[];c.check=function(a){for(var b= +0;b-1;case "object":for(var c in a)if(c.charAt(0)!=="$"&&d(a[c],b))return!0;return!1;case "array":for(c=0;ce+1?i="0":(f=i,k=!0)}if(!k){i=(i.split(Wb)[1]||"").length;u(e)&&(e=Math.min(Math.max(a.minFrac,i),a.maxFrac));var i=Math.pow(10,e),b=Math.round(b*i)/i,b=(""+b).split(Wb),i=b[0],b=b[1]||"",k=0,j=a.lgSize,l=a.gSize;if(i.length>=j+l)for(var k=i.length-j,o=0;o0||e>-c)e+=c;e===0&&c==-12&&(e=12);return kb(e,a,d)}}function Oa(b,a){return function(c, +d){var e=c["get"+b](),h=la(a?"SHORT"+b:b);return d[h][e]}}function Sb(b){function a(a){var b;if(b=a.match(c)){var a=new Date(0),h=0,i=0;b[9]&&(h=E(b[9]+b[10]),i=E(b[9]+b[11]));a.setUTCFullYear(E(b[1]),E(b[2])-1,E(b[3]));a.setUTCHours(E(b[4]||0)-h,E(b[5]||0)-i,E(b[6]||0),E(b[7]||0))}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var h="",i=[],f,g,e=e||"mediumDate",e=b.DATETIME_FORMATS[e]||e;F(c)&&(c=hd.test(c)? +E(c):a(c));ya(c)&&(c=new Date(c));if(!oa(c))return c;for(;e;)(g=id.exec(e))?(i=i.concat(ia.call(g,1)),e=i.pop()):(i.push(e),e=null);m(i,function(a){f=jd[a];h+=f?f(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return h}}function dd(){return function(b){return ca(b,!0)}}function ed(){return function(b,a){if(!(b instanceof Array))return b;var a=E(a),c=[],d,e;if(!b||!(b instanceof Array))return c;a>b.length?a=b.length:a<-b.length&&(a=-b.length);a>0?(d=0,e=a):(d=b.length+a,e=b.length); +for(;dl?(d.$setValidity("maxlength",!1),p):(d.$setValidity("maxlength",!0),a)};d.$parsers.push(e);d.$formatters.push(e)}}function lb(b,a){b="ngClass"+b;return S(function(c,d,e){function h(b,d){if(a===!0||c.$index%2===a)d&& +b!==d&&i(d),f(b)}function i(a){M(a)&&!H(a)&&(a=Wa(a,function(a,b){if(a)return b}));d.removeClass(H(a)?a.join(" "):a)}function f(a){M(a)&&!H(a)&&(a=Wa(a,function(a,b){if(a)return b}));a&&d.addClass(H(a)?a.join(" "):a)}c.$watch(e[b],h,!0);e.$observe("class",function(){var a=c.$eval(e[b]);h(a,a)});b!=="ngClass"&&c.$watch("$index",function(d,h){var j=d%2;j!==h%2&&(j==a?f(c.$eval(e[b])):i(c.$eval(e[b])))})})}var G=function(b){return F(b)?b.toLowerCase():b},la=function(b){return F(b)?b.toUpperCase():b}, +y=U.Error,aa=E((/msie (\d+)/.exec(G(navigator.userAgent))||[])[1]),t,ja,ia=[].slice,Ua=[].push,Va=Object.prototype.toString,Yb=U.angular||(U.angular={}),ua,Eb,Z=["0","0","0"];D.$inject=[];na.$inject=[];Eb=aa<9?function(b){b=b.nodeName?b:b[0];return b.scopeName&&b.scopeName!="HTML"?la(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var kc=/[A-Z]/g,kd={full:"1.1.1",major:1,minor:1,dot:1,codeName:"pathological-kerning"},Fa=P.cache={},Ea=P.expando="ng-"+ +(new Date).getTime(),oc=1,Zb=U.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},eb=U.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)},mc=/([\:\-\_]+(.))/g,nc=/^moz([A-Z])/,va=P.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;this.bind("DOMContentLoaded",a);P(U).bind("load",a)},toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+ +"]"},eq:function(b){return b>=0?t(this[b]):t(this[this.length+b])},length:0,push:Ua,sort:[].sort,splice:[].splice},Ia={};m("multiple,selected,checked,disabled,readOnly,required".split(","),function(b){Ia[G(b)]=b});var Bb={};m("input,select,option,textarea,button,form".split(","),function(b){Bb[la(b)]=!0});m({data:wb,inheritedData:Ha,scope:function(b){return Ha(b,"$scope")},controller:zb,injector:function(b){return Ha(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ga,css:function(b, +a,c){a=tb(a);if(s(c))b.style[a]=c;else{var d;aa<=8&&(d=b.currentStyle&&b.currentStyle[a],d===""&&(d="auto"));d=d||b.style[a];aa<=8&&(d=d===""?p:d);return d}},attr:function(b,a,c){var d=G(a);if(Ia[d])if(s(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||D).specified?d:p;else if(s(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),b===null?p:b},prop:function(b,a,c){if(s(c))b[a]=c;else return b[a]},text:B(aa<9? +function(b,a){if(b.nodeType==1){if(u(a))return b.innerText;b.innerText=a}else{if(u(a))return b.nodeValue;b.nodeValue=a}}:function(b,a){if(u(a))return b.textContent;b.textContent=a},{$dv:""}),val:function(b,a){if(u(a))return b.value;b.value=a},html:function(b,a){if(u(a))return b.innerHTML;for(var c=0,d=b.childNodes;c":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)}, +"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Lc={n:"\n",f:"\u000c",r:"\r",t:"\t",v:"\u000b","'":"'",'"':'"'},jb={},Wc=/^(([^:]+):)?\/\/(\w+:{0,1}\w*@)?([\w\.-]*)?(:([0-9]+))?(.*)$/,$c=U.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw new y("This browser does not support XMLHttpRequest."); +};Qb.$inject=["$provide"];Rb.$inject=["$locale"];Tb.$inject=["$locale"];var Wb=".",jd={yyyy:O("FullYear",4),yy:O("FullYear",2,0,!0),y:O("FullYear",1),MMMM:Oa("Month"),MMM:Oa("Month",!0),MM:O("Month",2,1),M:O("Month",1,1),dd:O("Date",2),d:O("Date",1),HH:O("Hours",2),H:O("Hours",1),hh:O("Hours",2,-12),h:O("Hours",1,-12),mm:O("Minutes",2),m:O("Minutes",1),ss:O("Seconds",2),s:O("Seconds",1),EEEE:Oa("Day"),EEE:Oa("Day",!0),a:function(a,c){return a.getHours()<12?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=a.getTimezoneOffset(); +return kb(a/60,2)+kb(Math.abs(a%60),2)}},id=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,hd=/^\d+$/;Sb.$inject=["$locale"];var fd=L(G),gd=L(la);Ub.$inject=["$parse"];var ld=L({restrict:"E",compile:function(a,c){c.href||c.$set("href","");return function(a,c){c.bind("click",function(a){if(!c.attr("href"))return a.preventDefault(),!1})}}}),mb={};m(Ia,function(a,c){var d=fa("ng-"+c);mb[d]=function(){return{priority:100,compile:function(){return function(a,h,i){a.$watch(i[d], +function(a){i.$set(c,!!a)})}}}}});m(["src","href"],function(a){var c=fa("ng-"+a);mb[c]=function(){return{priority:99,link:function(d,e,h){h.$observe(c,function(c){c&&(h.$set(a,c),aa&&e.prop(a,c))})}}}});var Ra={$addControl:D,$removeControl:D,$setValidity:D,$setDirty:D,$setPristine:D};Xb.$inject=["$element","$attrs","$scope"];var Ua=function(a){return["$timeout",function(c){var d={name:"form",restrict:"E",controller:Xb,compile:function(){return{pre:function(a,d,i,f){if(!i.action){var g=function(a){a.preventDefault? +a.preventDefault():a.returnValue=!1};Zb(d[0],"submit",g);d.bind("$destroy",function(){c(function(){eb(d[0],"submit",g)},0,!1)})}var k=d.parent().controller("form"),j=i.name||i.ngForm;j&&(a[j]=f);k&&d.bind("$destroy",function(){k.$removeControl(f);j&&(a[j]=p);B(f,Ra)})}}}};return a?B(V(d),{restrict:"EAC"}):d}]},md=Ua(),nd=Ua(!0),od=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,pd=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,qd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/, +ac={text:Ta,number:function(a,c,d,e,h,i){Ta(a,c,d,e,h,i);e.$parsers.push(function(a){var c=T(a);return c||qd.test(a)?(e.$setValidity("number",!0),a===""?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),p)});e.$formatters.push(function(a){return T(a)?"":""+a});if(d.min){var f=parseFloat(d.min),a=function(a){return!T(a)&&ag?(e.$setValidity("max", +!1),p):(e.$setValidity("max",!0),a)};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(a){return T(a)||ya(a)?(e.$setValidity("number",!0),a):(e.$setValidity("number",!1),p)})},url:function(a,c,d,e,h,i){Ta(a,c,d,e,h,i);a=function(a){return T(a)||od.test(a)?(e.$setValidity("url",!0),a):(e.$setValidity("url",!1),p)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e,h,i){Ta(a,c,d,e,h,i);a=function(a){return T(a)||pd.test(a)?(e.$setValidity("email",!0),a):(e.$setValidity("email", +!1),p)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){u(d.name)&&c.attr("name",za());c.bind("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var h=d.ngTrueValue,i=d.ngFalseValue;F(h)||(h=!0);F(i)||(i=!1);c.bind("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(a){return a=== +h});e.$parsers.push(function(a){return a?h:i})},hidden:D,button:D,submit:D,reset:D},bc=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,e,h,i){i&&(ac[G(h.type)]||ac.text)(d,e,h,i,c,a)}}}],Qa="ng-valid",Pa="ng-invalid",ma="ng-pristine",Sa="ng-dirty",rd=["$scope","$exceptionHandler","$attrs","$element","$parse",function(a,c,d,e,h){function i(a,c){c=c?"-"+ab(c,"-"):"";e.removeClass((a?Pa:Qa)+c).addClass((a?Qa:Pa)+c)}this.$modelValue=this.$viewValue=Number.NaN; +this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var f=h(d.ngModel),g=f.assign;if(!g)throw y(Fb+d.ngModel+" ("+qa(e)+")");this.$render=D;var k=e.inheritedData("$formController")||Ra,j=0,l=this.$error={};e.addClass(ma);i(!0);this.$setValidity=function(a,c){if(l[a]!==!c){if(c){if(l[a]&&j--,!j)i(!0),this.$valid=!0,this.$invalid=!1}else i(!1),this.$invalid=!0,this.$valid=!1,j++;l[a]=!c;i(c,a);k.$setValidity(a, +c,this)}};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;e.removeClass(Sa).addClass(ma)};this.$setViewValue=function(d){this.$viewValue=d;if(this.$pristine)this.$dirty=!0,this.$pristine=!1,e.removeClass(ma).addClass(Sa),k.$setDirty();m(this.$parsers,function(a){d=a(d)});if(this.$modelValue!==d)this.$modelValue=d,g(a,d),m(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};var o=this;a.$watch(function(){var c=f(a);if(o.$modelValue!==c){var d=o.$formatters,e=d.length;for(o.$modelValue= +c;e--;)c=d[e](c);if(o.$viewValue!==c)o.$viewValue=c,o.$render()}})}],sd=function(){return{require:["ngModel","^?form"],controller:rd,link:function(a,c,d,e){var h=e[0],i=e[1]||Ra;i.$addControl(h);c.bind("$destroy",function(){i.$removeControl(h)})}}},td=L({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),cc=function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){d.required=!0;var h=function(a){if(d.required&&(T(a)||a===!1))e.$setValidity("required", +!1);else return e.$setValidity("required",!0),a};e.$formatters.push(h);e.$parsers.unshift(h);d.$observe("required",function(){h(e.$viewValue)})}}}},ud=function(){return{require:"ngModel",link:function(a,c,d,e){var h=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){var c=[];a&&m(a.split(h),function(a){a&&c.push(R(a))});return c});e.$formatters.push(function(a){return H(a)?a.join(", "):p})}}},vd=/^(true|false|\d+)$/,wd=function(){return{priority:100,compile:function(a, +c){return vd.test(c.ngValue)?function(a,c,h){h.$set("value",a.$eval(h.ngValue))}:function(a,c,h){a.$watch(h.ngValue,function(a){h.$set("value",a,!1)})}}}},xd=S(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==p?"":a)})}),yd=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],zd=[function(){return function(a, +c,d){c.addClass("ng-binding").data("$binding",d.ngBindHtmlUnsafe);a.$watch(d.ngBindHtmlUnsafe,function(a){c.html(a||"")})}}],Ad=lb("",!0),Bd=lb("Odd",0),Cd=lb("Even",1),Dd=S({compile:function(a,c){c.$set("ngCloak",p);a.removeClass("ng-cloak")}}),Ed=[function(){return{scope:!0,controller:"@"}}],Fd=["$sniffer",function(a){return{priority:1E3,compile:function(){a.csp=!0}}}],dc={};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "),function(a){var c=fa("ng-"+ +a);dc[c]=["$parse",function(d){return function(e,h,i){var f=d(i[c]);h.bind(G(a),function(a){e.$apply(function(){f(e,{$event:a})})})}}]});var Gd=S(function(a,c,d){c.bind("submit",function(){a.$apply(d.ngSubmit)})}),Hd=["$http","$templateCache","$anchorScroll","$compile",function(a,c,d,e){return{restrict:"ECA",terminal:!0,compile:function(h,i){var f=i.ngInclude||i.src,g=i.onload||"",k=i.autoscroll;return function(h,i){var o=0,m,n=function(){m&&(m.$destroy(),m=null);i.html("")};h.$watch(f,function(f){var p= +++o;f?a.get(f,{cache:c}).success(function(a){p===o&&(m&&m.$destroy(),m=h.$new(),i.html(a),e(i.contents())(m),s(k)&&(!k||h.$eval(k))&&d(),m.$emit("$includeContentLoaded"),h.$eval(g))}).error(function(){p===o&&n()}):n()})}}}}],Id=S({compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Jd=S({terminal:!0,priority:1E3}),Kd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,h,i){var f=i.count,g=h.attr(i.$attr.when),k=i.offset||0,j=e.$eval(g),l={},o= +c.startSymbol(),q=c.endSymbol();m(j,function(a,e){l[e]=c(a.replace(d,o+f+"-"+k+q))});e.$watch(function(){var c=parseFloat(e.$eval(f));return isNaN(c)?"":(j[c]||(c=a.pluralCat(c-k)),l[c](e,h,!0))},function(a){h.text(a)})}}}],Ld=S({transclude:"element",priority:1E3,terminal:!0,compile:function(a,c,d){return function(a,c,i){var f=i.ngRepeat,i=f.match(/^\s*(.+)\s+in\s+(.*)\s*$/),g,k,j;if(!i)throw y("Expected ngRepeat in form of '_item_ in _collection_' but got '"+f+"'.");f=i[1];g=i[2];i=f.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/); +if(!i)throw y("'item' in 'item in collection' should be identifier or (key, value) but got '"+f+"'.");k=i[3]||i[1];j=i[2];var l=new fb;a.$watch(function(a){var e,f,i=a.$eval(g),m=gc(i,!0),p,t=new fb,C,w,s,u,x=c;if(H(i))s=i||[];else{s=[];for(C in i)i.hasOwnProperty(C)&&C.charAt(0)!="$"&&s.push(C);s.sort()}e=0;for(f=s.length;ey;)u.pop().element.remove()}for(;v.length>w;)v.pop()[0].element.remove()}var i;if(!(i=z.match(d)))throw y("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '"+ +z+"'.");var j=c(i[2]||i[1]),k=i[4]||i[6],l=i[5],m=c(i[3]||""),o=c(i[2]?i[1]:k),q=c(i[7]),v=[[{element:f,label:""}]];r&&(a(r)(e),r.removeClass("ng-scope"),r.remove());f.html("");f.bind("change",function(){e.$apply(function(){var a,c=q(e)||[],d={},h,i,j,m,r,s;if(n){i=[];m=0;for(s=v.length;m@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}'); diff --git a/public/upload.html b/public/upload.html index 99304ba..c4fd890 100644 --- a/public/upload.html +++ b/public/upload.html @@ -1,11 +1,10 @@ - - - - + + + + From b248cd8646248952ab4d20d1fea4072fde988bc9 Mon Sep 17 00:00:00 2001 From: lacksfish Date: Fri, 18 Mar 2022 14:27:24 +0100 Subject: [PATCH 3/3] bootstrap 4 doesnt have glyphicons anymore, use simple text for logout in home.html --- public/home.html | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/public/home.html b/public/home.html index c10c0bf..27b6939 100644 --- a/public/home.html +++ b/public/home.html @@ -37,10 +37,8 @@

Damn Vulnerable Web Services
Home Area







-

Log-out: