! function (e) {
	function t(r) {
		if (n[r]) return n[r].exports;
		var i = n[r] = {
			exports: {},
			id: r,
			loaded: !1
		};
		return e[r].call(i.exports, i, i.exports, t), i.loaded = !0, i.exports
	}
	var n = {};
	return t.m = e, t.c = n, t.p = "", t(0)
}([function (e, t, n) {
	"use strict";
	Object.defineProperty(t, "__esModule", {
		value: !0
	}), t.AppModule = void 0, n(9), n(10), n(11);
	var r = n(5);
	n(12), n(2);
	t.AppModule = angular.module("app", ["ark.contextualHelp"]).component("app", r.AppComponent).name
}, , function (e, t) {}, function (e, t) {}, function (e, t) {}, function (e, t) {
	"use strict";

	function n(e, t) {
		if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
	}
	Object.defineProperty(t, "__esModule", {
		value: !0
	});
	var r = function () {
		function e(e, t) {
			for (var n = 0; n < t.length; n++) {
				var r = t[n];
				r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
			}
		}
		return function (t, n, r) {
			return n && e(t.prototype, n), r && e(t, r), t
		}
	}();
	t.AppComponent = {
		controller: function () {
			function e(t, r) {
				"ngInject";
				n(this, e), this.$timeout = t, this.service = r, this.prefix = "arkContextualHelpLauncher", window.top.addEventListener("message", this.receiveMessage.bind(this), !1)
			}
			return e.$inject = ["$timeout", "ArkContextualHelpService"], r(e, [{
				key: "$onInit",
				value: function () {
					var e = this;
					this.service.addEventListener("close", function () {
						return window.top.postMessage(e.prefix + "-closeWidget", "*")
					})
				}
			}, {
				key: "receiveMessage",
				value: function (e) {
					var t = this;
					if (e && e.data) switch (e.data.message) {
						case this.prefix + "-setConfiguration":
							this.$timeout(function () {
								t.configuration = e.data.config, t.configuration.draggable = !1, t.configuration.resizable = !1, t.currentContextName = e.data.config.initialContext || t.currentContextName, t.service.openHelp()
							});
							break;
						case this.prefix + "-changeContext":
							this.$timeout(function () {
								return t.currentContextName = e.data.context
							})
					}
				}
			}]), e
		}(),
		template: '\n    <ark-contextual-help ng-if="$ctrl.configuration"\n      config="$ctrl.configuration"\n      context-name="$ctrl.currentContextName">\n    </ark-contextual-help>\n  '
	}
}, function (e, t) {
	/**
	 * @license AngularJS v1.5.6
	 * (c) 2010-2016 Google, Inc. http://angularjs.org
	 * License: MIT
	 */
	! function (e, t) {
		"use strict";

		function n() {
			var e = !1;
			this.$get = ["$$sanitizeUri", function (n) {
				return e && t.extend(w, b),
					function (e) {
						var t = [];
						return o(e, u(t, function (e, t) {
							return !/^unsafe:/.test(n(e, t))
						})), t.join("")
					}
			}], this.enableSvg = function (n) {
				return t.isDefined(n) ? (e = n, this) : e
			}
		}

		function r(e) {
			var n = [],
				r = u(n, t.noop);
			return r.chars(e), n.join("")
		}

		function i(e, n) {
			var r, i = {},
				o = e.split(",");
			for (r = 0; r < o.length; r++) i[n ? t.lowercase(o[r]) : o[r]] = !0;
			return i
		}

		function o(t, n) {
			null === t || void 0 === t ? t = "" : "string" != typeof t && (t = "" + t), l.innerHTML = t;
			var r = 5;
			do {
				if (0 === r) throw f("uinput", "Failed to sanitize html because the input is unstable");
				r--, e.document.documentMode && c(l), t = l.innerHTML, l.innerHTML = t
			} while (t !== l.innerHTML);
			for (var i = l.firstChild; i;) {
				switch (i.nodeType) {
					case 1:
						n.start(i.nodeName.toLowerCase(), a(i.attributes));
						break;
					case 3:
						n.chars(i.textContent)
				}
				var o;
				if (!(o = i.firstChild) && (1 == i.nodeType && n.end(i.nodeName.toLowerCase()), o = i.nextSibling, !o))
					for (; null == o && (i = i.parentNode, i !== l);) o = i.nextSibling, 1 == i.nodeType && n.end(i.nodeName.toLowerCase());
				i = o
			}
			for (; i = l.firstChild;) l.removeChild(i)
		}

		function a(e) {
			for (var t = {}, n = 0, r = e.length; n < r; n++) {
				var i = e[n];
				t[i.name] = i.value
			}
			return t
		}

		function s(e) {
			return e.replace(/&/g, "&amp;").replace(h, function (e) {
				var t = e.charCodeAt(0),
					n = e.charCodeAt(1);
				return "&#" + (1024 * (t - 55296) + (n - 56320) + 65536) + ";"
			}).replace(p, function (e) {
				return "&#" + e.charCodeAt(0) + ";"
			}).replace(/</g, "&lt;").replace(/>/g, "&gt;")
		}

		function u(e, n) {
			var r = !1,
				i = t.bind(e, e.push);
			return {
				start: function (e, o) {
					e = t.lowercase(e), !r && x[e] && (r = e), r || w[e] !== !0 || (i("<"), i(e), t.forEach(o, function (r, o) {
						var a = t.lowercase(o),
							u = "img" === e && "src" === a || "background" === a;
						E[a] !== !0 || k[a] === !0 && !n(r, u) || (i(" "), i(o), i('="'), i(s(r)), i('"'))
					}), i(">"))
				},
				end: function (e) {
					e = t.lowercase(e), r || w[e] !== !0 || d[e] === !0 || (i("</"), i(e), i(">")), e == r && (r = !1)
				},
				chars: function (e) {
					r || i(s(e))
				}
			}
		}

		function c(t) {
			if (t.nodeType === e.Node.ELEMENT_NODE)
				for (var n = t.attributes, r = 0, i = n.length; r < i; r++) {
					var o = n[r],
						a = o.name.toLowerCase();
					"xmlns:ns1" !== a && 0 !== a.lastIndexOf("ns1:", 0) || (t.removeAttributeNode(o), r--, i--)
				}
			var s = t.firstChild;
			s && c(s), s = t.nextSibling, s && c(s)
		}
		var l, f = t.$$minErr("$sanitize"),
			h = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
			p = /([^\#-~ |!])/g,
			d = i("area,br,col,hr,img,wbr"),
			$ = i("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),
			v = i("rp,rt"),
			m = t.extend({}, v, $),
			g = t.extend({}, $, i("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),
			y = t.extend({}, v, i("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),
			b = i("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),
			x = i("script,style"),
			w = t.extend({}, d, g, y, m),
			k = i("background,cite,href,longdesc,src,xlink:href"),
			C = i("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),
			S = i("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan", !0),
			E = t.extend({}, k, S, C);
		! function (e) {
			var t;
			if (!e.document || !e.document.implementation) throw f("noinert", "Can't create an inert html document");
			t = e.document.implementation.createHTMLDocument("inert");
			var n = t.documentElement || t.getDocumentElement(),
				r = n.getElementsByTagName("body");
			if (1 === r.length) l = r[0];
			else {
				var i = t.createElement("html");
				l = t.createElement("body"), i.appendChild(l), t.appendChild(i)
			}
		}(e), t.module("ngSanitize", []).provider("$sanitize", n), t.module("ngSanitize").filter("linky", ["$sanitize", function (e) {
			var n = /((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,
				i = /^mailto:/i,
				o = t.$$minErr("linky"),
				a = t.isString;
			return function (s, u, c) {
				function l(e) {
					e && v.push(r(e))
				}

				function f(e, n) {
					var r;
					if (v.push("<a "), t.isFunction(c) && (c = c(e)), t.isObject(c))
						for (r in c) v.push(r + '="' + c[r] + '" ');
					else c = {};
					!t.isDefined(u) || "target" in c || v.push('target="', u, '" '), v.push('href="', e.replace(/"/g, "&quot;"), '">'), l(n), v.push("</a>")
				}
				if (null == s || "" === s) return s;
				if (!a(s)) throw o("notstring", "Expected string but received: {0}", s);
				for (var h, p, d, $ = s, v = []; h = $.match(n);) p = h[0], h[2] || h[4] || (p = (h[3] ? "http://" : "mailto:") + p), d = h.index, l($.substr(0, d)), f(p, h[0].replace(i, "")), $ = $.substring(d + h[0].length);
				return l($), e(v.join(""))
			}
		}])
	}(window, window.angular)
}, function (e, t) {
	/**
	 * @license AngularJS v1.5.6
	 * (c) 2010-2016 Google, Inc. http://angularjs.org
	 * License: MIT
	 */
	! function (e) {
		"use strict";

		function t(e, t) {
			return t = t || Error,
				function () {
					var n, r, i = 2,
						o = arguments,
						a = o[0],
						s = "[" + (e ? e + ":" : "") + a + "] ",
						u = o[1];
					for (s += u.replace(/\{\d+\}/g, function (e) {
							var t = +e.slice(1, -1),
								n = t + i;
							return n < o.length ? ge(o[n]) : e
						}), s += "\nhttp://errors.angularjs.org/1.5.6/" + (e ? e + "/" : "") + a, r = i, n = "?"; r < o.length; r++, n = "&") s += n + "p" + (r - i) + "=" + encodeURIComponent(ge(o[r]));
					return new t(s)
				}
		}

		function n(e) {
			if (null == e || E(e)) return !1;
			if (Yr(e) || x(e) || _r && e instanceof _r) return !0;
			var t = "length" in Object(e) && e.length;
			return w(t) && (t >= 0 && (t - 1 in e || e instanceof Array) || "function" == typeof e.item)
		}

		function r(e, t, i) {
			var o, a;
			if (e)
				if (C(e))
					for (o in e) "prototype" == o || "length" == o || "name" == o || e.hasOwnProperty && !e.hasOwnProperty(o) || t.call(i, e[o], o, e);
				else if (Yr(e) || n(e)) {
				var s = "object" != typeof e;
				for (o = 0, a = e.length; o < a; o++)(s || o in e) && t.call(i, e[o], o, e)
			} else if (e.forEach && e.forEach !== r) e.forEach(t, i, e);
			else if (b(e))
				for (o in e) t.call(i, e[o], o, e);
			else if ("function" == typeof e.hasOwnProperty)
				for (o in e) e.hasOwnProperty(o) && t.call(i, e[o], o, e);
			else
				for (o in e) Nr.call(e, o) && t.call(i, e[o], o, e);
			return e
		}

		function i(e, t, n) {
			for (var r = Object.keys(e).sort(), i = 0; i < r.length; i++) t.call(n, e[r[i]], r[i]);
			return r
		}

		function o(e) {
			return function (t, n) {
				e(n, t)
			}
		}

		function a() {
			return ++Gr
		}

		function s(e, t) {
			t ? e.$$hashKey = t : delete e.$$hashKey
		}

		function u(e, t, n) {
			for (var r = e.$$hashKey, i = 0, o = t.length; i < o; ++i) {
				var a = t[i];
				if (y(a) || C(a))
					for (var c = Object.keys(a), l = 0, f = c.length; l < f; l++) {
						var h = c[l],
							p = a[h];
						n && y(p) ? k(p) ? e[h] = new Date(p.valueOf()) : S(p) ? e[h] = new RegExp(p) : p.nodeName ? e[h] = p.cloneNode(!0) : H(p) ? e[h] = p.clone() : (y(e[h]) || (e[h] = Yr(p) ? [] : {}), u(e[h], [p], !0)) : e[h] = p
					}
			}
			return s(e, r), e
		}

		function c(e) {
			return u(e, Lr.call(arguments, 1), !1)
		}

		function l(e) {
			return u(e, Lr.call(arguments, 1), !0)
		}

		function f(e) {
			return parseInt(e, 10)
		}

		function h(e, t) {
			return c(Object.create(e), t)
		}

		function p() {}

		function d(e) {
			return e
		}

		function $(e) {
			return function () {
				return e
			}
		}

		function v(e) {
			return C(e.toString) && e.toString !== Fr
		}

		function m(e) {
			return "undefined" == typeof e
		}

		function g(e) {
			return "undefined" != typeof e
		}

		function y(e) {
			return null !== e && "object" == typeof e
		}

		function b(e) {
			return null !== e && "object" == typeof e && !Br(e)
		}

		function x(e) {
			return "string" == typeof e
		}

		function w(e) {
			return "number" == typeof e
		}

		function k(e) {
			return "[object Date]" === Fr.call(e)
		}

		function C(e) {
			return "function" == typeof e
		}

		function S(e) {
			return "[object RegExp]" === Fr.call(e)
		}

		function E(e) {
			return e && e.window === e
		}

		function A(e) {
			return e && e.$evalAsync && e.$watch
		}

		function T(e) {
			return "[object File]" === Fr.call(e)
		}

		function O(e) {
			return "[object FormData]" === Fr.call(e)
		}

		function M(e) {
			return "[object Blob]" === Fr.call(e)
		}

		function N(e) {
			return "boolean" == typeof e
		}

		function j(e) {
			return e && C(e.then)
		}

		function V(e) {
			return e && w(e.length) && Jr.test(Fr.call(e))
		}

		function I(e) {
			return "[object ArrayBuffer]" === Fr.call(e)
		}

		function H(e) {
			return !(!e || !(e.nodeName || e.prop && e.attr && e.find))
		}

		function D(e) {
			var t, n = {},
				r = e.split(",");
			for (t = 0; t < r.length; t++) n[r[t]] = !0;
			return n
		}

		function _(e) {
			return jr(e.nodeName || e[0] && e[0].nodeName)
		}

		function P(e, t) {
			var n = e.indexOf(t);
			return n >= 0 && e.splice(n, 1), n
		}

		function R(e, t) {
			function n(e, t) {
				var n, r = t.$$hashKey;
				if (Yr(e))
					for (var o = 0, a = e.length; o < a; o++) t.push(i(e[o]));
				else if (b(e))
					for (n in e) t[n] = i(e[n]);
				else if (e && "function" == typeof e.hasOwnProperty)
					for (n in e) e.hasOwnProperty(n) && (t[n] = i(e[n]));
				else
					for (n in e) Nr.call(e, n) && (t[n] = i(e[n]));
				return s(t, r), t
			}

			function i(e) {
				if (!y(e)) return e;
				var t = a.indexOf(e);
				if (t !== -1) return u[t];
				if (E(e) || A(e)) throw zr("cpws", "Can't copy! Making copies of Window or Scope instances is not supported.");
				var r = !1,
					i = o(e);
				return void 0 === i && (i = Yr(e) ? [] : Object.create(Br(e)), r = !0), a.push(e), u.push(i), r ? n(e, i) : i
			}

			function o(e) {
				switch (Fr.call(e)) {
					case "[object Int8Array]":
					case "[object Int16Array]":
					case "[object Int32Array]":
					case "[object Float32Array]":
					case "[object Float64Array]":
					case "[object Uint8Array]":
					case "[object Uint8ClampedArray]":
					case "[object Uint16Array]":
					case "[object Uint32Array]":
						return new e.constructor(i(e.buffer));
					case "[object ArrayBuffer]":
						if (!e.slice) {
							var t = new ArrayBuffer(e.byteLength);
							return new Uint8Array(t).set(new Uint8Array(e)), t
						}
						return e.slice(0);
					case "[object Boolean]":
					case "[object Number]":
					case "[object String]":
					case "[object Date]":
						return new e.constructor(e.valueOf());
					case "[object RegExp]":
						var n = new RegExp(e.source, e.toString().match(/[^\/]*$/)[0]);
						return n.lastIndex = e.lastIndex, n;
					case "[object Blob]":
						return new e.constructor([e], {
							type: e.type
						})
				}
				if (C(e.cloneNode)) return e.cloneNode(!0)
			}
			var a = [],
				u = [];
			if (t) {
				if (V(t) || I(t)) throw zr("cpta", "Can't copy! TypedArray destination cannot be mutated.");
				if (e === t) throw zr("cpi", "Can't copy! Source and destination are identical.");
				return Yr(t) ? t.length = 0 : r(t, function (e, n) {
					"$$hashKey" !== n && delete t[n]
				}), a.push(e), u.push(t), n(e, t)
			}
			return i(e)
		}

		function L(e, t) {
			if (Yr(e)) {
				t = t || [];
				for (var n = 0, r = e.length; n < r; n++) t[n] = e[n]
			} else if (y(e)) {
				t = t || {};
				for (var i in e) "$" === i.charAt(0) && "$" === i.charAt(1) || (t[i] = e[i])
			}
			return t || e
		}

		function U(e, t) {
			if (e === t) return !0;
			if (null === e || null === t) return !1;
			if (e !== e && t !== t) return !0;
			var n, r, i, o = typeof e,
				a = typeof t;
			if (o == a && "object" == o) {
				if (!Yr(e)) {
					if (k(e)) return !!k(t) && U(e.getTime(), t.getTime());
					if (S(e)) return !!S(t) && e.toString() == t.toString();
					if (A(e) || A(t) || E(e) || E(t) || Yr(t) || k(t) || S(t)) return !1;
					i = $e();
					for (r in e)
						if ("$" !== r.charAt(0) && !C(e[r])) {
							if (!U(e[r], t[r])) return !1;
							i[r] = !0
						}
					for (r in t)
						if (!(r in i) && "$" !== r.charAt(0) && g(t[r]) && !C(t[r])) return !1;
					return !0
				}
				if (!Yr(t)) return !1;
				if ((n = e.length) == t.length) {
					for (r = 0; r < n; r++)
						if (!U(e[r], t[r])) return !1;
					return !0
				}
			}
			return !1
		}

		function q(e, t, n) {
			return e.concat(Lr.call(t, n))
		}

		function F(e, t) {
			return Lr.call(e, t || 0)
		}

		function B(e, t) {
			var n = arguments.length > 2 ? F(arguments, 2) : [];
			return !C(t) || t instanceof RegExp ? t : n.length ? function () {
				return arguments.length ? t.apply(e, q(n, arguments, 0)) : t.apply(e, n)
			} : function () {
				return arguments.length ? t.apply(e, arguments) : t.call(e)
			}
		}

		function z(t, n) {
			var r = n;
			return "string" == typeof t && "$" === t.charAt(0) && "$" === t.charAt(1) ? r = void 0 : E(n) ? r = "$WINDOW" : n && e.document === n ? r = "$DOCUMENT" : A(n) && (r = "$SCOPE"), r
		}

		function W(e, t) {
			if (!m(e)) return w(t) || (t = t ? 2 : null), JSON.stringify(e, z, t)
		}

		function G(e) {
			return x(e) ? JSON.parse(e) : e
		}

		function Y(e, t) {
			e = e.replace(ei, "");
			var n = Date.parse("Jan 01, 1970 00:00:00 " + e) / 6e4;
			return isNaN(n) ? t : n
		}

		function J(e, t) {
			return e = new Date(e.getTime()), e.setMinutes(e.getMinutes() + t), e
		}

		function Z(e, t, n) {
			n = n ? -1 : 1;
			var r = e.getTimezoneOffset(),
				i = Y(t, r);
			return J(e, n * (i - r))
		}

		function K(e) {
			e = _r(e).clone();
			try {
				e.empty()
			} catch (e) {}
			var t = _r("<div>").append(e).html();
			try {
				return e[0].nodeType === ai ? jr(t) : t.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function (e, t) {
					return "<" + jr(t)
				})
			} catch (e) {
				return jr(t)
			}
		}

		function X(e) {
			try {
				return decodeURIComponent(e)
			} catch (e) {}
		}

		function Q(e) {
			var t = {};
			return r((e || "").split("&"), function (e) {
				var n, r, i;
				e && (r = e = e.replace(/\+/g, "%20"), n = e.indexOf("="), n !== -1 && (r = e.substring(0, n), i = e.substring(n + 1)), r = X(r), g(r) && (i = !g(i) || X(i), Nr.call(t, r) ? Yr(t[r]) ? t[r].push(i) : t[r] = [t[r], i] : t[r] = i))
			}), t
		}

		function ee(e) {
			var t = [];
			return r(e, function (e, n) {
				Yr(e) ? r(e, function (e) {
					t.push(ne(n, !0) + (e === !0 ? "" : "=" + ne(e, !0)))
				}) : t.push(ne(n, !0) + (e === !0 ? "" : "=" + ne(e, !0)))
			}), t.length ? t.join("&") : ""
		}

		function te(e) {
			return ne(e, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
		}

		function ne(e, t) {
			return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, t ? "%20" : "+")
		}

		function re(e, t) {
			var n, r, i = ti.length;
			for (r = 0; r < i; ++r)
				if (n = ti[r] + t, x(n = e.getAttribute(n))) return n;
			return null
		}

		function ie(e, t) {
			var n, i, o = {};
			r(ti, function (t) {
				var r = t + "app";
				!n && e.hasAttribute && e.hasAttribute(r) && (n = e, i = e.getAttribute(r))
			}), r(ti, function (t) {
				var r, o = t + "app";
				!n && (r = e.querySelector("[" + o.replace(":", "\\:") + "]")) && (n = r, i = r.getAttribute(o))
			}), n && (o.strictDi = null !== re(n, "strict-di"), t(n, i ? [i] : [], o))
		}

		function oe(t, n, i) {
			y(i) || (i = {});
			var o = {
				strictDi: !1
			};
			i = c(o, i);
			var a = function () {
					if (t = _r(t), t.injector()) {
						var r = t[0] === e.document ? "document" : K(t);
						throw zr("btstrpd", "App already bootstrapped with this element '{0}'", r.replace(/</, "&lt;").replace(/>/, "&gt;"))
					}
					n = n || [], n.unshift(["$provide", function (e) {
						e.value("$rootElement", t)
					}]), i.debugInfoEnabled && n.push(["$compileProvider", function (e) {
						e.debugInfoEnabled(!0)
					}]), n.unshift("ng");
					var o = rt(n, i.strictDi);
					return o.invoke(["$rootScope", "$rootElement", "$compile", "$injector", function (e, t, n, r) {
						e.$apply(function () {
							t.data("$injector", r), n(t)(e)
						})
					}]), o
				},
				s = /^NG_ENABLE_DEBUG_INFO!/,
				u = /^NG_DEFER_BOOTSTRAP!/;
			return e && s.test(e.name) && (i.debugInfoEnabled = !0, e.name = e.name.replace(s, "")), e && !u.test(e.name) ? a() : (e.name = e.name.replace(u, ""), Wr.resumeBootstrap = function (e) {
				return r(e, function (e) {
					n.push(e)
				}), a()
			}, void(C(Wr.resumeDeferredBootstrap) && Wr.resumeDeferredBootstrap()))
		}

		function ae() {
			e.name = "NG_ENABLE_DEBUG_INFO!" + e.name, e.location.reload()
		}

		function se(e) {
			var t = Wr.element(e).injector();
			if (!t) throw zr("test", "no injector found for element argument to getTestability");
			return t.get("$$testability")
		}

		function ue(e, t) {
			return t = t || "_", e.replace(ni, function (e, n) {
				return (n ? t : "") + e.toLowerCase()
			})
		}

		function ce() {
			var t;
			if (!ri) {
				var n = Qr();
				Pr = m(n) ? e.jQuery : n ? e[n] : void 0, Pr && Pr.fn.on ? (_r = Pr, c(Pr.fn, {
					scope: Si.scope,
					isolateScope: Si.isolateScope,
					controller: Si.controller,
					injector: Si.injector,
					inheritedData: Si.inheritedData
				}), t = Pr.cleanData, Pr.cleanData = function (e) {
					for (var n, r, i = 0; null != (r = e[i]); i++) n = Pr._data(r, "events"), n && n.$destroy && Pr(r).triggerHandler("$destroy");
					t(e)
				}) : _r = Oe, Wr.element = _r, ri = !0
			}
		}

		function le(e, t, n) {
			if (!e) throw zr("areq", "Argument '{0}' is {1}", t || "?", n || "required");
			return e
		}

		function fe(e, t, n) {
			return n && Yr(e) && (e = e[e.length - 1]), le(C(e), t, "not a function, got " + (e && "object" == typeof e ? e.constructor.name || "Object" : typeof e)), e
		}

		function he(e, t) {
			if ("hasOwnProperty" === e) throw zr("badname", "hasOwnProperty is not a valid {0} name", t)
		}

		function pe(e, t, n) {
			if (!t) return e;
			for (var r, i = t.split("."), o = e, a = i.length, s = 0; s < a; s++) r = i[s], e && (e = (o = e)[r]);
			return !n && C(e) ? B(o, e) : e
		}

		function de(e) {
			for (var t, n = e[0], r = e[e.length - 1], i = 1; n !== r && (n = n.nextSibling); i++)(t || e[i] !== n) && (t || (t = _r(Lr.call(e, 0, i))), t.push(n));
			return t || e
		}

		function $e() {
			return Object.create(null)
		}

		function ve(e) {
			function n(e, t, n) {
				return e[t] || (e[t] = n())
			}
			var r = t("$injector"),
				i = t("ng"),
				o = n(e, "angular", Object);
			return o.$$minErr = o.$$minErr || t, n(o, "module", function () {
				var e = {};
				return function (t, o, a) {
					var s = function (e, t) {
						if ("hasOwnProperty" === e) throw i("badname", "hasOwnProperty is not a valid {0} name", t)
					};
					return s(t, "module"), o && e.hasOwnProperty(t) && (e[t] = null), n(e, t, function () {
						function e(e, t, n, r) {
							return r || (r = i),
								function () {
									return r[n || "push"]([e, t, arguments]), l
								}
						}

						function n(e, n) {
							return function (r, o) {
								return o && C(o) && (o.$$moduleName = t), i.push([e, n, arguments]), l
							}
						}
						if (!o) throw r("nomod", "Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.", t);
						var i = [],
							s = [],
							u = [],
							c = e("$injector", "invoke", "push", s),
							l = {
								_invokeQueue: i,
								_configBlocks: s,
								_runBlocks: u,
								requires: o,
								name: t,
								provider: n("$provide", "provider"),
								factory: n("$provide", "factory"),
								service: n("$provide", "service"),
								value: e("$provide", "value"),
								constant: e("$provide", "constant", "unshift"),
								decorator: n("$provide", "decorator"),
								animation: n("$animateProvider", "register"),
								filter: n("$filterProvider", "register"),
								controller: n("$controllerProvider", "register"),
								directive: n("$compileProvider", "directive"),
								component: n("$compileProvider", "component"),
								config: c,
								run: function (e) {
									return u.push(e), this
								}
							};
						return a && c(a), l
					})
				}
			})
		}

		function me(e) {
			var t = [];
			return JSON.stringify(e, function (e, n) {
				if (n = z(e, n), y(n)) {
					if (t.indexOf(n) >= 0) return "...";
					t.push(n)
				}
				return n
			})
		}

		function ge(e) {
			return "function" == typeof e ? e.toString().replace(/ \{[\s\S]*$/, "") : m(e) ? "undefined" : "string" != typeof e ? me(e) : e
		}

		function ye(n) {
			c(n, {
				bootstrap: oe,
				copy: R,
				extend: c,
				merge: l,
				equals: U,
				element: _r,
				forEach: r,
				injector: rt,
				noop: p,
				bind: B,
				toJson: W,
				fromJson: G,
				identity: d,
				isUndefined: m,
				isDefined: g,
				isString: x,
				isFunction: C,
				isObject: y,
				isNumber: w,
				isElement: H,
				isArray: Yr,
				version: li,
				isDate: k,
				lowercase: jr,
				uppercase: Vr,
				callbacks: {
					counter: 0
				},
				getTestability: se,
				$$minErr: t,
				$$csp: Xr,
				reloadWithDebugInfo: ae
			}), (Rr = ve(e))("ng", ["ngLocale"], ["$provide", function (e) {
				e.provider({
					$$sanitizeUri: Sn
				}), e.provider("$compile", dt).directive({
					a: Vo,
					input: Xo,
					textarea: Xo,
					form: Po,
					script: Ga,
					select: Za,
					style: Xa,
					option: Ka,
					ngBind: ta,
					ngBindHtml: ra,
					ngBindTemplate: na,
					ngClass: oa,
					ngClassEven: sa,
					ngClassOdd: aa,
					ngCloak: ua,
					ngController: ca,
					ngForm: Ro,
					ngHide: La,
					ngIf: ha,
					ngInclude: pa,
					ngInit: $a,
					ngNonBindable: Na,
					ngPluralize: Ha,
					ngRepeat: Da,
					ngShow: Ra,
					ngStyle: Ua,
					ngSwitch: qa,
					ngSwitchWhen: Fa,
					ngSwitchDefault: Ba,
					ngOptions: Ia,
					ngTransclude: Wa,
					ngModel: Ta,
					ngList: va,
					ngChange: ia,
					pattern: es,
					ngPattern: es,
					required: Qa,
					ngRequired: Qa,
					minlength: ns,
					ngMinlength: ns,
					maxlength: ts,
					ngMaxlength: ts,
					ngValue: ea,
					ngModelOptions: Ma
				}).directive({
					ngInclude: da
				}).directive(Io).directive(la), e.provider({
					$anchorScroll: it,
					$animate: Ui,
					$animateCss: Bi,
					$$animateJs: Ri,
					$$animateQueue: Li,
					$$AnimateRunner: Fi,
					$$animateAsyncRun: qi,
					$browser: lt,
					$cacheFactory: ft,
					$controller: bt,
					$document: xt,
					$exceptionHandler: wt,
					$filter: Rn,
					$$forceReflow: Zi,
					$interpolate: Dt,
					$interval: _t,
					$http: jt,
					$httpParamSerializer: Ct,
					$httpParamSerializerJQLike: St,
					$httpBackend: It,
					$xhrFactory: Vt,
					$location: Xt,
					$log: Qt,
					$parse: yn,
					$rootScope: Cn,
					$q: bn,
					$$q: xn,
					$sce: On,
					$sceDelegate: Tn,
					$sniffer: Mn,
					$templateCache: ht,
					$templateRequest: Nn,
					$$testability: jn,
					$timeout: Vn,
					$window: Dn,
					$$rAF: kn,
					$$jqLite: Ze,
					$$HashMap: Oi,
					$$cookieReader: Pn
				})
			}])
		}

		function be() {
			return ++hi
		}

		function xe(e) {
			return e.replace($i, function (e, t, n, r) {
				return r ? n.toUpperCase() : n
			}).replace(vi, "Moz$1")
		}

		function we(e) {
			return !bi.test(e)
		}

		function ke(e) {
			var t = e.nodeType;
			return t === ii || !t || t === ui
		}

		function Ce(e) {
			for (var t in fi[e.ng339]) return !0;
			return !1
		}

		function Se(e) {
			for (var t = 0, n = e.length; t < n; t++) Ve(e[t])
		}

		function Ee(e, t) {
			var n, i, o, a, s = t.createDocumentFragment(),
				u = [];
			if (we(e)) u.push(t.createTextNode(e));
			else {
				for (n = n || s.appendChild(t.createElement("div")), i = (xi.exec(e) || ["", ""])[1].toLowerCase(), o = ki[i] || ki._default, n.innerHTML = o[1] + e.replace(wi, "<$1></$2>") + o[2], a = o[0]; a--;) n = n.lastChild;
				u = q(u, n.childNodes), n = s.firstChild, n.textContent = ""
			}
			return s.textContent = "", s.innerHTML = "", r(u, function (e) {
				s.appendChild(e)
			}), s
		}

		function Ae(t, n) {
			n = n || e.document;
			var r;
			return (r = yi.exec(t)) ? [n.createElement(r[1])] : (r = Ee(t, n)) ? r.childNodes : []
		}

		function Te(e, t) {
			var n = e.parentNode;
			n && n.replaceChild(t, e), t.appendChild(e)
		}

		function Oe(e) {
			if (e instanceof Oe) return e;
			var t;
			if (x(e) && (e = Zr(e), t = !0), !(this instanceof Oe)) {
				if (t && "<" != e.charAt(0)) throw gi("nosel", "Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");
				return new Oe(e)
			}
			t ? Re(this, Ae(e)) : Re(this, e)
		}

		function Me(e) {
			return e.cloneNode(!0)
		}

		function Ne(e, t) {
			if (t || Ve(e), e.querySelectorAll)
				for (var n = e.querySelectorAll("*"), r = 0, i = n.length; r < i; r++) Ve(n[r])
		}

		function je(e, t, n, i) {
			if (g(i)) throw gi("offargs", "jqLite#off() does not support the `selector` argument");
			var o = Ie(e),
				a = o && o.events,
				s = o && o.handle;
			if (s)
				if (t) {
					var u = function (t) {
						var r = a[t];
						g(n) && P(r || [], n), g(n) && r && r.length > 0 || (di(e, t, s), delete a[t])
					};
					r(t.split(" "), function (e) {
						u(e), mi[e] && u(mi[e])
					})
				} else
					for (t in a) "$destroy" !== t && di(e, t, s), delete a[t]
		}

		function Ve(e, t) {
			var n = e.ng339,
				r = n && fi[n];
			if (r) {
				if (t) return void delete r.data[t];
				r.handle && (r.events.$destroy && r.handle({}, "$destroy"), je(e)), delete fi[n], e.ng339 = void 0
			}
		}

		function Ie(e, t) {
			var n = e.ng339,
				r = n && fi[n];
			return t && !r && (e.ng339 = n = be(), r = fi[n] = {
				events: {},
				data: {},
				handle: void 0
			}), r
		}

		function He(e, t, n) {
			if (ke(e)) {
				var r = g(n),
					i = !r && t && !y(t),
					o = !t,
					a = Ie(e, !i),
					s = a && a.data;
				if (r) s[t] = n;
				else {
					if (o) return s;
					if (i) return s && s[t];
					c(s, t)
				}
			}
		}

		function De(e, t) {
			return !!e.getAttribute && (" " + (e.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + t + " ") > -1
		}

		function _e(e, t) {
			t && e.setAttribute && r(t.split(" "), function (t) {
				e.setAttribute("class", Zr((" " + (e.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + Zr(t) + " ", " ")))
			})
		}

		function Pe(e, t) {
			if (t && e.setAttribute) {
				var n = (" " + (e.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ");
				r(t.split(" "), function (e) {
					e = Zr(e), n.indexOf(" " + e + " ") === -1 && (n += e + " ")
				}), e.setAttribute("class", Zr(n))
			}
		}

		function Re(e, t) {
			if (t)
				if (t.nodeType) e[e.length++] = t;
				else {
					var n = t.length;
					if ("number" == typeof n && t.window !== t) {
						if (n)
							for (var r = 0; r < n; r++) e[e.length++] = t[r]
					} else e[e.length++] = t
				}
		}

		function Le(e, t) {
			return Ue(e, "$" + (t || "ngController") + "Controller")
		}

		function Ue(e, t, n) {
			e.nodeType == ui && (e = e.documentElement);
			for (var r = Yr(t) ? t : [t]; e;) {
				for (var i = 0, o = r.length; i < o; i++)
					if (g(n = _r.data(e, r[i]))) return n;
				e = e.parentNode || e.nodeType === ci && e.host
			}
		}

		function qe(e) {
			for (Ne(e, !0); e.firstChild;) e.removeChild(e.firstChild)
		}

		function Fe(e, t) {
			t || Ne(e);
			var n = e.parentNode;
			n && n.removeChild(e)
		}

		function Be(t, n) {
			n = n || e, "complete" === n.document.readyState ? n.setTimeout(t) : _r(n).on("load", t)
		}

		function ze(e, t) {
			var n = Ei[t.toLowerCase()];
			return n && Ai[_(e)] && n
		}

		function We(e) {
			return Ti[e]
		}

		function Ge(e, t) {
			var n = function (n, r) {
				n.isDefaultPrevented = function () {
					return n.defaultPrevented
				};
				var i = t[r || n.type],
					o = i ? i.length : 0;
				if (o) {
					if (m(n.immediatePropagationStopped)) {
						var a = n.stopImmediatePropagation;
						n.stopImmediatePropagation = function () {
							n.immediatePropagationStopped = !0, n.stopPropagation && n.stopPropagation(), a && a.call(n)
						}
					}
					n.isImmediatePropagationStopped = function () {
						return n.immediatePropagationStopped === !0
					};
					var s = i.specialHandlerWrapper || Ye;
					o > 1 && (i = L(i));
					for (var u = 0; u < o; u++) n.isImmediatePropagationStopped() || s(e, n, i[u])
				}
			};
			return n.elem = e, n
		}

		function Ye(e, t, n) {
			n.call(e, t)
		}

		function Je(e, t, n) {
			var r = t.relatedTarget;
			r && (r === e || Ci.call(e, r)) || n.call(e, t)
		}

		function Ze() {
			this.$get = function () {
				return c(Oe, {
					hasClass: function (e, t) {
						return e.attr && (e = e[0]), De(e, t)
					},
					addClass: function (e, t) {
						return e.attr && (e = e[0]), Pe(e, t)
					},
					removeClass: function (e, t) {
						return e.attr && (e = e[0]), _e(e, t)
					}
				})
			}
		}

		function Ke(e, t) {
			var n = e && e.$$hashKey;
			if (n) return "function" == typeof n && (n = e.$$hashKey()), n;
			var r = typeof e;
			return n = "function" == r || "object" == r && null !== e ? e.$$hashKey = r + ":" + (t || a)() : r + ":" + e
		}

		function Xe(e, t) {
			if (t) {
				var n = 0;
				this.nextUid = function () {
					return ++n
				}
			}
			r(e, this.put, this)
		}

		function Qe(e) {
			return Function.prototype.toString.call(e) + " "
		}

		function et(e) {
			var t = Qe(e).replace(Ii, ""),
				n = t.match(Mi) || t.match(Ni);
			return n
		}

		function tt(e) {
			var t = et(e);
			return t ? "function(" + (t[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn"
		}

		function nt(e, t, n) {
			var i, o, a;
			if ("function" == typeof e) {
				if (!(i = e.$inject)) {
					if (i = [], e.length) {
						if (t) throw x(n) && n || (n = e.name || tt(e)), Hi("strictdi", "{0} is not using explicit annotation and cannot be invoked in strict mode", n);
						o = et(e), r(o[1].split(ji), function (e) {
							e.replace(Vi, function (e, t, n) {
								i.push(n)
							})
						})
					}
					e.$inject = i
				}
			} else Yr(e) ? (a = e.length - 1, fe(e[a], "fn"), i = e.slice(0, a)) : fe(e, "fn", !0);
			return i
		}

		function rt(e, t) {
			function n(e) {
				return function (t, n) {
					return y(t) ? void r(t, o(e)) : e(t, n)
				}
			}

			function i(e, t) {
				if (he(e, "service"), (C(t) || Yr(t)) && (t = k.instantiate(t)), !t.$get) throw Hi("pget", "Provider '{0}' must define $get factory method.", e);
				return w[e + v] = t
			}

			function a(e, t) {
				return function () {
					var n = A.invoke(t, this);
					if (m(n)) throw Hi("undef", "Provider '{0}' must return a value from $get factory method.", e);
					return n
				}
			}

			function s(e, t, n) {
				return i(e, {
					$get: n !== !1 ? a(e, t) : t
				})
			}

			function u(e, t) {
				return s(e, ["$injector", function (e) {
					return e.instantiate(t)
				}])
			}

			function c(e, t) {
				return s(e, $(t), !1)
			}

			function l(e, t) {
				he(e, "constant"), w[e] = t, S[e] = t
			}

			function f(e, t) {
				var n = k.get(e + v),
					r = n.$get;
				n.$get = function () {
					var e = A.invoke(r, n);
					return A.invoke(t, null, {
						$delegate: e
					})
				}
			}

			function h(e) {
				le(m(e) || Yr(e), "modulesToLoad", "not an array");
				var t, n = [];
				return r(e, function (e) {
					function r(e) {
						var t, n;
						for (t = 0, n = e.length; t < n; t++) {
							var r = e[t],
								i = k.get(r[0]);
							i[r[1]].apply(i, r[2])
						}
					}
					if (!b.get(e)) {
						b.put(e, !0);
						try {
							x(e) ? (t = Rr(e), n = n.concat(h(t.requires)).concat(t._runBlocks), r(t._invokeQueue), r(t._configBlocks)) : C(e) ? n.push(k.invoke(e)) : Yr(e) ? n.push(k.invoke(e)) : fe(e, "module")
						} catch (t) {
							throw Yr(e) && (e = e[e.length - 1]), t.message && t.stack && t.stack.indexOf(t.message) == -1 && (t = t.message + "\n" + t.stack), Hi("modulerr", "Failed to instantiate module {0} due to:\n{1}", e, t.stack || t.message || t)
						}
					}
				}), n
			}

			function p(e, n) {
				function r(t, r) {
					if (e.hasOwnProperty(t)) {
						if (e[t] === d) throw Hi("cdep", "Circular dependency found: {0}", t + " <- " + g.join(" <- "));
						return e[t]
					}
					try {
						return g.unshift(t), e[t] = d, e[t] = n(t, r)
					} catch (n) {
						throw e[t] === d && delete e[t], n
					} finally {
						g.shift()
					}
				}

				function i(e, n, i) {
					for (var o = [], a = rt.$$annotate(e, t, i), s = 0, u = a.length; s < u; s++) {
						var c = a[s];
						if ("string" != typeof c) throw Hi("itkn", "Incorrect injection token! Expected service name as string, got {0}", c);
						o.push(n && n.hasOwnProperty(c) ? n[c] : r(c, i))
					}
					return o
				}

				function o(e) {
					return !(Dr <= 11) && ("function" == typeof e && /^(?:class\s|constructor\()/.test(Qe(e)))
				}

				function a(e, t, n, r) {
					"string" == typeof n && (r = n, n = null);
					var a = i(e, n, r);
					return Yr(e) && (e = e[e.length - 1]), o(e) ? (a.unshift(null), new(Function.prototype.bind.apply(e, a))) : e.apply(t, a)
				}

				function s(e, t, n) {
					var r = Yr(e) ? e[e.length - 1] : e,
						o = i(e, t, n);
					return o.unshift(null), new(Function.prototype.bind.apply(r, o))
				}
				return {
					invoke: a,
					instantiate: s,
					get: r,
					annotate: rt.$$annotate,
					has: function (t) {
						return w.hasOwnProperty(t + v) || e.hasOwnProperty(t)
					}
				}
			}
			t = t === !0;
			var d = {},
				v = "Provider",
				g = [],
				b = new Xe([], !0),
				w = {
					$provide: {
						provider: n(i),
						factory: n(s),
						service: n(u),
						value: n(c),
						constant: n(l),
						decorator: f
					}
				},
				k = w.$injector = p(w, function (e, t) {
					throw Wr.isString(t) && g.push(t), Hi("unpr", "Unknown provider: {0}", g.join(" <- "))
				}),
				S = {},
				E = p(S, function (e, t) {
					var n = k.get(e + v, t);
					return A.invoke(n.$get, n, void 0, e)
				}),
				A = E;
			w["$injector" + v] = {
				$get: $(E)
			};
			var T = h(e);
			return A = E.get("$injector"), A.strictDi = t, r(T, function (e) {
				e && A.invoke(e)
			}), A
		}

		function it() {
			var e = !0;
			this.disableAutoScrolling = function () {
				e = !1
			}, this.$get = ["$window", "$location", "$rootScope", function (t, n, r) {
				function i(e) {
					var t = null;
					return Array.prototype.some.call(e, function (e) {
						if ("a" === _(e)) return t = e, !0
					}), t
				}

				function o() {
					var e = s.yOffset;
					if (C(e)) e = e();
					else if (H(e)) {
						var n = e[0],
							r = t.getComputedStyle(n);
						e = "fixed" !== r.position ? 0 : n.getBoundingClientRect().bottom
					} else w(e) || (e = 0);
					return e
				}

				function a(e) {
					if (e) {
						e.scrollIntoView();
						var n = o();
						if (n) {
							var r = e.getBoundingClientRect().top;
							t.scrollBy(0, r - n)
						}
					} else t.scrollTo(0, 0)
				}

				function s(e) {
					e = x(e) ? e : n.hash();
					var t;
					e ? (t = u.getElementById(e)) ? a(t) : (t = i(u.getElementsByName(e))) ? a(t) : "top" === e && a(null) : a(null)
				}
				var u = t.document;
				return e && r.$watch(function () {
					return n.hash()
				}, function (e, t) {
					e === t && "" === e || Be(function () {
						r.$evalAsync(s)
					})
				}), s
			}]
		}

		function ot(e, t) {
			return e || t ? e ? t ? (Yr(e) && (e = e.join(" ")), Yr(t) && (t = t.join(" ")), e + " " + t) : e : t : ""
		}

		function at(e) {
			for (var t = 0; t < e.length; t++) {
				var n = e[t];
				if (n.nodeType === _i) return n
			}
		}

		function st(e) {
			x(e) && (e = e.split(" "));
			var t = $e();
			return r(e, function (e) {
				e.length && (t[e] = !0)
			}), t
		}

		function ut(e) {
			return y(e) ? e : {}
		}

		function ct(e, t, n, i) {
			function o(e) {
				try {
					e.apply(null, F(arguments, 1))
				} finally {
					if (g--, 0 === g)
						for (; y.length;) try {
							y.pop()()
						} catch (e) {
							n.error(e)
						}
				}
			}

			function a(e) {
				var t = e.indexOf("#");
				return t === -1 ? "" : e.substr(t)
			}

			function s() {
				C = null, u(), c()
			}

			function u() {
				b = S(), b = m(b) ? null : b, U(b, T) && (b = T), T = b
			}

			function c() {
				w === l.url() && x === b || (w = l.url(), x = b, r(E, function (e) {
					e(l.url(), b)
				}))
			}
			var l = this,
				f = e.location,
				h = e.history,
				d = e.setTimeout,
				$ = e.clearTimeout,
				v = {};
			l.isMock = !1;
			var g = 0,
				y = [];
			l.$$completeOutstandingRequest = o, l.$$incOutstandingRequestCount = function () {
				g++
			}, l.notifyWhenNoOutstandingRequests = function (e) {
				0 === g ? e() : y.push(e)
			};
			var b, x, w = f.href,
				k = t.find("base"),
				C = null,
				S = i.history ? function () {
					try {
						return h.state
					} catch (e) {}
				} : p;
			u(), x = b, l.url = function (t, n, r) {
				if (m(r) && (r = null), f !== e.location && (f = e.location), h !== e.history && (h = e.history), t) {
					var o = x === r;
					if (w === t && (!i.history || o)) return l;
					var s = w && Ft(w) === Ft(t);
					return w = t, x = r, !i.history || s && o ? (s || (C = t), n ? f.replace(t) : s ? f.hash = a(t) : f.href = t, f.href !== t && (C = t)) : (h[n ? "replaceState" : "pushState"](r, "", t), u(), x = b), C && (C = t), l
				}
				return C || f.href.replace(/%27/g, "'")
			}, l.state = function () {
				return b
			};
			var E = [],
				A = !1,
				T = null;
			l.onUrlChange = function (t) {
				return A || (i.history && _r(e).on("popstate", s), _r(e).on("hashchange", s), A = !0), E.push(t), t
			}, l.$$applicationDestroyed = function () {
				_r(e).off("hashchange popstate", s)
			}, l.$$checkUrlChange = c, l.baseHref = function () {
				var e = k.attr("href");
				return e ? e.replace(/^(https?\:)?\/\/[^\/]*/, "") : ""
			}, l.defer = function (e, t) {
				var n;
				return g++, n = d(function () {
					delete v[n], o(e)
				}, t || 0), v[n] = !0, n
			}, l.defer.cancel = function (e) {
				return !!v[e] && (delete v[e], $(e), o(p), !0)
			}
		}

		function lt() {
			this.$get = ["$window", "$log", "$sniffer", "$document", function (e, t, n, r) {
				return new ct(e, r, t, n)
			}]
		}

		function ft() {
			this.$get = function () {
				function e(e, r) {
					function i(e) {
						e != h && (p ? p == e && (p = e.n) : p = e, o(e.n, e.p), o(e, h), h = e, h.n = null)
					}

					function o(e, t) {
						e != t && (e && (e.p = t), t && (t.n = e))
					}
					if (e in n) throw t("$cacheFactory")("iid", "CacheId '{0}' is already taken!", e);
					var a = 0,
						s = c({}, r, {
							id: e
						}),
						u = $e(),
						l = r && r.capacity || Number.MAX_VALUE,
						f = $e(),
						h = null,
						p = null;
					return n[e] = {
						put: function (e, t) {
							if (!m(t)) {
								if (l < Number.MAX_VALUE) {
									var n = f[e] || (f[e] = {
										key: e
									});
									i(n)
								}
								return e in u || a++, u[e] = t, a > l && this.remove(p.key), t
							}
						},
						get: function (e) {
							if (l < Number.MAX_VALUE) {
								var t = f[e];
								if (!t) return;
								i(t)
							}
							return u[e]
						},
						remove: function (e) {
							if (l < Number.MAX_VALUE) {
								var t = f[e];
								if (!t) return;
								t == h && (h = t.p), t == p && (p = t.n), o(t.n, t.p), delete f[e]
							}
							e in u && (delete u[e], a--)
						},
						removeAll: function () {
							u = $e(), a = 0, f = $e(), h = p = null
						},
						destroy: function () {
							u = null, s = null, f = null, delete n[e]
						},
						info: function () {
							return c({}, s, {
								size: a
							})
						}
					}
				}
				var n = {};
				return e.info = function () {
					var e = {};
					return r(n, function (t, n) {
						e[n] = t.info()
					}), e
				}, e.get = function (e) {
					return n[e]
				}, e
			}
		}

		function ht() {
			this.$get = ["$cacheFactory", function (e) {
				return e("templates")
			}]
		}

		function pt() {}

		function dt(t, n) {
			function i(e, t, n) {
				var i = /^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,
					o = $e();
				return r(e, function (e, r) {
					if (e in E) return void(o[r] = E[e]);
					var a = e.match(i);
					if (!a) throw zi("iscp", "Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}", t, r, e, n ? "controller bindings definition" : "isolate scope definition");
					o[r] = {
						mode: a[1][0],
						collection: "*" === a[2],
						optional: "?" === a[3],
						attrName: a[4] || r
					}, a[4] && (E[e] = o[r])
				}), o
			}

			function a(e, t) {
				var n = {
					isolateScope: null,
					bindToController: null
				};
				if (y(e.scope) && (e.bindToController === !0 ? (n.bindToController = i(e.scope, t, !0), n.isolateScope = {}) : n.isolateScope = i(e.scope, t, !1)), y(e.bindToController) && (n.bindToController = i(e.bindToController, t, !0)), y(n.bindToController)) {
					var r = e.controller,
						o = e.controllerAs;
					if (!r) throw zi("noctrl", "Cannot bind to controller without directive '{0}'s controller.", t);
					if (!yt(r, o)) throw zi("noident", "Cannot bind to controller without identifier for directive '{0}'.", t)
				}
				return n
			}

			function s(e) {
				var t = e.charAt(0);
				if (!t || t !== jr(t)) throw zi("baddir", "Directive/Component name '{0}' is invalid. The first character must be a lowercase letter", e);
				if (e !== e.trim()) throw zi("baddir", "Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces", e)
			}

			function u(e) {
				var t = e.require || e.controller && e.name;
				return !Yr(t) && y(t) && r(t, function (e, n) {
					var r = e.match(k),
						i = e.substring(r[0].length);
					i || (t[n] = r[0] + n)
				}), t
			}
			var l = {},
				f = "Directive",
				v = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/,
				b = /(([\w\-]+)(?:\:([^;]+))?;?)/,
				w = D("ngSrc,ngSrcset,src,srcset"),
				k = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/,
				S = /^(on[a-z]+|formaction)$/,
				E = $e();
			this.directive = function e(n, i) {
				return he(n, "directive"), x(n) ? (s(n), le(i, "directiveFactory"), l.hasOwnProperty(n) || (l[n] = [], t.factory(n + f, ["$injector", "$exceptionHandler", function (e, t) {
					var i = [];
					return r(l[n], function (r, o) {
						try {
							var a = e.invoke(r);
							C(a) ? a = {
								compile: $(a)
							} : !a.compile && a.link && (a.compile = $(a.link)), a.priority = a.priority || 0, a.index = o, a.name = a.name || n, a.require = u(a), a.restrict = a.restrict || "EA", a.$$moduleName = r.$$moduleName, i.push(a)
						} catch (e) {
							t(e)
						}
					}), i
				}])), l[n].push(i)) : r(n, o(e)), this
			}, this.component = function (e, t) {
				function n(e) {
					function n(t) {
						return C(t) || Yr(t) ? function (n, r) {
							return e.invoke(t, this, {
								$element: n,
								$attrs: r
							})
						} : t
					}
					var o = t.template || t.templateUrl ? t.template : "",
						a = {
							controller: i,
							controllerAs: yt(t.controller) || t.controllerAs || "$ctrl",
							template: n(o),
							templateUrl: n(t.templateUrl),
							transclude: t.transclude,
							scope: {},
							bindToController: t.bindings || {},
							restrict: "E",
							require: t.require
						};
					return r(t, function (e, t) {
						"$" === t.charAt(0) && (a[t] = e)
					}), a
				}
				var i = t.controller || function () {};
				return r(t, function (e, t) {
					"$" === t.charAt(0) && (n[t] = e, C(i) && (i[t] = e))
				}), n.$inject = ["$injector"], this.directive(e, n)
			}, this.aHrefSanitizationWhitelist = function (e) {
				return g(e) ? (n.aHrefSanitizationWhitelist(e), this) : n.aHrefSanitizationWhitelist()
			}, this.imgSrcSanitizationWhitelist = function (e) {
				return g(e) ? (n.imgSrcSanitizationWhitelist(e), this) : n.imgSrcSanitizationWhitelist()
			};
			var T = !0;
			this.debugInfoEnabled = function (e) {
				return g(e) ? (T = e, this) : T
			};
			var O = 10;
			this.onChangesTtl = function (e) {
				return arguments.length ? (O = e, this) : O
			}, this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function (t, n, i, o, s, u, $, E, M, j) {
				function V() {
					try {
						if (!--xe) throw ge = void 0, zi("infchng", "{0} $onChanges() iterations reached. Aborting!\n", O);
						$.$apply(function () {
							for (var e = 0, t = ge.length; e < t; ++e) ge[e]();
							ge = void 0
						})
					} finally {
						xe++
					}
				}

				function I(e, t) {
					if (t) {
						var n, r, i, o = Object.keys(t);
						for (n = 0, r = o.length; n < r; n++) i = o[n], this[i] = t[i]
					} else this.$attr = {};
					this.$$element = e
				}

				function H(e, t, n) {
					be.innerHTML = "<span " + t + ">";
					var r = be.firstChild.attributes,
						i = r[0];
					r.removeNamedItem(i.name), i.value = n, e.attributes.setNamedItem(i)
				}

				function D(e, t) {
					try {
						e.addClass(t)
					} catch (e) {}
				}

				function R(t, n, r, i, o) {
					t instanceof _r || (t = _r(t));
					for (var a = /\S+/, s = 0, u = t.length; s < u; s++) {
						var c = t[s];
						c.nodeType === ai && c.nodeValue.match(a) && Te(c, t[s] = e.document.createElement("span"))
					}
					var l = q(t, n, t, r, i, o);
					R.$$addScopeClass(t);
					var f = null;
					return function (e, n, r) {
						le(e, "scope"), o && o.needsNewScope && (e = e.$parent.$new()), r = r || {};
						var i = r.parentBoundTranscludeFn,
							a = r.transcludeControllers,
							s = r.futureParentElement;
						i && i.$$boundTransclude && (i = i.$$boundTransclude), f || (f = L(s));
						var u;
						if (u = "html" !== f ? _r(ce(f, _r("<div>").append(t).html())) : n ? Si.clone.call(t) : t, a)
							for (var c in a) u.data("$" + c + "Controller", a[c].instance);
						return R.$$addScopeInfo(u, e), n && n(u, e), l && l(e, u, u, i), u
					}
				}

				function L(e) {
					var t = e && e[0];
					return t && "foreignobject" !== _(t) && Fr.call(t).match(/SVG/) ? "svg" : "html"
				}

				function q(e, t, n, r, i, o) {
					function a(e, n, r, i) {
						var o, a, s, u, c, l, f, h, $;
						if (p) {
							var v = n.length;
							for ($ = new Array(v), c = 0; c < d.length; c += 3) f = d[c], $[f] = n[f]
						} else $ = n;
						for (c = 0, l = d.length; c < l;) s = $[d[c++]], o = d[c++], a = d[c++], o ? (o.scope ? (u = e.$new(), R.$$addScopeInfo(_r(s), u)) : u = e, h = o.transcludeOnThisElement ? z(e, o.transclude, i) : !o.templateOnThisElement && i ? i : !i && t ? z(e, t) : null, o(a, u, s, r, h)) : a && a(e, s.childNodes, void 0, i)
					}
					for (var s, u, c, l, f, h, p, d = [], $ = 0; $ < e.length; $++) s = new I, u = W(e[$], [], s, 0 === $ ? r : void 0, i), c = u.length ? Z(u, e[$], s, t, n, null, [], [], o) : null, c && c.scope && R.$$addScopeClass(s.$$element), f = c && c.terminal || !(l = e[$].childNodes) || !l.length ? null : q(l, c ? (c.transcludeOnThisElement || !c.templateOnThisElement) && c.transclude : t), (c || f) && (d.push($, c, f), h = !0, p = p || c), o = null;
					return h ? a : null
				}

				function z(e, t, n) {
					function r(r, i, o, a, s) {
						return r || (r = e.$new(!1, s), r.$$transcluded = !0), t(r, i, {
							parentBoundTranscludeFn: n,
							transcludeControllers: o,
							futureParentElement: a
						})
					}
					var i = r.$$slots = $e();
					for (var o in t.$$slots) t.$$slots[o] ? i[o] = z(e, t.$$slots[o], n) : i[o] = null;
					return r
				}

				function W(e, t, n, r, i) {
					var o, a, s = e.nodeType,
						u = n.$attr;
					switch (s) {
						case ii:
							te(t, vt(_(e)), "E", r, i);
							for (var c, l, f, h, p, d, $ = e.attributes, m = 0, g = $ && $.length; m < g; m++) {
								var w = !1,
									k = !1;
								c = $[m], l = c.name, p = Zr(c.value), h = vt(l), (d = Ee.test(h)) && (l = l.replace(Gi, "").substr(8).replace(/_(.)/g, function (e, t) {
									return t.toUpperCase()
								}));
								var C = h.match(Ae);
								C && ne(C[1]) && (w = l, k = l.substr(0, l.length - 5) + "end", l = l.substr(0, l.length - 6)), f = vt(l.toLowerCase()), u[f] = l, !d && n.hasOwnProperty(f) || (n[f] = p, ze(e, f) && (n[f] = !0)), he(e, t, p, f, d), te(t, f, "A", r, i, w, k)
							}
							if (a = e.className, y(a) && (a = a.animVal), x(a) && "" !== a)
								for (; o = b.exec(a);) f = vt(o[2]), te(t, f, "C", r, i) && (n[f] = Zr(o[3])), a = a.substr(o.index + o[0].length);
							break;
						case ai:
							if (11 === Dr)
								for (; e.parentNode && e.nextSibling && e.nextSibling.nodeType === ai;) e.nodeValue = e.nodeValue + e.nextSibling.nodeValue, e.parentNode.removeChild(e.nextSibling);
							se(t, e.nodeValue);
							break;
						case si:
							try {
								o = v.exec(e.nodeValue), o && (f = vt(o[1]), te(t, f, "M", r, i) && (n[f] = Zr(o[2])))
							} catch (e) {}
					}
					return t.sort(oe), t
				}

				function G(e, t, n) {
					var r = [],
						i = 0;
					if (t && e.hasAttribute && e.hasAttribute(t)) {
						do {
							if (!e) throw zi("uterdir", "Unterminated attribute, found '{0}' but no matching '{1}' found.", t, n);
							e.nodeType == ii && (e.hasAttribute(t) && i++, e.hasAttribute(n) && i--), r.push(e), e = e.nextSibling
						} while (i > 0)
					} else r.push(e);
					return _r(r)
				}

				function Y(e, t, n) {
					return function (r, i, o, a, s) {
						return i = G(i[0], t, n), e(r, i, o, a, s)
					}
				}

				function J(e, t, n, r, i, o) {
					var a;
					return e ? R(t, n, r, i, o) : function () {
						return a || (a = R(t, n, r, i, o), t = n = o = null), a.apply(this, arguments)
					}
				}

				function Z(e, t, n, o, a, s, u, l, f) {
					function h(e, t, n, r) {
						e && (n && (e = Y(e, n, r)), e.require = d.require, e.directiveName = $, (S === d || d.$$isolateScope) && (e = de(e, {
							isolateScope: !0
						})), u.push(e)), t && (n && (t = Y(t, n, r)), t.require = d.require, t.directiveName = $, (S === d || d.$$isolateScope) && (t = de(t, {
							isolateScope: !0
						})), l.push(t))
					}

					function p(e, i, o, a, s) {
						function f(e, t, n, r) {
							var i;
							if (A(e) || (r = n, n = t, t = e, e = void 0), N && (i = g), n || (n = N ? x.parent() : x), !r) return s(e, t, i, n, _);
							var o = s.$$slots[r];
							if (o) return o(e, t, i, n, _);
							if (m(o)) throw zi("noslot", 'No parent directive that requires a transclusion with slot name "{0}". Element: {1}', r, K(x))
						}
						var h, p, d, $, v, g, b, x, T, O;
						t === o ? (T = n, x = n.$$element) : (x = _r(o), T = new I(x, n)), v = i, S ? $ = i.$new(!0) : w && (v = i.$parent), s && (b = f, b.$$boundTransclude = s, b.isSlotFilled = function (e) {
							return !!s.$$slots[e]
						}), k && (g = Q(x, T, b, k, $, i, S)), S && (R.$$addScopeInfo(x, $, !0, !(E && (E === S || E === S.$$originalDirective))), R.$$addScopeClass(x, !0), $.$$isolateBindings = S.$$isolateBindings, O = me(i, T, $, $.$$isolateBindings, S), O.removeWatches && $.$on("$destroy", O.removeWatches));
						for (var M in g) {
							var j = k[M],
								V = g[M],
								H = j.$$bindings.bindToController;
							V.identifier && H ? V.bindingInfo = me(v, T, V.instance, H, j) : V.bindingInfo = {};
							var D = V();
							D !== V.instance && (V.instance = D, x.data("$" + j.name + "Controller", D), V.bindingInfo.removeWatches && V.bindingInfo.removeWatches(), V.bindingInfo = me(v, T, V.instance, H, j))
						}
						for (r(k, function (e, t) {
								var n = e.require;
								e.bindToController && !Yr(n) && y(n) && c(g[t].instance, X(t, n, x, g))
							}), r(g, function (e) {
								var t = e.instance;
								C(t.$onChanges) && t.$onChanges(e.bindingInfo.initialChanges), C(t.$onInit) && t.$onInit(), C(t.$onDestroy) && v.$on("$destroy", function () {
									t.$onDestroy()
								})
							}), h = 0, p = u.length; h < p; h++) d = u[h], ve(d, d.isolateScope ? $ : i, x, T, d.require && X(d.directiveName, d.require, x, g), b);
						var _ = i;
						for (S && (S.template || null === S.templateUrl) && (_ = $), e && e(_, o.childNodes, void 0, s), h = l.length - 1; h >= 0; h--) d = l[h], ve(d, d.isolateScope ? $ : i, x, T, d.require && X(d.directiveName, d.require, x, g), b);
						r(g, function (e) {
							var t = e.instance;
							C(t.$postLink) && t.$postLink()
						})
					}
					f = f || {};
					for (var d, $, v, g, b, x = -Number.MAX_VALUE, w = f.newScopeDirective, k = f.controllerDirectives, S = f.newIsolateScopeDirective, E = f.templateDirective, T = f.nonTlbTranscludeDirective, O = !1, M = !1, N = f.hasElementTranscludeDirective, j = n.$$element = _r(t), V = s, H = o, D = !1, P = !1, L = 0, U = e.length; L < U; L++) {
						d = e[L];
						var q = d.$$start,
							z = d.$$end;
						if (q && (j = G(t, q, z)), v = void 0, x > d.priority) break;
						if ((b = d.scope) && (d.templateUrl || (y(b) ? (ae("new/isolated scope", S || w, d, j), S = d) : ae("new/isolated scope", S, d, j)), w = w || d), $ = d.name, !D && (d.replace && (d.templateUrl || d.template) || d.transclude && !d.$$tlb)) {
							for (var Z, te = L + 1; Z = e[te++];)
								if (Z.transclude && !Z.$$tlb || Z.replace && (Z.templateUrl || Z.template)) {
									P = !0;
									break
								}
							D = !0
						}
						if (!d.templateUrl && d.controller && (b = d.controller, k = k || $e(), ae("'" + $ + "' controller", k[$], d, j), k[$] = d), b = d.transclude)
							if (O = !0, d.$$tlb || (ae("transclusion", T, d, j), T = d), "element" == b) N = !0, x = d.priority, v = j, j = n.$$element = _r(R.$$createComment($, n[$])), t = j[0], pe(a, F(v), t), v[0].$$parentNode = v[0].parentNode, H = J(P, v, o, x, V && V.name, {
								nonTlbTranscludeDirective: T
							});
							else {
								var ne = $e();
								if (v = _r(Me(t)).contents(), y(b)) {
									v = [];
									var oe = $e(),
										se = $e();
									r(b, function (e, t) {
										var n = "?" === e.charAt(0);
										e = n ? e.substring(1) : e, oe[e] = t, ne[t] = null, se[t] = n
									}), r(j.contents(), function (e) {
										var t = oe[vt(_(e))];
										t ? (se[t] = !0, ne[t] = ne[t] || [], ne[t].push(e)) : v.push(e)
									}), r(se, function (e, t) {
										if (!e) throw zi("reqslot", "Required transclusion slot `{0}` was not filled.", t)
									});
									for (var ue in ne) ne[ue] && (ne[ue] = J(P, ne[ue], o))
								}
								j.empty(), H = J(P, v, o, void 0, void 0, {
									needsNewScope: d.$$isolateScope || d.$$newScope
								}), H.$$slots = ne
							}
						if (d.template)
							if (M = !0, ae("template", E, d, j), E = d, b = C(d.template) ? d.template(j, n) : d.template, b = Se(b), d.replace) {
								if (V = d, v = we(b) ? [] : gt(ce(d.templateNamespace, Zr(b))), t = v[0], 1 != v.length || t.nodeType !== ii) throw zi("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", $, "");
								pe(a, j, t);
								var le = {
										$attr: {}
									},
									fe = W(t, [], le),
									he = e.splice(L + 1, e.length - (L + 1));
								(S || w) && ee(fe, S, w), e = e.concat(fe).concat(he), re(n, le), U = e.length
							} else j.html(b);
						if (d.templateUrl) M = !0, ae("template", E, d, j), E = d, d.replace && (V = d), p = ie(e.splice(L, e.length - L), j, n, a, O && H, u, l, {
							controllerDirectives: k,
							newScopeDirective: w !== d && w,
							newIsolateScopeDirective: S,
							templateDirective: E,
							nonTlbTranscludeDirective: T
						}), U = e.length;
						else if (d.compile) try {
							g = d.compile(j, n, H);
							var ge = d.$$originalDirective || d;
							C(g) ? h(null, B(ge, g), q, z) : g && h(B(ge, g.pre), B(ge, g.post), q, z)
						} catch (e) {
							i(e, K(j))
						}
						d.terminal && (p.terminal = !0, x = Math.max(x, d.priority))
					}
					return p.scope = w && w.scope === !0, p.transcludeOnThisElement = O, p.templateOnThisElement = M, p.transclude = H, f.hasElementTranscludeDirective = N, p
				}

				function X(e, t, n, i) {
					var o;
					if (x(t)) {
						var a = t.match(k),
							s = t.substring(a[0].length),
							u = a[1] || a[3],
							c = "?" === a[2];
						if ("^^" === u ? n = n.parent() : (o = i && i[s], o = o && o.instance), !o) {
							var l = "$" + s + "Controller";
							o = u ? n.inheritedData(l) : n.data(l)
						}
						if (!o && !c) throw zi("ctreq", "Controller '{0}', required by directive '{1}', can't be found!", s, e)
					} else if (Yr(t)) {
						o = [];
						for (var f = 0, h = t.length; f < h; f++) o[f] = X(e, t[f], n, i)
					} else y(t) && (o = {}, r(t, function (t, r) {
						o[r] = X(e, t, n, i)
					}));
					return o || null
				}

				function Q(e, t, n, r, i, o, a) {
					var s = $e();
					for (var c in r) {
						var l = r[c],
							f = {
								$scope: l === a || l.$$isolateScope ? i : o,
								$element: e,
								$attrs: t,
								$transclude: n
							},
							h = l.controller;
						"@" == h && (h = t[l.name]);
						var p = u(h, f, !0, l.controllerAs);
						s[l.name] = p, e.data("$" + l.name + "Controller", p.instance)
					}
					return s
				}

				function ee(e, t, n) {
					for (var r = 0, i = e.length; r < i; r++) e[r] = h(e[r], {
						$$isolateScope: t,
						$$newScope: n
					})
				}

				function te(e, n, r, o, s, u, c) {
					if (n === s) return null;
					var p = null;
					if (l.hasOwnProperty(n))
						for (var d, $ = t.get(n + f), v = 0, g = $.length; v < g; v++) try {
							if (d = $[v], (m(o) || o > d.priority) && d.restrict.indexOf(r) != -1) {
								if (u && (d = h(d, {
										$$start: u,
										$$end: c
									})), !d.$$bindings) {
									var b = d.$$bindings = a(d, d.name);
									y(b.isolateScope) && (d.$$isolateBindings = b.isolateScope)
								}
								e.push(d), p = d
							}
						} catch (e) {
							i(e)
						}
					return p
				}

				function ne(e) {
					if (l.hasOwnProperty(e))
						for (var n, r = t.get(e + f), i = 0, o = r.length; i < o; i++)
							if (n = r[i], n.multiElement) return !0;
					return !1
				}

				function re(e, t) {
					var n = t.$attr,
						i = e.$attr,
						o = e.$$element;
					r(e, function (r, i) {
						"$" != i.charAt(0) && (t[i] && t[i] !== r && (r += ("style" === i ? ";" : " ") + t[i]), e.$set(i, r, !0, n[i]))
					}), r(t, function (t, r) {
						"class" == r ? (D(o, t), e.class = (e.class ? e.class + " " : "") + t) : "style" == r ? (o.attr("style", o.attr("style") + ";" + t), e.style = (e.style ? e.style + ";" : "") + t) : "$" == r.charAt(0) || e.hasOwnProperty(r) || (e[r] = t, i[r] = n[r])
					})
				}

				function ie(e, t, n, i, a, s, u, c) {
					var l, f, p = [],
						d = t[0],
						$ = e.shift(),
						v = h($, {
							templateUrl: null,
							transclude: null,
							replace: null,
							$$originalDirective: $
						}),
						m = C($.templateUrl) ? $.templateUrl(t, n) : $.templateUrl,
						g = $.templateNamespace;
					return t.empty(), o(m).then(function (o) {
							var h, b, x, w;
							if (o = Se(o), $.replace) {
								if (x = we(o) ? [] : gt(ce(g, Zr(o))), h = x[0], 1 != x.length || h.nodeType !== ii) throw zi("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", $.name, m);
								b = {
									$attr: {}
								}, pe(i, t, h);
								var k = W(h, [], b);
								y($.scope) && ee(k, !0), e = k.concat(e), re(n, b)
							} else h = d, t.html(o);
							for (e.unshift(v), l = Z(e, h, n, a, t, $, s, u, c), r(i, function (e, n) {
									e == h && (i[n] = t[0])
								}), f = q(t[0].childNodes, a); p.length;) {
								var C = p.shift(),
									S = p.shift(),
									E = p.shift(),
									A = p.shift(),
									T = t[0];
								if (!C.$$destroyed) {
									if (S !== d) {
										var O = S.className;
										c.hasElementTranscludeDirective && $.replace || (T = Me(h)), pe(E, _r(S), T), D(_r(T), O)
									}
									w = l.transcludeOnThisElement ? z(C, l.transclude, A) : A, l(f, C, T, i, w)
								}
							}
							p = null
						}),
						function (e, t, n, r, i) {
							var o = i;
							t.$$destroyed || (p ? p.push(t, n, r, o) : (l.transcludeOnThisElement && (o = z(t, l.transclude, i)), l(f, t, n, r, o)))
						}
				}

				function oe(e, t) {
					var n = t.priority - e.priority;
					return 0 !== n ? n : e.name !== t.name ? e.name < t.name ? -1 : 1 : e.index - t.index
				}

				function ae(e, t, n, r) {
					function i(e) {
						return e ? " (module: " + e + ")" : ""
					}
					if (t) throw zi("multidir", "Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}", t.name, i(t.$$moduleName), n.name, i(n.$$moduleName), e, K(r))
				}

				function se(e, t) {
					var r = n(t, !0);
					r && e.push({
						priority: 0,
						compile: function (e) {
							var t = e.parent(),
								n = !!t.length;
							return n && R.$$addBindingClass(t),
								function (e, t) {
									var i = t.parent();
									n || R.$$addBindingClass(i), R.$$addBindingInfo(i, r.expressions), e.$watch(r, function (e) {
										t[0].nodeValue = e
									})
								}
						}
					})
				}

				function ce(t, n) {
					switch (t = jr(t || "html")) {
						case "svg":
						case "math":
							var r = e.document.createElement("div");
							return r.innerHTML = "<" + t + ">" + n + "</" + t + ">", r.childNodes[0].childNodes;
						default:
							return n
					}
				}

				function fe(e, t) {
					if ("srcdoc" == t) return E.HTML;
					var n = _(e);
					return "xlinkHref" == t || "form" == n && "action" == t || "img" != n && ("src" == t || "ngSrc" == t) ? E.RESOURCE_URL : void 0
				}

				function he(e, t, r, i, o) {
					var a = fe(e, i);
					o = w[i] || o;
					var s = n(r, !0, a, o);
					if (s) {
						if ("multiple" === i && "select" === _(e)) throw zi("selmulti", "Binding to the 'multiple' attribute is not supported. Element: {0}", K(e));
						t.push({
							priority: 100,
							compile: function () {
								return {
									pre: function (e, t, u) {
										var c = u.$$observers || (u.$$observers = $e());
										if (S.test(i)) throw zi("nodomevents", "Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");
										var l = u[i];
										l !== r && (s = l && n(l, !0, a, o), r = l), s && (u[i] = s(e), (c[i] || (c[i] = [])).$$inter = !0, (u.$$observers && u.$$observers[i].$$scope || e).$watch(s, function (e, t) {
											"class" === i && e != t ? u.$updateClass(e, t) : u.$set(i, e)
										}))
									}
								}
							}
						})
					}
				}

				function pe(t, n, r) {
					var i, o, a = n[0],
						s = n.length,
						u = a.parentNode;
					if (t)
						for (i = 0, o = t.length; i < o; i++)
							if (t[i] == a) {
								t[i++] = r;
								for (var c = i, l = c + s - 1, f = t.length; c < f; c++, l++) l < f ? t[c] = t[l] : delete t[c];
								t.length -= s - 1, t.context === a && (t.context = r);
								break
							}
					u && u.replaceChild(r, a);
					var h = e.document.createDocumentFragment();
					for (i = 0; i < s; i++) h.appendChild(n[i]);
					for (_r.hasData(a) && (_r.data(r, _r.data(a)), _r(a).off("$destroy")), _r.cleanData(h.querySelectorAll("*")), i = 1; i < s; i++) delete n[i];
					n[0] = r, n.length = 1
				}

				function de(e, t) {
					return c(function () {
						return e.apply(null, arguments)
					}, e, t)
				}

				function ve(e, t, n, r, o, a) {
					try {
						e(t, n, r, o, a)
					} catch (e) {
						i(e, K(n))
					}
				}

				function me(e, t, i, o, a) {
					function u(t, n, r) {
						C(i.$onChanges) && n !== r && (ge || (e.$$postDigest(V), ge = []), l || (l = {}, ge.push(c)), l[t] && (r = l[t].previousValue), l[t] = new $t(r, n))
					}

					function c() {
						i.$onChanges(l), l = void 0
					}
					var l, f = [],
						h = {};
					return r(o, function (r, o) {
						var c, l, d, $, v, m = r.attrName,
							g = r.optional,
							y = r.mode;
						switch (y) {
							case "@":
								g || Nr.call(t, m) || (i[o] = t[m] = void 0), t.$observe(m, function (e) {
									if (x(e) || N(e)) {
										var t = i[o];
										u(o, e, t), i[o] = e
									}
								}), t.$$observers[m].$$scope = e, c = t[m], x(c) ? i[o] = n(c)(e) : N(c) && (i[o] = c), h[o] = new $t(Wi, i[o]);
								break;
							case "=":
								if (!Nr.call(t, m)) {
									if (g) break;
									t[m] = void 0
								}
								if (g && !t[m]) break;
								l = s(t[m]), $ = l.literal ? U : function (e, t) {
									return e === t || e !== e && t !== t
								}, d = l.assign || function () {
									throw c = i[o] = l(e), zi("nonassign", "Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!", t[m], m, a.name)
								}, c = i[o] = l(e);
								var b = function (t) {
									return $(t, i[o]) || ($(t, c) ? d(e, t = i[o]) : i[o] = t), c = t
								};
								b.$stateful = !0, v = r.collection ? e.$watchCollection(t[m], b) : e.$watch(s(t[m], b), null, l.literal), f.push(v);
								break;
							case "<":
								if (!Nr.call(t, m)) {
									if (g) break;
									t[m] = void 0
								}
								if (g && !t[m]) break;
								l = s(t[m]);
								var w = i[o] = l(e);
								h[o] = new $t(Wi, i[o]), v = e.$watch(l, function (e, t) {
									if (t === e) {
										if (t === w) return;
										t = w
									}
									u(o, e, t), i[o] = e
								}, l.literal), f.push(v);
								break;
							case "&":
								if (l = t.hasOwnProperty(m) ? s(t[m]) : p, l === p && g) break;
								i[o] = function (t) {
									return l(e, t)
								}
						}
					}), {
						initialChanges: h,
						removeWatches: f.length && function () {
							for (var e = 0, t = f.length; e < t; ++e) f[e]()
						}
					}
				}
				var ge, ye = /^\w/,
					be = e.document.createElement("div"),
					xe = O;
				I.prototype = {
					$normalize: vt,
					$addClass: function (e) {
						e && e.length > 0 && M.addClass(this.$$element, e)
					},
					$removeClass: function (e) {
						e && e.length > 0 && M.removeClass(this.$$element, e)
					},
					$updateClass: function (e, t) {
						var n = mt(e, t);
						n && n.length && M.addClass(this.$$element, n);
						var r = mt(t, e);
						r && r.length && M.removeClass(this.$$element, r)
					},
					$set: function (e, t, n, o) {
						var a, s = this.$$element[0],
							u = ze(s, e),
							c = We(e),
							l = e;
						if (u ? (this.$$element.prop(e, t), o = u) : c && (this[c] = t, l = c), this[e] = t, o ? this.$attr[e] = o : (o = this.$attr[e], o || (this.$attr[e] = o = ue(e, "-"))), a = _(this.$$element), "a" === a && ("href" === e || "xlinkHref" === e) || "img" === a && "src" === e) this[e] = t = j(t, "src" === e);
						else if ("img" === a && "srcset" === e && g(t)) {
							for (var f = "", h = Zr(t), p = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/, d = /\s/.test(h) ? p : /(,)/, $ = h.split(d), v = Math.floor($.length / 2), y = 0; y < v; y++) {
								var b = 2 * y;
								f += j(Zr($[b]), !0), f += " " + Zr($[b + 1])
							}
							var x = Zr($[2 * y]).split(/\s/);
							f += j(Zr(x[0]), !0), 2 === x.length && (f += " " + Zr(x[1])), this[e] = t = f
						}
						n !== !1 && (null === t || m(t) ? this.$$element.removeAttr(o) : ye.test(o) ? this.$$element.attr(o, t) : H(this.$$element[0], o, t));
						var w = this.$$observers;
						w && r(w[l], function (e) {
							try {
								e(t)
							} catch (e) {
								i(e)
							}
						})
					},
					$observe: function (e, t) {
						var n = this,
							r = n.$$observers || (n.$$observers = $e()),
							i = r[e] || (r[e] = []);
						return i.push(t), $.$evalAsync(function () {
								i.$$inter || !n.hasOwnProperty(e) || m(n[e]) || t(n[e])
							}),
							function () {
								P(i, t)
							}
					}
				};
				var ke = n.startSymbol(),
					Ce = n.endSymbol(),
					Se = "{{" == ke && "}}" == Ce ? d : function (e) {
						return e.replace(/\{\{/g, ke).replace(/}}/g, Ce)
					},
					Ee = /^ngAttr[A-Z]/,
					Ae = /^(.+)Start$/;
				return R.$$addBindingInfo = T ? function (e, t) {
					var n = e.data("$binding") || [];
					Yr(t) ? n = n.concat(t) : n.push(t), e.data("$binding", n)
				} : p, R.$$addBindingClass = T ? function (e) {
					D(e, "ng-binding")
				} : p, R.$$addScopeInfo = T ? function (e, t, n, r) {
					var i = n ? r ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope";
					e.data(i, t)
				} : p, R.$$addScopeClass = T ? function (e, t) {
					D(e, t ? "ng-isolate-scope" : "ng-scope")
				} : p, R.$$createComment = function (t, n) {
					var r = "";
					return T && (r = " " + (t || "") + ": ", n && (r += n + " ")), e.document.createComment(r)
				}, R
			}]
		}

		function $t(e, t) {
			this.previousValue = e, this.currentValue = t
		}

		function vt(e) {
			return xe(e.replace(Gi, ""))
		}

		function mt(e, t) {
			var n = "",
				r = e.split(/\s+/),
				i = t.split(/\s+/);
			e: for (var o = 0; o < r.length; o++) {
				for (var a = r[o], s = 0; s < i.length; s++)
					if (a == i[s]) continue e;
				n += (n.length > 0 ? " " : "") + a
			}
			return n
		}

		function gt(e) {
			e = _r(e);
			var t = e.length;
			if (t <= 1) return e;
			for (; t--;) {
				var n = e[t];
				n.nodeType === si && Ur.call(e, t, 1)
			}
			return e
		}

		function yt(e, t) {
			if (t && x(t)) return t;
			if (x(e)) {
				var n = Ji.exec(e);
				if (n) return n[3]
			}
		}

		function bt() {
			var e = {},
				n = !1;
			this.has = function (t) {
				return e.hasOwnProperty(t)
			}, this.register = function (t, n) {
				he(t, "controller"), y(t) ? c(e, t) : e[t] = n
			}, this.allowGlobals = function () {
				n = !0
			}, this.$get = ["$injector", "$window", function (r, i) {
				function o(e, n, r, i) {
					if (!e || !y(e.$scope)) throw t("$controller")("noscp", "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", i, n);
					e.$scope[n] = r
				}
				return function (t, a, s, u) {
					var l, f, h, p;
					if (s = s === !0, u && x(u) && (p = u), x(t)) {
						if (f = t.match(Ji), !f) throw Yi("ctrlfmt", "Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.", t);
						h = f[1], p = p || f[3], t = e.hasOwnProperty(h) ? e[h] : pe(a.$scope, h, !0) || (n ? pe(i, h, !0) : void 0), fe(t, h, !0)
					}
					if (s) {
						var d = (Yr(t) ? t[t.length - 1] : t).prototype;
						l = Object.create(d || null), p && o(a, p, l, h || t.name);
						var $;
						return $ = c(function () {
							var e = r.invoke(t, l, a, h);
							return e !== l && (y(e) || C(e)) && (l = e, p && o(a, p, l, h || t.name)), l
						}, {
							instance: l,
							identifier: p
						})
					}
					return l = r.instantiate(t, a, h), p && o(a, p, l, h || t.name), l
				}
			}]
		}

		function xt() {
			this.$get = ["$window", function (e) {
				return _r(e.document)
			}]
		}

		function wt() {
			this.$get = ["$log", function (e) {
				return function (t, n) {
					e.error.apply(e, arguments)
				}
			}]
		}

		function kt(e) {
			return y(e) ? k(e) ? e.toISOString() : W(e) : e
		}

		function Ct() {
			this.$get = function () {
				return function (e) {
					if (!e) return "";
					var t = [];
					return i(e, function (e, n) {
						null === e || m(e) || (Yr(e) ? r(e, function (e) {
							t.push(ne(n) + "=" + ne(kt(e)))
						}) : t.push(ne(n) + "=" + ne(kt(e))))
					}), t.join("&")
				}
			}
		}

		function St() {
			this.$get = function () {
				return function (e) {
					function t(e, o, a) {
						null === e || m(e) || (Yr(e) ? r(e, function (e, n) {
							t(e, o + "[" + (y(e) ? n : "") + "]")
						}) : y(e) && !k(e) ? i(e, function (e, n) {
							t(e, o + (a ? "" : "[") + n + (a ? "" : "]"))
						}) : n.push(ne(o) + "=" + ne(kt(e))))
					}
					if (!e) return "";
					var n = [];
					return t(e, "", !0), n.join("&")
				}
			}
		}

		function Et(e, t) {
			if (x(e)) {
				var n = e.replace(to, "").trim();
				if (n) {
					var r = t("Content-Type");
					(r && 0 === r.indexOf(Ki) || At(n)) && (e = G(n))
				}
			}
			return e
		}

		function At(e) {
			var t = e.match(Qi);
			return t && eo[t[0]].test(e)
		}

		function Tt(e) {
			function t(e, t) {
				e && (i[e] = i[e] ? i[e] + ", " + t : t)
			}
			var n, i = $e();
			return x(e) ? r(e.split("\n"), function (e) {
				n = e.indexOf(":"), t(jr(Zr(e.substr(0, n))), Zr(e.substr(n + 1)))
			}) : y(e) && r(e, function (e, n) {
				t(jr(n), Zr(e))
			}), i
		}

		function Ot(e) {
			var t;
			return function (n) {
				if (t || (t = Tt(e)), n) {
					var r = t[jr(n)];
					return void 0 === r && (r = null), r
				}
				return t
			}
		}

		function Mt(e, t, n, i) {
			return C(i) ? i(e, t, n) : (r(i, function (r) {
				e = r(e, t, n)
			}), e)
		}

		function Nt(e) {
			return 200 <= e && e < 300
		}

		function jt() {
			var e = this.defaults = {
					transformResponse: [Et],
					transformRequest: [function (e) {
						return !y(e) || T(e) || M(e) || O(e) ? e : W(e)
					}],
					headers: {
						common: {
							Accept: "application/json, text/plain, */*"
						},
						post: L(Xi),
						put: L(Xi),
						patch: L(Xi)
					},
					xsrfCookieName: "XSRF-TOKEN",
					xsrfHeaderName: "X-XSRF-TOKEN",
					paramSerializer: "$httpParamSerializer"
				},
				n = !1;
			this.useApplyAsync = function (e) {
				return g(e) ? (n = !!e, this) : n
			};
			var i = !0;
			this.useLegacyPromiseExtensions = function (e) {
				return g(e) ? (i = !!e, this) : i
			};
			var o = this.interceptors = [];
			this.$get = ["$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function (a, s, u, l, f, h) {
				function p(n) {
					function o(e) {
						var t = c({}, e);
						return t.data = Mt(e.data, e.headers, e.status, u.transformResponse), Nt(e.status) ? t : f.reject(t)
					}

					function a(e, t) {
						var n, i = {};
						return r(e, function (e, r) {
							C(e) ? (n = e(t), null != n && (i[r] = n)) : i[r] = e
						}), i
					}

					function s(t) {
						var n, r, i, o = e.headers,
							s = c({}, t.headers);
						o = c({}, o.common, o[jr(t.method)]);
						e: for (n in o) {
							r = jr(n);
							for (i in s)
								if (jr(i) === r) continue e;
							s[n] = o[n]
						}
						return a(s, L(t))
					}
					if (!y(n)) throw t("$http")("badreq", "Http request configuration must be an object.  Received: {0}", n);
					if (!x(n.url)) throw t("$http")("badreq", "Http request configuration url must be a string.  Received: {0}", n.url);
					var u = c({
						method: "get",
						transformRequest: e.transformRequest,
						transformResponse: e.transformResponse,
						paramSerializer: e.paramSerializer
					}, n);
					u.headers = s(n), u.method = Vr(u.method), u.paramSerializer = x(u.paramSerializer) ? h.get(u.paramSerializer) : u.paramSerializer;
					var l = function (t) {
							var n = t.headers,
								i = Mt(t.data, Ot(n), void 0, t.transformRequest);
							return m(i) && r(n, function (e, t) {
								"content-type" === jr(t) && delete n[t]
							}), m(t.withCredentials) && !m(e.withCredentials) && (t.withCredentials = e.withCredentials), v(t, i).then(o, o)
						},
						p = [l, void 0],
						d = f.when(u);
					for (r(k, function (e) {
							(e.request || e.requestError) && p.unshift(e.request, e.requestError), (e.response || e.responseError) && p.push(e.response, e.responseError)
						}); p.length;) {
						var $ = p.shift(),
							g = p.shift();
						d = d.then($, g)
					}
					return i ? (d.success = function (e) {
						return fe(e, "fn"), d.then(function (t) {
							e(t.data, t.status, t.headers, u)
						}), d
					}, d.error = function (e) {
						return fe(e, "fn"), d.then(null, function (t) {
							e(t.data, t.status, t.headers, u)
						}), d
					}) : (d.success = ro("success"), d.error = ro("error")), d
				}

				function d(e) {
					r(arguments, function (e) {
						p[e] = function (t, n) {
							return p(c({}, n || {}, {
								method: e,
								url: t
							}))
						}
					})
				}

				function $(e) {
					r(arguments, function (e) {
						p[e] = function (t, n, r) {
							return p(c({}, r || {}, {
								method: e,
								url: t,
								data: n
							}))
						}
					})
				}

				function v(t, i) {
					function o(e) {
						if (e) {
							var t = {};
							return r(e, function (e, r) {
								t[r] = function (t) {
									function r() {
										e(t)
									}
									n ? l.$applyAsync(r) : l.$$phase ? r() : l.$apply(r)
								}
							}), t
						}
					}

					function u(e, t, r, i) {
						function o() {
							c(t, e, r, i)
						}
						$ && (Nt(e) ? $.put(S, [e, t, Tt(r), i]) : $.remove(S)), n ? l.$applyAsync(o) : (o(), l.$$phase || l.$apply())
					}

					function c(e, n, r, i) {
						n = n >= -1 ? n : 0, (Nt(n) ? x.resolve : x.reject)({
							data: e,
							status: n,
							headers: Ot(r),
							config: t,
							statusText: i
						})
					}

					function h(e) {
						c(e.data, e.status, L(e.headers()), e.statusText)
					}

					function d() {
						var e = p.pendingRequests.indexOf(t);
						e !== -1 && p.pendingRequests.splice(e, 1)
					}
					var $, v, x = f.defer(),
						k = x.promise,
						C = t.headers,
						S = b(t.url, t.paramSerializer(t.params));
					if (p.pendingRequests.push(t), k.then(d, d), !t.cache && !e.cache || t.cache === !1 || "GET" !== t.method && "JSONP" !== t.method || ($ = y(t.cache) ? t.cache : y(e.cache) ? e.cache : w), $ && (v = $.get(S), g(v) ? j(v) ? v.then(h, h) : Yr(v) ? c(v[1], v[0], L(v[2]), v[3]) : c(v, 200, {}, "OK") : $.put(S, k)), m(v)) {
						var E = Hn(t.url) ? s()[t.xsrfCookieName || e.xsrfCookieName] : void 0;
						E && (C[t.xsrfHeaderName || e.xsrfHeaderName] = E), a(t.method, S, i, u, C, t.timeout, t.withCredentials, t.responseType, o(t.eventHandlers), o(t.uploadEventHandlers))
					}
					return k
				}

				function b(e, t) {
					return t.length > 0 && (e += (e.indexOf("?") == -1 ? "?" : "&") + t), e
				}
				var w = u("$http");
				e.paramSerializer = x(e.paramSerializer) ? h.get(e.paramSerializer) : e.paramSerializer;
				var k = [];
				return r(o, function (e) {
					k.unshift(x(e) ? h.get(e) : h.invoke(e))
				}), p.pendingRequests = [], d("get", "delete", "head", "jsonp"), $("post", "put", "patch"), p.defaults = e, p
			}]
		}

		function Vt() {
			this.$get = function () {
				return function () {
					return new e.XMLHttpRequest
				}
			}
		}

		function It() {
			this.$get = ["$browser", "$window", "$document", "$xhrFactory", function (e, t, n, r) {
				return Ht(e, r, e.defer, t.angular.callbacks, n[0])
			}]
		}

		function Ht(e, t, n, i, o) {
			function a(e, t, n) {
				var r = o.createElement("script"),
					a = null;
				return r.type = "text/javascript", r.src = e, r.async = !0, a = function (e) {
					di(r, "load", a), di(r, "error", a), o.body.removeChild(r), r = null;
					var s = -1,
						u = "unknown";
					e && ("load" !== e.type || i[t].called || (e = {
						type: "error"
					}), u = e.type, s = "error" === e.type ? 404 : 200), n && n(s, u)
				}, pi(r, "load", a), pi(r, "error", a), o.body.appendChild(r), a
			}
			return function (o, s, u, c, l, f, h, d, $, v) {
				function y() {
					w && w(), k && k.abort()
				}

				function b(t, r, i, o, a) {
					g(S) && n.cancel(S), w = k = null, t(r, i, o, a), e.$$completeOutstandingRequest(p)
				}
				if (e.$$incOutstandingRequestCount(), s = s || e.url(), "jsonp" == jr(o)) {
					var x = "_" + (i.counter++).toString(36);
					i[x] = function (e) {
						i[x].data = e, i[x].called = !0
					};
					var w = a(s.replace("JSON_CALLBACK", "angular.callbacks." + x), x, function (e, t) {
						b(c, e, i[x].data, "", t), i[x] = p
					})
				} else {
					var k = t(o, s);
					k.open(o, s, !0), r(l, function (e, t) {
						g(e) && k.setRequestHeader(t, e)
					}), k.onload = function () {
						var e = k.statusText || "",
							t = "response" in k ? k.response : k.responseText,
							n = 1223 === k.status ? 204 : k.status;
						0 === n && (n = t ? 200 : "file" == In(s).protocol ? 404 : 0), b(c, n, t, k.getAllResponseHeaders(), e)
					};
					var C = function () {
						b(c, -1, null, null, "")
					};
					if (k.onerror = C, k.onabort = C, r($, function (e, t) {
							k.addEventListener(t, e)
						}), r(v, function (e, t) {
							k.upload.addEventListener(t, e)
						}), h && (k.withCredentials = !0), d) try {
						k.responseType = d
					} catch (e) {
						if ("json" !== d) throw e
					}
					k.send(m(u) ? null : u)
				}
				if (f > 0) var S = n(y, f);
				else j(f) && f.then(y)
			}
		}

		function Dt() {
			var e = "{{",
				t = "}}";
			this.startSymbol = function (t) {
				return t ? (e = t, this) : e
			}, this.endSymbol = function (e) {
				return e ? (t = e, this) : t
			}, this.$get = ["$parse", "$exceptionHandler", "$sce", function (n, r, i) {
				function o(e) {
					return "\\\\\\" + e
				}

				function a(n) {
					return n.replace(p, e).replace(d, t)
				}

				function s(e) {
					if (null == e) return "";
					switch (typeof e) {
						case "string":
							break;
						case "number":
							e = "" + e;
							break;
						default:
							e = W(e)
					}
					return e
				}

				function u(e, t, n, r) {
					var i;
					return i = e.$watch(function (e) {
						return i(), r(e)
					}, t, n)
				}

				function l(o, l, p, d) {
					function v(e) {
						try {
							return e = j(e), d && !g(e) ? e : s(e)
						} catch (e) {
							r(io.interr(o, e))
						}
					}
					if (!o.length || o.indexOf(e) === -1) {
						var y;
						if (!l) {
							var b = a(o);
							y = $(b), y.exp = o, y.expressions = [], y.$$watchDelegate = u
						}
						return y
					}
					d = !!d;
					for (var x, w, k, S = 0, E = [], A = [], T = o.length, O = [], M = []; S < T;) {
						if ((x = o.indexOf(e, S)) == -1 || (w = o.indexOf(t, x + f)) == -1) {
							S !== T && O.push(a(o.substring(S)));
							break
						}
						S !== x && O.push(a(o.substring(S, x))), k = o.substring(x + f, w), E.push(k), A.push(n(k, v)), S = w + h, M.push(O.length), O.push("")
					}
					if (p && O.length > 1 && io.throwNoconcat(o), !l || E.length) {
						var N = function (e) {
								for (var t = 0, n = E.length; t < n; t++) {
									if (d && m(e[t])) return;
									O[M[t]] = e[t]
								}
								return O.join("")
							},
							j = function (e) {
								return p ? i.getTrusted(p, e) : i.valueOf(e)
							};
						return c(function (e) {
							var t = 0,
								n = E.length,
								i = new Array(n);
							try {
								for (; t < n; t++) i[t] = A[t](e);
								return N(i)
							} catch (e) {
								r(io.interr(o, e))
							}
						}, {
							exp: o,
							expressions: E,
							$$watchDelegate: function (e, t) {
								var n;
								return e.$watchGroup(A, function (r, i) {
									var o = N(r);
									C(t) && t.call(this, o, r !== i ? n : o, e), n = o
								})
							}
						})
					}
				}
				var f = e.length,
					h = t.length,
					p = new RegExp(e.replace(/./g, o), "g"),
					d = new RegExp(t.replace(/./g, o), "g");
				return l.startSymbol = function () {
					return e
				}, l.endSymbol = function () {
					return t
				}, l
			}]
		}

		function _t() {
			this.$get = ["$rootScope", "$window", "$q", "$$q", "$browser", function (e, t, n, r, i) {
				function o(o, s, u, c) {
					function l() {
						f ? o.apply(null, h) : o($)
					}
					var f = arguments.length > 4,
						h = f ? F(arguments, 4) : [],
						p = t.setInterval,
						d = t.clearInterval,
						$ = 0,
						v = g(c) && !c,
						m = (v ? r : n).defer(),
						y = m.promise;
					return u = g(u) ? u : 0, y.$$intervalId = p(function () {
						v ? i.defer(l) : e.$evalAsync(l), m.notify($++), u > 0 && $ >= u && (m.resolve($), d(y.$$intervalId), delete a[y.$$intervalId]), v || e.$apply()
					}, s), a[y.$$intervalId] = m, y
				}
				var a = {};
				return o.cancel = function (e) {
					return !!(e && e.$$intervalId in a) && (a[e.$$intervalId].reject("canceled"), t.clearInterval(e.$$intervalId), delete a[e.$$intervalId], !0)
				}, o
			}]
		}

		function Pt(e) {
			for (var t = e.split("/"), n = t.length; n--;) t[n] = te(t[n]);
			return t.join("/")
		}

		function Rt(e, t) {
			var n = In(e);
			t.$$protocol = n.protocol, t.$$host = n.hostname, t.$$port = f(n.port) || ao[n.protocol] || null
		}

		function Lt(e, t) {
			var n = "/" !== e.charAt(0);
			n && (e = "/" + e);
			var r = In(e);
			t.$$path = decodeURIComponent(n && "/" === r.pathname.charAt(0) ? r.pathname.substring(1) : r.pathname), t.$$search = Q(r.search), t.$$hash = decodeURIComponent(r.hash), t.$$path && "/" != t.$$path.charAt(0) && (t.$$path = "/" + t.$$path)
		}

		function Ut(e, t) {
			return 0 === e.lastIndexOf(t, 0)
		}

		function qt(e, t) {
			if (Ut(t, e)) return t.substr(e.length)
		}

		function Ft(e) {
			var t = e.indexOf("#");
			return t == -1 ? e : e.substr(0, t)
		}

		function Bt(e) {
			return e.replace(/(#.+)|#$/, "$1")
		}

		function zt(e) {
			return e.substr(0, Ft(e).lastIndexOf("/") + 1)
		}

		function Wt(e) {
			return e.substring(0, e.indexOf("/", e.indexOf("//") + 2))
		}

		function Gt(e, t, n) {
			this.$$html5 = !0, n = n || "", Rt(e, this), this.$$parse = function (e) {
				var n = qt(t, e);
				if (!x(n)) throw so("ipthprfx", 'Invalid url "{0}", missing path prefix "{1}".', e, t);
				Lt(n, this), this.$$path || (this.$$path = "/"), this.$$compose()
			}, this.$$compose = function () {
				var e = ee(this.$$search),
					n = this.$$hash ? "#" + te(this.$$hash) : "";
				this.$$url = Pt(this.$$path) + (e ? "?" + e : "") + n, this.$$absUrl = t + this.$$url.substr(1)
			}, this.$$parseLinkUrl = function (r, i) {
				if (i && "#" === i[0]) return this.hash(i.slice(1)), !0;
				var o, a, s;
				return g(o = qt(e, r)) ? (a = o, s = g(o = qt(n, o)) ? t + (qt("/", o) || o) : e + a) : g(o = qt(t, r)) ? s = t + o : t == r + "/" && (s = t), s && this.$$parse(s), !!s
			}
		}

		function Yt(e, t, n) {
			Rt(e, this), this.$$parse = function (r) {
				function i(e, t, n) {
					var r, i = /^\/[A-Z]:(\/.*)/;
					return Ut(t, n) && (t = t.replace(n, "")), i.exec(t) ? e : (r = i.exec(e), r ? r[1] : e)
				}
				var o, a = qt(e, r) || qt(t, r);
				m(a) || "#" !== a.charAt(0) ? this.$$html5 ? o = a : (o = "", m(a) && (e = r, this.replace())) : (o = qt(n, a), m(o) && (o = a)), Lt(o, this), this.$$path = i(this.$$path, o, e), this.$$compose()
			}, this.$$compose = function () {
				var t = ee(this.$$search),
					r = this.$$hash ? "#" + te(this.$$hash) : "";
				this.$$url = Pt(this.$$path) + (t ? "?" + t : "") + r, this.$$absUrl = e + (this.$$url ? n + this.$$url : "")
			}, this.$$parseLinkUrl = function (t, n) {
				return Ft(e) == Ft(t) && (this.$$parse(t), !0)
			}
		}

		function Jt(e, t, n) {
			this.$$html5 = !0, Yt.apply(this, arguments), this.$$parseLinkUrl = function (r, i) {
				if (i && "#" === i[0]) return this.hash(i.slice(1)), !0;
				var o, a;
				return e == Ft(r) ? o = r : (a = qt(t, r)) ? o = e + n + a : t === r + "/" && (o = t), o && this.$$parse(o), !!o
			}, this.$$compose = function () {
				var t = ee(this.$$search),
					r = this.$$hash ? "#" + te(this.$$hash) : "";
				this.$$url = Pt(this.$$path) + (t ? "?" + t : "") + r, this.$$absUrl = e + n + this.$$url
			}
		}

		function Zt(e) {
			return function () {
				return this[e]
			}
		}

		function Kt(e, t) {
			return function (n) {
				return m(n) ? this[e] : (this[e] = t(n), this.$$compose(), this)
			}
		}

		function Xt() {
			var e = "",
				t = {
					enabled: !1,
					requireBase: !0,
					rewriteLinks: !0
				};
			this.hashPrefix = function (t) {
				return g(t) ? (e = t, this) : e
			}, this.html5Mode = function (e) {
				return N(e) ? (t.enabled = e, this) : y(e) ? (N(e.enabled) && (t.enabled = e.enabled), N(e.requireBase) && (t.requireBase = e.requireBase), N(e.rewriteLinks) && (t.rewriteLinks = e.rewriteLinks), this) : t
			}, this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function (n, r, i, o, a) {
				function s(e, t, n) {
					var i = c.url(),
						o = c.$$state;
					try {
						r.url(e, t, n), c.$$state = r.state()
					} catch (e) {
						throw c.url(i), c.$$state = o, e
					}
				}

				function u(e, t) {
					n.$broadcast("$locationChangeSuccess", c.absUrl(), e, c.$$state, t)
				}
				var c, l, f, h = r.baseHref(),
					p = r.url();
				if (t.enabled) {
					if (!h && t.requireBase) throw so("nobase", "$location in HTML5 mode requires a <base> tag to be present!");
					f = Wt(p) + (h || "/"), l = i.history ? Gt : Jt
				} else f = Ft(p), l = Yt;
				var d = zt(f);
				c = new l(f, d, "#" + e), c.$$parseLinkUrl(p, p), c.$$state = r.state();
				var $ = /^\s*(javascript|mailto):/i;
				o.on("click", function (e) {
					if (t.rewriteLinks && !e.ctrlKey && !e.metaKey && !e.shiftKey && 2 != e.which && 2 != e.button) {
						for (var i = _r(e.target);
							"a" !== _(i[0]);)
							if (i[0] === o[0] || !(i = i.parent())[0]) return;
						var s = i.prop("href"),
							u = i.attr("href") || i.attr("xlink:href");
						y(s) && "[object SVGAnimatedString]" === s.toString() && (s = In(s.animVal).href), $.test(s) || !s || i.attr("target") || e.isDefaultPrevented() || c.$$parseLinkUrl(s, u) && (e.preventDefault(), c.absUrl() != r.url() && (n.$apply(), a.angular["ff-684208-preventDefault"] = !0))
					}
				}), Bt(c.absUrl()) != Bt(p) && r.url(c.absUrl(), !0);
				var v = !0;
				return r.onUrlChange(function (e, t) {
					return m(qt(d, e)) ? void(a.location.href = e) : (n.$evalAsync(function () {
						var r, i = c.absUrl(),
							o = c.$$state;
						e = Bt(e), c.$$parse(e), c.$$state = t, r = n.$broadcast("$locationChangeStart", e, i, t, o).defaultPrevented, c.absUrl() === e && (r ? (c.$$parse(i), c.$$state = o, s(i, !1, o)) : (v = !1, u(i, o)))
					}), void(n.$$phase || n.$digest()))
				}), n.$watch(function () {
					var e = Bt(r.url()),
						t = Bt(c.absUrl()),
						o = r.state(),
						a = c.$$replace,
						l = e !== t || c.$$html5 && i.history && o !== c.$$state;
					(v || l) && (v = !1, n.$evalAsync(function () {
						var t = c.absUrl(),
							r = n.$broadcast("$locationChangeStart", t, e, c.$$state, o).defaultPrevented;
						c.absUrl() === t && (r ? (c.$$parse(e), c.$$state = o) : (l && s(t, a, o === c.$$state ? null : c.$$state), u(e, o)))
					})), c.$$replace = !1
				}), c
			}]
		}

		function Qt() {
			var e = !0,
				t = this;
			this.debugEnabled = function (t) {
				return g(t) ? (e = t, this) : e
			}, this.$get = ["$window", function (n) {
				function i(e) {
					return e instanceof Error && (e.stack ? e = e.message && e.stack.indexOf(e.message) === -1 ? "Error: " + e.message + "\n" + e.stack : e.stack : e.sourceURL && (e = e.message + "\n" + e.sourceURL + ":" + e.line)), e
				}

				function o(e) {
					var t = n.console || {},
						o = t[e] || t.log || p,
						a = !1;
					try {
						a = !!o.apply
					} catch (e) {}
					return a ? function () {
						var e = [];
						return r(arguments, function (t) {
							e.push(i(t))
						}), o.apply(t, e)
					} : function (e, t) {
						o(e, null == t ? "" : t)
					}
				}
				return {
					log: o("log"),
					info: o("info"),
					warn: o("warn"),
					error: o("error"),
					debug: function () {
						var n = o("debug");
						return function () {
							e && n.apply(t, arguments)
						}
					}()
				}
			}]
		}

		function en(e, t) {
			if ("__defineGetter__" === e || "__defineSetter__" === e || "__lookupGetter__" === e || "__lookupSetter__" === e || "__proto__" === e) throw co("isecfld", "Attempting to access a disallowed field in Angular expressions! Expression: {0}", t);
			return e
		}

		function tn(e) {
			return e + ""
		}

		function nn(e, t) {
			if (e) {
				if (e.constructor === e) throw co("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", t);
				if (e.window === e) throw co("isecwindow", "Referencing the Window in Angular expressions is disallowed! Expression: {0}", t);
				if (e.children && (e.nodeName || e.prop && e.attr && e.find)) throw co("isecdom", "Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}", t);
				if (e === Object) throw co("isecobj", "Referencing Object in Angular expressions is disallowed! Expression: {0}", t)
			}
			return e
		}

		function rn(e, t) {
			if (e) {
				if (e.constructor === e) throw co("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", t);
				if (e === lo || e === fo || e === ho) throw co("isecff", "Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}", t)
			}
		}

		function on(e, t) {
			if (e && (e === (0).constructor || e === (!1).constructor || e === "".constructor || e === {}.constructor || e === [].constructor || e === Function.constructor)) throw co("isecaf", "Assigning to a constructor is disallowed! Expression: {0}", t)
		}

		function an(e, t) {
			return "undefined" != typeof e ? e : t
		}

		function sn(e, t) {
			return "undefined" == typeof e ? t : "undefined" == typeof t ? e : e + t
		}

		function un(e, t) {
			var n = e(t);
			return !n.$stateful
		}

		function cn(e, t) {
			var n, i;
			switch (e.type) {
				case mo.Program:
					n = !0, r(e.body, function (e) {
						cn(e.expression, t), n = n && e.expression.constant
					}), e.constant = n;
					break;
				case mo.Literal:
					e.constant = !0, e.toWatch = [];
					break;
				case mo.UnaryExpression:
					cn(e.argument, t), e.constant = e.argument.constant, e.toWatch = e.argument.toWatch;
					break;
				case mo.BinaryExpression:
					cn(e.left, t), cn(e.right, t), e.constant = e.left.constant && e.right.constant, e.toWatch = e.left.toWatch.concat(e.right.toWatch);
					break;
				case mo.LogicalExpression:
					cn(e.left, t), cn(e.right, t), e.constant = e.left.constant && e.right.constant, e.toWatch = e.constant ? [] : [e];
					break;
				case mo.ConditionalExpression:
					cn(e.test, t), cn(e.alternate, t), cn(e.consequent, t), e.constant = e.test.constant && e.alternate.constant && e.consequent.constant, e.toWatch = e.constant ? [] : [e];
					break;
				case mo.Identifier:
					e.constant = !1, e.toWatch = [e];
					break;
				case mo.MemberExpression:
					cn(e.object, t), e.computed && cn(e.property, t), e.constant = e.object.constant && (!e.computed || e.property.constant), e.toWatch = [e];
					break;
				case mo.CallExpression:
					n = !!e.filter && un(t, e.callee.name), i = [], r(e.arguments, function (e) {
						cn(e, t), n = n && e.constant, e.constant || i.push.apply(i, e.toWatch)
					}), e.constant = n, e.toWatch = e.filter && un(t, e.callee.name) ? i : [e];
					break;
				case mo.AssignmentExpression:
					cn(e.left, t), cn(e.right, t), e.constant = e.left.constant && e.right.constant, e.toWatch = [e];
					break;
				case mo.ArrayExpression:
					n = !0, i = [], r(e.elements, function (e) {
						cn(e, t), n = n && e.constant, e.constant || i.push.apply(i, e.toWatch)
					}), e.constant = n, e.toWatch = i;
					break;
				case mo.ObjectExpression:
					n = !0, i = [], r(e.properties, function (e) {
						cn(e.value, t), n = n && e.value.constant && !e.computed, e.value.constant || i.push.apply(i, e.value.toWatch)
					}), e.constant = n, e.toWatch = i;
					break;
				case mo.ThisExpression:
					e.constant = !1, e.toWatch = [];
					break;
				case mo.LocalsExpression:
					e.constant = !1, e.toWatch = []
			}
		}

		function ln(e) {
			if (1 == e.length) {
				var t = e[0].expression,
					n = t.toWatch;
				return 1 !== n.length ? n : n[0] !== t ? n : void 0
			}
		}

		function fn(e) {
			return e.type === mo.Identifier || e.type === mo.MemberExpression
		}

		function hn(e) {
			if (1 === e.body.length && fn(e.body[0].expression)) return {
				type: mo.AssignmentExpression,
				left: e.body[0].expression,
				right: {
					type: mo.NGValueParameter
				},
				operator: "="
			}
		}

		function pn(e) {
			return 0 === e.body.length || 1 === e.body.length && (e.body[0].expression.type === mo.Literal || e.body[0].expression.type === mo.ArrayExpression || e.body[0].expression.type === mo.ObjectExpression)
		}

		function dn(e) {
			return e.constant
		}

		function $n(e, t) {
			this.astBuilder = e, this.$filter = t
		}

		function vn(e, t) {
			this.astBuilder = e, this.$filter = t
		}

		function mn(e) {
			return "constructor" == e
		}

		function gn(e) {
			return C(e.valueOf) ? e.valueOf() : yo.call(e)
		}

		function yn() {
			var e, t, n = $e(),
				i = $e(),
				o = {
					true: !0,
					false: !1,
					null: null,
					undefined: void 0
				};
			this.addLiteral = function (e, t) {
				o[e] = t
			}, this.setIdentifierFns = function (n, r) {
				return e = n, t = r, this
			}, this.$get = ["$filter", function (a) {
				function s(e, t, r) {
					var o, s, c;
					switch (r = r || b, typeof e) {
						case "string":
							e = e.trim(), c = e;
							var v = r ? i : n;
							if (o = v[c], !o) {
								":" === e.charAt(0) && ":" === e.charAt(1) && (s = !0, e = e.substring(2));
								var g = r ? y : m,
									x = new vo(g),
									w = new go(x, a, g);
								o = w.parse(e), o.constant ? o.$$watchDelegate = d : s ? o.$$watchDelegate = o.literal ? h : f : o.inputs && (o.$$watchDelegate = l), r && (o = u(o)), v[c] = o
							}
							return $(o, t);
						case "function":
							return $(e, t);
						default:
							return $(p, t)
					}
				}

				function u(e) {
					function t(t, n, r, i) {
						var o = b;
						b = !0;
						try {
							return e(t, n, r, i)
						} finally {
							b = o
						}
					}
					if (!e) return e;
					t.$$watchDelegate = e.$$watchDelegate, t.assign = u(e.assign), t.constant = e.constant, t.literal = e.literal;
					for (var n = 0; e.inputs && n < e.inputs.length; ++n) e.inputs[n] = u(e.inputs[n]);
					return t.inputs = e.inputs, t
				}

				function c(e, t) {
					return null == e || null == t ? e === t : ("object" != typeof e || (e = gn(e), "object" != typeof e)) && (e === t || e !== e && t !== t)
				}

				function l(e, t, n, r, i) {
					var o, a = r.inputs;
					if (1 === a.length) {
						var s = c;
						return a = a[0], e.$watch(function (e) {
							var t = a(e);
							return c(t, s) || (o = r(e, void 0, void 0, [t]), s = t && gn(t)), o
						}, t, n, i)
					}
					for (var u = [], l = [], f = 0, h = a.length; f < h; f++) u[f] = c, l[f] = null;
					return e.$watch(function (e) {
						for (var t = !1, n = 0, i = a.length; n < i; n++) {
							var s = a[n](e);
							(t || (t = !c(s, u[n]))) && (l[n] = s, u[n] = s && gn(s))
						}
						return t && (o = r(e, void 0, void 0, l)), o
					}, t, n, i)
				}

				function f(e, t, n, r) {
					var i, o;
					return i = e.$watch(function (e) {
						return r(e)
					}, function (e, n, r) {
						o = e, C(t) && t.apply(this, arguments), g(e) && r.$$postDigest(function () {
							g(o) && i()
						})
					}, n)
				}

				function h(e, t, n, i) {
					function o(e) {
						var t = !0;
						return r(e, function (e) {
							g(e) || (t = !1)
						}), t
					}
					var a, s;
					return a = e.$watch(function (e) {
						return i(e)
					}, function (e, n, r) {
						s = e, C(t) && t.call(this, e, n, r), o(e) && r.$$postDigest(function () {
							o(s) && a()
						})
					}, n)
				}

				function d(e, t, n, r) {
					var i;
					return i = e.$watch(function (e) {
						return i(), r(e)
					}, t, n)
				}

				function $(e, t) {
					if (!t) return e;
					var n = e.$$watchDelegate,
						r = !1,
						i = n !== h && n !== f,
						o = i ? function (n, i, o, a) {
							var s = r && a ? a[0] : e(n, i, o, a);
							return t(s, n, i)
						} : function (n, r, i, o) {
							var a = e(n, r, i, o),
								s = t(a, n, r);
							return g(a) ? s : a
						};
					return e.$$watchDelegate && e.$$watchDelegate !== l ? o.$$watchDelegate = e.$$watchDelegate : t.$stateful || (o.$$watchDelegate = l, r = !e.inputs, o.inputs = e.inputs ? e.inputs : [e]), o
				}
				var v = Xr().noUnsafeEval,
					m = {
						csp: v,
						expensiveChecks: !1,
						literals: R(o),
						isIdentifierStart: C(e) && e,
						isIdentifierContinue: C(t) && t
					},
					y = {
						csp: v,
						expensiveChecks: !0,
						literals: R(o),
						isIdentifierStart: C(e) && e,
						isIdentifierContinue: C(t) && t
					},
					b = !1;
				return s.$$runningExpensiveChecks = function () {
					return b
				}, s
			}]
		}

		function bn() {
			this.$get = ["$rootScope", "$exceptionHandler", function (e, t) {
				return wn(function (t) {
					e.$evalAsync(t)
				}, t)
			}]
		}

		function xn() {
			this.$get = ["$browser", "$exceptionHandler", function (e, t) {
				return wn(function (t) {
					e.defer(t)
				}, t)
			}]
		}

		function wn(e, n) {
			function i() {
				this.$$state = {
					status: 0
				}
			}

			function o(e, t) {
				return function (n) {
					t.call(e, n)
				}
			}

			function a(e) {
				var t, r, i;
				i = e.pending, e.processScheduled = !1, e.pending = void 0;
				for (var o = 0, a = i.length; o < a; ++o) {
					r = i[o][0], t = i[o][e.status];
					try {
						C(t) ? r.resolve(t(e.value)) : 1 === e.status ? r.resolve(e.value) : r.reject(e.value)
					} catch (e) {
						r.reject(e), n(e)
					}
				}
			}

			function s(t) {
				!t.processScheduled && t.pending && (t.processScheduled = !0, e(function () {
					a(t)
				}))
			}

			function u() {
				this.promise = new i
			}

			function l(e) {
				var t = new u,
					n = 0,
					i = Yr(e) ? [] : {};
				return r(e, function (e, r) {
					n++, v(e).then(function (e) {
						i.hasOwnProperty(r) || (i[r] = e, --n || t.resolve(i))
					}, function (e) {
						i.hasOwnProperty(r) || t.reject(e)
					})
				}), 0 === n && t.resolve(i), t.promise
			}
			var f = t("$q", TypeError),
				h = function () {
					var e = new u;
					return e.resolve = o(e, e.resolve), e.reject = o(e, e.reject), e.notify = o(e, e.notify), e
				};
			c(i.prototype, {
				then: function (e, t, n) {
					if (m(e) && m(t) && m(n)) return this;
					var r = new u;
					return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([r, e, t, n]), this.$$state.status > 0 && s(this.$$state), r.promise
				},
				catch: function (e) {
					return this.then(null, e)
				},
				finally: function (e, t) {
					return this.then(function (t) {
						return $(t, !0, e)
					}, function (t) {
						return $(t, !1, e)
					}, t)
				}
			}), c(u.prototype, {
				resolve: function (e) {
					this.promise.$$state.status || (e === this.promise ? this.$$reject(f("qcycle", "Expected promise to be resolved with value other than itself '{0}'", e)) : this.$$resolve(e))
				},
				$$resolve: function (e) {
					function t(e) {
						u || (u = !0, a.$$resolve(e))
					}

					function r(e) {
						u || (u = !0, a.$$reject(e))
					}
					var i, a = this,
						u = !1;
					try {
						(y(e) || C(e)) && (i = e && e.then), C(i) ? (this.promise.$$state.status = -1, i.call(e, t, r, o(this, this.notify))) : (this.promise.$$state.value = e, this.promise.$$state.status = 1, s(this.promise.$$state))
					} catch (e) {
						r(e), n(e)
					}
				},
				reject: function (e) {
					this.promise.$$state.status || this.$$reject(e)
				},
				$$reject: function (e) {
					this.promise.$$state.value = e, this.promise.$$state.status = 2, s(this.promise.$$state)
				},
				notify: function (t) {
					var r = this.promise.$$state.pending;
					this.promise.$$state.status <= 0 && r && r.length && e(function () {
						for (var e, i, o = 0, a = r.length; o < a; o++) {
							i = r[o][0], e = r[o][3];
							try {
								i.notify(C(e) ? e(t) : t)
							} catch (e) {
								n(e)
							}
						}
					})
				}
			});
			var p = function (e) {
					var t = new u;
					return t.reject(e), t.promise
				},
				d = function (e, t) {
					var n = new u;
					return t ? n.resolve(e) : n.reject(e), n.promise
				},
				$ = function (e, t, n) {
					var r = null;
					try {
						C(n) && (r = n())
					} catch (e) {
						return d(e, !1)
					}
					return j(r) ? r.then(function () {
						return d(e, t)
					}, function (e) {
						return d(e, !1)
					}) : d(e, t)
				},
				v = function (e, t, n, r) {
					var i = new u;
					return i.resolve(e), i.promise.then(t, n, r)
				},
				g = v,
				b = function (e) {
					function t(e) {
						r.resolve(e)
					}

					function n(e) {
						r.reject(e)
					}
					if (!C(e)) throw f("norslvr", "Expected resolverFn, got '{0}'", e);
					var r = new u;
					return e(t, n), r.promise
				};
			return b.prototype = i.prototype, b.defer = h, b.reject = p, b.when = v, b.resolve = g, b.all = l, b
		}

		function kn() {
			this.$get = ["$window", "$timeout", function (e, t) {
				var n = e.requestAnimationFrame || e.webkitRequestAnimationFrame,
					r = e.cancelAnimationFrame || e.webkitCancelAnimationFrame || e.webkitCancelRequestAnimationFrame,
					i = !!n,
					o = i ? function (e) {
						var t = n(e);
						return function () {
							r(t)
						}
					} : function (e) {
						var n = t(e, 16.66, !1);
						return function () {
							t.cancel(n)
						}
					};
				return o.supported = i, o
			}]
		}

		function Cn() {
			function e(e) {
				function t() {
					this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = a(), this.$$ChildScope = null
				}
				return t.prototype = e, t
			}
			var i = 10,
				o = t("$rootScope"),
				s = null,
				u = null;
			this.digestTtl = function (e) {
				return arguments.length && (i = e), i
			}, this.$get = ["$exceptionHandler", "$parse", "$browser", function (t, c, l) {
				function f(e) {
					e.currentScope.$$destroyed = !0
				}

				function h(e) {
					9 === Dr && (e.$$childHead && h(e.$$childHead), e.$$nextSibling && h(e.$$nextSibling)), e.$parent = e.$$nextSibling = e.$$prevSibling = e.$$childHead = e.$$childTail = e.$root = e.$$watchers = null
				}

				function d() {
					this.$id = a(), this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null, this.$root = this, this.$$destroyed = !1, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$$isolateBindings = null
				}

				function $(e) {
					if (S.$$phase) throw o("inprog", "{0} already in progress", S.$$phase);
					S.$$phase = e
				}

				function v() {
					S.$$phase = null
				}

				function g(e, t) {
					do e.$$watchersCount += t; while (e = e.$parent)
				}

				function b(e, t, n) {
					do e.$$listenerCount[n] -= t, 0 === e.$$listenerCount[n] && delete e.$$listenerCount[n]; while (e = e.$parent)
				}

				function x() {}

				function w() {
					for (; T.length;) try {
						T.shift()()
					} catch (e) {
						t(e)
					}
					u = null
				}

				function k() {
					null === u && (u = l.defer(function () {
						S.$apply(w)
					}))
				}
				d.prototype = {
					constructor: d,
					$new: function (t, n) {
						var r;
						return n = n || this, t ? (r = new d, r.$root = this.$root) : (this.$$ChildScope || (this.$$ChildScope = e(this)), r = new this.$$ChildScope), r.$parent = n, r.$$prevSibling = n.$$childTail, n.$$childHead ? (n.$$childTail.$$nextSibling = r, n.$$childTail = r) : n.$$childHead = n.$$childTail = r, (t || n != this) && r.$on("$destroy", f), r
					},
					$watch: function (e, t, n, r) {
						var i = c(e);
						if (i.$$watchDelegate) return i.$$watchDelegate(this, t, n, i, e);
						var o = this,
							a = o.$$watchers,
							u = {
								fn: t,
								last: x,
								get: i,
								exp: r || e,
								eq: !!n
							};
						return s = null, C(t) || (u.fn = p), a || (a = o.$$watchers = []), a.unshift(u), g(this, 1),
							function () {
								P(a, u) >= 0 && g(o, -1), s = null
							}
					},
					$watchGroup: function (e, t) {
						function n() {
							u = !1, c ? (c = !1, t(o, o, s)) : t(o, i, s)
						}
						var i = new Array(e.length),
							o = new Array(e.length),
							a = [],
							s = this,
							u = !1,
							c = !0;
						if (!e.length) {
							var l = !0;
							return s.$evalAsync(function () {
									l && t(o, o, s)
								}),
								function () {
									l = !1
								}
						}
						return 1 === e.length ? this.$watch(e[0], function (e, n, r) {
							o[0] = e, i[0] = n, t(o, e === n ? o : i, r)
						}) : (r(e, function (e, t) {
							var r = s.$watch(e, function (e, r) {
								o[t] = e, i[t] = r, u || (u = !0, s.$evalAsync(n))
							});
							a.push(r)
						}), function () {
							for (; a.length;) a.shift()()
						})
					},
					$watchCollection: function (e, t) {
						function r(e) {
							o = e;
							var t, r, i, s, u;
							if (!m(o)) {
								if (y(o))
									if (n(o)) {
										a !== p && (a = p, v = a.length = 0, f++), t = o.length, v !== t && (f++, a.length = v = t);
										for (var c = 0; c < t; c++) u = a[c], s = o[c], i = u !== u && s !== s, i || u === s || (f++, a[c] = s)
									} else {
										a !== d && (a = d = {}, v = 0, f++), t = 0;
										for (r in o) Nr.call(o, r) && (t++, s = o[r], u = a[r], r in a ? (i = u !== u && s !== s, i || u === s || (f++, a[r] = s)) : (v++, a[r] = s, f++));
										if (v > t) {
											f++;
											for (r in a) Nr.call(o, r) || (v--, delete a[r])
										}
									}
								else a !== o && (a = o, f++);
								return f
							}
						}

						function i() {
							if ($ ? ($ = !1, t(o, o, u)) : t(o, s, u), l)
								if (y(o))
									if (n(o)) {
										s = new Array(o.length);
										for (var e = 0; e < o.length; e++) s[e] = o[e]
									} else {
										s = {};
										for (var r in o) Nr.call(o, r) && (s[r] = o[r])
									}
							else s = o
						}
						r.$stateful = !0;
						var o, a, s, u = this,
							l = t.length > 1,
							f = 0,
							h = c(e, r),
							p = [],
							d = {},
							$ = !0,
							v = 0;
						return this.$watch(h, i)
					},
					$digest: function () {
						var e, n, r, a, c, f, h, p, d, m, g, y, b = i,
							k = this,
							T = [];
						$("$digest"), l.$$checkUrlChange(), this === S && null !== u && (l.defer.cancel(u), w()), s = null;
						do {
							p = !1, m = k;
							for (var M = 0; M < E.length; M++) {
								try {
									y = E[M], y.scope.$eval(y.expression, y.locals)
								} catch (e) {
									t(e)
								}
								s = null
							}
							E.length = 0;
							e: do {
								if (f = m.$$watchers)
									for (h = f.length; h--;) try {
										if (e = f[h])
											if (c = e.get, (n = c(m)) === (r = e.last) || (e.eq ? U(n, r) : "number" == typeof n && "number" == typeof r && isNaN(n) && isNaN(r))) {
												if (e === s) {
													p = !1;
													break e
												}
											} else p = !0, s = e, e.last = e.eq ? R(n, null) : n, a = e.fn, a(n, r === x ? n : r, m), b < 5 && (g = 4 - b, T[g] || (T[g] = []), T[g].push({
												msg: C(e.exp) ? "fn: " + (e.exp.name || e.exp.toString()) : e.exp,
												newVal: n,
												oldVal: r
											}))
									} catch (e) {
										t(e)
									}
								if (!(d = m.$$watchersCount && m.$$childHead || m !== k && m.$$nextSibling))
									for (; m !== k && !(d = m.$$nextSibling);) m = m.$parent
							} while (m = d);
							if ((p || E.length) && !b--) throw v(), o("infdig", "{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}", i, T)
						} while (p || E.length);
						for (v(); O < A.length;) try {
							A[O++]()
						} catch (e) {
							t(e)
						}
						A.length = O = 0
					},
					$destroy: function () {
						if (!this.$$destroyed) {
							var e = this.$parent;
							this.$broadcast("$destroy"), this.$$destroyed = !0, this === S && l.$$applicationDestroyed(), g(this, -this.$$watchersCount);
							for (var t in this.$$listenerCount) b(this, this.$$listenerCount[t], t);
							e && e.$$childHead == this && (e.$$childHead = this.$$nextSibling), e && e.$$childTail == this && (e.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = p, this.$on = this.$watch = this.$watchGroup = function () {
								return p
							}, this.$$listeners = {}, this.$$nextSibling = null, h(this)
						}
					},
					$eval: function (e, t) {
						return c(e)(this, t)
					},
					$evalAsync: function (e, t) {
						S.$$phase || E.length || l.defer(function () {
							E.length && S.$digest()
						}), E.push({
							scope: this,
							expression: c(e),
							locals: t
						})
					},
					$$postDigest: function (e) {
						A.push(e)
					},
					$apply: function (e) {
						try {
							$("$apply");
							try {
								return this.$eval(e)
							} finally {
								v()
							}
						} catch (e) {
							t(e)
						} finally {
							try {
								S.$digest()
							} catch (e) {
								throw t(e), e
							}
						}
					},
					$applyAsync: function (e) {
						function t() {
							n.$eval(e)
						}
						var n = this;
						e && T.push(t), e = c(e), k()
					},
					$on: function (e, t) {
						var n = this.$$listeners[e];
						n || (this.$$listeners[e] = n = []), n.push(t);
						var r = this;
						do r.$$listenerCount[e] || (r.$$listenerCount[e] = 0), r.$$listenerCount[e]++; while (r = r.$parent);
						var i = this;
						return function () {
							var r = n.indexOf(t);
							r !== -1 && (n[r] = null, b(i, 1, e))
						}
					},
					$emit: function (e, n) {
						var r, i, o, a = [],
							s = this,
							u = !1,
							c = {
								name: e,
								targetScope: s,
								stopPropagation: function () {
									u = !0
								},
								preventDefault: function () {
									c.defaultPrevented = !0
								},
								defaultPrevented: !1
							},
							l = q([c], arguments, 1);
						do {
							for (r = s.$$listeners[e] || a, c.currentScope = s, i = 0, o = r.length; i < o; i++)
								if (r[i]) try {
									r[i].apply(null, l)
								} catch (e) {
									t(e)
								} else r.splice(i, 1), i--, o--;
							if (u) return c.currentScope = null, c;
							s = s.$parent
						} while (s);
						return c.currentScope = null, c
					},
					$broadcast: function (e, n) {
						var r = this,
							i = r,
							o = r,
							a = {
								name: e,
								targetScope: r,
								preventDefault: function () {
									a.defaultPrevented = !0
								},
								defaultPrevented: !1
							};
						if (!r.$$listenerCount[e]) return a;
						for (var s, u, c, l = q([a], arguments, 1); i = o;) {
							for (a.currentScope = i, s = i.$$listeners[e] || [], u = 0, c = s.length; u < c; u++)
								if (s[u]) try {
									s[u].apply(null, l)
								} catch (e) {
									t(e)
								} else s.splice(u, 1), u--, c--;
							if (!(o = i.$$listenerCount[e] && i.$$childHead || i !== r && i.$$nextSibling))
								for (; i !== r && !(o = i.$$nextSibling);) i = i.$parent
						}
						return a.currentScope = null, a
					}
				};
				var S = new d,
					E = S.$$asyncQueue = [],
					A = S.$$postDigestQueue = [],
					T = S.$$applyAsyncQueue = [],
					O = 0;
				return S
			}]
		}

		function Sn() {
			var e = /^\s*(https?|ftp|mailto|tel|file):/,
				t = /^\s*((https?|ftp|file|blob):|data:image\/)/;
			this.aHrefSanitizationWhitelist = function (t) {
				return g(t) ? (e = t, this) : e
			}, this.imgSrcSanitizationWhitelist = function (e) {
				return g(e) ? (t = e, this) : t
			}, this.$get = function () {
				return function (n, r) {
					var i, o = r ? t : e;
					return i = In(n).href, "" === i || i.match(o) ? n : "unsafe:" + i
				}
			}
		}

		function En(e) {
			if ("self" === e) return e;
			if (x(e)) {
				if (e.indexOf("***") > -1) throw bo("iwcard", "Illegal sequence *** in string matcher.  String: {0}", e);
				return e = Kr(e).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + e + "$")
			}
			if (S(e)) return new RegExp("^" + e.source + "$");
			throw bo("imatcher", 'Matchers may only be "self", string patterns or RegExp objects')
		}

		function An(e) {
			var t = [];
			return g(e) && r(e, function (e) {
				t.push(En(e))
			}), t
		}

		function Tn() {
			this.SCE_CONTEXTS = xo;
			var e = ["self"],
				t = [];
			this.resourceUrlWhitelist = function (t) {
				return arguments.length && (e = An(t)), e
			}, this.resourceUrlBlacklist = function (e) {
				return arguments.length && (t = An(e)), t
			}, this.$get = ["$injector", function (n) {
				function r(e, t) {
					return "self" === e ? Hn(t) : !!e.exec(t.href)
				}

				function i(n) {
					var i, o, a = In(n.toString()),
						s = !1;
					for (i = 0, o = e.length; i < o; i++)
						if (r(e[i], a)) {
							s = !0;
							break
						}
					if (s)
						for (i = 0, o = t.length; i < o; i++)
							if (r(t[i], a)) {
								s = !1;
								break
							}
					return s
				}

				function o(e) {
					var t = function (e) {
						this.$$unwrapTrustedValue = function () {
							return e
						}
					};
					return e && (t.prototype = new e), t.prototype.valueOf = function () {
						return this.$$unwrapTrustedValue()
					}, t.prototype.toString = function () {
						return this.$$unwrapTrustedValue().toString()
					}, t
				}

				function a(e, t) {
					var n = f.hasOwnProperty(e) ? f[e] : null;
					if (!n) throw bo("icontext", "Attempted to trust a value in invalid context. Context: {0}; Value: {1}", e, t);
					if (null === t || m(t) || "" === t) return t;
					if ("string" != typeof t) throw bo("itype", "Attempted to trust a non-string value in a content requiring a string: Context: {0}", e);
					return new n(t)
				}

				function s(e) {
					return e instanceof l ? e.$$unwrapTrustedValue() : e
				}

				function u(e, t) {
					if (null === t || m(t) || "" === t) return t;
					var n = f.hasOwnProperty(e) ? f[e] : null;
					if (n && t instanceof n) return t.$$unwrapTrustedValue();
					if (e === xo.RESOURCE_URL) {
						if (i(t)) return t;
						throw bo("insecurl", "Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}", t.toString())
					}
					if (e === xo.HTML) return c(t);
					throw bo("unsafe", "Attempting to use an unsafe value in a safe context.")
				}
				var c = function (e) {
					throw bo("unsafe", "Attempting to use an unsafe value in a safe context.")
				};
				n.has("$sanitize") && (c = n.get("$sanitize"));
				var l = o(),
					f = {};
				return f[xo.HTML] = o(l), f[xo.CSS] = o(l), f[xo.URL] = o(l), f[xo.JS] = o(l), f[xo.RESOURCE_URL] = o(f[xo.URL]), {
					trustAs: a,
					getTrusted: u,
					valueOf: s
				}
			}]
		}

		function On() {
			var e = !0;
			this.enabled = function (t) {
				return arguments.length && (e = !!t), e
			}, this.$get = ["$parse", "$sceDelegate", function (t, n) {
				if (e && Dr < 8) throw bo("iequirks", "Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");
				var i = L(xo);
				i.isEnabled = function () {
					return e
				}, i.trustAs = n.trustAs, i.getTrusted = n.getTrusted, i.valueOf = n.valueOf, e || (i.trustAs = i.getTrusted = function (e, t) {
					return t
				}, i.valueOf = d), i.parseAs = function (e, n) {
					var r = t(n);
					return r.literal && r.constant ? r : t(n, function (t) {
						return i.getTrusted(e, t)
					})
				};
				var o = i.parseAs,
					a = i.getTrusted,
					s = i.trustAs;
				return r(xo, function (e, t) {
					var n = jr(t);
					i[xe("parse_as_" + n)] = function (t) {
						return o(e, t)
					}, i[xe("get_trusted_" + n)] = function (t) {
						return a(e, t)
					}, i[xe("trust_as_" + n)] = function (t) {
						return s(e, t)
					}
				}), i
			}]
		}

		function Mn() {
			this.$get = ["$window", "$document", function (e, t) {
				var n, r, i = {},
					o = e.chrome && e.chrome.app && e.chrome.app.runtime,
					a = !o && e.history && e.history.pushState,
					s = f((/android (\d+)/.exec(jr((e.navigator || {}).userAgent)) || [])[1]),
					u = /Boxee/i.test((e.navigator || {}).userAgent),
					c = t[0] || {},
					l = /^(Moz|webkit|ms)(?=[A-Z])/,
					h = c.body && c.body.style,
					p = !1,
					d = !1;
				if (h) {
					for (var $ in h)
						if (r = l.exec($)) {
							n = r[0], n = n[0].toUpperCase() + n.substr(1);
							break
						}
					n || (n = "WebkitOpacity" in h && "webkit"), p = !!("transition" in h || n + "Transition" in h), d = !!("animation" in h || n + "Animation" in h), !s || p && d || (p = x(h.webkitTransition), d = x(h.webkitAnimation))
				}
				return {
					history: !(!a || s < 4 || u),
					hasEvent: function (e) {
						if ("input" === e && Dr <= 11) return !1;
						if (m(i[e])) {
							var t = c.createElement("div");
							i[e] = "on" + e in t
						}
						return i[e]
					},
					csp: Xr(),
					vendorPrefix: n,
					transitions: p,
					animations: d,
					android: s
				}
			}]
		}

		function Nn() {
			var e;
			this.httpOptions = function (t) {
				return t ? (e = t, this) : e
			}, this.$get = ["$templateCache", "$http", "$q", "$sce", function (t, n, r, i) {
				function o(a, s) {
					function u(e) {
						if (!s) throw wo("tpload", "Failed to load template: {0} (HTTP status: {1} {2})", a, e.status, e.statusText);
						return r.reject(e)
					}
					o.totalPendingRequests++, x(a) && !m(t.get(a)) || (a = i.getTrustedResourceUrl(a));
					var l = n.defaults && n.defaults.transformResponse;
					return Yr(l) ? l = l.filter(function (e) {
						return e !== Et
					}) : l === Et && (l = null), n.get(a, c({
						cache: t,
						transformResponse: l
					}, e)).finally(function () {
						o.totalPendingRequests--
					}).then(function (e) {
						return t.put(a, e.data), e.data
					}, u)
				}
				return o.totalPendingRequests = 0, o
			}]
		}

		function jn() {
			this.$get = ["$rootScope", "$browser", "$location", function (e, t, n) {
				var i = {};
				return i.findBindings = function (e, t, n) {
					var i = e.getElementsByClassName("ng-binding"),
						o = [];
					return r(i, function (e) {
						var i = Wr.element(e).data("$binding");
						i && r(i, function (r) {
							if (n) {
								var i = new RegExp("(^|\\s)" + Kr(t) + "(\\s|\\||$)");
								i.test(r) && o.push(e)
							} else r.indexOf(t) != -1 && o.push(e)
						})
					}), o
				}, i.findModels = function (e, t, n) {
					for (var r = ["ng-", "data-ng-", "ng\\:"], i = 0; i < r.length; ++i) {
						var o = n ? "=" : "*=",
							a = "[" + r[i] + "model" + o + '"' + t + '"]',
							s = e.querySelectorAll(a);
						if (s.length) return s
					}
				}, i.getLocation = function () {
					return n.url()
				}, i.setLocation = function (t) {
					t !== n.url() && (n.url(t), e.$digest())
				}, i.whenStable = function (e) {
					t.notifyWhenNoOutstandingRequests(e)
				}, i
			}]
		}

		function Vn() {
			this.$get = ["$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function (e, t, n, r, i) {
				function o(o, s, u) {
					C(o) || (u = s, s = o, o = p);
					var c, l = F(arguments, 3),
						f = g(u) && !u,
						h = (f ? r : n).defer(),
						d = h.promise;
					return c = t.defer(function () {
						try {
							h.resolve(o.apply(null, l))
						} catch (e) {
							h.reject(e), i(e)
						} finally {
							delete a[d.$$timeoutId]
						}
						f || e.$apply()
					}, s), d.$$timeoutId = c, a[c] = h, d
				}
				var a = {};
				return o.cancel = function (e) {
					return !!(e && e.$$timeoutId in a) && (a[e.$$timeoutId].reject("canceled"), delete a[e.$$timeoutId], t.defer.cancel(e.$$timeoutId))
				}, o
			}]
		}

		function In(e) {
			var t = e;
			return Dr && (ko.setAttribute("href", t), t = ko.href), ko.setAttribute("href", t), {
				href: ko.href,
				protocol: ko.protocol ? ko.protocol.replace(/:$/, "") : "",
				host: ko.host,
				search: ko.search ? ko.search.replace(/^\?/, "") : "",
				hash: ko.hash ? ko.hash.replace(/^#/, "") : "",
				hostname: ko.hostname,
				port: ko.port,
				pathname: "/" === ko.pathname.charAt(0) ? ko.pathname : "/" + ko.pathname
			}
		}

		function Hn(e) {
			var t = x(e) ? In(e) : e;
			return t.protocol === Co.protocol && t.host === Co.host
		}

		function Dn() {
			this.$get = $(e)
		}

		function _n(e) {
			function t(e) {
				try {
					return decodeURIComponent(e)
				} catch (t) {
					return e
				}
			}
			var n = e[0] || {},
				r = {},
				i = "";
			return function () {
				var e, o, a, s, u, c = n.cookie || "";
				if (c !== i)
					for (i = c, e = i.split("; "), r = {}, a = 0; a < e.length; a++) o = e[a], s = o.indexOf("="), s > 0 && (u = t(o.substring(0, s)), m(r[u]) && (r[u] = t(o.substring(s + 1))));
				return r
			}
		}

		function Pn() {
			this.$get = _n
		}

		function Rn(e) {
			function t(i, o) {
				if (y(i)) {
					var a = {};
					return r(i, function (e, n) {
						a[n] = t(n, e)
					}), a
				}
				return e.factory(i + n, o)
			}
			var n = "Filter";
			this.register = t, this.$get = ["$injector", function (e) {
				return function (t) {
					return e.get(t + n)
				}
			}], t("currency", Bn), t("date", or), t("filter", Ln), t("json", ar), t("limitTo", sr), t("lowercase", No), t("number", zn), t("orderBy", ur), t("uppercase", jo)
		}

		function Ln() {
			return function (e, r, i) {
				if (!n(e)) {
					if (null == e) return e;
					throw t("filter")("notarray", "Expected array but received: {0}", e)
				}
				var o, a, s = Fn(r);
				switch (s) {
					case "function":
						o = r;
						break;
					case "boolean":
					case "null":
					case "number":
					case "string":
						a = !0;
					case "object":
						o = Un(r, i, a);
						break;
					default:
						return e
				}
				return Array.prototype.filter.call(e, o)
			}
		}

		function Un(e, t, n) {
			var r, i = y(e) && "$" in e;
			return t === !0 ? t = U : C(t) || (t = function (e, t) {
				return !m(e) && (null === e || null === t ? e === t : !(y(t) || y(e) && !v(e)) && (e = jr("" + e), t = jr("" + t), e.indexOf(t) !== -1))
			}), r = function (r) {
				return i && !y(r) ? qn(r, e.$, t, !1) : qn(r, e, t, n)
			}
		}

		function qn(e, t, n, r, i) {
			var o = Fn(e),
				a = Fn(t);
			if ("string" === a && "!" === t.charAt(0)) return !qn(e, t.substring(1), n, r);
			if (Yr(e)) return e.some(function (e) {
				return qn(e, t, n, r)
			});
			switch (o) {
				case "object":
					var s;
					if (r) {
						for (s in e)
							if ("$" !== s.charAt(0) && qn(e[s], t, n, !0)) return !0;
						return !i && qn(e, t, n, !1)
					}
					if ("object" === a) {
						for (s in t) {
							var u = t[s];
							if (!C(u) && !m(u)) {
								var c = "$" === s,
									l = c ? e : e[s];
								if (!qn(l, u, n, c, c)) return !1
							}
						}
						return !0
					}
					return n(e, t);
				case "function":
					return !1;
				default:
					return n(e, t)
			}
		}

		function Fn(e) {
			return null === e ? "null" : typeof e
		}

		function Bn(e) {
			var t = e.NUMBER_FORMATS;
			return function (e, n, r) {
				return m(n) && (n = t.CURRENCY_SYM), m(r) && (r = t.PATTERNS[1].maxFrac), null == e ? e : Yn(e, t.PATTERNS[1], t.GROUP_SEP, t.DECIMAL_SEP, r).replace(/\u00A4/g, n)
			}
		}

		function zn(e) {
			var t = e.NUMBER_FORMATS;
			return function (e, n) {
				return null == e ? e : Yn(e, t.PATTERNS[0], t.GROUP_SEP, t.DECIMAL_SEP, n)
			}
		}

		function Wn(e) {
			var t, n, r, i, o, a = 0;
			for ((n = e.indexOf(Eo)) > -1 && (e = e.replace(Eo, "")), (r = e.search(/e/i)) > 0 ? (n < 0 && (n = r), n += +e.slice(r + 1), e = e.substring(0, r)) : n < 0 && (n = e.length), r = 0; e.charAt(r) == Ao; r++);
			if (r == (o = e.length)) t = [0], n = 1;
			else {
				for (o--; e.charAt(o) == Ao;) o--;
				for (n -= r, t = [], i = 0; r <= o; r++, i++) t[i] = +e.charAt(r)
			}
			return n > So && (t = t.splice(0, So - 1), a = n - 1, n = 1), {
				d: t,
				e: a,
				i: n
			}
		}

		function Gn(e, t, n, r) {
			var i = e.d,
				o = i.length - e.i;
			t = m(t) ? Math.min(Math.max(n, o), r) : +t;
			var a = t + e.i,
				s = i[a];
			if (a > 0) {
				i.splice(Math.max(e.i, a));
				for (var u = a; u < i.length; u++) i[u] = 0
			} else {
				o = Math.max(0, o), e.i = 1, i.length = Math.max(1, a = t + 1), i[0] = 0;
				for (var c = 1; c < a; c++) i[c] = 0
			}
			if (s >= 5)
				if (a - 1 < 0) {
					for (var l = 0; l > a; l--) i.unshift(0), e.i++;
					i.unshift(1), e.i++
				} else i[a - 1]++;
			for (; o < Math.max(0, t); o++) i.push(0);
			var f = i.reduceRight(function (e, t, n, r) {
				return t += e, r[n] = t % 10, Math.floor(t / 10)
			}, 0);
			f && (i.unshift(f), e.i++)
		}

		function Yn(e, t, n, r, i) {
			if (!x(e) && !w(e) || isNaN(e)) return "";
			var o, a = !isFinite(e),
				s = !1,
				u = Math.abs(e) + "",
				c = "";
			if (a) c = "∞";
			else {
				o = Wn(u), Gn(o, i, t.minFrac, t.maxFrac);
				var l = o.d,
					f = o.i,
					h = o.e,
					p = [];
				for (s = l.reduce(function (e, t) {
						return e && !t
					}, !0); f < 0;) l.unshift(0), f++;
				f > 0 ? p = l.splice(f, l.length) : (p = l, l = [0]);
				var d = [];
				for (l.length >= t.lgSize && d.unshift(l.splice(-t.lgSize, l.length).join("")); l.length > t.gSize;) d.unshift(l.splice(-t.gSize, l.length).join(""));
				l.length && d.unshift(l.join("")), c = d.join(n), p.length && (c += r + p.join("")), h && (c += "e+" + h)
			}
			return e < 0 && !s ? t.negPre + c + t.negSuf : t.posPre + c + t.posSuf
		}

		function Jn(e, t, n, r) {
			var i = "";
			for ((e < 0 || r && e <= 0) && (r ? e = -e + 1 : (e = -e, i = "-")), e = "" + e; e.length < t;) e = Ao + e;
			return n && (e = e.substr(e.length - t)), i + e
		}

		function Zn(e, t, n, r, i) {
			return n = n || 0,
				function (o) {
					var a = o["get" + e]();
					return (n > 0 || a > -n) && (a += n), 0 === a && n == -12 && (a = 12), Jn(a, t, r, i)
				}
		}

		function Kn(e, t, n) {
			return function (r, i) {
				var o = r["get" + e](),
					a = (n ? "STANDALONE" : "") + (t ? "SHORT" : ""),
					s = Vr(a + e);
				return i[s][o]
			}
		}

		function Xn(e, t, n) {
			var r = -1 * n,
				i = r >= 0 ? "+" : "";
			return i += Jn(Math[r > 0 ? "floor" : "ceil"](r / 60), 2) + Jn(Math.abs(r % 60), 2)
		}

		function Qn(e) {
			var t = new Date(e, 0, 1).getDay();
			return new Date(e, 0, (t <= 4 ? 5 : 12) - t)
		}

		function er(e) {
			return new Date(e.getFullYear(), e.getMonth(), e.getDate() + (4 - e.getDay()))
		}

		function tr(e) {
			return function (t) {
				var n = Qn(t.getFullYear()),
					r = er(t),
					i = +r - +n,
					o = 1 + Math.round(i / 6048e5);
				return Jn(o, e)
			}
		}

		function nr(e, t) {
			return e.getHours() < 12 ? t.AMPMS[0] : t.AMPMS[1]
		}

		function rr(e, t) {
			return e.getFullYear() <= 0 ? t.ERAS[0] : t.ERAS[1]
		}

		function ir(e, t) {
			return e.getFullYear() <= 0 ? t.ERANAMES[0] : t.ERANAMES[1]
		}

		function or(e) {
			function t(e) {
				var t;
				if (t = e.match(n)) {
					var r = new Date(0),
						i = 0,
						o = 0,
						a = t[8] ? r.setUTCFullYear : r.setFullYear,
						s = t[8] ? r.setUTCHours : r.setHours;
					t[9] && (i = f(t[9] + t[10]), o = f(t[9] + t[11])), a.call(r, f(t[1]), f(t[2]) - 1, f(t[3]));
					var u = f(t[4] || 0) - i,
						c = f(t[5] || 0) - o,
						l = f(t[6] || 0),
						h = Math.round(1e3 * parseFloat("0." + (t[7] || 0)));
					return s.call(r, u, c, l, h), r
				}
				return e
			}
			var n = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
			return function (n, i, o) {
				var a, s, u = "",
					c = [];
				if (i = i || "mediumDate", i = e.DATETIME_FORMATS[i] || i, x(n) && (n = Mo.test(n) ? f(n) : t(n)), w(n) && (n = new Date(n)), !k(n) || !isFinite(n.getTime())) return n;
				for (; i;) s = Oo.exec(i), s ? (c = q(c, s, 1), i = c.pop()) : (c.push(i), i = null);
				var l = n.getTimezoneOffset();
				return o && (l = Y(o, l), n = Z(n, o, !0)), r(c, function (t) {
					a = To[t], u += a ? a(n, e.DATETIME_FORMATS, l) : "''" === t ? "'" : t.replace(/(^'|'$)/g, "").replace(/''/g, "'")
				}), u
			}
		}

		function ar() {
			return function (e, t) {
				return m(t) && (t = 2), W(e, t)
			}
		}

		function sr() {
			return function (e, t, n) {
				return t = Math.abs(Number(t)) === 1 / 0 ? Number(t) : f(t), isNaN(t) ? e : (w(e) && (e = e.toString()), Yr(e) || x(e) ? (n = !n || isNaN(n) ? 0 : f(n), n = n < 0 ? Math.max(0, e.length + n) : n, t >= 0 ? e.slice(n, n + t) : 0 === n ? e.slice(t, e.length) : e.slice(Math.max(0, n + t), n)) : e)
			}
		}

		function ur(e) {
			function r(t, n) {
				return n = n ? -1 : 1, t.map(function (t) {
					var r = 1,
						i = d;
					if (C(t)) i = t;
					else if (x(t) && ("+" != t.charAt(0) && "-" != t.charAt(0) || (r = "-" == t.charAt(0) ? -1 : 1, t = t.substring(1)), "" !== t && (i = e(t), i.constant))) {
						var o = i();
						i = function (e) {
							return e[o]
						}
					}
					return {
						get: i,
						descending: r * n
					}
				})
			}

			function i(e) {
				switch (typeof e) {
					case "number":
					case "boolean":
					case "string":
						return !0;
					default:
						return !1
				}
			}

			function o(e, t) {
				return "function" == typeof e.valueOf && (e = e.valueOf(), i(e)) ? e : v(e) && (e = e.toString(), i(e)) ? e : t
			}

			function a(e, t) {
				var n = typeof e;
				return null === e ? (n = "string", e = "null") : "string" === n ? e = e.toLowerCase() : "object" === n && (e = o(e, t)), {
					value: e,
					type: n
				}
			}

			function s(e, t) {
				var n = 0;
				return e.type === t.type ? e.value !== t.value && (n = e.value < t.value ? -1 : 1) : n = e.type < t.type ? -1 : 1, n
			}
			return function (e, i, o) {
				function u(e, t) {
					return {
						value: e,
						predicateValues: l.map(function (n) {
							return a(n.get(e), t)
						})
					}
				}

				function c(e, t) {
					for (var n = 0, r = 0, i = l.length; r < i && !(n = s(e.predicateValues[r], t.predicateValues[r]) * l[r].descending); ++r);
					return n
				}
				if (null == e) return e;
				if (!n(e)) throw t("orderBy")("notarray", "Expected array but received: {0}", e);
				Yr(i) || (i = [i]), 0 === i.length && (i = ["+"]);
				var l = r(i, o);
				l.push({
					get: function () {
						return {}
					},
					descending: o ? -1 : 1
				});
				var f = Array.prototype.map.call(e, u);
				return f.sort(c), e = f.map(function (e) {
					return e.value
				})
			}
		}

		function cr(e) {
			return C(e) && (e = {
				link: e
			}), e.restrict = e.restrict || "AC", $(e)
		}

		function lr(e, t) {
			e.$name = t
		}

		function fr(e, t, n, i, o) {
			var a = this,
				s = [];
			a.$error = {}, a.$$success = {}, a.$pending = void 0, a.$name = o(t.name || t.ngForm || "")(n), a.$dirty = !1, a.$pristine = !0, a.$valid = !0, a.$invalid = !1, a.$submitted = !1, a.$$parentForm = Ho, a.$rollbackViewValue = function () {
				r(s, function (e) {
					e.$rollbackViewValue()
				})
			}, a.$commitViewValue = function () {
				r(s, function (e) {
					e.$commitViewValue()
				})
			}, a.$addControl = function (e) {
				he(e.$name, "input"), s.push(e), e.$name && (a[e.$name] = e), e.$$parentForm = a
			}, a.$$renameControl = function (e, t) {
				var n = e.$name;
				a[n] === e && delete a[n], a[t] = e, e.$name = t
			}, a.$removeControl = function (e) {
				e.$name && a[e.$name] === e && delete a[e.$name], r(a.$pending, function (t, n) {
					a.$setValidity(n, null, e)
				}), r(a.$error, function (t, n) {
					a.$setValidity(n, null, e)
				}), r(a.$$success, function (t, n) {
					a.$setValidity(n, null, e)
				}), P(s, e), e.$$parentForm = Ho
			}, Er({
				ctrl: this,
				$element: e,
				set: function (e, t, n) {
					var r = e[t];
					if (r) {
						var i = r.indexOf(n);
						i === -1 && r.push(n)
					} else e[t] = [n]
				},
				unset: function (e, t, n) {
					var r = e[t];
					r && (P(r, n), 0 === r.length && delete e[t])
				},
				$animate: i
			}), a.$setDirty = function () {
				i.removeClass(e, ya), i.addClass(e, ba), a.$dirty = !0, a.$pristine = !1, a.$$parentForm.$setDirty()
			}, a.$setPristine = function () {
				i.setClass(e, ya, ba + " " + Do), a.$dirty = !1, a.$pristine = !0, a.$submitted = !1, r(s, function (e) {
					e.$setPristine()
				})
			}, a.$setUntouched = function () {
				r(s, function (e) {
					e.$setUntouched()
				})
			}, a.$setSubmitted = function () {
				i.addClass(e, Do), a.$submitted = !0, a.$$parentForm.$setSubmitted()
			}
		}

		function hr(e) {
			e.$formatters.push(function (t) {
				return e.$isEmpty(t) ? t : t.toString()
			})
		}

		function pr(e, t, n, r, i, o) {
			dr(e, t, n, r, i, o), hr(r)
		}

		function dr(e, t, n, r, i, o) {
			var a = jr(t[0].type);
			if (!i.android) {
				var s = !1;
				t.on("compositionstart", function () {
					s = !0
				}), t.on("compositionend", function () {
					s = !1, c()
				})
			}
			var u, c = function (e) {
				if (u && (o.defer.cancel(u), u = null), !s) {
					var i = t.val(),
						c = e && e.type;
					"password" === a || n.ngTrim && "false" === n.ngTrim || (i = Zr(i)), (r.$viewValue !== i || "" === i && r.$$hasNativeValidators) && r.$setViewValue(i, c)
				}
			};
			if (i.hasEvent("input")) t.on("input", c);
			else {
				var l = function (e, t, n) {
					u || (u = o.defer(function () {
						u = null, t && t.value === n || c(e)
					}))
				};
				t.on("keydown", function (e) {
					var t = e.keyCode;
					91 === t || 15 < t && t < 19 || 37 <= t && t <= 40 || l(e, this, this.value)
				}), i.hasEvent("paste") && t.on("paste cut", l)
			}
			t.on("change", c), Zo[a] && r.$$hasNativeValidators && a === n.type && t.on(Jo, function (e) {
				if (!u) {
					var t = this[Mr],
						n = t.badInput,
						r = t.typeMismatch;
					u = o.defer(function () {
						u = null, t.badInput === n && t.typeMismatch === r || c(e)
					})
				}
			}), r.$render = function () {
				var e = r.$isEmpty(r.$viewValue) ? "" : r.$viewValue;
				t.val() !== e && t.val(e)
			}
		}

		function $r(e, t) {
			if (k(e)) return e;
			if (x(e)) {
				Wo.lastIndex = 0;
				var n = Wo.exec(e);
				if (n) {
					var r = +n[1],
						i = +n[2],
						o = 0,
						a = 0,
						s = 0,
						u = 0,
						c = Qn(r),
						l = 7 * (i - 1);
					return t && (o = t.getHours(), a = t.getMinutes(), s = t.getSeconds(), u = t.getMilliseconds()), new Date(r, 0, c.getDate() + l, o, a, s, u)
				}
			}
			return NaN
		}

		function vr(e, t) {
			return function (n, i) {
				var o, a;
				if (k(n)) return n;
				if (x(n)) {
					if ('"' == n.charAt(0) && '"' == n.charAt(n.length - 1) && (n = n.substring(1, n.length - 1)), Lo.test(n)) return new Date(n);
					if (e.lastIndex = 0, o = e.exec(n)) return o.shift(), a = i ? {
						yyyy: i.getFullYear(),
						MM: i.getMonth() + 1,
						dd: i.getDate(),
						HH: i.getHours(),
						mm: i.getMinutes(),
						ss: i.getSeconds(),
						sss: i.getMilliseconds() / 1e3
					} : {
						yyyy: 1970,
						MM: 1,
						dd: 1,
						HH: 0,
						mm: 0,
						ss: 0,
						sss: 0
					}, r(o, function (e, n) {
						n < t.length && (a[t[n]] = +e)
					}), new Date(a.yyyy, a.MM - 1, a.dd, a.HH, a.mm, a.ss || 0, 1e3 * a.sss || 0)
				}
				return NaN
			}
		}

		function mr(e, t, n, r) {
			return function (i, o, a, s, u, c, l) {
				function f(e) {
					return e && !(e.getTime && e.getTime() !== e.getTime())
				}

				function h(e) {
					return g(e) && !k(e) ? n(e) || void 0 : e
				}
				gr(i, o, a, s), dr(i, o, a, s, u, c);
				var p, d = s && s.$options && s.$options.timezone;
				if (s.$$parserName = e, s.$parsers.push(function (e) {
						if (s.$isEmpty(e)) return null;
						if (t.test(e)) {
							var r = n(e, p);
							return d && (r = Z(r, d)), r
						}
					}), s.$formatters.push(function (e) {
						if (e && !k(e)) throw Ea("datefmt", "Expected `{0}` to be a date", e);
						return f(e) ? (p = e, p && d && (p = Z(p, d, !0)), l("date")(e, r, d)) : (p = null, "")
					}), g(a.min) || a.ngMin) {
					var $;
					s.$validators.min = function (e) {
						return !f(e) || m($) || n(e) >= $
					}, a.$observe("min", function (e) {
						$ = h(e), s.$validate()
					})
				}
				if (g(a.max) || a.ngMax) {
					var v;
					s.$validators.max = function (e) {
						return !f(e) || m(v) || n(e) <= v
					}, a.$observe("max", function (e) {
						v = h(e), s.$validate()
					})
				}
			}
		}

		function gr(e, t, n, r) {
			var i = t[0],
				o = r.$$hasNativeValidators = y(i.validity);
			o && r.$parsers.push(function (e) {
				var n = t.prop(Mr) || {};
				return n.badInput || n.typeMismatch ? void 0 : e
			})
		}

		function yr(e, t, n, r, i, o) {
			if (gr(e, t, n, r), dr(e, t, n, r, i, o), r.$$parserName = "number", r.$parsers.push(function (e) {
					return r.$isEmpty(e) ? null : Fo.test(e) ? parseFloat(e) : void 0;
				}), r.$formatters.push(function (e) {
					if (!r.$isEmpty(e)) {
						if (!w(e)) throw Ea("numfmt", "Expected `{0}` to be a number", e);
						e = e.toString()
					}
					return e
				}), g(n.min) || n.ngMin) {
				var a;
				r.$validators.min = function (e) {
					return r.$isEmpty(e) || m(a) || e >= a
				}, n.$observe("min", function (e) {
					g(e) && !w(e) && (e = parseFloat(e, 10)), a = w(e) && !isNaN(e) ? e : void 0, r.$validate()
				})
			}
			if (g(n.max) || n.ngMax) {
				var s;
				r.$validators.max = function (e) {
					return r.$isEmpty(e) || m(s) || e <= s
				}, n.$observe("max", function (e) {
					g(e) && !w(e) && (e = parseFloat(e, 10)), s = w(e) && !isNaN(e) ? e : void 0, r.$validate()
				})
			}
		}

		function br(e, t, n, r, i, o) {
			dr(e, t, n, r, i, o), hr(r), r.$$parserName = "url", r.$validators.url = function (e, t) {
				var n = e || t;
				return r.$isEmpty(n) || Uo.test(n)
			}
		}

		function xr(e, t, n, r, i, o) {
			dr(e, t, n, r, i, o), hr(r), r.$$parserName = "email", r.$validators.email = function (e, t) {
				var n = e || t;
				return r.$isEmpty(n) || qo.test(n)
			}
		}

		function wr(e, t, n, r) {
			m(n.name) && t.attr("name", a());
			var i = function (e) {
				t[0].checked && r.$setViewValue(n.value, e && e.type)
			};
			t.on("click", i), r.$render = function () {
				var e = n.value;
				t[0].checked = e == r.$viewValue
			}, n.$observe("value", r.$render)
		}

		function kr(e, t, n, r, i) {
			var o;
			if (g(r)) {
				if (o = e(r), !o.constant) throw Ea("constexpr", "Expected constant expression for `{0}`, but saw `{1}`.", n, r);
				return o(t)
			}
			return i
		}

		function Cr(e, t, n, r, i, o, a, s) {
			var u = kr(s, e, "ngTrueValue", n.ngTrueValue, !0),
				c = kr(s, e, "ngFalseValue", n.ngFalseValue, !1),
				l = function (e) {
					r.$setViewValue(t[0].checked, e && e.type)
				};
			t.on("click", l), r.$render = function () {
				t[0].checked = r.$viewValue
			}, r.$isEmpty = function (e) {
				return e === !1
			}, r.$formatters.push(function (e) {
				return U(e, u)
			}), r.$parsers.push(function (e) {
				return e ? u : c
			})
		}

		function Sr(e, t) {
			return e = "ngClass" + e, ["$animate", function (n) {
				function i(e, t) {
					var n = [];
					e: for (var r = 0; r < e.length; r++) {
						for (var i = e[r], o = 0; o < t.length; o++)
							if (i == t[o]) continue e;
						n.push(i)
					}
					return n
				}

				function o(e) {
					var t = [];
					return Yr(e) ? (r(e, function (e) {
						t = t.concat(o(e))
					}), t) : x(e) ? e.split(" ") : y(e) ? (r(e, function (e, n) {
						e && (t = t.concat(n.split(" ")))
					}), t) : e
				}
				return {
					restrict: "AC",
					link: function (a, s, u) {
						function c(e) {
							var t = f(e, 1);
							u.$addClass(t)
						}

						function l(e) {
							var t = f(e, -1);
							u.$removeClass(t)
						}

						function f(e, t) {
							var n = s.data("$classCounts") || $e(),
								i = [];
							return r(e, function (e) {
								(t > 0 || n[e]) && (n[e] = (n[e] || 0) + t, n[e] === +(t > 0) && i.push(e))
							}), s.data("$classCounts", n), i.join(" ")
						}

						function h(e, t) {
							var r = i(t, e),
								o = i(e, t);
							r = f(r, 1), o = f(o, -1), r && r.length && n.addClass(s, r), o && o.length && n.removeClass(s, o)
						}

						function p(e) {
							if (t === !0 || (1 & a.$index) === t) {
								var n = o(e || []);
								if (d) {
									if (!U(e, d)) {
										var r = o(d);
										h(r, n)
									}
								} else c(n)
							}
							d = Yr(e) ? e.map(function (e) {
								return L(e)
							}) : L(e)
						}
						var d;
						a.$watch(u[e], p, !0), u.$observe("class", function (t) {
							p(a.$eval(u[e]))
						}), "ngClass" !== e && a.$watch("$index", function (n, r) {
							var i = 1 & n;
							if (i !== (1 & r)) {
								var s = o(a.$eval(u[e]));
								i === t ? c(s) : l(s)
							}
						})
					}
				}
			}]
		}

		function Er(e) {
			function t(e, t, s) {
				m(t) ? n("$pending", e, s) : r("$pending", e, s), N(t) ? t ? (l(a.$error, e, s), c(a.$$success, e, s)) : (c(a.$error, e, s), l(a.$$success, e, s)) : (l(a.$error, e, s), l(a.$$success, e, s)), a.$pending ? (i(ka, !0), a.$valid = a.$invalid = void 0, o("", null)) : (i(ka, !1), a.$valid = Ar(a.$error), a.$invalid = !a.$valid, o("", a.$valid));
				var u;
				u = a.$pending && a.$pending[e] ? void 0 : !a.$error[e] && (!!a.$$success[e] || null), o(e, u), a.$$parentForm.$setValidity(e, u, a)
			}

			function n(e, t, n) {
				a[e] || (a[e] = {}), c(a[e], t, n)
			}

			function r(e, t, n) {
				a[e] && l(a[e], t, n), Ar(a[e]) && (a[e] = void 0)
			}

			function i(e, t) {
				t && !u[e] ? (f.addClass(s, e), u[e] = !0) : !t && u[e] && (f.removeClass(s, e), u[e] = !1)
			}

			function o(e, t) {
				e = e ? "-" + ue(e, "-") : "", i(ma + e, t === !0), i(ga + e, t === !1)
			}
			var a = e.ctrl,
				s = e.$element,
				u = {},
				c = e.set,
				l = e.unset,
				f = e.$animate;
			u[ga] = !(u[ma] = s.hasClass(ma)), a.$setValidity = t
		}

		function Ar(e) {
			if (e)
				for (var t in e)
					if (e.hasOwnProperty(t)) return !1;
			return !0
		}

		function Tr(e) {
			e[0].hasAttribute("selected") && (e[0].selected = !0)
		}
		var Or = /^\/(.+)\/([a-z]*)$/,
			Mr = "validity",
			Nr = Object.prototype.hasOwnProperty,
			jr = function (e) {
				return x(e) ? e.toLowerCase() : e
			},
			Vr = function (e) {
				return x(e) ? e.toUpperCase() : e
			},
			Ir = function (e) {
				return x(e) ? e.replace(/[A-Z]/g, function (e) {
					return String.fromCharCode(32 | e.charCodeAt(0))
				}) : e
			},
			Hr = function (e) {
				return x(e) ? e.replace(/[a-z]/g, function (e) {
					return String.fromCharCode(e.charCodeAt(0) & -33)
				}) : e
			};
		"i" !== "I".toLowerCase() && (jr = Ir, Vr = Hr);
		var Dr, _r, Pr, Rr, Lr = [].slice,
			Ur = [].splice,
			qr = [].push,
			Fr = Object.prototype.toString,
			Br = Object.getPrototypeOf,
			zr = t("ng"),
			Wr = e.angular || (e.angular = {}),
			Gr = 0;
		Dr = e.document.documentMode, p.$inject = [], d.$inject = [];
		var Yr = Array.isArray,
			Jr = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,
			Zr = function (e) {
				return x(e) ? e.trim() : e
			},
			Kr = function (e) {
				return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08")
			},
			Xr = function () {
				function t() {
					try {
						return new Function(""), !1
					} catch (e) {
						return !0
					}
				}
				if (!g(Xr.rules)) {
					var n = e.document.querySelector("[ng-csp]") || e.document.querySelector("[data-ng-csp]");
					if (n) {
						var r = n.getAttribute("ng-csp") || n.getAttribute("data-ng-csp");
						Xr.rules = {
							noUnsafeEval: !r || r.indexOf("no-unsafe-eval") !== -1,
							noInlineStyle: !r || r.indexOf("no-inline-style") !== -1
						}
					} else Xr.rules = {
						noUnsafeEval: t(),
						noInlineStyle: !1
					}
				}
				return Xr.rules
			},
			Qr = function () {
				if (g(Qr.name_)) return Qr.name_;
				var t, n, r, i, o = ti.length;
				for (n = 0; n < o; ++n)
					if (r = ti[n], t = e.document.querySelector("[" + r.replace(":", "\\:") + "jq]")) {
						i = t.getAttribute(r + "jq");
						break
					}
				return Qr.name_ = i
			},
			ei = /:/g,
			ti = ["ng-", "data-ng-", "ng:", "x-ng-"],
			ni = /[A-Z]/g,
			ri = !1,
			ii = 1,
			oi = 2,
			ai = 3,
			si = 8,
			ui = 9,
			ci = 11,
			li = {
				full: "1.5.6",
				major: 1,
				minor: 5,
				dot: 6,
				codeName: "arrow-stringification"
			};
		Oe.expando = "ng339";
		var fi = Oe.cache = {},
			hi = 1,
			pi = function (e, t, n) {
				e.addEventListener(t, n, !1)
			},
			di = function (e, t, n) {
				e.removeEventListener(t, n, !1)
			};
		Oe._data = function (e) {
			return this.cache[e[this.expando]] || {}
		};
		var $i = /([\:\-\_]+(.))/g,
			vi = /^moz([A-Z])/,
			mi = {
				mouseleave: "mouseout",
				mouseenter: "mouseover"
			},
			gi = t("jqLite"),
			yi = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
			bi = /<|&#?\w+;/,
			xi = /<([\w:-]+)/,
			wi = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
			ki = {
				option: [1, '<select multiple="multiple">', "</select>"],
				thead: [1, "<table>", "</table>"],
				col: [2, "<table><colgroup>", "</colgroup></table>"],
				tr: [2, "<table><tbody>", "</tbody></table>"],
				td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
				_default: [0, "", ""]
			};
		ki.optgroup = ki.option, ki.tbody = ki.tfoot = ki.colgroup = ki.caption = ki.thead, ki.th = ki.td;
		var Ci = e.Node.prototype.contains || function (e) {
				return !!(16 & this.compareDocumentPosition(e))
			},
			Si = Oe.prototype = {
				ready: function (t) {
					function n() {
						r || (r = !0, t())
					}
					var r = !1;
					"complete" === e.document.readyState ? e.setTimeout(n) : (this.on("DOMContentLoaded", n), Oe(e).on("load", n))
				},
				toString: function () {
					var e = [];
					return r(this, function (t) {
						e.push("" + t)
					}), "[" + e.join(", ") + "]"
				},
				eq: function (e) {
					return _r(e >= 0 ? this[e] : this[this.length + e])
				},
				length: 0,
				push: qr,
				sort: [].sort,
				splice: [].splice
			},
			Ei = {};
		r("multiple,selected,checked,disabled,readOnly,required,open".split(","), function (e) {
			Ei[jr(e)] = e
		});
		var Ai = {};
		r("input,select,option,textarea,button,form,details".split(","), function (e) {
			Ai[e] = !0
		});
		var Ti = {
			ngMinlength: "minlength",
			ngMaxlength: "maxlength",
			ngMin: "min",
			ngMax: "max",
			ngPattern: "pattern"
		};
		r({
			data: He,
			removeData: Ve,
			hasData: Ce,
			cleanData: Se
		}, function (e, t) {
			Oe[t] = e
		}), r({
			data: He,
			inheritedData: Ue,
			scope: function (e) {
				return _r.data(e, "$scope") || Ue(e.parentNode || e, ["$isolateScope", "$scope"])
			},
			isolateScope: function (e) {
				return _r.data(e, "$isolateScope") || _r.data(e, "$isolateScopeNoTemplate")
			},
			controller: Le,
			injector: function (e) {
				return Ue(e, "$injector")
			},
			removeAttr: function (e, t) {
				e.removeAttribute(t)
			},
			hasClass: De,
			css: function (e, t, n) {
				return t = xe(t), g(n) ? void(e.style[t] = n) : e.style[t]
			},
			attr: function (e, t, n) {
				var r = e.nodeType;
				if (r !== ai && r !== oi && r !== si) {
					var i = jr(t);
					if (Ei[i]) {
						if (!g(n)) return e[t] || (e.attributes.getNamedItem(t) || p).specified ? i : void 0;
						n ? (e[t] = !0, e.setAttribute(t, i)) : (e[t] = !1, e.removeAttribute(i))
					} else if (g(n)) e.setAttribute(t, n);
					else if (e.getAttribute) {
						var o = e.getAttribute(t, 2);
						return null === o ? void 0 : o
					}
				}
			},
			prop: function (e, t, n) {
				return g(n) ? void(e[t] = n) : e[t]
			},
			text: function () {
				function e(e, t) {
					if (m(t)) {
						var n = e.nodeType;
						return n === ii || n === ai ? e.textContent : ""
					}
					e.textContent = t
				}
				return e.$dv = "", e
			}(),
			val: function (e, t) {
				if (m(t)) {
					if (e.multiple && "select" === _(e)) {
						var n = [];
						return r(e.options, function (e) {
							e.selected && n.push(e.value || e.text)
						}), 0 === n.length ? null : n
					}
					return e.value
				}
				e.value = t
			},
			html: function (e, t) {
				return m(t) ? e.innerHTML : (Ne(e, !0), void(e.innerHTML = t))
			},
			empty: qe
		}, function (e, t) {
			Oe.prototype[t] = function (t, n) {
				var r, i, o = this.length;
				if (e !== qe && m(2 == e.length && e !== De && e !== Le ? t : n)) {
					if (y(t)) {
						for (r = 0; r < o; r++)
							if (e === He) e(this[r], t);
							else
								for (i in t) e(this[r], i, t[i]);
						return this
					}
					for (var a = e.$dv, s = m(a) ? Math.min(o, 1) : o, u = 0; u < s; u++) {
						var c = e(this[u], t, n);
						a = a ? a + c : c
					}
					return a
				}
				for (r = 0; r < o; r++) e(this[r], t, n);
				return this
			}
		}), r({
			removeData: Ve,
			on: function (e, t, n, r) {
				if (g(r)) throw gi("onargs", "jqLite#on() does not support the `selector` or `eventData` parameters");
				if (ke(e)) {
					var i = Ie(e, !0),
						o = i.events,
						a = i.handle;
					a || (a = i.handle = Ge(e, o));
					for (var s = t.indexOf(" ") >= 0 ? t.split(" ") : [t], u = s.length, c = function (t, r, i) {
							var s = o[t];
							s || (s = o[t] = [], s.specialHandlerWrapper = r, "$destroy" === t || i || pi(e, t, a)), s.push(n)
						}; u--;) t = s[u], mi[t] ? (c(mi[t], Je), c(t, void 0, !0)) : c(t)
				}
			},
			off: je,
			one: function (e, t, n) {
				e = _r(e), e.on(t, function r() {
					e.off(t, n), e.off(t, r)
				}), e.on(t, n)
			},
			replaceWith: function (e, t) {
				var n, i = e.parentNode;
				Ne(e), r(new Oe(t), function (t) {
					n ? i.insertBefore(t, n.nextSibling) : i.replaceChild(t, e), n = t
				})
			},
			children: function (e) {
				var t = [];
				return r(e.childNodes, function (e) {
					e.nodeType === ii && t.push(e)
				}), t
			},
			contents: function (e) {
				return e.contentDocument || e.childNodes || []
			},
			append: function (e, t) {
				var n = e.nodeType;
				if (n === ii || n === ci) {
					t = new Oe(t);
					for (var r = 0, i = t.length; r < i; r++) {
						var o = t[r];
						e.appendChild(o)
					}
				}
			},
			prepend: function (e, t) {
				if (e.nodeType === ii) {
					var n = e.firstChild;
					r(new Oe(t), function (t) {
						e.insertBefore(t, n)
					})
				}
			},
			wrap: function (e, t) {
				Te(e, _r(t).eq(0).clone()[0])
			},
			remove: Fe,
			detach: function (e) {
				Fe(e, !0)
			},
			after: function (e, t) {
				var n = e,
					r = e.parentNode;
				t = new Oe(t);
				for (var i = 0, o = t.length; i < o; i++) {
					var a = t[i];
					r.insertBefore(a, n.nextSibling), n = a
				}
			},
			addClass: Pe,
			removeClass: _e,
			toggleClass: function (e, t, n) {
				t && r(t.split(" "), function (t) {
					var r = n;
					m(r) && (r = !De(e, t)), (r ? Pe : _e)(e, t)
				})
			},
			parent: function (e) {
				var t = e.parentNode;
				return t && t.nodeType !== ci ? t : null
			},
			next: function (e) {
				return e.nextElementSibling
			},
			find: function (e, t) {
				return e.getElementsByTagName ? e.getElementsByTagName(t) : []
			},
			clone: Me,
			triggerHandler: function (e, t, n) {
				var i, o, a, s = t.type || t,
					u = Ie(e),
					l = u && u.events,
					f = l && l[s];
				f && (i = {
					preventDefault: function () {
						this.defaultPrevented = !0
					},
					isDefaultPrevented: function () {
						return this.defaultPrevented === !0
					},
					stopImmediatePropagation: function () {
						this.immediatePropagationStopped = !0
					},
					isImmediatePropagationStopped: function () {
						return this.immediatePropagationStopped === !0
					},
					stopPropagation: p,
					type: s,
					target: e
				}, t.type && (i = c(i, t)), o = L(f), a = n ? [i].concat(n) : [i], r(o, function (t) {
					i.isImmediatePropagationStopped() || t.apply(e, a)
				}))
			}
		}, function (e, t) {
			Oe.prototype[t] = function (t, n, r) {
				for (var i, o = 0, a = this.length; o < a; o++) m(i) ? (i = e(this[o], t, n, r), g(i) && (i = _r(i))) : Re(i, e(this[o], t, n, r));
				return g(i) ? i : this
			}, Oe.prototype.bind = Oe.prototype.on, Oe.prototype.unbind = Oe.prototype.off
		}), Xe.prototype = {
			put: function (e, t) {
				this[Ke(e, this.nextUid)] = t
			},
			get: function (e) {
				return this[Ke(e, this.nextUid)]
			},
			remove: function (e) {
				var t = this[e = Ke(e, this.nextUid)];
				return delete this[e], t
			}
		};
		var Oi = [function () {
				this.$get = [function () {
					return Xe
				}]
			}],
			Mi = /^([^\(]+?)=>/,
			Ni = /^[^\(]*\(\s*([^\)]*)\)/m,
			ji = /,/,
			Vi = /^\s*(_?)(\S+?)\1\s*$/,
			Ii = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,
			Hi = t("$injector");
		rt.$$annotate = nt;
		var Di = t("$animate"),
			_i = 1,
			Pi = "ng-animate",
			Ri = function () {
				this.$get = p
			},
			Li = function () {
				var e = new Xe,
					t = [];
				this.$get = ["$$AnimateRunner", "$rootScope", function (n, i) {
					function o(e, t, n) {
						var i = !1;
						return t && (t = x(t) ? t.split(" ") : Yr(t) ? t : [], r(t, function (t) {
							t && (i = !0, e[t] = n)
						})), i
					}

					function a() {
						r(t, function (t) {
							var n = e.get(t);
							if (n) {
								var i = st(t.attr("class")),
									o = "",
									a = "";
								r(n, function (e, t) {
									var n = !!i[t];
									e !== n && (e ? o += (o.length ? " " : "") + t : a += (a.length ? " " : "") + t)
								}), r(t, function (e) {
									o && Pe(e, o), a && _e(e, a)
								}), e.remove(t)
							}
						}), t.length = 0
					}

					function s(n, r, s) {
						var u = e.get(n) || {},
							c = o(u, r, !0),
							l = o(u, s, !1);
						(c || l) && (e.put(n, u), t.push(n), 1 === t.length && i.$$postDigest(a))
					}
					return {
						enabled: p,
						on: p,
						off: p,
						pin: p,
						push: function (e, t, r, i) {
							i && i(), r = r || {}, r.from && e.css(r.from), r.to && e.css(r.to), (r.addClass || r.removeClass) && s(e, r.addClass, r.removeClass);
							var o = new n;
							return o.complete(), o
						}
					}
				}]
			},
			Ui = ["$provide", function (e) {
				var t = this;
				this.$$registeredAnimations = Object.create(null), this.register = function (n, r) {
					if (n && "." !== n.charAt(0)) throw Di("notcsel", "Expecting class selector starting with '.' got '{0}'.", n);
					var i = n + "-animation";
					t.$$registeredAnimations[n.substr(1)] = i, e.factory(i, r)
				}, this.classNameFilter = function (e) {
					if (1 === arguments.length && (this.$$classNameFilter = e instanceof RegExp ? e : null, this.$$classNameFilter)) {
						var t = new RegExp("(\\s+|\\/)" + Pi + "(\\s+|\\/)");
						if (t.test(this.$$classNameFilter.toString())) throw Di("nongcls", '$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', Pi)
					}
					return this.$$classNameFilter
				}, this.$get = ["$$animateQueue", function (e) {
					function t(e, t, n) {
						if (n) {
							var r = at(n);
							!r || r.parentNode || r.previousElementSibling || (n = null)
						}
						n ? n.after(e) : t.prepend(e)
					}
					return {
						on: e.on,
						off: e.off,
						pin: e.pin,
						enabled: e.enabled,
						cancel: function (e) {
							e.end && e.end()
						},
						enter: function (n, r, i, o) {
							return r = r && _r(r), i = i && _r(i), r = r || i.parent(), t(n, r, i), e.push(n, "enter", ut(o))
						},
						move: function (n, r, i, o) {
							return r = r && _r(r), i = i && _r(i), r = r || i.parent(), t(n, r, i), e.push(n, "move", ut(o))
						},
						leave: function (t, n) {
							return e.push(t, "leave", ut(n), function () {
								t.remove()
							})
						},
						addClass: function (t, n, r) {
							return r = ut(r), r.addClass = ot(r.addclass, n), e.push(t, "addClass", r)
						},
						removeClass: function (t, n, r) {
							return r = ut(r), r.removeClass = ot(r.removeClass, n), e.push(t, "removeClass", r)
						},
						setClass: function (t, n, r, i) {
							return i = ut(i), i.addClass = ot(i.addClass, n), i.removeClass = ot(i.removeClass, r), e.push(t, "setClass", i)
						},
						animate: function (t, n, r, i, o) {
							return o = ut(o), o.from = o.from ? c(o.from, n) : n, o.to = o.to ? c(o.to, r) : r, i = i || "ng-inline-animate", o.tempClasses = ot(o.tempClasses, i), e.push(t, "animate", o)
						}
					}
				}]
			}],
			qi = function () {
				this.$get = ["$$rAF", function (e) {
					function t(t) {
						n.push(t), n.length > 1 || e(function () {
							for (var e = 0; e < n.length; e++) n[e]();
							n = []
						})
					}
					var n = [];
					return function () {
						var e = !1;
						return t(function () {
								e = !0
							}),
							function (n) {
								e ? n() : t(n)
							}
					}
				}]
			},
			Fi = function () {
				this.$get = ["$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function (e, t, n, i, o) {
					function a(e) {
						this.setHost(e);
						var t = n(),
							r = function (e) {
								o(e, 0, !1)
							};
						this._doneCallbacks = [], this._tick = function (e) {
							var n = i[0];
							n && n.hidden ? r(e) : t(e)
						}, this._state = 0
					}
					var s = 0,
						u = 1,
						c = 2;
					return a.chain = function (e, t) {
						function n() {
							return r === e.length ? void t(!0) : void e[r](function (e) {
								return e === !1 ? void t(!1) : (r++, void n())
							})
						}
						var r = 0;
						n()
					}, a.all = function (e, t) {
						function n(n) {
							o = o && n, ++i === e.length && t(o)
						}
						var i = 0,
							o = !0;
						r(e, function (e) {
							e.done(n)
						})
					}, a.prototype = {
						setHost: function (e) {
							this.host = e || {}
						},
						done: function (e) {
							this._state === c ? e() : this._doneCallbacks.push(e)
						},
						progress: p,
						getPromise: function () {
							if (!this.promise) {
								var t = this;
								this.promise = e(function (e, n) {
									t.done(function (t) {
										t === !1 ? n() : e()
									})
								})
							}
							return this.promise
						},
						then: function (e, t) {
							return this.getPromise().then(e, t)
						},
						catch: function (e) {
							return this.getPromise().catch(e)
						},
						finally: function (e) {
							return this.getPromise().finally(e)
						},
						pause: function () {
							this.host.pause && this.host.pause()
						},
						resume: function () {
							this.host.resume && this.host.resume()
						},
						end: function () {
							this.host.end && this.host.end(), this._resolve(!0)
						},
						cancel: function () {
							this.host.cancel && this.host.cancel(), this._resolve(!1)
						},
						complete: function (e) {
							var t = this;
							t._state === s && (t._state = u, t._tick(function () {
								t._resolve(e)
							}))
						},
						_resolve: function (e) {
							this._state !== c && (r(this._doneCallbacks, function (t) {
								t(e)
							}), this._doneCallbacks.length = 0, this._state = c)
						}
					}, a
				}]
			},
			Bi = function () {
				this.$get = ["$$rAF", "$q", "$$AnimateRunner", function (e, t, n) {
					return function (t, r) {
						function i() {
							return e(function () {
								o(), s || u.complete(), s = !0
							}), u
						}

						function o() {
							a.addClass && (t.addClass(a.addClass), a.addClass = null), a.removeClass && (t.removeClass(a.removeClass), a.removeClass = null), a.to && (t.css(a.to), a.to = null)
						}
						var a = r || {};
						a.$$prepared || (a = R(a)), a.cleanupStyles && (a.from = a.to = null), a.from && (t.css(a.from), a.from = null);
						var s, u = new n;
						return {
							start: i,
							end: i
						}
					}
				}]
			},
			zi = t("$compile"),
			Wi = new pt;
		dt.$inject = ["$provide", "$$sanitizeUriProvider"], $t.prototype.isFirstChange = function () {
			return this.previousValue === Wi
		};
		var Gi = /^((?:x|data)[\:\-_])/i,
			Yi = t("$controller"),
			Ji = /^(\S+)(\s+as\s+([\w$]+))?$/,
			Zi = function () {
				this.$get = ["$document", function (e) {
					return function (t) {
						return t ? !t.nodeType && t instanceof _r && (t = t[0]) : t = e[0].body, t.offsetWidth + 1
					}
				}]
			},
			Ki = "application/json",
			Xi = {
				"Content-Type": Ki + ";charset=utf-8"
			},
			Qi = /^\[|^\{(?!\{)/,
			eo = {
				"[": /]$/,
				"{": /}$/
			},
			to = /^\)\]\}',?\n/,
			no = t("$http"),
			ro = function (e) {
				return function () {
					throw no("legacy", "The method `{0}` on the promise returned from `$http` has been disabled.", e)
				}
			},
			io = Wr.$interpolateMinErr = t("$interpolate");
		io.throwNoconcat = function (e) {
			throw io("noconcat", "Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce", e)
		}, io.interr = function (e, t) {
			return io("interr", "Can't interpolate: {0}\n{1}", e, t.toString())
		};
		var oo = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
			ao = {
				http: 80,
				https: 443,
				ftp: 21
			},
			so = t("$location"),
			uo = {
				$$html5: !1,
				$$replace: !1,
				absUrl: Zt("$$absUrl"),
				url: function (e) {
					if (m(e)) return this.$$url;
					var t = oo.exec(e);
					return (t[1] || "" === e) && this.path(decodeURIComponent(t[1])), (t[2] || t[1] || "" === e) && this.search(t[3] || ""), this.hash(t[5] || ""), this
				},
				protocol: Zt("$$protocol"),
				host: Zt("$$host"),
				port: Zt("$$port"),
				path: Kt("$$path", function (e) {
					return e = null !== e ? e.toString() : "", "/" == e.charAt(0) ? e : "/" + e
				}),
				search: function (e, t) {
					switch (arguments.length) {
						case 0:
							return this.$$search;
						case 1:
							if (x(e) || w(e)) e = e.toString(), this.$$search = Q(e);
							else {
								if (!y(e)) throw so("isrcharg", "The first argument of the `$location#search()` call must be a string or an object.");
								e = R(e, {}), r(e, function (t, n) {
									null == t && delete e[n]
								}), this.$$search = e
							}
							break;
						default:
							m(t) || null === t ? delete this.$$search[e] : this.$$search[e] = t
					}
					return this.$$compose(), this
				},
				hash: Kt("$$hash", function (e) {
					return null !== e ? e.toString() : ""
				}),
				replace: function () {
					return this.$$replace = !0, this
				}
			};
		r([Jt, Yt, Gt], function (e) {
			e.prototype = Object.create(uo), e.prototype.state = function (t) {
				if (!arguments.length) return this.$$state;
				if (e !== Gt || !this.$$html5) throw so("nostate", "History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");
				return this.$$state = m(t) ? null : t, this
			}
		});
		var co = t("$parse"),
			lo = Function.prototype.call,
			fo = Function.prototype.apply,
			ho = Function.prototype.bind,
			po = $e();
		r("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function (e) {
			po[e] = !0
		});
		var $o = {
				n: "\n",
				f: "\f",
				r: "\r",
				t: "\t",
				v: "\v",
				"'": "'",
				'"': '"'
			},
			vo = function (e) {
				this.options = e
			};
		vo.prototype = {
			constructor: vo,
			lex: function (e) {
				for (this.text = e, this.index = 0, this.tokens = []; this.index < this.text.length;) {
					var t = this.text.charAt(this.index);
					if ('"' === t || "'" === t) this.readString(t);
					else if (this.isNumber(t) || "." === t && this.isNumber(this.peek())) this.readNumber();
					else if (this.isIdentifierStart(this.peekMultichar())) this.readIdent();
					else if (this.is(t, "(){}[].,;:?")) this.tokens.push({
						index: this.index,
						text: t
					}), this.index++;
					else if (this.isWhitespace(t)) this.index++;
					else {
						var n = t + this.peek(),
							r = n + this.peek(2),
							i = po[t],
							o = po[n],
							a = po[r];
						if (i || o || a) {
							var s = a ? r : o ? n : t;
							this.tokens.push({
								index: this.index,
								text: s,
								operator: !0
							}), this.index += s.length
						} else this.throwError("Unexpected next character ", this.index, this.index + 1)
					}
				}
				return this.tokens
			},
			is: function (e, t) {
				return t.indexOf(e) !== -1
			},
			peek: function (e) {
				var t = e || 1;
				return this.index + t < this.text.length && this.text.charAt(this.index + t)
			},
			isNumber: function (e) {
				return "0" <= e && e <= "9" && "string" == typeof e
			},
			isWhitespace: function (e) {
				return " " === e || "\r" === e || "\t" === e || "\n" === e || "\v" === e || " " === e
			},
			isIdentifierStart: function (e) {
				return this.options.isIdentifierStart ? this.options.isIdentifierStart(e, this.codePointAt(e)) : this.isValidIdentifierStart(e)
			},
			isValidIdentifierStart: function (e) {
				return "a" <= e && e <= "z" || "A" <= e && e <= "Z" || "_" === e || "$" === e
			},
			isIdentifierContinue: function (e) {
				return this.options.isIdentifierContinue ? this.options.isIdentifierContinue(e, this.codePointAt(e)) : this.isValidIdentifierContinue(e)
			},
			isValidIdentifierContinue: function (e, t) {
				return this.isValidIdentifierStart(e, t) || this.isNumber(e)
			},
			codePointAt: function (e) {
				return 1 === e.length ? e.charCodeAt(0) : (e.charCodeAt(0) << 10) + e.charCodeAt(1) - 56613888
			},
			peekMultichar: function () {
				var e = this.text.charAt(this.index),
					t = this.peek();
				if (!t) return e;
				var n = e.charCodeAt(0),
					r = t.charCodeAt(0);
				return n >= 55296 && n <= 56319 && r >= 56320 && r <= 57343 ? e + t : e
			},
			isExpOperator: function (e) {
				return "-" === e || "+" === e || this.isNumber(e)
			},
			throwError: function (e, t, n) {
				n = n || this.index;
				var r = g(t) ? "s " + t + "-" + this.index + " [" + this.text.substring(t, n) + "]" : " " + n;
				throw co("lexerr", "Lexer Error: {0} at column{1} in expression [{2}].", e, r, this.text)
			},
			readNumber: function () {
				for (var e = "", t = this.index; this.index < this.text.length;) {
					var n = jr(this.text.charAt(this.index));
					if ("." == n || this.isNumber(n)) e += n;
					else {
						var r = this.peek();
						if ("e" == n && this.isExpOperator(r)) e += n;
						else if (this.isExpOperator(n) && r && this.isNumber(r) && "e" == e.charAt(e.length - 1)) e += n;
						else {
							if (!this.isExpOperator(n) || r && this.isNumber(r) || "e" != e.charAt(e.length - 1)) break;
							this.throwError("Invalid exponent")
						}
					}
					this.index++
				}
				this.tokens.push({
					index: t,
					text: e,
					constant: !0,
					value: Number(e)
				})
			},
			readIdent: function () {
				var e = this.index;
				for (this.index += this.peekMultichar().length; this.index < this.text.length;) {
					var t = this.peekMultichar();
					if (!this.isIdentifierContinue(t)) break;
					this.index += t.length
				}
				this.tokens.push({
					index: e,
					text: this.text.slice(e, this.index),
					identifier: !0
				})
			},
			readString: function (e) {
				var t = this.index;
				this.index++;
				for (var n = "", r = e, i = !1; this.index < this.text.length;) {
					var o = this.text.charAt(this.index);
					if (r += o, i) {
						if ("u" === o) {
							var a = this.text.substring(this.index + 1, this.index + 5);
							a.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + a + "]"), this.index += 4, n += String.fromCharCode(parseInt(a, 16))
						} else {
							var s = $o[o];
							n += s || o
						}
						i = !1
					} else if ("\\" === o) i = !0;
					else {
						if (o === e) return this.index++, void this.tokens.push({
							index: t,
							text: r,
							constant: !0,
							value: n
						});
						n += o
					}
					this.index++
				}
				this.throwError("Unterminated quote", t)
			}
		};
		var mo = function (e, t) {
			this.lexer = e, this.options = t
		};
		mo.Program = "Program", mo.ExpressionStatement = "ExpressionStatement", mo.AssignmentExpression = "AssignmentExpression", mo.ConditionalExpression = "ConditionalExpression", mo.LogicalExpression = "LogicalExpression", mo.BinaryExpression = "BinaryExpression", mo.UnaryExpression = "UnaryExpression", mo.CallExpression = "CallExpression", mo.MemberExpression = "MemberExpression", mo.Identifier = "Identifier", mo.Literal = "Literal", mo.ArrayExpression = "ArrayExpression", mo.Property = "Property", mo.ObjectExpression = "ObjectExpression", mo.ThisExpression = "ThisExpression", mo.LocalsExpression = "LocalsExpression", mo.NGValueParameter = "NGValueParameter", mo.prototype = {
			ast: function (e) {
				this.text = e, this.tokens = this.lexer.lex(e);
				var t = this.program();
				return 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), t
			},
			program: function () {
				for (var e = [];;)
					if (this.tokens.length > 0 && !this.peek("}", ")", ";", "]") && e.push(this.expressionStatement()), !this.expect(";")) return {
						type: mo.Program,
						body: e
					}
			},
			expressionStatement: function () {
				return {
					type: mo.ExpressionStatement,
					expression: this.filterChain()
				}
			},
			filterChain: function () {
				for (var e, t = this.expression(); e = this.expect("|");) t = this.filter(t);
				return t
			},
			expression: function () {
				return this.assignment()
			},
			assignment: function () {
				var e = this.ternary();
				return this.expect("=") && (e = {
					type: mo.AssignmentExpression,
					left: e,
					right: this.assignment(),
					operator: "="
				}), e
			},
			ternary: function () {
				var e, t, n = this.logicalOR();
				return this.expect("?") && (e = this.expression(), this.consume(":")) ? (t = this.expression(), {
					type: mo.ConditionalExpression,
					test: n,
					alternate: e,
					consequent: t
				}) : n
			},
			logicalOR: function () {
				for (var e = this.logicalAND(); this.expect("||");) e = {
					type: mo.LogicalExpression,
					operator: "||",
					left: e,
					right: this.logicalAND()
				};
				return e
			},
			logicalAND: function () {
				for (var e = this.equality(); this.expect("&&");) e = {
					type: mo.LogicalExpression,
					operator: "&&",
					left: e,
					right: this.equality()
				};
				return e
			},
			equality: function () {
				for (var e, t = this.relational(); e = this.expect("==", "!=", "===", "!==");) t = {
					type: mo.BinaryExpression,
					operator: e.text,
					left: t,
					right: this.relational()
				};
				return t
			},
			relational: function () {
				for (var e, t = this.additive(); e = this.expect("<", ">", "<=", ">=");) t = {
					type: mo.BinaryExpression,
					operator: e.text,
					left: t,
					right: this.additive()
				};
				return t
			},
			additive: function () {
				for (var e, t = this.multiplicative(); e = this.expect("+", "-");) t = {
					type: mo.BinaryExpression,
					operator: e.text,
					left: t,
					right: this.multiplicative()
				};
				return t
			},
			multiplicative: function () {
				for (var e, t = this.unary(); e = this.expect("*", "/", "%");) t = {
					type: mo.BinaryExpression,
					operator: e.text,
					left: t,
					right: this.unary()
				};
				return t
			},
			unary: function () {
				var e;
				return (e = this.expect("+", "-", "!")) ? {
					type: mo.UnaryExpression,
					operator: e.text,
					prefix: !0,
					argument: this.unary()
				} : this.primary()
			},
			primary: function () {
				var e;
				this.expect("(") ? (e = this.filterChain(), this.consume(")")) : this.expect("[") ? e = this.arrayDeclaration() : this.expect("{") ? e = this.object() : this.selfReferential.hasOwnProperty(this.peek().text) ? e = R(this.selfReferential[this.consume().text]) : this.options.literals.hasOwnProperty(this.peek().text) ? e = {
					type: mo.Literal,
					value: this.options.literals[this.consume().text]
				} : this.peek().identifier ? e = this.identifier() : this.peek().constant ? e = this.constant() : this.throwError("not a primary expression", this.peek());
				for (var t; t = this.expect("(", "[", ".");) "(" === t.text ? (e = {
					type: mo.CallExpression,
					callee: e,
					arguments: this.parseArguments()
				}, this.consume(")")) : "[" === t.text ? (e = {
					type: mo.MemberExpression,
					object: e,
					property: this.expression(),
					computed: !0
				}, this.consume("]")) : "." === t.text ? e = {
					type: mo.MemberExpression,
					object: e,
					property: this.identifier(),
					computed: !1
				} : this.throwError("IMPOSSIBLE");
				return e
			},
			filter: function (e) {
				for (var t = [e], n = {
						type: mo.CallExpression,
						callee: this.identifier(),
						arguments: t,
						filter: !0
					}; this.expect(":");) t.push(this.expression());
				return n
			},
			parseArguments: function () {
				var e = [];
				if (")" !== this.peekToken().text)
					do e.push(this.expression()); while (this.expect(","));
				return e
			},
			identifier: function () {
				var e = this.consume();
				return e.identifier || this.throwError("is not a valid identifier", e), {
					type: mo.Identifier,
					name: e.text
				}
			},
			constant: function () {
				return {
					type: mo.Literal,
					value: this.consume().value
				}
			},
			arrayDeclaration: function () {
				var e = [];
				if ("]" !== this.peekToken().text)
					do {
						if (this.peek("]")) break;
						e.push(this.expression())
					} while (this.expect(","));
				return this.consume("]"), {
					type: mo.ArrayExpression,
					elements: e
				}
			},
			object: function () {
				var e, t = [];
				if ("}" !== this.peekToken().text)
					do {
						if (this.peek("}")) break;
						e = {
							type: mo.Property,
							kind: "init"
						}, this.peek().constant ? (e.key = this.constant(), e.computed = !1, this.consume(":"), e.value = this.expression()) : this.peek().identifier ? (e.key = this.identifier(), e.computed = !1, this.peek(":") ? (this.consume(":"), e.value = this.expression()) : e.value = e.key) : this.peek("[") ? (this.consume("["), e.key = this.expression(), this.consume("]"), e.computed = !0, this.consume(":"), e.value = this.expression()) : this.throwError("invalid key", this.peek()), t.push(e)
					} while (this.expect(","));
				return this.consume("}"), {
					type: mo.ObjectExpression,
					properties: t
				}
			},
			throwError: function (e, t) {
				throw co("syntax", "Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].", t.text, e, t.index + 1, this.text, this.text.substring(t.index))
			},
			consume: function (e) {
				if (0 === this.tokens.length) throw co("ueoe", "Unexpected end of expression: {0}", this.text);
				var t = this.expect(e);
				return t || this.throwError("is unexpected, expecting [" + e + "]", this.peek()), t
			},
			peekToken: function () {
				if (0 === this.tokens.length) throw co("ueoe", "Unexpected end of expression: {0}", this.text);
				return this.tokens[0]
			},
			peek: function (e, t, n, r) {
				return this.peekAhead(0, e, t, n, r)
			},
			peekAhead: function (e, t, n, r, i) {
				if (this.tokens.length > e) {
					var o = this.tokens[e],
						a = o.text;
					if (a === t || a === n || a === r || a === i || !t && !n && !r && !i) return o
				}
				return !1
			},
			expect: function (e, t, n, r) {
				var i = this.peek(e, t, n, r);
				return !!i && (this.tokens.shift(), i)
			},
			selfReferential: {
				this: {
					type: mo.ThisExpression
				},
				$locals: {
					type: mo.LocalsExpression
				}
			}
		}, $n.prototype = {
			compile: function (e, t) {
				var n = this,
					i = this.astBuilder.ast(e);
				this.state = {
					nextId: 0,
					filters: {},
					expensiveChecks: t,
					fn: {
						vars: [],
						body: [],
						own: {}
					},
					assign: {
						vars: [],
						body: [],
						own: {}
					},
					inputs: []
				}, cn(i, n.$filter);
				var o, a = "";
				if (this.stage = "assign", o = hn(i)) {
					this.state.computing = "assign";
					var s = this.nextId();
					this.recurse(o, s), this.return_(s), a = "fn.assign=" + this.generateFunction("assign", "s,v,l")
				}
				var u = ln(i.body);
				n.stage = "inputs", r(u, function (e, t) {
					var r = "fn" + t;
					n.state[r] = {
						vars: [],
						body: [],
						own: {}
					}, n.state.computing = r;
					var i = n.nextId();
					n.recurse(e, i), n.return_(i), n.state.inputs.push(r), e.watchId = t
				}), this.state.computing = "fn", this.stage = "main", this.recurse(i);
				var c = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + a + this.watchFns() + "return fn;",
					l = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", c)(this.$filter, en, nn, rn, tn, on, an, sn, e);
				return this.state = this.stage = void 0, l.literal = pn(i), l.constant = dn(i), l
			},
			USE: "use",
			STRICT: "strict",
			watchFns: function () {
				var e = [],
					t = this.state.inputs,
					n = this;
				return r(t, function (t) {
					e.push("var " + t + "=" + n.generateFunction(t, "s"))
				}), t.length && e.push("fn.inputs=[" + t.join(",") + "];"), e.join("")
			},
			generateFunction: function (e, t) {
				return "function(" + t + "){" + this.varsPrefix(e) + this.body(e) + "};"
			},
			filterPrefix: function () {
				var e = [],
					t = this;
				return r(this.state.filters, function (n, r) {
					e.push(n + "=$filter(" + t.escape(r) + ")")
				}), e.length ? "var " + e.join(",") + ";" : ""
			},
			varsPrefix: function (e) {
				return this.state[e].vars.length ? "var " + this.state[e].vars.join(",") + ";" : ""
			},
			body: function (e) {
				return this.state[e].body.join("")
			},
			recurse: function (e, t, n, i, o, a) {
				var s, u, c, l, f, h = this;
				if (i = i || p, !a && g(e.watchId)) return t = t || this.nextId(), void this.if_("i", this.lazyAssign(t, this.computedMember("i", e.watchId)), this.lazyRecurse(e, t, n, i, o, !0));
				switch (e.type) {
					case mo.Program:
						r(e.body, function (t, n) {
							h.recurse(t.expression, void 0, void 0, function (e) {
								u = e
							}), n !== e.body.length - 1 ? h.current().body.push(u, ";") : h.return_(u)
						});
						break;
					case mo.Literal:
						l = this.escape(e.value), this.assign(t, l), i(l);
						break;
					case mo.UnaryExpression:
						this.recurse(e.argument, void 0, void 0, function (e) {
							u = e
						}), l = e.operator + "(" + this.ifDefined(u, 0) + ")", this.assign(t, l), i(l);
						break;
					case mo.BinaryExpression:
						this.recurse(e.left, void 0, void 0, function (e) {
							s = e
						}), this.recurse(e.right, void 0, void 0, function (e) {
							u = e
						}), l = "+" === e.operator ? this.plus(s, u) : "-" === e.operator ? this.ifDefined(s, 0) + e.operator + this.ifDefined(u, 0) : "(" + s + ")" + e.operator + "(" + u + ")", this.assign(t, l), i(l);
						break;
					case mo.LogicalExpression:
						t = t || this.nextId(), h.recurse(e.left, t), h.if_("&&" === e.operator ? t : h.not(t), h.lazyRecurse(e.right, t)), i(t);
						break;
					case mo.ConditionalExpression:
						t = t || this.nextId(), h.recurse(e.test, t), h.if_(t, h.lazyRecurse(e.alternate, t), h.lazyRecurse(e.consequent, t)), i(t);
						break;
					case mo.Identifier:
						t = t || this.nextId(), n && (n.context = "inputs" === h.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", e.name) + "?l:s"), n.computed = !1, n.name = e.name), en(e.name), h.if_("inputs" === h.stage || h.not(h.getHasOwnProperty("l", e.name)), function () {
							h.if_("inputs" === h.stage || "s", function () {
								o && 1 !== o && h.if_(h.not(h.nonComputedMember("s", e.name)), h.lazyAssign(h.nonComputedMember("s", e.name), "{}")), h.assign(t, h.nonComputedMember("s", e.name))
							})
						}, t && h.lazyAssign(t, h.nonComputedMember("l", e.name))), (h.state.expensiveChecks || mn(e.name)) && h.addEnsureSafeObject(t), i(t);
						break;
					case mo.MemberExpression:
						s = n && (n.context = this.nextId()) || this.nextId(), t = t || this.nextId(), h.recurse(e.object, s, void 0, function () {
							h.if_(h.notNull(s), function () {
								o && 1 !== o && h.addEnsureSafeAssignContext(s), e.computed ? (u = h.nextId(), h.recurse(e.property, u), h.getStringValue(u), h.addEnsureSafeMemberName(u), o && 1 !== o && h.if_(h.not(h.computedMember(s, u)), h.lazyAssign(h.computedMember(s, u), "{}")), l = h.ensureSafeObject(h.computedMember(s, u)), h.assign(t, l), n && (n.computed = !0, n.name = u)) : (en(e.property.name), o && 1 !== o && h.if_(h.not(h.nonComputedMember(s, e.property.name)), h.lazyAssign(h.nonComputedMember(s, e.property.name), "{}")),
									l = h.nonComputedMember(s, e.property.name), (h.state.expensiveChecks || mn(e.property.name)) && (l = h.ensureSafeObject(l)), h.assign(t, l), n && (n.computed = !1, n.name = e.property.name))
							}, function () {
								h.assign(t, "undefined")
							}), i(t)
						}, !!o);
						break;
					case mo.CallExpression:
						t = t || this.nextId(), e.filter ? (u = h.filter(e.callee.name), c = [], r(e.arguments, function (e) {
							var t = h.nextId();
							h.recurse(e, t), c.push(t)
						}), l = u + "(" + c.join(",") + ")", h.assign(t, l), i(t)) : (u = h.nextId(), s = {}, c = [], h.recurse(e.callee, u, s, function () {
							h.if_(h.notNull(u), function () {
								h.addEnsureSafeFunction(u), r(e.arguments, function (e) {
									h.recurse(e, h.nextId(), void 0, function (e) {
										c.push(h.ensureSafeObject(e))
									})
								}), s.name ? (h.state.expensiveChecks || h.addEnsureSafeObject(s.context), l = h.member(s.context, s.name, s.computed) + "(" + c.join(",") + ")") : l = u + "(" + c.join(",") + ")", l = h.ensureSafeObject(l), h.assign(t, l)
							}, function () {
								h.assign(t, "undefined")
							}), i(t)
						}));
						break;
					case mo.AssignmentExpression:
						if (u = this.nextId(), s = {}, !fn(e.left)) throw co("lval", "Trying to assign a value to a non l-value");
						this.recurse(e.left, void 0, s, function () {
							h.if_(h.notNull(s.context), function () {
								h.recurse(e.right, u), h.addEnsureSafeObject(h.member(s.context, s.name, s.computed)), h.addEnsureSafeAssignContext(s.context), l = h.member(s.context, s.name, s.computed) + e.operator + u, h.assign(t, l), i(t || l)
							})
						}, 1);
						break;
					case mo.ArrayExpression:
						c = [], r(e.elements, function (e) {
							h.recurse(e, h.nextId(), void 0, function (e) {
								c.push(e)
							})
						}), l = "[" + c.join(",") + "]", this.assign(t, l), i(l);
						break;
					case mo.ObjectExpression:
						c = [], f = !1, r(e.properties, function (e) {
							e.computed && (f = !0)
						}), f ? (t = t || this.nextId(), this.assign(t, "{}"), r(e.properties, function (e) {
							e.computed ? (s = h.nextId(), h.recurse(e.key, s)) : s = e.key.type === mo.Identifier ? e.key.name : "" + e.key.value, u = h.nextId(), h.recurse(e.value, u), h.assign(h.member(t, s, e.computed), u)
						})) : (r(e.properties, function (t) {
							h.recurse(t.value, e.constant ? void 0 : h.nextId(), void 0, function (e) {
								c.push(h.escape(t.key.type === mo.Identifier ? t.key.name : "" + t.key.value) + ":" + e)
							})
						}), l = "{" + c.join(",") + "}", this.assign(t, l)), i(t || l);
						break;
					case mo.ThisExpression:
						this.assign(t, "s"), i("s");
						break;
					case mo.LocalsExpression:
						this.assign(t, "l"), i("l");
						break;
					case mo.NGValueParameter:
						this.assign(t, "v"), i("v")
				}
			},
			getHasOwnProperty: function (e, t) {
				var n = e + "." + t,
					r = this.current().own;
				return r.hasOwnProperty(n) || (r[n] = this.nextId(!1, e + "&&(" + this.escape(t) + " in " + e + ")")), r[n]
			},
			assign: function (e, t) {
				if (e) return this.current().body.push(e, "=", t, ";"), e
			},
			filter: function (e) {
				return this.state.filters.hasOwnProperty(e) || (this.state.filters[e] = this.nextId(!0)), this.state.filters[e]
			},
			ifDefined: function (e, t) {
				return "ifDefined(" + e + "," + this.escape(t) + ")"
			},
			plus: function (e, t) {
				return "plus(" + e + "," + t + ")"
			},
			return_: function (e) {
				this.current().body.push("return ", e, ";")
			},
			if_: function (e, t, n) {
				if (e === !0) t();
				else {
					var r = this.current().body;
					r.push("if(", e, "){"), t(), r.push("}"), n && (r.push("else{"), n(), r.push("}"))
				}
			},
			not: function (e) {
				return "!(" + e + ")"
			},
			notNull: function (e) {
				return e + "!=null"
			},
			nonComputedMember: function (e, t) {
				var n = /[$_a-zA-Z][$_a-zA-Z0-9]*/,
					r = /[^$_a-zA-Z0-9]/g;
				return n.test(t) ? e + "." + t : e + '["' + t.replace(r, this.stringEscapeFn) + '"]'
			},
			computedMember: function (e, t) {
				return e + "[" + t + "]"
			},
			member: function (e, t, n) {
				return n ? this.computedMember(e, t) : this.nonComputedMember(e, t)
			},
			addEnsureSafeObject: function (e) {
				this.current().body.push(this.ensureSafeObject(e), ";")
			},
			addEnsureSafeMemberName: function (e) {
				this.current().body.push(this.ensureSafeMemberName(e), ";")
			},
			addEnsureSafeFunction: function (e) {
				this.current().body.push(this.ensureSafeFunction(e), ";")
			},
			addEnsureSafeAssignContext: function (e) {
				this.current().body.push(this.ensureSafeAssignContext(e), ";")
			},
			ensureSafeObject: function (e) {
				return "ensureSafeObject(" + e + ",text)"
			},
			ensureSafeMemberName: function (e) {
				return "ensureSafeMemberName(" + e + ",text)"
			},
			ensureSafeFunction: function (e) {
				return "ensureSafeFunction(" + e + ",text)"
			},
			getStringValue: function (e) {
				this.assign(e, "getStringValue(" + e + ")")
			},
			ensureSafeAssignContext: function (e) {
				return "ensureSafeAssignContext(" + e + ",text)"
			},
			lazyRecurse: function (e, t, n, r, i, o) {
				var a = this;
				return function () {
					a.recurse(e, t, n, r, i, o)
				}
			},
			lazyAssign: function (e, t) {
				var n = this;
				return function () {
					n.assign(e, t)
				}
			},
			stringEscapeRegex: /[^ a-zA-Z0-9]/g,
			stringEscapeFn: function (e) {
				return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4)
			},
			escape: function (e) {
				if (x(e)) return "'" + e.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'";
				if (w(e)) return e.toString();
				if (e === !0) return "true";
				if (e === !1) return "false";
				if (null === e) return "null";
				if ("undefined" == typeof e) return "undefined";
				throw co("esc", "IMPOSSIBLE")
			},
			nextId: function (e, t) {
				var n = "v" + this.state.nextId++;
				return e || this.current().vars.push(n + (t ? "=" + t : "")), n
			},
			current: function () {
				return this.state[this.state.computing]
			}
		}, vn.prototype = {
			compile: function (e, t) {
				var n = this,
					i = this.astBuilder.ast(e);
				this.expression = e, this.expensiveChecks = t, cn(i, n.$filter);
				var o, a;
				(o = hn(i)) && (a = this.recurse(o));
				var s, u = ln(i.body);
				u && (s = [], r(u, function (e, t) {
					var r = n.recurse(e);
					e.input = r, s.push(r), e.watchId = t
				}));
				var c = [];
				r(i.body, function (e) {
					c.push(n.recurse(e.expression))
				});
				var l = 0 === i.body.length ? p : 1 === i.body.length ? c[0] : function (e, t) {
					var n;
					return r(c, function (r) {
						n = r(e, t)
					}), n
				};
				return a && (l.assign = function (e, t, n) {
					return a(e, n, t)
				}), s && (l.inputs = s), l.literal = pn(i), l.constant = dn(i), l
			},
			recurse: function (e, t, n) {
				var i, o, a, s = this;
				if (e.input) return this.inputs(e.input, e.watchId);
				switch (e.type) {
					case mo.Literal:
						return this.value(e.value, t);
					case mo.UnaryExpression:
						return o = this.recurse(e.argument), this["unary" + e.operator](o, t);
					case mo.BinaryExpression:
						return i = this.recurse(e.left), o = this.recurse(e.right), this["binary" + e.operator](i, o, t);
					case mo.LogicalExpression:
						return i = this.recurse(e.left), o = this.recurse(e.right), this["binary" + e.operator](i, o, t);
					case mo.ConditionalExpression:
						return this["ternary?:"](this.recurse(e.test), this.recurse(e.alternate), this.recurse(e.consequent), t);
					case mo.Identifier:
						return en(e.name, s.expression), s.identifier(e.name, s.expensiveChecks || mn(e.name), t, n, s.expression);
					case mo.MemberExpression:
						return i = this.recurse(e.object, !1, !!n), e.computed || (en(e.property.name, s.expression), o = e.property.name), e.computed && (o = this.recurse(e.property)), e.computed ? this.computedMember(i, o, t, n, s.expression) : this.nonComputedMember(i, o, s.expensiveChecks, t, n, s.expression);
					case mo.CallExpression:
						return a = [], r(e.arguments, function (e) {
							a.push(s.recurse(e))
						}), e.filter && (o = this.$filter(e.callee.name)), e.filter || (o = this.recurse(e.callee, !0)), e.filter ? function (e, n, r, i) {
							for (var s = [], u = 0; u < a.length; ++u) s.push(a[u](e, n, r, i));
							var c = o.apply(void 0, s, i);
							return t ? {
								context: void 0,
								name: void 0,
								value: c
							} : c
						} : function (e, n, r, i) {
							var u, c = o(e, n, r, i);
							if (null != c.value) {
								nn(c.context, s.expression), rn(c.value, s.expression);
								for (var l = [], f = 0; f < a.length; ++f) l.push(nn(a[f](e, n, r, i), s.expression));
								u = nn(c.value.apply(c.context, l), s.expression)
							}
							return t ? {
								value: u
							} : u
						};
					case mo.AssignmentExpression:
						return i = this.recurse(e.left, !0, 1), o = this.recurse(e.right),
							function (e, n, r, a) {
								var u = i(e, n, r, a),
									c = o(e, n, r, a);
								return nn(u.value, s.expression), on(u.context), u.context[u.name] = c, t ? {
									value: c
								} : c
							};
					case mo.ArrayExpression:
						return a = [], r(e.elements, function (e) {
								a.push(s.recurse(e))
							}),
							function (e, n, r, i) {
								for (var o = [], s = 0; s < a.length; ++s) o.push(a[s](e, n, r, i));
								return t ? {
									value: o
								} : o
							};
					case mo.ObjectExpression:
						return a = [], r(e.properties, function (e) {
								e.computed ? a.push({
									key: s.recurse(e.key),
									computed: !0,
									value: s.recurse(e.value)
								}) : a.push({
									key: e.key.type === mo.Identifier ? e.key.name : "" + e.key.value,
									computed: !1,
									value: s.recurse(e.value)
								})
							}),
							function (e, n, r, i) {
								for (var o = {}, s = 0; s < a.length; ++s) a[s].computed ? o[a[s].key(e, n, r, i)] = a[s].value(e, n, r, i) : o[a[s].key] = a[s].value(e, n, r, i);
								return t ? {
									value: o
								} : o
							};
					case mo.ThisExpression:
						return function (e) {
							return t ? {
								value: e
							} : e
						};
					case mo.LocalsExpression:
						return function (e, n) {
							return t ? {
								value: n
							} : n
						};
					case mo.NGValueParameter:
						return function (e, n, r) {
							return t ? {
								value: r
							} : r
						}
				}
			},
			"unary+": function (e, t) {
				return function (n, r, i, o) {
					var a = e(n, r, i, o);
					return a = g(a) ? +a : 0, t ? {
						value: a
					} : a
				}
			},
			"unary-": function (e, t) {
				return function (n, r, i, o) {
					var a = e(n, r, i, o);
					return a = g(a) ? -a : 0, t ? {
						value: a
					} : a
				}
			},
			"unary!": function (e, t) {
				return function (n, r, i, o) {
					var a = !e(n, r, i, o);
					return t ? {
						value: a
					} : a
				}
			},
			"binary+": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a),
						u = t(r, i, o, a),
						c = sn(s, u);
					return n ? {
						value: c
					} : c
				}
			},
			"binary-": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a),
						u = t(r, i, o, a),
						c = (g(s) ? s : 0) - (g(u) ? u : 0);
					return n ? {
						value: c
					} : c
				}
			},
			"binary*": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) * t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary/": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) / t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary%": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) % t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary===": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) === t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary!==": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) !== t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary==": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) == t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary!=": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) != t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary<": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) < t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary>": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) > t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary<=": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) <= t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary>=": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) >= t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary&&": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) && t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"binary||": function (e, t, n) {
				return function (r, i, o, a) {
					var s = e(r, i, o, a) || t(r, i, o, a);
					return n ? {
						value: s
					} : s
				}
			},
			"ternary?:": function (e, t, n, r) {
				return function (i, o, a, s) {
					var u = e(i, o, a, s) ? t(i, o, a, s) : n(i, o, a, s);
					return r ? {
						value: u
					} : u
				}
			},
			value: function (e, t) {
				return function () {
					return t ? {
						context: void 0,
						name: void 0,
						value: e
					} : e
				}
			},
			identifier: function (e, t, n, r, i) {
				return function (o, a, s, u) {
					var c = a && e in a ? a : o;
					r && 1 !== r && c && !c[e] && (c[e] = {});
					var l = c ? c[e] : void 0;
					return t && nn(l, i), n ? {
						context: c,
						name: e,
						value: l
					} : l
				}
			},
			computedMember: function (e, t, n, r, i) {
				return function (o, a, s, u) {
					var c, l, f = e(o, a, s, u);
					return null != f && (c = t(o, a, s, u), c = tn(c), en(c, i), r && 1 !== r && (on(f), f && !f[c] && (f[c] = {})), l = f[c], nn(l, i)), n ? {
						context: f,
						name: c,
						value: l
					} : l
				}
			},
			nonComputedMember: function (e, t, n, r, i, o) {
				return function (a, s, u, c) {
					var l = e(a, s, u, c);
					i && 1 !== i && (on(l), l && !l[t] && (l[t] = {}));
					var f = null != l ? l[t] : void 0;
					return (n || mn(t)) && nn(f, o), r ? {
						context: l,
						name: t,
						value: f
					} : f
				}
			},
			inputs: function (e, t) {
				return function (n, r, i, o) {
					return o ? o[t] : e(n, r, i)
				}
			}
		};
		var go = function (e, t, n) {
			this.lexer = e, this.$filter = t, this.options = n, this.ast = new mo(e, n), this.astCompiler = n.csp ? new vn(this.ast, t) : new $n(this.ast, t)
		};
		go.prototype = {
			constructor: go,
			parse: function (e) {
				return this.astCompiler.compile(e, this.options.expensiveChecks)
			}
		};
		var yo = Object.prototype.valueOf,
			bo = t("$sce"),
			xo = {
				HTML: "html",
				CSS: "css",
				URL: "url",
				RESOURCE_URL: "resourceUrl",
				JS: "js"
			},
			wo = t("$compile"),
			ko = e.document.createElement("a"),
			Co = In(e.location.href);
		_n.$inject = ["$document"], Rn.$inject = ["$provide"];
		var So = 22,
			Eo = ".",
			Ao = "0";
		Bn.$inject = ["$locale"], zn.$inject = ["$locale"];
		var To = {
				yyyy: Zn("FullYear", 4, 0, !1, !0),
				yy: Zn("FullYear", 2, 0, !0, !0),
				y: Zn("FullYear", 1, 0, !1, !0),
				MMMM: Kn("Month"),
				MMM: Kn("Month", !0),
				MM: Zn("Month", 2, 1),
				M: Zn("Month", 1, 1),
				LLLL: Kn("Month", !1, !0),
				dd: Zn("Date", 2),
				d: Zn("Date", 1),
				HH: Zn("Hours", 2),
				H: Zn("Hours", 1),
				hh: Zn("Hours", 2, -12),
				h: Zn("Hours", 1, -12),
				mm: Zn("Minutes", 2),
				m: Zn("Minutes", 1),
				ss: Zn("Seconds", 2),
				s: Zn("Seconds", 1),
				sss: Zn("Milliseconds", 3),
				EEEE: Kn("Day"),
				EEE: Kn("Day", !0),
				a: nr,
				Z: Xn,
				ww: tr(2),
				w: tr(1),
				G: rr,
				GG: rr,
				GGG: rr,
				GGGG: ir
			},
			Oo = /((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
			Mo = /^\-?\d+$/;
		or.$inject = ["$locale"];
		var No = $(jr),
			jo = $(Vr);
		ur.$inject = ["$parse"];
		var Vo = $({
				restrict: "E",
				compile: function (e, t) {
					if (!t.href && !t.xlinkHref) return function (e, t) {
						if ("a" === t[0].nodeName.toLowerCase()) {
							var n = "[object SVGAnimatedString]" === Fr.call(t.prop("href")) ? "xlink:href" : "href";
							t.on("click", function (e) {
								t.attr(n) || e.preventDefault()
							})
						}
					}
				}
			}),
			Io = {};
		r(Ei, function (e, t) {
			function n(e, n, i) {
				e.$watch(i[r], function (e) {
					i.$set(t, !!e)
				})
			}
			if ("multiple" != e) {
				var r = vt("ng-" + t),
					i = n;
				"checked" === e && (i = function (e, t, i) {
					i.ngModel !== i[r] && n(e, t, i)
				}), Io[r] = function () {
					return {
						restrict: "A",
						priority: 100,
						link: i
					}
				}
			}
		}), r(Ti, function (e, t) {
			Io[t] = function () {
				return {
					priority: 100,
					link: function (e, n, r) {
						if ("ngPattern" === t && "/" == r.ngPattern.charAt(0)) {
							var i = r.ngPattern.match(Or);
							if (i) return void r.$set("ngPattern", new RegExp(i[1], i[2]))
						}
						e.$watch(r[t], function (e) {
							r.$set(t, e)
						})
					}
				}
			}
		}), r(["src", "srcset", "href"], function (e) {
			var t = vt("ng-" + e);
			Io[t] = function () {
				return {
					priority: 99,
					link: function (n, r, i) {
						var o = e,
							a = e;
						"href" === e && "[object SVGAnimatedString]" === Fr.call(r.prop("href")) && (a = "xlinkHref", i.$attr[a] = "xlink:href", o = null), i.$observe(t, function (t) {
							return t ? (i.$set(a, t), void(Dr && o && r.prop(o, i[a]))) : void("href" === e && i.$set(a, null))
						})
					}
				}
			}
		});
		var Ho = {
				$addControl: p,
				$$renameControl: lr,
				$removeControl: p,
				$setValidity: p,
				$setDirty: p,
				$setPristine: p,
				$setSubmitted: p
			},
			Do = "ng-submitted";
		fr.$inject = ["$element", "$attrs", "$scope", "$animate", "$interpolate"];
		var _o = function (e) {
				return ["$timeout", "$parse", function (t, n) {
					function r(e) {
						return "" === e ? n('this[""]').assign : n(e).assign || p
					}
					var i = {
						name: "form",
						restrict: e ? "EAC" : "E",
						require: ["form", "^^?form"],
						controller: fr,
						compile: function (n, i) {
							n.addClass(ya).addClass(ma);
							var o = i.name ? "name" : !(!e || !i.ngForm) && "ngForm";
							return {
								pre: function (e, n, i, a) {
									var s = a[0];
									if (!("action" in i)) {
										var u = function (t) {
											e.$apply(function () {
												s.$commitViewValue(), s.$setSubmitted()
											}), t.preventDefault()
										};
										pi(n[0], "submit", u), n.on("$destroy", function () {
											t(function () {
												di(n[0], "submit", u)
											}, 0, !1)
										})
									}
									var l = a[1] || s.$$parentForm;
									l.$addControl(s);
									var f = o ? r(s.$name) : p;
									o && (f(e, s), i.$observe(o, function (t) {
										s.$name !== t && (f(e, void 0), s.$$parentForm.$$renameControl(s, t), (f = r(s.$name))(e, s))
									})), n.on("$destroy", function () {
										s.$$parentForm.$removeControl(s), f(e, void 0), c(s, Ho)
									})
								}
							}
						}
					};
					return i
				}]
			},
			Po = _o(),
			Ro = _o(!0),
			Lo = /^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,
			Uo = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,
			qo = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,
			Fo = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,
			Bo = /^(\d{4,})-(\d{2})-(\d{2})$/,
			zo = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,
			Wo = /^(\d{4,})-W(\d\d)$/,
			Go = /^(\d{4,})-(\d\d)$/,
			Yo = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,
			Jo = "keydown wheel mousedown",
			Zo = $e();
		r("date,datetime-local,month,time,week".split(","), function (e) {
			Zo[e] = !0
		});
		var Ko = {
				text: pr,
				date: mr("date", Bo, vr(Bo, ["yyyy", "MM", "dd"]), "yyyy-MM-dd"),
				"datetime-local": mr("datetimelocal", zo, vr(zo, ["yyyy", "MM", "dd", "HH", "mm", "ss", "sss"]), "yyyy-MM-ddTHH:mm:ss.sss"),
				time: mr("time", Yo, vr(Yo, ["HH", "mm", "ss", "sss"]), "HH:mm:ss.sss"),
				week: mr("week", Wo, $r, "yyyy-Www"),
				month: mr("month", Go, vr(Go, ["yyyy", "MM"]), "yyyy-MM"),
				number: yr,
				url: br,
				email: xr,
				radio: wr,
				checkbox: Cr,
				hidden: p,
				button: p,
				submit: p,
				reset: p,
				file: p
			},
			Xo = ["$browser", "$sniffer", "$filter", "$parse", function (e, t, n, r) {
				return {
					restrict: "E",
					require: ["?ngModel"],
					link: {
						pre: function (i, o, a, s) {
							s[0] && (Ko[jr(a.type)] || Ko.text)(i, o, a, s[0], t, e, n, r)
						}
					}
				}
			}],
			Qo = /^(true|false|\d+)$/,
			ea = function () {
				return {
					restrict: "A",
					priority: 100,
					compile: function (e, t) {
						return Qo.test(t.ngValue) ? function (e, t, n) {
							n.$set("value", e.$eval(n.ngValue))
						} : function (e, t, n) {
							e.$watch(n.ngValue, function (e) {
								n.$set("value", e)
							})
						}
					}
				}
			},
			ta = ["$compile", function (e) {
				return {
					restrict: "AC",
					compile: function (t) {
						return e.$$addBindingClass(t),
							function (t, n, r) {
								e.$$addBindingInfo(n, r.ngBind), n = n[0], t.$watch(r.ngBind, function (e) {
									n.textContent = m(e) ? "" : e
								})
							}
					}
				}
			}],
			na = ["$interpolate", "$compile", function (e, t) {
				return {
					compile: function (n) {
						return t.$$addBindingClass(n),
							function (n, r, i) {
								var o = e(r.attr(i.$attr.ngBindTemplate));
								t.$$addBindingInfo(r, o.expressions), r = r[0], i.$observe("ngBindTemplate", function (e) {
									r.textContent = m(e) ? "" : e
								})
							}
					}
				}
			}],
			ra = ["$sce", "$parse", "$compile", function (e, t, n) {
				return {
					restrict: "A",
					compile: function (r, i) {
						var o = t(i.ngBindHtml),
							a = t(i.ngBindHtml, function (t) {
								return e.valueOf(t)
							});
						return n.$$addBindingClass(r),
							function (t, r, i) {
								n.$$addBindingInfo(r, i.ngBindHtml), t.$watch(a, function () {
									var n = o(t);
									r.html(e.getTrustedHtml(n) || "")
								})
							}
					}
				}
			}],
			ia = $({
				restrict: "A",
				require: "ngModel",
				link: function (e, t, n, r) {
					r.$viewChangeListeners.push(function () {
						e.$eval(n.ngChange)
					})
				}
			}),
			oa = Sr("", !0),
			aa = Sr("Odd", 0),
			sa = Sr("Even", 1),
			ua = cr({
				compile: function (e, t) {
					t.$set("ngCloak", void 0), e.removeClass("ng-cloak")
				}
			}),
			ca = [function () {
				return {
					restrict: "A",
					scope: !0,
					controller: "@",
					priority: 500
				}
			}],
			la = {},
			fa = {
				blur: !0,
				focus: !0
			};
		r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function (e) {
			var t = vt("ng-" + e);
			la[t] = ["$parse", "$rootScope", function (n, r) {
				return {
					restrict: "A",
					compile: function (i, o) {
						var a = n(o[t], null, !0);
						return function (t, n) {
							n.on(e, function (n) {
								var i = function () {
									a(t, {
										$event: n
									})
								};
								fa[e] && r.$$phase ? t.$evalAsync(i) : t.$apply(i)
							})
						}
					}
				}
			}]
		});
		var ha = ["$animate", "$compile", function (e, t) {
				return {
					multiElement: !0,
					transclude: "element",
					priority: 600,
					terminal: !0,
					restrict: "A",
					$$tlb: !0,
					link: function (n, r, i, o, a) {
						var s, u, c;
						n.$watch(i.ngIf, function (n) {
							n ? u || a(function (n, o) {
								u = o, n[n.length++] = t.$$createComment("end ngIf", i.ngIf), s = {
									clone: n
								}, e.enter(n, r.parent(), r)
							}) : (c && (c.remove(), c = null), u && (u.$destroy(), u = null), s && (c = de(s.clone), e.leave(c).then(function () {
								c = null
							}), s = null))
						})
					}
				}
			}],
			pa = ["$templateRequest", "$anchorScroll", "$animate", function (e, t, n) {
				return {
					restrict: "ECA",
					priority: 400,
					terminal: !0,
					transclude: "element",
					controller: Wr.noop,
					compile: function (r, i) {
						var o = i.ngInclude || i.src,
							a = i.onload || "",
							s = i.autoscroll;
						return function (r, i, u, c, l) {
							var f, h, p, d = 0,
								$ = function () {
									h && (h.remove(), h = null), f && (f.$destroy(), f = null), p && (n.leave(p).then(function () {
										h = null
									}), h = p, p = null)
								};
							r.$watch(o, function (o) {
								var u = function () {
										!g(s) || s && !r.$eval(s) || t()
									},
									h = ++d;
								o ? (e(o, !0).then(function (e) {
									if (!r.$$destroyed && h === d) {
										var t = r.$new();
										c.template = e;
										var s = l(t, function (e) {
											$(), n.enter(e, null, i).then(u)
										});
										f = t, p = s, f.$emit("$includeContentLoaded", o), r.$eval(a)
									}
								}, function () {
									r.$$destroyed || h === d && ($(), r.$emit("$includeContentError", o))
								}), r.$emit("$includeContentRequested", o)) : ($(), c.template = null)
							})
						}
					}
				}
			}],
			da = ["$compile", function (t) {
				return {
					restrict: "ECA",
					priority: -400,
					require: "ngInclude",
					link: function (n, r, i, o) {
						return Fr.call(r[0]).match(/SVG/) ? (r.empty(), void t(Ee(o.template, e.document).childNodes)(n, function (e) {
							r.append(e)
						}, {
							futureParentElement: r
						})) : (r.html(o.template), void t(r.contents())(n))
					}
				}
			}],
			$a = cr({
				priority: 450,
				compile: function () {
					return {
						pre: function (e, t, n) {
							e.$eval(n.ngInit)
						}
					}
				}
			}),
			va = function () {
				return {
					restrict: "A",
					priority: 100,
					require: "ngModel",
					link: function (e, t, n, i) {
						var o = t.attr(n.$attr.ngList) || ", ",
							a = "false" !== n.ngTrim,
							s = a ? Zr(o) : o,
							u = function (e) {
								if (!m(e)) {
									var t = [];
									return e && r(e.split(s), function (e) {
										e && t.push(a ? Zr(e) : e)
									}), t
								}
							};
						i.$parsers.push(u), i.$formatters.push(function (e) {
							if (Yr(e)) return e.join(o)
						}), i.$isEmpty = function (e) {
							return !e || !e.length
						}
					}
				}
			},
			ma = "ng-valid",
			ga = "ng-invalid",
			ya = "ng-pristine",
			ba = "ng-dirty",
			xa = "ng-untouched",
			wa = "ng-touched",
			ka = "ng-pending",
			Ca = "ng-empty",
			Sa = "ng-not-empty",
			Ea = t("ngModel"),
			Aa = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function (e, t, n, i, o, a, s, u, c, l) {
				this.$viewValue = Number.NaN, this.$modelValue = Number.NaN, this.$$rawModelValue = void 0, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = void 0, this.$name = l(n.name || "", !1)(e), this.$$parentForm = Ho;
				var f, h = o(n.ngModel),
					d = h.assign,
					$ = h,
					v = d,
					y = null,
					b = this;
				this.$$setOptions = function (e) {
					if (b.$options = e, e && e.getterSetter) {
						var t = o(n.ngModel + "()"),
							r = o(n.ngModel + "($$$p)");
						$ = function (e) {
							var n = h(e);
							return C(n) && (n = t(e)), n
						}, v = function (e, t) {
							C(h(e)) ? r(e, {
								$$$p: t
							}) : d(e, t)
						}
					} else if (!h.assign) throw Ea("nonassign", "Expression '{0}' is non-assignable. Element: {1}", n.ngModel, K(i))
				}, this.$render = p, this.$isEmpty = function (e) {
					return m(e) || "" === e || null === e || e !== e
				}, this.$$updateEmptyClasses = function (e) {
					b.$isEmpty(e) ? (a.removeClass(i, Sa), a.addClass(i, Ca)) : (a.removeClass(i, Ca), a.addClass(i, Sa))
				};
				var x = 0;
				Er({
					ctrl: this,
					$element: i,
					set: function (e, t) {
						e[t] = !0
					},
					unset: function (e, t) {
						delete e[t]
					},
					$animate: a
				}), this.$setPristine = function () {
					b.$dirty = !1, b.$pristine = !0, a.removeClass(i, ba), a.addClass(i, ya)
				}, this.$setDirty = function () {
					b.$dirty = !0, b.$pristine = !1, a.removeClass(i, ya), a.addClass(i, ba), b.$$parentForm.$setDirty()
				}, this.$setUntouched = function () {
					b.$touched = !1, b.$untouched = !0, a.setClass(i, xa, wa)
				}, this.$setTouched = function () {
					b.$touched = !0, b.$untouched = !1, a.setClass(i, wa, xa)
				}, this.$rollbackViewValue = function () {
					s.cancel(y), b.$viewValue = b.$$lastCommittedViewValue, b.$render()
				}, this.$validate = function () {
					if (!w(b.$modelValue) || !isNaN(b.$modelValue)) {
						var e = b.$$lastCommittedViewValue,
							t = b.$$rawModelValue,
							n = b.$valid,
							r = b.$modelValue,
							i = b.$options && b.$options.allowInvalid;
						b.$$runValidators(t, e, function (e) {
							i || n === e || (b.$modelValue = e ? t : void 0, b.$modelValue !== r && b.$$writeModelToScope())
						})
					}
				}, this.$$runValidators = function (e, t, n) {
					function i() {
						var e = b.$$parserName || "parse";
						return m(f) ? (s(e, null), !0) : (f || (r(b.$validators, function (e, t) {
							s(t, null)
						}), r(b.$asyncValidators, function (e, t) {
							s(t, null)
						})), s(e, f), f)
					}

					function o() {
						var n = !0;
						return r(b.$validators, function (r, i) {
							var o = r(e, t);
							n = n && o, s(i, o)
						}), !!n || (r(b.$asyncValidators, function (e, t) {
							s(t, null)
						}), !1)
					}

					function a() {
						var n = [],
							i = !0;
						r(b.$asyncValidators, function (r, o) {
							var a = r(e, t);
							if (!j(a)) throw Ea("nopromise", "Expected asynchronous validator to return a promise but got '{0}' instead.", a);
							s(o, void 0), n.push(a.then(function () {
								s(o, !0)
							}, function () {
								i = !1, s(o, !1)
							}))
						}), n.length ? c.all(n).then(function () {
							u(i)
						}, p) : u(!0)
					}

					function s(e, t) {
						l === x && b.$setValidity(e, t)
					}

					function u(e) {
						l === x && n(e)
					}
					x++;
					var l = x;
					return i() && o() ? void a() : void u(!1)
				}, this.$commitViewValue = function () {
					var e = b.$viewValue;
					s.cancel(y), (b.$$lastCommittedViewValue !== e || "" === e && b.$$hasNativeValidators) && (b.$$updateEmptyClasses(e), b.$$lastCommittedViewValue = e, b.$pristine && this.$setDirty(), this.$$parseAndValidate())
				}, this.$$parseAndValidate = function () {
					function t() {
						b.$modelValue !== o && b.$$writeModelToScope()
					}
					var n = b.$$lastCommittedViewValue,
						r = n;
					if (f = !m(r) || void 0)
						for (var i = 0; i < b.$parsers.length; i++)
							if (r = b.$parsers[i](r), m(r)) {
								f = !1;
								break
							}
					w(b.$modelValue) && isNaN(b.$modelValue) && (b.$modelValue = $(e));
					var o = b.$modelValue,
						a = b.$options && b.$options.allowInvalid;
					b.$$rawModelValue = r, a && (b.$modelValue = r, t()), b.$$runValidators(r, b.$$lastCommittedViewValue, function (e) {
						a || (b.$modelValue = e ? r : void 0, t())
					})
				}, this.$$writeModelToScope = function () {
					v(e, b.$modelValue), r(b.$viewChangeListeners, function (e) {
						try {
							e()
						} catch (e) {
							t(e)
						}
					})
				}, this.$setViewValue = function (e, t) {
					b.$viewValue = e, b.$options && !b.$options.updateOnDefault || b.$$debounceViewValueCommit(t)
				}, this.$$debounceViewValueCommit = function (t) {
					var n, r = 0,
						i = b.$options;
					i && g(i.debounce) && (n = i.debounce, w(n) ? r = n : w(n[t]) ? r = n[t] : w(n.default) && (r = n.default)), s.cancel(y), r ? y = s(function () {
						b.$commitViewValue()
					}, r) : u.$$phase ? b.$commitViewValue() : e.$apply(function () {
						b.$commitViewValue()
					})
				}, e.$watch(function () {
					var t = $(e);
					if (t !== b.$modelValue && (b.$modelValue === b.$modelValue || t === t)) {
						b.$modelValue = b.$$rawModelValue = t, f = void 0;
						for (var n = b.$formatters, r = n.length, i = t; r--;) i = n[r](i);
						b.$viewValue !== i && (b.$$updateEmptyClasses(i), b.$viewValue = b.$$lastCommittedViewValue = i, b.$render(), b.$$runValidators(t, i, p))
					}
					return t
				})
			}],
			Ta = ["$rootScope", function (e) {
				return {
					restrict: "A",
					require: ["ngModel", "^?form", "^?ngModelOptions"],
					controller: Aa,
					priority: 1,
					compile: function (t) {
						return t.addClass(ya).addClass(xa).addClass(ma), {
							pre: function (e, t, n, r) {
								var i = r[0],
									o = r[1] || i.$$parentForm;
								i.$$setOptions(r[2] && r[2].$options), o.$addControl(i), n.$observe("name", function (e) {
									i.$name !== e && i.$$parentForm.$$renameControl(i, e)
								}), e.$on("$destroy", function () {
									i.$$parentForm.$removeControl(i)
								})
							},
							post: function (t, n, r, i) {
								var o = i[0];
								o.$options && o.$options.updateOn && n.on(o.$options.updateOn, function (e) {
									o.$$debounceViewValueCommit(e && e.type)
								}), n.on("blur", function () {
									o.$touched || (e.$$phase ? t.$evalAsync(o.$setTouched) : t.$apply(o.$setTouched))
								})
							}
						}
					}
				}
			}],
			Oa = /(\s+|^)default(\s+|$)/,
			Ma = function () {
				return {
					restrict: "A",
					controller: ["$scope", "$attrs", function (e, t) {
						var n = this;
						this.$options = R(e.$eval(t.ngModelOptions)), g(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = Zr(this.$options.updateOn.replace(Oa, function () {
							return n.$options.updateOnDefault = !0, " "
						}))) : this.$options.updateOnDefault = !0
					}]
				}
			},
			Na = cr({
				terminal: !0,
				priority: 1e3
			}),
			ja = t("ngOptions"),
			Va = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
			Ia = ["$compile", "$document", "$parse", function (t, i, o) {
				function a(e, t, r) {
					function i(e, t, n, r, i) {
						this.selectValue = e, this.viewValue = t, this.label = n, this.group = r, this.disabled = i
					}

					function a(e) {
						var t;
						if (!c && n(e)) t = e;
						else {
							t = [];
							for (var r in e) e.hasOwnProperty(r) && "$" !== r.charAt(0) && t.push(r)
						}
						return t
					}
					var s = e.match(Va);
					if (!s) throw ja("iexp", "Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}", e, K(t));
					var u = s[5] || s[7],
						c = s[6],
						l = / as /.test(s[0]) && s[1],
						f = s[9],
						h = o(s[2] ? s[1] : u),
						p = l && o(l),
						d = p || h,
						$ = f && o(f),
						v = f ? function (e, t) {
							return $(r, t)
						} : function (e) {
							return Ke(e)
						},
						m = function (e, t) {
							return v(e, k(e, t))
						},
						g = o(s[2] || s[1]),
						y = o(s[3] || ""),
						b = o(s[4] || ""),
						x = o(s[8]),
						w = {},
						k = c ? function (e, t) {
							return w[c] = t, w[u] = e, w
						} : function (e) {
							return w[u] = e, w
						};
					return {
						trackBy: f,
						getTrackByValue: m,
						getWatchables: o(x, function (e) {
							var t = [];
							e = e || [];
							for (var n = a(e), i = n.length, o = 0; o < i; o++) {
								var u = e === n ? o : n[o],
									c = e[u],
									l = k(c, u),
									f = v(c, l);
								if (t.push(f), s[2] || s[1]) {
									var h = g(r, l);
									t.push(h)
								}
								if (s[4]) {
									var p = b(r, l);
									t.push(p)
								}
							}
							return t
						}),
						getOptions: function () {
							for (var e = [], t = {}, n = x(r) || [], o = a(n), s = o.length, u = 0; u < s; u++) {
								var c = n === o ? u : o[u],
									l = n[c],
									h = k(l, c),
									p = d(r, h),
									$ = v(p, h),
									w = g(r, h),
									C = y(r, h),
									S = b(r, h),
									E = new i($, p, w, C, S);
								e.push(E), t[$] = E
							}
							return {
								items: e,
								selectValueMap: t,
								getOptionFromViewValue: function (e) {
									return t[m(e)]
								},
								getViewValueFromOption: function (e) {
									return f ? Wr.copy(e.viewValue) : e.viewValue
								}
							}
						}
					}
				}

				function s(e, n, o, s) {
					function l(e, t) {
						var n = u.cloneNode(!1);
						t.appendChild(n), f(e, n)
					}

					function f(e, t) {
						e.element = t, t.disabled = e.disabled, e.label !== t.label && (t.label = e.label, t.textContent = e.label), e.value !== t.value && (t.value = e.selectValue)
					}

					function h() {
						var e = k && d.readValue();
						if (k)
							for (var t = k.items.length - 1; t >= 0; t--) {
								var r = k.items[t];
								Fe(r.group ? r.element.parentNode : r.element)
							}
						k = C.getOptions();
						var i = {};
						if (x && n.prepend(p), k.items.forEach(function (e) {
								var t;
								g(e.group) ? (t = i[e.group], t || (t = c.cloneNode(!1), S.appendChild(t), t.label = e.group, i[e.group] = t), l(e, t)) : l(e, S)
							}), n[0].appendChild(S), $.$render(), !$.$isEmpty(e)) {
							var o = d.readValue(),
								a = C.trackBy || v;
							(a ? U(e, o) : e === o) || ($.$setViewValue(o), $.$render())
						}
					}
					for (var p, d = s[0], $ = s[1], v = o.multiple, m = 0, y = n.children(), b = y.length; m < b; m++)
						if ("" === y[m].value) {
							p = y.eq(m);
							break
						}
					var x = !!p,
						w = _r(u.cloneNode(!1));
					w.val("?");
					var k, C = a(o.ngOptions, n, e),
						S = i[0].createDocumentFragment(),
						E = function () {
							x || n.prepend(p), n.val(""), p.prop("selected", !0), p.attr("selected", !0)
						},
						A = function () {
							x || p.remove()
						},
						T = function () {
							n.prepend(w), n.val("?"), w.prop("selected", !0), w.attr("selected", !0)
						},
						O = function () {
							w.remove()
						};
					v ? ($.$isEmpty = function (e) {
						return !e || 0 === e.length
					}, d.writeValue = function (e) {
						k.items.forEach(function (e) {
							e.element.selected = !1
						}), e && e.forEach(function (e) {
							var t = k.getOptionFromViewValue(e);
							t && (t.element.selected = !0)
						})
					}, d.readValue = function () {
						var e = n.val() || [],
							t = [];
						return r(e, function (e) {
							var n = k.selectValueMap[e];
							n && !n.disabled && t.push(k.getViewValueFromOption(n))
						}), t
					}, C.trackBy && e.$watchCollection(function () {
						if (Yr($.$viewValue)) return $.$viewValue.map(function (e) {
							return C.getTrackByValue(e)
						})
					}, function () {
						$.$render()
					})) : (d.writeValue = function (e) {
						var t = k.getOptionFromViewValue(e);
						t ? (n[0].value !== t.selectValue && (O(), A(), n[0].value = t.selectValue, t.element.selected = !0), t.element.setAttribute("selected", "selected")) : null === e || x ? (O(), E()) : (A(), T())
					}, d.readValue = function () {
						var e = k.selectValueMap[n.val()];
						return e && !e.disabled ? (A(), O(), k.getViewValueFromOption(e)) : null
					}, C.trackBy && e.$watch(function () {
						return C.getTrackByValue($.$viewValue)
					}, function () {
						$.$render()
					})), x ? (p.remove(), t(p)(e), p.removeClass("ng-scope")) : p = _r(u.cloneNode(!1)), n.empty(), h(), e.$watchCollection(C.getWatchables, h)
				}
				var u = e.document.createElement("option"),
					c = e.document.createElement("optgroup");
				return {
					restrict: "A",
					terminal: !0,
					require: ["select", "ngModel"],
					link: {
						pre: function (e, t, n, r) {
							r[0].registerOption = p
						},
						post: s
					}
				}
			}],
			Ha = ["$locale", "$interpolate", "$log", function (e, t, n) {
				var i = /{}/g,
					o = /^when(Minus)?(.+)$/;
				return {
					link: function (a, s, u) {
						function c(e) {
							s.text(e || "")
						}
						var l, f = u.count,
							h = u.$attr.when && s.attr(u.$attr.when),
							d = u.offset || 0,
							$ = a.$eval(h) || {},
							v = {},
							g = t.startSymbol(),
							y = t.endSymbol(),
							b = g + f + "-" + d + y,
							x = Wr.noop;
						r(u, function (e, t) {
							var n = o.exec(t);
							if (n) {
								var r = (n[1] ? "-" : "") + jr(n[2]);
								$[r] = s.attr(u.$attr[t])
							}
						}), r($, function (e, n) {
							v[n] = t(e.replace(i, b))
						}), a.$watch(f, function (t) {
							var r = parseFloat(t),
								i = isNaN(r);
							if (i || r in $ || (r = e.pluralCat(r - d)), r !== l && !(i && w(l) && isNaN(l))) {
								x();
								var o = v[r];
								m(o) ? (null != t && n.debug("ngPluralize: no rule defined for '" + r + "' in " + h), x = p, c()) : x = a.$watch(o, c), l = r
							}
						})
					}
				}
			}],
			Da = ["$parse", "$animate", "$compile", function (e, i, o) {
				var a = "$$NG_REMOVED",
					s = t("ngRepeat"),
					u = function (e, t, n, r, i, o, a) {
						e[n] = r, i && (e[i] = o), e.$index = t, e.$first = 0 === t, e.$last = t === a - 1, e.$middle = !(e.$first || e.$last), e.$odd = !(e.$even = 0 === (1 & t))
					},
					c = function (e) {
						return e.clone[0]
					},
					l = function (e) {
						return e.clone[e.clone.length - 1]
					};
				return {
					restrict: "A",
					multiElement: !0,
					transclude: "element",
					priority: 1e3,
					terminal: !0,
					$$tlb: !0,
					compile: function (t, f) {
						var h = f.ngRepeat,
							p = o.$$createComment("end ngRepeat", h),
							d = h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);
						if (!d) throw s("iexp", "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", h);
						var $ = d[1],
							v = d[2],
							m = d[3],
							g = d[4];
						if (d = $.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/), !d) throw s("iidexp", "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", $);
						var y = d[3] || d[1],
							b = d[2];
						if (m && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(m) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(m))) throw s("badident", "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.", m);
						var x, w, k, C, S = {
							$id: Ke
						};
						return g ? x = e(g) : (k = function (e, t) {
								return Ke(t)
							}, C = function (e) {
								return e
							}),
							function (e, t, o, f, d) {
								x && (w = function (t, n, r) {
									return b && (S[b] = t), S[y] = n, S.$index = r, x(e, S)
								});
								var $ = $e();
								e.$watchCollection(v, function (o) {
									var f, v, g, x, S, E, A, T, O, M, N, j, V = t[0],
										I = $e();
									if (m && (e[m] = o), n(o)) O = o, T = w || k;
									else {
										T = w || C, O = [];
										for (var H in o) Nr.call(o, H) && "$" !== H.charAt(0) && O.push(H)
									}
									for (x = O.length, N = new Array(x), f = 0; f < x; f++)
										if (S = o === O ? f : O[f], E = o[S], A = T(S, E, f), $[A]) M = $[A], delete $[A], I[A] = M, N[f] = M;
										else {
											if (I[A]) throw r(N, function (e) {
												e && e.scope && ($[e.id] = e)
											}), s("dupes", "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}", h, A, E);
											N[f] = {
												id: A,
												scope: void 0,
												clone: void 0
											}, I[A] = !0
										}
									for (var D in $) {
										if (M = $[D], j = de(M.clone), i.leave(j), j[0].parentNode)
											for (f = 0, v = j.length; f < v; f++) j[f][a] = !0;
										M.scope.$destroy()
									}
									for (f = 0; f < x; f++)
										if (S = o === O ? f : O[f], E = o[S], M = N[f], M.scope) {
											g = V;
											do g = g.nextSibling; while (g && g[a]);
											c(M) != g && i.move(de(M.clone), null, V), V = l(M), u(M.scope, f, y, E, b, S, x)
										} else d(function (e, t) {
											M.scope = t;
											var n = p.cloneNode(!1);
											e[e.length++] = n, i.enter(e, null, V), V = n, M.clone = e, I[M.id] = M, u(M.scope, f, y, E, b, S, x)
										});
									$ = I
								})
							}
					}
				}
			}],
			_a = "ng-hide",
			Pa = "ng-hide-animate",
			Ra = ["$animate", function (e) {
				return {
					restrict: "A",
					multiElement: !0,
					link: function (t, n, r) {
						t.$watch(r.ngShow, function (t) {
							e[t ? "removeClass" : "addClass"](n, _a, {
								tempClasses: Pa
							})
						})
					}
				}
			}],
			La = ["$animate", function (e) {
				return {
					restrict: "A",
					multiElement: !0,
					link: function (t, n, r) {
						t.$watch(r.ngHide, function (t) {
							e[t ? "addClass" : "removeClass"](n, _a, {
								tempClasses: Pa
							})
						})
					}
				}
			}],
			Ua = cr(function (e, t, n) {
				e.$watch(n.ngStyle, function (e, n) {
					n && e !== n && r(n, function (e, n) {
						t.css(n, "")
					}), e && t.css(e)
				}, !0)
			}),
			qa = ["$animate", "$compile", function (e, t) {
				return {
					require: "ngSwitch",
					controller: ["$scope", function () {
						this.cases = {}
					}],
					link: function (n, i, o, a) {
						var s = o.ngSwitch || o.on,
							u = [],
							c = [],
							l = [],
							f = [],
							h = function (e, t) {
								return function () {
									e.splice(t, 1)
								}
							};
						n.$watch(s, function (n) {
							var i, o;
							for (i = 0, o = l.length; i < o; ++i) e.cancel(l[i]);
							for (l.length = 0, i = 0, o = f.length; i < o; ++i) {
								var s = de(c[i].clone);
								f[i].$destroy();
								var p = l[i] = e.leave(s);
								p.then(h(l, i))
							}
							c.length = 0, f.length = 0, (u = a.cases["!" + n] || a.cases["?"]) && r(u, function (n) {
								n.transclude(function (r, i) {
									f.push(i);
									var o = n.element;
									r[r.length++] = t.$$createComment("end ngSwitchWhen");
									var a = {
										clone: r
									};
									c.push(a), e.enter(r, o.parent(), o)
								})
							})
						})
					}
				}
			}],
			Fa = cr({
				transclude: "element",
				priority: 1200,
				require: "^ngSwitch",
				multiElement: !0,
				link: function (e, t, n, r, i) {
					r.cases["!" + n.ngSwitchWhen] = r.cases["!" + n.ngSwitchWhen] || [], r.cases["!" + n.ngSwitchWhen].push({
						transclude: i,
						element: t
					})
				}
			}),
			Ba = cr({
				transclude: "element",
				priority: 1200,
				require: "^ngSwitch",
				multiElement: !0,
				link: function (e, t, n, r, i) {
					r.cases["?"] = r.cases["?"] || [], r.cases["?"].push({
						transclude: i,
						element: t
					})
				}
			}),
			za = t("ngTransclude"),
			Wa = cr({
				restrict: "EAC",
				link: function (e, t, n, r, i) {
					function o(e) {
						e.length && (t.empty(), t.append(e))
					}
					if (n.ngTransclude === n.$attr.ngTransclude && (n.ngTransclude = ""), !i) throw za("orphan", "Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}", K(t));
					var a = n.ngTransclude || n.ngTranscludeSlot;
					i(o, null, a)
				}
			}),
			Ga = ["$templateCache", function (e) {
				return {
					restrict: "E",
					terminal: !0,
					compile: function (t, n) {
						if ("text/ng-template" == n.type) {
							var r = n.id,
								i = t[0].text;
							e.put(r, i)
						}
					}
				}
			}],
			Ya = {
				$setViewValue: p,
				$render: p
			},
			Ja = ["$element", "$scope", function (t, n) {
				var r = this,
					i = new Xe;
				r.ngModelCtrl = Ya, r.unknownOption = _r(e.document.createElement("option")), r.renderUnknownOption = function (e) {
					var n = "? " + Ke(e) + " ?";
					r.unknownOption.val(n), t.prepend(r.unknownOption), t.val(n)
				}, n.$on("$destroy", function () {
					r.renderUnknownOption = p
				}), r.removeUnknownOption = function () {
					r.unknownOption.parent() && r.unknownOption.remove()
				}, r.readValue = function () {
					return r.removeUnknownOption(), t.val()
				}, r.writeValue = function (e) {
					r.hasOption(e) ? (r.removeUnknownOption(), t.val(e), "" === e && r.emptyOption.prop("selected", !0)) : null == e && r.emptyOption ? (r.removeUnknownOption(), t.val("")) : r.renderUnknownOption(e)
				}, r.addOption = function (e, t) {
					if (t[0].nodeType !== si) {
						he(e, '"option value"'), "" === e && (r.emptyOption = t);
						var n = i.get(e) || 0;
						i.put(e, n + 1), r.ngModelCtrl.$render(), Tr(t)
					}
				}, r.removeOption = function (e) {
					var t = i.get(e);
					t && (1 === t ? (i.remove(e), "" === e && (r.emptyOption = void 0)) : i.put(e, t - 1))
				}, r.hasOption = function (e) {
					return !!i.get(e)
				}, r.registerOption = function (e, t, n, i, o) {
					if (i) {
						var a;
						n.$observe("value", function (e) {
							g(a) && r.removeOption(a), a = e, r.addOption(e, t)
						})
					} else o ? e.$watch(o, function (e, i) {
						n.$set("value", e), i !== e && r.removeOption(i), r.addOption(e, t)
					}) : r.addOption(n.value, t);
					t.on("$destroy", function () {
						r.removeOption(n.value), r.ngModelCtrl.$render()
					})
				}
			}],
			Za = function () {
				function e(e, t, n, i) {
					var o = i[1];
					if (o) {
						var a = i[0];
						if (a.ngModelCtrl = o, t.on("change", function () {
								e.$apply(function () {
									o.$setViewValue(a.readValue())
								})
							}), n.multiple) {
							a.readValue = function () {
								var e = [];
								return r(t.find("option"), function (t) {
									t.selected && e.push(t.value)
								}), e
							}, a.writeValue = function (e) {
								var n = new Xe(e);
								r(t.find("option"), function (e) {
									e.selected = g(n.get(e.value))
								})
							};
							var s, u = NaN;
							e.$watch(function () {
								u !== o.$viewValue || U(s, o.$viewValue) || (s = L(o.$viewValue), o.$render()), u = o.$viewValue
							}), o.$isEmpty = function (e) {
								return !e || 0 === e.length
							}
						}
					}
				}

				function t(e, t, n, r) {
					var i = r[1];
					if (i) {
						var o = r[0];
						i.$render = function () {
							o.writeValue(i.$viewValue)
						}
					}
				}
				return {
					restrict: "E",
					require: ["select", "?ngModel"],
					controller: Ja,
					priority: 1,
					link: {
						pre: e,
						post: t
					}
				}
			},
			Ka = ["$interpolate", function (e) {
				return {
					restrict: "E",
					priority: 100,
					compile: function (t, n) {
						if (g(n.value)) var r = e(n.value, !0);
						else {
							var i = e(t.text(), !0);
							i || n.$set("value", t.text())
						}
						return function (e, t, n) {
							var o = "$selectController",
								a = t.parent(),
								s = a.data(o) || a.parent().data(o);
							s && s.registerOption(e, t, n, r, i)
						}
					}
				}
			}],
			Xa = $({
				restrict: "E",
				terminal: !1
			}),
			Qa = function () {
				return {
					restrict: "A",
					require: "?ngModel",
					link: function (e, t, n, r) {
						r && (n.required = !0, r.$validators.required = function (e, t) {
							return !n.required || !r.$isEmpty(t)
						}, n.$observe("required", function () {
							r.$validate()
						}))
					}
				}
			},
			es = function () {
				return {
					restrict: "A",
					require: "?ngModel",
					link: function (e, n, r, i) {
						if (i) {
							var o, a = r.ngPattern || r.pattern;
							r.$observe("pattern", function (e) {
								if (x(e) && e.length > 0 && (e = new RegExp("^" + e + "$")), e && !e.test) throw t("ngPattern")("noregexp", "Expected {0} to be a RegExp but was {1}. Element: {2}", a, e, K(n));
								o = e || void 0, i.$validate()
							}), i.$validators.pattern = function (e, t) {
								return i.$isEmpty(t) || m(o) || o.test(t)
							}
						}
					}
				}
			},
			ts = function () {
				return {
					restrict: "A",
					require: "?ngModel",
					link: function (e, t, n, r) {
						if (r) {
							var i = -1;
							n.$observe("maxlength", function (e) {
								var t = f(e);
								i = isNaN(t) ? -1 : t, r.$validate()
							}), r.$validators.maxlength = function (e, t) {
								return i < 0 || r.$isEmpty(t) || t.length <= i
							}
						}
					}
				}
			},
			ns = function () {
				return {
					restrict: "A",
					require: "?ngModel",
					link: function (e, t, n, r) {
						if (r) {
							var i = 0;
							n.$observe("minlength", function (e) {
								i = f(e) || 0, r.$validate()
							}), r.$validators.minlength = function (e, t) {
								return r.$isEmpty(t) || t.length >= i
							}
						}
					}
				}
			};
		return e.angular.bootstrap ? void(e.console && console.log("WARNING: Tried to load angular more than once.")) : (ce(), ye(Wr), Wr.module("ngLocale", [], ["$provide", function (e) {
			function t(e) {
				e += "";
				var t = e.indexOf(".");
				return t == -1 ? 0 : e.length - t - 1
			}

			function n(e, n) {
				var r = n;
				void 0 === r && (r = Math.min(t(e), 3));
				var i = Math.pow(10, r),
					o = (e * i | 0) % i;
				return {
					v: r,
					f: o
				}
			}
			var r = {
				ZERO: "zero",
				ONE: "one",
				TWO: "two",
				FEW: "few",
				MANY: "many",
				OTHER: "other"
			};
			e.value("$locale", {
				DATETIME_FORMATS: {
					AMPMS: ["AM", "PM"],
					DAY: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
					ERANAMES: ["Before Christ", "Anno Domini"],
					ERAS: ["BC", "AD"],
					FIRSTDAYOFWEEK: 6,
					MONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
					SHORTDAY: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
					SHORTMONTH: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
					STANDALONEMONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
					WEEKENDRANGE: [5, 6],
					fullDate: "EEEE, MMMM d, y",
					longDate: "MMMM d, y",
					medium: "MMM d, y h:mm:ss a",
					mediumDate: "MMM d, y",
					mediumTime: "h:mm:ss a",
					short: "M/d/yy h:mm a",
					shortDate: "M/d/yy",
					shortTime: "h:mm a"
				},
				NUMBER_FORMATS: {
					CURRENCY_SYM: "$",
					DECIMAL_SEP: ".",
					GROUP_SEP: ",",
					PATTERNS: [{
						gSize: 3,
						lgSize: 3,
						maxFrac: 3,
						minFrac: 0,
						minInt: 1,
						negPre: "-",
						negSuf: "",
						posPre: "",
						posSuf: ""
					}, {
						gSize: 3,
						lgSize: 3,
						maxFrac: 2,
						minFrac: 2,
						minInt: 1,
						negPre: "-¤",
						negSuf: "",
						posPre: "¤",
						posSuf: ""
					}]
				},
				id: "en-us",
				localeID: "en_US",
				pluralCat: function (e, t) {
					var i = 0 | e,
						o = n(e, t);
					return 1 == i && 0 == o.v ? r.ONE : r.OTHER
				}
			})
		}]), void _r(e.document).ready(function () {
			ie(e.document, oe)
		}))
	}(window), !window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>')
}, function (e, t) {
	"use strict";

	function n(e) {
		if (Array.isArray(e)) {
			for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
			return n
		}
		return Array.from(e)
	}

	function r(e, t) {
		if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
	}
	var i = function () {
		function e(e, t) {
			for (var n = 0; n < t.length; n++) {
				var r = t[n];
				r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r)
			}
		}
		return function (t, n, r) {
			return n && e(t.prototype, n), r && e(t, r), t
		}
	}();
	/*!
	 * Ark Contextual Help v1.0.0 (2018-03-01)
	 * http://ark.genesys.com
	 * Copyright (c) 2018 David Cheas <david.cheas@genesys.com>; */
	! function (e) {
		e.module("ark.contextualHelp", ["ark.contextualHelp.templates"])
	}(angular),
	function (e) {
		var t = {
			template: '\n      <a href ng-click="$ctrl.openHelp()" class="ark-contextual-help-button">\n        <span class="icon-help"></span>\n      </a>\n    ',
			controller: ["ArkContextualHelpService", function (e) {
				"ngInject";
				this.openHelp = e.openHelp.bind(e)
			}]
		};
		e.module("ark.contextualHelp").component("arkContextualHelpButton", t)
	}(angular),
	function (e) {
		var t = {
			bindings: {
				config: "<",
				contextName: "<"
			},
			templateUrl: "ark-contextual-help/ark-contextual-help.html",
			controller: "ArkContextualHelpController"
		};
		e.module("ark.contextualHelp").component("arkContextualHelp", t)
	}(angular),
	function (e) {
		function t(t, n, r, i, o, a) {
			"ngInject";
			var s = this;
			s.initialize = !1, s.sections = {
				index: "index",
				article: "article",
				search: "search"
			}, s.currentSection = s.sections.index, s.isLoading = !1, s.searchTerm = "", s.searchResults = [], s.scrollTo = "", s.userTrail = [], s.openHelp = o.openHelp.bind(o), s.closeHelp = o.closeHelp.bind(o), s.$onChanges = function (e) {
				e.config && e.config.currentValue && o.init(s.config, e.contextName && e.contextName.currentValue || s.contextName, function (e) {
					var t = e.config,
						n = e.context;
					s.config = t, s.currentContext = n, s.init(), s.currentContext && 1 === s.currentContext.length && "internal-link" === s.currentContext[0].type && s.loadHelpContent(s.currentContext[0].url, null, !1)
				}), e.contextName && !e.contextName.isFirstChange() && e.contextName.currentValue && (s.currentContext = o.setContext(e.contextName.currentValue), s.currentContext && 1 === s.currentContext.length ? s.loadHelpContent(s.currentContext[0].url, null, !1) : s.currentSection = s.sections.index)
			}, s.init = function () {
				s.initialize || (s.initialize = !0, s.config.persistState || o.addEventListener("open", s.searchCancel), o.addEventListener("afterOpen", s.setSize), o.addEventListener("setContext", s.searchCancel))
			}, s.hideArticle = function () {
				0 === s.searchResults.length ? (s.userTrail.length = 0, s.currentSection = s.sections.index) : s.currentSection = s.sections.search
			}, s.previousPage = function () {
				if (s.userTrail.pop(), s.userTrail.length < 1) s.hideArticle();
				else {
					var e = s.userTrail[s.userTrail.length - 1];
					s.loadHelpContent(e.url, e.scrollTo, !1)
				}
			}, s.loadHelpContent = function (t, i) {
				var a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
				return e.isDefined(t) ? (s.isLoading = !0, s.currentUrl = t, void n.get(o._updateQueryStringParam(t, "action", "helprender")).then(function (e) {
					if (s.isLoading = !1, s.currentSection = s.sections.article, s.wikiContent = e.data, s.scrollTo = i, a) {
						var n = {
							url: t,
							scrollTo: i
						};
						s.userTrail.push(n)
					}
				}, function (e) {
					r.debug("There was an error, response:", e), s.isLoading = !1
				})) : void r.debug("Input URL Empty")
			}, s.scrollTop = function (e) {
				e.indexOf("#") === -1 && (e = "#" + e), e = e.replace(/(:|\.|\[|\]|,)/g, "\\$1");
				var n = t[0].querySelectorAll(".help-body"),
					r = n[0].getBoundingClientRect().top + 5,
					i = n[0].scrollTop;
				u(n[0], i + t[0].querySelectorAll(e)[0].getBoundingClientRect().top - r, 300)
			}, s.search = function (e) {
				s.isLoading = !0, a.search(e).then(function (t) {
					s.isLoading = !1, s.currentSection = s.sections.search, s.searchResults = t, s.lastSearchQuery = e
				}, function (e) {
					r.debug("Error:", e), s.isLoading = !1
				})
			}, s.searchCancel = function () {
				s.searchTerm = "", s.searchResults.length = 0, s.userTrail.length = 0, s.currentSection = s.sections.index
			}, s.setSize = function () {
				e.element(document.querySelector(".ark-contextual-help")).css({
					width: s.config.width,
					height: s.config.height
				})
			};
			var u = function e(t, n) {
				var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1e3;
				if (!(r <= 0)) {
					var o = n - t.scrollTop,
						a = o / r * 10;
					i(function () {
						t.scrollTop = t.scrollTop + a, t.scrollTop !== n && e(t, n, r - 10)
					}, 10)
				}
			}
		}
		t.$inject = ["$element", "$http", "$log", "$timeout", "ArkContextualHelpService", "ArkHelpSearchService"], e.module("ark.contextualHelp").controller("ArkContextualHelpController", t)
	}(angular),
	function (e) {
		function t() {
			return n
		}
		var n = function e() {
			r(this, e), this.baseApiUrl = "https://docs.genesys.com/api.php?action=ctxhelp", this.setupUrl = this.baseApiUrl + "&format=json&item=widget", this.searchUrl = this.baseApiUrl + "&item=search&query={query}", this.product = "", this.version = "", this.locale = "en-US", this.role = "", this.privileges = "", this.staticLinks = [], this.height = "760px", this.width = "448px", this.contexts = null, this.searchProduct = "", this.searchVersion = "", this.searchManual = "", this._currentContextName = "", this._currentContext = {}, this.panelTitle = "Ark Help", this.showPanel = !1, this.draggable = !0, this.resizable = !0, this.persistState = !1, this.hideCloseButton = !1, this.hideWidgetTitle = !1
		};
		e.module("ark.contextualHelp").factory("ArkContextualHelpModel", t)
	}(angular),
	function (e) {
		var t = function () {
			function t(e, n, i, o) {
				"ngInject";
				r(this, t), this.config = new e, this.$http = n, this.$window = i, this.$log = o, this._logPrefix = "[Ark Contextual Help]", this._events = []
			}
			return t.$inject = ["ArkContextualHelpModel", "$http", "$window", "$log"], i(t, [{
				key: "init",
				value: function (t, n, r) {
					var i = this;
					t.baseApiUrl && (t.setupUrl = t.baseApiUrl + "&format=json&item=widget", t.searchUrl = t.baseApiUrl + "&item=search&query={query}"), this.config = e.extend({}, this.config, t), this.setContextName(n), this._obtainSetup().then(function (e) {
						e && (i.config.contexts = e.contexts, e.configuration && ["search_product", "search_version", "search_manual"].forEach(function (t) {
							e.configuration[t] && (i.config[i._camelCase(t)] = e.configuration[t])
						}));
						var t = i.loadContext(n);
						r && r({
							config: i.config,
							context: t
						})
					})
				}
			}, {
				key: "setContextName",
				value: function (e) {
					this.config._currentContextName = e
				}
			}, {
				key: "setContext",
				value: function (e) {
					this.setContextName(e);
					var t = this.loadContext(e);
					return t && this._triggerEvents("setContext"), t
				}
			}, {
				key: "loadContext",
				value: function (e) {
					return this.config.contexts && this.config.contexts[e] ? (this.config._currentContext = this.config.contexts[e], this.config._currentContext) : (this.$log.debug(this._logPrefix + " Context " + e + " does not exist"), null)
				}
			}, {
				key: "addEventListener",
				value: function (e, t) {
					this._events = [].concat(n(this._events), [{
						event: e,
						callback: t
					}])
				}
			}, {
				key: "openHelp",
				value: function () {
					this.config.showPanel = !0, this._triggerEvents("open");
					var e = this;
					setTimeout(function () {
						e._triggerEvents("afterOpen")
					}, 0)
				}
			}, {
				key: "closeHelp",
				value: function () {
					this.config.showPanel = !1, this._triggerEvents("close")
				}
			}, {
				key: "_appendProductInfotToUrl",
				value: function (e) {
					var t = this,
						n = {};
					return ["product", "version", "locale", "role", "privileges"].forEach(function (e) {
						t.config[e] && t.config[e].length > 0 && (n[e] = t.config[e])
					}), e + (e.indexOf("?") >= 0 ? "&" : "?") + Object.keys(n).map(function (e) {
						return encodeURIComponent(e) + "=" + encodeURIComponent(n[e])
					}).join("&")
				}
			}, {
				key: "_triggerEvents",
				value: function (e) {
					this._events.filter(function (t) {
						return t.event === e
					}).forEach(function (e) {
						return e.callback && e.callback()
					})
				}
			}, {
				key: "_obtainSetup",
				value: function () {
					var e = this,
						t = this._appendProductInfotToUrl(this.config.setupUrl);
					return this.$http.get(t).then(function (e) {
						return e.data && e.data.ctxhelp && e.data.ctxhelp.data || {}
					}, function (t) {
						return e.$log.error(e._logPrefix + " Cannot get component configuration", t)
					})
				}
			}, {
				key: "_camelCase",
				value: function (e) {
					return e.replace(/^.|_./g, function (e, t) {
						return 0 === t ? e.toLowerCase() : e.substr(1).toUpperCase()
					})
				}
			}, {
				key: "_updateQueryStringParam",
				value: function (e, t, n) {
					var r = new RegExp("([?&])" + t + "=.*?(&|$)", "i"),
						i = e.indexOf("?") !== -1 ? "&" : "?",
						o = "",
						a = e.indexOf("#");
					return a !== -1 && (o = e.substring(a), e = e.substring(0, a)), (e.match(r) ? e.replace(r, "$1" + (t + "=" + n) + "$2") : "" + e + i + t + "=" + n) + o
				}
			}]), t
		}();
		e.module("ark.contextualHelp").service("ArkContextualHelpService", t)
	}(angular),
	function (e) {
		e.module("ark.contextualHelp").directive("arkDraggableHandler", function () {
			return {
				restrict: "A",
				scope: !1,
				require: "^^arkDraggable",
				link: function (e, t, n, r) {
					r.enableDraggable && (t.css("cursor", "move"), t.on("mousedown", function (e) {
						0 === e.button && r.mousedown(e)
					}))
				}
			}
		})
	}(angular),
	function (e) {
		e.module("ark.contextualHelp").directive("arkDraggableHandler", function () {
			return {
				restrict: "A",
				scope: !1,
				require: "^^arkDraggable",
				link: function (e, t, n, r) {
					r.enableDraggable && (t.css("cursor", "move"), t.on("mousedown", function (e) {
						0 === e.button && r.mousedown(e)
					}))
				}
			}
		})
	}(angular),
	function (e) {
		function t(e, t, n, r, i) {
			"ngInject";
			var o = this;
			if (o.enableDraggable = i(n.arkDraggable)(e), o.enableDraggable = void 0 === o.enableDraggable || o.enableDraggable, o.enableDraggable) {
				var a = 0,
					s = 0,
					u = r.innerHeight,
					c = r.document.body.clientWidth,
					l = r.document.body.getBoundingClientRect().top,
					f = t[0].getBoundingClientRect().height,
					h = t[0].getBoundingClientRect().width,
					p = null;
				o.mousedown = function (e) {
					e.preventDefault(), e.stopPropagation(), a = t[0].getBoundingClientRect().left, s = t[0].getBoundingClientRect().top, p = e, document.addEventListener("mousemove", o.mousemove), document.addEventListener("mouseup", o.mouseup), document.addEventListener("mouseleave", o.mouseup)
				}, o.mousemove = function (e) {
					e.preventDefault(), e.stopPropagation();
					var t = e.screenX - p.screenX,
						n = e.screenY - p.screenY;
					a += t, s += n, p = e, o.placeElement(a, s)
				}, o.mouseup = function (e) {
					e.preventDefault(), e.stopPropagation(), o.preventOverflow(), document.removeEventListener("mousemove", o.mousemove), document.removeEventListener("mouseup", o.mouseup), document.removeEventListener("mouseleave", o.mouseup)
				}, o.placeElement = function (e, n) {
					t.css({
						left: e + "px",
						top: n + "px"
					})
				}, o.preventOverflow = function () {
					var e = t[0].getBoundingClientRect().left,
						n = t[0].getBoundingClientRect().top,
						r = t[0].getBoundingClientRect().right,
						i = t[0].getBoundingClientRect().bottom;
					(e < 0 || r > c || n < l || i > u) && (a = e < 0 ? 0 : a, a = r > c ? c - h : a, s = n < l ? l : s, s = i > u ? u - f : s, o.placeElement(a, s))
				}, o.updateBoundaries = function () {
					u = r.innerHeight, c = r.document.body.clientWidth, l = r.document.body.getBoundingClientRect().top, f = t[0].getBoundingClientRect().height, h = t[0].getBoundingClientRect().width
				}
			}
		}
		t.$inject = ["$scope", "$element", "$attrs", "$window", "$parse"], e.module("ark.contextualHelp").controller("ArkDraggableController", t)
	}(angular),
	function (e) {
		var t = function (t) {
			return {
				restrict: "A",
				scope: !0,
				controller: "ArkDraggableController",
				link: function (n, r, i, o) {
					o.enableDraggable && (r.addClass("ark-draggable"), e.element(t).bind("resize", function () {
						o.updateBoundaries(), o.preventOverflow()
					}), n.$watch(function () {
						return [r[0].offsetWidth, r[0].offsetHeight]
					}, function (e) {
						null !== e && "undefined" != typeof e && (e[0] > 0 || e[1] > 0) && (o.updateBoundaries(), o.preventOverflow())
					}, !0))
				}
			}
		};
		t.$inject = ["$window"], e.module("ark.contextualHelp").directive("arkDraggable", t)
	}(angular),
	function (e) {
		var t = {
			bindings: {
				helpLinks: "<",
				staticLinks: "<",
				loadHelpContent: "="
			},
			templateUrl: "ark-help-index/ark-help-index.html"
		};
		e.module("ark.contextualHelp").component("arkHelpIndex", t)
	}(angular),
	function (e) {
		var t = {
			bindings: {
				link: "<",
				loadHelpContent: "="
			},
			templateUrl: "ark-help-link/ark-help-link.html",
			controller: "ArkHelpLinkController"
		};
		e.module("ark.contextualHelp").component("arkHelpLink", t)
	}(angular),
	function (e) {
		function t(t, n, r) {
			"ngInject";

			function i(e) {
				r.cancel(a), a = r(function () {
					u.css("left", e.pageX + "px"), u.css("top", e.pageY + 26 + "px"), u.css("visibility", "visible"), s.off("mousemove", i)
				}, 1e3)
			}
			var o = this,
				a = null,
				s = null,
				u = null;
			o.$onChanges = function (e) {
				e.link && e.link.currentValue && (o.link.name = o.link.name || o.link.display_name)
			}, r(function () {
				s = e.element(n[0].querySelector("a")), u = e.element(n[0].querySelector(".link-tooltip")), t.$watch(function () {
					return s[0].offsetWidth
				}, function (e) {
					null !== e && "undefined" != typeof e && (s[0].scrollWidth > e ? o.showToolTip = !0 : o.showToolTip = !1)
				}), s.on("mouseenter", function () {
					s.on("mousemove", i)
				}), s.on("mouseleave", function () {
					r.cancel(a), u.css("visibility", "hidden")
				})
			})
		}
		t.$inject = ["$scope", "$element", "$timeout"], e.module("ark.contextualHelp").controller("ArkHelpLinkController", t)
	}(angular),
	function (e) {
		var t = {
			template: '\n      <div class="loading-icon">\n        <div class="spinner-container">\n          <div class="spin-circle"></div>\n          <div class="spin-inner-circle"></div>\n        </div>\n      </div>\n    '
		};
		e.module("ark.contextualHelp").component("arkHelpLoading", t)
	}(angular),
	function (e) {
		var t = {
			bindings: {
				searchTerm: "=",
				onSearch: "=",
				onCancel: "="
			},
			templateUrl: "ark-help-search-box/ark-help-search-box.html",
			controller: "ArkHelpSearchBoxController"
		};
		e.module("ark.contextualHelp").component("arkHelpSearchBox", t)
	}(angular),
	function (e) {
		function t(e) {
			"ngInject";
			var t = this;
			t.model = {
				searchTerm: ""
			}, t.search = function (e) {
				e && e.trim().length > 0 && t.onSearch && t.onSearch(e)
			}, t.searchCancel = function () {
				t.onCancel && t.onCancel()
			}, e.on("mousedown", function (e) {
				e.stopPropagation()
			})
		}
		t.$inject = ["$element"], e.module("ark.contextualHelp").controller("ArkHelpSearchBoxController", t)
	}(angular),
	function (e) {
		var t = {
			bindings: {
				results: "<",
				searchQuery: "<",
				loadHelpContent: "="
			},
			templateUrl: "ark-help-search-results/ark-help-search-results.html"
		};
		e.module("ark.contextualHelp").component("arkHelpSearchResults", t)
	}(angular),
	function (e) {
		var t = function () {
			function e(t, n, i) {
				"ngInject";
				r(this, e), this.service = t, this.$http = n, this.$log = i
			}
			return e.$inject = ["ArkContextualHelpService", "$http", "$log"], i(e, [{
				key: "search",
				value: function (e) {
					var t = this,
						n = this.buildSearchUrl(e),
						r = {
							params: {
								format: "json"
							},
							method: "get",
							url: n
						};
					return this.$log.debug("Searching for " + e + " at " + n), this.$http(r).then(function (e) {
						return e.data && e.data.error ? (t.$log.debug("There was an error with the Search API: " + (e.data.error.info || e.data.error.message)), []) : e.data && e.data.ctxhelp && e.data.ctxhelp.data || []
					}, function (e) {
						return t.$log.debug("There was an error with the Search API: " + (e.info || e.message))
					})
				}
			}, {
				key: "buildSearchUrl",
				value: function (e) {
					var t = this.service.config,
						n = t.searchUrl.replace("{query}", encodeURIComponent(e)),
						r = {
							product: "searchProduct",
							version: "searchVersion",
							manual: "searchManual",
							locale: "locale"
						};
					return n + (n.indexOf("?") >= 0 ? "&" : "?") + Object.keys(r).map(function (e) {
						if (t[r[e]] && t[r[e]].length > 0) return encodeURIComponent(e) + "=" + encodeURIComponent(t[r[e]])
					}).filter(function (e) {
						return e
					}).join("&")
				}
			}]), e
		}();
		e.module("ark.contextualHelp").service("ArkHelpSearchService", t)
	}(angular),
	function (e) {
		var t = {
			bindings: {
				content: "<",
				contentUrl: "<",
				loadHelpContent: "=",
				scrollTop: "=",
				scrollTo: "<"
			},
			templateUrl: "ark-help-wiki-content/ark-help-wiki-content.html",
			controller: "ArkHelpWikiContentController"
		};
		e.module("ark.contextualHelp").component("arkHelpWikiContent", t)
	}(angular),
	function (e) {
		function t(e, t) {
			"ngInject";
			var n = this,
				r = e[0].querySelector(".wiki-content");
			n.$onInit = function () {
				n.content && n.processHTML(n.content)
			}, n.processHTML = function (e) {
				r.innerHTML = t.getBodyContent(e), t.processTOC(r, n.scrollTop), t.processContent(r, n.contentUrl, n.loadHelpContent, n.scrollTop), n.scrollTo && n.scrollTo.length > 0 && n.scrollTop(n.scrollTo)
			}
		}
		t.$inject = ["$element", "ArkHelpWikiContentService"], e.module("ark.contextualHelp").controller("ArkHelpWikiContentController", t)
	}(angular),
	function (e) {
		var t = function () {
			function e(t) {
				"ngInject";
				r(this, e), this.$log = t
			}
			return e.$inject = ["$log"], i(e, [{
				key: "getBodyContent",
				value: function (e) {
					var t = document.createElement("html");
					t.innerHTML = e;
					var n = t.querySelector("body");
					return this.purgeScriptsAndStyles(n), this.removeNonEssentialSections(n), n.innerHTML
				}
			}, {
				key: "processTOC",
				value: function (e, t) {
					e = e[0] || e, [].slice.call(e.querySelectorAll("#toc ul li a")).forEach(function (e) {
						var n = "toc-link",
							r = e.getAttribute("href");
						e.classList ? e.classList.add(n) : e.className += " " + n, e.addEventListener("click", function (e) {
							e.preventDefault(), t(r)
						})
					})
				}
			}, {
				key: "processContent",
				value: function (e, t, n, r) {
					e = e[0] || e;
					var i = [].slice.call(e.querySelectorAll("a")).filter(function (e) {
						return !e.classList.contains("toc-link")
					});
					i.forEach(function (e) {
						if (e.classList.contains("link-external")) {
							e.setAttribute("target", "_blank");
							var i = document.createElement("span");
							i.className = "link-external-icon icon-outbound", e.appendChild(i)
						} else e.className += " internal-link", e.addEventListener("click", function (i) {
							i.preventDefault();
							var o = e.getAttribute("href");
							if (o.indexOf("#") !== -1) {
								var a = o.split("#");
								t === a[0] ? r(a[1]) : n(o, a[1])
							} else n(o)
						})
					})
				}
			}, {
				key: "purgeScriptsAndStyles",
				value: function (e) {
					var t = void 0,
						n = e.getElementsByTagName("script");
					for (t = n.length; t--;) this._removeDomNode(n[t]);
					var r = e.getElementsByTagName("style");
					for (t = r.length; t--;) this._removeDomNode(r[t]);
					var i = e.getElementsByTagName("link");
					for (t = i.length; t--;) this._removeDomNode(i[t]);
					return e
				}
			}, {
				key: "removeNonEssentialSections",
				value: function (e) {
					var t = this;
					[e.querySelector("#header"), e.querySelector("#leftrail"), e.querySelector("#siteSub"), e.querySelector("#siteSubsiteSub"), e.querySelector("#jump-to-nav"), e.querySelector("#productWrap"), e.querySelector("#last-mod"), e.querySelector(".pagination"), e.querySelector(".printfooter"), e.querySelector("#footer")].forEach(function (e) {
						return t._removeDomNode(e)
					})
				}
			}, {
				key: "_removeDomNode",
				value: function (e) {
					e && e.parentNode && e.parentNode.removeChild(e)
				}
			}]), e
		}();
		e.module("ark.contextualHelp").service("ArkHelpWikiContentService", t)
	}(angular),
	function (e) {
		var t = function (t, n) {
			return {
				link: function (r, i, o) {
					function a(e) {
						e.preventDefault(), v(e)
					}

					function s() {
						n.off("mousemove", a), n.off("mouseup", s), r.$digest()
					}

					function u(e) {
						e.preventDefault(), m(e)
					}

					function c() {
						n.off("mousemove", u), n.off("mouseup", c), r.$digest()
					}

					function l(e) {
						e.preventDefault(), g(e)
					}

					function f() {
						n.off("mousemove", l), n.off("mouseup", f), r.$digest()
					}

					function h(e) {
						e.preventDefault(), g(e), v(e)
					}

					function p() {
						n.off("mousemove", h), n.off("mouseup", p), r.$digest()
					}

					function d(e) {
						e.preventDefault(), g(e), m(e)
					}

					function $() {
						n.off("mousemove", d), n.off("mouseup", $), r.$digest()
					}
					if (t(o.arkResizable)(r) !== !1) {
						i.addClass("ark-resizable");
						var v = function (e) {
								var t = e.clientX - i[0].getBoundingClientRect().left;
								i.css({
									width: t + "px"
								})
							},
							m = function (e) {
								var t = i[0].getBoundingClientRect().right - e.clientX,
									n = void 0;
								t >= parseInt(i.css("min-width"), 10) && t <= parseInt(i.css("max-width"), 10) && (n = e.clientX, i.css({
									left: n + "px",
									width: t + "px"
								}))
							},
							g = function (e) {
								var t = e.clientY - i[0].getBoundingClientRect().top;
								i.css({
									height: t + "px"
								})
							},
							y = e.element('<div class="ark-resizable-e-resize"></div>');
						i.append(y), y.on("mousedown", function (e) {
							0 === e.button && (n.on("mousemove", a), n.on("mouseup", s))
						});
						var b = e.element('<div class="ark-resizable-w-resize"></div>');
						i.append(b), b.on("mousedown", function (e) {
							0 === e.button && (n.on("mousemove", u), n.on("mouseup", c))
						});
						var x = e.element('<div class="ark-resizable-s-resize"></div>');
						i.append(x), x.on("mousedown", function (e) {
							0 === e.button && (n.on("mousemove", l), n.on("mouseup", f))
						});
						var w = e.element('<div class="ark-resizable-se-resize"></div>');
						i.append(w), w.on("mousedown", function (e) {
							0 === e.button && (n.on("mousemove", h), n.on("mouseup", p))
						});
						var k = e.element('<div class="ark-resizable-sw-resize"></div>');
						i.append(k), k.on("mousedown", function (e) {
							0 === e.button && (n.on("mousemove", d), n.on("mouseup", $))
						})
					}
				}
			}
		};
		t.$inject = ["$parse", "$document"], e.module("ark.contextualHelp").directive("arkResizable", t)
	}(angular), angular.module("ark.contextualHelp.templates", []).run(["$templateCache", function (e) {
		e.put("ark-contextual-help/ark-contextual-help.html", '<div class="ark-contextual-help" ng-if="$ctrl.config && $ctrl.config.showPanel" ng-class="{ \'has-search\': $ctrl.currentSection === $ctrl.sections.search, \'has-content\': $ctrl.currentSection === $ctrl.sections.article}" ark-resizable="$ctrl.config.resizable" ark-draggable="$ctrl.config.draggable"><header ark-draggable-handler><div class="help-header-top"><a href class="help-close pull-right" ng-click="$ctrl.closeHelp()" ng-hide="$ctrl.config.hideCloseButton"><span class="icon-close"></span></a></div><div class="help-header-body"><div class="help-title-container"><h2 class="help-title" ng-hide="$ctrl.config.hideWidgetTitle">{{ $ctrl.config.panelTitle }}</h2></div><ark-help-search-box search-term="$ctrl.searchTerm" on-search="$ctrl.search" on-cancel="$ctrl.searchCancel"></ark-help-search-box></div><div class="help-header-footer" ng-if="$ctrl.currentSection === $ctrl.sections.article"><a ng-if="$ctrl.userTrail.length > 0" href class="help-return pull-left" ng-click="$ctrl.previousPage()"><span class="icon-arrow-left link-external-icon"></span> Back to Previous Page</a></div></header><div class="help-body"><ark-help-loading ng-if="$ctrl.isLoading"></ark-help-loading><div ng-if="!$ctrl.isLoading"><ark-help-index ng-if="$ctrl.currentSection === $ctrl.sections.index" help-links="$ctrl.currentContext" static-links="$ctrl.config.staticLinks" load-help-content="$ctrl.loadHelpContent"></ark-help-index><ark-help-wiki-content ng-if="$ctrl.currentSection === $ctrl.sections.article" content="$ctrl.wikiContent" content-url="$ctrl.currentUrl" load-help-content="$ctrl.loadHelpContent" scroll-top="$ctrl.scrollTop" scroll-to="$ctrl.scrollTo"></ark-help-wiki-content><ark-help-search-results ng-if="$ctrl.currentSection === $ctrl.sections.search" results="$ctrl.searchResults" search-query="$ctrl.lastSearchQuery" load-help-content="$ctrl.loadHelpContent"></ark-help-search-results></div></div><div class="help-footer" ng-if="$ctrl.currentSection === $ctrl.sections.article"><a ng-if="$ctrl.currentContext.length > 1" href class="pull-left" ng-click="$ctrl.hideArticle()"><span class="icon-menu-hamburger"></span> Topic List </a><a class="pull-right" ng-href="{{ $ctrl.currentUrl }}" target="_blank"><span class="icon-outbound"></span> Open in a new window</a></div></div>'), e.put("ark-help-index/ark-help-index.html", '<ul class="help-links-body"><li ng-repeat="link in $ctrl.helpLinks track by $index"><ark-help-link link="link" load-help-content="$ctrl.loadHelpContent"></ark-help-link></ul><ul class="help-links-static"><li ng-repeat="link in $ctrl.staticLinks track by $index"><ark-help-link link="link" load-help-content="$ctrl.loadHelpContent"></ark-help-link></ul>'), e.put("ark-help-link/ark-help-link.html", '<div class="ark-help-link"><a class="no-link" ng-if="$ctrl.link.type === \'no-link\' || (!$ctrl.link.type && !$ctrl.link.url)">{{ $ctrl.link.name }} </a><a class="internal-link" ng-if="$ctrl.link.type === \'internal-link\' || (!$ctrl.link.type && $ctrl.link.url)" href ng-click="$ctrl.loadHelpContent($ctrl.link.url, $ctrl.link[\'scroll_to\'])">{{ $ctrl.link.name }} <span class="icon-chevron-small-right"></span> </a><a class="external-link" ng-if="$ctrl.link.type === \'external-link\'" ng-href="{{ $ctrl.link.url }}" target="_blank">{{ $ctrl.link.name }} <span class="icon-outbound"></span> </a><a class="callback" ng-if="$ctrl.link.type === \'callback\'" href ng-click="$ctrl.link[\'callback\']()">{{ $ctrl.link.name }}</a><div ng-show="$ctrl.showToolTip" class="link-tooltip">{{ $ctrl.link.name }}</div></div><ul class="help-links-nested" ng-if="$ctrl.link.children && $ctrl.link.children.length > 0"><li ng-repeat="link in $ctrl.link.children track by $index"><ark-help-link link="link" load-help-content="$ctrl.loadHelpContent"></ark-help-link></ul>'), e.put("ark-help-search-box/ark-help-search-box.html", '<form class="ark-help-search-box" role="form" ng-submit="$ctrl.search($ctrl.searchTerm)"><div class="form-group"><div class="input-container"><input type="text" class="form-control filter-search-box left-icon right-icon" placeholder="Search" ng-model="$ctrl.searchTerm"> <span class="icon-search search-box-icon"></span> <span class="icon-close search-box-cancel" ng-if="$ctrl.searchTerm" ng-click="$ctrl.searchCancel()"></span></div><input type="submit" class="hide"></div></form>'), e.put("ark-help-search-results/ark-help-search-results.html", '<div class="help-search-results"><div ng-if="$ctrl.results.length > 0"><p>Your search "<strong>{{ $ctrl.searchQuery }}</strong>" returned:<ul class="help-search-links"><li ng-repeat="result in $ctrl.results track by $index"><a href ng-click="$ctrl.loadHelpContent(result.url)">{{ result.name }}</a></ul></div><div class="help-search-links-empty" ng-if="!$ctrl.results.length"><p>Your search "<strong>{{ $ctrl.searchQuery }}</strong>" came up empty.<p>Try this instead:<ul><li>Check your spelling</ul></div></div>'), e.put("ark-help-wiki-content/ark-help-wiki-content.html", '<div class="ark-help-wiki-content"><div class="wiki-content"></div></div>')
	}])
}, function (e, t, n) {
	e.exports = n(7)
}, function (e, t, n) {
	e.exports = n(6)
}, function (e, t, n) {
	e.exports = n(8), n(3)
}, function (e, t, n) {
	n(4)
}]);