(function() {
	var W = this, ab, F = W.jQuery, S = W.$, T = W.jQuery = W.$ = function(b, a) {
		return new T.fn.init(b, a)
	}, M = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, ac = /^.[^:#\[\.,]*$/;
	T.fn = T.prototype = {
		init : function(e, b) {
			e = e || document;
			if (e.nodeType) {
				this[0] = e;
				this.length = 1;
				this.context = e;
				return this
			}
			if (typeof e === "string") {
				var c = M.exec(e);
				if (c && (c[1] || !b)) {
					if (c[1]) {
						e = T.clean( [ c[1] ], b)
					} else {
						var a = document.getElementById(c[3]);
						if (a && a.id != c[3]) {
							return T().find(e)
						}
						var d = T(a || []);
						d.context = document;
						d.selector = e;
						return d
					}
				} else {
					return T(b).find(e)
				}
			} else {
				if (T.isFunction(e)) {
					return T(document).ready(e)
				}
			}
			if (e.selector && e.context) {
				this.selector = e.selector;
				this.context = e.context
			}
			return this.setArray(T.isArray(e) ? e : T.makeArray(e))
		},
		selector : "",
		jquery : "1.3.2",
		size : function() {
			return this.length
		},
		get : function(a) {
			return a === ab ? Array.prototype.slice.call(this) : this[a]
		},
		pushStack : function(c, a, d) {
			var b = T(c);
			b.prevObject = this;
			b.context = this.context;
			if (a === "find") {
				b.selector = this.selector + (this.selector ? " " : "") + d
			} else {
				if (a) {
					b.selector = this.selector + "." + a + "(" + d + ")"
				}
			}
			return b
		},
		setArray : function(a) {
			this.length = 0;
			Array.prototype.push.apply(this, a);
			return this
		},
		each : function(a, b) {
			return T.each(this, a, b)
		},
		index : function(a) {
			return T.inArray(a && a.jquery ? a[0] : a, this)
		},
		attr : function(c, a, b) {
			var d = c;
			if (typeof c === "string") {
				if (a === ab) {
					return this[0] && T[b || "attr"](this[0], c)
				} else {
					d = {};
					d[c] = a
				}
			}
			return this.each(function(e) {
				for (c in d) {
					T.attr(b ? this.style : this, c, T
							.prop(this, d[c], b, e, c))
				}
			})
		},
		css : function(b, a) {
			if ((b == "width" || b == "height") && parseFloat(a) < 0) {
				a = ab
			}
			return this.attr(b, a, "curCSS")
		},
		text : function(a) {
			if (typeof a !== "object" && a != null) {
				return this.empty().append(
						(this[0] && this[0].ownerDocument || document)
								.createTextNode(a))
			}
			var b = "";
			T.each(a || this, function() {
				T.each(this.childNodes, function() {
					if (this.nodeType != 8) {
						b += this.nodeType != 1 ? this.nodeValue : T.fn
								.text( [ this ])
					}
				})
			});
			return b
		},
		wrapAll : function(b) {
			if (this[0]) {
				var a = T(b, this[0].ownerDocument).clone();
				if (this[0].parentNode) {
					a.insertBefore(this[0])
				}
				a.map(function() {
					var c = this;
					while (c.firstChild) {
						c = c.firstChild
					}
					return c
				}).append(this)
			}
			return this
		},
		wrapInner : function(a) {
			return this.each(function() {
				T(this).contents().wrapAll(a)
			})
		},
		wrap : function(a) {
			return this.each(function() {
				T(this).wrapAll(a)
			})
		},
		append : function() {
			return this.domManip(arguments, true, function(a) {
				if (this.nodeType == 1) {
					this.appendChild(a)
				}
			})
		},
		prepend : function() {
			return this.domManip(arguments, true, function(a) {
				if (this.nodeType == 1) {
					this.insertBefore(a, this.firstChild)
				}
			})
		},
		before : function() {
			return this.domManip(arguments, false, function(a) {
				this.parentNode.insertBefore(a, this)
			})
		},
		after : function() {
			return this.domManip(arguments, false, function(a) {
				this.parentNode.insertBefore(a, this.nextSibling)
			})
		},
		end : function() {
			return this.prevObject || T( [])
		},
		push : [].push,
		sort : [].sort,
		splice : [].splice,
		find : function(b) {
			if (this.length === 1) {
				var a = this.pushStack( [], "find", b);
				a.length = 0;
				T.find(b, this[0], a);
				return a
			} else {
				return this.pushStack(T.unique(T.map(this, function(c) {
					return T.find(b, c)
				})), "find", b)
			}
		},
		clone : function(b) {
			var d = this.map(function() {
				if (!T.support.noCloneEvent && !T.isXMLDoc(this)) {
					var f = this.outerHTML;
					if (!f) {
						var e = this.ownerDocument.createElement("div");
						e.appendChild(this.cloneNode(true));
						f = e.innerHTML
					}
					return T.clean( [ f.replace(/ jQuery\d+="(?:\d+|null)"/g,
							"").replace(/^\s*/, "") ])[0]
				} else {
					return this.cloneNode(true)
				}
			});
			if (b === true) {
				var a = this.find("*").andSelf(), c = 0;
				d.find("*").andSelf().each(function() {
					if (this.nodeName !== a[c].nodeName) {
						return
					}
					var g = T.data(a[c], "events");
					for ( var e in g) {
						for ( var f in g[e]) {
							T.event.add(this, e, g[e][f], g[e][f].data)
						}
					}
					c++
				})
			}
			return d
		},
		filter : function(a) {
			return this.pushStack(T.isFunction(a)
					&& T.grep(this, function(b, c) {
						return a.call(b, c)
					}) || T.multiFilter(a, T.grep(this, function(b) {
						return b.nodeType === 1
					})), "filter", a)
		},
		closest : function(c) {
			var a = T.expr.match.POS.test(c) ? T(c) : null, b = 0;
			return this.map(function() {
				var d = this;
				while (d && d.ownerDocument) {
					if (a ? a.index(d) > -1 : T(d).is(c)) {
						T.data(d, "closest", b);
						return d
					}
					d = d.parentNode;
					b++
				}
			})
		},
		not : function(b) {
			if (typeof b === "string") {
				if (ac.test(b)) {
					return this.pushStack(T.multiFilter(b, this, true), "not",
							b)
				} else {
					b = T.multiFilter(b, this)
				}
			}
			var a = b.length && b[b.length - 1] !== ab && !b.nodeType;
			return this.filter(function() {
				return a ? T.inArray(this, b) < 0 : this != b
			})
		},
		add : function(a) {
			return this.pushStack(T.unique(T.merge(this.get(),
					typeof a === "string" ? T(a) : T.makeArray(a))))
		},
		is : function(a) {
			return !!a && T.multiFilter(a, this).length > 0
		},
		hasClass : function(a) {
			return !!a && this.is("." + a)
		},
		val : function(c) {
			if (c === ab) {
				var k = this[0];
				if (k) {
					if (T.nodeName(k, "option")) {
						return (k.attributes.value || {}).specified ? k.value
								: k.text
					}
					if (T.nodeName(k, "select")) {
						var e = k.selectedIndex, b = [], a = k.options, f = k.type == "select-one";
						if (e < 0) {
							return null
						}
						for ( var j = f ? e : 0, d = f ? e + 1 : a.length; j < d; j++) {
							var g = a[j];
							if (g.selected) {
								c = T(g).val();
								if (f) {
									return c
								}
								b.push(c)
							}
						}
						return b
					}
					return (k.value || "").replace(/\r/g, "")
				}
				return ab
			}
			if (typeof c === "number") {
				c += ""
			}
			return this
					.each(function() {
						if (this.nodeType != 1) {
							return
						}
						if (T.isArray(c) && /radio|checkbox/.test(this.type)) {
							this.checked = (T.inArray(this.value, c) >= 0 || T
									.inArray(this.name, c) >= 0)
						} else {
							if (T.nodeName(this, "select")) {
								var m = T.makeArray(c);
								T("option", this)
										.each(
												function() {
													this.selected = (T.inArray(
															this.value, m) >= 0 || T
															.inArray(this.text,
																	m) >= 0)
												});
								if (!m.length) {
									this.selectedIndex = -1
								}
							} else {
								this.value = c
							}
						}
					})
		},
		html : function(a) {
			return a === ab ? (this[0] ? this[0].innerHTML.replace(
					/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty()
					.append(a)
		},
		replaceWith : function(a) {
			return this.after(a).remove()
		},
		eq : function(a) {
			return this.slice(a, +a + 1)
		},
		slice : function() {
			return this.pushStack(Array.prototype.slice.apply(this, arguments),
					"slice", Array.prototype.slice.call(arguments).join(","))
		},
		map : function(a) {
			return this.pushStack(T.map(this, function(b, c) {
				return a.call(b, c, b)
			}))
		},
		andSelf : function() {
			return this.add(this.prevObject)
		},
		domManip : function(d, a, b) {
			if (this[0]) {
				var e = (this[0].ownerDocument || this[0])
						.createDocumentFragment(), j = T.clean(d,
						(this[0].ownerDocument || this[0]), e), f = e.firstChild;
				if (f) {
					for ( var g = 0, k = this.length; g < k; g++) {
						b.call(c(this[g], f), this.length > 1 || g > 0 ? e
								.cloneNode(true) : e)
					}
				}
				if (j) {
					T.each(j, E)
				}
			}
			return this;
			function c(n, m) {
				return a && T.nodeName(n, "table") && T.nodeName(m, "tr") ? (n
						.getElementsByTagName("tbody")[0] || n
						.appendChild(n.ownerDocument.createElement("tbody")))
						: n
			}
		}
	};
	T.fn.init.prototype = T.fn;
	function E(b, a) {
		if (a.src) {
			T.ajax( {
				url : a.src,
				async : false,
				dataType : "script"
			})
		} else {
			T.globalEval(a.text || a.textContent || a.innerHTML || "")
		}
		if (a.parentNode) {
			a.parentNode.removeChild(a)
		}
	}
	function ad() {
		return +new Date
	}
	T.extend = T.fn.extend = function() {
		var c = arguments[0] || {}, e = 1, d = arguments.length, j = false, f;
		if (typeof c === "boolean") {
			j = c;
			c = arguments[1] || {};
			e = 2
		}
		if (typeof c !== "object" && !T.isFunction(c)) {
			c = {}
		}
		if (d == e) {
			c = this;
			--e
		}
		for (; e < d; e++) {
			if ((f = arguments[e]) != null) {
				for ( var g in f) {
					var b = c[g], a = f[g];
					if (c === a) {
						continue
					}
					if (j && a && typeof a === "object" && !a.nodeType) {
						c[g] = T
								.extend(j, b || (a.length != null ? [] : {}), a)
					} else {
						if (a !== ab) {
							c[g] = a
						}
					}
				}
			}
		}
		return c
	};
	var ag = /z-?index|font-?weight|opacity|zoom|line-?height/i, Q = document.defaultView
			|| {}, L = Object.prototype.toString;
	T
			.extend( {
				noConflict : function(a) {
					W.$ = S;
					if (a) {
						W.jQuery = F
					}
					return T
				},
				isFunction : function(a) {
					return L.call(a) === "[object Function]"
				},
				isArray : function(a) {
					return L.call(a) === "[object Array]"
				},
				isXMLDoc : function(a) {
					return a.nodeType === 9
							&& a.documentElement.nodeName !== "HTML"
							|| !!a.ownerDocument && T.isXMLDoc(a.ownerDocument)
				},
				globalEval : function(a) {
					if (a && /\S/.test(a)) {
						var b = document.getElementsByTagName("head")[0]
								|| document.documentElement, c = document
								.createElement("script");
						c.type = "text/javascript";
						if (T.support.scriptEval) {
							c.appendChild(document.createTextNode(a))
						} else {
							c.text = a
						}
						b.insertBefore(c, b.firstChild);
						b.removeChild(c)
					}
				},
				nodeName : function(a, b) {
					return a.nodeName
							&& a.nodeName.toUpperCase() == b.toUpperCase()
				},
				each : function(e, a, f) {
					var g, d = 0, c = e.length;
					if (f) {
						if (c === ab) {
							for (g in e) {
								if (a.apply(e[g], f) === false) {
									break
								}
							}
						} else {
							for (; d < c;) {
								if (a.apply(e[d++], f) === false) {
									break
								}
							}
						}
					} else {
						if (c === ab) {
							for (g in e) {
								if (a.call(e[g], g, e[g]) === false) {
									break
								}
							}
						} else {
							for ( var b = e[0]; d < c
									&& a.call(b, d, b) !== false; b = e[++d]) {
							}
						}
					}
					return e
				},
				prop : function(b, a, c, d, e) {
					if (T.isFunction(a)) {
						a = a.call(b, d)
					}
					return typeof a === "number" && c == "curCSS"
							&& !ag.test(e) ? a + "px" : a
				},
				className : {
					add : function(b, a) {
						T.each((a || "").split(/\s+/), function(d, c) {
							if (b.nodeType == 1
									&& !T.className.has(b.className, c)) {
								b.className += (b.className ? " " : "") + c
							}
						})
					},
					remove : function(b, a) {
						if (b.nodeType == 1) {
							b.className = a !== ab ? T.grep(
									b.className.split(/\s+/), function(c) {
										return !T.className.has(a, c)
									}).join(" ") : ""
						}
					},
					has : function(a, b) {
						return a
								&& T.inArray(b, (a.className || a).toString()
										.split(/\s+/)) > -1
					}
				},
				swap : function(b, c, a) {
					var e = {};
					for ( var d in c) {
						e[d] = b.style[d];
						b.style[d] = c[d]
					}
					a.call(b);
					for ( var d in c) {
						b.style[d] = e[d]
					}
				},
				css : function(e, g, c, j) {
					if (g == "width" || g == "height") {
						var a, f = {
							position : "absolute",
							visibility : "hidden",
							display : "block"
						}, b = g == "width" ? [ "Left", "Right" ] : [ "Top",
								"Bottom" ];
						function d() {
							a = g == "width" ? e.offsetWidth : e.offsetHeight;
							if (j === "border") {
								return
							}
							T.each(b, function() {
								if (!j) {
									a -= parseFloat(T.curCSS(e, "padding"
											+ this, true)) || 0
								}
								if (j === "margin") {
									a += parseFloat(T.curCSS(e,
											"margin" + this, true)) || 0
								} else {
									a -= parseFloat(T.curCSS(e, "border" + this
											+ "Width", true)) || 0
								}
							})
						}
						if (e.offsetWidth !== 0) {
							d()
						} else {
							T.swap(e, f, d)
						}
						return Math.max(0, Math.round(a))
					}
					return T.curCSS(e, g, c)
				},
				curCSS : function(e, j, g) {
					var b, k = e.style;
					if (j == "opacity" && !T.support.opacity) {
						b = T.attr(k, "opacity");
						return b == "" ? "1" : b
					}
					if (j.match(/float/i)) {
						j = H
					}
					if (!g && k && k[j]) {
						b = k[j]
					} else {
						if (Q.getComputedStyle) {
							if (j.match(/float/i)) {
								j = "float"
							}
							j = j.replace(/([A-Z])/g, "-$1").toLowerCase();
							var a = Q.getComputedStyle(e, null);
							if (a) {
								b = a.getPropertyValue(j)
							}
							if (j == "opacity" && b == "") {
								b = "1"
							}
						} else {
							if (e.currentStyle) {
								var d = j.replace(/\-(\w)/g, function(n, m) {
									return m.toUpperCase()
								});
								b = e.currentStyle[j] || e.currentStyle[d];
								if (!/^\d+(px)?$/i.test(b) && /^\d/.test(b)) {
									var f = k.left, c = e.runtimeStyle.left;
									e.runtimeStyle.left = e.currentStyle.left;
									k.left = b || 0;
									b = k.pixelLeft + "px";
									k.left = f;
									e.runtimeStyle.left = c
								}
							}
						}
					}
					return b
				},
				clean : function(g, b, d) {
					b = b || document;
					if (typeof b.createElement === "undefined") {
						b = b.ownerDocument || b[0] && b[0].ownerDocument
								|| document
					}
					if (!d && g.length === 1 && typeof g[0] === "string") {
						var e = /^<(\w+)\s*\/?>$/.exec(g[0]);
						if (e) {
							return [ b.createElement(e[1]) ]
						}
					}
					var f = [], j = [], a = b.createElement("div");
					T
							.each(
									g,
									function(p, k) {
										if (typeof k === "number") {
											k += ""
										}
										if (!k) {
											return
										}
										if (typeof k === "string") {
											k = k
													.replace(
															/(<(\w+)[^>]*?)\/>/g,
															function(v, u, x) {
																return x
																		.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? v
																		: u
																				+ "></"
																				+ x
																				+ ">"
															});
											var q = k.replace(/^\s+/, "")
													.substring(0, 10)
													.toLowerCase();
											var n = !q.indexOf("<opt")
													&& [
															1,
															"<select multiple='multiple'>",
															"</select>" ]
													|| !q.indexOf("<leg")
													&& [ 1, "<fieldset>",
															"</fieldset>" ]
													|| q
															.match(/^<(thead|tbody|tfoot|colg|cap)/)
													&& [ 1, "<table>",
															"</table>" ]
													|| !q.indexOf("<tr")
													&& [ 2, "<table><tbody>",
															"</tbody></table>" ]
													|| (!q.indexOf("<td") || !q
															.indexOf("<th"))
													&& [
															3,
															"<table><tbody><tr>",
															"</tr></tbody></table>" ]
													|| !q.indexOf("<col")
													&& [
															2,
															"<table><tbody></tbody><colgroup>",
															"</colgroup></table>" ]
													|| !T.support.htmlSerialize
													&& [ 1, "div<div>",
															"</div>" ]
													|| [ 0, "", "" ];
											a.innerHTML = n[1] + k + n[2];
											while (n[0]--) {
												a = a.lastChild
											}
											if (!T.support.tbody) {
												var m = /<tbody/i.test(k), r = !q
														.indexOf("<table")
														&& !m ? a.firstChild
														&& a.firstChild.childNodes
														: n[1] == "<table>"
																&& !m ? a.childNodes
																: [];
												for ( var s = r.length - 1; s >= 0; --s) {
													if (T.nodeName(r[s],
															"tbody")
															&& !r[s].childNodes.length) {
														r[s].parentNode
																.removeChild(r[s])
													}
												}
											}
											if (!T.support.leadingWhitespace
													&& /^\s/.test(k)) {
												a
														.insertBefore(
																b
																		.createTextNode(k
																				.match(/^\s*/)[0]),
																a.firstChild)
											}
											k = T.makeArray(a.childNodes)
										}
										if (k.nodeType) {
											f.push(k)
										} else {
											f = T.merge(f, k)
										}
									});
					if (d) {
						for ( var c = 0; f[c]; c++) {
							if (T.nodeName(f[c], "script")
									&& (!f[c].type || f[c].type.toLowerCase() === "text/javascript")) {
								j.push(f[c].parentNode ? f[c].parentNode
										.removeChild(f[c]) : f[c])
							} else {
								if (f[c].nodeType === 1) {
									f.splice
											.apply(
													f,
													[ c + 1, 0 ]
															.concat(T
																	.makeArray(f[c]
																			.getElementsByTagName("script"))))
								}
								d.appendChild(f[c])
							}
						}
						return j
					}
					return f
				},
				attr : function(c, f, b) {
					if (!c || c.nodeType == 3 || c.nodeType == 8) {
						return ab
					}
					var e = !T.isXMLDoc(c), a = b !== ab;
					f = e && T.props[f] || f;
					if (c.tagName) {
						var g = /href|src|style/.test(f);
						if (f == "selected" && c.parentNode) {
							c.parentNode.selectedIndex
						}
						if (f in c && e && !g) {
							if (a) {
								if (f == "type" && T.nodeName(c, "input")
										&& c.parentNode) {
									throw "type property can't be changed"
								}
								c[f] = b
							}
							if (T.nodeName(c, "form") && c.getAttributeNode(f)) {
								return c.getAttributeNode(f).nodeValue
							}
							if (f == "tabIndex") {
								var d = c.getAttributeNode("tabIndex");
								return d && d.specified ? d.value
										: c.nodeName
												.match(/(button|input|object|select|textarea)/i) ? 0
												: c.nodeName
														.match(/^(a|area)$/i)
														&& c.href ? 0 : ab
							}
							return c[f]
						}
						if (!T.support.style && e && f == "style") {
							return T.attr(c.style, "cssText", b)
						}
						if (a) {
							c.setAttribute(f, "" + b)
						}
						var j = !T.support.hrefNormalized && e && g ? c
								.getAttribute(f, 2) : c.getAttribute(f);
						return j === null ? ab : j
					}
					if (!T.support.opacity && f == "opacity") {
						if (a) {
							c.zoom = 1;
							c.filter = (c.filter || "").replace(
									/alpha\([^)]*\)/, "")
									+ (parseInt(b) + "" == "NaN" ? ""
											: "alpha(opacity=" + b * 100 + ")")
						}
						return c.filter && c.filter.indexOf("opacity=") >= 0 ? (parseFloat(c.filter
								.match(/opacity=([^)]*)/)[1]) / 100)
								+ ""
								: ""
					}
					f = f.replace(/-([a-z])/ig, function(m, k) {
						return k.toUpperCase()
					});
					if (a) {
						c[f] = b
					}
					return c[f]
				},
				trim : function(a) {
					return (a || "").replace(/^\s+|\s+$/g, "")
				},
				makeArray : function(a) {
					var c = [];
					if (a != null) {
						var b = a.length;
						if (b == null || typeof a === "string"
								|| T.isFunction(a) || a.setInterval) {
							c[0] = a
						} else {
							while (b) {
								c[--b] = a[b]
							}
						}
					}
					return c
				},
				inArray : function(b, a) {
					for ( var d = 0, c = a.length; d < c; d++) {
						if (a[d] === b) {
							return d
						}
					}
					return -1
				},
				merge : function(b, e) {
					var d = 0, c, a = b.length;
					if (!T.support.getAll) {
						while ((c = e[d++]) != null) {
							if (c.nodeType != 8) {
								b[a++] = c
							}
						}
					} else {
						while ((c = e[d++]) != null) {
							b[a++] = c
						}
					}
					return b
				},
				unique : function(a) {
					var f = [], g = {};
					try {
						for ( var e = 0, d = a.length; e < d; e++) {
							var b = T.data(a[e]);
							if (!g[b]) {
								g[b] = true;
								f.push(a[e])
							}
						}
					} catch (c) {
						f = a
					}
					return f
				},
				grep : function(e, a, f) {
					var d = [];
					for ( var c = 0, b = e.length; c < b; c++) {
						if (!f != !a(e[c], c)) {
							d.push(e[c])
						}
					}
					return d
				},
				map : function(f, a) {
					var e = [];
					for ( var d = 0, c = f.length; d < c; d++) {
						var b = a(f[d], d);
						if (b != null) {
							e[e.length] = b
						}
					}
					return e.concat.apply( [], e)
				}
			});
	var O = navigator.userAgent.toLowerCase();
	T.browser = {
		version : (O.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [ 0, "0" ])[1],
		safari : /webkit/.test(O),
		opera : /opera/.test(O),
		msie : /msie/.test(O) && !/opera/.test(O),
		mozilla : /mozilla/.test(O) && !/(compatible|webkit)/.test(O)
	};
	T.each( {
		parent : function(a) {
			return a.parentNode
		},
		parents : function(a) {
			return T.dir(a, "parentNode")
		},
		next : function(a) {
			return T.nth(a, 2, "nextSibling")
		},
		prev : function(a) {
			return T.nth(a, 2, "previousSibling")
		},
		nextAll : function(a) {
			return T.dir(a, "nextSibling")
		},
		prevAll : function(a) {
			return T.dir(a, "previousSibling")
		},
		siblings : function(a) {
			return T.sibling(a.parentNode.firstChild, a)
		},
		children : function(a) {
			return T.sibling(a.firstChild)
		},
		contents : function(a) {
			return T.nodeName(a, "iframe") ? a.contentDocument
					|| a.contentWindow.document : T.makeArray(a.childNodes)
		}
	}, function(b, a) {
		T.fn[b] = function(d) {
			var c = T.map(this, a);
			if (d && typeof d == "string") {
				c = T.multiFilter(d, c)
			}
			return this.pushStack(T.unique(c), b, d)
		}
	});
	T.each( {
		appendTo : "append",
		prependTo : "prepend",
		insertBefore : "before",
		insertAfter : "after",
		replaceAll : "replaceWith"
	}, function(b, a) {
		T.fn[b] = function(j) {
			var e = [], c = T(j);
			for ( var d = 0, g = c.length; d < g; d++) {
				var f = (d > 0 ? this.clone(true) : this).get();
				T.fn[a].apply(T(c[d]), f);
				e = e.concat(f)
			}
			return this.pushStack(e, b, j)
		}
	});
	T.each( {
		removeAttr : function(a) {
			T.attr(this, a, "");
			if (this.nodeType == 1) {
				this.removeAttribute(a)
			}
		},
		addClass : function(a) {
			T.className.add(this, a)
		},
		removeClass : function(a) {
			T.className.remove(this, a)
		},
		toggleClass : function(a, b) {
			if (typeof b !== "boolean") {
				b = !T.className.has(this, a)
			}
			T.className[b ? "add" : "remove"](this, a)
		},
		remove : function(a) {
			if (!a || T.filter(a, [ this ]).length) {
				T("*", this).add( [ this ]).each(function() {
					T.event.remove(this);
					T.removeData(this)
				});
				if (this.parentNode) {
					this.parentNode.removeChild(this)
				}
			}
		},
		empty : function() {
			T(this).children().remove();
			while (this.firstChild) {
				this.removeChild(this.firstChild)
			}
		}
	}, function(b, a) {
		T.fn[b] = function() {
			return this.each(a, arguments)
		}
	});
	function Y(b, a) {
		return b[0] && parseInt(T.curCSS(b[0], a, true), 10) || 0
	}
	var aa = "jQuery" + ad(), I = 0, R = {};
	T.extend( {
		cache : {},
		data : function(c, d, b) {
			c = c == W ? R : c;
			var a = c[aa];
			if (!a) {
				a = c[aa] = ++I
			}
			if (d && !T.cache[a]) {
				T.cache[a] = {}
			}
			if (b !== ab) {
				T.cache[a][d] = b
			}
			return d ? T.cache[a][d] : a
		},
		removeData : function(c, d) {
			c = c == W ? R : c;
			var a = c[aa];
			if (d) {
				if (T.cache[a]) {
					delete T.cache[a][d];
					d = "";
					for (d in T.cache[a]) {
						break
					}
					if (!d) {
						T.removeData(c)
					}
				}
			} else {
				try {
					delete c[aa]
				} catch (b) {
					if (c.removeAttribute) {
						c.removeAttribute(aa)
					}
				}
				delete T.cache[a]
			}
		},
		queue : function(c, d, a) {
			if (c) {
				d = (d || "fx") + "queue";
				var b = T.data(c, d);
				if (!b || T.isArray(a)) {
					b = T.data(c, d, T.makeArray(a))
				} else {
					if (a) {
						b.push(a)
					}
				}
			}
			return b
		},
		dequeue : function(a, b) {
			var d = T.queue(a, b), c = d.shift();
			if (!b || b === "fx") {
				c = d[0]
			}
			if (c !== ab) {
				c.call(a)
			}
		}
	});
	T.fn.extend( {
		data : function(d, b) {
			var a = d.split(".");
			a[1] = a[1] ? "." + a[1] : "";
			if (b === ab) {
				var c = this.triggerHandler("getData" + a[1] + "!", [ a[0] ]);
				if (c === ab && this.length) {
					c = T.data(this[0], d)
				}
				return c === ab && a[1] ? this.data(a[0]) : c
			} else {
				return this.trigger("setData" + a[1] + "!", [ a[0], b ]).each(
						function() {
							T.data(this, d, b)
						})
			}
		},
		removeData : function(a) {
			return this.each(function() {
				T.removeData(this, a)
			})
		},
		queue : function(b, a) {
			if (typeof b !== "string") {
				a = b;
				b = "fx"
			}
			if (a === ab) {
				return T.queue(this[0], b)
			}
			return this.each(function() {
				var c = T.queue(this, b, a);
				if (b == "fx" && c.length == 1) {
					c[0].call(this)
				}
			})
		},
		dequeue : function(a) {
			return this.each(function() {
				T.dequeue(this, a)
			})
		}
	});
	(function() {
		var b = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, j = 0, p = Object.prototype.toString;
		var r = function(x, B, ao, an) {
			ao = ao || [];
			B = B || document;
			if (B.nodeType !== 1 && B.nodeType !== 9) {
				return []
			}
			if (!x || typeof x !== "string") {
				return ao
			}
			var v = [], z, ak, D, C, am, A, y = true;
			b.lastIndex = 0;
			while ((z = b.exec(x)) !== null) {
				v.push(z[1]);
				if (z[2]) {
					A = RegExp.rightContext;
					break
				}
			}
			if (v.length > 1 && g.exec(x)) {
				if (v.length === 2 && n.relative[v[0]]) {
					ak = m(v[0] + v[1], B)
				} else {
					ak = n.relative[v[0]] ? [ B ] : r(v.shift(), B);
					while (v.length) {
						x = v.shift();
						if (n.relative[x]) {
							x += v.shift()
						}
						ak = m(x, ak)
					}
				}
			} else {
				var al = an ? {
					expr : v.pop(),
					set : s(an)
				} : r
						.find(v.pop(),
								v.length === 1 && B.parentNode ? B.parentNode
										: B, c(B));
				ak = r.filter(al.expr, al.set);
				if (v.length > 0) {
					D = s(ak)
				} else {
					y = false
				}
				while (v.length) {
					var ai = v.pop(), aj = ai;
					if (!n.relative[ai]) {
						ai = ""
					} else {
						aj = v.pop()
					}
					if (aj == null) {
						aj = B
					}
					n.relative[ai](D, aj, c(B))
				}
			}
			if (!D) {
				D = ak
			}
			if (!D) {
				throw "Syntax error, unrecognized expression: " + (ai || x)
			}
			if (p.call(D) === "[object Array]") {
				if (!y) {
					ao.push.apply(ao, D)
				} else {
					if (B.nodeType === 1) {
						for ( var u = 0; D[u] != null; u++) {
							if (D[u]
									&& (D[u] === true || D[u].nodeType === 1
											&& k(B, D[u]))) {
								ao.push(ak[u])
							}
						}
					} else {
						for ( var u = 0; D[u] != null; u++) {
							if (D[u] && D[u].nodeType === 1) {
								ao.push(ak[u])
							}
						}
					}
				}
			} else {
				s(D, ao)
			}
			if (A) {
				r(A, B, ao, an);
				if (q) {
					hasDuplicate = false;
					ao.sort(q);
					if (hasDuplicate) {
						for ( var u = 1; u < ao.length; u++) {
							if (ao[u] === ao[u - 1]) {
								ao.splice(u--, 1)
							}
						}
					}
				}
			}
			return ao
		};
		r.matches = function(v, u) {
			return r(v, null, null, u)
		};
		r.find = function(u, C, D) {
			var v, y;
			if (!u) {
				return []
			}
			for ( var z = 0, A = n.order.length; z < A; z++) {
				var x = n.order[z], y;
				if ((y = n.match[x].exec(u))) {
					var B = RegExp.leftContext;
					if (B.substr(B.length - 1) !== "\\") {
						y[1] = (y[1] || "").replace(/\\/g, "");
						v = n.find[x](y, C, D);
						if (v != null) {
							u = u.replace(n.match[x], "");
							break
						}
					}
				}
			}
			if (!v) {
				v = C.getElementsByTagName("*")
			}
			return {
				set : v,
				expr : u
			}
		};
		r.filter = function(am, an, aj, z) {
			var A = am, D = [], u = an, x, C, v = an && an[0] && c(an[0]);
			while (am && an.length) {
				for ( var ao in n.filter) {
					if ((x = n.match[ao].exec(am)) != null) {
						var B = n.filter[ao], ai, ak;
						C = false;
						if (u == D) {
							D = []
						}
						if (n.preFilter[ao]) {
							x = n.preFilter[ao](x, u, aj, D, z, v);
							if (!x) {
								C = ai = true
							} else {
								if (x === true) {
									continue
								}
							}
						}
						if (x) {
							for ( var y = 0; (ak = u[y]) != null; y++) {
								if (ak) {
									ai = B(ak, x, y, u);
									var al = z ^ !!ai;
									if (aj && ai != null) {
										if (al) {
											C = true
										} else {
											u[y] = false
										}
									} else {
										if (al) {
											D.push(ak);
											C = true
										}
									}
								}
							}
						}
						if (ai !== ab) {
							if (!aj) {
								u = D
							}
							am = am.replace(n.match[ao], "");
							if (!C) {
								return []
							}
							break
						}
					}
				}
				if (am == A) {
					if (C == null) {
						throw "Syntax error, unrecognized expression: " + am
					} else {
						break
					}
				}
				A = am
			}
			return u
		};
		var n = r.selectors = {
			order : [ "ID", "NAME", "TAG" ],
			match : {
				ID : /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
				CLASS : /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
				NAME : /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
				ATTR : /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
				TAG : /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
				CHILD : /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
				POS : /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
				PSEUDO : /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
			},
			attrMap : {
				"class" : "className",
				"for" : "htmlFor"
			},
			attrHandle : {
				href : function(u) {
					return u.getAttribute("href")
				}
			},
			relative : {
				"+" : function(u, C, v) {
					var y = typeof C === "string", D = y && !/\W/.test(C), x = y
							&& !D;
					if (D && !v) {
						C = C.toUpperCase()
					}
					for ( var z = 0, A = u.length, B; z < A; z++) {
						if ((B = u[z])) {
							while ((B = B.previousSibling) && B.nodeType !== 1) {
							}
							u[z] = x || B && B.nodeName === C ? B || false
									: B === C
						}
					}
					if (x) {
						r.filter(C, u, true)
					}
				},
				">" : function(A, x, z) {
					var C = typeof x === "string";
					if (C && !/\W/.test(x)) {
						x = z ? x : x.toUpperCase();
						for ( var v = 0, y = A.length; v < y; v++) {
							var B = A[v];
							if (B) {
								var u = B.parentNode;
								A[v] = u.nodeName === x ? u : false
							}
						}
					} else {
						for ( var v = 0, y = A.length; v < y; v++) {
							var B = A[v];
							if (B) {
								A[v] = C ? B.parentNode : B.parentNode === x
							}
						}
						if (C) {
							r.filter(x, A, true)
						}
					}
				},
				"" : function(u, x, z) {
					var v = j++, y = a;
					if (!x.match(/\W/)) {
						var A = x = z ? x : x.toUpperCase();
						y = d
					}
					y("parentNode", x, v, u, A, z)
				},
				"~" : function(u, x, z) {
					var v = j++, y = a;
					if (typeof x === "string" && !x.match(/\W/)) {
						var A = x = z ? x : x.toUpperCase();
						y = d
					}
					y("previousSibling", x, v, u, A, z)
				}
			},
			find : {
				ID : function(x, v, u) {
					if (typeof v.getElementById !== "undefined" && !u) {
						var y = v.getElementById(x[1]);
						return y ? [ y ] : []
					}
				},
				NAME : function(v, A, z) {
					if (typeof A.getElementsByName !== "undefined") {
						var x = [], B = A.getElementsByName(v[1]);
						for ( var u = 0, y = B.length; u < y; u++) {
							if (B[u].getAttribute("name") === v[1]) {
								x.push(B[u])
							}
						}
						return x.length === 0 ? null : x
					}
				},
				TAG : function(v, u) {
					return u.getElementsByTagName(v[1])
				}
			},
			preFilter : {
				CLASS : function(u, x, v, y, A, z) {
					u = " " + u[1].replace(/\\/g, "") + " ";
					if (z) {
						return u
					}
					for ( var C = 0, B; (B = x[C]) != null; C++) {
						if (B) {
							if (A
									^ (B.className && (" " + B.className + " ")
											.indexOf(u) >= 0)) {
								if (!v) {
									y.push(B)
								}
							} else {
								if (v) {
									x[C] = false
								}
							}
						}
					}
					return false
				},
				ID : function(u) {
					return u[1].replace(/\\/g, "")
				},
				TAG : function(v, x) {
					for ( var u = 0; x[u] === false; u++) {
					}
					return x[u] && c(x[u]) ? v[1] : v[1].toUpperCase()
				},
				CHILD : function(v) {
					if (v[1] == "nth") {
						var u = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(v[2] == "even"
								&& "2n" || v[2] == "odd" && "2n+1"
								|| !/\D/.test(v[2]) && "0n+" + v[2] || v[2]);
						v[2] = (u[1] + (u[2] || 1)) - 0;
						v[3] = u[3] - 0
					}
					v[0] = j++;
					return v
				},
				ATTR : function(B, x, v, y, A, z) {
					var u = B[1].replace(/\\/g, "");
					if (!z && n.attrMap[u]) {
						B[1] = n.attrMap[u]
					}
					if (B[2] === "~=") {
						B[4] = " " + B[4] + " "
					}
					return B
				},
				PSEUDO : function(A, x, v, y, z) {
					if (A[1] === "not") {
						if (A[3].match(b).length > 1 || /^\w/.test(A[3])) {
							A[3] = r(A[3], null, null, x)
						} else {
							var u = r.filter(A[3], x, v, true ^ z);
							if (!v) {
								y.push.apply(y, u)
							}
							return false
						}
					} else {
						if (n.match.POS.test(A[0]) || n.match.CHILD.test(A[0])) {
							return true
						}
					}
					return A
				},
				POS : function(u) {
					u.unshift(true);
					return u
				}
			},
			filters : {
				enabled : function(u) {
					return u.disabled === false && u.type !== "hidden"
				},
				disabled : function(u) {
					return u.disabled === true
				},
				checked : function(u) {
					return u.checked === true
				},
				selected : function(u) {
					u.parentNode.selectedIndex;
					return u.selected === true
				},
				parent : function(u) {
					return !!u.firstChild
				},
				empty : function(u) {
					return !u.firstChild
				},
				has : function(u, v, x) {
					return !!r(x[3], u).length
				},
				header : function(u) {
					return /h\d/i.test(u.nodeName)
				},
				text : function(u) {
					return "text" === u.type
				},
				radio : function(u) {
					return "radio" === u.type
				},
				checkbox : function(u) {
					return "checkbox" === u.type
				},
				file : function(u) {
					return "file" === u.type
				},
				password : function(u) {
					return "password" === u.type
				},
				submit : function(u) {
					return "submit" === u.type
				},
				image : function(u) {
					return "image" === u.type
				},
				reset : function(u) {
					return "reset" === u.type
				},
				button : function(u) {
					return "button" === u.type
							|| u.nodeName.toUpperCase() === "BUTTON"
				},
				input : function(u) {
					return /input|select|textarea|button/i.test(u.nodeName)
				}
			},
			setFilters : {
				first : function(u, v) {
					return v === 0
				},
				last : function(v, x, y, u) {
					return x === u.length - 1
				},
				even : function(u, v) {
					return v % 2 === 0
				},
				odd : function(u, v) {
					return v % 2 === 1
				},
				lt : function(u, v, x) {
					return v < x[3] - 0
				},
				gt : function(u, v, x) {
					return v > x[3] - 0
				},
				nth : function(u, v, x) {
					return x[3] - 0 == v
				},
				eq : function(u, v, x) {
					return x[3] - 0 == v
				}
			},
			filter : {
				PSEUDO : function(A, v, u, z) {
					var x = v[1], C = n.filters[x];
					if (C) {
						return C(A, u, v, z)
					} else {
						if (x === "contains") {
							return (A.textContent || A.innerText || "")
									.indexOf(v[3]) >= 0
						} else {
							if (x === "not") {
								var B = v[3];
								for ( var u = 0, y = B.length; u < y; u++) {
									if (B[u] === A) {
										return false
									}
								}
								return true
							}
						}
					}
				},
				CHILD : function(C, z) {
					var v = z[1], B = C;
					switch (v) {
					case "only":
					case "first":
						while (B = B.previousSibling) {
							if (B.nodeType === 1) {
								return false
							}
						}
						if (v == "first") {
							return true
						}
						B = C;
					case "last":
						while (B = B.nextSibling) {
							if (B.nodeType === 1) {
								return false
							}
						}
						return true;
					case "nth":
						var A = z[2], D = z[3];
						if (A == 1 && D == 0) {
							return true
						}
						var x = z[0], ai = C.parentNode;
						if (ai && (ai.sizcache !== x || !C.nodeIndex)) {
							var y = 0;
							for (B = ai.firstChild; B; B = B.nextSibling) {
								if (B.nodeType === 1) {
									B.nodeIndex = ++y
								}
							}
							ai.sizcache = x
						}
						var u = C.nodeIndex - D;
						if (A == 0) {
							return u == 0
						} else {
							return (u % A == 0 && u / A >= 0)
						}
					}
				},
				ID : function(u, v) {
					return u.nodeType === 1 && u.getAttribute("id") === v
				},
				TAG : function(u, v) {
					return (v === "*" && u.nodeType === 1) || u.nodeName === v
				},
				CLASS : function(u, v) {
					return (" " + (u.className || u.getAttribute("class")) + " ")
							.indexOf(v) > -1
				},
				ATTR : function(A, u) {
					var v = u[1], y = n.attrHandle[v] ? n.attrHandle[v](A)
							: A[v] != null ? A[v] : A.getAttribute(v), z = y
							+ "", B = u[2], x = u[4];
					return y == null ? B === "!="
							: B === "=" ? z === x
									: B === "*=" ? z.indexOf(x) >= 0
											: B === "~=" ? (" " + z + " ")
													.indexOf(x) >= 0
													: !x ? z && y !== false
															: B === "!=" ? z != x
																	: B === "^=" ? z
																			.indexOf(x) === 0
																			: B === "$=" ? z
																					.substr(z.length
																							- x.length) === x
																					: B === "|=" ? z === x
																							|| z
																									.substr(
																											0,
																											x.length + 1) === x
																									+ "-"
																							: false
				},
				POS : function(A, x, v, z) {
					var y = x[2], u = n.setFilters[y];
					if (u) {
						return u(A, v, x, z)
					}
				}
			}
		};
		var g = n.match.POS;
		for ( var e in n.match) {
			n.match[e] = RegExp(n.match[e].source
					+ /(?![^\[]*\])(?![^\(]*\))/.source)
		}
		var s = function(u, v) {
			u = Array.prototype.slice.call(u);
			if (v) {
				v.push.apply(v, u);
				return v
			}
			return u
		};
		try {
			Array.prototype.slice.call(document.documentElement.childNodes)
		} catch (f) {
			s = function(z, u) {
				var x = u || [];
				if (p.call(z) === "[object Array]") {
					Array.prototype.push.apply(x, z)
				} else {
					if (typeof z.length === "number") {
						for ( var v = 0, y = z.length; v < y; v++) {
							x.push(z[v])
						}
					} else {
						for ( var v = 0; z[v]; v++) {
							x.push(z[v])
						}
					}
				}
				return x
			}
		}
		var q;
		if (document.documentElement.compareDocumentPosition) {
			q = function(v, x) {
				var u = v.compareDocumentPosition(x) & 4 ? -1 : v === x ? 0 : 1;
				if (u === 0) {
					hasDuplicate = true
				}
				return u
			}
		} else {
			if ("sourceIndex" in document.documentElement) {
				q = function(v, x) {
					var u = v.sourceIndex - x.sourceIndex;
					if (u === 0) {
						hasDuplicate = true
					}
					return u
				}
			} else {
				if (document.createRange) {
					q = function(u, x) {
						var v = u.ownerDocument.createRange(), y = x.ownerDocument
								.createRange();
						v.selectNode(u);
						v.collapse(true);
						y.selectNode(x);
						y.collapse(true);
						var z = v.compareBoundaryPoints(Range.START_TO_END, y);
						if (z === 0) {
							hasDuplicate = true
						}
						return z
					}
				}
			}
		}
		(function() {
			var v = document.createElement("form"), u = "script"
					+ (new Date).getTime();
			v.innerHTML = "<input name='" + u + "'/>";
			var x = document.documentElement;
			x.insertBefore(v, x.firstChild);
			if (!!document.getElementById(u)) {
				n.find.ID = function(B, A, z) {
					if (typeof A.getElementById !== "undefined" && !z) {
						var y = A.getElementById(B[1]);
						return y ? y.id === B[1]
								|| typeof y.getAttributeNode !== "undefined"
								&& y.getAttributeNode("id").nodeValue === B[1] ? [ y ]
								: ab
								: []
					}
				};
				n.filter.ID = function(z, y) {
					var A = typeof z.getAttributeNode !== "undefined"
							&& z.getAttributeNode("id");
					return z.nodeType === 1 && A && A.nodeValue === y
				}
			}
			x.removeChild(v)
		})();
		(function() {
			var u = document.createElement("div");
			u.appendChild(document.createComment(""));
			if (u.getElementsByTagName("*").length > 0) {
				n.find.TAG = function(y, z) {
					var A = z.getElementsByTagName(y[1]);
					if (y[1] === "*") {
						var v = [];
						for ( var x = 0; A[x]; x++) {
							if (A[x].nodeType === 1) {
								v.push(A[x])
							}
						}
						A = v
					}
					return A
				}
			}
			u.innerHTML = "<a href='#'></a>";
			if (u.firstChild
					&& typeof u.firstChild.getAttribute !== "undefined"
					&& u.firstChild.getAttribute("href") !== "#") {
				n.attrHandle.href = function(v) {
					return v.getAttribute("href", 2)
				}
			}
		})();
		if (document.querySelectorAll) {
			(function() {
				var v = r, u = document.createElement("div");
				u.innerHTML = "<p class='TEST'></p>";
				if (u.querySelectorAll
						&& u.querySelectorAll(".TEST").length === 0) {
					return
				}
				r = function(A, B, y, x) {
					B = B || document;
					if (!x && B.nodeType === 9 && !c(B)) {
						try {
							return s(B.querySelectorAll(A), y)
						} catch (z) {
						}
					}
					return v(A, B, y, x)
				};
				r.find = v.find;
				r.filter = v.filter;
				r.selectors = v.selectors;
				r.matches = v.matches
			})()
		}
		if (document.getElementsByClassName
				&& document.documentElement.getElementsByClassName) {
			(function() {
				var u = document.createElement("div");
				u.innerHTML = "<div class='test e'></div><div class='test'></div>";
				if (u.getElementsByClassName("e").length === 0) {
					return
				}
				u.lastChild.className = "e";
				if (u.getElementsByClassName("e").length === 1) {
					return
				}
				n.order.splice(1, 0, "CLASS");
				n.find.CLASS = function(y, x, v) {
					if (typeof x.getElementsByClassName !== "undefined" && !v) {
						return x.getElementsByClassName(y[1])
					}
				}
			})()
		}
		function d(B, v, x, D, u, ai) {
			var aj = B == "previousSibling" && !ai;
			for ( var z = 0, A = D.length; z < A; z++) {
				var C = D[z];
				if (C) {
					if (aj && C.nodeType === 1) {
						C.sizcache = x;
						C.sizset = z
					}
					C = C[B];
					var y = false;
					while (C) {
						if (C.sizcache === x) {
							y = D[C.sizset];
							break
						}
						if (C.nodeType === 1 && !ai) {
							C.sizcache = x;
							C.sizset = z
						}
						if (C.nodeName === v) {
							y = C;
							break
						}
						C = C[B]
					}
					D[z] = y
				}
			}
		}
		function a(B, v, x, D, u, ai) {
			var aj = B == "previousSibling" && !ai;
			for ( var z = 0, A = D.length; z < A; z++) {
				var C = D[z];
				if (C) {
					if (aj && C.nodeType === 1) {
						C.sizcache = x;
						C.sizset = z
					}
					C = C[B];
					var y = false;
					while (C) {
						if (C.sizcache === x) {
							y = D[C.sizset];
							break
						}
						if (C.nodeType === 1) {
							if (!ai) {
								C.sizcache = x;
								C.sizset = z
							}
							if (typeof v !== "string") {
								if (C === v) {
									y = true;
									break
								}
							} else {
								if (r.filter(v, [ C ]).length > 0) {
									y = C;
									break
								}
							}
						}
						C = C[B]
					}
					D[z] = y
				}
			}
		}
		var k = document.compareDocumentPosition ? function(u, v) {
			return u.compareDocumentPosition(v) & 16
		} : function(u, v) {
			return u !== v && (u.contains ? u.contains(v) : true)
		};
		var c = function(u) {
			return u.nodeType === 9 && u.documentElement.nodeName !== "HTML"
					|| !!u.ownerDocument && c(u.ownerDocument)
		};
		var m = function(y, A) {
			var u = [], C = "", B, v = A.nodeType ? [ A ] : A;
			while ((B = n.match.PSEUDO.exec(y))) {
				C += B[0];
				y = y.replace(n.match.PSEUDO, "")
			}
			y = n.relative[y] ? y + "*" : y;
			for ( var z = 0, x = v.length; z < x; z++) {
				r(y, v[z], u)
			}
			return r.filter(C, u)
		};
		T.find = r;
		T.filter = r.filter;
		T.expr = r.selectors;
		T.expr[":"] = T.expr.filters;
		r.selectors.filters.hidden = function(u) {
			return u.offsetWidth === 0 || u.offsetHeight === 0
		};
		r.selectors.filters.visible = function(u) {
			return u.offsetWidth > 0 || u.offsetHeight > 0
		};
		r.selectors.filters.animated = function(u) {
			return T.grep(T.timers, function(v) {
				return u === v.elem
			}).length
		};
		T.multiFilter = function(u, x, v) {
			if (v) {
				u = ":not(" + u + ")"
			}
			return r.matches(u, x)
		};
		T.dir = function(v, x) {
			var y = [], u = v[x];
			while (u && u != document) {
				if (u.nodeType == 1) {
					y.push(u)
				}
				u = u[x]
			}
			return y
		};
		T.nth = function(z, y, v, u) {
			y = y || 1;
			var x = 0;
			for (; z; z = z[v]) {
				if (z.nodeType == 1 && ++x == y) {
					break
				}
			}
			return z
		};
		T.sibling = function(u, v) {
			var x = [];
			for (; u; u = u.nextSibling) {
				if (u.nodeType == 1 && u != v) {
					x.push(u)
				}
			}
			return x
		};
		return;
		W.Sizzle = r
	})();
	T.event = {
		add : function(c, f, d, a) {
			if (c.nodeType == 3 || c.nodeType == 8) {
				return
			}
			if (c.setInterval && c != W) {
				c = W
			}
			if (!d.guid) {
				d.guid = this.guid++
			}
			if (a !== ab) {
				var e = d;
				d = this.proxy(e);
				d.data = a
			}
			var g = T.data(c, "events") || T.data(c, "events", {}), b = T.data(
					c, "handle")
					|| T
							.data(
									c,
									"handle",
									function() {
										return typeof T !== "undefined"
												&& !T.event.triggered ? T.event.handle
												.apply(arguments.callee.elem,
														arguments)
												: ab
									});
			b.elem = c;
			T
					.each(f.split(/\s+/),
							function(n, m) {
								var k = m.split(".");
								m = k.shift();
								d.type = k.slice().sort().join(".");
								var j = g[m];
								if (T.event.specialAll[m]) {
									T.event.specialAll[m].setup.call(c, a, k)
								}
								if (!j) {
									j = g[m] = {};
									if (!T.event.special[m]
											|| T.event.special[m].setup.call(c,
													a, k) === false) {
										if (c.addEventListener) {
											c.addEventListener(m, b, false)
										} else {
											if (c.attachEvent) {
												c.attachEvent("on" + m, b)
											}
										}
									}
								}
								j[d.guid] = d;
								T.event.global[m] = true
							});
			c = null
		},
		guid : 1,
		global : {},
		remove : function(b, e, c) {
			if (b.nodeType == 3 || b.nodeType == 8) {
				return
			}
			var f = T.data(b, "events"), g, j;
			if (f) {
				if (e === ab || (typeof e === "string" && e.charAt(0) == ".")) {
					for ( var d in f) {
						this.remove(b, d + (e || ""))
					}
				} else {
					if (e.type) {
						c = e.handler;
						e = e.type
					}
					T.each(e.split(/\s+/), function(q, n) {
						var k = n.split(".");
						n = k.shift();
						var p = RegExp("(^|\\.)"
								+ k.slice().sort().join(".*\\.") + "(\\.|$)");
						if (f[n]) {
							if (c) {
								delete f[n][c.guid]
							} else {
								for ( var m in f[n]) {
									if (p.test(f[n][m].type)) {
										delete f[n][m]
									}
								}
							}
							if (T.event.specialAll[n]) {
								T.event.specialAll[n].teardown.call(b, k)
							}
							for (g in f[n]) {
								break
							}
							if (!g) {
								if (!T.event.special[n]
										|| T.event.special[n].teardown.call(b,
												k) === false) {
									if (b.removeEventListener) {
										b.removeEventListener(n, T.data(b,
												"handle"), false)
									} else {
										if (b.detachEvent) {
											b.detachEvent("on" + n, T.data(b,
													"handle"))
										}
									}
								}
								g = null;
								delete f[n]
							}
						}
					})
				}
				for (g in f) {
					break
				}
				if (!g) {
					var a = T.data(b, "handle");
					if (a) {
						a.elem = null
					}
					T.removeData(b, "events");
					T.removeData(b, "handle")
				}
			}
		},
		trigger : function(d, b, e, j) {
			var f = d.type || d;
			if (!j) {
				d = typeof d === "object" ? d[aa] ? d : T.extend(T.Event(f), d)
						: T.Event(f);
				if (f.indexOf("!") >= 0) {
					d.type = f = f.slice(0, -1);
					d.exclusive = true
				}
				if (!e) {
					d.stopPropagation();
					if (this.global[f]) {
						T.each(T.cache, function() {
							if (this.events && this.events[f]) {
								T.event.trigger(d, b, this.handle.elem)
							}
						})
					}
				}
				if (!e || e.nodeType == 3 || e.nodeType == 8) {
					return ab
				}
				d.result = ab;
				d.target = e;
				b = T.makeArray(b);
				b.unshift(d)
			}
			d.currentTarget = e;
			var c = T.data(e, "handle");
			if (c) {
				c.apply(e, b)
			}
			if ((!e[f] || (T.nodeName(e, "a") && f == "click")) && e["on" + f]
					&& e["on" + f].apply(e, b) === false) {
				d.result = false
			}
			if (!j && e[f] && !d.isDefaultPrevented()
					&& !(T.nodeName(e, "a") && f == "click")) {
				this.triggered = true;
				try {
					e[f]()
				} catch (a) {
				}
			}
			this.triggered = false;
			if (!d.isPropagationStopped()) {
				var g = e.parentNode || e.ownerDocument;
				if (g) {
					T.event.trigger(d, b, g, true)
				}
			}
		},
		handle : function(b) {
			var c, j;
			b = arguments[0] = T.event.fix(b || W.event);
			b.currentTarget = this;
			var a = b.type.split(".");
			b.type = a.shift();
			c = !a.length && !b.exclusive;
			var d = RegExp("(^|\\.)" + a.slice().sort().join(".*\\.")
					+ "(\\.|$)");
			j = (T.data(this, "events") || {})[b.type];
			for ( var f in j) {
				var e = j[f];
				if (c || d.test(e.type)) {
					b.handler = e;
					b.data = e.data;
					var g = e.apply(this, arguments);
					if (g !== ab) {
						b.result = g;
						if (g === false) {
							b.preventDefault();
							b.stopPropagation()
						}
					}
					if (b.isImmediatePropagationStopped()) {
						break
					}
				}
			}
		},
		props : "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which"
				.split(" "),
		fix : function(c) {
			if (c[aa]) {
				return c
			}
			var e = c;
			c = T.Event(e);
			for ( var d = this.props.length, a; d;) {
				a = this.props[--d];
				c[a] = e[a]
			}
			if (!c.target) {
				c.target = c.srcElement || document
			}
			if (c.target.nodeType == 3) {
				c.target = c.target.parentNode
			}
			if (!c.relatedTarget && c.fromElement) {
				c.relatedTarget = c.fromElement == c.target ? c.toElement
						: c.fromElement
			}
			if (c.pageX == null && c.clientX != null) {
				var b = document.documentElement, f = document.body;
				c.pageX = c.clientX
						+ (b && b.scrollLeft || f && f.scrollLeft || 0)
						- (b.clientLeft || 0);
				c.pageY = c.clientY
						+ (b && b.scrollTop || f && f.scrollTop || 0)
						- (b.clientTop || 0)
			}
			if (!c.which
					&& ((c.charCode || c.charCode === 0) ? c.charCode
							: c.keyCode)) {
				c.which = c.charCode || c.keyCode
			}
			if (!c.metaKey && c.ctrlKey) {
				c.metaKey = c.ctrlKey
			}
			if (!c.which && c.button) {
				c.which = (c.button & 1 ? 1 : (c.button & 2 ? 3
						: (c.button & 4 ? 2 : 0)))
			}
			return c
		},
		proxy : function(a, b) {
			b = b || function() {
				return a.apply(this, arguments)
			};
			b.guid = a.guid = a.guid || b.guid || this.guid++;
			return b
		},
		special : {
			ready : {
				setup : P,
				teardown : function() {
				}
			}
		},
		specialAll : {
			live : {
				setup : function(b, a) {
					T.event.add(this, a[0], af)
				},
				teardown : function(a) {
					if (a.length) {
						var c = 0, b = RegExp("(^|\\.)" + a[0] + "(\\.|$)");
						T.each((T.data(this, "events").live || {}), function() {
							if (b.test(this.type)) {
								c++
							}
						});
						if (c < 1) {
							T.event.remove(this, a[0], af)
						}
					}
				}
			}
		}
	};
	T.Event = function(a) {
		if (!this.preventDefault) {
			return new T.Event(a)
		}
		if (a && a.type) {
			this.originalEvent = a;
			this.type = a.type
		} else {
			this.type = a
		}
		this.timeStamp = ad();
		this[aa] = true
	};
	function X() {
		return false
	}
	function J() {
		return true
	}
	T.Event.prototype = {
		preventDefault : function() {
			this.isDefaultPrevented = J;
			var a = this.originalEvent;
			if (!a) {
				return
			}
			if (a.preventDefault) {
				a.preventDefault()
			}
			a.returnValue = false
		},
		stopPropagation : function() {
			this.isPropagationStopped = J;
			var a = this.originalEvent;
			if (!a) {
				return
			}
			if (a.stopPropagation) {
				a.stopPropagation()
			}
			a.cancelBubble = true
		},
		stopImmediatePropagation : function() {
			this.isImmediatePropagationStopped = J;
			this.stopPropagation()
		},
		isDefaultPrevented : X,
		isPropagationStopped : X,
		isImmediatePropagationStopped : X
	};
	var ah = function(b) {
		var c = b.relatedTarget;
		while (c && c != this) {
			try {
				c = c.parentNode
			} catch (a) {
				c = this
			}
		}
		if (c != this) {
			b.type = b.data;
			T.event.handle.apply(this, arguments)
		}
	};
	T.each( {
		mouseover : "mouseenter",
		mouseout : "mouseleave"
	}, function(a, b) {
		T.event.special[b] = {
			setup : function() {
				T.event.add(this, a, ah, b)
			},
			teardown : function() {
				T.event.remove(this, a, ah)
			}
		}
	});
	T.fn.extend( {
		bind : function(b, a, c) {
			return b == "unload" ? this.one(b, a, c) : this.each(function() {
				T.event.add(this, b, c || a, c && a)
			})
		},
		one : function(b, a, c) {
			var d = T.event.proxy(c || a, function(e) {
				T(this).unbind(e, d);
				return (c || a).apply(this, arguments)
			});
			return this.each(function() {
				T.event.add(this, b, d, c && a)
			})
		},
		unbind : function(a, b) {
			return this.each(function() {
				T.event.remove(this, a, b)
			})
		},
		trigger : function(b, a) {
			return this.each(function() {
				T.event.trigger(b, a, this)
			})
		},
		triggerHandler : function(c, a) {
			if (this[0]) {
				var b = T.Event(c);
				b.preventDefault();
				b.stopPropagation();
				T.event.trigger(b, a, this[0]);
				return b.result
			}
		},
		toggle : function(a) {
			var c = arguments, b = 1;
			while (b < c.length) {
				T.event.proxy(a, c[b++])
			}
			return this.click(T.event.proxy(a, function(d) {
				this.lastToggle = (this.lastToggle || 0) % b;
				d.preventDefault();
				return c[this.lastToggle++].apply(this, arguments) || false
			}))
		},
		hover : function(b, a) {
			return this.mouseenter(b).mouseleave(a)
		},
		ready : function(a) {
			P();
			if (T.isReady) {
				a.call(document, T)
			} else {
				T.readyList.push(a)
			}
			return this
		},
		live : function(a, b) {
			var c = T.event.proxy(b);
			c.guid += this.selector + a;
			T(document).bind(Z(a, this.selector), this.selector, c);
			return this
		},
		die : function(a, b) {
			T(document).unbind(Z(a, this.selector), b ? {
				guid : b.guid + this.selector + a
			} : null);
			return this
		}
	});
	function af(a) {
		var d = RegExp("(^|\\.)" + a.type + "(\\.|$)"), b = true, c = [];
		T.each(T.data(this, "events").live || [], function(g, f) {
			if (d.test(f.type)) {
				var e = T(a.target).closest(f.data)[0];
				if (e) {
					c.push( {
						elem : e,
						fn : f
					})
				}
			}
		});
		c.sort(function(e, f) {
			return T.data(e.elem, "closest") - T.data(f.elem, "closest")
		});
		T.each(c, function() {
			if (this.fn.call(this.elem, a, this.fn.data) === false) {
				return (b = false)
			}
		});
		return b
	}
	function Z(a, b) {
		return [ "live", a, b.replace(/\./g, "`").replace(/ /g, "|") ]
				.join(".")
	}
	T.extend( {
		isReady : false,
		readyList : [],
		ready : function() {
			if (!T.isReady) {
				T.isReady = true;
				if (T.readyList) {
					T.each(T.readyList, function() {
						this.call(document, T)
					});
					T.readyList = null
				}
				T(document).triggerHandler("ready")
			}
		}
	});
	var G = false;
	function P() {
		if (G) {
			return
		}
		G = true;
		if (document.addEventListener) {
			document.addEventListener("DOMContentLoaded", function() {
				document.removeEventListener("DOMContentLoaded",
						arguments.callee, false);
				T.ready()
			}, false)
		} else {
			if (document.attachEvent) {
				document.attachEvent("onreadystatechange", function() {
					if (document.readyState === "complete") {
						document.detachEvent("onreadystatechange",
								arguments.callee);
						T.ready()
					}
				});
				if (document.documentElement.doScroll && W == W.top) {
					(function() {
						if (T.isReady) {
							return
						}
						try {
							document.documentElement.doScroll("left")
						} catch (a) {
							setTimeout(arguments.callee, 0);
							return
						}
						T.ready()
					})()
				}
			}
		}
		T.event.add(W, "load", T.ready)
	}
	T
			.each(
					("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error")
							.split(","), function(a, b) {
						T.fn[b] = function(c) {
							return c ? this.bind(b, c) : this.trigger(b)
						}
					});
	T(W).bind("unload", function() {
		for ( var a in T.cache) {
			if (a != 1 && T.cache[a].handle) {
				T.event.remove(T.cache[a].handle.elem)
			}
		}
	});
	(function() {
		T.support = {};
		var f = document.documentElement, e = document.createElement("script"), a = document
				.createElement("div"), b = "script" + (new Date).getTime();
		a.style.display = "none";
		a.innerHTML = '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
		var d = a.getElementsByTagName("*"), g = a.getElementsByTagName("a")[0];
		if (!d || !d.length || !g) {
			return
		}
		T.support = {
			leadingWhitespace : a.firstChild.nodeType == 3,
			tbody : !a.getElementsByTagName("tbody").length,
			objectAll : !!a.getElementsByTagName("object")[0]
					.getElementsByTagName("*").length,
			htmlSerialize : !!a.getElementsByTagName("link").length,
			style : /red/.test(g.getAttribute("style")),
			hrefNormalized : g.getAttribute("href") === "/a",
			opacity : g.style.opacity === "0.5",
			cssFloat : !!g.style.cssFloat,
			scriptEval : false,
			noCloneEvent : true,
			boxModel : null
		};
		e.type = "text/javascript";
		try {
			e.appendChild(document.createTextNode("window." + b + "=1;"))
		} catch (c) {
		}
		f.insertBefore(e, f.firstChild);
		if (W[b]) {
			T.support.scriptEval = true;
			delete W[b]
		}
		f.removeChild(e);
		if (a.attachEvent && a.fireEvent) {
			a.attachEvent("onclick", function() {
				T.support.noCloneEvent = false;
				a.detachEvent("onclick", arguments.callee)
			});
			a.cloneNode(true).fireEvent("onclick")
		}
		T(function() {
			var j = document.createElement("div");
			j.style.width = j.style.paddingLeft = "1px";
			document.body.appendChild(j);
			T.boxModel = T.support.boxModel = j.offsetWidth === 2;
			document.body.removeChild(j).style.display = "none"
		})
	})();
	var H = T.support.cssFloat ? "cssFloat" : "styleFloat";
	T.props = {
		"for" : "htmlFor",
		"class" : "className",
		"float" : H,
		cssFloat : H,
		styleFloat : H,
		readonly : "readOnly",
		maxlength : "maxLength",
		cellspacing : "cellSpacing",
		rowspan : "rowSpan",
		tabindex : "tabIndex"
	};
	T.fn
			.extend( {
				_load : T.fn.load,
				load : function(e, b, a) {
					if (typeof e !== "string") {
						return this._load(e)
					}
					var c = e.indexOf(" ");
					if (c >= 0) {
						var g = e.slice(c, e.length);
						e = e.slice(0, c)
					}
					var d = "GET";
					if (b) {
						if (T.isFunction(b)) {
							a = b;
							b = null
						} else {
							if (typeof b === "object") {
								b = T.param(b);
								d = "POST"
							}
						}
					}
					var f = this;
					T
							.ajax( {
								url : e,
								type : d,
								dataType : "html",
								data : b,
								complete : function(k, j) {
									if (j == "success" || j == "notmodified") {
										f
												.html(g ? T("<div/>")
														.append(
																k.responseText
																		.replace(
																				/<script(.|\s)*?\/script>/g,
																				""))
														.find(g)
														: k.responseText)
									}
									if (a) {
										f.each(a, [ k.responseText, j, k ])
									}
								}
							});
					return this
				},
				serialize : function() {
					return T.param(this.serializeArray())
				},
				serializeArray : function() {
					return this
							.map(
									function() {
										return this.elements ? T
												.makeArray(this.elements)
												: this
									})
							.filter(
									function() {
										return this.name
												&& !this.disabled
												&& (this.checked
														|| /select|textarea/i
																.test(this.nodeName) || /text|hidden|password|search/i
														.test(this.type))
									}).map(
									function(c, b) {
										var a = T(this).val();
										return a == null ? null
												: T.isArray(a) ? T.map(a,
														function(d, e) {
															return {
																name : b.name,
																value : d
															}
														}) : {
													name : b.name,
													value : a
												}
									}).get()
				}
			});
	T.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend"
			.split(","), function(b, a) {
		T.fn[a] = function(c) {
			return this.bind(a, c)
		}
	});
	var N = ad();
	T
			.extend( {
				get : function(d, b, a, c) {
					if (T.isFunction(b)) {
						a = b;
						b = null
					}
					return T.ajax( {
						type : "GET",
						url : d,
						data : b,
						success : a,
						dataType : c
					})
				},
				getScript : function(b, a) {
					return T.get(b, null, a, "script")
				},
				getJSON : function(c, b, a) {
					return T.get(c, b, a, "json")
				},
				post : function(d, b, a, c) {
					if (T.isFunction(b)) {
						a = b;
						b = {}
					}
					return T.ajax( {
						type : "POST",
						url : d,
						data : b,
						success : a,
						dataType : c
					})
				},
				ajaxSetup : function(a) {
					T.extend(T.ajaxSettings, a)
				},
				ajaxSettings : {
					url : location.href,
					global : true,
					type : "GET",
					contentType : "application/x-www-form-urlencoded",
					processData : true,
					async : true,
					xhr : function() {
						return W.ActiveXObject ? new ActiveXObject(
								"Microsoft.XMLHTTP") : new XMLHttpRequest()
					},
					accepts : {
						xml : "application/xml, text/xml",
						html : "text/html",
						script : "text/javascript, application/javascript",
						json : "application/json, text/javascript",
						text : "text/plain",
						_default : "*/*"
					}
				},
				lastModified : {},
				ajax : function(n) {
					n = T
							.extend(true, n, T.extend(true, {}, T.ajaxSettings,
									n));
					var a, x = /=\?(&|$)/g, f, b, v = n.type.toUpperCase();
					if (n.data && n.processData && typeof n.data !== "string") {
						n.data = T.param(n.data)
					}
					if (n.dataType == "jsonp") {
						if (v == "GET") {
							if (!n.url.match(x)) {
								n.url += (n.url.match(/\?/) ? "&" : "?")
										+ (n.jsonp || "callback") + "=?"
							}
						} else {
							if (!n.data || !n.data.match(x)) {
								n.data = (n.data ? n.data + "&" : "")
										+ (n.jsonp || "callback") + "=?"
							}
						}
						n.dataType = "json"
					}
					if (n.dataType == "json"
							&& (n.data && n.data.match(x) || n.url.match(x))) {
						a = "jsonp" + N++;
						if (n.data) {
							n.data = (n.data + "").replace(x, "=" + a + "$1")
						}
						n.url = n.url.replace(x, "=" + a + "$1");
						n.dataType = "script";
						W[a] = function(A) {
							b = A;
							s();
							p();
							W[a] = ab;
							try {
								delete W[a]
							} catch (z) {
							}
							if (u) {
								u.removeChild(d)
							}
						}
					}
					if (n.dataType == "script" && n.cache == null) {
						n.cache = false
					}
					if (n.cache === false && v == "GET") {
						var y = ad();
						var c = n.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + y
								+ "$2");
						n.url = c
								+ ((c == n.url) ? (n.url.match(/\?/) ? "&"
										: "?")
										+ "_=" + y : "")
					}
					if (n.data && v == "GET") {
						n.url += (n.url.match(/\?/) ? "&" : "?") + n.data;
						n.data = null
					}
					if (n.global && !T.active++) {
						T.event.trigger("ajaxStart")
					}
					var g = /^(\w+:)?\/\/([^\/?#]+)/.exec(n.url);
					if (n.dataType == "script"
							&& v == "GET"
							&& g
							&& (g[1] && g[1] != location.protocol || g[2] != location.host)) {
						var u = document.getElementsByTagName("head")[0];
						var d = document.createElement("script");
						d.src = n.url;
						if (n.scriptCharset) {
							d.charset = n.scriptCharset
						}
						if (!a) {
							var k = false;
							d.onload = d.onreadystatechange = function() {
								if (!k
										&& (!this.readyState
												|| this.readyState == "loaded" || this.readyState == "complete")) {
									k = true;
									s();
									p();
									d.onload = d.onreadystatechange = null;
									u.removeChild(d)
								}
							}
						}
						u.appendChild(d);
						return ab
					}
					var q = false;
					var r = n.xhr();
					if (n.username) {
						r.open(v, n.url, n.async, n.username, n.password)
					} else {
						r.open(v, n.url, n.async)
					}
					try {
						if (n.data) {
							r.setRequestHeader("Content-Type", n.contentType)
						}
						if (n.ifModified) {
							r.setRequestHeader("If-Modified-Since",
									T.lastModified[n.url]
											|| "Thu, 01 Jan 1970 00:00:00 GMT")
						}
						r
								.setRequestHeader("X-Requested-With",
										"XMLHttpRequest");
						r
								.setRequestHeader(
										"Accept",
										n.dataType && n.accepts[n.dataType] ? n.accepts[n.dataType]
												+ ", */*"
												: n.accepts._default)
					} catch (e) {
					}
					if (n.beforeSend && n.beforeSend(r, n) === false) {
						if (n.global && !--T.active) {
							T.event.trigger("ajaxStop")
						}
						r.abort();
						return false
					}
					if (n.global) {
						T.event.trigger("ajaxSend", [ r, n ])
					}
					var m = function(B) {
						if (r.readyState == 0) {
							if (j) {
								clearInterval(j);
								j = null;
								if (n.global && !--T.active) {
									T.event.trigger("ajaxStop")
								}
							}
						} else {
							if (!q && r
									&& (r.readyState == 4 || B == "timeout")) {
								q = true;
								if (j) {
									clearInterval(j);
									j = null
								}
								f = B == "timeout" ? "timeout"
										: !T.httpSuccess(r) ? "error"
												: n.ifModified
														&& T.httpNotModified(r,
																n.url) ? "notmodified"
														: "success";
								if (f == "success") {
									try {
										b = T.httpData(r, n.dataType, n)
									} catch (z) {
										f = "parsererror"
									}
								}
								if (f == "success") {
									var A;
									try {
										A = r
												.getResponseHeader("Last-Modified")
									} catch (z) {
									}
									if (n.ifModified && A) {
										T.lastModified[n.url] = A
									}
									if (!a) {
										s()
									}
								} else {
									T.handleError(n, r, f)
								}
								p();
								if (B) {
									r.abort()
								}
								if (n.async) {
									r = null
								}
							}
						}
					};
					if (n.async) {
						var j = setInterval(m, 13);
						if (n.timeout > 0) {
							setTimeout(function() {
								if (r && !q) {
									m("timeout")
								}
							}, n.timeout)
						}
					}
					try {
						r.send(n.data)
					} catch (e) {
						T.handleError(n, r, null, e)
					}
					if (!n.async) {
						m()
					}
					function s() {
						if (n.success) {
							n.success(b, f)
						}
						if (n.global) {
							T.event.trigger("ajaxSuccess", [ r, n ])
						}
					}
					function p() {
						if (n.complete) {
							n.complete(r, f)
						}
						if (n.global) {
							T.event.trigger("ajaxComplete", [ r, n ])
						}
						if (n.global && !--T.active) {
							T.event.trigger("ajaxStop")
						}
					}
					return r
				},
				handleError : function(c, a, d, b) {
					if (c.error) {
						c.error(a, d, b)
					}
					if (c.global) {
						T.event.trigger("ajaxError", [ a, c, b ])
					}
				},
				active : 0,
				httpSuccess : function(a) {
					try {
						return !a.status && location.protocol == "file:"
								|| (a.status >= 200 && a.status < 300)
								|| a.status == 304 || a.status == 1223
					} catch (b) {
					}
					return false
				},
				httpNotModified : function(b, d) {
					try {
						var a = b.getResponseHeader("Last-Modified");
						return b.status == 304 || a == T.lastModified[d]
					} catch (c) {
					}
					return false
				},
				httpData : function(a, c, d) {
					var e = a.getResponseHeader("content-type"), f = c == "xml"
							|| !c && e && e.indexOf("xml") >= 0, b = f ? a.responseXML
							: a.responseText;
					if (f && b.documentElement.tagName == "parsererror") {
						throw "parsererror"
					}
					if (d && d.dataFilter) {
						b = d.dataFilter(b, c)
					}
					if (typeof b === "string") {
						if (c == "script") {
							T.globalEval(b)
						}
						if (c == "json") {
							b = W["eval"]("(" + b + ")")
						}
					}
					return b
				},
				param : function(d) {
					var b = [];
					function a(f, e) {
						b[b.length] = encodeURIComponent(f) + "="
								+ encodeURIComponent(e)
					}
					if (T.isArray(d) || d.jquery) {
						T.each(d, function() {
							a(this.name, this.value)
						})
					} else {
						for ( var c in d) {
							if (T.isArray(d[c])) {
								T.each(d[c], function() {
									a(c, this)
								})
							} else {
								a(c, T.isFunction(d[c]) ? d[c]() : d[c])
							}
						}
					}
					return b.join("&").replace(/%20/g, "+")
				}
			});
	var V = {}, U, ae = [
			[ "height", "marginTop", "marginBottom", "paddingTop",
					"paddingBottom" ],
			[ "width", "marginLeft", "marginRight", "paddingLeft",
					"paddingRight" ], [ "opacity" ] ];
	function K(b, c) {
		var a = {};
		T.each(ae.concat.apply( [], ae.slice(0, c)), function() {
			a[this] = b
		});
		return a
	}
	T.fn.extend( {
		show : function(c, a) {
			if (c) {
				return this.animate(K("show", 3), c, a)
			} else {
				for ( var e = 0, g = this.length; e < g; e++) {
					var j = T.data(this[e], "olddisplay");
					this[e].style.display = j || "";
					if (T.css(this[e], "display") === "none") {
						var f = this[e].tagName, b;
						if (V[f]) {
							b = V[f]
						} else {
							var d = T("<" + f + " />").appendTo("body");
							b = d.css("display");
							if (b === "none") {
								b = "block"
							}
							d.remove();
							V[f] = b
						}
						T.data(this[e], "olddisplay", b)
					}
				}
				for ( var e = 0, g = this.length; e < g; e++) {
					this[e].style.display = T.data(this[e], "olddisplay") || ""
				}
				return this
			}
		},
		hide : function(b, a) {
			if (b) {
				return this.animate(K("hide", 3), b, a)
			} else {
				for ( var c = 0, d = this.length; c < d; c++) {
					var e = T.data(this[c], "olddisplay");
					if (!e && e !== "none") {
						T
								.data(this[c], "olddisplay", T.css(this[c],
										"display"))
					}
				}
				for ( var c = 0, d = this.length; c < d; c++) {
					this[c].style.display = "none"
				}
				return this
			}
		},
		_toggle : T.fn.toggle,
		toggle : function(a, b) {
			var c = typeof a === "boolean";
			return T.isFunction(a) && T.isFunction(b) ? this._toggle.apply(
					this, arguments) : a == null || c ? this.each(function() {
				var d = c ? a : T(this).is(":hidden");
				T(this)[d ? "show" : "hide"]()
			}) : this.animate(K("toggle", 3), a, b)
		},
		fadeTo : function(c, a, b) {
			return this.animate( {
				opacity : a
			}, c, b)
		},
		animate : function(a, d, b, c) {
			var e = T.speed(d, b, c);
			return this[e.queue === false ? "each" : "queue"](function() {
				var g = T.extend( {}, e), k, f = this.nodeType == 1
						&& T(this).is(":hidden"), j = this;
				for (k in a) {
					if (a[k] == "hide" && f || a[k] == "show" && !f) {
						return g.complete.call(this)
					}
					if ((k == "height" || k == "width") && this.style) {
						g.display = T.css(this, "display");
						g.overflow = this.style.overflow
					}
				}
				if (g.overflow != null) {
					this.style.overflow = "hidden"
				}
				g.curAnim = T.extend( {}, a);
				T.each(a,
						function(s, n) {
							var p = new T.fx(j, g, s);
							if (/toggle|show|hide/.test(n)) {
								p[n == "toggle" ? f ? "show" : "hide" : n](a)
							} else {
								var q = n.toString().match(
										/^([+-]=)?([\d+-.]+)(.*)$/), m = p
										.cur(true) || 0;
								if (q) {
									var u = parseFloat(q[2]), r = q[3] || "px";
									if (r != "px") {
										j.style[s] = (u || 1) + r;
										m = ((u || 1) / p.cur(true)) * m;
										j.style[s] = m + r
									}
									if (q[1]) {
										u = ((q[1] == "-=" ? -1 : 1) * u) + m
									}
									p.custom(m, u, r)
								} else {
									p.custom(m, n, "")
								}
							}
						});
				return true
			})
		},
		stop : function(b, c) {
			var a = T.timers;
			if (b) {
				this.queue( [])
			}
			this.each(function() {
				for ( var d = a.length - 1; d >= 0; d--) {
					if (a[d].elem == this) {
						if (c) {
							a[d](true)
						}
						a.splice(d, 1)
					}
				}
			});
			if (!c) {
				this.dequeue()
			}
			return this
		}
	});
	T.each( {
		slideDown : K("show", 1),
		slideUp : K("hide", 1),
		slideToggle : K("toggle", 1),
		fadeIn : {
			opacity : "show"
		},
		fadeOut : {
			opacity : "hide"
		}
	}, function(b, a) {
		T.fn[b] = function(d, c) {
			return this.animate(a, d, c)
		}
	});
	T.extend( {
		speed : function(b, a, c) {
			var d = typeof b === "object" ? b : {
				complete : c || !c && a || T.isFunction(b) && b,
				duration : b,
				easing : c && a || a && !T.isFunction(a) && a
			};
			d.duration = T.fx.off ? 0
					: typeof d.duration === "number" ? d.duration
							: T.fx.speeds[d.duration] || T.fx.speeds._default;
			d.old = d.complete;
			d.complete = function() {
				if (d.queue !== false) {
					T(this).dequeue()
				}
				if (T.isFunction(d.old)) {
					d.old.call(this)
				}
			};
			return d
		},
		easing : {
			linear : function(b, a, d, c) {
				return d + c * b
			},
			swing : function(b, a, d, c) {
				return ((-Math.cos(b * Math.PI) / 2) + 0.5) * c + d
			}
		},
		timers : [],
		fx : function(b, c, a) {
			this.options = c;
			this.elem = b;
			this.prop = a;
			if (!c.orig) {
				c.orig = {}
			}
		}
	});
	T.fx.prototype = {
		update : function() {
			if (this.options.step) {
				this.options.step.call(this.elem, this.now, this)
			}
			(T.fx.step[this.prop] || T.fx.step._default)(this);
			if ((this.prop == "height" || this.prop == "width")
					&& this.elem.style) {
				this.elem.style.display = "block"
			}
		},
		cur : function(a) {
			if (this.elem[this.prop] != null
					&& (!this.elem.style || this.elem.style[this.prop] == null)) {
				return this.elem[this.prop]
			}
			var b = parseFloat(T.css(this.elem, this.prop, a));
			return b && b > -10000 ? b : parseFloat(T.curCSS(this.elem,
					this.prop)) || 0
		},
		custom : function(a, b, c) {
			this.startTime = ad();
			this.start = a;
			this.end = b;
			this.unit = c || this.unit || "px";
			this.now = this.start;
			this.pos = this.state = 0;
			var e = this;
			function d(f) {
				return e.step(f)
			}
			d.elem = this.elem;
			if (d() && T.timers.push(d) && !U) {
				U = setInterval(function() {
					var f = T.timers;
					for ( var g = 0; g < f.length; g++) {
						if (!f[g]()) {
							f.splice(g--, 1)
						}
					}
					if (!f.length) {
						clearInterval(U);
						U = ab
					}
				}, 13)
			}
		},
		show : function() {
			this.options.orig[this.prop] = T.attr(this.elem.style, this.prop);
			this.options.show = true;
			this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0,
					this.cur());
			T(this.elem).show()
		},
		hide : function() {
			this.options.orig[this.prop] = T.attr(this.elem.style, this.prop);
			this.options.hide = true;
			this.custom(this.cur(), 0)
		},
		step : function(c) {
			var d = ad();
			if (c || d >= this.options.duration + this.startTime) {
				this.now = this.end;
				this.pos = this.state = 1;
				this.update();
				this.options.curAnim[this.prop] = true;
				var f = true;
				for ( var e in this.options.curAnim) {
					if (this.options.curAnim[e] !== true) {
						f = false
					}
				}
				if (f) {
					if (this.options.display != null) {
						this.elem.style.overflow = this.options.overflow;
						this.elem.style.display = this.options.display;
						if (T.css(this.elem, "display") == "none") {
							this.elem.style.display = "block"
						}
					}
					if (this.options.hide) {
						T(this.elem).hide()
					}
					if (this.options.hide || this.options.show) {
						for ( var b in this.options.curAnim) {
							T.attr(this.elem.style, b, this.options.orig[b])
						}
					}
					this.options.complete.call(this.elem)
				}
				return false
			} else {
				var a = d - this.startTime;
				this.state = a / this.options.duration;
				this.pos = T.easing[this.options.easing
						|| (T.easing.swing ? "swing" : "linear")](this.state,
						a, 0, 1, this.options.duration);
				this.now = this.start + ((this.end - this.start) * this.pos);
				this.update()
			}
			return true
		}
	};
	T.extend(T.fx, {
		speeds : {
			slow : 600,
			fast : 200,
			_default : 400
		},
		step : {
			opacity : function(a) {
				T.attr(a.elem.style, "opacity", a.now)
			},
			_default : function(a) {
				if (a.elem.style && a.elem.style[a.prop] != null) {
					a.elem.style[a.prop] = a.now + a.unit
				} else {
					a.elem[a.prop] = a.now
				}
			}
		}
	});
	if (document.documentElement.getBoundingClientRect) {
		T.fn.offset = function() {
			if (!this[0]) {
				return {
					top : 0,
					left : 0
				}
			}
			if (this[0] === this[0].ownerDocument.body) {
				return T.offset.bodyOffset(this[0])
			}
			var f = this[0].getBoundingClientRect(), c = this[0].ownerDocument, g = c.body, j = c.documentElement, a = j.clientTop
					|| g.clientTop || 0, b = j.clientLeft || g.clientLeft || 0, d = f.top
					+ (self.pageYOffset || T.boxModel && j.scrollTop || g.scrollTop)
					- a, e = f.left
					+ (self.pageXOffset || T.boxModel && j.scrollLeft || g.scrollLeft)
					- b;
			return {
				top : d,
				left : e
			}
		}
	} else {
		T.fn.offset = function() {
			if (!this[0]) {
				return {
					top : 0,
					left : 0
				}
			}
			if (this[0] === this[0].ownerDocument.body) {
				return T.offset.bodyOffset(this[0])
			}
			T.offset.initialized || T.offset.initialize();
			var f = this[0], k = f.offsetParent, m = f, a = f.ownerDocument, c, j = a.documentElement, e = a.body, d = a.defaultView, n = d
					.getComputedStyle(f, null), b = f.offsetTop, g = f.offsetLeft;
			while ((f = f.parentNode) && f !== e && f !== j) {
				c = d.getComputedStyle(f, null);
				b -= f.scrollTop, g -= f.scrollLeft;
				if (f === k) {
					b += f.offsetTop, g += f.offsetLeft;
					if (T.offset.doesNotAddBorder
							&& !(T.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i
									.test(f.tagName))) {
						b += parseInt(c.borderTopWidth, 10) || 0,
								g += parseInt(c.borderLeftWidth, 10) || 0
					}
					m = k, k = f.offsetParent
				}
				if (T.offset.subtractsBorderForOverflowNotVisible
						&& c.overflow !== "visible") {
					b += parseInt(c.borderTopWidth, 10) || 0, g += parseInt(
							c.borderLeftWidth, 10) || 0
				}
				n = c
			}
			if (n.position === "relative" || n.position === "static") {
				b += e.offsetTop, g += e.offsetLeft
			}
			if (n.position === "fixed") {
				b += Math.max(j.scrollTop, e.scrollTop), g += Math.max(
						j.scrollLeft, e.scrollLeft)
			}
			return {
				top : b,
				left : g
			}
		}
	}
	T.offset = {
		initialize : function() {
			if (this.initialized) {
				return
			}
			var c = document.body, k = document.createElement("div"), g, j, a, f, b, m, e = c.style.marginTop, d = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
			b = {
				position : "absolute",
				top : 0,
				left : 0,
				margin : 0,
				border : 0,
				width : "1px",
				height : "1px",
				visibility : "hidden"
			};
			for (m in b) {
				k.style[m] = b[m]
			}
			k.innerHTML = d;
			c.insertBefore(k, c.firstChild);
			g = k.firstChild, j = g.firstChild,
					f = g.nextSibling.firstChild.firstChild;
			this.doesNotAddBorder = (j.offsetTop !== 5);
			this.doesAddBorderForTableAndCells = (f.offsetTop === 5);
			g.style.overflow = "hidden", g.style.position = "relative";
			this.subtractsBorderForOverflowNotVisible = (j.offsetTop === -5);
			c.style.marginTop = "1px";
			this.doesNotIncludeMarginInBodyOffset = (c.offsetTop === 0);
			c.style.marginTop = e;
			c.removeChild(k);
			this.initialized = true
		},
		bodyOffset : function(c) {
			T.offset.initialized || T.offset.initialize();
			var a = c.offsetTop, b = c.offsetLeft;
			if (T.offset.doesNotIncludeMarginInBodyOffset) {
				a += parseInt(T.curCSS(c, "marginTop", true), 10) || 0,
						b += parseInt(T.curCSS(c, "marginLeft", true), 10) || 0
			}
			return {
				top : a,
				left : b
			}
		}
	};
	T.fn
			.extend( {
				position : function() {
					var b = 0, c = 0, e;
					if (this[0]) {
						var d = this.offsetParent(), a = this.offset(), f = /^body|html$/i
								.test(d[0].tagName) ? {
							top : 0,
							left : 0
						} : d.offset();
						a.top -= Y(this, "marginTop");
						a.left -= Y(this, "marginLeft");
						f.top += Y(d, "borderTopWidth");
						f.left += Y(d, "borderLeftWidth");
						e = {
							top : a.top - f.top,
							left : a.left - f.left
						}
					}
					return e
				},
				offsetParent : function() {
					var a = this[0].offsetParent || document.body;
					while (a
							&& (!/^body|html$/i.test(a.tagName) && T.css(a,
									"position") == "static")) {
						a = a.offsetParent
					}
					return T(a)
				}
			});
	T.each( [ "Left", "Top" ], function(b, c) {
		var a = "scroll" + c;
		T.fn[a] = function(d) {
			if (!this[0]) {
				return null
			}
			return d !== ab ? this.each(function() {
				this == W || this == document ? W.scrollTo(!b ? d : T(W)
						.scrollLeft(), b ? d : T(W).scrollTop()) : this[a] = d
			}) : this[0] == W || this[0] == document ? self[b ? "pageYOffset"
					: "pageXOffset"]
					|| T.boxModel
					&& document.documentElement[a]
					|| document.body[a] : this[0][a]
		}
	});
	T.each( [ "Height", "Width" ], function(b, d) {
		var f = b ? "Left" : "Top", c = b ? "Right" : "Bottom", e = d
				.toLowerCase();
		T.fn["inner" + d] = function() {
			return this[0] ? T.css(this[0], e, false, "padding") : null
		};
		T.fn["outer" + d] = function(g) {
			return this[0] ? T.css(this[0], e, false, g ? "margin" : "border")
					: null
		};
		var a = d.toLowerCase();
		T.fn[a] = function(g) {
			return this[0] == W ? document.compatMode == "CSS1Compat"
					&& document.documentElement["client" + d]
					|| document.body["client" + d] : this[0] == document ? Math
					.max(document.documentElement["client" + d],
							document.body["scroll" + d],
							document.documentElement["scroll" + d],
							document.body["offset" + d],
							document.documentElement["offset" + d])
					: g === ab ? (this.length ? T.css(this[0], a) : null)
							: this.css(a, typeof g === "string" ? g : g + "px")
		}
	})
})();
(function(a) {
	a.address = (function() {
		var c = function(p) {
			a(a.address)
					.trigger(
							a
									.extend(
											a.Event(p),
											(function() {
												var am = {
													value : a.address.value(),
													path : a.address.path(),
													pathNames : a.address
															.pathNames(),
													parameterNames : a.address
															.parameterNames(),
													parameters : {},
													queryString : a.address
															.queryString()
												};
												for ( var al = 0, ak = am.parameterNames.length; al < ak; al++) {
													am.parameters[am.parameterNames[al]] = a.address
															.parameter(am.parameterNames[al])
												}
												return am
											}).call(a.address)))
		};
		var q = function(al, ak, p) {
			a(a.address).bind(al, p || ak, p && ak);
			return a.address
		};
		var Z = function() {
			c("init")
		};
		var u = function() {
			c("change")
		};
		var T = function() {
			var p = Y.href.indexOf("#");
			return p != -1 ? ai(v(Y.href.substr(p + 1))) : ""
		};
		var j = function() {
			try {
				return top.document != undefined ? top : window
			} catch (p) {
				return window
			}
		};
		var K = function(ak, p) {
			if (I.strict) {
				ak = p ? (ak.substr(0, 1) != "/" ? "/" + ak : ak)
						: (ak == "" ? "/" : ak)
			}
			return ak
		};
		var x = function(p, ak) {
			return (k && Y.protocol == "file:") ? (ak ? U.replace(/\?/, "%3F")
					: U.replace(/%253F/, "?")) : p
		};
		var aj = function(am) {
			for ( var ak = 0, p = am.childNodes.length, al; ak < p; ak++) {
				if (am.childNodes[ak].src) {
					n = String(am.childNodes[ak].src)
				}
				if (al = aj(am.childNodes[ak])) {
					return al
				}
			}
		};
		var ab = function() {
			if (!z) {
				var ak = T(), p = !(U == ak);
				if (A && y < 523) {
					if (J != ac.length) {
						J = ac.length;
						if (typeof F[J - 1] != L) {
							U = F[J - 1]
						}
						X(false)
					}
				} else {
					if (k && y < 7 && p) {
						Y.reload()
					} else {
						if (p) {
							U = ak;
							X(false)
						}
					}
				}
			}
		};
		var X = function(p) {
			u();
			if (p) {
				c("internalChange")
			} else {
				c("externalChange")
			}
			s(C, 10)
		};
		var C = function() {
			var ak = (Y.pathname + (/\/$/.test(Y.pathname) ? "" : "/") + a.address
					.value()).replace(/\/\//, "/").replace(/^\/$/, ""), p = window[I.tracker];
			if (typeof p == g) {
				p(ak)
			} else {
				if (typeof pageTracker != L
						&& typeof pageTracker._trackPageview == g) {
					pageTracker._trackPageview(ak)
				} else {
					if (typeof urchinTracker == g) {
						urchinTracker(ak)
					}
				}
			}
		};
		var e = function() {
			var p = f.contentWindow.document;
			p.open();
			p.write("<html><head><title>" + ag.title + "</title><script>var "
					+ D + ' = "' + T() + '";<\/script></head></html>');
			p.close()
		};
		var R = function() {
			if (!W) {
				W = H;
				if (k && y < 8) {
					var p = ag.getElementsByTagName("frameset")[0];
					f = ag.createElement((p ? "" : "i") + "frame");
					if (p) {
						p.insertAdjacentElement("beforeEnd", f);
						p[p.cols ? "cols" : "rows"] += ",0";
						f.src = "javascript:false";
						f.noResize = true;
						f.frameBorder = f.frameSpacing = 0
					} else {
						f.src = "javascript:false";
						f.style.display = "none";
						ag.body.insertAdjacentElement("afterBegin", f)
					}
					s(function() {
						a(f).bind("load", function() {
							var ak = f.contentWindow;
							var al = ak.location.href;
							U = (typeof ak[D] != L ? ak[D] : "");
							if (U != T()) {
								X(false);
								Y.hash = x(U, H)
							}
						});
						if (typeof f.contentWindow[D] == L) {
							e()
						}
					}, 50)
				} else {
					if (A) {
						if (y < 418) {
							a(ag.body)
									.append(
											'<form id="' + D + '" style="position:absolute;top:-9999px;" method="get"></form>');
							N = ag.getElementById(D)
						}
						if (typeof Y[D] == L) {
							Y[D] = {}
						}
						if (typeof Y[D][Y.pathname] != L) {
							F = Y[D][Y.pathname].split(",")
						}
					}
				}
				s(function() {
					Z();
					X(false)
				}, 1);
				if (k && y >= 8) {
					ag.body.onhashchange = ab
				} else {
					B(ab, 50)
				}
				a("a[rel*=address:]").address()
			}
		};
		var D = "jQueryAddress", g = "function", L = "undefined", H = true, ad = false, G = a.browser, y = parseFloat(a.browser.version), ae = G.mozilla, k = G.msie, P = G.opera, A = G.safari, af = ad, S = j(), ag = S.document, ac = S.history, Y = S.location, B = setInterval, s = setTimeout, v = decodeURI, ai = encodeURI, ah = navigator.userAgent, f, N, n, M = ag.title, J = ac.length, z = ad, W = ad, Q = H, O = H, F = [], E = {}, U = T(), m = {}, I = {
			history : H,
			strict : H
		};
		if (k) {
			y = parseFloat(ah.substr(ah.indexOf("MSIE") + 4));
			if (ag.documentMode && ag.documentMode != y) {
				y = ag.documentMode != 8 ? 7 : 8
			}
		}
		af = (ae && y >= 1) || (k && y >= 6) || (P && y >= 9.5)
				|| (A && y >= 312);
		if (af) {
			for ( var aa = 1; aa < J; aa++) {
				F.push("")
			}
			F.push(T());
			if (k && Y.hash != T()) {
				Y.hash = "#" + x(T(), H)
			}
			if (P) {
				history.navigationMode = "compatible"
			}
			aj(document);
			var b = n.indexOf("?");
			if (n && b > -1) {
				var r, d = n.substr(b + 1).split("&");
				for ( var aa = 0, V; V = d[aa]; aa++) {
					r = V.split("=");
					if (/^(history|strict)$/.test(r[0])) {
						I[r[0]] = (isNaN(r[1]) ? /^(true|yes)$/i.test(r[1])
								: (parseInt(r[1]) != 0))
					}
					if (/^tracker$/.test(r[0])) {
						I[r[0]] = r[1]
					}
				}
			}
			a(R)
		} else {
			if ((!af && Y.href.indexOf("#") != -1)
					|| (A && y < 418 && Y.href.indexOf("#") != -1 && Y.search != "")) {
				ag.open();
				ag
						.write('<html><head><meta http-equiv="refresh" content="0;url=' + Y.href
								.substr(0, Y.href.indexOf("#")) + '" /></head></html>');
				ag.close()
			} else {
				C()
			}
		}
		return {
			init : function(ak, p) {
				a(this).bind("init", p || ak, p && ak);
				return this
			},
			change : function(ak, p) {
				a(this).bind("change", p || ak, p && ak);
				return this
			},
			internalChange : function(ak, p) {
				a(this).bind("internalChange", p || ak, p && ak);
				return this
			},
			externalChange : function(ak, p) {
				a(this).bind("externalChange", p || ak, p && ak);
				return this
			},
			baseURL : function() {
				var p = Y.href;
				if (p.indexOf("#") != -1) {
					p = p.substr(0, p.indexOf("#"))
				}
				if (p.substr(p.length - 1) == "/") {
					p = p.substr(0, p.length - 1)
				}
				return p
			},
			strict : function(p) {
				if (p) {
					I.strict = p;
					return this
				}
				return I.strict
			},
			history : function(p) {
				if (p) {
					I.history = p;
					return this
				}
				return I.history
			},
			tracker : function(p) {
				if (p) {
					I.tracker = p;
					return this
				}
				return I.tracker
			},
			title : function(p) {
				if (p) {
					p = v(p);
					s(function() {
						M = ag.title = p;
						if (O && f && f.contentWindow
								&& f.contentWindow.document) {
							f.contentWindow.document.title = p;
							O = ad
						}
						if (!Q && ae) {
							Y.replace(Y.href.indexOf("#") != -1 ? Y.href
									: Y.href + "#")
						}
						Q = ad
					}, 50);
					return this
				}
				return ag.title
			},
			value : function(al) {
				if (al) {
					al = ai(v(K(al, H)));
					if (al == "/") {
						al = ""
					}
					if (U == al) {
						return
					}
					Q = H;
					U = al;
					z = H;
					X(true);
					F[ac.length] = U;
					if (A) {
						if (I.history) {
							Y[D][Y.pathname] = F.toString();
							J = ac.length + 1;
							if (y < 418) {
								if (Y.search == "") {
									N.action = "#" + U;
									N.submit()
								}
							} else {
								if (y < 523 || U == "") {
									var p = ag.createEvent("MouseEvents");
									p.initEvent("click", H, H);
									var ak = ag.createElement("a");
									ak.href = "#" + U;
									ak.dispatchEvent(p)
								} else {
									Y.hash = "#" + U
								}
							}
						} else {
							Y.replace("#" + U)
						}
					} else {
						if (U != T()) {
							if (I.history) {
								Y.hash = "#" + x(U, H)
							} else {
								Y.replace("#" + U)
							}
						}
					}
					if ((k && y < 8) && I.history) {
						s(e, 50)
					}
					if (A) {
						s(function() {
							z = ad
						}, 1)
					} else {
						z = ad
					}
					return this
				}
				if (!af) {
					return null
				}
				return v(K(x(U, ad), ad))
			},
			path : function(ak) {
				if (ak) {
					var p = this.queryString();
					this.value(ak + (p ? "?" + p : ""));
					return this
				}
				var ak = this.value();
				return (ak.indexOf("?") != -1) ? ak.split("?")[0] : ak
			},
			queryString : function(ak) {
				if (ak) {
					this.value(this.path() + (ak ? "?" + ak : ""));
					return this
				}
				var ak = this.value(), p = ak.indexOf("?");
				if (p != -1 && p < ak.length) {
					return ak.substr(p + 1)
				}
			},
			parameter : function(al, av, an) {
				if (av) {
					var au = this.parameterNames(), ap = [];
					for ( var ar = 0; ar < au.length; ar++) {
						var ao = au[ar], aw = this.parameter(ao);
						if (typeof aw == "string") {
							aw = [ aw ]
						}
						if (ao == al) {
							aw = an ? aw.concat( [ av ]) : [ av ]
						}
						for ( var aq = 0; aq < aw.length; aq++) {
							ap.push(ao + "=" + aw[aq])
						}
					}
					this.queryString(ap.join("&"));
					return this
				}
				var av = this.value(), at = av.indexOf("?");
				if (at != -1) {
					av = av.substr(at + 1);
					var ap = av.split("&"), ak = [];
					for ( var ar = 0; ar < ap.length; ar++) {
						var am = ap[ar].split("=");
						if (am[0] == al) {
							ak.push(am[1])
						}
					}
					if (ak.length != 0) {
						return ak.length != 1 ? ak : ak[0]
					}
				}
			},
			pathNames : function() {
				var ak = this.path(), p = ak.split("/");
				if (ak.substr(0, 1) == "/" || ak.length == 0) {
					p.splice(0, 1)
				}
				if (ak.substr(ak.length - 1, 1) == "/") {
					p.splice(p.length - 1, 1)
				}
				return p
			},
			parameterNames : function() {
				var am = this.value(), ak = am.indexOf("?"), an = [];
				if (ak != -1) {
					am = am.substr(ak + 1);
					if (am != "" && am.indexOf("=") != -1) {
						var ao = am.split("&");
						for ( var al = 0; al < ao.length; al++) {
							var p = ao[al].split("=")[0];
							if (a.inArray(p, an) == -1) {
								an.push(p)
							}
						}
					}
				}
				return an
			}
		}
	})();
	a.fn.address = function(b) {
		a(this).click(
				function() {
					var c = b ? b.call(this) : /address:/.test(a(this).attr(
							"rel")) ? a(this).attr("rel").split("address:")[1]
							.split(" ")[0] : a(this).attr("href").replace(/^#/,
							"");
					a.address.value(c);
					return false
				})
	}
}(jQuery));
(function($) {
	$.extend( {
		metadata : {
			defaults : {
				type : "class",
				name : "metadata",
				cre : /({.*})/,
				single : "metadata"
			},
			setType : function(type, name) {
				this.defaults.type = type;
				this.defaults.name = name
			},
			get : function(elem, opts) {
				var settings = $.extend( {}, this.defaults, opts);
				if (!settings.single.length) {
					settings.single = "metadata"
				}
				var data = $.data(elem, settings.single);
				if (data) {
					return data
				}
				data = "{}";
				if (settings.type == "class") {
					var m = settings.cre.exec(elem.className);
					if (m) {
						data = m[1]
					}
				} else {
					if (settings.type == "elem") {
						if (!elem.getElementsByTagName) {
							return undefined
						}
						var e = elem.getElementsByTagName(settings.name);
						if (e.length) {
							data = $.trim(e[0].innerHTML)
						}
					} else {
						if (elem.getAttribute != undefined) {
							var attr = elem.getAttribute(settings.name);
							if (attr) {
								data = attr
							}
						}
					}
				}
				if (data.indexOf("{") < 0) {
					data = "{" + data + "}"
				}
				data = eval("(" + data + ")");
				$.data(elem, settings.single, data);
				return data
			}
		}
	});
	$.fn.metadata = function(opts) {
		return $.metadata.get(this[0], opts)
	}
})(jQuery);
checkBrowserWidth();
function jHash(a) {
	$(a).ScrollTo(800)
}
function checkBrowserWidth() {
	var b = getBrowserWidth();
	if (b == 0) {
		var a = document.cookie.match(/(^|;)tmib_res_layout[^;]*(;|$)/);
		if (a != null) {
			setStylesheet(unescape(a[0].split("=")[1]))
		}
		$(document).load(checkBrowserWidth);
		return false
	}
	if (b > 900) {
		setStylesheet("1024 x 768");
		document.cookie = "tmib_res_layout=" + escape("1024 x 768")
	} else {
		setStylesheet("");
		document.cookie = "tmib_res_layout="
	}
	return true
}
function getBrowserWidth() {
	if (window.innerWidth) {
		return window.innerWidth
	} else {
		if (document.documentElement
				&& document.documentElement.clientWidth != 0) {
			return document.documentElement.clientWidth
		} else {
			if (document.body) {
				return document.body.clientWidth
			}
		}
	}
	return 0
}
function setStylesheet(b) {
	var c;
	if (document.getElementsByTagName) {
		for ( var a = 0; (c = document.getElementsByTagName("link")[a]); a++) {
			if (c.getAttribute("rel").indexOf("style") != -1
					&& c.getAttribute("title")) {
				c.disabled = true;
				if (c.getAttribute("title") == b) {
					c.disabled = false
				}
			}
		}
	}
	return true
}
jQuery.getPos = function(g) {
	var b = 0;
	var c = 0;
	var a = jQuery.intval(jQuery.css(g, "width"));
	var d = jQuery.intval(jQuery.css(g, "height"));
	var f = g.offsetWidth;
	var j = g.offsetHeight;
	while (g.offsetParent) {
		b += g.offsetLeft
				+ (g.currentStyle ? jQuery
						.intval(g.currentStyle.borderLeftWidth) : 0);
		c += g.offsetTop
				+ (g.currentStyle ? jQuery
						.intval(g.currentStyle.borderTopWidth) : 0);
		g = g.offsetParent
	}
	b += g.offsetLeft
			+ (g.currentStyle ? jQuery.intval(g.currentStyle.borderLeftWidth)
					: 0);
	c += g.offsetTop
			+ (g.currentStyle ? jQuery.intval(g.currentStyle.borderTopWidth)
					: 0);
	return {
		x : b,
		y : c,
		w : a,
		h : d,
		wb : f,
		hb : j
	}
};
jQuery.getClient = function(a) {
	if (a) {
		w = a.clientWidth;
		h = a.clientHeight
	} else {
		w = (window.innerWidth) ? window.innerWidth
				: (document.documentElement && document.documentElement.clientWidth) ? document.documentElement.clientWidth
						: document.body.offsetWidth;
		h = (window.innerHeight) ? window.innerHeight
				: (document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight
						: document.body.offsetHeight
	}
	return {
		w : w,
		h : h
	}
};
jQuery.getScroll = function(a) {
	if (a) {
		t = a.scrollTop;
		l = a.scrollLeft;
		w = a.scrollWidth;
		h = a.scrollHeight
	} else {
		if (document.documentElement && document.documentElement.scrollTop) {
			t = document.documentElement.scrollTop;
			l = document.documentElement.scrollLeft;
			w = document.documentElement.scrollWidth;
			h = document.documentElement.scrollHeight
		} else {
			if (document.body) {
				t = document.body.scrollTop;
				l = document.body.scrollLeft;
				w = document.body.scrollWidth;
				h = document.body.scrollHeight
			}
		}
	}
	return {
		t : t,
		l : l,
		w : w,
		h : h
	}
};
jQuery.intval = function(a) {
	a = parseInt(a);
	return isNaN(a) ? 0 : a
};
jQuery.fn.ScrollTo = function(a) {
	o = jQuery.speed(a);
	return this.each(function() {
		new jQuery.fx.ScrollTo(this, o)
	})
};
jQuery.fx.ScrollTo = function(a, c) {
	var b = this;
	b.o = c;
	b.e = a;
	b.p = jQuery.getPos(a);
	b.s = jQuery.getScroll();
	b.clear = function() {
		clearInterval(b.timer);
		b.timer = null
	};
	b.t = (new Date).getTime();
	b.step = function() {
		var d = (new Date).getTime();
		var e = (d - b.t) / b.o.duration;
		if (d >= b.o.duration + b.t) {
			b.clear();
			setTimeout(function() {
				b.scroll(b.p.y, b.p.x)
			}, 13)
		} else {
			st = ((-Math.cos(e * Math.PI) / 2) + 0.5) * (b.p.y - b.s.t) + b.s.t;
			sl = ((-Math.cos(e * Math.PI) / 2) + 0.5) * (b.p.x - b.s.l) + b.s.l;
			b.scroll(st, sl)
		}
	};
	b.scroll = function(e, d) {
		window.scrollTo(d, e)
	};
	b.timer = setInterval(function() {
		b.step()
	}, 13)
};
(function(b) {
	b.fn.styleSelect = function(c) {
		var d = 1;
		var e = b.extend( {}, b.fn.styleSelect.defaults, c);
		b("input,select,textarea,button").each(function() {
			var f = b(this);
			if (!f.attr("tabindex")) {
				f.attr("tabindex", d);
				d++
			}
		});
		return this.each(function() {
			mainSelect = b(this);
			var m = mainSelect.attr("name");
			var k = mainSelect.attr("tabindex");
			var g = new Date;
			var j = "selectbox_" + m + g.getTime();
			mainSelect.hide();
			var f = b('<div tabindex="' + k + '"></div>').css( {
				position : "relative"
			}).addClass(e.styleClass).attr("id", j).insertBefore(mainSelect);
			var p = b("<ul></ul>").css( {
				"position" : "absolute",
				"z-index" : "100",
				"top" : e.optionsTop,
				"left" : e.optionsLeft
			}).appendTo(b(f)).hide();
			var n = "";
			mainSelect.find("option").each(function() {
				n += '<li id="' + b(this).val() + '"';
				if (b(this).attr("class")) {
					n += ' class="' + b(this).attr("class") + '" '
				}
				n += ">";
				n += '<span style="display: block;"';
				if (b(this).attr("selected")) {
					n += ' class="selected" '
				}
				n += ">";
				n += b(this).text();
				n += "</span>";
				n += "</li>"
			});
			p.append(n);
			a(e.styleClass, e.optionsWidth);
			b("#" + j).click(function() {
				b(this).find("ul").slideToggle(e.speed);
				b(this).toggleClass("select-country-active")
			});
			b("#" + j + " li").click(function() {
				q(b(this))
			});
			b("#" + j).keydown(function(r) {
				var s = b(this).find(".selected").parent();
				if (r.keyCode == 40 || r.keyCode == 39) {
					q(s.next())
				}
				if (r.keyCode == 37 || r.keyCode == 38) {
					q(s.prev())
				}
				if (r.keyCode == 13 || r.keyCode == 0) {
					b(this).find("ul").slideToggle(e.speed)
				}
				if (r.keyCode == 9) {
					b(this).find("ul").hide(e.speed)
				}
			});
			var q = function(r) {
				r.siblings().find("span").removeClass("selected");
				r.find("span").addClass("selected");
				var s = r.attr("id");
				var u = b('select[name="' + m + '"]');
				u.siblings().selected = false;
				u.find('option[value="' + s + '"]')
						.attr("selected", "selected");
				u.trigger(e.selectTrigger);
				a(e.styleClass, e.optionsWidth)
			};
			b("#" + j).click(function(r) {
				r.stopPropagation()
			});
			b(document).click(function() {
				b("#" + j + " ul").hide();
				b("#" + j).removeClass("select-country-active")
			})
		})
	};
	function a(d, c) {
		b("." + d).each(
				function() {
					var f = b(this).find("ul");
					b(this).find("span").each(function() {
						var g = b(this).attr("class");
						if (g == "passiveSelect" || g == "activeSelect") {
							b(this).remove()
						}
					});
					var e = b(this).find(".selected");
					b("<span></span>").text(e.text()).attr("id",
							e.parent().attr("id")).addClass("passiveSelect")
							.appendTo(b(this));
					if (c === 0) {
						b(this).css( {
							"width" : f.width()
						})
					}
				});
		b("." + d + " span").each(function() {
			if (b(this).attr("id")) {
				b(this).removeClass();
				b(this).addClass("activeSelect")
			}
		})
	}
	b.fn.styleSelect.defaults = {
		optionsTop : "21px",
		optionsLeft : "0px",
		optionsWidth : 0,
		styleClass : "selectMenu",
		speed : 0,
		selectTrigger : "change"
	}
})(jQuery);
(function(a) {
	a.fn.inputHint = function(e) {
		e = a.extend( {
			hintClass : "hint",
			hintAttr : "title"
		}, e || {});
		function b(f) {
			var g;
			if (e.using && (g = a(e.using, f)).length > 0) {
				return g.text()
			} else {
				return a(f).attr(e.hintAttr) || ""
			}
		}
		function d() {
			if (a(this).val() == "") {
				a(this).addClass(e.hintClass).val(b(this))
			}
		}
		function c() {
			if (a(this).hasClass(e.hintClass)) {
				a(this).removeClass(e.hintClass).val("")
			}
		}
		this.filter(function() {
			return !!b(this)
		}).focus(c).blur(d).blur();
		this.each(function() {
			var f = this;
			a(this).parents("form").submit(function() {
				c.apply(f)
			})
		});
		return this.end()
	}
})(jQuery);
jQuery.exists = function(a) {
	return ($(a).length > 0)
};
jQuery.ajaxOverlay = function(e) {
	if (!e) {
		e = {}
	}
	var b = "center";
	var f = false;
	var c = "15%";
	if (!e.gmapContent && !e.centered) {
		b = c
	}
	if (!e.selector) {
		e.selector = "a[rel]"
	}
	var d = null;
	var a = $(e.selector).overlay(
			{
				onBeforeLoad : function() {
					d = this.getContent().find(".contentWrap");
					if (e.gmapContent) {
						if (!($.browser.msie && $.browser.version < "7")) {
							$(d).parent().css("display", "none").fadeTo(300, 1)
						}
						createMap(this.getTrigger().attr("address"), d[0])
					}
					if ($.browser.msie && $.browser.version < "7") {
						$("select").css("visibility", "hidden")
					}
				},
				onLoad : function() {
					if (!e.gmapContent) {
						var g = null;
						g = (e.loadPage && !f ? e.loadPage : this.getTrigger()
								.attr("href"));
						if (g != null) {
							$(d).parent().fadeTo(1, 0)
						}
						$(d).load(g, function() {
							$(d).parent().fadeTo(300, 1)
						})
					}
				},
				onClose : function() {
					if ($.browser.msie && $.browser.version < "7") {
						$("select").css("visibility", "")
					}
					$(d).empty();
					d = null;
					f = true
				},
				top : b,
				left : "center",
				api : true,
				expose : {
					color : "#000",
					loadSpeed : 200,
					opacity : 0.7
				}
			});
	$("div.overlay").appendTo("body");
	if (e.openNow) {
		a.load()
	}
};
jQuery.getHashParams = function(a) {
	var b = {};
	var c = null;
	var d = null;
	if (a) {
		c = a;
		c = c.split("#");
		b.urlFile = decodeURIComponent(c[0])
	} else {
		c = window.location.toString();
		c = c.split("#");
		b.urlFile = decodeURIComponent(window.location.pathname);
		b.urlQuery = decodeURIComponent(window.location.search);
		if (b.urlQuery != "") {
			d = b.urlQuery.split("?");
			d = (d[1] ? d[1].split("&") : null);
			if (d != null) {
				b.urlQuery = {};
				for (i = 0; i < d.length; i++) {
					quer = d[i].split("=");
					b.urlQuery[decodeURIComponent(quer[0])] = decodeURIComponent(quer[1])
				}
			}
		}
	}
	c = (c[1] ? c[1].split("?") : null);
	if (c != null) {
		b.urlHash = decodeURIComponent(c[0]);
		c = (c[1] ? c[1].split("&") : null);
		if (c != null) {
			for (i = 0; i < c.length; i++) {
				param = c[i].split("=");
				b[decodeURIComponent(param[0])] = decodeURIComponent(param[1])
			}
		}
	}
	return b
};
(function(a) {
	a
			.extend(
					a.fn,
					{
						validate : function(b) {
							if (!this.length) {
								b
										&& b.debug
										&& window.console
										&& console
												.warn("nothing selected, can't validate, returning nothing");
								return
							}
							var c = a.data(this[0], "validator");
							if (c) {
								return c
							}
							c = new a.validator(b, this[0]);
							a.data(this[0], "validator", c);
							if (c.settings.onsubmit) {
								this.find("input, button").filter(".cancel")
										.click(function() {
											c.cancelSubmit = true
										});
								if (c.settings.submitHandler) {
									this.find("input, button")
											.filter(":submit").click(
													function() {
														c.submitButton = this
													})
								}
								this
										.submit(function(d) {
											if (c.settings.debug) {
												d.preventDefault()
											}
											function e() {
												if (c.settings.submitHandler) {
													if (c.submitButton) {
														var f = a(
																"<input type='hidden'/>")
																.attr(
																		"name",
																		c.submitButton.name)
																.val(
																		c.submitButton.value)
																.appendTo(
																		c.currentForm)
													}
													c.settings.submitHandler
															.call(
																	c,
																	c.currentForm);
													if (c.submitButton) {
														f.remove()
													}
													return false
												}
												return true
											}
											if (c.cancelSubmit) {
												c.cancelSubmit = false;
												return e()
											}
											if (c.form()) {
												if (c.pendingRequest) {
													c.formSubmitted = true;
													return false
												}
												return e()
											} else {
												c.focusInvalid();
												return false
											}
										})
							}
							return c
						},
						valid : function() {
							if (a(this[0]).is("form")) {
								return this.validate().form()
							} else {
								var c = true;
								var b = a(this[0].form).validate();
								this.each(function() {
									c &= b.element(this)
								});
								return c
							}
						},
						removeAttrs : function(d) {
							var b = {}, c = this;
							a.each(d.split(/\s/), function(e, f) {
								b[f] = c.attr(f);
								c.removeAttr(f)
							});
							return b
						},
						rules : function(e, b) {
							var g = this[0];
							if (e) {
								var d = a.data(g.form, "validator").settings;
								var k = d.rules;
								var m = a.validator.staticRules(g);
								switch (e) {
								case "add":
									a.extend(m, a.validator.normalizeRule(b));
									k[g.name] = m;
									if (b.messages) {
										d.messages[g.name] = a.extend(
												d.messages[g.name], b.messages)
									}
									break;
								case "remove":
									if (!b) {
										delete k[g.name];
										return m
									}
									var j = {};
									a.each(b.split(/\s/), function(n, p) {
										j[p] = m[p];
										delete m[p]
									});
									return j
								}
							}
							var f = a.validator.normalizeRules(a.extend( {},
									a.validator.metadataRules(g), a.validator
											.classRules(g), a.validator
											.attributeRules(g), a.validator
											.staticRules(g)), g);
							if (f.required) {
								var c = f.required;
								delete f.required;
								f = a.extend( {
									required : c
								}, f)
							}
							return f
						}
					});
	a.extend(a.expr[":"], {
		blank : function(b) {
			return !a.trim("" + b.value)
		},
		filled : function(b) {
			return !!a.trim("" + b.value)
		},
		unchecked : function(b) {
			return !b.checked
		}
	});
	a.validator = function(b, c) {
		this.settings = a.extend( {}, a.validator.defaults, b);
		this.currentForm = c;
		this.init()
	};
	a.validator.format = function(b, c) {
		if (arguments.length == 1) {
			return function() {
				var d = a.makeArray(arguments);
				d.unshift(b);
				return a.validator.format.apply(this, d)
			}
		}
		if (arguments.length > 2 && c.constructor != Array) {
			c = a.makeArray(arguments).slice(1)
		}
		if (c.constructor != Array) {
			c = [ c ]
		}
		a.each(c, function(d, e) {
			b = b.replace(new RegExp("\\{" + d + "\\}", "g"), e)
		});
		return b
	};
	a
			.extend(
					a.validator,
					{
						defaults : {
							messages : {},
							groups : {},
							rules : {},
							errorClass : "error",
							validClass : "valid",
							errorElement : "label",
							focusInvalid : true,
							errorContainer : a( []),
							errorLabelContainer : a( []),
							onsubmit : true,
							ignore : [],
							ignoreTitle : false,
							onfocusin : function(b) {
								this.lastActive = b;
								if (this.settings.focusCleanup
										&& !this.blockFocusCleanup) {
									this.settings.unhighlight
											&& this.settings.unhighlight.call(
													this, b,
													this.settings.errorClass,
													this.settings.validClass);
									this.errorsFor(b).hide()
								}
							},
							onfocusout : function(b) {
								if (!this.checkable(b)
										&& (b.name in this.submitted || !this
												.optional(b))) {
									this.element(b)
								}
							},
							onkeyup : function(b) {
								if (b.name in this.submitted
										|| b == this.lastElement) {
									this.element(b)
								}
							},
							onclick : function(b) {
								if (b.name in this.submitted) {
									this.element(b)
								} else {
									if (b.parentNode.name in this.submitted) {
										this.element(b.parentNode)
									}
								}
							},
							highlight : function(d, b, c) {
								a(d).addClass(b).removeClass(c)
							},
							unhighlight : function(d, b, c) {
								a(d).removeClass(b).addClass(c)
							}
						},
						setDefaults : function(b) {
							a.extend(a.validator.defaults, b)
						},
						messages : {
							required : "This field is required.",
							remote : "Please fix this field.",
							email : "Please enter a valid email address.",
							url : "Please enter a valid URL.",
							date : "Please enter a valid date.",
							dateISO : "Please enter a valid date (ISO).",
							number : "Please enter a valid number.",
							digits : "Please enter only digits.",
							creditcard : "Please enter a valid credit card number.",
							equalTo : "Please enter the same value again.",
							accept : "Please enter a value with a valid extension.",
							maxlength : a.validator
									.format("Please enter no more than {0} characters."),
							minlength : a.validator
									.format("Please enter at least {0} characters."),
							rangelength : a.validator
									.format("Please enter a value between {0} and {1} characters long."),
							range : a.validator
									.format("Please enter a value between {0} and {1}."),
							max : a.validator
									.format("Please enter a value less than or equal to {0}."),
							min : a.validator
									.format("Please enter a value greater than or equal to {0}.")
						},
						autoCreateRanges : false,
						prototype : {
							init : function() {
								this.labelContainer = a(this.settings.errorLabelContainer);
								this.errorContext = this.labelContainer.length
										&& this.labelContainer
										|| a(this.currentForm);
								this.containers = a(
										this.settings.errorContainer).add(
										this.settings.errorLabelContainer);
								this.submitted = {};
								this.valueCache = {};
								this.pendingRequest = 0;
								this.pending = {};
								this.invalid = {};
								this.reset();
								var b = (this.groups = {});
								a.each(this.settings.groups, function(e, f) {
									a.each(f.split(/\s/), function(j, g) {
										b[g] = e
									})
								});
								var d = this.settings.rules;
								a.each(d, function(e, f) {
									d[e] = a.validator.normalizeRule(f)
								});
								function c(f) {
									var e = a.data(this[0].form, "validator");
									e.settings["on" + f.type]
											&& e.settings["on" + f.type].call(
													e, this[0])
								}
								a(this.currentForm)
										.delegate(
												"focusin focusout keyup",
												":text, :password, :file, select, textarea",
												c)
										.delegate(
												"click",
												":radio, :checkbox, select, option",
												c);
								if (this.settings.invalidHandler) {
									a(this.currentForm).bind(
											"invalid-form.validate",
											this.settings.invalidHandler)
								}
							},
							form : function() {
								this.checkForm();
								a.extend(this.submitted, this.errorMap);
								this.invalid = a.extend( {}, this.errorMap);
								if (!this.valid()) {
									a(this.currentForm).triggerHandler(
											"invalid-form", [ this ])
								}
								this.showErrors();
								return this.valid()
							},
							checkForm : function() {
								this.prepareForm();
								for ( var b = 0, c = (this.currentElements = this
										.elements()); c[b]; b++) {
									this.check(c[b])
								}
								return this.valid()
							},
							element : function(c) {
								c = this.clean(c);
								this.lastElement = c;
								this.prepareElement(c);
								this.currentElements = a(c);
								var b = this.check(c);
								if (b) {
									delete this.invalid[c.name]
								} else {
									this.invalid[c.name] = true
								}
								if (!this.numberOfInvalids()) {
									this.toHide = this.toHide
											.add(this.containers)
								}
								this.showErrors();
								return b
							},
							showErrors : function(c) {
								if (c) {
									a.extend(this.errorMap, c);
									this.errorList = [];
									for ( var b in c) {
										this.errorList.push( {
											message : c[b],
											element : this.findByName(b)[0]
										})
									}
									this.successList = a.grep(this.successList,
											function(d) {
												return !(d.name in c)
											})
								}
								this.settings.showErrors ? this.settings.showErrors
										.call(this, this.errorMap,
												this.errorList)
										: this.defaultShowErrors()
							},
							resetForm : function() {
								if (a.fn.resetForm) {
									a(this.currentForm).resetForm()
								}
								this.submitted = {};
								this.prepareForm();
								this.hideErrors();
								this.elements().removeClass(
										this.settings.errorClass)
							},
							numberOfInvalids : function() {
								return this.objectLength(this.invalid)
							},
							objectLength : function(d) {
								var c = 0;
								for ( var b in d) {
									c++
								}
								return c
							},
							hideErrors : function() {
								this.addWrapper(this.toHide).hide()
							},
							valid : function() {
								return this.size() == 0
							},
							size : function() {
								return this.errorList.length
							},
							focusInvalid : function() {
								if (this.settings.focusInvalid) {
									try {
										a(
												this.findLastActive()
														|| this.errorList.length
														&& this.errorList[0].element
														|| []).filter(
												":visible").focus()
									} catch (b) {
									}
								}
							},
							findLastActive : function() {
								var b = this.lastActive;
								return b && a.grep(this.errorList, function(c) {
									return c.element.name == b.name
								}).length == 1 && b
							},
							elements : function() {
								var c = this, b = {};
								return a( [])
										.add(this.currentForm.elements)
										.filter(":input")
										.not(
												":submit, :reset, :image, [disabled]")
										.not(this.settings.ignore)
										.filter(
												function() {
													!this.name
															&& c.settings.debug
															&& window.console
															&& console
																	.error(
																			"%o has no name assigned",
																			this);
													if (this.name in b
															|| !c
																	.objectLength(a(
																			this)
																			.rules())) {
														return false
													}
													b[this.name] = true;
													return true
												})
							},
							clean : function(b) {
								return a(b)[0]
							},
							errors : function() {
								return a(this.settings.errorElement + "."
										+ this.settings.errorClass,
										this.errorContext)
							},
							reset : function() {
								this.successList = [];
								this.errorList = [];
								this.errorMap = {};
								this.toShow = a( []);
								this.toHide = a( []);
								this.currentElements = a( [])
							},
							prepareForm : function() {
								this.reset();
								this.toHide = this.errors()
										.add(this.containers)
							},
							prepareElement : function(b) {
								this.reset();
								this.toHide = this.errorsFor(b)
							},
							check : function(c) {
								c = this.clean(c);
								if (this.checkable(c)) {
									c = this.findByName(c.name)[0]
								}
								var j = a(c).rules();
								var d = false;
								for (method in j) {
									var g = {
										method : method,
										parameters : j[method]
									};
									try {
										var b = a.validator.methods[method]
												.call(this, c.value.replace(
														/\r/g, ""), c,
														g.parameters);
										if (b == "dependency-mismatch") {
											d = true;
											continue
										}
										d = false;
										if (b == "pending") {
											this.toHide = this.toHide.not(this
													.errorsFor(c));
											return
										}
										if (!b) {
											this.formatAndAdd(c, g);
											return false
										}
									} catch (f) {
										this.settings.debug
												&& window.console
												&& console
														.log(
																"exception occured when checking element "
																		+ c.id
																		+ ", check the '"
																		+ g.method
																		+ "' method",
																f);
										throw f
									}
								}
								if (d) {
									return
								}
								if (this.objectLength(j)) {
									this.successList.push(c)
								}
								return true
							},
							customMetaMessage : function(b, d) {
								if (!a.metadata) {
									return
								}
								var c = this.settings.meta ? a(b).metadata()[this.settings.meta]
										: a(b).metadata();
								return c && c.messages && c.messages[d]
							},
							customMessage : function(c, d) {
								var b = this.settings.messages[c];
								return b
										&& (b.constructor == String ? b : b[d])
							},
							findDefined : function() {
								for ( var b = 0; b < arguments.length; b++) {
									if (arguments[b] !== undefined) {
										return arguments[b]
									}
								}
								return undefined
							},
							defaultMessage : function(b, c) {
								return this.findDefined(this.customMessage(
										b.name, c), this
										.customMetaMessage(b, c),
										!this.settings.ignoreTitle && b.title
												|| undefined,
										a.validator.messages[c],
										"<strong>Warning: No message defined for "
												+ b.name + "</strong>")
							},
							formatAndAdd : function(c, e) {
								var d = this.defaultMessage(c, e.method), b = /\$?\{(\d+)\}/g;
								if (typeof d == "function") {
									d = d.call(this, e.parameters, c)
								} else {
									if (b.test(d)) {
										d = jQuery.format(d.replace(b, "{$1}"),
												e.parameters)
									}
								}
								this.errorList.push( {
									message : d,
									element : c
								});
								this.errorMap[c.name] = d;
								this.submitted[c.name] = d
							},
							addWrapper : function(b) {
								if (this.settings.wrapper) {
									b = b.add(b.parent(this.settings.wrapper))
								}
								return b
							},
							defaultShowErrors : function() {
								for ( var c = 0; this.errorList[c]; c++) {
									var b = this.errorList[c];
									this.settings.highlight
											&& this.settings.highlight.call(
													this, b.element,
													this.settings.errorClass,
													this.settings.validClass);
									this.showLabel(b.element, b.message)
								}
								if (this.errorList.length) {
									this.toShow = this.toShow
											.add(this.containers)
								}
								if (this.settings.success) {
									for ( var c = 0; this.successList[c]; c++) {
										this.showLabel(this.successList[c])
									}
								}
								if (this.settings.unhighlight) {
									for ( var c = 0, d = this.validElements(); d[c]; c++) {
										this.settings.unhighlight.call(this,
												d[c], this.settings.errorClass,
												this.settings.validClass)
									}
								}
								this.toHide = this.toHide.not(this.toShow);
								this.hideErrors();
								this.addWrapper(this.toShow).show()
							},
							validElements : function() {
								return this.currentElements.not(this
										.invalidElements())
							},
							invalidElements : function() {
								return a(this.errorList).map(function() {
									return this.element
								})
							},
							showLabel : function(c, d) {
								var b = this.errorsFor(c);
								if (b.length) {
									b.removeClass().addClass(
											this.settings.errorClass);
									b.attr("generated") && b.html(d)
								} else {
									b = a(
											"<" + this.settings.errorElement
													+ "/>").attr( {
										"for" : this.idOrName(c),
										generated : true
									}).addClass(this.settings.errorClass).html(
											d || "");
									if (this.settings.wrapper) {
										b = b.hide().show().wrap(
												"<" + this.settings.wrapper
														+ "/>").parent()
									}
									if (!this.labelContainer.append(b).length) {
										this.settings.errorPlacement ? this.settings
												.errorPlacement(b, a(c))
												: b.insertAfter(c)
									}
								}
								if (!d && this.settings.success) {
									b.text("");
									typeof this.settings.success == "string" ? b
											.addClass(this.settings.success)
											: this.settings.success(b)
								}
								this.toShow = this.toShow.add(b)
							},
							errorsFor : function(c) {
								var b = this.idOrName(c);
								return this.errors().filter(function() {
									return a(this).attr("for") == b
								})
							},
							idOrName : function(b) {
								return this.groups[b.name]
										|| (this.checkable(b) ? b.name : b.id
												|| b.name)
							},
							checkable : function(b) {
								return /radio|checkbox/i.test(b.type)
							},
							findByName : function(b) {
								var c = this.currentForm;
								return a(document.getElementsByName(b)).map(
										function(d, e) {
											return e.form == c && e.name == b
													&& e || null
										})
							},
							getLength : function(c, b) {
								switch (b.nodeName.toLowerCase()) {
								case "select":
									return a("option:selected", b).length;
								case "input":
									if (this.checkable(b)) {
										return this.findByName(b.name).filter(
												":checked").length
									}
								}
								return c.length
							},
							depend : function(c, b) {
								return this.dependTypes[typeof c] ? this.dependTypes[typeof c]
										(c, b)
										: true
							},
							dependTypes : {
								"boolean" : function(c, b) {
									return c
								},
								"string" : function(c, b) {
									return !!a(c, b.form).length
								},
								"function" : function(c, b) {
									return c(b)
								}
							},
							optional : function(b) {
								return !a.validator.methods.required.call(this,
										a.trim(b.value), b)
										&& "dependency-mismatch"
							},
							startRequest : function(b) {
								if (!this.pending[b.name]) {
									this.pendingRequest++;
									this.pending[b.name] = true
								}
							},
							stopRequest : function(b, c) {
								this.pendingRequest--;
								if (this.pendingRequest < 0) {
									this.pendingRequest = 0
								}
								delete this.pending[b.name];
								if (c && this.pendingRequest == 0
										&& this.formSubmitted && this.form()) {
									a(this.currentForm).submit();
									this.formSubmitted = false
								} else {
									if (!c && this.pendingRequest == 0
											&& this.formSubmitted) {
										a(this.currentForm).triggerHandler(
												"invalid-form", [ this ]);
										this.formSubmitted = false
									}
								}
							},
							previousValue : function(b) {
								return a.data(b, "previousValue")
										|| a.data(b, "previousValue", {
											old : null,
											valid : true,
											message : this.defaultMessage(b,
													"remote")
										})
							}
						},
						classRuleSettings : {
							required : {
								required : true
							},
							email : {
								email : true
							},
							url : {
								url : true
							},
							date : {
								date : true
							},
							dateISO : {
								dateISO : true
							},
							dateDE : {
								dateDE : true
							},
							number : {
								number : true
							},
							numberDE : {
								numberDE : true
							},
							digits : {
								digits : true
							},
							creditcard : {
								creditcard : true
							}
						},
						addClassRules : function(b, c) {
							b.constructor == String ? this.classRuleSettings[b] = c
									: a.extend(this.classRuleSettings, b)
						},
						classRules : function(c) {
							var d = {};
							var b = a(c).attr("class");
							b
									&& a
											.each(
													b.split(" "),
													function() {
														if (this in a.validator.classRuleSettings) {
															a
																	.extend(
																			d,
																			a.validator.classRuleSettings[this])
														}
													});
							return d
						},
						attributeRules : function(c) {
							var e = {};
							var b = a(c);
							for (method in a.validator.methods) {
								var d = b.attr(method);
								if (d) {
									e[method] = d
								}
							}
							if (e.maxlength
									&& /-1|2147483647|524288/.test(e.maxlength)) {
								delete e.maxlength
							}
							return e
						},
						metadataRules : function(b) {
							if (!a.metadata) {
								return {}
							}
							var c = a.data(b.form, "validator").settings.meta;
							return c ? a(b).metadata()[c] : a(b).metadata()
						},
						staticRules : function(c) {
							var d = {};
							var b = a.data(c.form, "validator");
							if (b.settings.rules) {
								d = a.validator
										.normalizeRule(b.settings.rules[c.name])
										|| {}
							}
							return d
						},
						normalizeRules : function(c, b) {
							a.each(c, function(f, e) {
								if (e === false) {
									delete c[f];
									return
								}
								if (e.param || e.depends) {
									var d = true;
									switch (typeof e.depends) {
									case "string":
										d = !!a(e.depends, b.form).length;
										break;
									case "function":
										d = e.depends.call(b, b);
										break
									}
									if (d) {
										c[f] = e.param !== undefined ? e.param
												: true
									} else {
										delete c[f]
									}
								}
							});
							a.each(c, function(d, e) {
								c[d] = a.isFunction(e) ? e(b) : e
							});
							a.each( [ "minlength", "maxlength", "min", "max" ],
									function() {
										if (c[this]) {
											c[this] = Number(c[this])
										}
									});
							a.each( [ "rangelength", "range" ], function() {
								if (c[this]) {
									c[this] = [ Number(c[this][0]),
											Number(c[this][1]) ]
								}
							});
							if (a.validator.autoCreateRanges) {
								if (c.min && c.max) {
									c.range = [ c.min, c.max ];
									delete c.min;
									delete c.max
								}
								if (c.minlength && c.maxlength) {
									c.rangelength = [ c.minlength, c.maxlength ];
									delete c.minlength;
									delete c.maxlength
								}
							}
							if (c.messages) {
								delete c.messages
							}
							return c
						},
						normalizeRule : function(c) {
							if (typeof c == "string") {
								var b = {};
								a.each(c.split(/\s/), function() {
									b[this] = true
								});
								c = b
							}
							return c
						},
						addMethod : function(b, d, c) {
							a.validator.methods[b] = d;
							a.validator.messages[b] = c != undefined ? c
									: a.validator.messages[b];
							if (d.length < 3) {
								a.validator.addClassRules(b, a.validator
										.normalizeRule(b))
							}
						},
						methods : {
							required : function(c, b, e) {
								if (!this.depend(e, b)) {
									return "dependency-mismatch"
								}
								switch (b.nodeName.toLowerCase()) {
								case "select":
									var d = a(b).val();
									return d && d.length > 0;
								case "input":
									if (this.checkable(b)) {
										return this.getLength(c, b) > 0
									}
								default:
									return a.trim(c).length > 0
								}
							},
							remote : function(f, c, g) {
								if (this.optional(c)) {
									return "dependency-mismatch"
								}
								var d = this.previousValue(c);
								if (!this.settings.messages[c.name]) {
									this.settings.messages[c.name] = {}
								}
								d.originalMessage = this.settings.messages[c.name].remote;
								this.settings.messages[c.name].remote = d.message;
								g = typeof g == "string" && {
									url : g
								} || g;
								if (d.old !== f) {
									d.old = f;
									var b = this;
									this.startRequest(c);
									var e = {};
									e[c.name] = f;
									a
											.ajax(a
													.extend(
															true,
															{
																url : g,
																mode : "abort",
																port : "validate"
																		+ c.name,
																dataType : "json",
																data : e,
																success : function(
																		k) {
																	b.settings.messages[c.name].remote = d.originalMessage;
																	var n = k === true;
																	if (n) {
																		var j = b.formSubmitted;
																		b
																				.prepareElement(c);
																		b.formSubmitted = j;
																		b.successList
																				.push(c);
																		b
																				.showErrors()
																	} else {
																		var p = {};
																		var m = (d.message = k
																				|| b
																						.defaultMessage(
																								c,
																								"remote"));
																		p[c.name] = a
																				.isFunction(m) ? m(f)
																				: m;
																		b
																				.showErrors(p)
																	}
																	d.valid = n;
																	b
																			.stopRequest(
																					c,
																					n)
																}
															}, g));
									return "pending"
								} else {
									if (this.pending[c.name]) {
										return "pending"
									}
								}
								return d.valid
							},
							minlength : function(c, b, d) {
								return this.optional(b)
										|| this.getLength(a.trim(c), b) >= d
							},
							maxlength : function(c, b, d) {
								return this.optional(b)
										|| this.getLength(a.trim(c), b) <= d
							},
							rangelength : function(d, b, e) {
								var c = this.getLength(a.trim(d), b);
								return this.optional(b)
										|| (c >= e[0] && c <= e[1])
							},
							min : function(c, b, d) {
								return this.optional(b) || c >= d
							},
							max : function(c, b, d) {
								return this.optional(b) || c <= d
							},
							range : function(c, b, d) {
								return this.optional(b)
										|| (c >= d[0] && c <= d[1])
							},
							email : function(c, b) {
								return this.optional(b)
										|| /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i
												.test(c)
							},
							url : function(c, b) {
								return this.optional(b)
										|| /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
												.test(c)
							},
							date : function(c, b) {
								return this.optional(b)
										|| !/Invalid|NaN/.test(new Date(c))
							},
							dateISO : function(c, b) {
								return this.optional(b)
										|| /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/
												.test(c)
							},
							number : function(c, b) {
								return this.optional(b)
										|| /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/
												.test(c)
							},
							digits : function(c, b) {
								return this.optional(b) || /^\d+$/.test(c)
							},
							creditcard : function(f, c) {
								if (this.optional(c)) {
									return "dependency-mismatch"
								}
								if (/[^0-9-]+/.test(f)) {
									return false
								}
								var g = 0, e = 0, b = false;
								f = f.replace(/\D/g, "");
								for ( var j = f.length - 1; j >= 0; j--) {
									var d = f.charAt(j);
									var e = parseInt(d, 10);
									if (b) {
										if ((e *= 2) > 9) {
											e -= 9
										}
									}
									g += e;
									b = !b
								}
								return (g % 10) == 0
							},
							accept : function(c, b, d) {
								d = typeof d == "string" ? d.replace(/,/g, "|")
										: "png|jpe?g|gif";
								return this.optional(b)
										|| c.match(new RegExp(".(" + d + ")$",
												"i"))
							},
							equalTo : function(c, b, e) {
								var d = a(e).unbind(".validate-equalTo").bind(
										"blur.validate-equalTo", function() {
											a(b).valid()
										});
								return c == d.val()
							}
						}
					});
	a.format = a.validator.format
})(jQuery);
(function(c) {
	var b = c.ajax;
	var a = {};
	c.ajax = function(e) {
		e = c.extend(e, c.extend( {}, c.ajaxSettings, e));
		var d = e.port;
		if (e.mode == "abort") {
			if (a[d]) {
				a[d].abort()
			}
			return (a[d] = b.apply(this, arguments))
		}
		return b.apply(this, arguments)
	}
})(jQuery);
(function(a) {
	a.each( {
		focus : "focusin",
		blur : "focusout"
	}, function(c, b) {
		a.event.special[b] = {
			setup : function() {
				if (a.browser.msie) {
					return false
				}
				this.addEventListener(c, a.event.special[b].handler, true)
			},
			teardown : function() {
				if (a.browser.msie) {
					return false
				}
				this.removeEventListener(c, a.event.special[b].handler, true)
			},
			handler : function(d) {
				arguments[0] = a.event.fix(d);
				arguments[0].type = b;
				return a.event.handle.apply(this, arguments)
			}
		}
	});
	a.extend(a.fn, {
		delegate : function(d, c, b) {
			return this.bind(d, function(e) {
				var f = a(e.target);
				if (f.is(c)) {
					return b.apply(f, arguments)
				}
			})
		},
		triggerEvent : function(b, c) {
			return this.triggerHandler(b, [ a.event.fix( {
				type : b,
				target : c
			}) ])
		}
	})
})(jQuery);
(function(g) {
	g.tools = g.tools || {};
	g.tools.tabs = {
		version : "1.0.4",
		conf : {
			tabs : "a",
			current : "current",
			onBeforeClick : null,
			onClick : null,
			effect : "default",
			initialIndex : 0,
			event : "click",
			api : false,
			rotate : false
		},
		addEffect : function(b, a) {
			j[b] = a
		}
	};
	var j = {
		"default" : function(a, b) {
			this.getPanes().hide().eq(a).show();
			b.call()
		},
		fade : function(c, k) {
			var d = this.getConf(), a = d.fadeOutSpeed, b = this.getPanes();
			if (a) {
				b.fadeOut(a)
			} else {
				b.hide()
			}
			b.eq(c).fadeIn(d.fadeInSpeed, k)
		},
		slide : function(a, b) {
			this.getPanes().slideUp(200);
			this.getPanes().eq(a).slideDown(400, b)
		},
		ajax : function(a, b) {
			this.getPanes().eq(0).load(this.getTabs().eq(a).attr("href"), b)
		}
	};
	var e;
	g.tools.tabs.addEffect("horizontal", function(a, b) {
		if (!e) {
			e = this.getPanes().eq(0).width()
		}
		this.getCurrentPane().animate( {
			width : 0
		}, function() {
			g(this).hide()
		});
		this.getPanes().eq(a).animate( {
			width : e
		}, function() {
			g(this).show();
			b.call()
		})
	});
	function f(d, c, k) {
		var m = this, a = g(this), b;
		g.each(k, function(p, n) {
			if (g.isFunction(n)) {
				a.bind(p, n)
			}
		});
		g.extend(this, {
			click : function(r, u) {
				var s = m.getCurrentPane();
				var q = d.eq(r);
				if (typeof r == "string" && r.replace("#", "")) {
					q = d.filter("[href*=" + r.replace("#", "") + "]");
					r = Math.max(d.index(q), 0)
				}
				if (k.rotate) {
					var p = d.length - 1;
					if (r < 0) {
						return m.click(p, u)
					}
					if (r > p) {
						return m.click(0, u)
					}
				}
				if (!q.length) {
					if (b >= 0) {
						return m
					}
					r = k.initialIndex;
					q = d.eq(r)
				}
				if (r === b) {
					return m
				}
				u = u || g.Event();
				u.type = "onBeforeClick";
				a.trigger(u, [ r ]);
				if (u.isDefaultPrevented()) {
					return
				}
				j[k.effect].call(m, r, function() {
					u.type = "onClick";
					a.trigger(u, [ r ])
				});
				u.type = "onStart";
				a.trigger(u, [ r ]);
				if (u.isDefaultPrevented()) {
					return
				}
				b = r;
				d.removeClass(k.current);
				q.addClass(k.current);
				return m
			},
			getConf : function() {
				return k
			},
			getTabs : function() {
				return d
			},
			getPanes : function() {
				return c
			},
			getCurrentPane : function() {
				return c.eq(b)
			},
			getCurrentTab : function() {
				return d.eq(b)
			},
			getIndex : function() {
				return b
			},
			next : function() {
				return m.click(b + 1)
			},
			prev : function() {
				return m.click(b - 1)
			},
			bind : function(p, n) {
				a.bind(p, n);
				return m
			},
			onBeforeClick : function(n) {
				return this.bind("onBeforeClick", n)
			},
			onClick : function(n) {
				return this.bind("onClick", n)
			},
			unbind : function(n) {
				a.unbind(n);
				return m
			}
		});
		d.each(function(n) {
			g(this).bind(k.event, function(p) {
				m.click(n, p);
				return false
			})
		});
		if (location.hash) {
			m.click(location.hash)
		} else {
			if (k.initialIndex === 0 || k.initialIndex > 0) {
				m.click(k.initialIndex)
			}
		}
		c.find("a[href^=#]").click(function(n) {
			m.click(g(this).attr("href"), n)
		})
	}
	g.fn.tabs = function(a, d) {
		var c = this.eq(typeof d == "number" ? d : 0).data("tabs");
		if (c) {
			return c
		}
		if (g.isFunction(d)) {
			d = {
				onBeforeClick : d
			}
		}
		var b = g.extend( {}, g.tools.tabs.conf), k = this.length;
		d = g.extend(b, d);
		this.each(function(p) {
			var r = g(this);
			var q = r.find(d.tabs);
			if (!q.length) {
				q = r.children()
			}
			var n = a.jquery ? a : r.children(a);
			if (!n.length) {
				n = k == 1 ? g(a) : r.parent().find(a)
			}
			c = new f(q, n, d);
			r.data("tabs", c)
		});
		return d.api ? c : this
	}
})(jQuery);
(function(c) {
	var d = c.tools.tabs;
	d.plugins = d.plugins || {};
	d.plugins.slideshow = {
		version : "1.0.2",
		conf : {
			next : ".forward",
			prev : ".backward",
			disabledClass : "disabled",
			autoplay : false,
			autopause : true,
			interval : 3000,
			clickable : true,
			api : false
		}
	};
	c.prototype.slideshow = function(b) {
		var a = c.extend( {}, d.plugins.slideshow.conf), j = this.length, g;
		b = c.extend(a, b);
		this.each(function() {
			var u = c(this), y = u.tabs(), C = c(y), v = y;
			c.each(b, function(m, k) {
				if (c.isFunction(k)) {
					y.bind(m, k)
				}
			});
			function x(k) {
				return j == 1 ? c(k) : u.parent().find(k)
			}
			var F = x(b.next).click(function() {
				y.next()
			});
			var f = x(b.prev).click(function() {
				y.prev()
			});
			var D, B, z, E = false;
			c.extend(y, {
				play : function() {
					if (D) {
						return
					}
					var k = c.Event("onBeforePlay");
					C.trigger(k);
					if (k.isDefaultPrevented()) {
						return y
					}
					E = false;
					D = setInterval(y.next, b.interval);
					C.trigger("onPlay");
					y.next()
				},
				pause : function() {
					if (!D) {
						return y
					}
					var k = c.Event("onBeforePause");
					C.trigger(k);
					if (k.isDefaultPrevented()) {
						return y
					}
					D = clearInterval(D);
					z = clearInterval(z);
					C.trigger("onPause")
				},
				stop : function() {
					y.pause();
					E = true
				},
				onBeforePlay : function(k) {
					return y.bind("onBeforePlay", k)
				},
				onPlay : function(k) {
					return y.bind("onPlay", k)
				},
				onBeforePause : function(k) {
					return y.bind("onBeforePause", k)
				},
				onPause : function(k) {
					return y.bind("onPause", k)
				}
			});
			if (b.autopause) {
				var A = y.getTabs().add(F).add(f).add(y.getPanes());
				A.hover(function() {
					y.pause();
					B = clearInterval(B)
				}, function() {
					if (!E) {
						B = setTimeout(y.play, b.interval)
					}
				})
			}
			if (b.autoplay) {
				z = setTimeout(y.play, b.interval)
			} else {
				y.stop()
			}
			if (b.clickable) {
				y.getPanes().click(function() {
					y.next()
				})
			}
			if (!y.getConf().rotate) {
				var e = b.disabledClass;
				if (!y.getIndex()) {
					f.addClass(e)
				}
				y.onBeforeClick(function(k, m) {
					if (!m) {
						f.addClass(e)
					} else {
						f.removeClass(e);
						if (m == y.getTabs().length - 1) {
							F.addClass(e)
						} else {
							F.removeClass(e)
						}
					}
				})
			}
		});
		return b.api ? g : this
	}
})(jQuery);
(function(k) {
	var g = k.tools.tabs;
	g.plugins = g.plugins || {};
	g.plugins.history = {
		version : "1.0.2",
		conf : {
			api : false
		}
	};
	var j, f;
	function m(b) {
		if (b) {
			var a = f.contentWindow.document;
			a.open().close();
			a.location.hash = b
		}
	}
	k.fn.onHash = function(a) {
		var b = this;
		if (k.browser.msie && k.browser.version < "8") {
			if (!f) {
				f = k("<iframe/>").attr("src", "javascript:false;").hide().get(
						0);
				k("body").append(f);
				setInterval(function() {
					var d = f.contentWindow.document, c = d.location.hash;
					if (j !== c) {
						k.event.trigger("hash", c);
						j = c
					}
				}, 100);
				m(location.hash || "#")
			}
			b.bind("click.hash", function(c) {
				m(k(this).attr("href"))
			})
		} else {
			setInterval(function() {
				var c = location.hash;
				var d = b.filter("[href$=" + c + "]");
				if (!d.length) {
					c = c.replace("#", "");
					d = b.filter("[href$=" + c + "]")
				}
				if (d.length && c !== j) {
					j = c;
					k.event.trigger("hash", c)
				}
			}, 100)
		}
		k(window).bind("hash", a);
		return this
	};
	k.fn.history = function(b) {
		var a = k.extend( {}, g.plugins.history.conf), c;
		b = k.extend(a, b);
		this.each(function() {
			var d = k(this).tabs(), e = d.getTabs();
			if (d) {
				c = d
			}
			e.onHash(function(p, n) {
				if (!n || n == "#") {
					n = d.getConf().initialIndex
				}
				d.click(n)
			});
			e.click(function(n) {
				location.hash = k(this).attr("href").replace("#", "")
			})
		});
		return b.api ? c : this
	}
})(jQuery);
(function(j) {
	var g = [];
	j.tools = j.tools || {};
	j.tools.tooltip = {
		version : "1.1.3",
		conf : {
			effect : "toggle",
			fadeOutSpeed : "fast",
			tip : null,
			predelay : 0,
			delay : 30,
			opacity : 1,
			lazy : undefined,
			position : [ "top", "center" ],
			offset : [ 0, 0 ],
			cancelDefault : true,
			relative : false,
			oneInstance : true,
			events : {
				def : "mouseover,mouseout",
				input : "focus,blur",
				widget : "focus mouseover,blur mouseout",
				tooltip : "mouseover,mouseout"
			},
			api : false
		},
		addEffect : function(c, a, b) {
			e[c] = [ a, b ]
		}
	};
	var e = {
		toggle : [ function(d) {
			var c = this.getConf(), b = this.getTip(), a = c.opacity;
			if (a < 1) {
				b.css( {
					opacity : a
				})
			}
			b.show();
			d.call()
		}, function(a) {
			this.getTip().hide();
			a.call()
		} ],
		fade : [ function(a) {
			this.getTip().fadeIn(this.getConf().fadeInSpeed, a)
		}, function(a) {
			this.getTip().fadeOut(this.getConf().fadeOutSpeed, a)
		} ]
	};
	function f(y, x) {
		var a = this, r = j(this);
		y.data("tooltip", a);
		var q = y.next();
		if (x.tip) {
			q = j(x.tip);
			if (q.length > 1) {
				q = y.nextAll(x.tip).eq(0);
				if (!q.length) {
					q = y.parent().nextAll(x.tip).eq(0)
				}
			}
		}
		function b(m) {
			var n = x.relative ? y.position().top : y.offset().top, p = x.relative ? y
					.position().left
					: y.offset().left, k = x.position[0];
			n -= q.outerHeight() - x.offset[0];
			p += y.outerWidth() + x.offset[1];
			var B = q.outerHeight() + y.outerHeight();
			if (k == "center") {
				n += B / 2
			}
			if (k == "bottom") {
				n += B
			}
			k = x.position[1];
			var A = q.outerWidth() + y.outerWidth();
			if (k == "center") {
				p -= A / 2
			}
			if (k == "left") {
				p -= A
			}
			return {
				top : n,
				left : p
			}
		}
		var u = y.is(":input"), z = u
				&& y.is(":checkbox, :radio, select, :button"), v = y
				.attr("type"), c = x.events[v]
				|| x.events[u ? (z ? "widget" : "input") : "def"];
		c = c.split(/,\s*/);
		if (c.length != 2) {
			throw "Tooltip: bad events configuration for " + v
		}
		y.bind(c[0], function(k) {
			if (x.oneInstance) {
				j.each(g, function() {
					this.hide()
				})
			}
			var m = q.data("trigger");
			if (m && m[0] != this) {
				q.hide().stop(true, true)
			}
			k.target = this;
			a.show(k);
			c = x.events.tooltip.split(/,\s*/);
			q.bind(c[0], function() {
				a.show(k)
			});
			if (c[1]) {
				q.bind(c[1], function() {
					a.hide(k)
				})
			}
		});
		y.bind(c[1], function(k) {
			a.hide(k)
		});
		if (!j.browser.msie && !u && !x.predelay) {
			y.mousemove(function() {
				if (!a.isShown()) {
					y.triggerHandler("mouseover")
				}
			})
		}
		if (x.opacity < 1) {
			q.css("opacity", x.opacity)
		}
		var d = 0, s = y.attr("title");
		if (s && x.cancelDefault) {
			y.removeAttr("title");
			y.data("title", s)
		}
		j.extend(a, {
			show : function(k) {
				if (k) {
					y = j(k.target)
				}
				clearTimeout(q.data("timer"));
				if (q.is(":animated") || q.is(":visible")) {
					return a
				}
				function m() {
					q.data("trigger", y);
					var n = b(k);
					if (x.tip && s) {
						q.html(y.data("title"))
					}
					k = k || j.Event();
					k.type = "onBeforeShow";
					r.trigger(k, [ n ]);
					if (k.isDefaultPrevented()) {
						return a
					}
					n = b(k);
					q.css( {
						position : "absolute",
						top : n.top,
						left : n.left
					});
					var p = e[x.effect];
					if (!p) {
						throw 'Nonexistent effect "' + x.effect + '"'
					}
					p[0].call(a, function() {
						k.type = "onShow";
						r.trigger(k)
					})
				}
				if (x.predelay) {
					clearTimeout(d);
					d = setTimeout(m, x.predelay)
				} else {
					m()
				}
				return a
			},
			hide : function(k) {
				clearTimeout(q.data("timer"));
				clearTimeout(d);
				if (!q.is(":visible")) {
					return
				}
				function m() {
					k = k || j.Event();
					k.type = "onBeforeHide";
					r.trigger(k);
					if (k.isDefaultPrevented()) {
						return
					}
					e[x.effect][1].call(a, function() {
						k.type = "onHide";
						r.trigger(k)
					})
				}
				if (x.delay && k) {
					q.data("timer", setTimeout(m, x.delay))
				} else {
					m()
				}
				return a
			},
			isShown : function() {
				return q.is(":visible, :animated")
			},
			getConf : function() {
				return x
			},
			getTip : function() {
				return q
			},
			getTrigger : function() {
				return y
			},
			bind : function(m, k) {
				r.bind(m, k);
				return a
			},
			onHide : function(k) {
				return this.bind("onHide", k)
			},
			onBeforeShow : function(k) {
				return this.bind("onBeforeShow", k)
			},
			onShow : function(k) {
				return this.bind("onShow", k)
			},
			onBeforeHide : function(k) {
				return this.bind("onBeforeHide", k)
			},
			unbind : function(k) {
				r.unbind(k);
				return a
			}
		});
		j.each(x, function(m, k) {
			if (j.isFunction(k)) {
				a.bind(m, k)
			}
		})
	}
	j.prototype.tooltip = function(c) {
		var b = this.eq(typeof c == "number" ? c : 0).data("tooltip");
		if (b) {
			return b
		}
		var a = j.extend(true, {}, j.tools.tooltip.conf);
		if (j.isFunction(c)) {
			c = {
				onBeforeShow : c
			}
		} else {
			if (typeof c == "string") {
				c = {
					tip : c
				}
			}
		}
		c = j.extend(true, a, c);
		if (typeof c.position == "string") {
			c.position = c.position.split(/,?\s/)
		}
		if (c.lazy !== false && (c.lazy === true || this.length > 20)) {
			this.one("mouseover", function(d) {
				b = new f(j(this), c);
				b.show(d);
				g.push(b)
			})
		} else {
			this.each(function() {
				b = new f(j(this), c);
				g.push(b)
			})
		}
		return c.api ? b : this
	}
})(jQuery);
(function(d) {
	var e = d.tools.tooltip;
	e.effects = e.effects || {};
	e.effects.slide = {
		version : "1.0.0"
	};
	d.extend(e.conf, {
		direction : "up",
		bounce : false,
		slideOffset : 10,
		slideInSpeed : 200,
		slideOutSpeed : 200,
		slideFade : !d.browser.msie
	});
	var f = {
		up : [ "-", "top" ],
		down : [ "+", "top" ],
		left : [ "-", "left" ],
		right : [ "+", "left" ]
	};
	d.tools.tooltip.addEffect("slide", function(k) {
		var c = this.getConf(), b = this.getTip(), a = c.slideFade ? {
			opacity : c.opacity
		} : {}, j = f[c.direction] || f.up;
		a[j[1]] = j[0] + "=" + c.slideOffset;
		if (c.slideFade) {
			b.css( {
				opacity : 0
			})
		}
		b.show().animate(a, c.slideInSpeed, k)
	}, function(k) {
		var c = this.getConf(), a = c.slideOffset, b = c.slideFade ? {
			opacity : 0
		} : {}, j = f[c.direction] || f.up;
		var m = "" + j[0];
		if (c.bounce) {
			m = m == "+" ? "-" : "+"
		}
		b[j[1]] = m + "=" + a;
		this.getTip().animate(b, c.slideOutSpeed, function() {
			d(this).hide();
			k.call()
		})
	})
})(jQuery);
(function(g) {
	var j = g.tools.tooltip;
	j.plugins = j.plugins || {};
	j.plugins.dynamic = {
		version : "1.0.1",
		conf : {
			api : false,
			classNames : "top right bottom left"
		}
	};
	function e(a) {
		var d = g(window);
		var b = d.width() + d.scrollLeft();
		var c = d.height() + d.scrollTop();
		return [ a.offset().top <= d.scrollTop(),
				b <= a.offset().left + a.width(),
				c <= a.offset().top + a.height(),
				d.scrollLeft() >= a.offset().left ]
	}
	function f(a) {
		var b = a.length;
		while (b--) {
			if (a[b]) {
				return false
			}
		}
		return true
	}
	g.fn.dynamic = function(c) {
		var b = g.extend( {}, j.plugins.dynamic.conf), d;
		if (typeof c == "number") {
			c = {
				speed : c
			}
		}
		c = g.extend(b, c);
		var k = c.classNames.split(/\s/), a;
		this
				.each(function() {
					if (g(this).tooltip().jquery) {
						throw "Lazy feature not supported by dynamic plugin. set lazy: false for tooltip"
					}
					var m = g(this).tooltip().onBeforeShow(
							function(u, s) {
								var p = this.getTip(), q = this.getConf();
								if (!a) {
									a = [ q.position[0], q.position[1],
											q.offset[0], q.offset[1],
											g.extend( {}, q) ]
								}
								g.extend(q, a[4]);
								q.position = [ a[0], a[1] ];
								q.offset = [ a[2], a[3] ];
								p.css( {
									visibility : "hidden",
									position : "absolute",
									top : s.top,
									left : s.left
								}).show();
								var r = e(p);
								if (!f(r)) {
									if (r[2]) {
										g.extend(q, c.top);
										q.position[0] = "top";
										p.addClass(k[0])
									}
									if (r[3]) {
										g.extend(q, c.right);
										q.position[1] = "right";
										p.addClass(k[1])
									}
									if (r[0]) {
										g.extend(q, c.bottom);
										q.position[0] = "bottom";
										p.addClass(k[2])
									}
									if (r[1]) {
										g.extend(q, c.left);
										q.position[1] = "left";
										p.addClass(k[3])
									}
									if (r[0] || r[2]) {
										q.offset[0] *= -1
									}
									if (r[1] || r[3]) {
										q.offset[1] *= -1
									}
								}
								p.css( {
									visibility : "visible"
								}).hide()
							});
					m.onShow(function() {
						var n = this.getConf(), p = this.getTip();
						n.position = [ a[0], a[1] ];
						n.offset = [ a[2], a[3] ]
					});
					m.onHide(function() {
						var n = this.getTip();
						n.removeClass(c.classNames)
					});
					d = m
				});
		return c.api ? d : this
	}
})(jQuery);
(function(d) {
	d.tools = d.tools || {};
	d.tools.scrollable = {
		version : "1.1.2",
		conf : {
			size : 5,
			vertical : false,
			speed : 400,
			keyboard : true,
			keyboardSteps : null,
			disabledClass : "disabled",
			hoverClass : null,
			clickable : true,
			activeClass : "active",
			easing : "swing",
			loop : false,
			items : ".items",
			item : null,
			prev : ".prev",
			next : ".next",
			prevPage : ".prevPage",
			nextPage : ".nextPage",
			api : false
		}
	};
	var f;
	function e(s, v) {
		var a = this, c = d(this), F = !v.vertical, E = s.children(), y = 0, A;
		if (!f) {
			f = a
		}
		d.each(v, function(j, g) {
			if (d.isFunction(g)) {
				c.bind(j, g)
			}
		});
		if (E.length > 1) {
			E = d(v.items, s)
		}
		function x(g) {
			var j = d(g);
			return v.globalNav ? j : s.parent().find(g)
		}
		s.data("finder", x);
		var D = x(v.prev), B = x(v.next), C = x(v.prevPage), u = x(v.nextPage);
		d
				.extend(
						a,
						{
							getIndex : function() {
								return y
							},
							getClickIndex : function() {
								var g = a.getItems();
								return g.index(g.filter("." + v.activeClass))
							},
							getConf : function() {
								return v
							},
							getSize : function() {
								return a.getItems().size()
							},
							getPageAmount : function() {
								return Math.ceil(this.getSize() / v.size)
							},
							getPageIndex : function() {
								return Math.ceil(y / v.size)
							},
							getNaviButtons : function() {
								return D.add(B).add(C).add(u)
							},
							getRoot : function() {
								return s
							},
							getItemWrap : function() {
								return E
							},
							getItems : function() {
								return E.children(v.item)
							},
							getVisibleItems : function() {
								return a.getItems().slice(y, y + v.size)
							},
							seekTo : function(p, j, n) {
								if (p < 0) {
									p = 0
								}
								if (y === p) {
									return a
								}
								if (d.isFunction(j)) {
									n = j
								}
								if (p > a.getSize() - v.size) {
									return v.loop ? a.begin() : this.end()
								}
								var m = a.getItems().eq(p);
								if (!m.length) {
									return a
								}
								var k = d.Event("onBeforeSeek");
								c.trigger(k, [ p ]);
								if (k.isDefaultPrevented()) {
									return a
								}
								if (j === undefined || d.isFunction(j)) {
									j = v.speed
								}
								function g() {
									if (n) {
										n.call(a, p)
									}
									c.trigger("onSeek", [ p ])
								}
								if (F) {
									E.animate( {
										left : -m.position().left
									}, j, v.easing, g)
								} else {
									E.animate( {
										top : -m.position().top
									}, j, v.easing, g)
								}
								f = a;
								y = p;
								k = d.Event("onStart");
								c.trigger(k, [ p ]);
								if (k.isDefaultPrevented()) {
									return a
								}
								D.add(C).toggleClass(v.disabledClass, p === 0);
								B.add(u).toggleClass(v.disabledClass,
										p >= a.getSize() - v.size);
								return a
							},
							move : function(g, j, k) {
								A = g > 0;
								return this.seekTo(y + g, j, k)
							},
							next : function(g, j) {
								return this.move(1, g, j)
							},
							prev : function(g, j) {
								return this.move(-1, g, j)
							},
							movePage : function(g, j, k) {
								A = g > 0;
								var n = v.size * g;
								var m = y % v.size;
								if (m > 0) {
									n += (g > 0 ? -m : v.size - m)
								}
								return this.move(n, j, k)
							},
							prevPage : function(g, j) {
								return this.movePage(-1, g, j)
							},
							nextPage : function(g, j) {
								return this.movePage(1, g, j)
							},
							setPage : function(j, g, k) {
								return this.seekTo(j * v.size, g, k)
							},
							begin : function(g, j) {
								A = false;
								return this.seekTo(0, g, j)
							},
							end : function(j, k) {
								A = true;
								var g = this.getSize() - v.size;
								return g > 0 ? this.seekTo(g, j, k) : a
							},
							reload : function() {
								c.trigger("onReload");
								return a
							},
							focus : function() {
								f = a;
								return a
							},
							click : function(m) {
								var k = a.getItems().eq(m), p = v.activeClass, n = v.size;
								if (m < 0 || m >= a.getSize()) {
									return a
								}
								if (n == 1) {
									if (v.loop) {
										return a.next()
									}
									if (m === 0 || m == a.getSize() - 1) {
										A = (A === undefined) ? true : !A
									}
									return A === false ? a.prev() : a.next()
								}
								if (n == 2) {
									if (m == y) {
										m--
									}
									a.getItems().removeClass(p);
									k.addClass(p);
									return a.seekTo(m, time, fn)
								}
								if (!k.hasClass(p)) {
									a.getItems().removeClass(p);
									k.addClass(p);
									var g = Math.floor(n / 2);
									var j = m - g;
									if (j > a.getSize() - n) {
										j = a.getSize() - n
									}
									if (j !== m) {
										return a.seekTo(j)
									}
								}
								return a
							},
							bind : function(j, g) {
								c.bind(j, g);
								return a
							},
							unbind : function(g) {
								c.unbind(g);
								return a
							}
						});
		d.each("onBeforeSeek,onStart,onSeek,onReload".split(","),
				function(j, g) {
					a[g] = function(k) {
						return a.bind(g, k)
					}
				});
		D.addClass(v.disabledClass).click(function() {
			a.prev()
		});
		B.click(function() {
			a.next()
		});
		u.click(function() {
			a.nextPage()
		});
		if (a.getSize() < v.size) {
			B.add(u).addClass(v.disabledClass)
		}
		C.addClass(v.disabledClass).click(function() {
			a.prevPage()
		});
		var z = v.hoverClass, b = "keydown."
				+ Math.random().toString().substring(10);
		a.onReload(function() {
			if (z) {
				a.getItems().hover(function() {
					d(this).addClass(z)
				}, function() {
					d(this).removeClass(z)
				})
			}
			if (v.clickable) {
				a.getItems().each(
						function(g) {
							d(this).unbind("click.scrollable").bind(
									"click.scrollable", function(j) {
										if (d(j.target).is("a")) {
											return
										}
										return a.click(g)
									})
						})
			}
			if (v.keyboard) {
				d(document).unbind(b).bind(b, function(j) {
					if (j.altKey || j.ctrlKey) {
						return
					}
					if (v.keyboard != "static" && f != a) {
						return
					}
					var g = v.keyboardSteps;
					if (F && (j.keyCode == 37 || j.keyCode == 39)) {
						a.move(j.keyCode == 37 ? -g : g);
						return j.preventDefault()
					}
					if (!F && (j.keyCode == 38 || j.keyCode == 40)) {
						a.move(j.keyCode == 38 ? -g : g);
						return j.preventDefault()
					}
					return true
				})
			} else {
				d(document).unbind(b)
			}
		});
		a.reload()
	}
	d.fn.scrollable = function(c) {
		var b = this.eq(typeof c == "number" ? c : 0).data("scrollable");
		if (b) {
			return b
		}
		var a = d.extend( {}, d.tools.scrollable.conf);
		c = d.extend(a, c);
		c.keyboardSteps = c.keyboardSteps || c.size;
		this.each(function() {
			b = new e(d(this), c);
			d(this).data("scrollable", b)
		});
		return c.api ? b : this
	}
})(jQuery);
(function(c) {
	var d = c.tools.scrollable;
	d.plugins = d.plugins || {};
	d.plugins.circular = {
		version : "0.5.1",
		conf : {
			api : false,
			clonedClass : "cloned"
		}
	};
	c.fn.circular = function(a) {
		var b = c.extend( {}, d.plugins.circular.conf), f;
		c.extend(b, a);
		this
				.each(function() {
					var u = c(this).scrollable(), e = u.getItems(), r = u
							.getConf(), y = u.getItemWrap(), s = 0;
					if (u) {
						f = u
					}
					if (e.length < r.size) {
						return false
					}
					e.slice(0, r.size).each(function(g) {
						c(this).clone().appendTo(y).click(function() {
							u.click(e.length + g)
						}).addClass(b.clonedClass)
					});
					var q = c.makeArray(e.slice(-r.size)).reverse();
					c(q).each(function(g) {
						c(this).clone().prependTo(y).click(function() {
							u.click(-g - 1)
						}).addClass(b.clonedClass)
					});
					var p = y.children(r.item);
					var v = r.hoverClass;
					if (v) {
						p.hover(function() {
							c(this).addClass(v)
						}, function() {
							c(this).removeClass(v)
						})
					}
					function x(j) {
						var g = p.eq(j);
						if (r.vertical) {
							y.css( {
								top : -g.position().top
							})
						} else {
							y.css( {
								left : -g.position().left
							})
						}
					}
					x(r.size);
					c.extend(u,
							{
								move : function(k, m, z, n) {
									var g = s + k + r.size;
									var j = g > u.getSize() - r.size;
									if (g <= 0 || j) {
										var A = s + r.size
												+ (j ? -e.length : e.length);
										x(A);
										g = A + k
									}
									if (n) {
										p.removeClass(r.activeClass).eq(
												g + Math.floor(r.size / 2))
												.addClass(r.activeClass)
									}
									if (g === s + r.size) {
										return self
									}
									return u.seekTo(g, m, z)
								},
								begin : function(g, j) {
									return this.seekTo(r.size, g, j)
								},
								end : function(g, j) {
									return this.seekTo(e.length, g, j)
								},
								click : function(m, j, k) {
									if (!r.clickable) {
										return self
									}
									if (r.size == 1) {
										return this.next()
									}
									var g = m - s, n = r.activeClass;
									g -= Math.floor(r.size / 2);
									return this.move(g, j, k, true)
								},
								getIndex : function() {
									return s
								},
								setPage : function(j, g, k) {
									return this.seekTo(j * r.size + r.size, g,
											k)
								},
								getPageAmount : function() {
									return Math.ceil(e.length / r.size)
								},
								getPageIndex : function() {
									if (s < 0) {
										return this.getPageAmount() - 1
									}
									if (s >= e.length) {
										return 0
									}
									var g = (s + r.size) / r.size - 1;
									return g
								},
								getVisibleItems : function() {
									var g = s + r.size;
									return p.slice(g, g + r.size)
								}
							});
					u.onStart(function(g, j) {
						s = j - r.size;
						return false
					});
					u.getNaviButtons().removeClass(r.disabledClass)
				});
		return b.api ? f : this
	}
})(jQuery);
(function(c) {
	var d = c.tools.scrollable;
	d.plugins = d.plugins || {};
	d.plugins.autoscroll = {
		version : "1.0.1",
		conf : {
			autoplay : true,
			interval : 3000,
			autopause : true,
			steps : 1,
			api : false
		}
	};
	c.fn.autoscroll = function(b) {
		if (typeof b == "number") {
			b = {
				interval : b
			}
		}
		var a = c.extend( {}, d.plugins.autoscroll.conf), f;
		c.extend(a, b);
		this.each(function() {
			var k = c(this).scrollable();
			if (k) {
				f = k
			}
			var e, m, j = true;
			k.play = function() {
				if (e) {
					return
				}
				j = false;
				e = setInterval(function() {
					k.move(a.steps)
				}, a.interval);
				k.move(a.steps)
			};
			k.pause = function() {
				e = clearInterval(e)
			};
			k.stop = function() {
				k.pause();
				j = true
			};
			if (a.autopause) {
				k.getRoot().add(k.getNaviButtons()).hover(function() {
					k.pause();
					clearInterval(m)
				}, function() {
					if (!j) {
						m = setTimeout(k.play, a.interval)
					}
				})
			}
			if (a.autoplay) {
				setTimeout(k.play, a.interval)
			}
		});
		return a.api ? f : this
	}
})(jQuery);
(function(c) {
	var d = c.tools.scrollable;
	d.plugins = d.plugins || {};
	d.plugins.navigator = {
		version : "1.0.2",
		conf : {
			navi : ".navi",
			naviItem : null,
			activeClass : "active",
			indexed : false,
			api : false,
			idPrefix : null
		}
	};
	c.fn.navigator = function(b) {
		var a = c.extend( {}, d.plugins.navigator.conf), f;
		if (typeof b == "string") {
			b = {
				navi : b
			}
		}
		b = c.extend(a, b);
		this.each(function() {
			var p = c(this).scrollable(), s = p.getRoot(), e = s.data("finder")
					.call(null, b.navi), r = null, m = p.getNaviButtons();
			if (p) {
				f = p
			}
			p.getNaviButtons = function() {
				return m.add(e)
			};
			function n() {
				if (!e.children().length || e.data("navi") == p) {
					e.empty();
					e.data("navi", p);
					for ( var g = 0; g < p.getPageAmount(); g++) {
						e.append(c("<" + (b.naviItem || "a") + "/>"))
					}
					r = e.children().each(function(k) {
						var j = c(this);
						j.click(function(u) {
							p.setPage(k);
							return u.preventDefault()
						});
						if (b.indexed) {
							j.text(k)
						}
						if (b.idPrefix) {
							j.attr("id", b.idPrefix + k)
						}
					})
				} else {
					r = b.naviItem ? e.find(b.naviItem) : e.children();
					r.each(function(k) {
						var j = c(this);
						j.click(function(u) {
							p.setPage(k);
							return u.preventDefault()
						})
					})
				}
				r.eq(0).addClass(b.activeClass)
			}
			p.onStart(function(j, k) {
				var g = b.activeClass;
				r.removeClass(g).eq(p.getPageIndex()).addClass(g)
			});
			p.onReload(function() {
				n()
			});
			n();
			var q = r.filter("[href=" + location.hash + "]");
			if (q.length) {
				p.move(r.index(q))
			}
		});
		return b.api ? f : this
	}
})(jQuery);
(function(e) {
	e.fn.wheel = function(a) {
		return this[a ? "bind" : "trigger"]("wheel", a)
	};
	e.event.special.wheel = {
		setup : function() {
			e.event.add(this, g, j, {})
		},
		teardown : function() {
			e.event.remove(this, g, j)
		}
	};
	var g = !e.browser.mozilla ? "mousewheel" : "DOMMouseScroll"
			+ (e.browser.version < "1.9" ? " mousemove" : "");
	function j(a) {
		switch (a.type) {
		case "mousemove":
			return e.extend(a.data, {
				clientX : a.clientX,
				clientY : a.clientY,
				pageX : a.pageX,
				pageY : a.pageY
			});
		case "DOMMouseScroll":
			e.extend(a, a.data);
			a.delta = -a.detail / 3;
			break;
		case "mousewheel":
			a.delta = a.wheelDelta / 120;
			break
		}
		a.type = "wheel";
		return e.event.handle.call(this, a, a.delta)
	}
	var f = e.tools.scrollable;
	f.plugins = f.plugins || {};
	f.plugins.mousewheel = {
		version : "1.0.1",
		conf : {
			api : false,
			speed : 50
		}
	};
	e.fn.mousewheel = function(b) {
		var a = e.extend( {}, f.plugins.mousewheel.conf), c;
		if (typeof b == "number") {
			b = {
				speed : b
			}
		}
		b = e.extend(a, b);
		this.each(function() {
			var d = e(this).scrollable();
			if (d) {
				c = d
			}
			d.getRoot().wheel(function(m, k) {
				d.move(k < 0 ? 1 : -1, b.speed || 50);
				return false
			})
		});
		return b.api ? c : this
	}
})(jQuery);
(function(j) {
	j.tools = j.tools || {};
	j.tools.overlay = {
		version : "1.1.2",
		addEffect : function(c, b, a) {
			e[c] = [ b, a ]
		},
		conf : {
			top : "10%",
			left : "center",
			absolute : false,
			speed : "normal",
			closeSpeed : "fast",
			effect : "default",
			close : null,
			oneInstance : true,
			closeOnClick : true,
			closeOnEsc : true,
			api : false,
			expose : null,
			target : null
		}
	};
	var e = {};
	j.tools.overlay.addEffect("default", function(a) {
		this.getOverlay().fadeIn(this.getConf().speed, a)
	}, function(a) {
		this.getOverlay().fadeOut(this.getConf().closeSpeed, a)
	});
	var g = [];
	function f(u, p) {
		var a = this, c = j(this), b = j(window), q, r, s, x = p.expose
				&& j.tools.expose.version;
		var v = p.target || u.attr("rel");
		r = v ? j(v) : null || u;
		if (!r.length) {
			throw "Could not find Overlay: " + v
		}
		if (u && u.index(r) == -1) {
			u.click(function(k) {
				a.load(k);
				return k.preventDefault()
			})
		}
		j.each(p, function(m, k) {
			if (j.isFunction(k)) {
				c.bind(m, k)
			}
		});
		j.extend(a, {
			load : function(k) {
				if (a.isOpened()) {
					return a
				}
				var y = e[p.effect];
				if (!y) {
					throw 'Overlay: cannot find effect : "' + p.effect + '"'
				}
				if (p.oneInstance) {
					j.each(g, function() {
						this.close(k)
					})
				}
				k = k || j.Event();
				k.type = "onBeforeLoad";
				c.trigger(k);
				if (k.isDefaultPrevented()) {
					return a
				}
				s = true;
				if (x) {
					r.expose().load(k)
				}
				var m = p.top;
				var n = p.left;
				var A = r.outerWidth( {
					margin : true
				});
				var z = r.outerHeight( {
					margin : true
				});
				if (typeof m == "string") {
					m = m == "center" ? Math.max((b.height() - z) / 2, 0)
							: parseInt(m, 10) / 100 * b.height()
				}
				if (n == "center") {
					n = Math.max((b.width() - A) / 2, 0)
				}
				if (!p.absolute) {
					m += b.scrollTop();
					n += b.scrollLeft()
				}
				r.css( {
					top : m,
					left : n,
					position : "absolute"
				});
				k.type = "onStart";
				c.trigger(k);
				y[0].call(a, function() {
					if (s) {
						k.type = "onLoad";
						c.trigger(k)
					}
				});
				if (p.closeOnClick) {
					j(document).bind("click.overlay", function(B) {
						if (!a.isOpened()) {
							return
						}
						var C = j(B.target);
						if (C.parents(r).length > 1) {
							return
						}
						j.each(g, function() {
							this.close(B)
						})
					})
				}
				if (p.closeOnEsc) {
					j(document).unbind("keydown.overlay").bind(
							"keydown.overlay", function(B) {
								if (B.keyCode == 27) {
									j.each(g, function() {
										this.close(B)
									})
								}
							})
				}
				return a
			},
			close : function(k) {
				if (!a.isOpened()) {
					return a
				}
				k = k || j.Event();
				k.type = "onBeforeClose";
				c.trigger(k);
				if (k.isDefaultPrevented()) {
					return
				}
				s = false;
				e[p.effect][1].call(a, function() {
					k.type = "onClose";
					c.trigger(k)
				});
				var m = true;
				j.each(g, function() {
					if (this.isOpened()) {
						m = false
					}
				});
				if (m) {
					j(document).unbind("click.overlay").unbind(
							"keydown.overlay")
				}
				return a
			},
			getContent : function() {
				return r
			},
			getOverlay : function() {
				return r
			},
			getTrigger : function() {
				return u
			},
			getClosers : function() {
				return q
			},
			isOpened : function() {
				return s
			},
			getConf : function() {
				return p
			},
			bind : function(m, k) {
				c.bind(m, k);
				return a
			},
			unbind : function(k) {
				c.unbind(k);
				return a
			}
		});
		j.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),
				function(m, k) {
					a[k] = function(n) {
						return a.bind(k, n)
					}
				});
		if (x) {
			if (typeof p.expose == "string") {
				p.expose = {
					color : p.expose
				}
			}
			j.extend(p.expose, {
				api : true,
				closeOnClick : p.closeOnClick,
				closeOnEsc : false
			});
			var d = r.expose(p.expose);
			d.onBeforeClose(function(k) {
				a.close(k)
			});
			a.onClose(function(k) {
				d.close(k)
			})
		}
		q = r.find(p.close || ".close");
		if (!q.length && !p.close) {
			q = j('<div class="close"></div>');
			r.prepend(q)
		}
		q.click(function(k) {
			a.close(k)
		})
	}
	j.fn.overlay = function(c) {
		var b = this.eq(typeof c == "number" ? c : 0).data("overlay");
		if (b) {
			return b
		}
		if (j.isFunction(c)) {
			c = {
				onBeforeLoad : c
			}
		}
		var a = j.extend( {}, j.tools.overlay.conf);
		c = j.extend(true, a, c);
		this.each(function() {
			b = new f(j(this), c);
			g.push(b);
			j(this).data("overlay", b)
		});
		return c.api ? b : this
	}
})(jQuery);
(function(c) {
	var d = c.tools.overlay;
	d.plugins = d.plugins || {};
	d.plugins.gallery = {
		version : "1.0.0",
		conf : {
			imgId : "img",
			next : ".next",
			prev : ".prev",
			info : ".info",
			progress : ".progress",
			disabledClass : "disabled",
			activeClass : "active",
			opacity : 0.8,
			speed : "slow",
			template : "<strong>${title}</strong> <span>Image ${index} of ${total}</span>",
			autohide : true,
			preload : true,
			api : false
		}
	};
	c.fn.gallery = function(G) {
		var v = c.extend( {}, d.plugins.gallery.conf), y;
		c.extend(v, G);
		y = this.overlay();
		var a = this, B = y.getOverlay(), A = B.find(v.next), D = B
				.find(v.prev), F = B.find(v.info), H = B.find(v.progress), C = D
				.add(A).add(F).css( {
					opacity : v.opacity
				}), I = y.getClosers(), z;
		function u(f) {
			H.fadeIn();
			C.hide();
			I.hide();
			var g = f.attr("href");
			var e = new Image();
			e.onload = function() {
				H.fadeOut();
				var q = c("#" + v.imgId, B);
				if (!q.length) {
					q = c("<img/>").attr("id", v.imgId).css("visibility",
							"hidden");
					B.prepend(q)
				}
				q.attr("src", g).css("visibility", "hidden");
				var n = e.width;
				var k = (c(window).width() - n) / 2;
				z = a.index(a.filter("[href=" + g + "]"));
				a.removeClass(v.activeClass).eq(z).addClass(v.activeClass);
				var m = v.disabledClass;
				C.removeClass(m);
				if (z === 0) {
					D.addClass(m)
				}
				if (z == a.length - 1) {
					A.addClass(m)
				}
				var p = v.template.replace("${title}",
						f.attr("title") || f.data("title")).replace("${index}",
						z + 1).replace("${total}", a.length);
				var j = parseInt(F.css("paddingLeft"), 10)
						+ parseInt(F.css("paddingRight"), 10);
				F.html(p).css( {
					width : n - j
				});
				B.animate( {
					width : n,
					height : e.height,
					left : k
				}, v.speed, function() {
					q.hide().css("visibility", "visible").fadeIn(function() {
						if (!v.autohide) {
							C.fadeIn();
							I.show()
						}
					})
				})
			};
			e.onerror = function() {
				B.fadeIn().html("Cannot find image " + g)
			};
			e.src = g;
			if (v.preload) {
				a.filter(":eq(" + (z - 1) + "), :eq(" + (z + 1) + ")").each(
						function() {
							var j = new Image();
							j.src = c(this).attr("href")
						})
			}
		}
		function E(f, e) {
			f.click(function() {
				if (f.hasClass(v.disabledClass)) {
					return
				}
				var g = a.eq(i = z + (e ? 1 : -1));
				if (g.length) {
					u(g)
				}
			})
		}
		E(A, true);
		E(D);
		c(document).keydown(function(f) {
			if (!B.is(":visible") || f.altKey || f.ctrlKey) {
				return
			}
			if (f.keyCode == 37 || f.keyCode == 39) {
				var e = f.keyCode == 37 ? D : A;
				e.click();
				return f.preventDefault()
			}
			return true
		});
		function b() {
			if (!B.is(":animated")) {
				C.show();
				I.show()
			}
		}
		if (v.autohide) {
			B.hover(b, function() {
				C.fadeOut();
				I.hide()
			}).mousemove(b)
		}
		var x;
		this.each(function() {
			var e = c(this), f = c(this).overlay(), g = f;
			f.onBeforeLoad(function() {
				u(e)
			});
			f.onClose(function() {
				a.removeClass(v.activeClass)
			})
		});
		return v.api ? x : this
	}
})(jQuery);
(function(k) {
	var f = k.tools.overlay;
	f.effects = f.effects || {};
	f.effects.apple = {
		version : "1.0.1"
	};
	k.extend(f.conf, {
		start : {
			absolute : true,
			top : null,
			left : null
		},
		fadeInSpeed : "fast",
		zIndex : 9999
	});
	function m(b) {
		var a = b.offset();
		return [ a.top + b.height() / 2, a.left + b.width() / 2 ]
	}
	var j = function(d) {
		var s = this.getOverlay(), z = this.getConf(), v = this.getTrigger(), b = this, a = s
				.outerWidth( {
					margin : true
				}), e = s.data("img");
		if (!e) {
			var p = s.css("backgroundImage");
			if (!p) {
				throw "background-image CSS property not set for overlay"
			}
			p = p.substring(p.indexOf("(") + 1, p.indexOf(")")).replace(/\"/g,
					"");
			s.css("backgroundImage", "none");
			e = k('<img src="' + p + '"/>');
			e.css( {
				border : 0,
				position : "absolute",
				display : "none"
			}).width(a);
			k("body").append(e);
			s.data("img", e)
		}
		var c = k(window), u = z.start.top || Math.round(c.height() / 2), x = z.start.left
				|| Math.round(c.width() / 2);
		if (v) {
			var y = m(v);
			u = y[0];
			x = y[1]
		}
		if (!z.start.absolute) {
			u += c.scrollTop();
			x += c.scrollLeft()
		}
		e.css( {
			top : u,
			left : x,
			width : 0,
			zIndex : z.zIndex
		}).show();
		e.animate( {
			top : s.css("top"),
			left : s.css("left"),
			width : a
		}, z.speed, function() {
			s.css("zIndex", z.zIndex + 1).fadeIn(z.fadeInSpeed, function() {
				if (b.isOpened() && !k(this).index(s)) {
					d.call()
				} else {
					s.hide()
				}
			})
		})
	};
	var g = function(p) {
		var e = this.getOverlay(), d = this.getConf(), n = this.getTrigger(), a = d.start.top, b = d.start.left;
		e.hide();
		if (n) {
			var c = m(n);
			a = c[0];
			b = c[1]
		}
		e.data("img").animate( {
			top : a,
			left : b,
			width : 0
		}, d.closeSpeed, p)
	};
	f.addEffect("apple", j, g)
})(jQuery);
(function(d) {
	d.tools = d.tools || {};
	d.tools.expose = {
		version : "1.0.5",
		conf : {
			maskId : null,
			loadSpeed : "slow",
			closeSpeed : "fast",
			closeOnClick : true,
			closeOnEsc : true,
			zIndex : 9998,
			opacity : 0.8,
			color : "#456",
			api : false
		}
	};
	function e() {
		if (d.browser.msie) {
			var a = d(document).height(), b = d(window).height();
			return [
					window.innerWidth || document.documentElement.clientWidth
							|| document.body.clientWidth, a - b < 20 ? b : a ]
		}
		return [ d(window).width(), d(document).height() ]
	}
	function f(c, k) {
		var n = this, a = d(this), p = null, m = false, b = 0;
		d.each(k, function(j, g) {
			if (d.isFunction(g)) {
				a.bind(j, g)
			}
		});
		d(window).resize(function() {
			n.fit()
		});
		d.extend(this, {
			getMask : function() {
				return p
			},
			getExposed : function() {
				return c
			},
			getConf : function() {
				return k
			},
			isLoaded : function() {
				return m
			},
			load : function(r) {
				if (m) {
					return n
				}
				b = c.eq(0).css("zIndex");
				if (k.maskId) {
					p = d("#" + k.maskId)
				}
				if (!p || !p.length) {
					var j = e();
					p = d("<div/>").css( {
						position : "absolute",
						top : 0,
						left : 0,
						width : j[0],
						height : j[1],
						display : "none",
						opacity : 0,
						zIndex : k.zIndex
					});
					if (k.maskId) {
						p.attr("id", k.maskId)
					}
					d("body").append(p);
					var q = p.css("backgroundColor");
					if (!q || q == "transparent" || q == "rgba(0, 0, 0, 0)") {
						p.css("backgroundColor", k.color)
					}
					if (k.closeOnEsc) {
						d(document).bind("keydown.unexpose", function(s) {
							if (s.keyCode == 27) {
								n.close()
							}
						})
					}
					if (k.closeOnClick) {
						p.bind("click.unexpose", function(s) {
							n.close(s)
						})
					}
				}
				r = r || d.Event();
				r.type = "onBeforeLoad";
				a.trigger(r);
				if (r.isDefaultPrevented()) {
					return n
				}
				d.each(c, function() {
					var s = d(this);
					if (!/relative|absolute|fixed/i.test(s.css("position"))) {
						s.css("position", "relative")
					}
				});
				c.css( {
					zIndex : Math.max(k.zIndex + 1, b == "auto" ? 0 : b)
				});
				var g = p.height();
				if (!this.isLoaded()) {
					p.css( {
						opacity : 0,
						display : "block"
					}).fadeTo(k.loadSpeed, k.opacity, function() {
						if (p.height() != g) {
							p.css("height", g)
						}
						r.type = "onLoad";
						a.trigger(r)
					})
				}
				m = true;
				return n
			},
			close : function(g) {
				if (!m) {
					return n
				}
				g = g || d.Event();
				g.type = "onBeforeClose";
				a.trigger(g);
				if (g.isDefaultPrevented()) {
					return n
				}
				p.fadeOut(k.closeSpeed, function() {
					g.type = "onClose";
					a.trigger(g);
					c.css( {
						zIndex : d.browser.msie ? b : null
					})
				});
				m = false;
				return n
			},
			fit : function() {
				if (p) {
					var g = e();
					p.css( {
						width : g[0],
						height : g[1]
					})
				}
			},
			bind : function(j, g) {
				a.bind(j, g);
				return n
			},
			unbind : function(g) {
				a.unbind(g);
				return n
			}
		});
		d.each("onBeforeLoad,onLoad,onBeforeClose,onClose".split(","),
				function(j, g) {
					n[g] = function(q) {
						return n.bind(g, q)
					}
				})
	}
	d.fn.expose = function(c) {
		var b = this.eq(typeof c == "number" ? c : 0).data("expose");
		if (b) {
			return b
		}
		if (typeof c == "string") {
			c = {
				color : c
			}
		}
		var a = d.extend( {}, d.tools.expose.conf);
		c = d.extend(a, c);
		this.each(function() {
			b = new f(d(this), c);
			d(this).data("expose", b)
		});
		return c.api ? b : this
	}
})(jQuery);
(function() {
	var r = typeof jQuery == "function";
	var m = {
		width : "100%",
		height : "100%",
		allowfullscreen : true,
		allowscriptaccess : "always",
		quality : "high",
		version : null,
		onFail : null,
		expressInstall : null,
		w3c : false,
		cachebusting : false
	};
	if (r) {
		jQuery.tools = jQuery.tools || {};
		jQuery.tools.flashembed = {
			version : "1.0.4",
			conf : m
		}
	}
	function k() {
		if (u.done) {
			return false
		}
		var a = document;
		if (a && a.getElementsByTagName && a.getElementById && a.body) {
			clearInterval(u.timer);
			u.timer = null;
			for ( var b = 0; b < u.ready.length; b++) {
				u.ready[b].call()
			}
			u.ready = null;
			u.done = true
		}
	}
	var u = r ? jQuery : function(a) {
		if (u.done) {
			return a()
		}
		if (u.timer) {
			u.ready.push(a)
		} else {
			u.ready = [ a ];
			u.timer = setInterval(k, 13)
		}
	};
	function q(a, b) {
		if (b) {
			for (key in b) {
				if (b.hasOwnProperty(key)) {
					a[key] = b[key]
				}
			}
		}
		return a
	}
	function p(c) {
		switch (n(c)) {
		case "string":
			c = c.replace(new RegExp('(["\\\\])', "g"), "\\$1");
			c = c.replace(/^\s?(\d+)%/, "$1pct");
			return '"' + c + '"';
		case "array":
			return "[" + v(c, function(d) {
				return p(d)
			}).join(",") + "]";
		case "function":
			return '"function()"';
		case "object":
			var b = [];
			for ( var a in c) {
				if (c.hasOwnProperty(a)) {
					b.push('"' + a + '":' + p(c[a]))
				}
			}
			return "{" + b.join(",") + "}"
		}
		return String(c).replace(/\s/g, " ").replace(/\'/g, '"')
	}
	function n(a) {
		if (a === null || a === undefined) {
			return false
		}
		var b = typeof a;
		return (b == "object" && a.push) ? "array" : b
	}
	if (window.attachEvent) {
		window.attachEvent("onbeforeunload", function() {
			__flash_unloadHandler = function() {
			};
			__flash_savedUnloadHandler = function() {
			}
		})
	}
	function v(c, d) {
		var a = [];
		for ( var b in c) {
			if (c.hasOwnProperty(b)) {
				a[b] = d(c[b])
			}
		}
		return a
	}
	function x(e, c) {
		var f = q( {}, e);
		var d = document.all;
		var j = '<object width="' + f.width + '" height="' + f.height + '"';
		if (d && !f.id) {
			f.id = "_" + ("" + Math.random()).substring(9)
		}
		if (f.id) {
			j += ' id="' + f.id + '"'
		}
		if (f.cachebusting) {
			f.src += ((f.src.indexOf("?") != -1 ? "&" : "?") + Math.random())
		}
		if (f.w3c || !d) {
			j += ' data="' + f.src + '" type="application/x-shockwave-flash"'
		} else {
			j += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
		}
		j += ">";
		if (f.w3c || d) {
			j += '<param name="movie" value="' + f.src + '" />'
		}
		f.width = f.height = f.id = f.w3c = f.src = null;
		for ( var b in f) {
			if (f[b] !== null) {
				j += '<param name="' + b + '" value="' + f[b] + '" />'
			}
		}
		var g = "";
		if (c) {
			for ( var a in c) {
				if (c[a] !== null) {
					g += a + "=" + (typeof c[a] == "object" ? p(c[a]) : c[a])
							+ "&"
				}
			}
			g = g.substring(0, g.length - 1);
			j += '<param name="flashvars" value=\'' + g + "' />"
		}
		j += "</object>";
		return j
	}
	function s(a, f, b) {
		var c = flashembed.getVersion();
		q(this, {
			getContainer : function() {
				return a
			},
			getConf : function() {
				return f
			},
			getVersion : function() {
				return c
			},
			getFlashvars : function() {
				return b
			},
			getApi : function() {
				return a.firstChild
			},
			getHTML : function() {
				return x(f, b)
			}
		});
		var e = f.version;
		var d = f.expressInstall;
		var g = !e || flashembed.isSupported(e);
		if (g) {
			f.onFail = f.version = f.expressInstall = null;
			a.innerHTML = x(f, b)
		} else {
			if (e && d && flashembed.isSupported( [ 6, 65 ])) {
				q(f, {
					src : d
				});
				b = {
					MMredirectURL : location.href,
					MMplayerType : "PlugIn",
					MMdoctitle : document.title
				};
				a.innerHTML = x(f, b)
			} else {
				if (a.innerHTML.replace(/\s/g, "") !== "") {
				} else {
					a.innerHTML = "<h2>Flash version "
							+ e
							+ " or greater is required</h2><h3>"
							+ (c[0] > 0 ? "Your version is " + c
									: "You have no flash plugin installed")
							+ "</h3>"
							+ (a.tagName == "A" ? "<p>Click here to download latest version</p>"
									: "<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");
					if (a.tagName == "A") {
						a.onclick = function() {
							location.href = "http://www.adobe.com/go/getflashplayer"
						}
					}
				}
			}
		}
		if (!g && f.onFail) {
			var j = f.onFail.call(this);
			if (typeof j == "string") {
				a.innerHTML = j
			}
		}
		if (document.all) {
			window[f.id] = document.getElementById(f.id)
		}
	}
	window.flashembed = function(b, a, c) {
		if (typeof b == "string") {
			var e = document.getElementById(b);
			if (e) {
				b = e
			} else {
				u(function() {
					flashembed(b, a, c)
				});
				return
			}
		}
		if (!b) {
			return
		}
		if (typeof a == "string") {
			a = {
				src : a
			}
		}
		var d = q( {}, m);
		q(d, a);
		return new s(b, d, c)
	};
	q(
			window.flashembed,
			{
				getVersion : function() {
					var a = [ 0, 0 ];
					if (navigator.plugins
							&& typeof navigator.plugins["Shockwave Flash"] == "object") {
						var b = navigator.plugins["Shockwave Flash"].description;
						if (typeof b != "undefined") {
							b = b.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
							var j = parseInt(b.replace(/^(.*)\..*$/, "$1"), 10);
							var d = /r/.test(b) ? parseInt(b.replace(
									/^.*r(.*)$/, "$1"), 10) : 0;
							a = [ j, d ]
						}
					} else {
						if (window.ActiveXObject) {
							try {
								var f = new ActiveXObject(
										"ShockwaveFlash.ShockwaveFlash.7")
							} catch (e) {
								try {
									f = new ActiveXObject(
											"ShockwaveFlash.ShockwaveFlash.6");
									a = [ 6, 0 ];
									f.AllowScriptAccess = "always"
								} catch (c) {
									if (a[0] == 6) {
										return a
									}
								}
								try {
									f = new ActiveXObject(
											"ShockwaveFlash.ShockwaveFlash")
								} catch (g) {
								}
							}
							if (typeof f == "object") {
								b = f.GetVariable("$version");
								if (typeof b != "undefined") {
									b = b.replace(/^\S+\s+(.*)$/, "$1").split(
											",");
									a = [ parseInt(b[0], 10),
											parseInt(b[2], 10) ]
								}
							}
						}
					}
					return a
				},
				isSupported : function(c) {
					var a = flashembed.getVersion();
					var b = (a[0] > c[0]) || (a[0] == c[0] && a[1] >= c[1]);
					return b
				},
				domReady : u,
				asString : p,
				getHTML : x
			});
	if (r) {
		jQuery.fn.flashembed = function(b, c) {
			var a = null;
			this.each(function() {
				a = flashembed(this, b, c)
			});
			return b.api === false ? this : a
		}
	}
})();
var Cufon = (function() {
	var P = function() {
		return P.replace.apply(null, arguments)
	};
	var D = P.DOM = {
		ready : (function() {
			var c = false, a = {
				loaded : 1,
				complete : 1
			};
			var d = [], b = function() {
				if (c) {
					return
				}
				c = true;
				for ( var e; e = d.shift(); e()) {
				}
			};
			if (document.addEventListener) {
				document.addEventListener("DOMContentLoaded", b, false);
				window.addEventListener("pageshow", b, false)
			}
			if (!window.opera && document.readyState) {
				(function() {
					a[document.readyState] ? b() : setTimeout(arguments.callee,
							10)
				})()
			}
			if (document.readyState && document.createStyleSheet) {
				(function() {
					try {
						document.body.doScroll("left");
						b()
					} catch (e) {
						setTimeout(arguments.callee, 1)
					}
				})()
			}
			K(window, "load", b);
			return function(e) {
				if (!arguments.length) {
					b()
				} else {
					c ? e() : d.push(e)
				}
			}
		})(),
		root : function() {
			return document.documentElement || document.body
		}
	};
	var O = P.CSS = {
		Size : function(a, b) {
			this.value = parseFloat(a);
			this.unit = String(a).match(/[a-z%]*$/)[0] || "px";
			this.convert = function(c) {
				return c / b * this.value
			};
			this.convertFrom = function(c) {
				return c / this.value * b
			};
			this.toString = function() {
				return this.value + this.unit
			}
		},
		addClass : function(b, c) {
			var a = b.className;
			b.className = a + (a && " ") + c;
			return b
		},
		color : S(function(a) {
			var b = {};
			b.color = a.replace(/^rgba\((.*?),\s*([\d.]+)\)/,
					function(d, e, c) {
						b.opacity = parseFloat(c);
						return "rgb(" + e + ")"
					});
			return b
		}),
		fontStretch : S(function(a) {
			if (typeof a == "number") {
				return a
			}
			if (/%$/.test(a)) {
				return parseFloat(a) / 100
			}
			return {
				"ultra-condensed" : 0.5,
				"extra-condensed" : 0.625,
				condensed : 0.75,
				"semi-condensed" : 0.875,
				"semi-expanded" : 1.125,
				expanded : 1.25,
				"extra-expanded" : 1.5,
				"ultra-expanded" : 2
			}[a] || 1
		}),
		getStyle : function(a) {
			var b = document.defaultView;
			if (b && b.getComputedStyle) {
				return new ab(b.getComputedStyle(a, null))
			}
			if (a.currentStyle) {
				return new ab(a.currentStyle)
			}
			return new ab(a.style)
		},
		gradient : S(function(b) {
			var a = {
				id : b,
				type : b.match(/^-([a-z]+)-gradient\(/)[1],
				stops : []
			}, e = b.substr(b.indexOf("(")).match(
					/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);
			for ( var c = 0, f = e.length, d; c < f; ++c) {
				d = e[c].split("=", 2).reverse();
				a.stops.push( [ d[1] || c / (f - 1), d[0] ])
			}
			return a
		}),
		quotedList : S(function(a) {
			var b = [], c = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, d;
			while (d = c.exec(a)) {
				b.push(d[3] || d[1])
			}
			return b
		}),
		recognizesMedia : S(function(a) {
			var c = document.createElement("style"), d, e, f;
			c.type = "text/css";
			c.media = a;
			try {
				c.appendChild(document.createTextNode("/**/"))
			} catch (b) {
			}
			e = V("head")[0];
			e.insertBefore(c, e.firstChild);
			d = (c.sheet || c.styleSheet);
			f = d && !d.disabled;
			e.removeChild(c);
			return f
		}),
		removeClass : function(a, b) {
			var c = RegExp("(?:^|\\s+)" + b + "(?=\\s|$)", "g");
			a.className = a.className.replace(c, "");
			return a
		},
		supports : function(a, b) {
			var c = document.createElement("span").style;
			if (c[a] === undefined) {
				return false
			}
			c[a] = b;
			return c[a] === b
		},
		textAlign : function(a, b, d, c) {
			if (b.get("textAlign") == "right") {
				if (d > 0) {
					a = " " + a
				}
			} else {
				if (d < c - 1) {
					a += " "
				}
			}
			return a
		},
		textShadow : S(function(b) {
			if (b == "none") {
				return null
			}
			var c = [], a = {}, f, e = 0;
			var d = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;
			while (f = d.exec(b)) {
				if (f[0] == ",") {
					c.push(a);
					a = {};
					e = 0
				} else {
					if (f[1]) {
						a.color = f[1]
					} else {
						a[ [ "offX", "offY", "blur" ][e++]] = f[2]
					}
				}
			}
			c.push(a);
			return c
		}),
		textTransform : (function() {
			var a = {
				uppercase : function(b) {
					return b.toUpperCase()
				},
				lowercase : function(b) {
					return b.toLowerCase()
				},
				capitalize : function(b) {
					return b.replace(/\b./g, function(c) {
						return c.toUpperCase()
					})
				}
			};
			return function(b, c) {
				var d = a[c.get("textTransform")];
				return d ? d(b) : b
			}
		})(),
		whiteSpace : (function() {
			var a = {
				inline : 1,
				"inline-block" : 1,
				"run-in" : 1
			};
			var b = /^\s+/, c = /\s+$/;
			return function(d, f, e, g) {
				if (g) {
					if (g.nodeName.toLowerCase() == "br") {
						d = d.replace(b, "")
					}
				}
				if (a[f.get("display")]) {
					return d
				}
				if (!e.previousSibling) {
					d = d.replace(b, "")
				}
				if (!e.nextSibling) {
					d = d.replace(c, "")
				}
				return d
			}
		})()
	};
	O.ready = (function() {
		var c = !O.recognizesMedia("all"), k = false;
		var a = [], f = function() {
			c = true;
			for ( var m; m = a.shift(); m()) {
			}
		};
		var e = V("link"), d = V("style");
		function b(m) {
			return m.disabled || g(m.sheet, m.media || "screen")
		}
		function g(u, q) {
			if (!O.recognizesMedia(q || "all")) {
				return true
			}
			if (!u || u.disabled) {
				return false
			}
			try {
				var p = u.cssRules, r;
				if (p) {
					search: for ( var m = 0, n = p.length; r = p[m], m < n; ++m) {
						switch (r.type) {
						case 2:
							break;
						case 3:
							if (!g(r.styleSheet, r.media.mediaText)) {
								return false
							}
							break;
						default:
							break search
						}
					}
				}
			} catch (s) {
			}
			return true
		}
		function j() {
			if (document.createStyleSheet) {
				return true
			}
			var m, n;
			for (n = 0; m = e[n]; ++n) {
				if (m.rel.toLowerCase() == "stylesheet" && !b(m)) {
					return false
				}
			}
			for (n = 0; m = d[n]; ++n) {
				if (!b(m)) {
					return false
				}
			}
			return true
		}
		D.ready(function() {
			if (!k) {
				k = O.getStyle(document.body).isUsable()
			}
			if (c || (k && j())) {
				f()
			} else {
				setTimeout(arguments.callee, 10)
			}
		});
		return function(m) {
			if (c) {
				m()
			} else {
				a.push(m)
			}
		}
	})();
	function I(a) {
		var b = this.face = a.face, c = {
			"\u0020" : 1,
			"\u00a0" : 1,
			"\u3000" : 1
		};
		this.glyphs = a.glyphs;
		this.w = a.w;
		this.baseSize = parseInt(b["units-per-em"], 10);
		this.family = b["font-family"].toLowerCase();
		this.weight = b["font-weight"];
		this.style = b["font-style"] || "normal";
		this.viewBox = (function() {
			var d = b.bbox.split(/\s+/);
			var e = {
				minX : parseInt(d[0], 10),
				minY : parseInt(d[1], 10),
				maxX : parseInt(d[2], 10),
				maxY : parseInt(d[3], 10)
			};
			e.width = e.maxX - e.minX;
			e.height = e.maxY - e.minY;
			e.toString = function() {
				return [ this.minX, this.minY, this.width, this.height ]
						.join(" ")
			};
			return e
		})();
		this.ascent = -parseInt(b.ascent, 10);
		this.descent = -parseInt(b.descent, 10);
		this.height = -this.ascent + this.descent;
		this.spacing = function(j, f, s) {
			var e = this.glyphs, g, k, q, d = [], r = 0, m = -1, n = -1, p;
			while (p = j[++m]) {
				g = e[p] || this.missingGlyph;
				if (!g) {
					continue
				}
				if (k) {
					r -= q = k[p] || 0;
					d[n - 1] -= q
				}
				r += d[++n] = ~~(g.w || this.w) + f + (c[p] ? s : 0);
				k = g.k
			}
			d.total = r;
			return d
		}
	}
	function W() {
		var a = {}, b = {
			oblique : "italic",
			italic : "oblique"
		};
		this.add = function(c) {
			(a[c.style] || (a[c.style] = {}))[c.weight] = c
		};
		this.get = function(f, e) {
			var g = a[f] || a[b[f]] || a.normal || a.italic || a.oblique;
			if (!g) {
				return null
			}
			e = {
				normal : 400,
				bold : 700
			}[e] || parseInt(e, 10);
			if (g[e]) {
				return g[e]
			}
			var k = {
				1 : 1,
				99 : 0
			}[e % 100], c = [], j, m;
			if (k === undefined) {
				k = e > 400
			}
			if (e == 500) {
				e = 400
			}
			for ( var d in g) {
				if (!R(g, d)) {
					continue
				}
				d = parseInt(d, 10);
				if (!j || d < j) {
					j = d
				}
				if (!m || d > m) {
					m = d
				}
				c.push(d)
			}
			if (e < j) {
				e = j
			}
			if (e > m) {
				e = m
			}
			c.sort(function(p, n) {
				return (k ? (p >= e && n >= e) ? p < n : p > n
						: (p <= e && n <= e) ? p > n : p < n) ? -1 : 1
			});
			return g[c[0]]
		}
	}
	function J() {
		function b(f, e) {
			if (f.contains) {
				return f.contains(e)
			}
			return f.compareDocumentPosition(e) & 16
		}
		function d(e) {
			var f = e.relatedTarget;
			if (!f || b(this, f)) {
				return
			}
			c(this, e.type == "mouseover")
		}
		function a(e) {
			c(this, e.type == "mouseenter")
		}
		function c(f, e) {
			setTimeout(function() {
				var g = Y.get(f).options;
				P.replace(f, e ? U(g, g.hover) : g, true)
			}, 10)
		}
		this.attach = function(e) {
			if (e.onmouseenter === undefined) {
				K(e, "mouseover", d);
				K(e, "mouseout", d)
			} else {
				K(e, "mouseenter", a);
				K(e, "mouseleave", a)
			}
		}
	}
	function G() {
		var b = [], a = {};
		function c(d) {
			var g = [], e;
			for ( var f = 0; e = d[f]; ++f) {
				g[f] = b[a[e]]
			}
			return g
		}
		this.add = function(d, e) {
			a[d] = b.push(e) - 1
		};
		this.repeat = function() {
			var f = arguments.length ? c(arguments) : b, e;
			for ( var d = 0; e = f[d++];) {
				P.replace(e[0], e[1], true)
			}
		}
	}
	function M() {
		var a = {}, c = 0;
		function b(d) {
			return d.cufid || (d.cufid = ++c)
		}
		this.get = function(e) {
			var d = b(e);
			return a[d] || (a[d] = {})
		}
	}
	function ab(c) {
		var a = {}, b = {};
		this.extend = function(e) {
			for ( var d in e) {
				if (R(e, d)) {
					a[d] = e[d]
				}
			}
			return this
		};
		this.get = function(d) {
			return a[d] != undefined ? a[d] : c[d]
		};
		this.getSize = function(d, e) {
			return b[d] || (b[d] = new O.Size(this.get(d), e))
		};
		this.isUsable = function() {
			return !!c
		}
	}
	function K(b, c, a) {
		if (b.addEventListener) {
			b.addEventListener(c, a, false)
		} else {
			if (b.attachEvent) {
				b.attachEvent("on" + c, function() {
					return a.call(b, window.event)
				})
			}
		}
	}
	function F(b, c) {
		var a = Y.get(b);
		if (a.options) {
			return b
		}
		if (c.hover && c.hoverables[b.nodeName.toLowerCase()]) {
			aa.attach(b)
		}
		a.options = c;
		return b
	}
	function S(b) {
		var a = {};
		return function(c) {
			if (!R(a, c)) {
				a[c] = b.apply(null, arguments)
			}
			return a[c]
		}
	}
	function Z(a, b) {
		var e = O.quotedList(b.get("fontFamily").toLowerCase()), c;
		for ( var d = 0; c = e[d]; ++d) {
			if (T[c]) {
				return T[c].get(b.get("fontStyle"), b.get("fontWeight"))
			}
		}
		return null
	}
	function V(a) {
		return document.getElementsByTagName(a)
	}
	function R(a, b) {
		return a.hasOwnProperty(b)
	}
	function U() {
		var d = {}, e, a;
		for ( var b = 0, c = arguments.length; e = arguments[b], b < c; ++b) {
			for (a in e) {
				if (R(e, a)) {
					d[a] = e[a]
				}
			}
		}
		return d
	}
	function N(q, e, b, d, p, a) {
		var g = document.createDocumentFragment(), m;
		if (e === "") {
			return g
		}
		var f = d.separate;
		var k = e.split(L[f]), c = (f == "words");
		if (c && H) {
			if (/^\s/.test(e)) {
				k.unshift("")
			}
			if (/\s$/.test(e)) {
				k.push("")
			}
		}
		for ( var j = 0, n = k.length; j < n; ++j) {
			m = B[d.engine](q, c ? O.textAlign(k[j], b, j, n) : k[j], b, d, p,
					a, j < n - 1);
			if (m) {
				g.appendChild(m)
			}
		}
		return g
	}
	function Q(a, d) {
		var b = a.nodeName.toLowerCase();
		if (d.ignore[b]) {
			return
		}
		var p = !d.textless[b];
		var c = O.getStyle(F(a, d)).extend(d);
		var n = Z(a, c), m, f, j, k, e, g;
		if (!n) {
			return
		}
		for (m = a.firstChild; m; m = j) {
			f = m.nodeType;
			j = m.nextSibling;
			if (p && f == 3) {
				if (k) {
					k.appendData(m.data);
					a.removeChild(m)
				} else {
					k = m
				}
				if (j) {
					continue
				}
			}
			if (k) {
				a.replaceChild(N(n, O.whiteSpace(k.data, c, k, g), c, d, m, a),
						k);
				k = null
			}
			if (f == 1) {
				if (m.firstChild) {
					if (m.nodeName.toLowerCase() == "cufon") {
						B[d.engine](n, null, c, d, m, a)
					} else {
						arguments.callee(m, d)
					}
				}
				g = m
			}
		}
	}
	var H = " ".split(/\s+/).length == 0;
	var Y = new M();
	var aa = new J();
	var C = new G();
	var X = false;
	var B = {}, T = {}, E = {
		autoDetect : false,
		engine : null,
		forceHitArea : false,
		hover : false,
		hoverables : {
			a : true
		},
		ignore : {
			applet : 1,
			canvas : 1,
			col : 1,
			colgroup : 1,
			head : 1,
			iframe : 1,
			map : 1,
			optgroup : 1,
			option : 1,
			script : 1,
			select : 1,
			style : 1,
			textarea : 1,
			title : 1,
			pre : 1
		},
		printable : true,
		selector : (window.Sizzle
				|| (window.jQuery && function(a) {
					return jQuery(a)
				})
				|| (window.dojo && dojo.query)
				|| (window.Ext && Ext.query)
				|| (window.YAHOO && YAHOO.util && YAHOO.util.Selector && YAHOO.util.Selector.query)
				|| (window.$$ && function(a) {
					return $$(a)
				}) || (window.$ && function(a) {
					return $(a)
				}) || (document.querySelectorAll && function(a) {
					return document.querySelectorAll(a)
				}) || V),
		separate : "words",
		textless : {
			dl : 1,
			html : 1,
			ol : 1,
			table : 1,
			tbody : 1,
			thead : 1,
			tfoot : 1,
			tr : 1,
			ul : 1
		},
		textShadow : "none"
	};
	var L = {
		words : /\s/.test("\u00a0") ? /[^\S\u00a0]+/ : /\s+/,
		characters : "",
		none : /^/
	};
	P.now = function() {
		D.ready();
		return P
	};
	P.refresh = function() {
		C.repeat.apply(C, arguments);
		return P
	};
	P.registerEngine = function(a, b) {
		if (!b) {
			return P
		}
		B[a] = b;
		return P.set("engine", a)
	};
	P.registerFont = function(a) {
		if (!a) {
			return P
		}
		var c = new I(a), b = c.family;
		if (!T[b]) {
			T[b] = new W()
		}
		T[b].add(c);
		return P.set("fontFamily", '"' + b + '"')
	};
	P.replace = function(a, b, c) {
		b = U(E, b);
		if (!b.engine) {
			return P
		}
		if (!X) {
			O.addClass(D.root(), "cufon-active cufon-loading");
			O.ready(function() {
				O.addClass(O.removeClass(D.root(), "cufon-loading"),
						"cufon-ready")
			});
			X = true
		}
		if (b.hover) {
			b.forceHitArea = true
		}
		if (b.autoDetect) {
			delete b.fontFamily
		}
		if (typeof b.textShadow == "string") {
			b.textShadow = O.textShadow(b.textShadow)
		}
		if (typeof b.color == "string" && /^-/.test(b.color)) {
			b.textGradient = O.gradient(b.color)
		} else {
			delete b.textGradient
		}
		if (!c) {
			C.add(a, arguments)
		}
		if (a.nodeType || typeof a == "string") {
			a = [ a ]
		}
		O.ready(function() {
			for ( var e = 0, f = a.length; e < f; ++e) {
				var d = a[e];
				if (typeof d == "string") {
					P.replace(b.selector(d), b, true)
				} else {
					Q(d, b)
				}
			}
		});
		return P
	};
	P.set = function(b, a) {
		E[b] = a;
		return P
	};
	return P
})();
Cufon
		.registerEngine(
				"canvas",
				(function() {
					var g = document.createElement("canvas");
					if (!g || !g.getContext || !g.getContext.apply) {
						return
					}
					g = null;
					var j = Cufon.CSS.supports("display", "inline-block");
					var m = !j
							&& (document.compatMode == "BackCompat" || /frameset|transitional/i
									.test(document.doctype.publicId));
					var k = document.createElement("style");
					k.type = "text/css";
					k
							.appendChild(document
									.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"
											+ (m ? ""
													: "font-size:1px;line-height:1px;")
											+ "}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"
											+ (j ? "cufon canvas{position:relative;}"
													: "cufon canvas{position:absolute;}") + "}@media print{cufon{padding:0;}cufon canvas{display:none;}}")
											.replace(/;/g, "!important;")));
					document.getElementsByTagName("head")[0].appendChild(k);
					function n(a, r) {
						var c = 0, d = 0;
						var s = [], b = /([mrvxe])([^a-z]*)/g, f;
						generate: for ( var q = 0; f = b.exec(a); ++q) {
							var e = f[2].split(",");
							switch (f[1]) {
							case "v":
								s[q] = {
									m : "bezierCurveTo",
									a : [ c + ~~e[0], d + ~~e[1], c + ~~e[2],
											d + ~~e[3], c += ~~e[4],
											d += ~~e[5] ]
								};
								break;
							case "r":
								s[q] = {
									m : "lineTo",
									a : [ c += ~~e[0], d += ~~e[1] ]
								};
								break;
							case "m":
								s[q] = {
									m : "moveTo",
									a : [ c = ~~e[0], d = ~~e[1] ]
								};
								break;
							case "x":
								s[q] = {
									m : "closePath"
								};
								break;
							case "e":
								break generate
							}
							r[s[q].m].apply(r, s[q].a)
						}
						return s
					}
					function p(a, b) {
						for ( var c = 0, d = a.length; c < d; ++c) {
							var e = a[c];
							b[e.m].apply(b, e.a)
						}
					}
					return function(e, aw, ad, az, aq, d) {
						var aH = (aw === null);
						if (aH) {
							aw = aq.alt
						}
						var at = e.viewBox;
						var aG = ad.getSize("fontSize", e.baseSize);
						var ar = 0, ae = 0, af = 0, ay = 0;
						var av = az.textShadow, ah = [];
						if (av) {
							for ( var f = av.length; f--;) {
								var an = av[f];
								var ai = aG.convertFrom(parseFloat(an.offX));
								var ak = aG.convertFrom(parseFloat(an.offY));
								ah[f] = [ ai, ak ];
								if (ak < ar) {
									ar = ak
								}
								if (ai > ae) {
									ae = ai
								}
								if (ak > af) {
									af = ak
								}
								if (ai < ay) {
									ay = ai
								}
							}
						}
						var a = Cufon.CSS.textTransform(aw, ad).split("");
						var ao = e.spacing(a, ~~aG.convertFrom(parseFloat(ad
								.get("letterSpacing")) || 0),
								~~aG.convertFrom(parseFloat(ad
										.get("wordSpacing")) || 0));
						if (!ao.length) {
							return null
						}
						var aJ = ao.total;
						ae += at.width - ao[ao.length - 1];
						ay += at.minX;
						var aA, aF;
						if (aH) {
							aA = aq;
							aF = aq.firstChild
						} else {
							aA = document.createElement("cufon");
							aA.className = "cufon cufon-canvas";
							aA.alt = aw;
							aF = document.createElement("canvas");
							aA.appendChild(aF);
							if (az.printable) {
								var y = document.createElement("cufontext");
								y.appendChild(document.createTextNode(aw));
								aA.appendChild(y)
							}
						}
						var au = aA.style;
						var al = aF.style;
						var aI = aG.convert(at.height);
						var b = Math.ceil(aI);
						var ag = b / aI;
						var am = ag
								* Cufon.CSS.fontStretch(ad.get("fontStretch"));
						var aj = aJ * am;
						var ac = Math.ceil(aG.convert(aj + ae - ay));
						var aE = Math.ceil(aG.convert(at.height - ar + af));
						aF.width = ac;
						aF.height = aE;
						al.width = ac + "px";
						al.height = aE + "px";
						ar += at.minY;
						al.top = Math.round(aG.convert(ar - e.ascent)) + "px";
						al.left = Math.round(aG.convert(ay)) + "px";
						var aB = Math.max(Math.ceil(aG.convert(aj)), 0) + "px";
						if (j) {
							au.width = aB;
							au.height = aG.convert(e.height) + "px"
						} else {
							au.paddingLeft = aB;
							au.paddingBottom = (aG.convert(e.height) - 1)
									+ "px"
						}
						var c = aF.getContext("2d"), ap = aI / at.height;
						c.scale(ap, ap * ag);
						c.translate(-ay, -ar);
						c.save();
						function x() {
							var q = e.glyphs, u, r = -1, s = -1, v;
							c.scale(am, 1);
							while (v = a[++r]) {
								var u = q[a[r]] || e.missingGlyph;
								if (!u) {
									continue
								}
								if (u.d) {
									c.beginPath();
									if (u.code) {
										p(u.code, c)
									} else {
										u.code = n("m" + u.d, c)
									}
									c.fill()
								}
								c.translate(ao[++s], 0)
							}
							c.restore()
						}
						if (av) {
							for ( var f = av.length; f--;) {
								var an = av[f];
								c.save();
								c.fillStyle = an.color;
								c.translate.apply(c, ah[f]);
								x()
							}
						}
						var aC = az.textGradient;
						if (aC) {
							var ax = aC.stops, aD = c.createLinearGradient(0,
									at.minY, 0, at.maxY);
							for ( var f = 0, ab = ax.length; f < ab; ++f) {
								aD.addColorStop.apply(aD, ax[f])
							}
							c.fillStyle = aD
						} else {
							c.fillStyle = ad.get("color")
						}
						x();
						return aA
					}
				})());
