notecrypt.appspot.com source logged in
from: https://notecrypt.appspot.com/ and https://news.ycombinator.com/item?id=5787498
<!DOCTYPE html>
<html ng-app>
<head>
<script>
"use strict";
var sjcl = {
cipher: {},
hash: {},
keyexchange: {},
mode: {},
misc: {},
codec: {},
exception: {
corrupt: function (a) {
this.toString = function () {
return "CORRUPT: " + this.message
};
this.message = a
},
invalid: function (a) {
this.toString = function () {
return "INVALID: " + this.message
};
this.message = a
},
bug: function (a) {
this.toString = function () {
return "BUG: " + this.message
};
this.message = a
},
notReady: function (a) {
this.toString = function () {
return "NOT READY: " + this.message
};
this.message = a
}
}
};
if (typeof module != "undefined" && module.exports) module.exports = sjcl;
sjcl.cipher.aes = function (a) {
this.h[0][0][0] || this.z();
var b, c, d, e, f = this.h[0][4],
g = this.h[1];
b = a.length;
var h = 1;
if (b !== 4 && b !== 6 && b !== 8) throw new sjcl.exception.invalid("invalid aes key size");
this.a = [d = a.slice(0), e = []];
for (a = b; a < 4 * b + 28; a++) {
c = d[a - 1];
if (a % b === 0 || b === 8 && a % b === 4) {
c = f[c >>> 24] << 24 ^ f[c >> 16 & 255] << 16 ^ f[c >> 8 & 255] << 8 ^ f[c & 255];
if (a % b === 0) {
c = c << 8 ^ c >>> 24 ^ h << 24;
h = h << 1 ^ (h >> 7) * 283
}
}
d[a] = d[a - b] ^ c
}
for (b = 0; a; b++, a--) {
c = d[b & 3 ? a : a - 4];
e[b] = a <= 4 || b < 4 ? c : g[0][f[c >>> 24]] ^ g[1][f[c >> 16 & 255]] ^ g[2][f[c >> 8 & 255]] ^
g[3][f[c & 255]]
}
};
sjcl.cipher.aes.prototype = {
encrypt: function (a) {
return this.I(a, 0)
},
decrypt: function (a) {
return this.I(a, 1)
},
h: [
[
[],
[],
[],
[],
[]
],
[
[],
[],
[],
[],
[]
]
],
z: function () {
var a = this.h[0],
b = this.h[1],
c = a[4],
d = b[4],
e, f, g, h = [],
i = [],
k, j, l, m;
for (e = 0; e < 0x100; e++) i[(h[e] = e << 1 ^ (e >> 7) * 283) ^ e] = e;
for (f = g = 0; !c[f]; f ^= k || 1, g = i[g] || 1) {
l = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4;
l = l >> 8 ^ l & 255 ^ 99;
c[f] = l;
d[l] = f;
j = h[e = h[k = h[f]]];
m = j * 0x1010101 ^ e * 0x10001 ^ k * 0x101 ^ f * 0x1010100;
j = h[l] * 0x101 ^ l * 0x1010100;
for (e = 0; e < 4; e++) {
a[e][f] = j = j << 24 ^ j >>> 8;
b[e][l] = m = m << 24 ^ m >>> 8
}
}
for (e =
0; e < 5; e++) {
a[e] = a[e].slice(0);
b[e] = b[e].slice(0)
}
},
I: function (a, b) {
if (a.length !== 4) throw new sjcl.exception.invalid("invalid aes block size");
var c = this.a[b],
d = a[0] ^ c[0],
e = a[b ? 3 : 1] ^ c[1],
f = a[2] ^ c[2];
a = a[b ? 1 : 3] ^ c[3];
var g, h, i, k = c.length / 4 - 2,
j, l = 4,
m = [0, 0, 0, 0];
g = this.h[b];
var n = g[0],
o = g[1],
p = g[2],
q = g[3],
r = g[4];
for (j = 0; j < k; j++) {
g = n[d >>> 24] ^ o[e >> 16 & 255] ^ p[f >> 8 & 255] ^ q[a & 255] ^ c[l];
h = n[e >>> 24] ^ o[f >> 16 & 255] ^ p[a >> 8 & 255] ^ q[d & 255] ^ c[l + 1];
i = n[f >>> 24] ^ o[a >> 16 & 255] ^ p[d >> 8 & 255] ^ q[e & 255] ^ c[l + 2];
a = n[a >>> 24] ^ o[d >> 16 &
255] ^ p[e >> 8 & 255] ^ q[f & 255] ^ c[l + 3];
l += 4;
d = g;
e = h;
f = i
}
for (j = 0; j < 4; j++) {
m[b ? 3 & -j : j] = r[d >>> 24] << 24 ^ r[e >> 16 & 255] << 16 ^ r[f >> 8 & 255] << 8 ^ r[a & 255] ^ c[l++];
g = d;
d = e;
e = f;
f = a;
a = g
}
return m
}
};
sjcl.bitArray = {
bitSlice: function (a, b, c) {
a = sjcl.bitArray.P(a.slice(b / 32), 32 - (b & 31)).slice(1);
return c === undefined ? a : sjcl.bitArray.clamp(a, c - b)
},
extract: function (a, b, c) {
var d = Math.floor(-b - c & 31);
return ((b + c - 1 ^ b) & -32 ? a[b / 32 | 0] << 32 - d ^ a[b / 32 + 1 | 0] >>> d : a[b / 32 | 0] >>> d) & (1 << c) - 1
},
concat: function (a, b) {
if (a.length === 0 || b.length === 0) return a.concat(b);
var c = a[a.length - 1],
d = sjcl.bitArray.getPartial(c);
return d === 32 ? a.concat(b) : sjcl.bitArray.P(b, d, c | 0, a.slice(0, a.length - 1))
},
bitLength: function (a) {
var b = a.length;
if (b === 0) return 0;
return (b - 1) * 32 + sjcl.bitArray.getPartial(a[b - 1])
},
clamp: function (a, b) {
if (a.length * 32 < b) return a;
a = a.slice(0, Math.ceil(b / 32));
var c = a.length;
b &= 31;
if (c > 0 && b) a[c - 1] = sjcl.bitArray.partial(b, a[c - 1] & 2147483648 >> b - 1, 1);
return a
},
partial: function (a, b, c) {
if (a === 32) return b;
return (c ? b | 0 : b << 32 - a) + a * 0x10000000000
},
getPartial: function (a) {
return Math.round(a / 0x10000000000) || 32
},
equal: function (a, b) {
if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) return false;
var c = 0,
d;
for (d = 0; d < a.length; d++) c |=
a[d] ^ b[d];
return c === 0
},
P: function (a, b, c, d) {
var e;
e = 0;
if (d === undefined) d = [];
for (; b >= 32; b -= 32) {
d.push(c);
c = 0
}
if (b === 0) return d.concat(a);
for (e = 0; e < a.length; e++) {
d.push(c | a[e] >>> b);
c = a[e] << 32 - b
}
e = a.length ? a[a.length - 1] : 0;
a = sjcl.bitArray.getPartial(e);
d.push(sjcl.bitArray.partial(b + a & 31, b + a > 32 ? c : d.pop(), 1));
return d
},
k: function (a, b) {
return [a[0] ^ b[0], a[1] ^ b[1], a[2] ^ b[2], a[3] ^ b[3]]
}
};
sjcl.codec.utf8String = {
fromBits: function (a) {
var b = "",
c = sjcl.bitArray.bitLength(a),
d, e;
for (d = 0; d < c / 8; d++) {
if ((d & 3) === 0) e = a[d / 4];
b += String.fromCharCode(e >>> 24);
e <<= 8
}
return decodeURIComponent(escape(b))
},
toBits: function (a) {
a = unescape(encodeURIComponent(a));
var b = [],
c, d = 0;
for (c = 0; c < a.length; c++) {
d = d << 8 | a.charCodeAt(c);
if ((c & 3) === 3) {
b.push(d);
d = 0
}
}
c & 3 && b.push(sjcl.bitArray.partial(8 * (c & 3), d));
return b
}
};
sjcl.codec.hex = {
fromBits: function (a) {
var b = "",
c;
for (c = 0; c < a.length; c++) b += ((a[c] | 0) + 0xf00000000000).toString(16).substr(4);
return b.substr(0, sjcl.bitArray.bitLength(a) / 4)
},
toBits: function (a) {
var b, c = [],
d;
a = a.replace(/\s|0x/g, "");
d = a.length;
a += "00000000";
for (b = 0; b < a.length; b += 8) c.push(parseInt(a.substr(b, 8), 16) ^ 0);
return sjcl.bitArray.clamp(c, d * 4)
}
};
sjcl.codec.base64 = {
F: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
fromBits: function (a, b, c) {
var d = "",
e = 0,
f = sjcl.codec.base64.F,
g = 0,
h = sjcl.bitArray.bitLength(a);
if (c) f = f.substr(0, 62) + "-_";
for (c = 0; d.length * 6 < h;) {
d += f.charAt((g ^ a[c] >>> e) >>> 26);
if (e < 6) {
g = a[c] << 6 - e;
e += 26;
c++
} else {
g <<= 6;
e -= 6
}
}
for (; d.length & 3 && !b;) d += "=";
return d
},
toBits: function (a, b) {
a = a.replace(/\s|=/g, "");
var c = [],
d = 0,
e = sjcl.codec.base64.F,
f = 0,
g;
if (b) e = e.substr(0, 62) + "-_";
for (b = 0; b < a.length; b++) {
g = e.indexOf(a.charAt(b));
if (g < 0) throw new sjcl.exception.invalid("this isn't base64!");
if (d > 26) {
d -= 26;
c.push(f ^ g >>> d);
f = g << 32 - d
} else {
d += 6;
f ^= g << 32 - d
}
}
d & 56 && c.push(sjcl.bitArray.partial(d & 56, f, 1));
return c
}
};
sjcl.codec.base64url = {
fromBits: function (a) {
return sjcl.codec.base64.fromBits(a, 1, 1)
},
toBits: function (a) {
return sjcl.codec.base64.toBits(a, 1)
}
};
sjcl.hash.sha256 = function (a) {
this.a[0] || this.z();
if (a) {
this.n = a.n.slice(0);
this.i = a.i.slice(0);
this.e = a.e
} else this.reset()
};
sjcl.hash.sha256.hash = function (a) {
return (new sjcl.hash.sha256).update(a).finalize()
};
sjcl.hash.sha256.prototype = {
blockSize: 512,
reset: function () {
this.n = this.N.slice(0);
this.i = [];
this.e = 0;
return this
},
update: function (a) {
if (typeof a === "string") a = sjcl.codec.utf8String.toBits(a);
var b, c = this.i = sjcl.bitArray.concat(this.i, a);
b = this.e;
a = this.e = b + sjcl.bitArray.bitLength(a);
for (b = 512 + b & -512; b <= a; b += 512) this.D(c.splice(0, 16));
return this
},
finalize: function () {
var a, b = this.i,
c = this.n;
b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(1, 1)]);
for (a = b.length + 2; a & 15; a++) b.push(0);
b.push(Math.floor(this.e /
4294967296));
for (b.push(this.e | 0); b.length;) this.D(b.splice(0, 16));
this.reset();
return c
},
N: [],
a: [],
z: function () {
function a(e) {
return (e - Math.floor(e)) * 0x100000000 | 0
}
var b = 0,
c = 2,
d;
a: for (; b < 64; c++) {
for (d = 2; d * d <= c; d++) if (c % d === 0) continue a;
if (b < 8) this.N[b] = a(Math.pow(c, 0.5));
this.a[b] = a(Math.pow(c, 1 / 3));
b++
}
},
D: function (a) {
var b, c, d = a.slice(0),
e = this.n,
f = this.a,
g = e[0],
h = e[1],
i = e[2],
k = e[3],
j = e[4],
l = e[5],
m = e[6],
n = e[7];
for (a = 0; a < 64; a++) {
if (a < 16) b = d[a];
else {
b = d[a + 1 & 15];
c = d[a + 14 & 15];
b = d[a & 15] = (b >>> 7 ^ b >>> 18 ^
b >>> 3 ^ b << 25 ^ b << 14) + (c >>> 17 ^ c >>> 19 ^ c >>> 10 ^ c << 15 ^ c << 13) + d[a & 15] + d[a + 9 & 15] | 0
}
b = b + n + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (m ^ j & (l ^ m)) + f[a];
n = m;
m = l;
l = j;
j = k + b | 0;
k = i;
i = h;
h = g;
g = b + (h & i ^ k & (h ^ i)) + (h >>> 2 ^ h >>> 13 ^ h >>> 22 ^ h << 30 ^ h << 19 ^ h << 10) | 0
}
e[0] = e[0] + g | 0;
e[1] = e[1] + h | 0;
e[2] = e[2] + i | 0;
e[3] = e[3] + k | 0;
e[4] = e[4] + j | 0;
e[5] = e[5] + l | 0;
e[6] = e[6] + m | 0;
e[7] = e[7] + n | 0
}
};
sjcl.mode.ccm = {
name: "ccm",
encrypt: function (a, b, c, d, e) {
var f, g = b.slice(0),
h = sjcl.bitArray,
i = h.bitLength(c) / 8,
k = h.bitLength(g) / 8;
e = e || 64;
d = d || [];
if (i < 7) throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");
for (f = 2; f < 4 && k >>> 8 * f; f++);
if (f < 15 - i) f = 15 - i;
c = h.clamp(c, 8 * (15 - f));
b = sjcl.mode.ccm.H(a, b, c, d, e, f);
g = sjcl.mode.ccm.J(a, g, c, b, e, f);
return h.concat(g.data, g.tag)
},
decrypt: function (a, b, c, d, e) {
e = e || 64;
d = d || [];
var f = sjcl.bitArray,
g = f.bitLength(c) / 8,
h = f.bitLength(b),
i = f.clamp(b, h - e),
k = f.bitSlice(b,
h - e);
h = (h - e) / 8;
if (g < 7) throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");
for (b = 2; b < 4 && h >>> 8 * b; b++);
if (b < 15 - g) b = 15 - g;
c = f.clamp(c, 8 * (15 - b));
i = sjcl.mode.ccm.J(a, i, c, k, e, b);
a = sjcl.mode.ccm.H(a, i.data, c, d, e, b);
if (!f.equal(i.tag, a)) throw new sjcl.exception.corrupt("ccm: tag doesn't match");
return i.data
},
H: function (a, b, c, d, e, f) {
var g = [],
h = sjcl.bitArray,
i = h.k;
e /= 8;
if (e % 2 || e < 4 || e > 16) throw new sjcl.exception.invalid("ccm: invalid tag length");
if (d.length > 0xffffffff || b.length > 0xffffffff) throw new sjcl.exception.bug("ccm: can't deal with 4GiB or more data");
f = [h.partial(8, (d.length ? 64 : 0) | e - 2 << 2 | f - 1)];
f = h.concat(f, c);
f[3] |= h.bitLength(b) / 8;
f = a.encrypt(f);
if (d.length) {
c = h.bitLength(d) / 8;
if (c <= 65279) g = [h.partial(16, c)];
else if (c <= 0xffffffff) g = h.concat([h.partial(16, 65534)], [c]);
g = h.concat(g, d);
for (d = 0; d < g.length; d += 4) f = a.encrypt(i(f, g.slice(d, d + 4).concat([0, 0, 0])))
}
for (d = 0; d < b.length; d += 4) f = a.encrypt(i(f, b.slice(d, d + 4).concat([0, 0, 0])));
return h.clamp(f, e * 8)
},
J: function (a, b, c, d, e, f) {
var g, h = sjcl.bitArray;
g = h.k;
var i = b.length,
k = h.bitLength(b);
c = h.concat([h.partial(8,
f - 1)], c).concat([0, 0, 0]).slice(0, 4);
d = h.bitSlice(g(d, a.encrypt(c)), 0, e);
if (!i) return {
tag: d,
data: []
};
for (g = 0; g < i; g += 4) {
c[3]++;
e = a.encrypt(c);
b[g] ^= e[0];
b[g + 1] ^= e[1];
b[g + 2] ^= e[2];
b[g + 3] ^= e[3]
}
return {
tag: d,
data: h.clamp(b, k)
}
}
};
sjcl.mode.ocb2 = {
name: "ocb2",
encrypt: function (a, b, c, d, e, f) {
if (sjcl.bitArray.bitLength(c) !== 128) throw new sjcl.exception.invalid("ocb iv must be 128 bits");
var g, h = sjcl.mode.ocb2.B,
i = sjcl.bitArray,
k = i.k,
j = [0, 0, 0, 0];
c = h(a.encrypt(c));
var l, m = [];
d = d || [];
e = e || 64;
for (g = 0; g + 4 < b.length; g += 4) {
l = b.slice(g, g + 4);
j = k(j, l);
m = m.concat(k(c, a.encrypt(k(c, l))));
c = h(c)
}
l = b.slice(g);
b = i.bitLength(l);
g = a.encrypt(k(c, [0, 0, 0, b]));
l = i.clamp(k(l.concat([0, 0, 0]), g), b);
j = k(j, k(l.concat([0, 0, 0]), g));
j = a.encrypt(k(j, k(c, h(c))));
if (d.length) j = k(j, f ? d : sjcl.mode.ocb2.pmac(a, d));
return m.concat(i.concat(l, i.clamp(j, e)))
},
decrypt: function (a, b, c, d, e, f) {
if (sjcl.bitArray.bitLength(c) !== 128) throw new sjcl.exception.invalid("ocb iv must be 128 bits");
e = e || 64;
var g = sjcl.mode.ocb2.B,
h = sjcl.bitArray,
i = h.k,
k = [0, 0, 0, 0],
j = g(a.encrypt(c)),
l, m, n = sjcl.bitArray.bitLength(b) - e,
o = [];
d = d || [];
for (c = 0; c + 4 < n / 32; c += 4) {
l = i(j, a.decrypt(i(j, b.slice(c, c + 4))));
k = i(k, l);
o = o.concat(l);
j = g(j)
}
m = n - c * 32;
l = a.encrypt(i(j, [0, 0, 0, m]));
l = i(l, h.clamp(b.slice(c),
m).concat([0, 0, 0]));
k = i(k, l);
k = a.encrypt(i(k, i(j, g(j))));
if (d.length) k = i(k, f ? d : sjcl.mode.ocb2.pmac(a, d));
if (!h.equal(h.clamp(k, e), h.bitSlice(b, n))) throw new sjcl.exception.corrupt("ocb: tag doesn't match");
return o.concat(h.clamp(l, m))
},
pmac: function (a, b) {
var c, d = sjcl.mode.ocb2.B,
e = sjcl.bitArray,
f = e.k,
g = [0, 0, 0, 0],
h = a.encrypt([0, 0, 0, 0]);
h = f(h, d(d(h)));
for (c = 0; c + 4 < b.length; c += 4) {
h = d(h);
g = f(g, a.encrypt(f(h, b.slice(c, c + 4))))
}
b = b.slice(c);
if (e.bitLength(b) < 128) {
h = f(h, d(h));
b = e.concat(b, [2147483648 | 0, 0,
0, 0
])
}
g = f(g, b);
return a.encrypt(f(d(f(h, d(h))), g))
},
B: function (a) {
return [a[0] << 1 ^ a[1] >>> 31, a[1] << 1 ^ a[2] >>> 31, a[2] << 1 ^ a[3] >>> 31, a[3] << 1 ^ (a[0] >>> 31) * 135]
}
};
sjcl.misc.hmac = function (a, b) {
this.M = b = b || sjcl.hash.sha256;
var c = [
[],
[]
],
d = b.prototype.blockSize / 32;
this.l = [new b, new b];
if (a.length > d) a = b.hash(a);
for (b = 0; b < d; b++) {
c[0][b] = a[b] ^ 909522486;
c[1][b] = a[b] ^ 1549556828
}
this.l[0].update(c[0]);
this.l[1].update(c[1])
};
sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (a, b) {
a = (new this.M(this.l[0])).update(a, b).finalize();
return (new this.M(this.l[1])).update(a).finalize()
};
sjcl.misc.pbkdf2 = function (a, b, c, d, e) {
c = c || 1E3;
if (d < 0 || c < 0) throw sjcl.exception.invalid("invalid params to pbkdf2");
if (typeof a === "string") a = sjcl.codec.utf8String.toBits(a);
e = e || sjcl.misc.hmac;
a = new e(a);
var f, g, h, i, k = [],
j = sjcl.bitArray;
for (i = 1; 32 * k.length < (d || 1); i++) {
e = f = a.encrypt(j.concat(b, [i]));
for (g = 1; g < c; g++) {
f = a.encrypt(f);
for (h = 0; h < f.length; h++) e[h] ^= f[h]
}
k = k.concat(e)
}
if (d) k = j.clamp(k, d);
return k
};
sjcl.random = {
randomWords: function (a, b) {
var c = [];
b = this.isReady(b);
var d;
if (b === 0) throw new sjcl.exception.notReady("generator isn't seeded");
else b & 2 && this.U(!(b & 1));
for (b = 0; b < a; b += 4) {
(b + 1) % 0x10000 === 0 && this.L();
d = this.w();
c.push(d[0], d[1], d[2], d[3])
}
this.L();
return c.slice(0, a)
},
setDefaultParanoia: function (a) {
this.t = a
},
addEntropy: function (a, b, c) {
c = c || "user";
var d, e, f = (new Date).valueOf(),
g = this.q[c],
h = this.isReady(),
i = 0;
d = this.G[c];
if (d === undefined) d = this.G[c] = this.R++;
if (g === undefined) g = this.q[c] =
0;
this.q[c] = (this.q[c] + 1) % this.b.length;
switch (typeof a) {
case "number":
if (b === undefined) b = 1;
this.b[g].update([d, this.u++, 1, b, f, 1, a | 0]);
break;
case "object":
c = Object.prototype.toString.call(a);
if (c === "[object Uint32Array]") {
e = [];
for (c = 0; c < a.length; c++) e.push(a[c]);
a = e
} else {
if (c !== "[object Array]") i = 1;
for (c = 0; c < a.length && !i; c++) if (typeof a[c] != "number") i = 1
} if (!i) {
if (b === undefined) for (c = b = 0; c < a.length; c++) for (e = a[c]; e > 0;) {
b++;
e >>>= 1
}
this.b[g].update([d, this.u++, 2, b, f, a.length].concat(a))
}
break;
case "string":
if (b ===
undefined) b = a.length;
this.b[g].update([d, this.u++, 3, b, f, a.length]);
this.b[g].update(a);
break;
default:
i = 1
}
if (i) throw new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string");
this.j[g] += b;
this.f += b;
if (h === 0) {
this.isReady() !== 0 && this.K("seeded", Math.max(this.g, this.f));
this.K("progress", this.getProgress())
}
},
isReady: function (a) {
a = this.C[a !== undefined ? a : this.t];
return this.g && this.g >= a ? this.j[0] > 80 && (new Date).valueOf() > this.O ? 3 : 1 : this.f >= a ? 2 : 0
},
getProgress: function (a) {
a =
this.C[a ? a : this.t];
return this.g >= a ? 1 : this.f > a ? 1 : this.f / a
},
startCollectors: function () {
if (!this.m) {
if (window.addEventListener) {
window.addEventListener("load", this.o, false);
window.addEventListener("mousemove", this.p, false)
} else if (document.attachEvent) {
document.attachEvent("onload", this.o);
document.attachEvent("onmousemove", this.p)
} else throw new sjcl.exception.bug("can't attach event");
this.m = true
}
},
stopCollectors: function () {
if (this.m) {
if (window.removeEventListener) {
window.removeEventListener("load",
this.o, false);
window.removeEventListener("mousemove", this.p, false)
} else if (window.detachEvent) {
window.detachEvent("onload", this.o);
window.detachEvent("onmousemove", this.p)
}
this.m = false
}
},
addEventListener: function (a, b) {
this.r[a][this.Q++] = b
},
removeEventListener: function (a, b) {
var c;
a = this.r[a];
var d = [];
for (c in a) a.hasOwnProperty(c) && a[c] === b && d.push(c);
for (b = 0; b < d.length; b++) {
c = d[b];
delete a[c]
}
},
b: [new sjcl.hash.sha256],
j: [0],
A: 0,
q: {},
u: 0,
G: {},
R: 0,
g: 0,
f: 0,
O: 0,
a: [0, 0, 0, 0, 0, 0, 0, 0],
d: [0, 0, 0, 0],
s: undefined,
t: 6,
m: false,
r: {
progress: {},
seeded: {}
},
Q: 0,
C: [0, 48, 64, 96, 128, 192, 0x100, 384, 512, 768, 1024],
w: function () {
for (var a = 0; a < 4; a++) {
this.d[a] = this.d[a] + 1 | 0;
if (this.d[a]) break
}
return this.s.encrypt(this.d)
},
L: function () {
this.a = this.w().concat(this.w());
this.s = new sjcl.cipher.aes(this.a)
},
T: function (a) {
this.a = sjcl.hash.sha256.hash(this.a.concat(a));
this.s = new sjcl.cipher.aes(this.a);
for (a = 0; a < 4; a++) {
this.d[a] = this.d[a] + 1 | 0;
if (this.d[a]) break
}
},
U: function (a) {
var b = [],
c = 0,
d;
this.O = b[0] = (new Date).valueOf() + 3E4;
for (d =
0; d < 16; d++) b.push(Math.random() * 0x100000000 | 0);
for (d = 0; d < this.b.length; d++) {
b = b.concat(this.b[d].finalize());
c += this.j[d];
this.j[d] = 0;
if (!a && this.A & 1 << d) break
}
if (this.A >= 1 << this.b.length) {
this.b.push(new sjcl.hash.sha256);
this.j.push(0)
}
this.f -= c;
if (c > this.g) this.g = c;
this.A++;
this.T(b)
},
p: function (a) {
sjcl.random.addEntropy([a.x || a.clientX || a.offsetX, a.y || a.clientY || a.offsetY], 2, "mouse")
},
o: function () {
sjcl.random.addEntropy((new Date).valueOf(), 2, "loadtime")
},
K: function (a, b) {
var c;
a = sjcl.random.r[a];
var d = [];
for (c in a) a.hasOwnProperty(c) && d.push(a[c]);
for (c = 0; c < d.length; c++) d[c](b)
}
};
try {
var s = new Uint32Array(32);
crypto.getRandomValues(s);
sjcl.random.addEntropy(s, 1024, "crypto['getRandomValues']")
} catch (t) {}
sjcl.json = {
defaults: {
v: 1,
iter: 1E3,
ks: 128,
ts: 64,
mode: "ccm",
adata: "",
cipher: "aes"
},
encrypt: function (a, b, c, d) {
c = c || {};
d = d || {};
var e = sjcl.json,
f = e.c({
iv: sjcl.random.randomWords(4, 0)
}, e.defaults),
g;
e.c(f, c);
c = f.adata;
if (typeof f.salt === "string") f.salt = sjcl.codec.base64.toBits(f.salt);
if (typeof f.iv === "string") f.iv = sjcl.codec.base64.toBits(f.iv);
if (!sjcl.mode[f.mode] || !sjcl.cipher[f.cipher] || typeof a === "string" && f.iter <= 100 || f.ts !== 64 && f.ts !== 96 && f.ts !== 128 || f.ks !== 128 && f.ks !== 192 && f.ks !== 0x100 || f.iv.length <
2 || f.iv.length > 4) throw new sjcl.exception.invalid("json encrypt: invalid parameters");
if (typeof a === "string") {
g = sjcl.misc.cachedPbkdf2(a, f);
a = g.key.slice(0, f.ks / 32);
f.salt = g.salt
}
if (typeof b === "string") b = sjcl.codec.utf8String.toBits(b);
if (typeof c === "string") c = sjcl.codec.utf8String.toBits(c);
g = new sjcl.cipher[f.cipher](a);
e.c(d, f);
d.key = a;
f.ct = sjcl.mode[f.mode].encrypt(g, b, f.iv, c, f.ts);
return e.encode(f)
},
decrypt: function (a, b, c, d) {
c = c || {};
d = d || {};
var e = sjcl.json;
b = e.c(e.c(e.c({}, e.defaults), e.decode(b)),
c, true);
var f;
c = b.adata;
if (typeof b.salt === "string") b.salt = sjcl.codec.base64.toBits(b.salt);
if (typeof b.iv === "string") b.iv = sjcl.codec.base64.toBits(b.iv);
if (!sjcl.mode[b.mode] || !sjcl.cipher[b.cipher] || typeof a === "string" && b.iter <= 100 || b.ts !== 64 && b.ts !== 96 && b.ts !== 128 || b.ks !== 128 && b.ks !== 192 && b.ks !== 0x100 || !b.iv || b.iv.length < 2 || b.iv.length > 4) throw new sjcl.exception.invalid("json decrypt: invalid parameters");
if (typeof a === "string") {
f = sjcl.misc.cachedPbkdf2(a, b);
a = f.key.slice(0, b.ks / 32);
b.salt = f.salt
}
if (typeof c ===
"string") c = sjcl.codec.utf8String.toBits(c);
f = new sjcl.cipher[b.cipher](a);
c = sjcl.mode[b.mode].decrypt(f, b.ct, b.iv, c, b.ts);
e.c(d, b);
d.key = a;
return sjcl.codec.utf8String.fromBits(c)
},
encode: function (a) {
var b, c = "{",
d = "";
for (b in a) if (a.hasOwnProperty(b)) {
if (!b.match(/^[a-z0-9]+$/i)) throw new sjcl.exception.invalid("json encode: invalid property name");
c += d + '"' + b + '":';
d = ",";
switch (typeof a[b]) {
case "number":
case "boolean":
c += a[b];
break;
case "string":
c += '"' + escape(a[b]) + '"';
break;
case "object":
c += '"' +
sjcl.codec.base64.fromBits(a[b], 1) + '"';
break;
default:
throw new sjcl.exception.bug("json encode: unsupported type");
}
}
return c + "}"
},
decode: function (a) {
a = a.replace(/\s/g, "");
if (!a.match(/^\{.*\}$/)) throw new sjcl.exception.invalid("json decode: this isn't json!");
a = a.replace(/^\{|\}$/g, "").split(/,/);
var b = {}, c, d;
for (c = 0; c < a.length; c++) {
if (!(d = a[c].match(/^(?:(["']?)([a-z][a-z0-9]*)\1):(?:(\d+)|"([a-z0-9+\/%*_.@=\-]*)")$/i))) throw new sjcl.exception.invalid("json decode: this isn't json!");
b[d[2]] =
d[3] ? parseInt(d[3], 10) : d[2].match(/^(ct|salt|iv)$/) ? sjcl.codec.base64.toBits(d[4]) : unescape(d[4])
}
return b
},
c: function (a, b, c) {
if (a === undefined) a = {};
if (b === undefined) return a;
var d;
for (d in b) if (b.hasOwnProperty(d)) {
if (c && a[d] !== undefined && a[d] !== b[d]) throw new sjcl.exception.invalid("required parameter overridden");
a[d] = b[d]
}
return a
},
W: function (a, b) {
var c = {}, d;
for (d in a) if (a.hasOwnProperty(d) && a[d] !== b[d]) c[d] = a[d];
return c
},
V: function (a, b) {
var c = {}, d;
for (d = 0; d < b.length; d++) if (a[b[d]] !== undefined) c[b[d]] =
a[b[d]];
return c
}
};
sjcl.encrypt = sjcl.json.encrypt;
sjcl.decrypt = sjcl.json.decrypt;
sjcl.misc.S = {};
sjcl.misc.cachedPbkdf2 = function (a, b) {
var c = sjcl.misc.S,
d;
b = b || {};
d = b.iter || 1E3;
c = c[a] = c[a] || {};
d = c[d] = c[d] || {
firstSalt: b.salt && b.salt.length ? b.salt.slice(0) : sjcl.random.randomWords(2, 0)
};
c = b.salt === undefined ? d.firstSalt : b.salt;
d[c] = d[c] || sjcl.misc.pbkdf2(a, c, b.iter);
return {
key: d[c].slice(0),
salt: c.slice(0)
}
};
/*
AngularJS v1.0.6
(c) 2010-2012 Google, Inc. http://angularjs.org
License: MIT
*/
(function (N, Y, q) {
'use strict';
function n(b, a, c) {
var d;
if (b) if (H(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 !== n) b.forEach(a, c);
else if (!b || typeof b.length !== "number" ? 0 : typeof b.hasOwnProperty != "function" && typeof b.constructor != "function" || b instanceof K || ca && b instanceof ca || xa.call(b) !== "[object Object]" || typeof b.callee === "function") for (d = 0; d < b.length; d++) a.call(c, b[d], d);
else for (d in b) b.hasOwnProperty(d) && a.call(c, b[d],
d);
return b
}
function nb(b) {
var a = [],
c;
for (c in b) b.hasOwnProperty(c) && a.push(c);
return a.sort()
}
function fc(b, a, c) {
for (var d = nb(b), e = 0; e < d.length; e++) a.call(c, b[d[e]], d[e]);
return d
}
function ob(b) {
return function (a, c) {
b(c, a)
}
}
function ya() {
for (var b = aa.length, a; b;) {
b--;
a = aa[b].charCodeAt(0);
if (a == 57) return aa[b] = "A", aa.join("");
if (a == 90) aa[b] = "0";
else return aa[b] = String.fromCharCode(a + 1), aa.join("")
}
aa.unshift("0");
return aa.join("")
}
function v(b) {
n(arguments, function (a) {
a !== b && n(a, function (a, d) {
b[d] =
a
})
});
return b
}
function G(b) {
return parseInt(b, 10)
}
function za(b, a) {
return v(new(v(function () {}, {
prototype: b
})), a)
}
function w() {}
function na(b) {
return b
}
function I(b) {
return function () {
return b
}
}
function x(b) {
return typeof b == "undefined"
}
function y(b) {
return typeof b != "undefined"
}
function L(b) {
return b != null && typeof b == "object"
}
function B(b) {
return typeof b == "string"
}
function Ra(b) {
return typeof b == "number"
}
function oa(b) {
return xa.apply(b) == "[object Date]"
}
function E(b) {
return xa.apply(b) == "[object Array]"
}
function H(b) {
return typeof b == "function"
}
function pa(b) {
return b && b.document && b.location && b.alert && b.setInterval
}
function O(b) {
return B(b) ? b.replace(/^\s*/, "").replace(/\s*$/, "") : b
}
function gc(b) {
return b && (b.nodeName || b.bind && b.find)
}
function Sa(b, a, c) {
var d = [];
n(b, function (b, g, h) {
d.push(a.call(c, b, g, h))
});
return d
}
function Aa(b, a) {
if (b.indexOf) return b.indexOf(a);
for (var c = 0; c < b.length; c++) if (a === b[c]) return c;
return -1
}
function Ta(b, a) {
var c = Aa(b, a);
c >= 0 && b.splice(c, 1);
return a
}
function V(b, a) {
if (pa(b) ||
b && b.$evalAsync && b.$watch) throw Error("Can't copy Window or Scope");
if (a) {
if (b === a) throw Error("Can't copy equivalent objects or arrays");
if (E(b)) for (var c = a.length = 0; c < b.length; c++) a.push(V(b[c]));
else for (c in n(a, function (b, c) {
delete a[c]
}), b) a[c] = V(b[c])
} else(a = b) && (E(b) ? a = V(b, []) : oa(b) ? a = new Date(b.getTime()) : L(b) && (a = V(b, {})));
return a
}
function hc(b, a) {
var a = a || {}, c;
for (c in b) b.hasOwnProperty(c) && c.substr(0, 2) !== "$$" && (a[c] = b[c]);
return a
}
function ga(b, a) {
if (b === a) return !0;
if (b === null || a ===
null) return !1;
if (b !== b && a !== a) return !0;
var c = typeof b,
d;
if (c == typeof a && c == "object") if (E(b)) {
if ((c = b.length) == a.length) {
for (d = 0; d < c; d++) if (!ga(b[d], a[d])) return !1;
return !0
}
} else if (oa(b)) return oa(a) && b.getTime() == a.getTime();
else {
if (b && b.$evalAsync && b.$watch || a && a.$evalAsync && a.$watch || pa(b) || pa(a)) return !1;
c = {};
for (d in b) if (!(d.charAt(0) === "$" || H(b[d]))) {
if (!ga(b[d], a[d])) return !1;
c[d] = !0
}
for (d in a) if (!c[d] && d.charAt(0) !== "$" && a[d] !== q && !H(a[d])) return !1;
return !0
}
return !1
}
function Ua(b, a) {
var c =
arguments.length > 2 ? ha.call(arguments, 2) : [];
return H(a) && !(a instanceof RegExp) ? c.length ? function () {
return arguments.length ? a.apply(b, c.concat(ha.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 = q : pa(a) ? c = "$WINDOW" : a && Y === a ? c = "$DOCUMENT" : a && a.$evalAsync && a.$watch && (c = "$SCOPE");
return c
}
function da(b, a) {
return JSON.stringify(b, ic, a ? " " : null)
}
function pb(b) {
return B(b) ? JSON.parse(b) : b
}
function Va(b) {
b && b.length !==
0 ? (b = A("" + b), b = !(b == "f" || b == "0" || b == "false" || b == "no" || b == "n" || b == "[]")) : b = !1;
return b
}
function qa(b) {
b = u(b).clone();
try {
b.html("")
} catch (a) {}
var c = u("<div>").append(b).html();
try {
return b[0].nodeType === 3 ? A(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function (a, b) {
return "<" + A(b)
})
} catch (d) {
return A(c)
}
}
function Wa(b) {
var a = {}, c, d;
n((b || "").split("&"), function (b) {
b && (c = b.split("="), d = decodeURIComponent(c[0]), a[d] = y(c[1]) ? decodeURIComponent(c[1]) : !0)
});
return a
}
function qb(b) {
var a = [];
n(b, function (b,
d) {
a.push(Xa(d, !0) + (b === !0 ? "" : "=" + Xa(b, !0)))
});
return a.length ? a.join("&") : ""
}
function Ya(b) {
return Xa(b, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
}
function Xa(b, a) {
return encodeURIComponent(b).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, a ? "%20" : "+")
}
function jc(b, a) {
function c(a) {
a && d.push(a)
}
var d = [b],
e, g, h = ["ng:app", "ng-app", "x-ng-app", "data-ng-app"],
f = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;
n(h, function (a) {
h[a] = !0;
c(Y.getElementById(a));
a = a.replace(":", "\\:");
b.querySelectorAll && (n(b.querySelectorAll("." + a), c), n(b.querySelectorAll("." + a + "\\:"), c), n(b.querySelectorAll("[" + a + "]"), c))
});
n(d, function (a) {
if (!e) {
var b = f.exec(" " + a.className + " ");
b ? (e = a, g = (b[2] || "").replace(/\s+/g, ",")) : n(a.attributes, function (b) {
if (!e && h[b.name]) e = a, g = b.value
})
}
});
e && a(e, g ? [g] : [])
}
function rb(b, a) {
var c = function () {
b = u(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, d) {
a.$apply(function () {
b.data("$injector", d);
c(b)(a)
})
}
]);
return c
}, d = /^NG_DEFER_BOOTSTRAP!/;
if (N && !d.test(N.name)) return c();
N.name = N.name.replace(d, "");
Za.resumeBootstrap = function (b) {
n(b, function (b) {
a.push(b)
});
c()
}
}
function $a(b, a) {
a = a || "_";
return b.replace(kc, function (b, d) {
return (d ? a : "") + b.toLowerCase()
})
}
function ab(b, a, c) {
if (!b) throw Error("Argument '" + (a || "?") + "' is " + (c || "required"));
return b
}
function ra(b, a, c) {
c && E(b) && (b = b[b.length - 1]);
ab(H(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, g) {
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 k
}
}
if (!e) throw Error("No module: " + d);
var b = [],
c = [],
i = a("$injector", "invoke"),
k = {
_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: i,
run: function (a) {
c.push(a);
return this
}
};
g && i(g);
return k
})
}
})
}
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, h, f, j,
i, k, m; b.length;) {
h = b.shift();
f = 0;
for (j = h.length; f < j; f++) {
i = u(h[f]);
c ? i.triggerHandler("$destroy") : c = !c;
k = 0;
for (e = (m = i.children()).length, i = e; k < i; k++) b.push(ca(m[k]))
}
}
return d.apply(this, arguments)
}
var d = ca.fn[b],
d = d.$original || d;
c.$original = d;
ca.fn[b] = c
}
function K(b) {
if (b instanceof K) return b;
if (!(this instanceof K)) {
if (B(b) && b.charAt(0) != "<") throw Error("selectors not implemented");
return new K(b)
}
if (B(b)) {
var a = Y.createElement("div");
a.innerHTML = "<div> </div>" + b;
a.removeChild(a.firstChild);
cb(this, a.childNodes);
this.remove()
} else cb(this, b)
}
function db(b) {
return b.cloneNode(!0)
}
function sa(b) {
ub(b);
for (var a = 0, b = b.childNodes || []; a < b.length; a++) sa(b[a])
}
function vb(b, a, c) {
var d = ba(b, "events");
ba(b, "handle") && (x(a) ? n(d, function (a, c) {
eb(b, c, a);
delete d[c]
}) : x(c) ? (eb(b, a, d[a]), delete d[a]) : Ta(d[a], c))
}
function ub(b) {
var a = b[Ba],
c = Ca[a];
c && (c.handle && (c.events.$destroy && c.handle({}, "$destroy"), vb(b)), delete Ca[a], b[Ba] = q)
}
function ba(b, a, c) {
var d = b[Ba],
d = Ca[d || -1];
if (y(c)) d || (b[Ba] = d = ++oc,
d = Ca[d] = {}), d[a] = c;
else return d && d[a]
}
function wb(b, a, c) {
var d = ba(b, "data"),
e = y(c),
g = !e && y(a),
h = g && !L(a);
!d && !h && ba(b, "data", d = {});
if (e) d[a] = c;
else if (g) if (h) return d && d[a];
else v(d, a);
else return d
}
function Da(b, a) {
return (" " + b.className + " ").replace(/[\n\t]/g, " ").indexOf(" " + a + " ") > -1
}
function xb(b, a) {
a && n(a.split(" "), function (a) {
b.className = O((" " + b.className + " ").replace(/[\n\t]/g, " ").replace(" " + O(a) + " ", " "))
})
}
function yb(b, a) {
a && n(a.split(" "), function (a) {
if (!Da(b, a)) b.className = O(b.className +
" " + O(a))
})
}
function cb(b, a) {
if (a) for (var a = !a.nodeName && y(a.length) && !pa(a) ? a : [a], c = 0; c < a.length; c++) b.push(a[c])
}
function zb(b, a) {
return Ea(b, "$" + (a || "ngController") + "Controller")
}
function Ea(b, a, c) {
b = u(b);
for (b[0].nodeType == 9 && (b = b.find("html")); b.length;) {
if (c = b.data(a)) return c;
b = b.parent()
}
}
function Ab(b, a) {
var c = Fa[a.toLowerCase()];
return c && Bb[b.nodeName] && c
}
function pc(b, a) {
var c = function (c, e) {
if (!c.preventDefault) c.preventDefault = function () {
c.returnValue = !1
};
if (!c.stopPropagation) c.stopPropagation = function () {
c.cancelBubble = !0
};
if (!c.target) c.target = c.srcElement || Y;
if (x(c.defaultPrevented)) {
var g = c.preventDefault;
c.preventDefault = function () {
c.defaultPrevented = !0;
g.call(c)
};
c.defaultPrevented = !1
}
c.isDefaultPrevented = function () {
return c.defaultPrevented
};
n(a[e || c.type], function (a) {
a.call(b, c)
});
Z <= 8 ? (c.preventDefault = null, c.stopPropagation = null, c.isDefaultPrevented = null) : (delete c.preventDefault, delete c.stopPropagation, delete c.isDefaultPrevented)
};
c.elem = b;
return c
}
function fa(b) {
var a = typeof b,
c;
if (a == "object" && b !== null) if (typeof (c = b.$$hashKey) == "function") c = b.$$hashKey();
else {
if (c === q) c = b.$$hashKey = ya()
} else c = b;
return a + ":" + c
}
function Ga(b) {
n(b, this.put, this)
}
function fb() {}
function Cb(b) {
var a, c;
if (typeof b == "function") {
if (!(a = b.$inject)) a = [], c = b.toString().replace(qc, ""), c = c.match(rc), n(c[1].split(sc), function (b) {
b.replace(tc, function (b, c, d) {
a.push(d)
})
}), b.$inject = a
} else E(b) ? (c = b.length - 1, ra(b[c], "fn"), a = b.slice(0, c)) : ra(b, "fn", !0);
return a
}
function sb(b) {
function a(a) {
return function (b,
c) {
if (L(b)) n(b, ob(a));
else return a(b, c)
}
}
function c(a, b) {
if (H(b) || E(b)) b = m.instantiate(b);
if (!b.$get) throw Error("Provider " + a + " must define $get factory method.");
return k[a + f] = b
}
function d(a, b) {
return c(a, {
$get: b
})
}
function e(a) {
var b = [];
n(a, function (a) {
if (!i.get(a)) if (i.put(a, !0), B(a)) {
var c = ta(a);
b = b.concat(e(c.requires)).concat(c._runBlocks);
try {
for (var d = c._invokeQueue, c = 0, f = d.length; c < f; c++) {
var g = d[c],
j = g[0] == "$injector" ? m : m.get(g[0]);
j[g[1]].apply(j, g[2])
}
} catch (h) {
throw h.message && (h.message +=
" from " + a), h;
}
} else if (H(a)) try {
b.push(m.invoke(a))
} catch (o) {
throw o.message && (o.message += " from " + a), o;
} else if (E(a)) try {
b.push(m.invoke(a))
} catch (k) {
throw k.message && (k.message += " from " + String(a[a.length - 1])), k;
} else ra(a, "module")
});
return b
}
function g(a, b) {
function c(d) {
if (typeof d !== "string") throw Error("Service name expected");
if (a.hasOwnProperty(d)) {
if (a[d] === h) throw Error("Circular dependency: " + j.join(" <- "));
return a[d]
} else try {
return j.unshift(d), a[d] = h, a[d] = b(d)
} finally {
j.shift()
}
}
function d(a, b, e) {
var f = [],
i = Cb(a),
g, h, j;
h = 0;
for (g = i.length; h < g; h++) j = i[h], f.push(e && e.hasOwnProperty(j) ? e[j] : c(j));
a.$inject || (a = a[g]);
switch (b ? -1 : f.length) {
case 0:
return a();
case 1:
return a(f[0]);
case 2:
return a(f[0], f[1]);
case 3:
return a(f[0], f[1], f[2]);
case 4:
return a(f[0], f[1], f[2], f[3]);
case 5:
return a(f[0], f[1], f[2], f[3], f[4]);
case 6:
return a(f[0], f[1], f[2], f[3], f[4], f[5]);
case 7:
return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6]);
case 8:
return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]);
case 9:
return a(f[0],
f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8]);
case 10:
return a(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8], f[9]);
default:
return a.apply(b, f)
}
}
return {
invoke: d,
instantiate: function (a, b) {
var c = function () {}, e;
c.prototype = (E(a) ? a[a.length - 1] : a).prototype;
c = new c;
e = d(a, c, b);
return L(e) ? e : c
},
get: c,
annotate: Cb
}
}
var h = {}, f = "Provider",
j = [],
i = new Ga,
k = {
$provide: {
provider: a(c),
factory: a(d),
service: a(function (a, b) {
return d(a, ["$injector",
function (a) {
return a.instantiate(b)
}
])
}),
value: a(function (a, b) {
return d(a, I(b))
}),
constant: a(function (a, b) {
k[a] = b;
l[a] = b
}),
decorator: function (a, b) {
var c = m.get(a + f),
d = c.$get;
c.$get = function () {
var a = t.invoke(d, c);
return t.invoke(b, null, {
$delegate: a
})
}
}
}
}, m = g(k, function () {
throw Error("Unknown provider: " + j.join(" <- "));
}),
l = {}, t = l.$injector = g(l, function (a) {
a = m.get(a + f);
return t.invoke(a.$get, a)
});
n(e(b), function (a) {
t.invoke(a || w)
});
return t
}
function uc() {
var b = !0;
this.disableAutoScrolling = function () {
b = !1
};
this.$get = ["$window", "$location", "$rootScope",
function (a, c, d) {
function e(a) {
var b =
null;
n(a, function (a) {
!b && A(a.nodeName) === "a" && (b = a)
});
return b
}
function g() {
var b = c.hash(),
d;
b ? (d = h.getElementById(b)) ? d.scrollIntoView() : (d = e(h.getElementsByName(b))) ? d.scrollIntoView() : b === "top" && a.scrollTo(0, 0) : a.scrollTo(0, 0)
}
var h = a.document;
b && d.$watch(function () {
return c.hash()
}, function () {
d.$evalAsync(g)
});
return g
}
]
}
function vc(b, a, c, d) {
function e(a) {
try {
a.apply(null, ha.call(arguments, 1))
} finally {
if (o--, o === 0) for (; p.length;) try {
p.pop()()
} catch (b) {
c.error(b)
}
}
}
function g(a, b) {
(function S() {
n(s, function (a) {
a()
});
P = b(S, a)
})()
}
function h() {
C != f.url() && (C = f.url(), n(W, function (a) {
a(f.url())
}))
}
var f = this,
j = a[0],
i = b.location,
k = b.history,
m = b.setTimeout,
l = b.clearTimeout,
t = {};
f.isMock = !1;
var o = 0,
p = [];
f.$$completeOutstandingRequest = e;
f.$$incOutstandingRequestCount = function () {
o++
};
f.notifyWhenNoOutstandingRequests = function (a) {
n(s, function (a) {
a()
});
o === 0 ? a() : p.push(a)
};
var s = [],
P;
f.addPollFn = function (a) {
x(P) && g(100, m);
s.push(a);
return a
};
var C = i.href,
z = a.find("base");
f.url = function (a, b) {
if (a) {
if (C !=
a) return C = a, d.history ? b ? k.replaceState(null, "", a) : (k.pushState(null, "", a), z.attr("href", z.attr("href"))) : b ? i.replace(a) : i.href = a, f
} else return i.href.replace(/%27/g, "'")
};
var W = [],
J = !1;
f.onUrlChange = function (a) {
J || (d.history && u(b).bind("popstate", h), d.hashchange ? u(b).bind("hashchange", h) : f.addPollFn(h), J = !0);
W.push(a);
return a
};
f.baseHref = function () {
var a = z.attr("href");
return a ? a.replace(/^https?\:\/\/[^\/]*/, "") : ""
};
var r = {}, $ = "",
Q = f.baseHref();
f.cookies = function (a, b) {
var d, e, f, i;
if (a) if (b === q) j.cookie =
escape(a) + "=;path=" + Q + ";expires=Thu, 01 Jan 1970 00:00:00 GMT";
else {
if (B(b)) d = (j.cookie = escape(a) + "=" + escape(b) + ";path=" + Q).length + 1, d > 4096 && c.warn("Cookie '" + a + "' possibly not set or overflowed because it was too large (" + d + " > 4096 bytes)!")
} else {
if (j.cookie !== $) {
$ = j.cookie;
d = $.split("; ");
r = {};
for (f = 0; f < d.length; f++) e = d[f], i = e.indexOf("="), i > 0 && (r[unescape(e.substring(0, i))] = unescape(e.substring(i + 1)))
}
return r
}
};
f.defer = function (a, b) {
var c;
o++;
c = m(function () {
delete t[c];
e(a)
}, b || 0);
t[c] = !0;
return c
};
f.defer.cancel = function (a) {
return t[a] ? (delete t[a], l(a), e(w), !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 != m) {
if (l) {
if (l == a) l = a.n
} else l = a;
g(a.n, a.p);
g(a, m);
m = a;
m.n = null
}
}
function g(a, b) {
if (a != b) {
if (a) a.p = b;
if (b) b.n = a
}
}
if (b in a) throw Error("cacheId " + b + " taken");
var h = 0,
f = v({}, d, {
id: b
}),
j = {}, i = d && d.capacity || Number.MAX_VALUE,
k = {}, m = null,
l = null;
return a[b] = {
put: function (a, b) {
var c = k[a] || (k[a] = {
key: a
});
e(c);
x(b) || (a in j || h++, j[a] = b, h > i && this.remove(l.key))
},
get: function (a) {
var b = k[a];
if (b) return e(b), j[a]
},
remove: function (a) {
var b = k[a];
if (b) {
if (b == m) m = b.p;
if (b == l) l = b.n;
g(b.n, b.p);
delete k[a];
delete j[a];
h--
}
},
removeAll: function () {
j = {};
h = 0;
k = {};
m = l = null
},
destroy: function () {
k = f = j = null;
delete a[b]
},
info: function () {
return v({}, f, {
size: h
})
}
}
}
var a = {};
b.info = function () {
var b = {};
n(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\-_]+)(?:\:([^;]+))?;?)/,
g = "Template must have exactly one root element. was: ",
h = /^\s*(https?|ftp|mailto|file):/;
this.directive = function j(d, e) {
B(d) ? (ab(e, "directive"), a.hasOwnProperty(d) || (a[d] = [], b.factory(d + c, ["$injector", "$exceptionHandler",
function (b, c) {
var e = [];
n(a[d], function (a) {
try {
var g = b.invoke(a);
if (H(g)) g = {
compile: I(g)
};
else if (!g.compile && g.link) g.compile = I(g.link);
g.priority = g.priority || 0;
g.name = g.name || d;
g.require = g.require || g.controller && g.name;
g.restrict = g.restrict || "A";
e.push(g)
} catch (h) {
c(h)
}
});
return e
}
])), a[d].push(e)) : n(d, ob(j));
return this
};
this.urlSanitizationWhitelist = function (a) {
return y(a) ? (h = a, this) : h
};
this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$http", "$templateCache", "$parse", "$controller", "$rootScope", "$document",
function (b, i, k, m, l, t, o, p, s) {
function P(a, b, c) {
a instanceof u || (a = u(a));
n(a, function (b, c) {
b.nodeType == 3 && b.nodeValue.match(/\S+/) && (a[c] = u(b).wrap("<span></span>").parent()[0])
});
var d = z(a, b, a, c);
return function (b, c) {
ab(b, "scope");
for (var e = c ? va.clone.call(a) : a, g = 0, i = e.length; g < i; g++) {
var h = e[g];
(h.nodeType == 1 || h.nodeType == 9) && e.eq(g).data("$scope", b)
}
C(e, "ng-scope");
c && c(e, b);
d && d(b, e, e);
return e
}
}
function C(a, b) {
try {
a.addClass(b)
} catch (c) {}
}
function z(a, b, c, d) {
function e(a, c, d, i) {
var h, j, k, o, l, m, t, s = [];
l = 0;
for (m = c.length; l < m; l++) s.push(c[l]);
t = l = 0;
for (m = g.length; l <
m; t++) j = s[t], c = g[l++], h = g[l++], c ? (c.scope ? (k = a.$new(L(c.scope)), u(j).data("$scope", k)) : k = a, (o = c.transclude) || !i && b ? c(h, k, j, d, function (b) {
return function (c) {
var d = a.$new();
d.$$transcluded = !0;
return b(d, c).bind("$destroy", Ua(d, d.$destroy))
}
}(o || b)) : c(h, k, j, q, i)) : h && h(a, j.childNodes, q, i)
}
for (var g = [], i, h, j, k = 0; k < a.length; k++) h = new ia, i = W(a[k], [], h, d), h = (i = i.length ? J(i, a[k], h, b, c) : null) && i.terminal || !a[k].childNodes || !a[k].childNodes.length ? null : z(a[k].childNodes, i ? i.transclude : b), g.push(i), g.push(h),
j = j || i || h;
return j ? e : null
}
function W(a, b, c, i) {
var g = c.$attr,
h;
switch (a.nodeType) {
case 1:
r(b, ea(gb(a).toLowerCase()), "E", i);
var j, k, l;
h = a.attributes;
for (var o = 0, m = h && h.length; o < m; o++) if (j = h[o], j.specified) k = j.name, l = ea(k.toLowerCase()), g[l] = k, c[l] = j = O(Z && k == "href" ? decodeURIComponent(a.getAttribute(k, 2)) : j.value), Ab(a, l) && (c[l] = !0), S(a, b, j, l), r(b, l, "A", i);
a = a.className;
if (B(a) && a !== "") for (; h = e.exec(a);) l = ea(h[2]), r(b, l, "C", i) && (c[l] = O(h[3])), a = a.substr(h.index + h[0].length);
break;
case 3:
y(b, a.nodeValue);
break;
case 8:
try {
if (h = d.exec(a.nodeValue)) l = ea(h[1]), r(b, l, "M", i) && (c[l] = O(h[2]))
} catch (t) {}
}
b.sort(F);
return b
}
function J(a, b, c, d, e) {
function i(a, b) {
if (a) a.require = r.require, m.push(a);
if (b) b.require = r.require, s.push(b)
}
function h(a, b) {
var c, d = "data",
e = !1;
if (B(a)) {
for (;
(c = a.charAt(0)) == "^" || c == "?";) a = a.substr(1), c == "^" && (d = "inheritedData"), e = e || c == "?";
c = b[d]("$" + a + "Controller");
if (!c && !e) throw Error("No controller: " + a);
} else E(a) && (c = [], n(a, function (a) {
c.push(h(a, b))
}));
return c
}
function j(a, d, e,
i, g) {
var l, p, r, D, C;
l = b === e ? c : hc(c, new ia(u(e), c.$attr));
p = l.$$element;
if (J) {
var P = /^\s*([@=&])\s*(\w*)\s*$/,
ja = d.$parent || d;
n(J.scope, function (a, b) {
var c = a.match(P) || [],
e = c[2] || b,
c = c[1],
i, g, h;
d.$$isolateBindings[b] = c + e;
switch (c) {
case "@":
l.$observe(e, function (a) {
d[b] = a
});
l.$$observers[e].$$scope = ja;
break;
case "=":
g = t(l[e]);
h = g.assign || function () {
i = d[b] = g(ja);
throw Error(Eb + l[e] + " (directive: " + J.name + ")");
};
i = d[b] = g(ja);
d.$watch(function () {
var a = g(ja);
a !== d[b] && (a !== i ? i = d[b] = a : h(ja, a = i = d[b]));
return a
});
break;
case "&":
g = t(l[e]);
d[b] = function (a) {
return g(ja, a)
};
break;
default:
throw Error("Invalid isolate scope definition for directive " + J.name + ": " + a);
}
})
}
y && n(y, function (a) {
var b = {
$scope: d,
$element: p,
$attrs: l,
$transclude: g
};
C = a.controller;
C == "@" && (C = l[a.name]);
p.data("$" + a.name + "Controller", o(C, b))
});
i = 0;
for (r = m.length; i < r; i++) try {
D = m[i], D(d, p, l, D.require && h(D.require, p))
} catch (z) {
k(z, qa(p))
}
a && a(d, e.childNodes, q, g);
i = 0;
for (r = s.length; i < r; i++) try {
D = s[i], D(d, p, l, D.require && h(D.require, p))
} catch (zc) {
k(zc,
qa(p))
}
}
for (var l = -Number.MAX_VALUE, m = [], s = [], p = null, J = null, z = null, D = c.$$element = u(b), r, F, T, ka, S = d, y, x, X, v = 0, A = a.length; v < A; v++) {
r = a[v];
T = q;
if (l > r.priority) break;
if (X = r.scope) ua("isolated scope", J, r, D), L(X) && (C(D, "ng-isolate-scope"), J = r), C(D, "ng-scope"), p = p || r;
F = r.name;
if (X = r.controller) y = y || {}, ua("'" + F + "' controller", y[F], r, D), y[F] = r;
if (X = r.transclude) ua("transclusion", ka, r, D), ka = r, l = r.priority, X == "element" ? (T = u(b), D = c.$$element = u(Y.createComment(" " + F + ": " + c[F] + " ")), b = D[0], w(e, u(T[0]), b), S = P(T,
d, l)) : (T = u(db(b)).contents(), D.html(""), S = P(T, d));
if (X = r.template) if (ua("template", z, r, D), z = r, X = Fb(X), r.replace) {
T = u("<div>" + O(X) + "</div>").contents();
b = T[0];
if (T.length != 1 || b.nodeType !== 1) throw Error(g + X);
w(e, D, b);
F = {
$attr: {}
};
a = a.concat(W(b, a.splice(v + 1, a.length - (v + 1)), F));
$(c, F);
A = a.length
} else D.html(X);
if (r.templateUrl) ua("template", z, r, D), z = r, j = Q(a.splice(v, a.length - v), j, D, c, e, r.replace, S), A = a.length;
else if (r.compile) try {
x = r.compile(D, c, S), H(x) ? i(null, x) : x && i(x.pre, x.post)
} catch (G) {
k(G, qa(D))
}
if (r.terminal) j.terminal = !0, l = Math.max(l, r.priority)
}
j.scope = p && p.scope;
j.transclude = ka && S;
return j
}
function r(d, e, i, g) {
var h = !1;
if (a.hasOwnProperty(e)) for (var l, e = b.get(e + c), o = 0, m = e.length; o < m; o++) try {
if (l = e[o], (g === q || g > l.priority) && l.restrict.indexOf(i) != -1) d.push(l), h = !0
} catch (t) {
k(t)
}
return h
}
function $(a, b) {
var c = b.$attr,
d = a.$attr,
e = a.$$element;
n(a, function (d, e) {
e.charAt(0) != "$" && (b[e] && (d += (e === "style" ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e]))
});
n(b, function (b, i) {
i == "class" ? (C(e, b), a["class"] = (a["class"] ? a["class"] + " " :
"") + b) : i == "style" ? e.attr("style", e.attr("style") + ";" + b) : i.charAt(0) != "$" && !a.hasOwnProperty(i) && (a[i] = b, d[i] = c[i])
})
}
function Q(a, b, c, d, e, i, h) {
var j = [],
k, o, t = c[0],
s = a.shift(),
p = v({}, s, {
controller: null,
templateUrl: null,
transclude: null,
scope: null
});
c.html("");
m.get(s.templateUrl, {
cache: l
}).success(function (l) {
var m, s, l = Fb(l);
if (i) {
s = u("<div>" + O(l) + "</div>").contents();
m = s[0];
if (s.length != 1 || m.nodeType !== 1) throw Error(g + l);
l = {
$attr: {}
};
w(e, c, m);
W(m, a, l);
$(d, l)
} else m = t, c.html(l);
a.unshift(p);
k = J(a, m,
d, h);
for (o = z(c[0].childNodes, h); j.length;) {
var ia = j.pop(),
l = j.pop();
s = j.pop();
var r = j.pop(),
D = m;
s !== t && (D = db(m), w(l, u(s), D));
k(function () {
b(o, r, D, e, ia)
}, r, D, e, ia)
}
j = null
}).error(function (a, b, c, d) {
throw Error("Failed to load template: " + d.url);
});
return function (a, c, d, e, i) {
j ? (j.push(c), j.push(d), j.push(e), j.push(i)) : k(function () {
b(o, c, d, e, i)
}, c, d, e, i)
}
}
function F(a, b) {
return b.priority - a.priority
}
function ua(a, b, c, d) {
if (b) throw Error("Multiple directives [" + b.name + ", " + c.name + "] asking for " + a + " on: " +
qa(d));
}
function y(a, b) {
var c = i(b, !0);
c && a.push({
priority: 0,
compile: I(function (a, b) {
var d = b.parent(),
e = d.data("$binding") || [];
e.push(c);
C(d.data("$binding", e), "ng-binding");
a.$watch(c, function (a) {
b[0].nodeValue = a
})
})
})
}
function S(a, b, c, d) {
var e = i(c, !0);
e && b.push({
priority: 100,
compile: I(function (a, b, c) {
b = c.$$observers || (c.$$observers = {});
d === "class" && (e = i(c[d], !0));
c[d] = q;
(b[d] || (b[d] = [])).$$inter = !0;
(c.$$observers && c.$$observers[d].$$scope || a).$watch(e, function (a) {
c.$set(d, a)
})
})
})
}
function w(a, b,
c) {
var d = b[0],
e = d.parentNode,
i, g;
if (a) {
i = 0;
for (g = a.length; i < g; i++) if (a[i] == d) {
a[i] = c;
break
}
}
e && e.replaceChild(c, d);
c[u.expando] = d[u.expando];
b[0] = c
}
var ia = function (a, b) {
this.$$element = a;
this.$attr = b || {}
};
ia.prototype = {
$normalize: ea,
$set: function (a, b, c, d) {
var e = Ab(this.$$element[0], a),
i = this.$$observers;
e && (this.$$element.prop(a, b), d = e);
this[a] = b;
d ? this.$attr[a] = d : (d = this.$attr[a]) || (this.$attr[a] = d = $a(a, "-"));
if (gb(this.$$element[0]) === "A" && a === "href") D.setAttribute("href", b), e = D.href, e.match(h) ||
(this[a] = b = "unsafe:" + e);
c !== !1 && (b === null || b === q ? this.$$element.removeAttr(d) : this.$$element.attr(d, b));
i && n(i[a], function (a) {
try {
a(b)
} catch (c) {
k(c)
}
})
},
$observe: function (a, b) {
var c = this,
d = c.$$observers || (c.$$observers = {}),
e = d[a] || (d[a] = []);
e.push(b);
p.$evalAsync(function () {
e.$$inter || b(c[a])
});
return b
}
};
var D = s[0].createElement("a"),
T = i.startSymbol(),
ka = i.endSymbol(),
Fb = T == "{{" || ka == "}}" ? na : function (a) {
return a.replace(/\{\{/g, T).replace(/}}/g, ka)
};
return P
}
]
}
function ea(b) {
return tb(b.replace(Ac,
""))
}
function Bc() {
var b = {};
this.register = function (a, c) {
L(a) ? v(b, a) : b[a] = c
};
this.$get = ["$injector", "$window",
function (a, c) {
return function (d, e) {
if (B(d)) {
var g = d,
d = b.hasOwnProperty(g) ? b[g] : hb(e.$scope, g, !0) || hb(c, g, !0);
ra(d, g, !0)
}
return a.instantiate(d, e)
}
}
]
}
function Cc() {
this.$get = ["$window",
function (b) {
return u(b.document)
}
]
}
function Dc() {
this.$get = ["$log",
function (b) {
return function (a, c) {
b.error.apply(b, arguments)
}
}
]
}
function Ec() {
var b = "{{",
a = "}}";
this.startSymbol = function (a) {
return a ? (b = a, this) :
b
};
this.endSymbol = function (b) {
return b ? (a = b, this) : a
};
this.$get = ["$parse",
function (c) {
function d(d, f) {
for (var j, i, k = 0, m = [], l = d.length, t = !1, o = []; k < l;)(j = d.indexOf(b, k)) != -1 && (i = d.indexOf(a, j + e)) != -1 ? (k != j && m.push(d.substring(k, j)), m.push(k = c(t = d.substring(j + e, i))), k.exp = t, k = i + g, t = !0) : (k != l && m.push(d.substring(k)), k = l);
if (!(l = m.length)) m.push(""), l = 1;
if (!f || t) return o.length = l, k = function (a) {
for (var b = 0, c = l, d; b < c; b++) {
if (typeof (d = m[b]) == "function") d = d(a), d == null || d == q ? d = "" : typeof d != "string" && (d = da(d));
o[b] = d
}
return o.join("")
}, k.exp = d, k.parts = m, k
}
var e = b.length,
g = a.length;
d.startSymbol = function () {
return b
};
d.endSymbol = function () {
return a
};
return d
}
]
}
function Gb(b) {
for (var b = b.split("/"), a = b.length; a--;) b[a] = Ya(b[a]);
return b.join("/")
}
function wa(b, a) {
var c = Hb.exec(b),
c = {
protocol: c[1],
host: c[3],
port: G(c[5]) || Ib[c[1]] || null,
path: c[6] || "/",
search: c[8],
hash: c[10]
};
if (a) a.$$protocol = c.protocol, a.$$host = c.host, a.$$port = c.port;
return c
}
function la(b, a, c) {
return b + "://" + a + (c == Ib[b] ? "" : ":" + c)
}
function Fc(b,
a, c) {
var d = wa(b);
return decodeURIComponent(d.path) != a || x(d.hash) || d.hash.indexOf(c) !== 0 ? b : la(d.protocol, d.host, d.port) + a.substr(0, a.lastIndexOf("/")) + d.hash.substr(c.length)
}
function Gc(b, a, c) {
var d = wa(b);
if (decodeURIComponent(d.path) == a && !x(d.hash) && d.hash.indexOf(c) === 0) return b;
else {
var e = d.search && "?" + d.search || "",
g = d.hash && "#" + d.hash || "",
h = a.substr(0, a.lastIndexOf("/")),
f = d.path.substr(h.length);
if (d.path.indexOf(h) !== 0) throw Error('Invalid url "' + b + '", missing path prefix "' + h + '" !');
return la(d.protocol,
d.host, d.port) + a + "#" + c + f + e + g
}
}
function ib(b, a, c) {
a = a || "";
this.$$parse = function (b) {
var c = wa(b, this);
if (c.path.indexOf(a) !== 0) throw Error('Invalid url "' + b + '", missing path prefix "' + a + '" !');
this.$$path = decodeURIComponent(c.path.substr(a.length));
this.$$search = Wa(c.search);
this.$$hash = c.hash && decodeURIComponent(c.hash) || "";
this.$$compose()
};
this.$$compose = function () {
var b = qb(this.$$search),
c = this.$$hash ? "#" + Ya(this.$$hash) : "";
this.$$url = Gb(this.$$path) + (b ? "?" + b : "") + c;
this.$$absUrl = la(this.$$protocol,
this.$$host, this.$$port) + a + this.$$url
};
this.$$rewriteAppUrl = function (a) {
if (a.indexOf(c) == 0) return a
};
this.$$parse(b)
}
function Ha(b, a, c) {
var d;
this.$$parse = function (b) {
var c = wa(b, this);
if (c.hash && c.hash.indexOf(a) !== 0) throw Error('Invalid url "' + b + '", missing hash prefix "' + a + '" !');
d = c.path + (c.search ? "?" + c.search : "");
c = Hc.exec((c.hash || "").substr(a.length));
this.$$path = c[1] ? (c[1].charAt(0) == "/" ? "" : "/") + decodeURIComponent(c[1]) : "";
this.$$search = Wa(c[3]);
this.$$hash = c[5] && decodeURIComponent(c[5]) ||
"";
this.$$compose()
};
this.$$compose = function () {
var b = qb(this.$$search),
c = this.$$hash ? "#" + Ya(this.$$hash) : "";
this.$$url = Gb(this.$$path) + (b ? "?" + b : "") + c;
this.$$absUrl = la(this.$$protocol, this.$$host, this.$$port) + d + (this.$$url ? "#" + a + this.$$url : "")
};
this.$$rewriteAppUrl = function (a) {
if (a.indexOf(c) == 0) return a
};
this.$$parse(b)
}
function Jb(b, a, c, d) {
Ha.apply(this, arguments);
this.$$rewriteAppUrl = function (b) {
if (b.indexOf(c) == 0) return c + d + "#" + a + b.substr(c.length)
}
}
function Ia(b) {
return function () {
return this[b]
}
}
function Kb(b, a) {
return function (c) {
if (x(c)) return this[b];
this[b] = a(c);
this.$$compose();
return this
}
}
function Ic() {
var b = "",
a = !1;
this.hashPrefix = function (a) {
return y(a) ? (b = a, this) : b
};
this.html5Mode = function (b) {
return y(b) ? (a = b, this) : a
};
this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement",
function (c, d, e, g) {
function h(a) {
c.$broadcast("$locationChangeSuccess", f.absUrl(), a)
}
var f, j, i, k = d.url(),
m = wa(k);
a ? (j = d.baseHref() || "/", i = j.substr(0, j.lastIndexOf("/")), m = la(m.protocol, m.host, m.port) + i + "/",
f = e.history ? new ib(Fc(k, j, b), i, m) : new Jb(Gc(k, j, b), b, m, j.substr(i.length + 1))) : (m = la(m.protocol, m.host, m.port) + (m.path || "") + (m.search ? "?" + m.search : "") + "#" + b + "/", f = new Ha(k, b, m));
g.bind("click", function (a) {
if (!a.ctrlKey && !(a.metaKey || a.which == 2)) {
for (var b = u(a.target); A(b[0].nodeName) !== "a";) if (b[0] === g[0] || !(b = b.parent())[0]) return;
var d = b.prop("href"),
e = f.$$rewriteAppUrl(d);
d && !b.attr("target") && e && (f.$$parse(e), c.$apply(), a.preventDefault(), N.angular["ff-684208-preventDefault"] = !0)
}
});
f.absUrl() !=
k && d.url(f.absUrl(), !0);
d.onUrlChange(function (a) {
f.absUrl() != a && (c.$evalAsync(function () {
var b = f.absUrl();
f.$$parse(a);
h(b)
}), c.$$phase || c.$digest())
});
var l = 0;
c.$watch(function () {
var a = d.url(),
b = f.$$replace;
if (!l || a != f.absUrl()) l++, c.$evalAsync(function () {
c.$broadcast("$locationChangeStart", f.absUrl(), a).defaultPrevented ? f.$$parse(a) : (d.url(f.absUrl(), b), h(a))
});
f.$$replace = !1;
return l
});
return f
}
]
}
function Jc() {
this.$get = ["$window",
function (b) {
function a(a) {
a instanceof Error && (a.stack ? a = a.message &&
a.stack.indexOf(a.message) === -1 ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line));
return a
}
function c(c) {
var e = b.console || {}, g = e[c] || e.log || w;
return g.apply ? function () {
var b = [];
n(arguments, function (c) {
b.push(a(c))
});
return g.apply(e, b)
} : function (a, b) {
g(a, b)
}
}
return {
log: c("log"),
warn: c("warn"),
info: c("info"),
error: c("error")
}
}
]
}
function Kc(b, a) {
function c(a) {
return a.indexOf(s) != -1
}
function d() {
return o + 1 < b.length ? b.charAt(o + 1) : !1
}
function e(a) {
return "0" <=
a && a <= "9"
}
function g(a) {
return a == " " || a == "\r" || a == "\t" || a == "\n" || a == "\u000b" || a == "\u00a0"
}
function h(a) {
return "a" <= a && a <= "z" || "A" <= a && a <= "Z" || "_" == a || a == "$"
}
function f(a) {
return a == "-" || a == "+" || e(a)
}
function j(a, c, d) {
d = d || o;
throw Error("Lexer Error: " + a + " at column" + (y(c) ? "s " + c + "-" + o + " [" + b.substring(c, d) + "]" : " " + d) + " in expression [" + b + "].");
}
function i() {
for (var a = "", c = o; o < b.length;) {
var i = A(b.charAt(o));
if (i == "." || e(i)) a += i;
else {
var g = d();
if (i == "e" && f(g)) a += i;
else if (f(i) && g && e(g) && a.charAt(a.length -
1) == "e") a += i;
else if (f(i) && (!g || !e(g)) && a.charAt(a.length - 1) == "e") j("Invalid exponent");
else break
}
o++
}
a *= 1;
l.push({
index: c,
text: a,
json: !0,
fn: function () {
return a
}
})
}
function k() {
for (var c = "", d = o, f, i, j; o < b.length;) {
var k = b.charAt(o);
if (k == "." || h(k) || e(k)) k == "." && (f = o), c += k;
else break;
o++
}
if (f) for (i = o; i < b.length;) {
k = b.charAt(i);
if (k == "(") {
j = c.substr(f - d + 1);
c = c.substr(0, f - d);
o = i;
break
}
if (g(k)) i++;
else break
}
d = {
index: d,
text: c
};
if (Ja.hasOwnProperty(c)) d.fn = d.json = Ja[c];
else {
var m = Lb(c, a);
d.fn = v(function (a,
b) {
return m(a, b)
}, {
assign: function (a, b) {
return Mb(a, c, b)
}
})
}
l.push(d);
j && (l.push({
index: f,
text: ".",
json: !1
}), l.push({
index: f + 1,
text: j,
json: !1
}))
}
function m(a) {
var c = o;
o++;
for (var d = "", e = a, f = !1; o < b.length;) {
var i = b.charAt(o);
e += i;
if (f) i == "u" ? (i = b.substring(o + 1, o + 5), i.match(/[\da-f]{4}/i) || j("Invalid unicode escape [\\u" + i + "]"), o += 4, d += String.fromCharCode(parseInt(i, 16))) : (f = Lc[i], d += f ? f : i), f = !1;
else if (i == "\\") f = !0;
else if (i == a) {
o++;
l.push({
index: c,
text: e,
string: d,
json: !0,
fn: function () {
return d
}
});
return
} else d += i;
o++
}
j("Unterminated quote", c)
}
for (var l = [], t, o = 0, p = [], s, P = ":"; o < b.length;) {
s = b.charAt(o);
if (c("\"'")) m(s);
else if (e(s) || c(".") && e(d())) i();
else if (h(s)) {
if (k(), "{,".indexOf(P) != -1 && p[0] == "{" && (t = l[l.length - 1])) t.json = t.text.indexOf(".") == -1
} else if (c("(){}[].,;:")) l.push({
index: o,
text: s,
json: ":[,".indexOf(P) != -1 && c("{[") || c("}]:,")
}), c("{[") && p.unshift(s), c("}]") && p.shift(), o++;
else if (g(s)) {
o++;
continue
} else {
var n = s + d(),
z = Ja[s],
W = Ja[n];
W ? (l.push({
index: o,
text: n,
fn: W
}), o += 2) : z ? (l.push({
index: o,
text: s,
fn: z,
json: "[,:".indexOf(P) != -1 && c("+-")
}), o += 1) : j("Unexpected next character ", o, o + 1)
}
P = s
}
return l
}
function Mc(b, a, c, d) {
function e(a, c) {
throw Error("Syntax Error: Token '" + c.text + "' " + a + " at column " + (c.index + 1) + " of the expression [" + b + "] starting at [" + b.substring(c.index) + "].");
}
function g() {
if (Q.length === 0) throw Error("Unexpected end of expression: " + b);
return Q[0]
}
function h(a, b, c, d) {
if (Q.length > 0) {
var e = Q[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 = h(b, c, d, f)) ? (a && !b.json && e("is not valid json", b), Q.shift(), b) : !1
}
function j(a) {
f(a) || e("is unexpected, expecting [" + a + "]", h())
}
function i(a, b) {
return function (c, d) {
return a(c, d, b)
}
}
function k(a, b, c) {
return function (d, e) {
return b(d, e, a, c)
}
}
function m() {
for (var a = [];;) if (Q.length > 0 && !h("}", ")", ";", "]") && a.push(x()), !f(";")) return a.length == 1 ? a[0] : function (b, c) {
for (var d, e = 0; e < a.length; e++) {
var f = a[e];
f && (d = f(b, c))
}
return d
}
}
function l() {
for (var a = f(), b = c(a.text), d = [];;) if (a = f(":")) d.push(F());
else {
var e = function (a, c, e) {
for (var e = [e], f = 0; f < d.length; f++) e.push(d[f](a, c));
return b.apply(a, e)
};
return function () {
return e
}
}
}
function t() {
for (var a = o(), b;;) if (b = f("||")) a = k(a, b.fn, o());
else return a
}
function o() {
var a = p(),
b;
if (b = f("&&")) a = k(a, b.fn, o());
return a
}
function p() {
var a = s(),
b;
if (b = f("==", "!=")) a = k(a, b.fn, p());
return a
}
function s() {
var a;
a = n();
for (var b; b = f("+", "-");) a = k(a, b.fn, n());
if (b = f("<", ">", "<=", ">=")) a = k(a, b.fn, s());
return a
}
function n() {
for (var a = C(), b; b = f("*", "/", "%");) a = k(a,
b.fn, C());
return a
}
function C() {
var a;
return f("+") ? z() : (a = f("-")) ? k(r, a.fn, C()) : (a = f("!")) ? i(a.fn, C()) : z()
}
function z() {
var a;
if (f("(")) a = x(), j(")");
else if (f("[")) a = W();
else if (f("{")) a = J();
else {
var b = f();
(a = b.fn) || e("not a primary expression", b)
}
for (var c; b = f("(", "[", ".");) b.text === "(" ? (a = y(a, c), c = null) : b.text === "[" ? (c = a, a = S(a)) : b.text === "." ? (c = a, a = u(a)) : e("IMPOSSIBLE");
return a
}
function W() {
var a = [];
if (g().text != "]") {
do a.push(F()); while (f(","))
}
j("]");
return function (b, c) {
for (var d = [], e = 0; e <
a.length; e++) d.push(a[e](b, c));
return d
}
}
function J() {
var a = [];
if (g().text != "}") {
do {
var b = f(),
b = b.string || b.text;
j(":");
var c = F();
a.push({
key: b,
value: c
})
} while (f(","))
}
j("}");
return function (b, c) {
for (var d = {}, e = 0; e < a.length; e++) {
var f = a[e],
i = f.value(b, c);
d[f.key] = i
}
return d
}
}
var r = I(0),
$, Q = Kc(b, d),
F = function () {
var a = t(),
c, d;
return (d = f("=")) ? (a.assign || e("implies assignment but [" + b.substring(0, d.index) + "] can not be assigned to", d), c = t(), function (b, d) {
return a.assign(b, c(b, d), d)
}) : a
}, y = function (a,
b) {
var c = [];
if (g().text != ")") {
do c.push(F()); while (f(","))
}
j(")");
return function (d, e) {
for (var f = [], i = b ? b(d, e) : d, g = 0; g < c.length; g++) f.push(c[g](d, e));
g = a(d, e) || w;
return g.apply ? g.apply(i, f) : g(f[0], f[1], f[2], f[3], f[4])
}
}, u = function (a) {
var b = f().text,
c = Lb(b, d);
return v(function (b, d) {
return c(a(b, d), d)
}, {
assign: function (c, d, e) {
return Mb(a(c, e), b, d)
}
})
}, S = function (a) {
var b = F();
j("]");
return v(function (c, d) {
var e = a(c, d),
f = b(c, d),
i;
if (!e) return q;
if ((e = e[f]) && e.then) {
i = e;
if (!("$$v" in e)) i.$$v = q, i.then(function (a) {
i.$$v =
a
});
e = e.$$v
}
return e
}, {
assign: function (c, d, e) {
return a(c, e)[b(c, e)] = d
}
})
}, x = function () {
for (var a = F(), b;;) if (b = f("|")) a = k(a, b.fn, l());
else return a
};
a ? (F = t, y = u = S = x = function () {
e("is not valid json", {
text: b,
index: 0
})
}, $ = z()) : $ = m();
Q.length !== 0 && e("is an unexpected token", Q[0]);
return $
}
function Mb(b, a, c) {
for (var a = a.split("."), d = 0; a.length > 1; d++) {
var e = a.shift(),
g = b[e];
g || (g = {}, b[e] = g);
b = g
}
return b[a.shift()] = c
}
function hb(b, a, c) {
if (!a) return b;
for (var a = a.split("."), d, e = b, g = a.length, h = 0; h < g; h++) d = a[h],
b && (b = (e = b)[d]);
return !c && H(b) ? Ua(e, b) : b
}
function Nb(b, a, c, d, e) {
return function (g, h) {
var f = h && h.hasOwnProperty(b) ? h : g,
j;
if (f === null || f === q) return f;
if ((f = f[b]) && f.then) {
if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
j.$$v = a
});
f = f.$$v
}
if (!a || f === null || f === q) return f;
if ((f = f[a]) && f.then) {
if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
j.$$v = a
});
f = f.$$v
}
if (!c || f === null || f === q) return f;
if ((f = f[c]) && f.then) {
if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
j.$$v = a
});
f = f.$$v
}
if (!d || f === null || f === q) return f;
if ((f = f[d]) && f.then) {
if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
j.$$v = a
});
f = f.$$v
}
if (!e || f === null || f === q) return f;
if ((f = f[e]) && f.then) {
if (!("$$v" in f)) j = f, j.$$v = q, j.then(function (a) {
j.$$v = a
});
f = f.$$v
}
return f
}
}
function Lb(b, a) {
if (jb.hasOwnProperty(b)) return jb[b];
var c = b.split("."),
d = c.length,
e;
if (a) e = d < 6 ? Nb(c[0], c[1], c[2], c[3], c[4]) : function (a, b) {
var e = 0,
i;
do i = Nb(c[e++], c[e++], c[e++], c[e++], c[e++])(a, b), b = q, a = i; while (e < d);
return i
};
else {
var g = "var l, fn, p;\n";
n(c, function (a, b) {
g += "if(s === null || s === undefined) return s;\nl=s;\ns=" +
(b ? "s" : '((k&&k.hasOwnProperty("' + a + '"))?k:s)') + '["' + a + '"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'
});
g += "return s;";
e = Function("s", "k", g);
e.toString = function () {
return g
}
}
return jb[b] = e
}
function Nc() {
var b = {};
this.$get = ["$filter", "$sniffer",
function (a, c) {
return function (d) {
switch (typeof d) {
case "string":
return b.hasOwnProperty(d) ? b[d] : b[d] = Mc(d, !1, a, c.csp);
case "function":
return d;
default:
return w
}
}
}
]
}
function Oc() {
this.$get = ["$rootScope", "$exceptionHandler",
function (b, a) {
return Pc(function (a) {
b.$evalAsync(a)
}, a)
}
]
}
function Pc(b, a) {
function c(a) {
return a
}
function d(a) {
return h(a)
}
var e = function () {
var f = [],
j, i;
return i = {
resolve: function (a) {
if (f) {
var c = f;
f = q;
j = g(a);
c.length && b(function () {
for (var a, b = 0, d = c.length; b < d; b++) a = c[b], j.then(a[0], a[1])
})
}
},
reject: function (a) {
i.resolve(h(a))
},
promise: {
then: function (b, i) {
var g = e(),
h = function (d) {
try {
g.resolve((b || c)(d))
} catch (e) {
a(e), g.reject(e)
}
}, o = function (b) {
try {
g.resolve((i ||
d)(b))
} catch (c) {
a(c), g.reject(c)
}
};
f ? f.push([h, o]) : j.then(h, o);
return g.promise
}
}
}
}, g = function (a) {
return a && a.then ? a : {
then: function (c) {
var d = e();
b(function () {
d.resolve(c(a))
});
return d.promise
}
}
}, h = function (a) {
return {
then: function (c, i) {
var g = e();
b(function () {
g.resolve((i || d)(a))
});
return g.promise
}
}
};
return {
defer: e,
reject: h,
when: function (f, j, i) {
var k = e(),
m, l = function (b) {
try {
return (j || c)(b)
} catch (d) {
return a(d), h(d)
}
}, t = function (b) {
try {
return (i || d)(b)
} catch (c) {
return a(c), h(c)
}
};
b(function () {
g(f).then(function (a) {
m ||
(m = !0, k.resolve(g(a).then(l, t)))
}, function (a) {
m || (m = !0, k.resolve(t(a)))
})
});
return k.promise
},
all: function (a) {
var b = e(),
c = a.length,
d = [];
c ? n(a, function (a, e) {
g(a).then(function (a) {
e in d || (d[e] = a, --c || b.resolve(d))
}, function (a) {
e in d || b.reject(a)
})
}) : b.resolve(d);
return b.promise
}
}
}
function Qc() {
var b = {};
this.when = function (a, c) {
b[a] = v({
reloadOnSearch: !0
}, c);
if (a) {
var d = a[a.length - 1] == "/" ? a.substr(0, a.length - 1) : a + "/";
b[d] = {
redirectTo: a
}
}
return this
};
this.otherwise = function (a) {
this.when(null, a);
return this
};
this.$get = ["$rootScope", "$location", "$routeParams", "$q", "$injector", "$http", "$templateCache",
function (a, c, d, e, g, h, f) {
function j(a, b) {
for (var b = "^" + b.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") + "$", c = "", d = [], e = {}, f = /:(\w+)/g, i, g = 0;
(i = f.exec(b)) !== null;) c += b.slice(g, i.index), c += "([^\\/]*)", d.push(i[1]), g = f.lastIndex;
c += b.substr(g);
var h = a.match(RegExp(c));
h && n(d, function (a, b) {
e[a] = h[b + 1]
});
return h ? e : null
}
function i() {
var b = k(),
i = t.current;
if (b && i && b.$$route === i.$$route && ga(b.pathParams, i.pathParams) && !b.reloadOnSearch && !l) i.params = b.params, V(i.params, d), a.$broadcast("$routeUpdate", i);
else if (b || i) l = !1, a.$broadcast("$routeChangeStart", b, i), (t.current = b) && b.redirectTo && (B(b.redirectTo) ? c.path(m(b.redirectTo, b.params)).search(b.params).replace() : c.url(b.redirectTo(b.pathParams, c.path(), c.search())).replace()), e.when(b).then(function () {
if (b) {
var a = [],
c = [],
d;
n(b.resolve || {}, function (b, d) {
a.push(d);
c.push(B(b) ? g.get(b) : g.invoke(b))
});
if (!y(d = b.template)) if (y(d = b.templateUrl)) d = h.get(d, {
cache: f
}).then(function (a) {
return a.data
});
y(d) && (a.push("$template"), c.push(d));
return e.all(c).then(function (b) {
var c = {};
n(b, function (b, d) {
c[a[d]] = b
});
return c
})
}
}).then(function (c) {
if (b == t.current) {
if (b) b.locals = c, V(b.params, d);
a.$broadcast("$routeChangeSuccess", b, i)
}
}, function (c) {
b == t.current && a.$broadcast("$routeChangeError", b, i, c)
})
}
function k() {
var a, d;
n(b, function (b, e) {
if (!d && (a = j(c.path(), e))) d = za(b, {
params: v({}, c.search(), a),
pathParams: a
}), d.$$route = b
});
return d || b[null] && za(b[null], {
params: {},
pathParams: {}
})
}
function m(a, b) {
var c = [];
n((a || "").split(":"), function (a, d) {
if (d == 0) c.push(a);
else {
var e = a.match(/(\w+)(.*)/),
f = e[1];
c.push(b[f]);
c.push(e[2] || "");
delete b[f]
}
});
return c.join("")
}
var l = !1,
t = {
routes: b,
reload: function () {
l = !0;
a.$evalAsync(i)
}
};
a.$on("$locationChangeSuccess", i);
return t
}
]
}
function Rc() {
this.$get = I({})
}
function Sc() {
var b = 10;
this.digestTtl = function (a) {
arguments.length && (b = a);
return b
};
this.$get = ["$injector", "$exceptionHandler", "$parse",
function (a, c, d) {
function e() {
this.$id = ya();
this.$$phase = this.$parent = this.$$watchers =
this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;
this["this"] = this.$root = this;
this.$$destroyed = !1;
this.$$asyncQueue = [];
this.$$listeners = {};
this.$$isolateBindings = {}
}
function g(a) {
if (j.$$phase) throw Error(j.$$phase + " already in progress");
j.$$phase = a
}
function h(a, b) {
var c = d(a);
ra(c, b);
return c
}
function f() {}
e.prototype = {
$new: function (a) {
if (H(a)) throw Error("API-CHANGE: Use $controller to instantiate controllers.");
a ? (a = new e, a.$root = this.$root) : (a = function () {}, a.prototype =
this, a = new a, a.$id = ya());
a["this"] = a;
a.$$listeners = {};
a.$parent = this;
a.$$asyncQueue = [];
a.$$watchers = a.$$nextSibling = a.$$childHead = a.$$childTail = null;
a.$$prevSibling = this.$$childTail;
this.$$childHead ? this.$$childTail = this.$$childTail.$$nextSibling = a : this.$$childHead = this.$$childTail = a;
return a
},
$watch: function (a, b, c) {
var d = h(a, "watch"),
e = this.$$watchers,
g = {
fn: b,
last: f,
get: d,
exp: a,
eq: !! c
};
if (!H(b)) {
var j = h(b || w, "listener");
g.fn = function (a, b, c) {
j(c)
}
}
if (!e) e = this.$$watchers = [];
e.unshift(g);
return function () {
Ta(e,
g)
}
},
$digest: function () {
var a, d, e, h, t, o, p, s = b,
n, C = [],
z, q;
g("$digest");
do {
p = !1;
n = this;
do {
for (t = n.$$asyncQueue; t.length;) try {
n.$eval(t.shift())
} catch (J) {
c(J)
}
if (h = n.$$watchers) for (o = h.length; o--;) try {
if (a = h[o], (d = a.get(n)) !== (e = a.last) && !(a.eq ? ga(d, e) : typeof d == "number" && typeof e == "number" && isNaN(d) && isNaN(e))) p = !0, a.last = a.eq ? V(d) : d, a.fn(d, e === f ? d : e, n), s < 5 && (z = 4 - s, C[z] || (C[z] = []), q = H(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp, q += "; newVal: " + da(d) + "; oldVal: " + da(e), C[z].push(q))
} catch (r) {
c(r)
}
if (!(h =
n.$$childHead || n !== this && n.$$nextSibling)) for (; n !== this && !(h = n.$$nextSibling);) n = n.$parent
} while (n = h);
if (p && !s--) throw j.$$phase = null, Error(b + " $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: " + da(C));
} while (p || t.length);
j.$$phase = null
},
$destroy: function () {
if (!(j == this || this.$$destroyed)) {
var a = this.$parent;
this.$broadcast("$destroy");
this.$$destroyed = !0;
if (a.$$childHead == this) a.$$childHead = this.$$nextSibling;
if (a.$$childTail == this) a.$$childTail = this.$$prevSibling;
if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling;
if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling;
this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null
}
},
$eval: function (a, b) {
return d(a)(this, b)
},
$evalAsync: function (a) {
this.$$asyncQueue.push(a)
},
$apply: function (a) {
try {
return g("$apply"), this.$eval(a)
} catch (b) {
c(b)
} finally {
j.$$phase = null;
try {
j.$digest()
} catch (d) {
throw c(d), d;
}
}
},
$on: function (a, b) {
var c = this.$$listeners[a];
c || (this.$$listeners[a] = c = []);
c.push(b);
return function () {
c[Aa(c, b)] = null
}
},
$emit: function (a, b) {
var d = [],
e, f = this,
g = !1,
h = {
name: a,
targetScope: f,
stopPropagation: function () {
g = !0
},
preventDefault: function () {
h.defaultPrevented = !0
},
defaultPrevented: !1
}, j = [h].concat(ha.call(arguments, 1)),
n, C;
do {
e = f.$$listeners[a] || d;
h.currentScope = f;
n = 0;
for (C = e.length; n < C; n++) if (e[n]) try {
if (e[n].apply(null, j), g) return h
} catch (z) {
c(z)
} else e.splice(n, 1), n--, C--;
f = f.$parent
} while (f);
return h
},
$broadcast: function (a, b) {
var d =
this,
e = this,
f = {
name: a,
targetScope: this,
preventDefault: function () {
f.defaultPrevented = !0
},
defaultPrevented: !1
}, g = [f].concat(ha.call(arguments, 1)),
h, j;
do {
d = e;
f.currentScope = d;
e = d.$$listeners[a] || [];
h = 0;
for (j = e.length; h < j; h++) if (e[h]) try {
e[h].apply(null, g)
} catch (n) {
c(n)
} else e.splice(h, 1), h--, j--; if (!(e = d.$$childHead || d !== this && d.$$nextSibling)) for (; d !== this && !(e = d.$$nextSibling);) d = d.$parent
} while (d = e);
return f
}
};
var j = new e;
return j
}
]
}
function Tc() {
this.$get = ["$window",
function (b) {
var a = {}, c = G((/android (\d+)/.exec(A(b.navigator.userAgent)) || [])[1]);
return {
history: !(!b.history || !b.history.pushState || c < 4),
hashchange: "onhashchange" in b && (!b.document.documentMode || b.document.documentMode > 7),
hasEvent: function (c) {
if (c == "input" && Z == 9) return !1;
if (x(a[c])) {
var e = b.document.createElement("div");
a[c] = "on" + c in e
}
return a[c]
},
csp: !1
}
}
]
}
function Uc() {
this.$get = I(N)
}
function Ob(b) {
var a = {}, c, d, e;
if (!b) return a;
n(b.split("\n"), function (b) {
e = b.indexOf(":");
c = A(O(b.substr(0, e)));
d = O(b.substr(e + 1));
c && (a[c] ? a[c] += ", " + d : a[c] = d)
});
return a
}
function Pb(b) {
var a =
L(b) ? b : q;
return function (c) {
a || (a = Ob(b));
return c ? a[A(c)] || null : a
}
}
function Qb(b, a, c) {
if (H(c)) return c(b, a);
n(c, function (c) {
b = c(b, a)
});
return b
}
function Vc() {
var b = /^\s*(\[|\{[^\{])/,
a = /[\}\]]\s*$/,
c = /^\)\]\}',?\n/,
d = this.defaults = {
transformResponse: [
function (d) {
B(d) && (d = d.replace(c, ""), b.test(d) && a.test(d) && (d = pb(d, !0)));
return d
}
],
transformRequest: [
function (a) {
return L(a) && xa.apply(a) !== "[object File]" ? da(a) : a
}
],
headers: {
common: {
Accept: "application/json, text/plain, */*",
"X-Requested-With": "XMLHttpRequest"
},
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, j, i, k) {
function m(a) {
function c(a) {
var b = v({}, a, {
data: Qb(a.data, a.headers, f)
});
return 200 <= a.status && a.status < 300 ? b : i.reject(b)
}
a.method = ma(a.method);
var e = a.transformRequest || d.transformRequest,
f = a.transformResponse || d.transformResponse,
g = d.headers,
g = v({
"X-XSRF-TOKEN": b.cookies()["XSRF-TOKEN"]
},
g.common, g[A(a.method)], a.headers),
e = Qb(a.data, Pb(g), e),
j;
x(a.data) && delete g["Content-Type"];
j = l(a, e, g);
j = j.then(c, c);
n(p, 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 l(b, c, d) {
function e(a, b, c) {
n && (200 <= a && a < 300 ? n.put(q, [a, b, Ob(c)]) : n.remove(q));
f(b, a, c);
j.$apply()
}
function f(a, c, d) {
c = Math.max(c, 0);
(200 <= c && c < 300 ? k.resolve : k.reject)({
data: a,
status: c,
headers: Pb(d),
config: b
})
}
function h() {
var a = Aa(m.pendingRequests, b);
a !== -1 && m.pendingRequests.splice(a, 1)
}
var k = i.defer(),
l = k.promise,
n, p, q = t(b.url, b.params);
m.pendingRequests.push(b);
l.then(h, h);
b.cache && b.method == "GET" && (n = L(b.cache) ? b.cache : o);
if (n) if (p = n.get(q)) if (p.then) return p.then(h, h), p;
else E(p) ? f(p[1], p[0], V(p[2])) : f(p, 200, {});
else n.put(q, l);
p || a(b.method, q, c, e, d, b.timeout, b.withCredentials);
return l
}
function t(a, b) {
if (!b) return a;
var c = [];
fc(b, function (a, b) {
a == null || a == q || (L(a) &&
(a = da(a)), c.push(encodeURIComponent(b) + "=" + encodeURIComponent(a)))
});
return a + (a.indexOf("?") == -1 ? "?" : "&") + c.join("&")
}
var o = c("$http"),
p = [];
n(e, function (a) {
p.push(B(a) ? k.get(a) : k.invoke(a))
});
m.pendingRequests = [];
(function (a) {
n(arguments, function (a) {
m[a] = function (b, c) {
return m(v(c || {}, {
method: a,
url: b
}))
}
})
})("get", "delete", "head", "jsonp");
(function (a) {
n(arguments, function (a) {
m[a] = function (b, c, d) {
return m(v(d || {}, {
method: a,
url: b,
data: c
}))
}
})
})("post", "put");
m.defaults = d;
return m
}
]
}
function Wc() {
this.$get = ["$browser", "$window", "$document",
function (b, a, c) {
return Xc(b, Yc, b.defer, a.angular.callbacks, c[0], a.location.protocol.replace(":", ""))
}
]
}
function Xc(b, a, c, d, e, g) {
function h(a, b) {
var c = e.createElement("script"),
d = function () {
e.body.removeChild(c);
b && b()
};
c.type = "text/javascript";
c.src = a;
Z ? c.onreadystatechange = function () {
/loaded|complete/.test(c.readyState) && d()
} : c.onload = c.onerror = d;
e.body.appendChild(c)
}
return function (e, j, i, k, m, l, t) {
function o(a, c, d, e) {
c = (j.match(Hb) || ["", g])[1] == "file" ? d ? 200 : 404 :
c;
a(c == 1223 ? 204 : c, d, e);
b.$$completeOutstandingRequest(w)
}
b.$$incOutstandingRequestCount();
j = j || b.url();
if (A(e) == "jsonp") {
var p = "_" + (d.counter++).toString(36);
d[p] = function (a) {
d[p].data = a
};
h(j.replace("JSON_CALLBACK", "angular.callbacks." + p), function () {
d[p].data ? o(k, 200, d[p].data) : o(k, -2);
delete d[p]
})
} else {
var s = new a;
s.open(e, j, !0);
n(m, function (a, b) {
a && s.setRequestHeader(b, a)
});
var q;
s.onreadystatechange = function () {
if (s.readyState == 4) {
var a = s.getAllResponseHeaders(),
b = ["Cache-Control", "Content-Language",
"Content-Type", "Expires", "Last-Modified", "Pragma"
];
a || (a = "", n(b, function (b) {
var c = s.getResponseHeader(b);
c && (a += b + ": " + c + "\n")
}));
o(k, q || s.status, s.responseText, a)
}
};
if (t) s.withCredentials = !0;
s.send(i || "");
l > 0 && c(function () {
q = -1;
s.abort()
}, l)
}
}
}
function Zc() {
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 $c() {
this.$get = ["$rootScope", "$browser", "$q", "$exceptionHandler",
function (b, a, c, d) {
function e(e, f, j) {
var i = c.defer(),
k = i.promise,
m = y(j) && !j,
f = a.defer(function () {
try {
i.resolve(e())
} catch (a) {
i.reject(a), d(a)
}
m || b.$apply()
}, f),
j = function () {
delete g[k.$$timeoutId]
};
k.$$timeoutId = f;
g[f] = i;
k.then(j, j);
return k
}
var g = {};
e.cancel = function (b) {
return b && b.$$timeoutId in g ? (g[b.$$timeoutId].reject("canceled"),
a.defer.cancel(b.$$timeoutId)) : !1
};
return e
}
]
}
function Rb(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", Sb);
a("date", Tb);
a("filter", ad);
a("json", bd);
a("limitTo", cd);
a("lowercase", dd);
a("number", Ub);
a("orderBy", Vb);
a("uppercase", ed)
}
function ad() {
return function (b, a) {
if (!E(b)) return b;
var c = [];
c.check = function (a) {
for (var b = 0; b < c.length; b++) if (!c[b](a)) return !1;
return !0
};
var d = function (a,
b) {
if (b.charAt(0) === "!") return !d(a, b.substr(1));
switch (typeof a) {
case "boolean":
case "number":
case "string":
return ("" + a).toLowerCase().indexOf(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; c < a.length; c++) if (d(a[c], b)) return !0;
return !1;
default:
return !1
}
};
switch (typeof a) {
case "boolean":
case "number":
case "string":
a = {
$: a
};
case "object":
for (var e in a) e == "$" ? function () {
var b = ("" + a[e]).toLowerCase();
b && c.push(function (a) {
return d(a, b)
})
}(): function () {
var b =
e,
f = ("" + a[e]).toLowerCase();
f && c.push(function (a) {
return d(hb(a, b), f)
})
}();
break;
case "function":
c.push(a);
break;
default:
return b
}
for (var g = [], h = 0; h < b.length; h++) {
var f = b[h];
c.check(f) && g.push(f)
}
return g
}
}
function Sb(b) {
var a = b.NUMBER_FORMATS;
return function (b, d) {
if (x(d)) d = a.CURRENCY_SYM;
return Wb(b, a.PATTERNS[1], a.GROUP_SEP, a.DECIMAL_SEP, 2).replace(/\u00A4/g, d)
}
}
function Ub(b) {
var a = b.NUMBER_FORMATS;
return function (b, d) {
return Wb(b, a.PATTERNS[0], a.GROUP_SEP, a.DECIMAL_SEP, d)
}
}
function Wb(b, a, c, d,
e) {
if (isNaN(b) || !isFinite(b)) return "";
var g = b < 0,
b = Math.abs(b),
h = b + "",
f = "",
j = [],
i = !1;
if (h.indexOf("e") !== -1) {
var k = h.match(/([\d\.]+)e(-?)(\d+)/);
k && k[2] == "-" && k[3] > e + 1 ? h = "0" : (f = h, i = !0)
}
if (!i) {
h = (h.split(Xb)[1] || "").length;
x(e) && (e = Math.min(Math.max(a.minFrac, h), a.maxFrac));
var h = Math.pow(10, e),
b = Math.round(b * h) / h,
b = ("" + b).split(Xb),
h = b[0],
b = b[1] || "",
i = 0,
k = a.lgSize,
m = a.gSize;
if (h.length >= k + m) for (var i = h.length - k, l = 0; l < i; l++)(i - l) % m === 0 && l !== 0 && (f += c), f += h.charAt(l);
for (l = i; l < h.length; l++)(h.length -
l) % k === 0 && l !== 0 && (f += c), f += h.charAt(l);
for (; b.length < e;) b += "0";
e && e !== "0" && (f += d + b.substr(0, e))
}
j.push(g ? a.negPre : a.posPre);
j.push(f);
j.push(g ? a.negSuf : a.posSuf);
return j.join("")
}
function kb(b, a, c) {
var d = "";
b < 0 && (d = "-", b = -b);
for (b = "" + b; b.length < a;) b = "0" + b;
c && (b = b.substr(b.length - a));
return d + b
}
function M(b, a, c, d) {
return function (e) {
e = e["get" + b]();
if (c > 0 || e > -c) e += c;
e === 0 && c == -12 && (e = 12);
return kb(e, a, d)
}
}
function Ka(b, a) {
return function (c, d) {
var e = c["get" + b](),
g = ma(a ? "SHORT" + b : b);
return d[g][e]
}
}
function Tb(b) {
function a(a) {
var b;
if (b = a.match(c)) {
var a = new Date(0),
g = 0,
h = 0;
b[9] && (g = G(b[9] + b[10]), h = G(b[9] + b[11]));
a.setUTCFullYear(G(b[1]), G(b[2]) - 1, G(b[3]));
a.setUTCHours(G(b[4] || 0) - g, G(b[5] || 0) - h, G(b[6] || 0), G(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 g = "",
h = [],
f, j, e = e || "mediumDate",
e = b.DATETIME_FORMATS[e] || e;
B(c) && (c = fd.test(c) ? G(c) : a(c));
Ra(c) && (c = new Date(c));
if (!oa(c)) return c;
for (; e;)(j =
gd.exec(e)) ? (h = h.concat(ha.call(j, 1)), e = h.pop()) : (h.push(e), e = null);
n(h, function (a) {
f = hd[a];
g += f ? f(c, b.DATETIME_FORMATS) : a.replace(/(^'|'$)/g, "").replace(/''/g, "'")
});
return g
}
}
function bd() {
return function (b) {
return da(b, !0)
}
}
function cd() {
return function (b, a) {
if (!(b instanceof Array)) return b;
var a = G(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 (; d < e; d++) c.push(b[d]);
return c
}
}
function Vb(b) {
return function (a,
c, d) {
function e(a, b) {
return Va(b) ? function (b, c) {
return a(c, b)
} : a
}
if (!E(a)) return a;
if (!c) return a;
for (var c = E(c) ? c : [c], c = Sa(c, function (a) {
var c = !1,
d = a || na;
if (B(a)) {
if (a.charAt(0) == "+" || a.charAt(0) == "-") c = a.charAt(0) == "-", a = a.substring(1);
d = b(a)
}
return e(function (a, b) {
var c;
c = d(a);
var e = d(b),
f = typeof c,
g = typeof e;
f == g ? (f == "string" && (c = c.toLowerCase()), f == "string" && (e = e.toLowerCase()), c = c === e ? 0 : c < e ? -1 : 1) : c = f < g ? -1 : 1;
return c
}, c)
}), g = [], h = 0; h < a.length; h++) g.push(a[h]);
return g.sort(e(function (a, b) {
for (var d =
0; d < c.length; d++) {
var e = c[d](a, b);
if (e !== 0) return e
}
return 0
}, d))
}
}
function R(b) {
H(b) && (b = {
link: b
});
b.restrict = b.restrict || "AC";
return I(b)
}
function Yb(b, a) {
function c(a, c) {
c = c ? "-" + $a(c, "-") : "";
b.removeClass((a ? La : Ma) + c).addClass((a ? Ma : La) + c)
}
var d = this,
e = b.parent().controller("form") || Na,
g = 0,
h = d.$error = {};
d.$name = a.name;
d.$dirty = !1;
d.$pristine = !0;
d.$valid = !0;
d.$invalid = !1;
e.$addControl(d);
b.addClass(Oa);
c(!0);
d.$addControl = function (a) {
a.$name && !d.hasOwnProperty(a.$name) && (d[a.$name] = a)
};
d.$removeControl = function (a) {
a.$name && d[a.$name] === a && delete d[a.$name];
n(h, function (b, c) {
d.$setValidity(c, !0, a)
})
};
d.$setValidity = function (a, b, i) {
var k = h[a];
if (b) {
if (k && (Ta(k, i), !k.length)) {
g--;
if (!g) c(b), d.$valid = !0, d.$invalid = !1;
h[a] = !1;
c(!0, a);
e.$setValidity(a, !0, d)
}
} else {
g || c(b);
if (k) {
if (Aa(k, i) != -1) return
} else h[a] = k = [], g++, c(!1, a), e.$setValidity(a, !1, d);
k.push(i);
d.$valid = !1;
d.$invalid = !0
}
};
d.$setDirty = function () {
b.removeClass(Oa).addClass(Zb);
d.$dirty = !0;
d.$pristine = !1;
e.$setDirty()
}
}
function U(b) {
return x(b) ||
b === "" || b === null || b !== b
}
function Pa(b, a, c, d, e, g) {
var h = function () {
var c = O(a.val());
d.$viewValue !== c && b.$apply(function () {
d.$setViewValue(c)
})
};
if (e.hasEvent("input")) a.bind("input", h);
else {
var f;
a.bind("keydown", function (a) {
a = a.keyCode;
a === 91 || 15 < a && a < 19 || 37 <= a && a <= 40 || f || (f = g.defer(function () {
h();
f = null
}))
});
a.bind("change", h)
}
d.$render = function () {
a.val(U(d.$viewValue) ? "" : d.$viewValue)
};
var j = c.ngPattern,
i = function (a, b) {
return U(b) || a.test(b) ? (d.$setValidity("pattern", !0), b) : (d.$setValidity("pattern", !1), q)
};
j && (j.match(/^\/(.*)\/$/) ? (j = RegExp(j.substr(1, j.length - 2)), e = function (a) {
return i(j, a)
}) : e = function (a) {
var c = b.$eval(j);
if (!c || !c.test) throw Error("Expected " + j + " to be a RegExp but was " + c);
return i(c, a)
}, d.$formatters.push(e), d.$parsers.push(e));
if (c.ngMinlength) {
var k = G(c.ngMinlength),
e = function (a) {
return !U(a) && a.length < k ? (d.$setValidity("minlength", !1), q) : (d.$setValidity("minlength", !0), a)
};
d.$parsers.push(e);
d.$formatters.push(e)
}
if (c.ngMaxlength) {
var m = G(c.ngMaxlength),
c = function (a) {
return !U(a) &&
a.length > m ? (d.$setValidity("maxlength", !1), q) : (d.$setValidity("maxlength", !0), a)
};
d.$parsers.push(c);
d.$formatters.push(c)
}
}
function lb(b, a) {
b = "ngClass" + b;
return R(function (c, d, e) {
function g(b) {
if (a === !0 || c.$index % 2 === a) j && b !== j && h(j), f(b);
j = b
}
function h(a) {
L(a) && !E(a) && (a = Sa(a, function (a, b) {
if (a) return b
}));
d.removeClass(E(a) ? a.join(" ") : a)
}
function f(a) {
L(a) && !E(a) && (a = Sa(a, function (a, b) {
if (a) return b
}));
a && d.addClass(E(a) ? a.join(" ") : a)
}
var j = q;
c.$watch(e[b], g, !0);
e.$observe("class", function () {
var a =
c.$eval(e[b]);
g(a, a)
});
b !== "ngClass" && c.$watch("$index", function (d, g) {
var j = d % 2;
j !== g % 2 && (j == a ? f(c.$eval(e[b])) : h(c.$eval(e[b])))
})
})
}
var A = function (b) {
return B(b) ? b.toLowerCase() : b
}, ma = function (b) {
return B(b) ? b.toUpperCase() : b
}, Z = G((/msie (\d+)/.exec(A(navigator.userAgent)) || [])[1]),
u, ca, ha = [].slice,
Qa = [].push,
xa = Object.prototype.toString,
Za = N.angular || (N.angular = {}),
ta, gb, aa = ["0", "0", "0"];
w.$inject = [];
na.$inject = [];
gb = Z < 9 ? function (b) {
b = b.nodeName ? b : b[0];
return b.scopeName && b.scopeName != "HTML" ? ma(b.scopeName +
":" + b.nodeName) : b.nodeName
} : function (b) {
return b.nodeName ? b.nodeName : b[0].nodeName
};
var kc = /[A-Z]/g,
id = {
full: "1.0.6",
major: 1,
minor: 0,
dot: 6,
codeName: "universal-irreversibility"
}, Ca = K.cache = {}, Ba = K.expando = "ng-" + (new Date).getTime(),
oc = 1,
$b = N.document.addEventListener ? function (b, a, c) {
b.addEventListener(a, c, !1)
} : function (b, a, c) {
b.attachEvent("on" + a, c)
}, eb = N.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 = K.prototype = {
ready: function (b) {
function a() {
c || (c = !0, b())
}
var c = !1;
this.bind("DOMContentLoaded", a);
K(N).bind("load", a)
},
toString: function () {
var b = [];
n(this, function (a) {
b.push("" + a)
});
return "[" + b.join(", ") + "]"
},
eq: function (b) {
return b >= 0 ? u(this[b]) : u(this[this.length + b])
},
length: 0,
push: Qa,
sort: [].sort,
splice: [].splice
}, Fa = {};
n("multiple,selected,checked,disabled,readOnly,required".split(","), function (b) {
Fa[A(b)] = b
});
var Bb = {};
n("input,select,option,textarea,button,form".split(","), function (b) {
Bb[ma(b)] = !0
});
n({
data: wb,
inheritedData: Ea,
scope: function (b) {
return Ea(b, "$scope")
},
controller: zb,
injector: function (b) {
return Ea(b, "$injector")
},
removeAttr: function (b, a) {
b.removeAttribute(a)
},
hasClass: Da,
css: function (b, a, c) {
a = tb(a);
if (y(c)) b.style[a] = c;
else {
var d;
Z <= 8 && (d = b.currentStyle && b.currentStyle[a], d === "" && (d = "auto"));
d = d || b.style[a];
Z <= 8 && (d = d === "" ? q : d);
return d
}
},
attr: function (b, a, c) {
var d = A(a);
if (Fa[d]) if (y(c)) c ? (b[a] = !0, b.setAttribute(a, d)) : (b[a] = !1, b.removeAttribute(d));
else return b[a] || (b.attributes.getNamedItem(a) ||
w).specified ? d : q;
else if (y(c)) b.setAttribute(a, c);
else if (b.getAttribute) return b = b.getAttribute(a, 2), b === null ? q : b
},
prop: function (b, a, c) {
if (y(c)) b[a] = c;
else return b[a]
},
text: v(Z < 9 ? function (b, a) {
if (b.nodeType == 1) {
if (x(a)) return b.innerText;
b.innerText = a
} else {
if (x(a)) return b.nodeValue;
b.nodeValue = a
}
} : function (b, a) {
if (x(a)) return b.textContent;
b.textContent = a
}, {
$dv: ""
}),
val: function (b, a) {
if (x(a)) return b.value;
b.value = a
},
html: function (b, a) {
if (x(a)) return b.innerHTML;
for (var c = 0, d = b.childNodes; c < d.length; c++) sa(d[c]);
b.innerHTML = a
}
}, function (b, a) {
K.prototype[a] = function (a, d) {
var e, g;
if ((b.length == 2 && b !== Da && b !== zb ? a : d) === q) if (L(a)) {
for (e = 0; e < this.length; e++) if (b === wb) b(this[e], a);
else for (g in a) b(this[e], g, a[g]);
return this
} else {
if (this.length) return b(this[0], a, d)
} else {
for (e = 0; e < this.length; e++) b(this[e], a, d);
return this
}
return b.$dv
}
});
n({
removeData: ub,
dealoc: sa,
bind: function a(c, d, e) {
var g = ba(c, "events"),
h = ba(c, "handle");
g || ba(c, "events", g = {});
h || ba(c, "handle", h = pc(c, g));
n(d.split(" "), function (d) {
var j = g[d];
if (!j) {
if (d == "mouseenter" || d == "mouseleave") {
var i = 0;
g.mouseenter = [];
g.mouseleave = [];
a(c, "mouseover", function (a) {
i++;
i == 1 && h(a, "mouseenter")
});
a(c, "mouseout", function (a) {
i--;
i == 0 && h(a, "mouseleave")
})
} else $b(c, d, h), g[d] = [];
j = g[d]
}
j.push(e)
})
},
unbind: vb,
replaceWith: function (a, c) {
var d, e = a.parentNode;
sa(a);
n(new K(c), function (c) {
d ? e.insertBefore(c, d.nextSibling) : e.replaceChild(c, a);
d = c
})
},
children: function (a) {
var c = [];
n(a.childNodes, function (a) {
a.nodeType === 1 && c.push(a)
});
return c
},
contents: function (a) {
return a.childNodes || []
},
append: function (a, c) {
n(new K(c), function (c) {
a.nodeType === 1 && a.appendChild(c)
})
},
prepend: function (a, c) {
if (a.nodeType === 1) {
var d = a.firstChild;
n(new K(c), function (c) {
d ? a.insertBefore(c, d) : (a.appendChild(c), d = c)
})
}
},
wrap: function (a, c) {
var c = u(c)[0],
d = a.parentNode;
d && d.replaceChild(c, a);
c.appendChild(a)
},
remove: function (a) {
sa(a);
var c = a.parentNode;
c && c.removeChild(a)
},
after: function (a, c) {
var d = a,
e = a.parentNode;
n(new K(c), function (a) {
e.insertBefore(a, d.nextSibling);
d = a
})
},
addClass: yb,
removeClass: xb,
toggleClass: function (a, c, d) {
x(d) && (d = !Da(a, c));
(d ? yb : xb)(a, c)
},
parent: function (a) {
return (a = a.parentNode) && a.nodeType !== 11 ? a : null
},
next: function (a) {
if (a.nextElementSibling) return a.nextElementSibling;
for (a = a.nextSibling; a != null && a.nodeType !== 1;) a = a.nextSibling;
return a
},
find: function (a, c) {
return a.getElementsByTagName(c)
},
clone: db,
triggerHandler: function (a, c) {
var d = (ba(a, "events") || {})[c];
n(d, function (c) {
c.call(a, null)
})
}
}, function (a, c) {
K.prototype[c] = function (c, e) {
for (var g, h = 0; h < this.length; h++) g ==
q ? (g = a(this[h], c, e), g !== q && (g = u(g))) : cb(g, a(this[h], c, e));
return g == q ? this : g
}
});
Ga.prototype = {
put: function (a, c) {
this[fa(a)] = c
},
get: function (a) {
return this[fa(a)]
},
remove: function (a) {
var c = this[a = fa(a)];
delete this[a];
return c
}
};
fb.prototype = {
push: function (a, c) {
var d = this[a = fa(a)];
d ? d.push(c) : this[a] = [c]
},
shift: function (a) {
var c = this[a = fa(a)];
if (c) return c.length == 1 ? (delete this[a], c[0]) : c.shift()
},
peek: function (a) {
if (a = this[fa(a)]) return a[0]
}
};
var rc = /^function\s*[^\(]*\(\s*([^\)]*)\)/m,
sc = /,/,
tc =
/^\s*(_?)(\S+?)\1\s*$/,
qc = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,
Eb = "Non-assignable model expression: ";
Db.$inject = ["$provide"];
var Ac = /^(x[\:\-_]|data[\:\-_])/i,
Hb = /^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
ac = /^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,
Hc = ac,
Ib = {
http: 80,
https: 443,
ftp: 21
};
ib.prototype = {
$$replace: !1,
absUrl: Ia("$$absUrl"),
url: function (a, c) {
if (x(a)) return this.$$url;
var d = ac.exec(a);
d[1] && this.path(decodeURIComponent(d[1]));
if (d[2] || d[1]) this.search(d[3] ||
"");
this.hash(d[5] || "", c);
return this
},
protocol: Ia("$$protocol"),
host: Ia("$$host"),
port: Ia("$$port"),
path: Kb("$$path", function (a) {
return a.charAt(0) == "/" ? a : "/" + a
}),
search: function (a, c) {
if (x(a)) return this.$$search;
y(c) ? c === null ? delete this.$$search[a] : this.$$search[a] = c : this.$$search = B(a) ? Wa(a) : a;
this.$$compose();
return this
},
hash: Kb("$$hash", na),
replace: function () {
this.$$replace = !0;
return this
}
};
Ha.prototype = za(ib.prototype);
Jb.prototype = za(Ha.prototype);
var Ja = {
"null": function () {
return null
},
"true": function () {
return !0
},
"false": function () {
return !1
},
undefined: w,
"+": function (a, c, d, e) {
d = d(a, c);
e = e(a, c);
return y(d) ? y(e) ? d + e : d : y(e) ? e : q
},
"-": function (a, c, d, e) {
d = d(a, c);
e = e(a, c);
return (y(d) ? d : 0) - (y(e) ? e : 0)
},
"*": 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)
},
"=": w,
"==": 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 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 = {}, Yc = N.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 Error("This browser does not support XMLHttpRequest.");
};
Rb.$inject = ["$provide"];
Sb.$inject = ["$locale"];
Ub.$inject = ["$locale"];
var Xb = ".",
hd = {
yyyy: M("FullYear", 4),
yy: M("FullYear", 2, 0, !0),
y: M("FullYear", 1),
MMMM: Ka("Month"),
MMM: Ka("Month", !0),
MM: M("Month", 2, 1),
M: M("Month", 1, 1),
dd: M("Date", 2),
d: M("Date", 1),
HH: M("Hours", 2),
H: M("Hours", 1),
hh: M("Hours", 2, -12),
h: M("Hours", 1, -12),
mm: M("Minutes", 2),
m: M("Minutes", 1),
ss: M("Seconds", 2),
s: M("Seconds", 1),
EEEE: Ka("Day"),
EEE: Ka("Day", !0),
a: function (a, c) {
return a.getHours() < 12 ? c.AMPMS[0] : c.AMPMS[1]
},
Z: function (a) {
var a = -1 * a.getTimezoneOffset(),
c = a >= 0 ? "+" : "";
c += kb(Math[a > 0 ? "floor" : "ceil"](a / 60), 2) + kb(Math.abs(a % 60), 2);
return c
}
}, gd = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,
fd = /^\d+$/;
Tb.$inject = ["$locale"];
var dd = I(A),
ed = I(ma);
Vb.$inject = ["$parse"];
var jd = I({
restrict: "E",
compile: function (a, c) {
Z <= 8 && (!c.href && !c.name && c.$set("href", ""), a.append(Y.createComment("IE fix")));
return function (a, c) {
c.bind("click", function (a) {
c.attr("href") || a.preventDefault()
})
}
}
}),
mb = {};
n(Fa, function (a,
c) {
var d = ea("ng-" + c);
mb[d] = function () {
return {
priority: 100,
compile: function () {
return function (a, g, h) {
a.$watch(h[d], function (a) {
h.$set(c, !! a)
})
}
}
}
}
});
n(["src", "href"], function (a) {
var c = ea("ng-" + a);
mb[c] = function () {
return {
priority: 99,
link: function (d, e, g) {
g.$observe(c, function (c) {
c && (g.$set(a, c), Z && e.prop(a, g[a]))
})
}
}
}
});
var Na = {
$addControl: w,
$removeControl: w,
$setValidity: w,
$setDirty: w
};
Yb.$inject = ["$element", "$attrs", "$scope"];
var Qa = function (a) {
return ["$timeout", function (c) {
var d = {
name: "form",
restrict: "E",
controller: Yb,
compile: function () {
return {
pre: function (a, d, h, f) {
if (!h.action) {
var j = function (a) {
a.preventDefault ? a.preventDefault() : a.returnValue = !1
};
$b(d[0], "submit", j);
d.bind("$destroy", function () {
c(function () {
eb(d[0], "submit", j)
}, 0, !1)
})
}
var i = d.parent().controller("form"),
k = h.name || h.ngForm;
k && (a[k] = f);
i && d.bind("$destroy", function () {
i.$removeControl(f);
k && (a[k] = q);
v(f, Na)
})
}
}
}
};
return a ? v(V(d), {
restrict: "EAC"
}) : d
}]
}, kd = Qa(),
ld = Qa(!0),
md = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,
nd = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,
od = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,
bc = {
text: Pa,
number: function (a, c, d, e, g, h) {
Pa(a, c, d, e, g, h);
e.$parsers.push(function (a) {
var c = U(a);
return c || od.test(a) ? (e.$setValidity("number", !0), a === "" ? null : c ? a : parseFloat(a)) : (e.$setValidity("number", !1), q)
});
e.$formatters.push(function (a) {
return U(a) ? "" : "" + a
});
if (d.min) {
var f = parseFloat(d.min),
a = function (a) {
return !U(a) && a < f ? (e.$setValidity("min", !1), q) : (e.$setValidity("min", !0), a)
};
e.$parsers.push(a);
e.$formatters.push(a)
}
if (d.max) {
var j = parseFloat(d.max),
d = function (a) {
return !U(a) && a > j ? (e.$setValidity("max", !1), q) : (e.$setValidity("max", !0), a)
};
e.$parsers.push(d);
e.$formatters.push(d)
}
e.$formatters.push(function (a) {
return U(a) || Ra(a) ? (e.$setValidity("number", !0), a) : (e.$setValidity("number", !1), q)
})
},
url: function (a, c, d, e, g, h) {
Pa(a, c, d, e, g, h);
a = function (a) {
return U(a) || md.test(a) ? (e.$setValidity("url", !0), a) : (e.$setValidity("url", !1), q)
};
e.$formatters.push(a);
e.$parsers.push(a)
},
email: function (a,
c, d, e, g, h) {
Pa(a, c, d, e, g, h);
a = function (a) {
return U(a) || nd.test(a) ? (e.$setValidity("email", !0), a) : (e.$setValidity("email", !1), q)
};
e.$formatters.push(a);
e.$parsers.push(a)
},
radio: function (a, c, d, e) {
x(d.name) && c.attr("name", ya());
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 g = d.ngTrueValue,
h = d.ngFalseValue;
B(g) || (g = !0);
B(h) || (h = !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 === g
});
e.$parsers.push(function (a) {
return a ? g : h
})
},
hidden: w,
button: w,
submit: w,
reset: w
}, cc = ["$browser", "$sniffer",
function (a, c) {
return {
restrict: "E",
require: "?ngModel",
link: function (d, e, g, h) {
h && (bc[A(g.type)] || bc.text)(d, e, g, h, c, a)
}
}
}
],
Ma = "ng-valid",
La = "ng-invalid",
Oa = "ng-pristine",
Zb = "ng-dirty",
pd = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse",
function (a, c, d, e, g) {
function h(a, c) {
c = c ? "-" + $a(c, "-") : "";
e.removeClass((a ? La : Ma) + c).addClass((a ? Ma : La) + 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 = g(d.ngModel),
j = f.assign;
if (!j) throw Error(Eb + d.ngModel + " (" + qa(e) + ")");
this.$render = w;
var i = e.inheritedData("$formController") || Na,
k = 0,
m = this.$error = {};
e.addClass(Oa);
h(!0);
this.$setValidity = function (a,
c) {
if (m[a] !== !c) {
if (c) {
if (m[a] && k--, !k) h(!0), this.$valid = !0, this.$invalid = !1
} else h(!1), this.$invalid = !0, this.$valid = !1, k++;
m[a] = !c;
h(c, a);
i.$setValidity(a, c, this)
}
};
this.$setViewValue = function (d) {
this.$viewValue = d;
if (this.$pristine) this.$dirty = !0, this.$pristine = !1, e.removeClass(Oa).addClass(Zb), i.$setDirty();
n(this.$parsers, function (a) {
d = a(d)
});
if (this.$modelValue !== d) this.$modelValue = d, j(a, d), n(this.$viewChangeListeners, function (a) {
try {
a()
} catch (d) {
c(d)
}
})
};
var l = this;
a.$watch(function () {
var c =
f(a);
if (l.$modelValue !== c) {
var d = l.$formatters,
e = d.length;
for (l.$modelValue = c; e--;) c = d[e](c);
if (l.$viewValue !== c) l.$viewValue = c, l.$render()
}
})
}
],
qd = function () {
return {
require: ["ngModel", "^?form"],
controller: pd,
link: function (a, c, d, e) {
var g = e[0],
h = e[1] || Na;
h.$addControl(g);
c.bind("$destroy", function () {
h.$removeControl(g)
})
}
}
}, rd = I({
require: "ngModel",
link: function (a, c, d, e) {
e.$viewChangeListeners.push(function () {
a.$eval(d.ngChange)
})
}
}),
dc = function () {
return {
require: "?ngModel",
link: function (a, c, d, e) {
if (e) {
d.required = !0;
var g = function (a) {
if (d.required && (U(a) || a === !1)) e.$setValidity("required", !1);
else return e.$setValidity("required", !0), a
};
e.$formatters.push(g);
e.$parsers.unshift(g);
d.$observe("required", function () {
g(e.$viewValue)
})
}
}
}
}, sd = function () {
return {
require: "ngModel",
link: function (a, c, d, e) {
var g = (a = /\/(.*)\//.exec(d.ngList)) && RegExp(a[1]) || d.ngList || ",";
e.$parsers.push(function (a) {
var c = [];
a && n(a.split(g), function (a) {
a && c.push(O(a))
});
return c
});
e.$formatters.push(function (a) {
return E(a) ? a.join(", ") :
q
})
}
}
}, td = /^(true|false|\d+)$/,
ud = function () {
return {
priority: 100,
compile: function (a, c) {
return td.test(c.ngValue) ? function (a, c, g) {
g.$set("value", a.$eval(g.ngValue))
} : function (a, c, g) {
a.$watch(g.ngValue, function (a) {
g.$set("value", a, !1)
})
}
}
}
}, vd = R(function (a, c, d) {
c.addClass("ng-binding").data("$binding", d.ngBind);
a.$watch(d.ngBind, function (a) {
c.text(a == q ? "" : a)
})
}),
wd = ["$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)
})
}
}
],
xd = [
function () {
return function (a, c, d) {
c.addClass("ng-binding").data("$binding", d.ngBindHtmlUnsafe);
a.$watch(d.ngBindHtmlUnsafe, function (a) {
c.html(a || "")
})
}
}
],
yd = lb("", !0),
zd = lb("Odd", 0),
Ad = lb("Even", 1),
Bd = R({
compile: function (a, c) {
c.$set("ngCloak", q);
a.removeClass("ng-cloak")
}
}),
Cd = [
function () {
return {
scope: !0,
controller: "@"
}
}
],
Dd = ["$sniffer",
function (a) {
return {
priority: 1E3,
compile: function () {
a.csp = !0
}
}
}
],
ec = {};
n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "), function (a) {
var c = ea("ng-" + a);
ec[c] = ["$parse",
function (d) {
return function (e, g, h) {
var f = d(h[c]);
g.bind(A(a), function (a) {
e.$apply(function () {
f(e, {
$event: a
})
})
})
}
}
]
});
var Ed = R(function (a, c, d) {
c.bind("submit", function () {
a.$apply(d.ngSubmit)
})
}),
Fd = ["$http", "$templateCache", "$anchorScroll", "$compile",
function (a, c, d, e) {
return {
restrict: "ECA",
terminal: !0,
compile: function (g, h) {
var f = h.ngInclude || h.src,
j = h.onload || "",
i = h.autoscroll;
return function (g, h) {
var l = 0,
n, o = function () {
n && (n.$destroy(), n = null);
h.html("")
};
g.$watch(f, function (f) {
var s = ++l;
f ? a.get(f, {
cache: c
}).success(function (a) {
s === l && (n && n.$destroy(), n = g.$new(), h.html(a), e(h.contents())(n), y(i) && (!i || g.$eval(i)) && d(), n.$emit("$includeContentLoaded"), g.$eval(j))
}).error(function () {
s === l && o()
}) : o()
})
}
}
}
}
],
Gd = R({
compile: function () {
return {
pre: function (a, c, d) {
a.$eval(d.ngInit)
}
}
}
}),
Hd = R({
terminal: !0,
priority: 1E3
}),
Id = ["$locale", "$interpolate",
function (a, c) {
var d = /{}/g;
return {
restrict: "EA",
link: function (e, g, h) {
var f = h.count,
j = g.attr(h.$attr.when),
i = h.offset ||
0,
k = e.$eval(j),
m = {}, l = c.startSymbol(),
t = c.endSymbol();
n(k, function (a, e) {
m[e] = c(a.replace(d, l + f + "-" + i + t))
});
e.$watch(function () {
var c = parseFloat(e.$eval(f));
return isNaN(c) ? "" : (k[c] || (c = a.pluralCat(c - i)), m[c](e, g, !0))
}, function (a) {
g.text(a)
})
}
}
}
],
Jd = R({
transclude: "element",
priority: 1E3,
terminal: !0,
compile: function (a, c, d) {
return function (a, c, h) {
var f = h.ngRepeat,
h = f.match(/^\s*(.+)\s+in\s+(.*)\s*$/),
j, i, k;
if (!h) throw Error("Expected ngRepeat in form of '_item_ in _collection_' but got '" + f + "'.");
f = h[1];
j = h[2];
h = f.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);
if (!h) throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '" + f + "'.");
i = h[3] || h[1];
k = h[2];
var m = new fb;
a.$watch(function (a) {
var e, f, h = a.$eval(j),
n = c,
q = new fb,
y, z, u, x, r, v;
if (E(h)) r = h || [];
else {
r = [];
for (u in h) h.hasOwnProperty(u) && u.charAt(0) != "$" && r.push(u);
r.sort()
}
y = r.length - 1;
e = 0;
for (f = r.length; e < f; e++) {
u = h === r ? e : r[e];
x = h[u];
if (v = m.shift(x)) {
z = v.scope;
q.push(x, v);
if (e !== v.index) v.index = e, n.after(v.element);
n = v.element
} else z = a.$new();
z[i] = x;
k && (z[k] = u);
z.$index = e;
z.$first = e === 0;
z.$last = e === y;
z.$middle = !(z.$first || z.$last);
v || d(z, function (a) {
n.after(a);
v = {
scope: z,
element: n = a,
index: e
};
q.push(x, v)
})
}
for (u in m) if (m.hasOwnProperty(u)) for (r = m[u]; r.length;) x = r.pop(), x.element.remove(), x.scope.$destroy();
m = q
})
}
}
}),
Kd = R(function (a, c, d) {
a.$watch(d.ngShow, function (a) {
c.css("display", Va(a) ? "" : "none")
})
}),
Ld = R(function (a, c, d) {
a.$watch(d.ngHide, function (a) {
c.css("display", Va(a) ? "none" : "")
})
}),
Md = R(function (a, c,
d) {
a.$watch(d.ngStyle, function (a, d) {
d && a !== d && n(d, function (a, d) {
c.css(d, "")
});
a && c.css(a)
}, !0)
}),
Nd = I({
restrict: "EA",
require: "ngSwitch",
controller: ["$scope",
function () {
this.cases = {}
}
],
link: function (a, c, d, e) {
var g, h, f;
a.$watch(d.ngSwitch || d.on, function (j) {
h && (f.$destroy(), h.remove(), h = f = null);
if (g = e.cases["!" + j] || e.cases["?"]) a.$eval(d.change), f = a.$new(), g(f, function (a) {
h = a;
c.append(a)
})
})
}
}),
Od = R({
transclude: "element",
priority: 500,
require: "^ngSwitch",
compile: function (a, c, d) {
return function (a, g, h,
f) {
f.cases["!" + c.ngSwitchWhen] = d
}
}
}),
Pd = R({
transclude: "element",
priority: 500,
require: "^ngSwitch",
compile: function (a, c, d) {
return function (a, c, h, f) {
f.cases["?"] = d
}
}
}),
Qd = R({
controller: ["$transclude", "$element",
function (a, c) {
a(function (a) {
c.append(a)
})
}
]
}),
Rd = ["$http", "$templateCache", "$route", "$anchorScroll", "$compile", "$controller",
function (a, c, d, e, g, h) {
return {
restrict: "ECA",
terminal: !0,
link: function (a, c, i) {
function k() {
var i = d.current && d.current.locals,
k = i && i.$template;
if (k) {
c.html(k);
m && (m.$destroy(),
m = null);
var k = g(c.contents()),
n = d.current;
m = n.scope = a.$new();
if (n.controller) i.$scope = m, i = h(n.controller, i), c.children().data("$ngControllerController", i);
k(m);
m.$emit("$viewContentLoaded");
m.$eval(l);
e()
} else c.html(""), m && (m.$destroy(), m = null)
}
var m, l = i.onload || "";
a.$on("$routeChangeSuccess", k);
k()
}
}
}
],
Sd = ["$templateCache",
function (a) {
return {
restrict: "E",
terminal: !0,
compile: function (c, d) {
d.type == "text/ng-template" && a.put(d.id, c[0].text)
}
}
}
],
Td = I({
terminal: !0
}),
Ud = ["$compile", "$parse",
function (a,
c) {
var d = /^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/,
e = {
$setViewValue: w
};
return {
restrict: "E",
require: ["select", "?ngModel"],
controller: ["$element", "$scope", "$attrs",
function (a, c, d) {
var j = this,
i = {}, k = e,
m;
j.databound = d.ngModel;
j.init = function (a, c, d) {
k = a;
m = d
};
j.addOption = function (c) {
i[c] = !0;
k.$viewValue == c && (a.val(c), m.parent() && m.remove())
};
j.removeOption = function (a) {
this.hasOption(a) && (delete i[a],
k.$viewValue == a && this.renderUnknownOption(a))
};
j.renderUnknownOption = function (c) {
c = "? " + fa(c) + " ?";
m.val(c);
a.prepend(m);
a.val(c);
m.prop("selected", !0)
};
j.hasOption = function (a) {
return i.hasOwnProperty(a)
};
c.$on("$destroy", function () {
j.renderUnknownOption = w
})
}
],
link: function (e, h, f, j) {
function i(a, c, d, e) {
d.$render = function () {
var a = d.$viewValue;
e.hasOption(a) ? (w.parent() && w.remove(), c.val(a), a === "" && v.prop("selected", !0)) : x(a) && v ? c.val("") : e.renderUnknownOption(a)
};
c.bind("change", function () {
a.$apply(function () {
w.parent() &&
w.remove();
d.$setViewValue(c.val())
})
})
}
function k(a, c, d) {
var e;
d.$render = function () {
var a = new Ga(d.$viewValue);
n(c.find("option"), function (c) {
c.selected = y(a.get(c.value))
})
};
a.$watch(function () {
ga(e, d.$viewValue) || (e = V(d.$viewValue), d.$render())
});
c.bind("change", function () {
a.$apply(function () {
var a = [];
n(c.find("option"), function (c) {
c.selected && a.push(c.value)
});
d.$setViewValue(a)
})
})
}
function m(e, f, g) {
function h() {
var a = {
"": []
}, c = [""],
d, i, p, u, v;
p = g.$modelValue;
u = t(e) || [];
var x = l ? nb(u) : u,
y, w, A;
w = {};
v = !1;
var B, E;
if (o) v = new Ga(p);
else if (p === null || s) a[""].push({
selected: p === null,
id: "",
label: ""
}), v = !0;
for (A = 0; y = x.length, A < y; A++) {
w[k] = u[l ? w[l] = x[A] : A];
d = m(e, w) || "";
if (!(i = a[d])) i = a[d] = [], c.push(d);
o ? d = v.remove(n(e, w)) != q : (d = p === n(e, w), v = v || d);
B = j(e, w);
B = B === q ? "" : B;
i.push({
id: l ? x[A] : A,
label: B,
selected: d
})
}!o && !v && a[""].unshift({
id: "?",
label: "",
selected: !0
});
w = 0;
for (x = c.length; w < x; w++) {
d = c[w];
i = a[d];
if (r.length <= w) p = {
element: z.clone().attr("label", d),
label: i.label
}, u = [p], r.push(u), f.append(p.element);
else if (u = r[w], p = u[0], p.label != d) p.element.attr("label", p.label = d);
B = null;
A = 0;
for (y = i.length; A < y; A++) if (d = i[A], v = u[A + 1]) {
B = v.element;
if (v.label !== d.label) B.text(v.label = d.label);
if (v.id !== d.id) B.val(v.id = d.id);
if (v.element.selected !== d.selected) B.prop("selected", v.selected = d.selected)
} else d.id === "" && s ? E = s : (E = C.clone()).val(d.id).attr("selected", d.selected).text(d.label), u.push({
element: E,
label: d.label,
id: d.id,
selected: d.selected
}), B ? B.after(E) : p.element.append(E), B = E;
for (A++; u.length > A;) u.pop().element.remove()
}
for (; r.length >
w;) r.pop()[0].element.remove()
}
var i;
if (!(i = p.match(d))) throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '" + p + "'.");
var j = c(i[2] || i[1]),
k = i[4] || i[6],
l = i[5],
m = c(i[3] || ""),
n = c(i[2] ? i[1] : k),
t = c(i[7]),
r = [
[{
element: f,
label: ""
}
]
];
s && (a(s)(e), s.removeClass("ng-scope"), s.remove());
f.html("");
f.bind("change", function () {
e.$apply(function () {
var a, c = t(e) || [],
d = {}, h, i, j, m, p, s;
if (o) {
i = [];
m = 0;
for (s = r.length; m < s; m++) {
a = r[m];
j = 1;
for (p = a.length; j < p; j++) if ((h =
a[j].element)[0].selected) h = h.val(), l && (d[l] = h), d[k] = c[h], i.push(n(e, d))
}
} else h = f.val(), h == "?" ? i = q : h == "" ? i = null : (d[k] = c[h], l && (d[l] = h), i = n(e, d));
g.$setViewValue(i)
})
});
g.$render = h;
e.$watch(h)
}
if (j[1]) {
for (var l = j[0], t = j[1], o = f.multiple, p = f.ngOptions, s = !1, v, C = u(Y.createElement("option")), z = u(Y.createElement("optgroup")), w = C.clone(), j = 0, A = h.children(), r = A.length; j < r; j++) if (A[j].value == "") {
v = s = A.eq(j);
break
}
l.init(t, s, w);
if (o && (f.required || f.ngRequired)) {
var B = function (a) {
t.$setValidity("required", !f.required || a && a.length);
return a
};
t.$parsers.push(B);
t.$formatters.unshift(B);
f.$observe("required", function () {
B(t.$viewValue)
})
}
p ? m(e, h, t) : o ? k(e, h, t) : i(e, h, t, l)
}
}
}
}
],
Vd = ["$interpolate",
function (a) {
var c = {
addOption: w,
removeOption: w
};
return {
restrict: "E",
priority: 100,
compile: function (d, e) {
if (x(e.value)) {
var g = a(d.text(), !0);
g || e.$set("value", d.text())
}
return function (a, d, e) {
var i = d.parent(),
k = i.data("$selectController") || i.parent().data("$selectController");
k && k.databound ? d.prop("selected", !1) : k =
c;
g ? a.$watch(g, function (a, c) {
e.$set("value", a);
a !== c && k.removeOption(c);
k.addOption(a)
}) : k.addOption(e.value);
d.bind("$destroy", function () {
k.removeOption(e.value)
})
}
}
}
}
],
Wd = I({
restrict: "E",
terminal: !0
});
(ca = N.jQuery) ? (u = ca, v(ca.fn, {
scope: va.scope,
controller: va.controller,
injector: va.injector,
inheritedData: va.inheritedData
}), bb("remove", !0), bb("empty"), bb("html")) : u = K;
Za.element = u;
(function (a) {
v(a, {
bootstrap: rb,
copy: V,
extend: v,
equals: ga,
element: u,
forEach: n,
injector: sb,
noop: w,
bind: Ua,
toJson: da,
fromJson: pb,
identity: na,
isUndefined: x,
isDefined: y,
isString: B,
isFunction: H,
isObject: L,
isNumber: Ra,
isElement: gc,
isArray: E,
version: id,
isDate: oa,
lowercase: A,
uppercase: ma,
callbacks: {
counter: 0
}
});
ta = lc(N);
try {
ta("ngLocale")
} catch (c) {
ta("ngLocale", []).provider("$locale", Zc)
}
ta("ng", ["ngLocale"], ["$provide",
function (a) {
a.provider("$compile", Db).directive({
a: jd,
input: cc,
textarea: cc,
form: kd,
script: Sd,
select: Ud,
style: Wd,
option: Vd,
ngBind: vd,
ngBindHtmlUnsafe: xd,
ngBindTemplate: wd,
ngClass: yd,
ngClassEven: Ad,
ngClassOdd: zd,
ngCsp: Dd,
ngCloak: Bd,
ngController: Cd,
ngForm: ld,
ngHide: Ld,
ngInclude: Fd,
ngInit: Gd,
ngNonBindable: Hd,
ngPluralize: Id,
ngRepeat: Jd,
ngShow: Kd,
ngSubmit: Ed,
ngStyle: Md,
ngSwitch: Nd,
ngSwitchWhen: Od,
ngSwitchDefault: Pd,
ngOptions: Td,
ngView: Rd,
ngTransclude: Qd,
ngModel: qd,
ngList: sd,
ngChange: rd,
required: dc,
ngRequired: dc,
ngValue: ud
}).directive(mb).directive(ec);
a.provider({
$anchorScroll: uc,
$browser: wc,
$cacheFactory: xc,
$controller: Bc,
$document: Cc,
$exceptionHandler: Dc,
$filter: Rb,
$interpolate: Ec,
$http: Vc,
$httpBackend: Wc,
$location: Ic,
$log: Jc,
$parse: Nc,
$route: Qc,
$routeParams: Rc,
$rootScope: Sc,
$q: Oc,
$sniffer: Tc,
$templateCache: yc,
$timeout: $c,
$window: Uc
})
}
])
})(Za);
u(Y).ready(function () {
jc(Y, rb)
})
})(window, document);
angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');
function a($scope, $http) {
function e(t) {
var o = JSON.parse(sjcl.encrypt($scope.pw, t));
return o['salt'] + '|' + o['iv'] + '|' + o['ct'];
}
function d(t) {
var c = decodeURIComponent(t).split('|');
return sjcl.decrypt($scope.pw, JSON.stringify({
'salt': c[0],
'iv': c[1],
'ct': c[2],
'adata': "",
'cipher': "aes",
'iter': 1000,
ks: 128,
mode: "ccm",
ts: 64,
v: 1
}));
}
function ph(t, s) {
return sjcl.codec.hex.fromBits(sjcl.misc.pbkdf2(t, s, 10000))
}
function n_url(n) {
return '/user/' + $scope.user + '/note/' + n;
}
$scope.notes = [];
$scope.s = function () {
$scope.err = "";
$http.post('/user/' + $scope.user, ph($scope.pw, $scope.user)).success(function (data) {
$scope.notes = [];
for (var i = 0; i < data.length; i++) {
$scope.notes.push({
'title': d(data[i]),
'key': data[i]
});
};
$scope.li = true;
})
}
$scope.c = function () {
$scope.err = "";
$http.put('/user/' + $scope.user, ph($scope.pw, $scope.user)).success(function () {
$scope.li = true;
}).error(function () {
$scope.err = "Account Creation Failed"
});
}
$scope.a = function () {
$scope.err = "";
$http.put(n_url(encodeURIComponent(e($scope.title))), [e($scope.text), ph($scope.pw, $scope.user)]).success(function () {
$scope.notes.push({
'title': $scope.title,
'text': $scope.text
});
$scope.ed = false;
$scope.title = "";
$scope.text = "";
}).error(function () {
$scope.err = "Not Saved"
})
}
$scope.f = function (note) {
$scope.err = "";
note.v = !note.v;
if (!note.text) {
$http.post(n_url(note.key), ph($scope.pw, $scope.user)).success(function (data) {
note.text = d(data)
})
}
}
}
</script>
<style type="text/css">
label {
width:60px;
display:inline-block;
}
</style>
</head>
<body ng-controller="a"></body>
<h3>NoteCrypt</h3>Once you've created an account, you can create short notes that will be encrypted locally and therefore only be readable with your password.
<br>
<br>
<form ng-submit="s()">
<label>Account</label>
<input type="text" ng-model="user" ng-readonly="li">
<br>
<label>Code</label>
<input type="password" ng-model="pw" ng-readonly="li">
<br>
<input type="submit" value="Log-In" ng-hide="li">
<input type="button" ng-click="c()" value="Create" ng-hide="li">
<input type="button" value="Logout" ng-click="li=false;notes=[]" ng-show="li">
</form>
<div ng-repeat="note in notes">
<h5 ng-click="f(note)" style="cursor:pointer">{{note.title}}</h5>
<pre ng-show="note.v">{{note.text}}</pre>
<hr>
</div>
<button type="button" ng-click="ed=!ed" ng-show="li">New Note</button>
<div ng-show="ed">
<label>Title</label>
<input type="text" ng-model="title" style="margin:2px;padding:1px;vertical-align:top;width:250px">
<br>
<label>Text</label>
<textarea ng-model="text" style="width:250px;height:300px;margin:2px;padding:1px;vertical-align:top"></textarea>
<br>
<button type="button" ng-click="a();error=''" ng-disabled="!(text.length&&title.length&&text.length<=131072&&title.length<=200)" style="margin-left:62px">Create Note</button><span style="padding-left:120px" ng-show="text.length">{{text.length/1024|number:0}}/128kB</span>
</div><span>{{err}}</span>
</html>
Comments