Cufon
		.registerEngine(
				"vml",
				(function() {
					var q = document.namespaces;
					if (!q) {
						return
					}
					q.add("cvml", "urn:schemas-microsoft-com:vml");
					q = null;
					var j = document.createElement("cvml:shape");
					j.style.behavior = "url(#default#VML)";
					if (!j.coordsize) {
						return
					}
					j = null;
					var m = (document.documentMode || 0) < 8;
					document
							.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:' + (m ? "middle"
									: "text-bottom") + ";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>")
									.replace(/;/g, "!important;"));
					function s(b, a) {
						return k(b, /(?:em|ex|%)$|^[a-z-]+$/i.test(a) ? "1em"
								: a)
					}
					function k(b, a) {
						if (a === "0") {
							return 0
						}
						if (/px$/i.test(a)) {
							return parseFloat(a)
						}
						var c = b.style.left, d = b.runtimeStyle.left;
						b.runtimeStyle.left = b.currentStyle.left;
						b.style.left = a.replace("%", "em");
						var e = b.style.pixelLeft;
						b.style.left = c;
						b.runtimeStyle.left = d;
						return e
					}
					function p(b, c, d, f) {
						var e = "computed" + f, a = c[e];
						if (isNaN(a)) {
							a = c.get(f);
							c[e] = a = (a == "normal") ? 0 : ~~d.convertFrom(k(
									b, a))
						}
						return a
					}
					var n = {};
					function r(e) {
						var d = e.id;
						if (!n[d]) {
							var g = e.stops, f = document
									.createElement("cvml:fill"), c = [];
							f.type = "gradient";
							f.angle = 180;
							f.focus = "0";
							f.method = "sigma";
							f.color = g[0][1];
							for ( var a = 1, b = g.length - 1; a < b; ++a) {
								c.push(g[a][0] * 100 + "% " + g[a][1])
							}
							f.colors = c.join(",");
							f.color2 = g[b][1];
							n[d] = f
						}
						return n[d]
					}
					return function(aI, ay, b, aG, ar, aF, d) {
						var aY = (ay === null);
						if (aY) {
							ay = ar.alt
						}
						var au = aI.viewBox;
						var aW = b.computedFontSize
								|| (b.computedFontSize = new Cufon.CSS.Size(s(
										aF, b.get("fontSize"))
										+ "px", aI.baseSize));
						var aN, aV;
						if (aY) {
							aN = ar;
							aV = ar.firstChild
						} else {
							aN = document.createElement("cufon");
							aN.className = "cufon cufon-vml";
							aN.alt = ay;
							aV = document.createElement("cufoncanvas");
							aN.appendChild(aV);
							if (aG.printable) {
								var a = document.createElement("cufontext");
								a.appendChild(document.createTextNode(ay));
								aN.appendChild(a)
							}
							if (!d) {
								aN.appendChild(document
										.createElement("cvml:shape"))
							}
						}
						var av = aN.style;
						var ak = aV.style;
						var a0 = aW.convert(au.height), aC = Math.ceil(a0);
						var e = aC / a0;
						var am = e
								* Cufon.CSS.fontStretch(b.get("fontStretch"));
						var f = au.minX, g = au.minY;
						ak.height = aC;
						ak.top = Math.round(aW.convert(g - aI.ascent));
						ak.left = Math.round(aW.convert(f));
						av.height = aW.convert(aI.height) + "px";
						var aA = b.get("color");
						var az = Cufon.CSS.textTransform(ay, b).split("");
						var aq = aI.spacing(az, p(aF, b, aW, "letterSpacing"),
								p(aF, b, aW, "wordSpacing"));
						if (!aq.length) {
							return null
						}
						var a1 = aq.total;
						var aO = -f + a1 + (au.width - aq[aq.length - 1]);
						var ax = aW.convert(aO * am), c = Math.round(ax);
						var an = aO + "," + au.height, aZ;
						var at = "r" + an + "ns";
						var aR = aG.textGradient && r(aG.textGradient);
						var aX = aI.glyphs, aj = 0;
						var aw = aG.textShadow;
						var aK = -1, aL = 0, aP;
						while (aP = az[++aK]) {
							var aE = aX[az[aK]] || aI.missingGlyph, aQ;
							if (!aE) {
								continue
							}
							if (aY) {
								aQ = aV.childNodes[aL];
								while (aQ.firstChild) {
									aQ.removeChild(aQ.firstChild)
								}
							} else {
								aQ = document.createElement("cvml:shape");
								aV.appendChild(aQ)
							}
							aQ.stroked = "f";
							aQ.coordsize = an;
							aQ.coordorigin = aZ = (f - aj) + "," + g;
							aQ.path = (aE.d ? "m" + aE.d + "xe" : "") + "m"
									+ aZ + at;
							aQ.fillcolor = aA;
							if (aR) {
								aQ.appendChild(aR.cloneNode(false))
							}
							var aD = aQ.style;
							aD.width = c;
							aD.height = aC;
							if (aw) {
								var aT = aw[0], aU = aw[1];
								var aH = Cufon.CSS.color(aT.color), aM;
								var ao = document.createElement("cvml:shadow");
								ao.on = "t";
								ao.color = aH.color;
								ao.offset = aT.offX + "," + aT.offY;
								if (aU) {
									aM = Cufon.CSS.color(aU.color);
									ao.type = "double";
									ao.color2 = aM.color;
									ao.offset2 = aU.offX + "," + aU.offY
								}
								ao.opacity = aH.opacity || (aM && aM.opacity)
										|| 1;
								aQ.appendChild(ao)
							}
							aj += aq[aL++]
						}
						var ap = aQ.nextSibling, aS, aJ;
						if (aG.forceHitArea) {
							if (!ap) {
								ap = document.createElement("cvml:rect");
								ap.stroked = "f";
								ap.className = "cufon-vml-cover";
								aS = document.createElement("cvml:fill");
								aS.opacity = 0;
								ap.appendChild(aS);
								aV.appendChild(ap)
							}
							aJ = ap.style;
							aJ.width = c;
							aJ.height = aC
						} else {
							if (ap) {
								aV.removeChild(ap)
							}
						}
						av.width = Math.max(Math.ceil(aW.convert(a1 * am)), 0);
						if (m) {
							var al = b.computedYAdjust;
							if (al === undefined) {
								var aB = b.get("lineHeight");
								if (aB == "normal") {
									aB = "1em"
								} else {
									if (!isNaN(aB)) {
										aB += "em"
									}
								}
								b.computedYAdjust = al = 0.5 * (k(aF, aB) - parseFloat(av.height))
							}
							if (al) {
								av.marginTop = Math.ceil(al) + "px";
								av.marginBottom = al + "px"
							}
						}
						return aN
					}
				})());
Cufon
		.registerFont( {
			"w" : 200,
			"face" : {
				"font-family" : "Helvetica Neue LT Pro",
				"font-weight" : 300,
				"font-stretch" : "normal",
				"units-per-em" : "360",
				"panose-1" : "2 11 4 3 2 2 2 2 2 4",
				"ascent" : "257",
				"descent" : "-103",
				"x-height" : "5",
				"bbox" : "-26 -348 327 77",
				"underline-thickness" : "18",
				"underline-position" : "-18",
				"stemh" : "19",
				"stemv" : "23",
				"unicode-range" : "U+0020-U+2122"
			},
			"glyphs" : {
				" " : {
					"w" : 100
				},
				"!" : {
					"d" : "59,0r-31,0r0,-38r31,0r0,38xm37,-64r-6,-116r0,-77r25,0r0,77r-6,116r-13,0",
					"w" : 86
				},
				'"' : {
					"d" : "79,-170r0,-87r23,0r0,87r-23,0xm31,-170r0,-87r23,0r0,87r-23,0",
					"w" : 133
				},
				"#" : {
					"d" : "131,-153r-51,0r-8,57r51,0xm179,-96r0,16r-40,0r-11,80r-18,0r11,-80r-51,0r-11,80r-18,0r11,-80r-39,0r0,-16r41,0r8,-57r-39,0r0,-16r41,0r12,-80r18,0r-12,80r51,0r11,-80r18,0r-11,80r38,0r0,16r-40,0r-8,57r38,0"
				},
				"$" : {
					"d" : "10,-82r23,0v0,42,22,64,60,68r0,-106v-41,-9,-76,-22,-76,-72v0,-43,34,-70,76,-70r0,-29r14,0r0,29v42,0,77,31,76,78r-23,0v0,-36,-21,-59,-53,-59r0,103v41,9,83,23,83,73v0,48,-41,72,-83,72r0,31r-14,0r0,-31v-56,-5,-81,-32,-83,-87xm93,-143r0,-100v-29,0,-53,15,-53,53v0,33,26,40,53,47xm107,-117r0,103v30,0,60,-15,60,-52v0,-34,-32,-44,-60,-51"
				},
				"%" : {
					"d" : "82,-254v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm240,-114v-31,0,-38,29,-38,52v0,23,7,51,38,51v30,0,38,-28,38,-51v0,-23,-8,-52,-38,-52xm240,-131v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm68,12r163,-273r17,0r-162,273r-18,0xm82,-238v-31,0,-38,29,-38,52v0,23,7,52,38,52v30,0,38,-29,38,-52v0,-23,-8,-52,-38,-52",
					"w" : 320
				},
				"&" : {
					"d" : "102,-238v-19,0,-34,11,-34,33v0,18,17,38,29,52v18,-12,39,-27,39,-52v0,-22,-15,-33,-34,-33xm195,0r-28,-33v-37,58,-154,50,-153,-34v0,-36,34,-61,63,-76v-14,-18,-32,-37,-32,-62v0,-31,26,-52,57,-52v31,0,57,21,57,52v0,32,-24,51,-50,67r56,67v6,-13,7,-23,7,-43r23,0v0,14,-3,40,-15,62r43,52r-28,0xm153,-50r-64,-78v-25,13,-52,33,-52,64v0,30,27,50,56,50v26,0,46,-15,60,-36",
					"w" : 219
				},
				"\u2019" : {
					"d" : "36,-257r30,0v1,41,2,77,-32,87r0,-15v12,-4,18,-23,17,-34r-15,0r0,-38",
					"w" : 100,
					"k" : {
						"t" : 6,
						"s" : 40,
						"\u2019" : 43
					}
				},
				"(" : {
					"d" : "87,69r-18,0v-67,-97,-67,-235,0,-331r18,0v-60,97,-62,235,0,331",
					"w" : 86
				},
				")" : {
					"d" : "0,-262r18,0v67,97,66,235,0,331r-18,0v61,-97,61,-235,0,-331",
					"w" : 86
				},
				"*" : {
					"d" : "51,-200r-41,-14r5,-14r41,15r0,-44r14,0r0,44r42,-15r5,14r-42,14r25,35r-11,8r-26,-36r-27,36r-11,-8",
					"w" : 126
				},
				"+" : {
					"d" : "99,-100r0,-81r19,0r0,81r81,0r0,19r-81,0r0,81r-19,0r0,-81r-81,0r0,-19r81,0",
					"w" : 216
				},
				"," : {
					"d" : "35,-38r30,0v1,41,1,77,-32,87r0,-15v12,-4,18,-23,17,-34r-15,0r0,-38",
					"w" : 100
				},
				"-" : {
					"d" : "112,-89r-90,0r0,-20r90,0r0,20",
					"w" : 133
				},
				"." : {
					"d" : "65,0r-30,0r0,-38r30,0r0,38",
					"w" : 100
				},
				"/" : {
					"d" : "15,5r-20,0r111,-267r19,0",
					"w" : 119
				},
				"0" : {
					"d" : "100,-254v73,0,88,70,88,129v0,59,-15,130,-88,130v-73,0,-88,-70,-88,-129v0,-59,15,-130,88,-130xm100,-235v-58,0,-65,66,-65,110v0,44,7,111,65,111v58,0,65,-67,65,-111v0,-44,-7,-110,-65,-110"
				},
				"1" : {
					"d" : "35,-187r0,-16v40,-1,64,-3,71,-49r18,0r0,252r-22,0r0,-187r-67,0"
				},
				"2" : {
					"d" : "178,-183v-1,86,-117,92,-139,162r140,0r0,21r-166,0v1,-75,77,-96,121,-136v37,-33,21,-99,-35,-99v-41,0,-58,33,-57,70r-23,0v-1,-52,26,-89,81,-89v44,0,78,24,78,71"
				},
				"3" : {
					"d" : "12,-80r23,0v-2,40,23,66,63,66v33,0,64,-19,64,-55v-1,-43,-35,-58,-80,-54r0,-19v38,3,71,-6,71,-46v0,-33,-25,-47,-55,-47v-37,0,-59,27,-58,64r-22,0v0,-48,30,-83,79,-83v39,0,78,19,78,64v0,27,-15,49,-42,56v33,5,52,30,52,63v0,49,-41,76,-87,76v-52,0,-90,-31,-86,-85"
				},
				"4" : {
					"d" : "31,-82r96,0r-1,-137xm11,-63r0,-22r116,-167r21,0r0,170r38,0r0,19r-38,0r0,63r-21,0r0,-63r-116,0"
				},
				"5" : {
					"d" : "13,-72r23,0v1,35,27,58,62,58v39,0,63,-31,63,-68v0,-65,-90,-89,-121,-36r-19,0r24,-131r126,0r0,21r-110,0r-16,84v48,-51,138,-11,138,64v0,49,-39,85,-87,85v-47,0,-82,-29,-83,-77"
				},
				"6" : {
					"d" : "182,-188r-23,0v-4,-28,-23,-47,-52,-47v-58,-1,-72,69,-69,113v12,-25,38,-42,67,-42v50,0,83,35,83,84v0,49,-35,85,-85,85v-61,0,-89,-36,-89,-134v0,-30,8,-125,90,-125v45,0,73,22,78,66xm104,-145v-40,0,-62,30,-62,67v0,36,19,64,63,64v36,0,60,-29,60,-64v0,-37,-22,-67,-61,-67"
				},
				"7" : {
					"d" : "18,-228r0,-21r162,0r0,21v-32,33,-96,111,-102,228r-24,0v6,-85,34,-148,104,-228r-140,0"
				},
				"8" : {
					"d" : "100,-144v28,0,54,-15,54,-47v0,-29,-24,-44,-54,-44v-28,0,-54,15,-54,44v0,33,27,47,54,47xm176,-191v1,28,-17,46,-41,56v33,7,52,30,52,64v0,51,-39,76,-87,76v-48,0,-87,-25,-87,-76v0,-34,22,-57,51,-65v-26,-8,-41,-27,-41,-55v1,-84,152,-85,153,0xm100,-14v36,0,64,-18,64,-57v0,-36,-30,-54,-64,-54v-35,0,-64,17,-64,54v0,38,28,57,64,57"
				},
				"9" : {
					"d" : "18,-60r23,0v4,28,24,46,53,46v58,1,71,-68,68,-112v-12,25,-38,41,-67,41v-50,0,-83,-35,-83,-84v0,-49,36,-85,86,-85v61,0,88,36,88,134v0,30,-8,125,-90,125v-45,0,-73,-21,-78,-65xm96,-104v40,0,62,-29,62,-66v0,-36,-19,-65,-63,-65v-36,0,-60,30,-60,65v0,37,22,66,61,66"
				},
				":" : {
					"d" : "65,0r-30,0r0,-38r30,0r0,38xm65,-142r-30,0r0,-38r30,0r0,38",
					"w" : 100
				},
				";" : {
					"d" : "65,-142r-30,0r0,-38r30,0r0,38xm35,-38r30,0v1,41,1,77,-32,87r0,-15v12,-4,18,-23,17,-34r-15,0r0,-38",
					"w" : 100
				},
				"<" : {
					"d" : "199,-17r0,20r-182,-84r0,-20r182,-84r0,20r-160,74",
					"w" : 216
				},
				"=" : {
					"d" : "199,-65r0,19r-181,0r0,-19r181,0xm199,-136r0,19r-181,0r0,-19r181,0",
					"w" : 216
				},
				">" : {
					"d" : "17,-17r160,-74r-160,-74r0,-20r182,84r0,20r-182,84r0,-20",
					"w" : 216
				},
				"?" : {
					"d" : "83,0r0,-38r30,0r0,38r-30,0xm87,-64v-12,-64,65,-75,65,-131v0,-29,-24,-48,-52,-48v-39,0,-59,28,-58,65r-23,0v0,-51,30,-84,82,-84v40,0,73,24,73,66v0,61,-77,69,-65,132r-22,0",
					"w" : 193
				},
				"@" : {
					"d" : "221,-196r-35,104v-5,15,-7,30,5,30v32,0,61,-50,61,-90v0,-59,-46,-94,-102,-94v-67,0,-114,53,-114,119v0,65,48,116,114,116v35,0,72,-18,93,-48r19,0v-22,39,-67,64,-112,64v-78,0,-133,-59,-133,-135v0,-75,59,-132,132,-132v69,0,122,46,122,112v0,58,-43,104,-83,104v-13,0,-24,-8,-25,-24v-26,39,-94,26,-94,-29v0,-50,35,-104,86,-104v16,0,30,9,38,31r9,-24r19,0xm153,-184v-37,0,-61,51,-61,84v0,22,13,34,30,34v33,0,60,-52,60,-84v0,-17,-15,-34,-29,-34",
					"w" : 288
				},
				"A" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"B" : {
					"d" : "50,-236r0,92v57,0,143,9,143,-44v0,-62,-84,-46,-143,-48xm26,0r0,-257v81,4,188,-23,191,63v0,27,-18,52,-45,58v33,4,55,30,55,63v0,24,-8,73,-92,73r-109,0xm50,-123r0,102v66,-4,149,19,152,-53v2,-62,-90,-48,-152,-49",
					"w" : 240
				},
				"C" : {
					"d" : "238,-179r-24,0v-9,-40,-42,-63,-79,-63v-132,1,-130,226,0,227v48,0,77,-37,82,-83r25,0v-7,63,-47,103,-107,103v-81,0,-121,-63,-121,-134v0,-71,40,-133,121,-133v49,0,96,29,103,83",
					"w" : 253
				},
				"D" : {
					"d" : "26,0r0,-257r89,0v78,2,118,43,118,128v0,85,-40,129,-118,129r-89,0xm50,-236r0,215v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107",
					"w" : 246
				},
				"E" : {
					"d" : "26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0",
					"w" : 213
				},
				"F" : {
					"d" : "26,0r0,-257r163,0r0,21r-139,0r0,93r124,0r0,21r-124,0r0,122r-24,0",
					"w" : 193,
					"k" : {
						"\u00c3" : 20,
						"\u00c5" : 20,
						"\u00c0" : 20,
						"\u00c4" : 20,
						"\u00c2" : 20,
						"\u00c1" : 20,
						"A" : 20,
						"." : 46,
						"," : 46
					}
				},
				"G" : {
					"d" : "246,-131r0,131r-18,0v-2,-15,0,-34,-4,-47v-17,37,-52,52,-89,52v-81,0,-121,-63,-121,-134v0,-71,40,-133,121,-133v54,0,97,29,107,85r-24,0v-3,-30,-34,-65,-83,-65v-132,1,-130,226,0,227v57,0,90,-40,89,-95r-88,0r0,-21r110,0",
					"w" : 266
				},
				"H" : {
					"d" : "26,0r0,-257r24,0r0,112r153,0r0,-112r25,0r0,257r-25,0r0,-125r-153,0r0,125r-24,0",
					"w" : 253
				},
				"I" : {
					"d" : "28,0r0,-257r24,0r0,257r-24,0",
					"w" : 79
				},
				"J" : {
					"d" : "130,-82r0,-175r24,0r0,185v0,52,-20,77,-75,77v-59,0,-71,-42,-71,-87r24,0v1,22,-2,67,49,67v39,0,49,-20,49,-67",
					"w" : 180
				},
				"K" : {
					"d" : "26,0r0,-257r24,0r0,138r150,-138r33,0r-115,106r120,151r-31,0r-107,-134r-50,46r0,88r-24,0",
					"w" : 233
				},
				"L" : {
					"d" : "26,0r0,-257r24,0r0,236r144,0r0,21r-168,0",
					"w" : 193,
					"k" : {
						"\u00ff" : 13,
						"\u00fd" : 13,
						"\u00dd" : 40,
						"y" : 13,
						"Y" : 40,
						"W" : 20,
						"V" : 33,
						"T" : 33,
						"\u2019" : 35
					}
				},
				"M" : {
					"d" : "25,0r0,-257r36,0r89,225r89,-225r36,0r0,257r-25,0r-1,-222r-87,222r-23,0r-89,-222r0,222r-25,0",
					"w" : 299
				},
				"N" : {
					"d" : "26,0r0,-257r27,0r150,217r0,-217r25,0r0,257r-27,0r-151,-217r0,217r-24,0",
					"w" : 253
				},
				"O" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134",
					"w" : 266
				},
				"P" : {
					"d" : "50,-236r0,105v63,-2,142,16,142,-53v0,-68,-79,-50,-142,-52xm26,0r0,-257r114,0v46,0,76,27,76,73v0,46,-30,74,-76,74r-90,0r0,110r-24,0",
					"w" : 226,
					"k" : {
						"\u00c3" : 27,
						"\u00c5" : 27,
						"\u00c0" : 27,
						"\u00c4" : 27,
						"\u00c2" : 27,
						"\u00c1" : 27,
						"A" : 27,
						"." : 55,
						"," : 55
					}
				},
				"Q" : {
					"d" : "252,1r-12,16r-40,-31v-18,13,-39,19,-66,19v-81,0,-122,-63,-122,-134v0,-71,41,-133,122,-133v125,0,155,163,82,235xm160,-69r37,28v59,-60,42,-201,-63,-201v-132,1,-130,226,0,227v18,0,34,-5,47,-13r-34,-26",
					"w" : 266
				},
				"R" : {
					"d" : "50,-236r0,101v63,-2,144,15,147,-50v3,-66,-85,-49,-147,-51xm202,0v-16,-45,6,-114,-59,-114r-93,0r0,114r-24,0r0,-257v85,3,195,-22,196,67v1,34,-19,57,-50,66v62,5,34,81,57,124r-27,0",
					"w" : 240,
					"k" : {
						"\u00ff" : -9,
						"\u00fd" : -9,
						"\u00dd" : 5,
						"y" : -9,
						"Y" : 5,
						"W" : -2,
						"V" : -2,
						"T" : -2
					}
				},
				"S" : {
					"d" : "13,-85r24,0v-1,53,37,70,84,70v27,0,68,-16,68,-53v0,-83,-167,-24,-168,-122v0,-25,17,-72,89,-72v51,0,95,26,95,79r-25,0v2,-72,-134,-84,-134,-7v0,47,64,42,101,54v35,12,67,26,67,68v0,18,-7,73,-98,73v-61,0,-106,-27,-103,-90",
					"w" : 226
				},
				"T" : {
					"d" : "-2,-236r0,-21r204,0r0,21r-90,0r0,236r-24,0r0,-236r-90,0",
					"k" : {
						"\u014d" : 40,
						"\u00ff" : 40,
						"\u00fd" : 40,
						"\u00f9" : 33,
						"\u00fc" : 33,
						"\u00fb" : 33,
						"\u00fa" : 33,
						"\u00f5" : 40,
						"\u00f2" : 40,
						"\u00f6" : 40,
						"\u00f4" : 40,
						"\u00f3" : 40,
						"\u00e8" : 40,
						"\u00eb" : 40,
						"\u00ea" : 40,
						"\u00e9" : 40,
						"\u00e7" : 40,
						"\u00e3" : 40,
						"\u00e5" : 40,
						"\u00e0" : 40,
						"\u00e4" : 40,
						"\u00e2" : 40,
						"\u00e1" : 40,
						"\u00c3" : 24,
						"\u00c5" : 24,
						"\u00c0" : 24,
						"\u00c4" : 24,
						"\u00c2" : 24,
						"\u00c1" : 24,
						"y" : 40,
						"w" : 40,
						"u" : 33,
						"s" : 40,
						"r" : 33,
						"o" : 40,
						"i" : -9,
						"e" : 40,
						"c" : 40,
						"a" : 40,
						"A" : 24,
						";" : 40,
						":" : 40,
						"." : 40,
						"-" : 46,
						"," : 40
					}
				},
				"U" : {
					"d" : "123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,59,27,83,75,83v48,0,76,-24,76,-83r0,-159r24,0v-7,120,37,262,-100,262",
					"w" : 246
				},
				"V" : {
					"d" : "93,0r-96,-257r27,0r84,230r83,-230r26,0r-96,257r-28,0",
					"w" : 213,
					"k" : {
						"\u014d" : 20,
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00f9" : 13,
						"\u00fc" : 13,
						"\u00fb" : 13,
						"\u00fa" : 13,
						"\u00f5" : 20,
						"\u00f2" : 20,
						"\u00f6" : 20,
						"\u00f4" : 20,
						"\u00f3" : 20,
						"\u00e8" : 20,
						"\u00eb" : 20,
						"\u00ea" : 20,
						"\u00e9" : 20,
						"\u00e3" : 20,
						"\u00e5" : 20,
						"\u00e0" : 20,
						"\u00e4" : 20,
						"\u00e2" : 20,
						"\u00e1" : 20,
						"\u00c3" : 20,
						"\u00c5" : 20,
						"\u00c0" : 20,
						"\u00c4" : 20,
						"\u00c2" : 20,
						"\u00c1" : 20,
						"y" : 6,
						"u" : 13,
						"r" : 13,
						"o" : 20,
						"i" : -2,
						"e" : 20,
						"a" : 20,
						"A" : 20,
						";" : 27,
						":" : 27,
						"." : 46,
						"-" : 20,
						"," : 46
					}
				},
				"W" : {
					"d" : "71,0r-71,-257r26,0r59,225r63,-225r31,0r63,225r59,-225r24,0r-70,257r-26,0r-66,-230r-65,230r-27,0",
					"w" : 326,
					"k" : {
						"\u014d" : 6,
						"\u00f9" : 6,
						"\u00fc" : 6,
						"\u00fb" : 6,
						"\u00fa" : 6,
						"\u00f5" : 6,
						"\u00f2" : 6,
						"\u00f6" : 6,
						"\u00f4" : 6,
						"\u00f3" : 6,
						"\u00e8" : 6,
						"\u00eb" : 6,
						"\u00ea" : 6,
						"\u00e9" : 6,
						"\u00e3" : 13,
						"\u00e5" : 13,
						"\u00e0" : 13,
						"\u00e4" : 13,
						"\u00e2" : 13,
						"\u00e1" : 13,
						"\u00c3" : 6,
						"\u00c5" : 6,
						"\u00c0" : 6,
						"\u00c4" : 6,
						"\u00c2" : 6,
						"\u00c1" : 6,
						"u" : 6,
						"r" : 6,
						"o" : 6,
						"i" : -9,
						"e" : 6,
						"a" : 13,
						"A" : 6,
						";" : 6,
						":" : 6,
						"." : 27,
						"," : 27
					}
				},
				"X" : {
					"d" : "88,-132r-87,-125r29,0r73,108r75,-108r27,0r-88,125r93,132r-29,0r-78,-113r-80,113r-27,0",
					"w" : 206
				},
				"Y" : {
					"d" : "98,0r0,-106r-102,-151r30,0r84,130r84,-130r30,0r-102,151r0,106r-24,0",
					"w" : 219,
					"k" : {
						"\u014d" : 33,
						"\u00f9" : 27,
						"\u00fc" : 27,
						"\u00fb" : 27,
						"\u00fa" : 27,
						"\u00f5" : 33,
						"\u00f2" : 33,
						"\u00f6" : 33,
						"\u00f4" : 33,
						"\u00f3" : 33,
						"\u00e8" : 33,
						"\u00eb" : 33,
						"\u00ea" : 33,
						"\u00e9" : 33,
						"\u00e3" : 33,
						"\u00e5" : 33,
						"\u00e0" : 33,
						"\u00e4" : 33,
						"\u00e2" : 33,
						"\u00e1" : 33,
						"\u00c3" : 27,
						"\u00c5" : 27,
						"\u00c0" : 27,
						"\u00c4" : 27,
						"\u00c2" : 27,
						"\u00c1" : 27,
						"v" : 20,
						"u" : 27,
						"q" : 33,
						"p" : 27,
						"o" : 33,
						"i" : 3,
						"e" : 33,
						"a" : 33,
						"A" : 27,
						";" : 33,
						":" : 33,
						"." : 36,
						"-" : 40,
						"," : 44
					}
				},
				"Z" : {
					"d" : "13,-236r0,-21r185,0r0,22r-169,214r173,0r0,21r-200,0r0,-22r169,-214r-158,0",
					"w" : 206
				},
				"[" : {
					"d" : "85,69r-58,0r0,-331r58,0r0,19r-35,0r0,293r35,0r0,19",
					"w" : 86
				},
				"\\" : {
					"d" : "125,5r-20,0r-110,-267r19,0",
					"w" : 119
				},
				"]" : {
					"d" : "1,-262r58,0r0,331r-58,0r0,-19r36,0r0,-293r-36,0r0,-19",
					"w" : 86
				},
				"^" : {
					"d" : "37,-86r-21,0r83,-163r18,0r83,163r-20,0r-72,-140",
					"w" : 216
				},
				"_" : {
					"d" : "180,45r-180,0r0,-18r180,0r0,18",
					"w" : 180
				},
				"\u2018" : {
					"d" : "64,-170r-30,0v-1,-41,-2,-77,32,-87r0,15v-12,5,-18,22,-17,34r15,0r0,38",
					"w" : 100,
					"k" : {
						"\u2018" : 43
					}
				},
				"a" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88",
					"w" : 186
				},
				"b" : {
					"d" : "22,0r0,-257r22,0r1,107v9,-27,37,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-31,1,-55,-16,-67,-40r0,35r-20,0xm109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158",
					"w" : 206
				},
				"c" : {
					"d" : "175,-127r-22,0v-6,-28,-23,-45,-53,-45v-86,1,-87,157,0,158v28,0,51,-22,54,-53r23,0v-6,45,-35,72,-77,72v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98v40,0,70,21,75,64",
					"w" : 186
				},
				"d" : {
					"d" : "185,-257r0,257r-21,0v-1,-11,2,-26,-1,-35v-10,24,-39,40,-66,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v27,0,56,14,65,41r0,-107r23,0xm97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158",
					"w" : 206
				},
				"e" : {
					"d" : "35,-106r120,0v-1,-34,-23,-66,-59,-66v-37,0,-57,32,-61,66xm178,-87r-143,0v0,33,18,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v59,0,84,52,82,104",
					"w" : 186
				},
				"f" : {
					"d" : "93,-186r0,19r-36,0r0,167r-23,0r0,-167r-32,0r0,-19r32,0v-5,-48,11,-79,64,-70r0,20v-36,-9,-46,13,-41,50r36,0",
					"w" : 93,
					"k" : {
						"f" : 6,
						"\u2019" : -6
					}
				},
				"g" : {
					"d" : "179,-186v-9,107,39,260,-83,260v-37,0,-74,-17,-77,-56r23,0v5,27,29,37,54,37v50,0,66,-42,59,-95v-10,23,-32,38,-59,38v-59,0,-84,-43,-84,-96v0,-51,30,-93,84,-93v28,-1,49,18,60,37r0,-32r23,0xm96,-21v79,-1,82,-151,0,-151v-43,0,-61,38,-61,77v0,37,19,74,61,74"
				},
				"h" : {
					"d" : "21,0r0,-257r23,0r1,103v9,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0",
					"w" : 193
				},
				"i" : {
					"d" : "22,-221r0,-36r23,0r0,36r-23,0xm22,0r0,-186r23,0r0,186r-23,0",
					"w" : 66
				},
				"j" : {
					"d" : "22,-221r0,-36r23,0r0,36r-23,0xm22,23r0,-209r23,0r0,203v2,34,-16,59,-56,51r0,-19v21,5,33,-6,33,-26",
					"w" : 66
				},
				"k" : {
					"d" : "22,0r0,-257r22,0r0,161r103,-90r30,0r-79,69r85,117r-29,0r-73,-101r-37,30r0,71r-22,0",
					"w" : 180
				},
				"l" : {
					"d" : "22,0r0,-257r23,0r0,257r-23,0",
					"w" : 66
				},
				"m" : {
					"d" : "22,0r0,-186r20,0v2,10,-3,26,2,32v16,-45,99,-52,114,-1v11,-24,35,-36,59,-36v87,0,55,114,61,191r-22,0r0,-125v0,-31,-11,-47,-44,-47v-74,0,-45,103,-51,172r-22,0r0,-126v0,-25,-10,-46,-39,-46v-76,0,-53,100,-56,172r-22,0",
					"w" : 299
				},
				"n" : {
					"d" : "21,0r0,-186r23,0v1,10,-2,24,1,32v9,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0",
					"w" : 193
				},
				"o" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98"
				},
				"p" : {
					"d" : "22,69r0,-255r20,0v1,11,-2,27,1,36v10,-26,36,-41,66,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-28,1,-53,-15,-65,-40r0,104r-22,0xm109,-14v83,-1,82,-157,0,-158v-50,0,-65,37,-65,79v0,39,17,79,65,79",
					"w" : 206
				},
				"q" : {
					"d" : "185,-186r0,255r-23,0r0,-104v-10,27,-38,40,-65,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v28,-1,55,19,67,41r0,-36r21,0xm97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158",
					"w" : 206
				},
				"r" : {
					"d" : "22,0r0,-186r20,0v1,14,-2,32,1,44v12,-30,37,-47,70,-46r0,22v-41,-2,-69,28,-69,67r0,99r-22,0",
					"w" : 113,
					"k" : {
						"\u014d" : 6,
						"\u00f5" : 6,
						"\u00f2" : 6,
						"\u00f6" : 6,
						"\u00f4" : 6,
						"\u00f3" : 6,
						"\u00f1" : -6,
						"\u00e8" : 6,
						"\u00eb" : 6,
						"\u00ea" : 6,
						"\u00e9" : 6,
						"\u00e7" : 6,
						"q" : 6,
						"o" : 6,
						"n" : -6,
						"e" : 6,
						"d" : 6,
						"c" : 6,
						"." : 33,
						"-" : 20,
						"," : 33
					}
				},
				"s" : {
					"d" : "156,-131r-23,0v-1,-28,-23,-41,-49,-41v-20,0,-44,8,-44,32v15,55,123,17,122,90v0,40,-40,55,-75,55v-44,0,-72,-19,-76,-65r23,0v2,31,25,46,55,46v22,0,50,-9,50,-35v0,-58,-121,-21,-121,-90v0,-38,36,-52,69,-52v37,0,67,20,69,60",
					"w" : 173
				},
				"t" : {
					"d" : "58,-242r0,56r37,0r0,19r-37,0r0,126v-4,23,16,27,37,23r0,19v-36,3,-60,0,-60,-41r0,-127r-32,0r0,-19r32,0r0,-56r23,0",
					"w" : 106
				},
				"u" : {
					"d" : "172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,49,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0",
					"w" : 193
				},
				"v" : {
					"d" : "72,0r-71,-186r25,0r59,163r58,-163r23,0r-70,186r-24,0",
					"w" : 166,
					"k" : {
						"." : 27,
						"," : 27
					}
				},
				"w" : {
					"d" : "63,0r-60,-186r24,0r48,159r46,-159r25,0r46,159r48,-159r24,0r-60,186r-25,0r-46,-156r-46,156r-24,0",
					"w" : 266,
					"k" : {
						"." : 20,
						"," : 20
					}
				},
				"x" : {
					"d" : "0,0r72,-96r-66,-90r28,0r53,71r52,-71r28,0r-67,89r73,97r-29,0r-58,-78r-58,78r-28,0",
					"w" : 173
				},
				"y" : {
					"d" : "75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49",
					"w" : 166,
					"k" : {
						"." : 33,
						"," : 33
					}
				},
				"z" : {
					"d" : "156,-170r-123,151r128,0r0,19r-156,0r0,-18r122,-149r-113,0r0,-19r142,0r0,16",
					"w" : 166
				},
				"{" : {
					"d" : "105,69v-56,11,-50,-48,-49,-99v0,-29,-5,-57,-26,-57r0,-19v62,-6,-21,-170,75,-156r0,19v-37,-4,-27,51,-27,87v0,41,-21,54,-25,60v5,3,25,18,25,58v0,34,-12,91,27,88r0,19",
					"w" : 119
				},
				"|" : {
					"d" : "31,77r0,-360r19,0r0,360r-19,0",
					"w" : 79
				},
				"}" : {
					"d" : "14,-262v55,-11,51,46,50,98v0,29,5,57,26,57r0,20v-62,6,21,170,-76,156r0,-19v38,5,27,-52,27,-88v0,-41,22,-53,26,-59v-5,-3,-26,-19,-26,-59v0,-34,12,-91,-27,-87r0,-19",
					"w" : 119
				},
				"~" : {
					"d" : "70,-112v24,-1,56,23,77,23v14,0,23,-11,31,-24r13,13v-10,15,-23,31,-45,31v-37,0,-90,-50,-108,1r-13,-13v8,-15,21,-31,45,-31",
					"w" : 216
				},
				"\u00a1" : {
					"d" : "28,-186r31,0r0,38r-31,0r0,-38xm50,-122r6,117r0,74r-25,0r0,-74r6,-117r13,0",
					"w" : 86
				},
				"\u00a2" : {
					"d" : "183,-127r-23,0v-6,-27,-22,-44,-49,-45r0,158v26,-1,47,-24,50,-53r23,0v-6,44,-34,71,-73,72r0,37r-14,0r0,-37v-50,-5,-78,-48,-78,-98v0,-50,28,-92,78,-97r0,-32r14,0r0,31v37,1,67,23,72,64xm97,-14r0,-157v-74,12,-73,145,0,157"
				},
				"\u00a3" : {
					"d" : "39,-18v47,-30,110,30,145,-16r11,17v-41,53,-120,-18,-167,22r-13,-19v32,-24,55,-62,31,-105r-29,0r0,-11r22,0v-11,-18,-20,-36,-20,-58v0,-51,42,-74,83,-74v53,0,84,32,83,85r-23,0v0,-39,-20,-66,-60,-66v-30,0,-60,17,-60,56v0,25,12,36,21,57r58,0r0,11r-51,0v20,40,-1,81,-31,101"
				},
				"\u00a5" : {
					"d" : "40,-109r0,-17r38,0r-76,-131r26,0r72,131r72,-131r25,0r-76,131r39,0r0,17v-16,2,-39,-4,-49,3r0,26r49,0r0,17r-49,0r0,63r-23,0r0,-63r-48,0r0,-17r48,0v-1,-9,2,-23,-2,-29r-46,0"
				},
				"\u00a7" : {
					"d" : "184,-83v0,24,-18,41,-39,50v40,32,6,91,-43,91v-41,0,-67,-23,-67,-64r23,0v-1,24,17,45,42,45v20,0,40,-9,40,-32v0,-54,-124,-57,-124,-128v0,-24,18,-42,39,-51v-40,-32,-7,-90,43,-90v41,0,67,22,67,63r-23,0v1,-24,-17,-44,-42,-44v-20,0,-40,9,-40,32v0,54,124,57,124,128xm161,-83v0,-38,-62,-57,-93,-78v-17,7,-29,19,-29,39v0,36,61,57,92,78v17,-7,30,-19,30,-39"
				},
				"\u00a4" : {
					"d" : "34,-125v0,39,29,69,66,69v37,0,67,-30,67,-69v0,-39,-30,-68,-67,-68v-37,0,-66,29,-66,68xm10,-49r21,-20v-26,-29,-27,-82,0,-111r-21,-20r14,-14r20,20v29,-26,83,-27,112,0r19,-20r14,14r-19,19v27,29,26,84,0,113r19,19r-14,14r-19,-20v-28,26,-84,27,-112,0r-20,20"
				},
				"'" : {
					"d" : "39,-170r0,-87r23,0r0,87r-23,0",
					"w" : 100
				},
				"\u201c" : {
					"d" : "53,-170r-30,0v-1,-41,-2,-77,32,-87r0,15v-12,5,-18,22,-17,34r15,0r0,38xm109,-170r-31,0v-1,-42,-2,-76,33,-87r0,15v-12,5,-18,22,-17,34r15,0r0,38",
					"w" : 133
				},
				"\u00ab" : {
					"d" : "69,-43r-47,-45r0,-22r47,-45r0,24r-33,32r33,32r0,24xm127,-43r-47,-45r0,-22r47,-45r0,24r-33,32r33,32r0,24",
					"w" : 153
				},
				"\u2039" : {
					"d" : "67,-43r-48,-45r0,-22r48,-45r0,24r-34,32r34,32r0,24",
					"w" : 93
				},
				"\u203a" : {
					"d" : "26,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22",
					"w" : 93
				},
				"\u2013" : {
					"d" : "180,-89r-180,0r0,-20r180,0r0,20",
					"w" : 180
				},
				"\u00b7" : {
					"d" : "50,-135v12,0,21,10,21,22v0,11,-10,20,-21,20v-12,0,-21,-9,-21,-21v0,-11,10,-21,21,-21",
					"w" : 100
				},
				"\u00b6" : {
					"d" : "98,64r0,-182v-42,0,-74,-31,-74,-68v0,-46,29,-71,80,-71r83,0r0,321r-23,0r0,-302r-43,0r0,302r-23,0",
					"w" : 216
				},
				"\u201d" : {
					"d" : "24,-257r31,0v1,41,2,77,-32,87r0,-15v12,-4,18,-23,17,-34r-16,0r0,-38xm80,-257r30,0v1,41,2,77,-32,87r0,-15v12,-4,18,-23,17,-34r-15,0r0,-38",
					"w" : 133
				},
				"\u00bb" : {
					"d" : "26,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22xm84,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22",
					"w" : 153
				},
				"\u2026" : {
					"d" : "315,0r-30,0r0,-38r30,0r0,38xm195,0r-30,0r0,-38r30,0r0,38xm75,0r-30,0r0,-38r30,0r0,38",
					"w" : 360
				},
				"\u00bf" : {
					"d" : "111,-186r0,38r-31,0r0,-38r31,0xm107,-124v11,65,-65,74,-65,130v0,29,24,49,52,49v39,0,59,-28,58,-65r22,0v0,51,-29,84,-81,84v-40,0,-74,-24,-74,-66v0,-61,78,-69,65,-132r23,0",
					"w" : 193
				},
				"`" : {
					"d" : "36,-212r-47,-50r28,0r38,50r-19,0",
					"w" : 66
				},
				"\u00b4" : {
					"d" : "78,-263r-48,51r-18,0r38,-51r28,0",
					"w" : 66
				},
				"\u00af" : {
					"d" : "93,-230r-119,0r0,-16r119,0r0,16",
					"w" : 66
				},
				"\u00a8" : {
					"d" : "14,-220r-25,0r0,-36r25,0r0,36xm77,-220r-24,0r0,-36r24,0r0,36",
					"w" : 66
				},
				"\u00b8" : {
					"d" : "11,27v11,-9,12,-29,34,-27r-15,19v22,-3,41,-1,41,23v0,35,-47,36,-73,24r5,-12v13,5,47,12,47,-10v0,-24,-33,-5,-39,-17",
					"w" : 66
				},
				"\u2014" : {
					"d" : "313,-89r-266,0r0,-20r266,0r0,20",
					"w" : 360
				},
				"\u00c6" : {
					"d" : "78,-102r82,0r0,-134r-14,0xm185,-122r0,101r133,0r0,21r-158,0r0,-81r-93,0r-42,81r-28,0r135,-257r185,0r0,21r-132,0r0,93r124,0r0,21r-124,0",
					"w" : 326
				},
				"\u00aa" : {
					"d" : "19,-215r-16,0v1,-28,21,-39,50,-39v24,0,46,6,46,36r0,62v0,7,8,10,14,7r0,12v-17,4,-28,-4,-28,-19v-15,33,-87,34,-87,-11v0,-33,33,-35,65,-38v13,-1,19,-3,19,-11v0,-19,-15,-24,-32,-24v-17,0,-31,8,-31,25xm82,-198v-21,12,-71,5,-67,30v6,37,69,20,67,-13r0,-17",
					"w" : 111
				},
				"\u00d8" : {
					"d" : "242,-259r9,8r-26,30v61,78,28,226,-91,226v-36,0,-64,-12,-84,-32r-27,31r-10,-9r29,-31v-61,-80,-28,-226,92,-226v36,0,62,11,82,31xm58,-54r143,-159v-15,-17,-37,-29,-67,-29v-98,0,-119,119,-76,188xm209,-203r-143,159v16,18,38,29,68,29v97,-1,118,-120,75,-188",
					"w" : 266
				},
				"\u00ba" : {
					"d" : "60,-147v56,0,56,-93,0,-93v-56,0,-56,93,0,93xm58,-132v-37,0,-57,-27,-57,-61v0,-34,20,-61,57,-61v41,0,61,27,61,61v0,34,-20,61,-61,61",
					"w" : 120
				},
				"\u00e6" : {
					"d" : "303,-87r-140,0v-3,40,18,73,61,73v31,0,48,-17,55,-46r22,0v-9,75,-126,90,-149,19v-12,58,-140,68,-140,-8v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43r-23,0v3,-44,33,-62,76,-62v25,0,57,6,62,38v10,-26,38,-38,65,-38v61,0,81,50,81,104xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm163,-106r117,0v0,-34,-23,-66,-59,-66v-37,0,-59,31,-58,66",
					"w" : 313
				},
				"\u00f8" : {
					"d" : "161,-167v9,-7,17,-28,27,-13r-20,22v43,59,15,166,-68,163v-26,0,-46,-9,-60,-24r-22,23r-8,-7r22,-24v-42,-58,-16,-164,68,-164v26,0,47,9,61,24xm153,-141r-99,106v10,13,26,21,46,21v60,0,81,-79,53,-127xm48,-44r98,-106v-10,-13,-26,-22,-46,-22v-61,1,-81,80,-52,128"
				},
				"\u00df" : {
					"d" : "22,0r0,-193v0,-47,29,-69,72,-69v72,0,98,101,29,117v32,6,55,32,54,67v-1,59,-41,86,-98,80r0,-20v40,8,75,-8,75,-56v0,-50,-31,-58,-75,-58r0,-20v32,0,62,-9,62,-46v0,-27,-21,-45,-47,-45v-36,0,-49,18,-49,52r0,191r-23,0",
					"w" : 193
				},
				"\u00b9" : {
					"d" : "13,-210r0,-14v26,-1,41,-2,46,-27r14,0r0,152r-17,0r0,-111r-43,0",
					"w" : 119
				},
				"\u00ac" : {
					"d" : "180,-40r0,-77r-162,0r0,-19r181,0r0,96r-19,0",
					"w" : 216
				},
				"\u00b5" : {
					"d" : "172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-17,38,-69,50,-106,26r0,76r-23,0r0,-255r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0",
					"w" : 193
				},
				"\u2122" : {
					"d" : "190,-109r-19,0r0,-148r31,0r48,120r46,-120r31,0r0,148r-19,0r-1,-131r-52,131r-11,0r-54,-131r0,131xm97,-109r-19,0r0,-132r-48,0r0,-16r115,0r0,16r-48,0r0,132",
					"w" : 356
				},
				"\u00d0" : {
					"d" : "26,-141r0,-116r89,0v78,2,118,43,118,128v0,85,-40,129,-118,129r-89,0r0,-125r-26,0r0,-16r26,0xm50,-236r0,95r85,0r0,16r-85,0r0,104v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107",
					"w" : 246
				},
				"\u00bd" : {
					"d" : "173,0v0,-61,93,-55,93,-112v0,-19,-17,-29,-37,-29v-26,0,-36,20,-36,41r-17,0v-1,-33,17,-56,54,-56v30,0,53,14,53,45v0,53,-74,53,-91,97r90,0r0,14r-109,0xm17,-210r0,-14v26,-1,41,-2,46,-27r15,0r0,152r-17,0r0,-111r-44,0xm48,12r163,-273r17,0r-163,273r-17,0",
					"w" : 300
				},
				"\u00b1" : {
					"d" : "18,0r0,-19r181,0r0,19r-181,0xm99,-116r0,-65r19,0r0,65r81,0r0,19r-81,0r0,65r-19,0r0,-65r-81,0r0,-19r81,0",
					"w" : 216
				},
				"\u00de" : {
					"d" : "50,-194r0,105v63,-2,142,16,142,-52v0,-68,-79,-51,-142,-53xm26,0r0,-257r24,0r0,42r90,0v46,0,76,28,76,74v0,46,-30,73,-76,73r-90,0r0,68r-24,0",
					"w" : 226
				},
				"\u00bc" : {
					"d" : "231,-128v-22,24,-39,53,-59,78r59,0r0,-78xm231,0r0,-36r-75,0r0,-14r76,-102r16,0r0,102r25,0r0,14r-25,0r0,36r-17,0xm17,-210r0,-14v26,-1,41,-2,46,-27r15,0r0,152r-17,0r0,-111r-44,0xm48,12r163,-273r17,0r-163,273r-17,0",
					"w" : 300
				},
				"\u00f7" : {
					"d" : "88,-18v0,-11,9,-20,20,-20v11,0,20,9,20,20v0,10,-10,20,-20,20v-11,0,-20,-9,-20,-20xm88,-163v0,-11,9,-20,20,-20v11,0,20,9,20,20v0,10,-10,20,-20,20v-11,0,-20,-9,-20,-20xm199,-81r-181,0r0,-19r181,0r0,19",
					"w" : 216
				},
				"\u00a6" : {
					"d" : "31,-148r0,-90r19,0r0,90r-19,0xm31,32r0,-90r19,0r0,90r-19,0",
					"w" : 79
				},
				"\u00b0" : {
					"d" : "34,-202v0,21,17,37,38,37v21,0,38,-16,38,-37v0,-21,-17,-38,-38,-38v-21,0,-38,17,-38,38xm20,-202v0,-28,23,-52,52,-52v28,0,52,24,52,52v0,29,-24,52,-52,52v-29,0,-52,-23,-52,-52",
					"w" : 144
				},
				"\u00fe" : {
					"d" : "22,69r0,-326r22,0r1,107v9,-27,37,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-28,1,-53,-15,-65,-40r0,104r-22,0xm109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158",
					"w" : 206
				},
				"\u00be" : {
					"d" : "231,-128v-22,24,-39,53,-59,78r59,0r0,-78xm231,0r0,-36r-75,0r0,-14r76,-102r16,0r0,102r25,0r0,14r-25,0r0,36r-17,0xm62,12r163,-273r17,0r-162,273r-18,0xm49,-172r0,-14v23,2,46,-5,46,-27v0,-19,-17,-27,-36,-27v-23,0,-36,15,-36,37r-17,0v0,-30,20,-51,53,-51v27,0,53,12,53,40v1,18,-12,28,-28,34v22,3,34,17,34,37v0,31,-26,48,-58,48v-36,0,-60,-19,-57,-53r17,0v-1,23,13,39,39,39v21,0,42,-12,42,-33v0,-24,-24,-32,-52,-30",
					"w" : 300
				},
				"\u00b2" : {
					"d" : "5,-99v0,-61,93,-55,93,-112v0,-19,-17,-29,-37,-29v-26,0,-35,20,-35,41r-17,0v-1,-33,17,-55,54,-55v30,0,52,14,52,45v0,53,-73,52,-90,96r89,0r0,14r-109,0",
					"w" : 119
				},
				"\u00ae" : {
					"d" : "114,-136v32,-1,72,8,72,-27v0,-34,-40,-26,-72,-27r0,54xm114,-120r0,69r-19,0r0,-155v49,0,110,-8,110,43v0,27,-18,39,-39,43r46,69r-22,0r-43,-69r-33,0xm144,-243v-65,0,-113,50,-113,114v0,64,48,115,113,115v64,0,113,-51,113,-115v0,-64,-49,-114,-113,-114xm144,-262v76,0,134,58,134,133v0,75,-58,134,-134,134v-76,0,-134,-59,-134,-134v0,-75,58,-133,134,-133",
					"w" : 288
				},
				"\u00f0" : {
					"d" : "49,-215r36,-20v-11,-7,-22,-14,-34,-20r13,-12v13,7,26,14,38,23r41,-23r11,11r-39,22v40,32,71,79,71,141v0,54,-28,98,-88,98v-58,0,-86,-42,-86,-95v0,-69,75,-117,134,-78v-12,-23,-28,-40,-48,-56r-38,21xm99,-163v-46,0,-64,34,-64,74v0,39,19,75,64,75v42,0,64,-31,64,-76v0,-36,-18,-73,-64,-73"
				},
				"\u00d7" : {
					"d" : "94,-90r-67,-68r13,-14r68,68r68,-68r13,14r-68,68r68,68r-13,13r-68,-68r-68,68r-13,-13",
					"w" : 216
				},
				"\u00b3" : {
					"d" : "49,-172r0,-14v23,2,46,-5,46,-27v0,-19,-17,-27,-36,-27v-23,0,-36,15,-36,37r-17,0v0,-30,20,-51,53,-51v27,0,53,12,53,40v1,18,-12,28,-28,34v22,3,34,17,34,37v0,31,-26,48,-58,48v-36,0,-60,-19,-57,-53r17,0v-1,23,13,39,39,39v21,0,42,-12,42,-33v0,-24,-24,-32,-52,-30",
					"w" : 119
				},
				"\u00a9" : {
					"d" : "214,-157r-19,0v-18,-68,-107,-36,-107,28v0,37,21,67,60,67v26,0,43,-16,47,-38r19,0v-5,35,-33,54,-67,54v-49,0,-78,-35,-78,-83v0,-89,132,-114,145,-28xm257,-129v0,-64,-49,-114,-113,-114v-65,0,-113,50,-113,114v0,64,48,115,113,115v64,0,113,-51,113,-115xm278,-129v0,75,-58,134,-134,134v-76,0,-134,-59,-134,-134v0,-75,58,-133,134,-133v76,0,134,58,134,133",
					"w" : 288
				},
				"\u00c1" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm167,-332r-47,51r-19,0r38,-51r28,0",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"\u00c2" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm126,-331r41,51r-23,0r-31,-37r-32,37r-21,0r42,-51r24,0",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"\u00c4" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm94,-288r-24,0r0,-36r24,0r0,36xm158,-288r-24,0r0,-36r24,0r0,36",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"\u00c0" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm111,-280r-48,-51r28,0r38,51r-18,0",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"\u00c5" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm90,-310v0,14,10,25,24,25v14,0,25,-11,25,-25v0,-14,-11,-24,-25,-24v-14,0,-24,10,-24,24xm76,-310v0,-21,17,-38,38,-38v21,0,39,17,39,38v0,21,-18,39,-39,39v-21,0,-38,-18,-38,-39",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"\u00c3" : {
					"d" : "114,-233r-52,132r101,0xm-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm157,-324r14,0v-3,16,-13,34,-32,34v-28,-1,-57,-36,-67,2r-14,0v2,-17,13,-35,32,-35v30,0,55,34,67,-1",
					"w" : 226,
					"k" : {
						"\u00ff" : 6,
						"\u00fd" : 6,
						"\u00dd" : 27,
						"y" : 6,
						"w" : 6,
						"v" : 6,
						"Y" : 27,
						"W" : 2,
						"V" : 18,
						"T" : 24,
						"\u2019" : 31
					}
				},
				"\u00c7" : {
					"d" : "122,5v-72,-6,-108,-68,-108,-134v0,-71,40,-133,121,-133v49,0,96,29,103,83r-24,0v-9,-40,-42,-63,-79,-63v-132,1,-130,226,0,227v48,0,77,-37,82,-83r25,0v-7,63,-47,103,-107,103r-12,14v22,-3,39,-1,42,23v-2,35,-47,37,-74,24r5,-12v13,5,48,12,48,-10v0,-24,-34,-4,-40,-17",
					"w" : 253
				},
				"\u00c9" : {
					"d" : "26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm167,-332r-48,51r-18,0r38,-51r28,0",
					"w" : 213
				},
				"\u00ca" : {
					"d" : "26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm128,-331r41,51r-24,0r-31,-37r-31,37r-21,0r41,-51r25,0",
					"w" : 213
				},
				"\u00cb" : {
					"d" : "26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm95,-288r-25,0r0,-36r25,0r0,36xm158,-288r-24,0r0,-36r24,0r0,36",
					"w" : 213
				},
				"\u00c8" : {
					"d" : "26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm114,-280r-48,-51r28,0r38,51r-18,0",
					"w" : 213
				},
				"\u00cd" : {
					"d" : "28,0r0,-257r24,0r0,257r-24,0xm94,-332r-48,51r-18,0r38,-51r28,0",
					"w" : 79
				},
				"\u00ce" : {
					"d" : "28,0r0,-257r24,0r0,257r-24,0xm53,-331r41,51r-24,0r-31,-37r-31,37r-21,0r41,-51r25,0",
					"w" : 79
				},
				"\u00cf" : {
					"d" : "28,0r0,-257r24,0r0,257r-24,0xm21,-288r-25,0r0,-36r25,0r0,36xm84,-288r-24,0r0,-36r24,0r0,36",
					"w" : 79
				},
				"\u00cc" : {
					"d" : "28,0r0,-257r24,0r0,257r-24,0xm34,-280r-48,-51r28,0r38,51r-18,0",
					"w" : 79
				},
				"\u00d1" : {
					"d" : "26,0r0,-257r27,0r150,217r0,-217r25,0r0,257r-27,0r-151,-217r0,217r-24,0xm172,-324r14,0v-3,16,-13,34,-32,34v-28,-1,-57,-36,-67,2r-14,0v2,-17,13,-35,32,-35v30,0,55,34,67,-1",
					"w" : 253
				},
				"\u00d3" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134xm190,-332r-47,51r-19,0r38,-51r28,0",
					"w" : 266
				},
				"\u00d4" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134xm147,-331r41,51r-24,0r-31,-37r-31,37r-21,0r41,-51r25,0",
					"w" : 266
				},
				"\u00d6" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134xm113,-288r-24,0r0,-36r24,0r0,36xm177,-288r-25,0r0,-36r25,0r0,36",
					"w" : 266
				},
				"\u00d2" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134xm134,-280r-48,-51r28,0r38,51r-18,0",
					"w" : 266
				},
				"\u00d5" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134xm177,-324r13,0v-3,16,-12,34,-31,34v-29,-1,-58,-36,-68,2r-14,0v2,-17,13,-35,32,-35v30,0,56,34,68,-1",
					"w" : 266
				},
				"\u00da" : {
					"d" : "123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,59,27,83,75,83v48,0,76,-24,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm179,-332r-48,51r-18,0r38,-51r28,0",
					"w" : 246
				},
				"\u00db" : {
					"d" : "123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,59,27,83,75,83v48,0,76,-24,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm136,-331r41,51r-24,0r-31,-37r-31,37r-21,0r41,-51r25,0",
					"w" : 246
				},
				"\u00dc" : {
					"d" : "123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,59,27,83,75,83v48,0,76,-24,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm104,-288r-25,0r0,-36r25,0r0,36xm167,-288r-24,0r0,-36r24,0r0,36",
					"w" : 246
				},
				"\u00d9" : {
					"d" : "123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,59,27,83,75,83v48,0,76,-24,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm125,-280r-48,-51r28,0r38,51r-18,0",
					"w" : 246
				},
				"\u00dd" : {
					"d" : "98,0r0,-106r-102,-151r30,0r84,130r84,-130r30,0r-102,151r0,106r-24,0xm166,-332r-48,51r-18,0r38,-51r28,0",
					"w" : 219,
					"k" : {
						"\u014d" : 33,
						"\u00f9" : 27,
						"\u00fc" : 27,
						"\u00fb" : 27,
						"\u00fa" : 27,
						"\u00f5" : 33,
						"\u00f2" : 33,
						"\u00f6" : 33,
						"\u00f4" : 33,
						"\u00f3" : 33,
						"\u00e8" : 33,
						"\u00eb" : 33,
						"\u00ea" : 33,
						"\u00e9" : 33,
						"\u00e3" : 33,
						"\u00e5" : 33,
						"\u00e0" : 33,
						"\u00e4" : 33,
						"\u00e2" : 33,
						"\u00e1" : 33,
						"\u00c3" : 27,
						"\u00c5" : 27,
						"\u00c0" : 27,
						"\u00c4" : 27,
						"\u00c2" : 27,
						"\u00c1" : 27,
						"v" : 20,
						"u" : 27,
						"q" : 33,
						"p" : 27,
						"o" : 33,
						"i" : 3,
						"e" : 33,
						"a" : 33,
						"A" : 27,
						";" : 33,
						":" : 33,
						"." : 36,
						"-" : 40,
						"," : 44
					}
				},
				"\u00e1" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm148,-263r-48,51r-18,0r38,-51r28,0",
					"w" : 186
				},
				"\u00e2" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm106,-263r41,51r-24,0r-30,-37r-32,37r-21,0r41,-51r25,0",
					"w" : 186
				},
				"\u00e4" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm73,-220r-24,0r0,-36r24,0r0,36xm137,-220r-24,0r0,-36r24,0r0,36",
					"w" : 186
				},
				"\u00e0" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm93,-212r-48,-50r28,0r38,50r-18,0",
					"w" : 186
				},
				"\u00e5" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm68,-245v0,14,11,25,25,25v14,0,24,-11,24,-25v0,-14,-10,-24,-24,-24v-14,0,-25,10,-25,24xm54,-245v0,-21,18,-38,39,-38v21,0,38,17,38,38v0,21,-17,39,-38,39v-21,0,-39,-18,-39,-39",
					"w" : 186
				},
				"\u00e3" : {
					"d" : "42,-129r-23,0v3,-44,33,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-129,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-5,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm140,-102v-30,22,-106,6,-106,52v0,23,20,36,42,36v46,0,71,-34,64,-88xm136,-256r13,0v-3,16,-12,35,-31,35v-28,-1,-57,-37,-68,1r-14,0v2,-17,13,-34,32,-34v30,0,57,34,68,-2",
					"w" : 186
				},
				"\u00e7" : {
					"d" : "90,5v-50,-6,-78,-47,-78,-98v0,-53,31,-98,88,-98v40,0,70,21,75,64r-22,0v-6,-28,-23,-45,-53,-45v-86,1,-87,157,0,158v28,0,51,-22,54,-53r23,0v-5,42,-32,71,-75,72r-12,14v22,-3,42,-1,42,23v0,35,-47,36,-73,24r5,-12v13,5,47,12,47,-10v1,-24,-34,-5,-39,-17",
					"w" : 186
				},
				"\u00e9" : {
					"d" : "35,-106r120,0v-1,-34,-23,-66,-59,-66v-37,0,-57,32,-61,66xm178,-87r-143,0v0,33,18,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v59,0,84,52,82,104xm150,-263r-47,51r-19,0r38,-51r28,0",
					"w" : 186
				},
				"\u00ea" : {
					"d" : "35,-106r120,0v-1,-34,-23,-66,-59,-66v-37,0,-57,32,-61,66xm178,-87r-143,0v0,33,18,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v59,0,84,52,82,104xm109,-263r41,51r-23,0r-31,-37r-32,37r-21,0r41,-51r25,0",
					"w" : 186
				},
				"\u00eb" : {
					"d" : "35,-106r120,0v-1,-34,-23,-66,-59,-66v-37,0,-57,32,-61,66xm178,-87r-143,0v0,33,18,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v59,0,84,52,82,104xm77,-220r-24,0r0,-36r24,0r0,36xm141,-220r-25,0r0,-36r25,0r0,36",
					"w" : 186
				},
				"\u00e8" : {
					"d" : "35,-106r120,0v-1,-34,-23,-66,-59,-66v-37,0,-57,32,-61,66xm178,-87r-143,0v0,33,18,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v59,0,84,52,82,104xm95,-212r-47,-50r28,0r38,50r-19,0",
					"w" : 186
				},
				"\u00ed" : {
					"d" : "45,0r-23,0r0,-186r23,0r0,186xm87,-263r-47,51r-19,0r38,-51r28,0",
					"w" : 66
				},
				"\u00ee" : {
					"d" : "45,0r-23,0r0,-186r23,0r0,186xm46,-263r41,51r-23,0r-31,-37r-32,37r-21,0r41,-51r25,0",
					"w" : 66
				},
				"\u00ef" : {
					"d" : "45,0r-23,0r0,-186r23,0r0,186xm14,-220r-24,0r0,-36r24,0r0,36xm78,-220r-25,0r0,-36r25,0r0,36",
					"w" : 66
				},
				"\u00ec" : {
					"d" : "45,0r-23,0r0,-186r23,0r0,186xm27,-212r-48,-50r28,0r38,50r-18,0",
					"w" : 66
				},
				"\u00f1" : {
					"d" : "21,0r0,-186r23,0v1,10,-2,24,1,32v9,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0xm139,-256r14,0v-3,16,-12,35,-31,35v-28,-1,-57,-37,-68,1r-14,0v2,-17,13,-34,32,-34v30,0,57,34,67,-2",
					"w" : 193
				},
				"\u00f3" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm155,-263r-47,51r-19,0r38,-51r28,0"
				},
				"\u00f4" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm113,-263r41,51r-23,0r-31,-37r-32,37r-21,0r41,-51r25,0"
				},
				"\u00f6" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm81,-220r-24,0r0,-36r24,0r0,36xm145,-220r-25,0r0,-36r25,0r0,36"
				},
				"\u00f2" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-212r-47,-50r28,0r37,50r-18,0"
				},
				"\u00f5" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm144,-256r13,0v-3,16,-12,35,-31,35v-28,-1,-57,-37,-68,1r-14,0v2,-17,13,-34,32,-34v30,0,57,34,68,-2"
				},
				"\u00fa" : {
					"d" : "172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,49,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm152,-263r-48,51r-18,0r38,-51r28,0",
					"w" : 193
				},
				"\u00fb" : {
					"d" : "172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,49,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm109,-263r41,51r-23,0r-31,-37r-32,37r-21,0r41,-51r25,0",
					"w" : 193
				},
				"\u00fc" : {
					"d" : "172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,49,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm77,-220r-24,0r0,-36r24,0r0,36xm141,-220r-25,0r0,-36r25,0r0,36",
					"w" : 193
				},
				"\u00f9" : {
					"d" : "172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,49,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm99,-212r-48,-50r28,0r38,50r-18,0",
					"w" : 193
				},
				"\u00fd" : {
					"d" : "75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49xm142,-263r-48,51r-18,0r38,-51r28,0",
					"w" : 166,
					"k" : {
						"." : 33,
						"," : 33
					}
				},
				"\u00ff" : {
					"d" : "75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49xm67,-220r-25,0r0,-36r25,0r0,36xm130,-220r-24,0r0,-36r24,0r0,36",
					"w" : 166,
					"k" : {
						"." : 33,
						"," : 33
					}
				},
				"\u20ac" : {
					"d" : "30,-156v8,-57,44,-100,104,-100v30,0,52,9,67,27r-10,22v-27,-36,-83,-39,-112,-5v-12,14,-21,33,-25,56r120,0r-6,16r-116,0r-1,21r110,0r-7,16r-101,0v4,49,31,88,79,88v31,-1,44,-13,63,-31r0,28v-68,55,-166,2,-166,-85r-24,0r7,-16r16,0r0,-21r-23,0r7,-16r18,0"
				},
				"\u014c" : {
					"d" : "134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm12,-129v0,-71,41,-133,122,-133v81,0,121,62,121,133v0,71,-40,134,-121,134v-81,0,-122,-63,-122,-134xm193,-298r-118,0r0,-16r118,0r0,16",
					"w" : 266
				},
				"\u014d" : {
					"d" : "100,-172v-86,1,-87,157,0,158v86,-1,87,-157,0,-158xm100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm161,-230r-119,0r0,-16r119,0r0,16"
				},
				"\u00a0" : {
					"w" : 100
				},
				"\u00ad" : {
					"d" : "112,-89r-90,0r0,-20r90,0r0,20",
					"w" : 133
				}
			}
		});
var msg = {
	required_field : "Минимум 4 символа",
	max_length : "50 caractères maximum",
	long_max_length : "500 caractères maximum",
	invalid_email : "Adresse e-mail non valide",
	min_length_query_search : "Минимум 4 символа",
	popup_close : "Закрыть X",
	address_not_found : "Adresse introuvable."
};
var flashvars = {};
var mainFlashParams = {};
mainFlashParams.src = "/files/flash/main.swf";
mainFlashParams.version = [ 9, 45 ];
mainFlashParams.quality = "best";
mainFlashParams.bgcolor = "#FFFFFF";
mainFlashParams.allowscriptaccess = "always";
mainFlashParams.wmode = "transparent";
mainFlashParams.onFail = flashOnFail;
function flashOnFail() {
	$("body").addClass("noFlash")
}
$(document).ready(function() {
	$("#Main-Select-Country").styleSelect( {
		styleClass : "styleSelect-country",
		optionsWidth : 1,
		speed : "fast"
	});
	$("#Main-Select-Country").change(function() {
		goTo($(this).val())
	});
	$("#live-search-query").inputHint( {
		hintAttr : "hint"
	});
	Cufon(".cufon");
	$("#live-search form input").change(clearLiveSearchErrors);
	$("#live-search form").validate( {
		errorLabelContainer : $("#live-search span.input-tip"),
		focusInvalid : true,
		invalidHandler : clearLiveSearchErrors,
		rules : {
			query : {
				required : true,
				minlength : 3
			}
		},
		messages : {
			query : {
				required : msg.required_field,
				minlength : msg.min_length_query_search
			}
		}
	})
});
function clearLiveSearchErrors() {
	$("span.input-tip").html("")
}
var mainMenuOpenSection;
function setFlashHeight(a, b) {
	if (a == "open") {
		$("#flashMain").addClass("open");
		mainMenuOpenSection = b;
		switchIE6FormsElements(true)
	} else {
		if (mainMenuOpenSection == b) {
			$("#flashMain").removeClass("open");
			switchIE6FormsElements(false)
		}
	}
}
function switchIE6FormsElements(a) {
	if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
		if (a) {
			$("select").css("visibility", "hidden")
		} else {
			$("select").css("visibility", "")
		}
	}
}
function goTo(a) {
	if (a != "") {
		window.location.href = a
	}
}
var ajax_param = "ajax=true";
function addAjaxParamToSerialized(a) {
	return a ? a + "&" + ajax_param : ajax_param
}
function addAjaxParamToLink(a) {
	return a && a.indexOf("?") >= 0 ? a + "&" + ajax_param : "?" + ajax_param
};
