summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/views/__init__.py7
-rw-r--r--app/views/svg.py43
-rw-r--r--static/pygal/pygal.js180
-rw-r--r--templates/expenses/show.jinja8
4 files changed, 234 insertions, 4 deletions
diff --git a/app/views/__init__.py b/app/views/__init__.py
index d64b945..6405d3e 100644
--- a/app/views/__init__.py
+++ b/app/views/__init__.py
@@ -13,8 +13,8 @@ def handle_mobile():
flask.g.is_mobile = any((x in ua) for x in mobile_checks)
@app.template_filter("static_url")
-def static_url(s):
- return url_for("static", filename=s)
+def static_url(s, **kwargs):
+ return url_for("static", filename=s, **kwargs)
@app.template_filter("eur")
def eur(s):
@@ -31,10 +31,11 @@ def format_date(s, format="%Y/%m"):
def page_not_found (error):
return render_template("404.jinja", page = request.path), 404
-from . import categories, consts, expenses
+from . import categories, consts, expenses, svg
app.register_blueprint(expenses.mod)
app.register_blueprint(consts.mod, url_prefix="/const")
app.register_blueprint(categories.mod, url_prefix="/cat")
+app.register_blueprint(svg.mod, url_prefix="/svg")
app.add_url_rule("/", endpoint = "index", build_only = True)
diff --git a/app/views/svg.py b/app/views/svg.py
new file mode 100644
index 0000000..06666b3
--- /dev/null
+++ b/app/views/svg.py
@@ -0,0 +1,43 @@
+from ..flask_extend import Blueprint
+
+from .expenses import calc_month_exp
+from . import static_url
+from ..model import Category
+
+from pygal.style import DefaultStyle as Style
+from pygal import Pie as _Pie
+
+mod = Blueprint('svg', __name__)
+
+Style.background = Style.plot_background = "rgba(255,0,0,0)"
+
+def Pie(*args, **kwargs):
+ # does not work as functools.partial, because static_url would be called without request
+ return _Pie(*args,
+ style=Style,
+ js = [static_url('pygal/pygal.js', _external = True)],
+ legend_font_size = 24,
+ tooltip_font_size = 24,
+ value_font_size = 24,
+ margin = 0,
+ legend_at_bottom = True,
+ pretty_print = True,
+ **kwargs)
+
+@mod.route("/month/<int(fixed_digits=4):year>/<int(fixed_digits=2):month>.svg")
+def month(year, month):
+ exp = calc_month_exp(year, month)
+ pie = Pie()
+
+ expenses = {}
+ for c in exp.catexps:
+ expenses[c.cat.name] = float(c.expense)
+
+ for c in Category.query.order_by(Category.name).all():
+ pie.add(c.name, expenses.get(c.name, 0.0))
+
+ if not expenses:
+ pie.raw_series = []
+ pie.add("Empty", 0.1)
+
+ return pie.render_response()
diff --git a/static/pygal/pygal.js b/static/pygal/pygal.js
new file mode 100644
index 0000000..8cc1b21
--- /dev/null
+++ b/static/pygal/pygal.js
@@ -0,0 +1,180 @@
+(function(s,m){function $(a){var b=ra[a]={},c,e;a=a.split(/\s+/);c=0;for(e=a.length;c<e;c++)b[a[c]]=!0;return b}function O(a,b,d){if(d===m&&1===a.nodeType)if(d="data-"+b.replace(db,"-$1").toLowerCase(),d=a.getAttribute(d),"string"===typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:c.isNumeric(d)?+d:eb.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=m;return d}function F(a){for(var b in a)if(!("data"===b&&c.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d){var e=
+b+"defer",f=b+"queue",g=b+"mark",k=c._data(a,e);k&&(("queue"===d||!c._data(a,f))&&("mark"===d||!c._data(a,g)))&&setTimeout(function(){!c._data(a,f)&&!c._data(a,g)&&(c.removeData(a,e,!0),k.fire())},0)}function C(){return!1}function x(){return!0}function z(a,b,d){b=b||0;if(c.isFunction(b))return c.grep(a,function(a,c){return!!b.call(a,c,a)===d});if(b.nodeType)return c.grep(a,function(a,c){return a===b===d});if("string"===typeof b){var e=c.grep(a,function(a){return 1===a.nodeType});if(fb.test(b))return c.filter(b,
+e,!d);b=c.filter(b,e)}return c.grep(a,function(a,e){return 0<=c.inArray(a,b)===d})}function y(a){var b=sa.split("|");a=a.createDocumentFragment();if(a.createElement)for(;b.length;)a.createElement(b.pop());return a}function B(a,b){if(1===b.nodeType&&c.hasData(a)){var d,e,f;e=c._data(a);var g=c._data(b,e),k=e.events;if(k)for(d in delete g.handle,g.events={},k){e=0;for(f=k[d].length;e<f;e++)c.event.add(b,d,k[d][e])}g.data&&(g.data=c.extend({},g.data))}}function V(a,b){var d;1===b.nodeType&&(b.clearAttributes&&
+b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),d=b.nodeName.toLowerCase(),"object"===d?b.outerHTML=a.outerHTML:"input"===d&&("checkbox"===a.type||"radio"===a.type)?(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)):"option"===d?b.selected=a.defaultSelected:"input"===d||"textarea"===d?b.defaultValue=a.defaultValue:"script"===d&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(c.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}
+function G(a){return"undefined"!==typeof a.getElementsByTagName?a.getElementsByTagName("*"):"undefined"!==typeof a.querySelectorAll?a.querySelectorAll("*"):[]}function ta(a){if("checkbox"===a.type||"radio"===a.type)a.defaultChecked=a.checked}function M(a){var b=(a.nodeName||"").toLowerCase();"input"===b?ta(a):"script"!==b&&"undefined"!==typeof a.getElementsByTagName&&c.grep(a.getElementsByTagName("input"),ta)}function ua(a,b,d){var e="width"===b?a.offsetWidth:a.offsetHeight,f="width"===b?1:0;e===
+m&&(e="width"===b?a.getBBox().width:a.getBBox().height);if(0<e){if("border"!==d)for(;4>f;f+=2)d||(e-=parseFloat(c.css(a,"padding"+P[f]))||0),e="margin"===d?e+(parseFloat(c.css(a,d+P[f]))||0):e-(parseFloat(c.css(a,"border"+P[f]+"Width"))||0);return e+"px"}e=R(a,b);if(0>e||null==e)e=a.style[b];if(ga.test(e))return e;e=parseFloat(e)||0;if(d)for(;4>f;f+=2)e+=parseFloat(c.css(a,"padding"+P[f]))||0,"padding"!==d&&(e+=parseFloat(c.css(a,"border"+P[f]+"Width"))||0),"margin"===d&&(e+=parseFloat(c.css(a,d+
+P[f]))||0);return e+"px"}function va(a){return function(b,d){"string"!==typeof b&&(d=b,b="*");if(c.isFunction(d))for(var e=b.toLowerCase().split(wa),f=0,g=e.length,k,h;f<g;f++)k=e[f],(h=/^\+/.test(k))&&(k=k.substr(1)||"*"),k=a[k]=a[k]||[],k[h?"unshift":"push"](d)}}function aa(a,b,c,e,f,g){f=f||b.dataTypes[0];g=g||{};g[f]=!0;f=a[f];for(var k=0,h=f?f.length:0,l=a===ha,p;k<h&&(l||!p);k++)p=f[k](b,c,e),"string"===typeof p&&(!l||g[p]?p=m:(b.dataTypes.unshift(p),p=aa(a,b,c,e,p,g)));if((l||!p)&&!g["*"])p=
+aa(a,b,c,e,"*",g);return p}function xa(a,b){var d,e,f=c.ajaxSettings.flatOptions||{};for(d in b)b[d]!==m&&((f[d]?a:e||(e={}))[d]=b[d]);e&&c.extend(!0,a,e)}function ia(a,b,d,e){if(c.isArray(b))c.each(b,function(b,c){d||gb.test(a)?e(a,c):ia(a+"["+("object"===typeof c?b:"")+"]",c,d,e)});else if(!d&&"object"===c.type(b))for(var f in b)ia(a+"["+f+"]",b[f],d,e);else e(a,b)}function ya(){try{return new s.XMLHttpRequest}catch(a){}}function za(){setTimeout(hb,0);return ba=c.now()}function hb(){ba=m}function W(a,
+b){var d={};c.each(ca.concat.apply([],ca.slice(0,b)),function(){d[this]=a});return d}function Aa(a){if(!ja[a]){var b=r.body,d=c("<"+a+">").appendTo(b),e=d.css("display");d.remove();if("none"===e||""===e){J||(J=r.createElement("iframe"),J.frameBorder=J.width=J.height=0);b.appendChild(J);if(!X||!J.createElement)X=(J.contentWindow||J.contentDocument).document,X.write((c.support.boxModel?"<!doctype html>":"")+"<html><body>"),X.close();d=X.createElement(a);X.body.appendChild(d);e=c.css(d,"display");b.removeChild(J)}ja[a]=
+e}return ja[a]}function Ba(a){return c.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}var r=s.document,ib=s.navigator,jb=s.location,c=function(){function a(){if(!b.isReady){try{r.documentElement.doScroll("left")}catch(c){setTimeout(a,1);return}b.ready()}}var b=function(a,c){return new b.fn.init(a,c,f)},c=s.jQuery,e=s.$,f,g=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,k=/\S/,h=/^\s+/,l=/\s+$/,p=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,q=/^[\],:{}\s]*$/,n=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,kb=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+t=/(?:^|:|,)(?:\s*\[)+/g,lb=/(webkit)[ \/]([\w.]+)/,mb=/(opera)(?:.*version)?[ \/]([\w.]+)/,w=/(msie) ([\w.]+)/,A=/(mozilla)(?:.*? rv:([\w.]+))?/,x=/-([a-z]|[0-9])/ig,F=/^-ms-/,u=function(a,b){return(b+"").toUpperCase()},y=ib.userAgent,v,H,nb=Object.prototype.toString,ka=Object.prototype.hasOwnProperty,la=Array.prototype.push,Z=Array.prototype.slice,Ca=String.prototype.trim,Da=Array.prototype.indexOf,Ea={};b.fn=b.prototype={constructor:b,init:function(a,c,d){var e;if(!a)return this;if(a.nodeType)return this.context=
+this[0]=a,this.length=1,this;if("body"===a&&!c&&r.body)return this.context=r,this[0]=r.body,this.selector=a,this.length=1,this;if("string"===typeof a){if((e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:g.exec(a))&&(e[1]||!c)){if(e[1])return d=(c=c instanceof b?c[0]:c)?c.ownerDocument||c:r,(a=p.exec(a))?b.isPlainObject(c)?(a=[r.createElementNS("http://www.w3.org/2000/svg",a[1])],b.fn.attr.call(a,c,!0)):a=[d.createElementNS("http://www.w3.org/2000/svg",a[1])]:(a=b.buildFragment([e[1]],
+[d]),a=(a.cacheable?b.clone(a.fragment):a.fragment).childNodes),b.merge(this,a);if((c=r.getElementById(e[2]))&&c.parentNode){if(c.id!==e[2])return d.find(a);this.length=1;this[0]=c}this.context=r;this.selector=a;return this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}if(b.isFunction(a))return d.ready(a);a.selector!==m&&(this.selector=a.selector,this.context=a.context);return b.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return Z.call(this,
+0)},get:function(a){return null==a?this.toArray():0>a?this[this.length+a]:this[a]},pushStack:function(a,c,d){var e=this.constructor();b.isArray(a)?la.apply(e,a):b.merge(e,a);e.prevObject=this;e.context=this.context;"find"===c?e.selector=this.selector+(this.selector?" ":"")+d:c&&(e.selector=this.selector+"."+c+"("+d+")");return e},each:function(a,c){return b.each(this,a,c)},ready:function(a){b.bindReady();v.add(a);return this},eq:function(a){a=+a;return-1===a?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},
+last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Z.apply(this,arguments),"slice",Z.call(arguments).join(","))},map:function(a){return this.pushStack(b.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:la,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var a,c,d,e,f,v=arguments[0]||{},g=1,k=arguments.length,h=!1;"boolean"===typeof v&&(h=v,v=arguments[1]||{},g=2);"object"!==
+typeof v&&!b.isFunction(v)&&(v={});k===g&&(v=this,--g);for(;g<k;g++)if(null!=(a=arguments[g]))for(c in a)d=v[c],e=a[c],v!==e&&(h&&e&&(b.isPlainObject(e)||(f=b.isArray(e)))?(f?(f=!1,d=d&&b.isArray(d)?d:[]):d=d&&b.isPlainObject(d)?d:{},v[c]=b.extend(h,d,e)):e!==m&&(v[c]=e));return v};b.extend({noConflict:function(a){s.$===b&&(s.$=e);a&&s.jQuery===b&&(s.jQuery=c);return b},isReady:!1,readyWait:1,holdReady:function(a){a?b.readyWait++:b.ready(!0)},ready:function(a){if(!0===a&&!--b.readyWait||!0!==a&&!b.isReady)b.isReady=
+!0,!0!==a&&0<--b.readyWait||(v.fireWith(r,[b]),b.fn.trigger&&b(r).trigger("ready").off("ready"))},bindReady:function(){if(!v){v=b.Callbacks("once memory");if("complete"===r.readyState)return setTimeout(b.ready,1);if(r.addEventListener)r.addEventListener("DOMContentLoaded",H,!1),s.addEventListener("load",b.ready,!1);else if(r.attachEvent){r.attachEvent("onreadystatechange",H);s.attachEvent("onload",b.ready);var c=!1;try{c=null==s.frameElement}catch(d){}r.documentElement.doScroll&&c&&a()}}},isFunction:function(a){return"function"===
+b.type(a)},isArray:Array.isArray||function(a){return"array"===b.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return null==a?String(a):Ea[nb.call(a)]||"object"},isPlainObject:function(a){if(!a||"object"!==b.type(a)||a.nodeType||b.isWindow(a))return!1;try{if(a.constructor&&!ka.call(a,"constructor")&&!ka.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}for(var d in a);return d===m||
+ka.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw Error(a);},parseJSON:function(a){if("string"!==typeof a||!a)return null;a=b.trim(a);if(s.JSON&&s.JSON.parse)return s.JSON.parse(a);if(q.test(a.replace(n,"@").replace(kb,"]").replace(t,"")))return(new Function("return "+a))();b.error("Invalid JSON: "+a)},parseXML:function(a){if("string"!==typeof a||!a)return null;var c,d;try{s.DOMParser?(d=new DOMParser,c=d.parseFromString(a,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),
+c.async="false",c.loadXML(a))}catch(e){c=m}(!c||!c.documentElement||c.getElementsByTagName("parsererror").length)&&b.error("Invalid XML: "+a);return c},noop:function(){},globalEval:function(a){a&&k.test(a)&&(s.execScript||function(a){s.eval.call(s,a)})(a)},camelCase:function(a){return a.replace(F,"ms-").replace(x,u)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,v=a.length,g=v===m||b.isFunction(a);if(d)if(g)for(e in a){if(!1===
+c.apply(a[e],d))break}else for(;f<v&&!1!==c.apply(a[f++],d););else if(g)for(e in a){if(!1===c.call(a[e],e,a[e]))break}else for(;f<v&&!1!==c.call(a[f],f,a[f++]););return a},trim:Ca?function(a){return null==a?"":Ca.call(a)}:function(a){return null==a?"":a.toString().replace(h,"").replace(l,"")},makeArray:function(a,c){var d=c||[];if(null!=a){var e=b.type(a);null==a.length||"string"===e||"function"===e||"regexp"===e||b.isWindow(a)?la.call(d,a):b.merge(d,a)}return d},inArray:function(a,b,c){var d;if(b){if(Da)return Da.call(b,
+a,c);d=b.length;for(c=c?0>c?Math.max(0,d+c):c:0;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=a.length,d=0;if("number"===typeof b.length)for(var e=b.length;d<e;d++)a[c++]=b[d];else for(;b[d]!==m;)a[c++]=b[d++];a.length=c;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,v=a.length;f<v;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var e,f,v=[],g=0,k=a.length;if(a instanceof b||k!==m&&"number"===typeof k&&(0<k&&a[0]&&a[k-1]||0===k||b.isArray(a)))for(;g<
+k;g++)e=c(a[g],g,d),null!=e&&(v[v.length]=e);else for(f in a)e=c(a[f],f,d),null!=e&&(v[v.length]=e);return v.concat.apply([],v)},guid:1,proxy:function(a,c){if("string"===typeof c){var d=a[c];c=a;a=d}if(!b.isFunction(a))return m;var e=Z.call(arguments,2),d=function(){return a.apply(c,e.concat(Z.call(arguments)))};d.guid=a.guid=a.guid||d.guid||b.guid++;return d},access:function(a,c,d,e,f,v,g){var k,h=null==d,H=0,l=a.length;if(d&&"object"===typeof d){for(H in d)b.access(a,c,H,d[H],1,v,e);f=1}else if(e!==
+m){k=g===m&&b.isFunction(e);h&&(k?(k=c,c=function(a,c,d){return k.call(b(a),d)}):(c.call(a,e),c=null));if(c)for(;H<l;H++)c(a[H],d,k?e.call(a[H],H,c(a[H],d)):e,g);f=1}return f?a:h?c.call(a):l?c(a[0],d):v},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();a=lb.exec(a)||mb.exec(a)||w.exec(a)||0>a.indexOf("compatible")&&A.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}b.extend(!0,a,this);a.superclass=this;
+a.fn=a.prototype=this();a.fn.constructor=a;a.sub=this.sub;a.fn.init=function(d,e){e&&(e instanceof b&&!(e instanceof a))&&(e=a(e));return b.fn.init.call(this,d,e,c)};a.fn.init.prototype=a.fn;var c=a(r);return a},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){Ea["[object "+b+"]"]=b.toLowerCase()});y=b.uaMatch(y);y.browser&&(b.browser[y.browser]=!0,b.browser.version=y.version);b.browser.webkit&&(b.browser.safari=!0);k.test("\u00a0")&&(h=/^[\s\xA0]+/,
+l=/[\s\xA0]+$/);f=b(r);r.addEventListener?H=function(){r.removeEventListener("DOMContentLoaded",H,!1);b.ready()}:r.attachEvent&&(H=function(){"complete"===r.readyState&&(r.detachEvent("onreadystatechange",H),b.ready())});return b}(),ra={};c.Callbacks=function(a){a=a?ra[a]||$(a):{};var b=[],d=[],e,f,g,k,h,l,p=function(d){var e,f,g,k;e=0;for(f=d.length;e<f;e++)g=d[e],k=c.type(g),"array"===k?p(g):"function"===k&&(!a.unique||!n.has(g))&&b.push(g)},q=function(c,p){p=p||[];e=!a.memory||[c,p];g=f=!0;l=k||
+0;k=0;for(h=b.length;b&&l<h;l++)if(!1===b[l].apply(c,p)&&a.stopOnFalse){e=!0;break}g=!1;b&&(a.once?!0===e?n.disable():b=[]:d&&d.length&&(e=d.shift(),n.fireWith(e[0],e[1])))},n={add:function(){if(b){var a=b.length;p(arguments);g?h=b.length:e&&!0!==e&&(k=a,q(e[0],e[1]))}return this},remove:function(){if(b)for(var c=arguments,d=0,e=c.length;d<e;d++)for(var f=0;f<b.length&&!(c[d]===b[f]&&(g&&f<=h&&(h--,f<=l&&l--),b.splice(f--,1),a.unique));f++);return this},has:function(a){if(b)for(var c=0,d=b.length;c<
+d;c++)if(a===b[c])return!0;return!1},empty:function(){b=[];return this},disable:function(){b=d=e=m;return this},disabled:function(){return!b},lock:function(){d=m;(!e||!0===e)&&n.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(g?a.once||d.push([b,c]):(!a.once||!e)&&q(b,c));return this},fire:function(){n.fireWith(this,arguments);return this},fired:function(){return!!f}};return n};var ma=[].slice;c.extend({Deferred:function(a){var b=c.Callbacks("once memory"),d=c.Callbacks("once memory"),
+e=c.Callbacks("memory"),f="pending",g={resolve:b,reject:d,notify:e},k={done:b.add,fail:d.add,progress:e.add,state:function(){return f},isResolved:b.fired,isRejected:d.fired,then:function(a,b,c){h.done(a).fail(b).progress(c);return this},always:function(){h.done.apply(h,arguments).fail.apply(h,arguments);return this},pipe:function(a,b,d){return c.Deferred(function(e){c.each({done:[a,"resolve"],fail:[b,"reject"],progress:[d,"notify"]},function(a,b){var d=b[0],f=b[1],g;if(c.isFunction(d))h[a](function(){if((g=
+d.apply(this,arguments))&&c.isFunction(g.promise))g.promise().then(e.resolve,e.reject,e.notify);else e[f+"With"](this===h?e:this,[g])});else h[a](e[f])})}).promise()},promise:function(a){if(null==a)a=k;else for(var b in k)a[b]=k[b];return a}},h=k.promise({}),l;for(l in g)h[l]=g[l].fire,h[l+"With"]=g[l].fireWith;h.done(function(){f="resolved"},d.disable,e.lock).fail(function(){f="rejected"},b.disable,e.lock);a&&a.call(h,h);return h},when:function(a){function b(a){return function(b){e[a]=1<arguments.length?
+ma.call(arguments,0):b;--h||l.resolveWith(l,e)}}function d(a){return function(b){k[a]=1<arguments.length?ma.call(arguments,0):b;l.notifyWith(p,k)}}var e=ma.call(arguments,0),f=0,g=e.length,k=Array(g),h=g,l=1>=g&&a&&c.isFunction(a.promise)?a:c.Deferred(),p=l.promise();if(1<g){for(;f<g;f++)e[f]&&e[f].promise&&c.isFunction(e[f].promise)?e[f].promise().then(b(f),l.reject,d(f)):--h;h||l.resolveWith(l,e)}else l!==a&&l.resolveWith(l,g?[a]:[]);return p}});c.support={leadingWhitespace:!0,tbody:!1,htmlSerialize:!0,
+style:!0,hrefNormalized:!0,opacity:!0,cssFloat:!0,checkOn:!0,optSelected:!0,getSetAttribute:!0,enctype:!0,html5Clone:!0,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0};var eb=/^(?:\{.*\}|\[.*\])$/,db=/([A-Z])/g;c.extend({cache:{},uuid:0,expando:"jQuery"+(c.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},
+hasData:function(a){a=a.nodeType?c.cache[a[c.expando]]:a[c.expando];return!!a&&!F(a)},data:function(a,b,d,e){if(c.acceptData(a)){var f;f=c.expando;var g="string"===typeof b,k=a.nodeType,h=k?c.cache:a,l=k?a[f]:a[f]&&f,p="events"===b;if(l&&h[l]&&(p||e||h[l].data)||!(g&&d===m)){l||(k?a[f]=l=++c.uuid:l=f);h[l]||(h[l]={},k||(h[l].toJSON=c.noop));if("object"===typeof b||"function"===typeof b)e?h[l]=c.extend(h[l],b):h[l].data=c.extend(h[l].data,b);f=a=h[l];e||(a.data||(a.data={}),a=a.data);d!==m&&(a[c.camelCase(b)]=
+d);if(p&&!a[b])return f.events;g?(d=a[b],null==d&&(d=a[c.camelCase(b)])):d=a;return d}}},removeData:function(a,b,d){if(c.acceptData(a)){var e,f,g,k=c.expando,h=a.nodeType,l=h?c.cache:a,p=h?a[k]:k;if(l[p]){if(b&&(e=d?l[p]:l[p].data)){c.isArray(b)||(b in e?b=[b]:(b=c.camelCase(b),b=b in e?[b]:b.split(" ")));f=0;for(g=b.length;f<g;f++)delete e[b[f]];if(!(d?F:c.isEmptyObject)(e))return}if(!d&&(delete l[p].data,!F(l[p])))return;c.support.deleteExpando||!l.setInterval?delete l[p]:l[p]=null;h&&(c.support.deleteExpando?
+delete a[k]:a.removeAttribute?a.removeAttribute(k):a[k]=null)}}},_data:function(a,b,d){return c.data(a,b,d,!0)},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(!0===b||a.getAttribute("classid")!==b)}return!0}});c.fn.extend({data:function(a,b){var d,e,f,g,k,h=this[0],l=0,p=null;if(a===m){if(this.length&&(p=c.data(h),1===h.nodeType&&!c._data(h,"parsedAttrs"))){f=h.attributes;for(k=f.length;l<k;l++)g=f[l].name,0===g.indexOf("data-")&&(g=c.camelCase(g.substring(5)),
+O(h,g,p[g]));c._data(h,"parsedAttrs",!0)}return p}if("object"===typeof a)return this.each(function(){c.data(this,a)});d=a.split(".",2);d[1]=d[1]?"."+d[1]:"";e=d[1]+"!";return c.access(this,function(b){if(b===m)return p=this.triggerHandler("getData"+e,[d[0]]),p===m&&h&&(p=c.data(h,a),p=O(h,a,p)),p===m&&d[1]?this.data(d[0]):p;d[1]=b;this.each(function(){var f=c(this);f.triggerHandler("setData"+e,d);c.data(this,a,b);f.triggerHandler("changeData"+e,d)})},null,b,1<arguments.length,null,!1)},removeData:function(a){return this.each(function(){c.removeData(this,
+a)})}});c.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",c._data(a,b,(c._data(a,b)||0)+1))},_unmark:function(a,b,d){!0!==a&&(d=b,b=a,a=!1);if(b){d=d||"fx";var e=d+"mark";(a=a?0:(c._data(b,e)||1)-1)?c._data(b,e,a):(c.removeData(b,e,!0),Q(b,d,"mark"))}},queue:function(a,b,d){var e;if(a)return b=(b||"fx")+"queue",e=c._data(a,b),d&&(!e||c.isArray(d)?e=c._data(a,b,c.makeArray(d)):e.push(d)),e||[]},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift(),f={};"inprogress"===e&&(e=d.shift());e&&
+("fx"===b&&d.unshift("inprogress"),c._data(a,b+".run",f),e.call(a,function(){c.dequeue(a,b)},f));d.length||(c.removeData(a,b+"queue "+b+".run",!0),Q(a,b,"queue"))}});c.fn.extend({queue:function(a,b){var d=2;"string"!==typeof a&&(b=a,a="fx",d--);return arguments.length<d?c.queue(this[0],a):b===m?this:this.each(function(){var d=c.queue(this,a,b);"fx"===a&&"inprogress"!==d[0]&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
+a:a;return this.queue(b||"fx",function(b,c){var f=setTimeout(b,a);c.stop=function(){clearTimeout(f)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){function d(){--k||e.resolveWith(f,[f])}"string"!==typeof a&&(b=a,a=m);a=a||"fx";for(var e=c.Deferred(),f=this,g=f.length,k=1,h=a+"defer",l=a+"queue",p=a+"mark",q;g--;)if(q=c.data(f[g],h,m,!0)||(c.data(f[g],l,m,!0)||c.data(f[g],p,m,!0))&&c.data(f[g],h,c.Callbacks("once memory"),!0))k++,q.add(d);d();return e.promise(b)}});
+var Fa=/[\n\t\r]/g,da=/\s+/,ob=/\r/g,pb=/^(?:button|input)$/i,qb=/^(?:button|input|object|select|textarea)$/i,rb=/^a(?:rea)?$/i,Ga=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,Ha=c.support.getSetAttribute,K,Ia,Ja;c.fn.extend({attr:function(a,b){return c.access(this,c.attr,a,b,1<arguments.length)},removeAttr:function(a){return this.each(function(){c.removeAttr(this,a)})},prop:function(a,b){return c.access(this,c.prop,
+a,b,1<arguments.length)},removeProp:function(a){a=c.propFix[a]||a;return this.each(function(){try{this[a]=m,delete this[a]}catch(b){}})},addClass:function(a){var b,d,e,f,g,k,h;if(c.isFunction(a))return this.each(function(b){c(this).addClass(a.call(this,b,this.className.baseVal))});if(a&&"string"===typeof a){b=a.split(da);d=0;for(e=this.length;d<e;d++)if(f=this[d],1===f.nodeType)if(!f.className.baseVal&&1===b.length)f.className.baseVal=a;else{g=" "+f.className.baseVal+" ";k=0;for(h=b.length;k<h;k++)~g.indexOf(" "+
+b[k]+" ")||(g+=b[k]+" ");f.className.baseVal=c.trim(g)}}return this},removeClass:function(a){var b,d,e,f,g,k,h;if(c.isFunction(a))return this.each(function(b){c(this).removeClass(a.call(this,b,this.className.baseVal))});if(a&&"string"===typeof a||a===m){b=(a||"").split(da);d=0;for(e=this.length;d<e;d++)if(f=this[d],1===f.nodeType&&f.className.baseVal)if(a){g=(" "+f.className.baseVal+" ").replace(Fa," ");k=0;for(h=b.length;k<h;k++)g=g.replace(" "+b[k]+" "," ");f.className.baseVal=c.trim(g)}else f.className.baseVal=
+""}return this},toggleClass:function(a,b){var d=typeof a,e="boolean"===typeof b;return c.isFunction(a)?this.each(function(d){c(this).toggleClass(a.call(this,d,this.className.baseVal,b),b)}):this.each(function(){if("string"===d)for(var f,g=0,k=c(this),h=b,l=a.split(da);f=l[g++];)h=e?h:!k.hasClass(f),k[h?"addClass":"removeClass"](f);else if("undefined"===d||"boolean"===d)this.className.baseVal&&c._data(this,"__className__",this.className.baseVal),this.className.baseVal=this.className.baseVal||!1===
+a?"":c._data(this,"__className__")||""})},hasClass:function(a){a=" "+a+" ";for(var b=0,c=this.length;b<c;b++)if(1===this[b].nodeType&&-1<(" "+this[b].className.baseVal+" ").replace(Fa," ").indexOf(a))return!0;return!1},val:function(a){var b,d,e,f=this[0];if(arguments.length)return e=c.isFunction(a),this.each(function(d){var f=c(this);if(1===this.nodeType&&(d=e?a.call(this,d,f.val()):a,null==d?d="":"number"===typeof d?d+="":c.isArray(d)&&(d=c.map(d,function(a){return null==a?"":a+""})),b=c.valHooks[this.type]||
+c.valHooks[this.nodeName.toLowerCase()],!b||!("set"in b)||b.set(this,d,"value")===m))this.value=d});if(f){if((b=c.valHooks[f.type]||c.valHooks[f.nodeName.toLowerCase()])&&"get"in b&&(d=b.get(f,"value"))!==m)return d;d=f.value;return"string"===typeof d?d.replace(ob,""):null==d?"":d}}});c.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,d,e=a.selectedIndex,f=[],g=a.options,k="select-one"===a.type;if(0>e)return null;
+a=k?e:0;for(d=k?e+1:g.length;a<d;a++)if(b=g[a],b.selected&&(c.support.optDisabled?!b.disabled:null===b.getAttribute("disabled"))&&(!b.parentNode.disabled||!c.nodeName(b.parentNode,"optgroup"))){b=c(b).val();if(k)return b;f.push(b)}return k&&!f.length&&g.length?c(g[e]).val():f},set:function(a,b){var d=c.makeArray(b);c(a).find("option").each(function(){this.selected=0<=c.inArray(c(this).val(),d)});d.length||(a.selectedIndex=-1);return d}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,
+offset:!0},attr:function(a,b,d,e){var f,g,k=a.nodeType;if(a&&!(3===k||8===k||2===k)){if(e&&b in c.attrFn)return c(a)[b](d);if("undefined"===typeof a.getAttribute)return c.prop(a,b,d);if(e=1!==k||!c.isXMLDoc(a))b=b.toLowerCase(),g=c.attrHooks[b]||(Ga.test(b)?Ia:K);if(d!==m)if(null===d)c.removeAttr(a,b);else{if(g&&"set"in g&&e&&(f=g.set(a,d,b))!==m)return f;"href"==b?a.setAttributeNS("http://www.w3.org/1999/xlink",b,""+d):a.setAttribute(b,""+d);return d}else{if(g&&"get"in g&&e&&null!==(f=g.get(a,b)))return f;
+f=a.getAttribute(b);return null===f?m:f}}},removeAttr:function(a,b){var d,e,f,g,k,h=0;if(b&&1===a.nodeType){e=b.toLowerCase().split(da);for(g=e.length;h<g;h++)if(f=e[h])d=c.propFix[f]||f,(k=Ga.test(f))||c.attr(a,f,""),a.removeAttribute(Ha?f:d),k&&d in a&&(a[d]=!1)}},attrHooks:{type:{set:function(a,b){if(pb.test(a.nodeName)&&a.parentNode)c.error("type property can't be changed");else if(!c.support.radioValue&&"radio"===b&&c.nodeName(a,"input")){var d=a.value;a.setAttribute("type",b);d&&(a.value=d);
+return b}}},value:{get:function(a,b){return K&&c.nodeName(a,"button")?K.get(a,b):b in a?a.value:null},set:function(a,b,d){if(K&&c.nodeName(a,"button"))return K.set(a,b,d);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,b,d){var e,f,g;g=a.nodeType;if(a&&
+!(3===g||8===g||2===g)){if(g=1!==g||!c.isXMLDoc(a))b=c.propFix[b]||b,f=c.propHooks[b];return d!==m?f&&"set"in f&&(e=f.set(a,d,b))!==m?e:a[b]=d:f&&"get"in f&&null!==(e=f.get(a,b))?e:a[b]}},propHooks:{tabIndex:{get:function(a){var b=a.getAttributeNode("tabindex");return b&&b.specified?parseInt(b.value,10):qb.test(a.nodeName)||rb.test(a.nodeName)&&a.href?0:m}}}});c.attrHooks.tabindex=c.propHooks.tabIndex;Ia={get:function(a,b){var d,e=c.prop(a,b);return!0===e||"boolean"!==typeof e&&(d=a.getAttributeNode(b))&&
+!1!==d.nodeValue?b.toLowerCase():m},set:function(a,b,d){!1===b?c.removeAttr(a,d):(b=c.propFix[d]||d,b in a&&(a[b]=!0),a.setAttribute(d,d.toLowerCase()));return d}};Ha||(Ja={name:!0,id:!0,coords:!0},K=c.valHooks.button={get:function(a,b){var c;return(c=a.getAttributeNode(b))&&(Ja[b]?""!==c.nodeValue:c.specified)?c.nodeValue:m},set:function(a,b,c){var e=a.getAttributeNode(c);e||(e=r.createAttribute(c),a.setAttributeNode(e));return e.nodeValue=b+""}},c.attrHooks.tabindex.set=K.set,c.each(["width","height"],
+function(a,b){c.attrHooks[b]=c.extend(c.attrHooks[b],{set:function(a,c){if(""===c)return a.setAttribute(b,"auto"),c}})}),c.attrHooks.contenteditable={get:K.get,set:function(a,b,c){""===b&&(b="false");K.set(a,b,c)}});c.support.hrefNormalized||c.each(["href","src","width","height"],function(a,b){c.attrHooks[b]=c.extend(c.attrHooks[b],{get:function(a){a=a.getAttribute(b,2);return null===a?m:a}})});c.support.style||(c.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||m},set:function(a,
+b){return a.style.cssText=""+b}});c.support.optSelected||(c.propHooks.selected=c.extend(c.propHooks.selected,{get:function(a){if(a=a.parentNode)a.selectedIndex,a.parentNode&&a.parentNode.selectedIndex;return null}}));c.support.enctype||(c.propFix.enctype="encoding");c.support.checkOn||c.each(["radio","checkbox"],function(){c.valHooks[this]={get:function(a){return null===a.getAttribute("value")?"on":a.value}}});c.each(["radio","checkbox"],function(){c.valHooks[this]=c.extend(c.valHooks[this],{set:function(a,
+b){if(c.isArray(b))return a.checked=0<=c.inArray(c(a).val(),b)}})});var na=/^(?:textarea|input|select)$/i,Ka=/^([^\.]*)?(?:\.(.+))?$/,sb=/(?:^|\s)hover(\.\S+)?\b/,tb=/^key/,ub=/^(?:mouse|contextmenu)|click/,La=/^(?:focusinfocus|focusoutblur)$/,vb=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,wb=function(a){if(a=vb.exec(a))a[1]=(a[1]||"").toLowerCase(),a[3]=a[3]&&RegExp("(?:^|\\s)"+a[3]+"(?:\\s|$)");return a},Ma=function(a){return c.event.special.hover?a:a.replace(sb,"mouseenter$1 mouseleave$1")};c.event=
+{add:function(a,b,d,e,f){var g,k,h,l,p,q,n,r,t;if(!(3===a.nodeType||8===a.nodeType||!b||!d||!(g=c._data(a)))){d.handler&&(n=d,d=n.handler,f=n.selector);d.guid||(d.guid=c.guid++);h=g.events;h||(g.events=h={});k=g.handle;k||(g.handle=k=function(a){return"undefined"!==typeof c&&(!a||c.event.triggered!==a.type)?c.event.dispatch.apply(k.elem,arguments):m},k.elem=a);b=c.trim(Ma(b)).split(" ");for(g=0;g<b.length;g++){l=Ka.exec(b[g])||[];p=l[1];q=(l[2]||"").split(".").sort();t=c.event.special[p]||{};p=(f?
+t.delegateType:t.bindType)||p;t=c.event.special[p]||{};l=c.extend({type:p,origType:l[1],data:e,handler:d,guid:d.guid,selector:f,quick:f&&wb(f),namespace:q.join(".")},n);r=h[p];if(!r&&(r=h[p]=[],r.delegateCount=0,!t.setup||!1===t.setup.call(a,e,q,k)))a.addEventListener?a.addEventListener(p,k,!1):a.attachEvent&&a.attachEvent("on"+p,k);t.add&&(t.add.call(a,l),l.handler.guid||(l.handler.guid=d.guid));f?r.splice(r.delegateCount++,0,l):r.push(l);c.event.global[p]=!0}a=null}},global:{},remove:function(a,
+b,d,e,f){var g=c.hasData(a)&&c._data(a),k,h,l,p,q,n,m,t,r,s;if(g&&(m=g.events)){b=c.trim(Ma(b||"")).split(" ");for(k=0;k<b.length;k++)if(h=Ka.exec(b[k])||[],l=p=h[1],h=h[2],l){t=c.event.special[l]||{};l=(e?t.delegateType:t.bindType)||l;r=m[l]||[];q=r.length;h=h?RegExp("(^|\\.)"+h.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)if(s=r[n],(f||p===s.origType)&&(!d||d.guid===s.guid)&&(!h||h.test(s.namespace))&&(!e||e===s.selector||"**"===e&&s.selector))r.splice(n--,1),s.selector&&
+r.delegateCount--,t.remove&&t.remove.call(a,s);0===r.length&&q!==r.length&&((!t.teardown||!1===t.teardown.call(a,h))&&c.removeEvent(a,l,g.handle),delete m[l])}else for(l in m)c.event.remove(a,l+b[k],d,e,!0);if(c.isEmptyObject(m)){if(b=g.handle)b.elem=null;c.removeData(a,["events","handle"],!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(a,b,d,e){if(!d||!(3===d.nodeType||8===d.nodeType)){var f=a.type||a,g=[],k,h,l,p,q;if(!La.test(f+c.event.triggered)&&(0<=f.indexOf("!")&&
+(f=f.slice(0,-1),k=!0),0<=f.indexOf(".")&&(g=f.split("."),f=g.shift(),g.sort()),d&&!c.event.customEvent[f]||c.event.global[f]))if(a="object"===typeof a?a[c.expando]?a:new c.Event(f,a):new c.Event(f),a.type=f,a.isTrigger=!0,a.exclusive=k,a.namespace=g.join("."),a.namespace_re=a.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,k=0>f.indexOf(":")?"on"+f:"",d){if(a.result=m,a.target||(a.target=d),b=null!=b?c.makeArray(b):[],b.unshift(a),l=c.event.special[f]||{},!(l.trigger&&!1===l.trigger.apply(d,
+b))){q=[[d,l.bindType||f]];if(!e&&!l.noBubble&&!c.isWindow(d)){p=l.delegateType||f;g=La.test(p+f)?d:d.parentNode;for(h=null;g;g=g.parentNode)q.push([g,p]),h=g;h&&h===d.ownerDocument&&q.push([h.defaultView||h.parentWindow||s,p])}for(h=0;h<q.length&&!a.isPropagationStopped();h++)g=q[h][0],a.type=q[h][1],(p=(c._data(g,"events")||{})[a.type]&&c._data(g,"handle"))&&p.apply(g,b),(p=k&&g[k])&&(c.acceptData(g)&&!1===p.apply(g,b))&&a.preventDefault();a.type=f;if(!e&&!a.isDefaultPrevented()&&(!l._default||
+!1===l._default.apply(d.ownerDocument,b))&&!("click"===f&&c.nodeName(d,"a"))&&c.acceptData(d))if(k&&d[f]&&("focus"!==f&&"blur"!==f||0!==a.target.offsetWidth)&&!c.isWindow(d))(h=d[k])&&(d[k]=null),c.event.triggered=f,d[f](),c.event.triggered=m,h&&(d[k]=h);return a.result}}else for(h in d=c.cache,d)d[h].events&&d[h].events[f]&&c.event.trigger(a,b,d[h].handle.elem,!0)}},dispatch:function(a){a=c.event.fix(a||s.event);var b=(c._data(this,"events")||{})[a.type]||[],d=b.delegateCount,e=[].slice.call(arguments,
+0),f=!a.exclusive&&!a.namespace,g=c.event.special[a.type]||{},k=[],h,l,p,q,n,r,t;e[0]=a;a.delegateTarget=this;if(!(g.preDispatch&&!1===g.preDispatch.call(this,a))){if(d&&!(a.button&&"click"===a.type)){p=c(this);p.context=this.ownerDocument||this;for(l=a.target;l!=this;l=l.parentNode||this)if(!0!==l.disabled){n={};r=[];p[0]=l;for(h=0;h<d;h++){q=b[h];t=q.selector;if(n[t]===m){var x=n,F=t,w;if(q.quick){w=q.quick;var A=l.attributes||{};w=(!w[1]||l.nodeName.toLowerCase()===w[1])&&(!w[2]||(A.id||{}).value===
+w[2])&&(!w[3]||w[3].test((A["class"]||{}).value))}else w=p.is(t);x[F]=w}n[t]&&r.push(q)}r.length&&k.push({elem:l,matches:r})}}b.length>d&&k.push({elem:this,matches:b.slice(d)});for(h=0;h<k.length&&!a.isPropagationStopped();h++){d=k[h];a.currentTarget=d.elem;for(b=0;b<d.matches.length&&!a.isImmediatePropagationStopped();b++)if(q=d.matches[b],f||!a.namespace&&!q.namespace||a.namespace_re&&a.namespace_re.test(q.namespace))a.data=q.data,a.handleObj=q,q=((c.event.special[q.origType]||{}).handle||q.handler).apply(d.elem,
+e),q!==m&&(a.result=q,!1===q&&(a.preventDefault(),a.stopPropagation()))}g.postDispatch&&g.postDispatch.call(this,a);return a.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:["char","charCode","key","keyCode"],filter:function(a,b){null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+filter:function(a,b){var c,e,f=b.button,g=b.fromElement;null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||r,e=c.documentElement,c=c.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0));!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g);!a.which&&f!==m&&(a.which=f&1?1:f&2?3:f&4?2:0);return a}},fix:function(a){if(a[c.expando])return a;var b,
+d,e=a,f=c.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=c.Event(e);for(b=g.length;b;)d=g[--b],a[d]=e[d];a.target||(a.target=e.srcElement||r);3===a.target.nodeType&&(a.target=a.target.parentNode);a.metaKey===m&&(a.metaKey=a.ctrlKey);return f.filter?f.filter(a,e):a},special:{ready:{setup:c.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,d){c.isWindow(this)&&(this.onbeforeunload=d)},teardown:function(a,
+b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,d,e){a=c.extend(new c.Event,d,{type:a,isSimulated:!0,originalEvent:{}});e?c.event.trigger(a,null,b):c.event.dispatch.call(b,a);a.isDefaultPrevented()&&d.preventDefault()}};c.event.handle=c.event.dispatch;c.removeEvent=r.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)};c.Event=function(a,b){if(!(this instanceof c.Event))return new c.Event(a,
+b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||!1===a.returnValue||a.getPreventDefault&&a.getPreventDefault()?x:C):this.type=a;b&&c.extend(this,b);this.timeStamp=a&&a.timeStamp||c.now();this[c.expando]=!0};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=x;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=x;var a=this.originalEvent;a&&(a.stopPropagation&&
+a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=x;this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={delegateType:b,bindType:b,handle:function(a){var e=a.relatedTarget,f=a.handleObj,g;if(!e||e!==this&&!c.contains(this,e))a.type=f.origType,g=f.handler.apply(this,arguments),a.type=b;return g}}});c.support.submitBubbles||
+(c.event.special.submit={setup:function(){if(c.nodeName(this,"form"))return!1;c.event.add(this,"click._submit keypress._submit",function(a){a=a.target;if((a=c.nodeName(a,"input")||c.nodeName(a,"button")?a.form:m)&&!a._submit_attached)c.event.add(a,"submit._submit",function(a){a._submit_bubble=!0}),a._submit_attached=!0})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&c.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(c.nodeName(this,
+"form"))return!1;c.event.remove(this,"._submit")}});c.support.changeBubbles||(c.event.special.change={setup:function(){if(na.test(this.nodeName)){if("checkbox"===this.type||"radio"===this.type)c.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),c.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,c.event.simulate("change",this,a,!0))});return!1}c.event.add(this,"beforeactivate._change",
+function(a){a=a.target;na.test(a.nodeName)&&!a._change_attached&&(c.event.add(a,"change._change",function(a){this.parentNode&&(!a.isSimulated&&!a.isTrigger)&&c.event.simulate("change",this.parentNode,a,!0)}),a._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type)return a.handleObj.handler.apply(this,arguments)},teardown:function(){c.event.remove(this,"._change");return na.test(this.nodeName)}});c.support.focusinBubbles||
+c.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){c.event.simulate(b,a.target,c.event.fix(a),!0)};c.event.special[b]={setup:function(){0===d++&&r.addEventListener(a,e,!0)},teardown:function(){0===--d&&r.removeEventListener(a,e,!0)}}});c.fn.extend({on:function(a,b,d,e,f){var g,k;if("object"===typeof a){"string"!==typeof b&&(d=d||b,b=m);for(k in a)this.on(k,b,d,a[k],f);return this}null==d&&null==e?(e=b,d=b=m):null==e&&("string"===typeof b?(e=d,d=m):(e=d,d=b,b=m));if(!1===
+e)e=C;else if(!e)return this;1===f&&(g=e,e=function(a){c().off(a);return g.apply(this,arguments)},e.guid=g.guid||(g.guid=c.guid++));return this.each(function(){c.event.add(this,a,e,d,b)})},one:function(a,b,c,e){return this.on(a,b,c,e,1)},off:function(a,b,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;c(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if("object"===typeof a){for(e in a)this.off(e,b,a[e]);return this}if(!1===b||"function"===
+typeof b)d=b,b=m;!1===d&&(d=C);return this.each(function(){c.event.remove(this,a,d,b)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,d){c(this.context).on(a,this.selector,b,d);return this},die:function(a,b){c(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,e){return this.on(b,a,c,e)},undelegate:function(a,b,c){return 1==arguments.length?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,
+b,this)})},triggerHandler:function(a,b){if(this[0])return c.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,d=a.guid||c.guid++,e=0,f=function(d){var f=(c._data(this,"lastToggle"+a.guid)||0)%e;c._data(this,"lastToggle"+a.guid,f+1);d.preventDefault();return b[f].apply(this,arguments)||!1};for(f.guid=d;e<b.length;)b[e++].guid=d;return this.click(f)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),
+function(a,b){c.fn[b]=function(a,c){null==c&&(c=a,a=null);return 0<arguments.length?this.on(b,null,a,c):this.trigger(b)};c.attrFn&&(c.attrFn[b]=!0);tb.test(b)&&(c.event.fixHooks[b]=c.event.keyHooks);ub.test(b)&&(c.event.fixHooks[b]=c.event.mouseHooks)});(function(){function a(a,b,c,d,f,g){f=0;for(var k=d.length;f<k;f++){var h=d[f];if(h){for(var l=!1,h=h[a];h;){if(h[e]===c){l=d[h.sizset];break}1===h.nodeType&&!g&&(h[e]=c,h.sizset=f);if(h.nodeName.toLowerCase()===b){l=h;break}h=h[a]}d[f]=l}}}function b(a,
+b,c,d,f,g){f=0;for(var k=d.length;f<k;f++){var h=d[f];if(h){for(var l=!1,h=h[a];h;){if(h[e]===c){l=d[h.sizset];break}if(1===h.nodeType)if(g||(h[e]=c,h.sizset=f),"string"!==typeof b){if(h===b){l=!0;break}}else if(0<n.filter(b,[h]).length){l=h;break}h=h[a]}d[f]=l}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e="sizcache"+(Math.random()+"").replace(".",""),f=0,g=Object.prototype.toString,k=!1,h=!0,l=/\\/g,
+p=/\r\n/g,q=/\W/;[0,0].sort(function(){h=!1;return 0});var n=function(a,b,c,e){c=c||[];var f=b=b||r;if(1!==b.nodeType&&9!==b.nodeType)return[];if(!a||"string"!==typeof a)return c;var h,k,l,p,q,m=!0,s=n.isXML(b),u=[],w=a;do if(d.exec(""),h=d.exec(w))if(w=h[3],u.push(h[1]),h[2]){p=h[3];break}while(h);if(1<u.length&&x.exec(a))if(2===u.length&&t.relative[u[0]])k=B(u[0]+u[1],b,e);else for(k=t.relative[u[0]]?[b]:n(u.shift(),b);u.length;)a=u.shift(),t.relative[a]&&(a+=u.shift()),k=B(a,k,e);else if(!e&&(1<
+u.length&&9===b.nodeType&&!s&&t.match.ID.test(u[0])&&!t.match.ID.test(u[u.length-1]))&&(h=n.find(u.shift(),b,s),b=h.expr?n.filter(h.expr,h.set)[0]:h.set[0]),b){h=e?{expr:u.pop(),set:A(e)}:n.find(u.pop(),1===u.length&&("~"===u[0]||"+"===u[0])&&b.parentNode?b.parentNode:b,s);k=h.expr?n.filter(h.expr,h.set):h.set;for(0<u.length?l=A(k):m=!1;u.length;)h=q=u.pop(),t.relative[q]?h=u.pop():q="",null==h&&(h=b),t.relative[q](l,h,s)}else l=[];l||(l=k);l||n.error(q||a);if("[object Array]"===g.call(l))if(m)if(b&&
+1===b.nodeType)for(a=0;null!=l[a];a++)l[a]&&(!0===l[a]||1===l[a].nodeType&&n.contains(b,l[a]))&&c.push(k[a]);else for(a=0;null!=l[a];a++)l[a]&&1===l[a].nodeType&&c.push(k[a]);else c.push.apply(c,l);else A(l,c);p&&(n(p,f,c,e),n.uniqueSort(c));return c};n.uniqueSort=function(a){if(z&&(k=h,a.sort(z),k))for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1);return a};n.matches=function(a,b){return n(a,null,null,b)};n.matchesSelector=function(a,b){return 0<n(b,null,null,[a]).length};n.find=function(a,
+b,c){var d,e,f,g,h,k;if(!a)return[];e=0;for(f=t.order.length;e<f;e++)if(h=t.order[e],g=t.leftMatch[h].exec(a))if(k=g[1],g.splice(1,1),"\\"!==k.substr(k.length-1)&&(g[1]=(g[1]||"").replace(l,""),d=t.find[h](g,b,c),null!=d)){a=a.replace(t.match[h],"");break}d||(d="undefined"!==typeof b.getElementsByTagName?b.getElementsByTagName("*"):[]);return{set:d,expr:a}};n.filter=function(a,b,c,d){for(var e,f,g,h,k,l,p,q,r=a,u=[],s=b,x=b&&b[0]&&n.isXML(b[0]);a&&b.length;){for(g in t.filter)if(null!=(e=t.leftMatch[g].exec(a))&&
+e[2])if(l=t.filter[g],k=e[1],f=!1,e.splice(1,1),"\\"!==k.substr(k.length-1)){s===u&&(u=[]);if(t.preFilter[g])if(e=t.preFilter[g](e,s,c,u,d,x)){if(!0===e)continue}else f=h=!0;if(e)for(p=0;null!=(k=s[p]);p++)k&&(h=l(k,e,p,s),q=d^h,c&&null!=h?q?f=!0:s[p]=!1:q&&(u.push(k),f=!0));if(h!==m){c||(s=u);a=a.replace(t.match[g],"");if(!f)return[];break}}if(a===r)if(null==f)n.error(a);else break;r=a}return s};n.error=function(a){throw Error("Syntax error, unrecognized expression: "+a);};var s=n.getText=function(a){var b,
+c;b=a.nodeType;var d="";if(b)if(1===b||9===b||11===b){if("string"===typeof a.textContent)return a.textContent;if("string"===typeof a.innerText)return a.innerText.replace(p,"");for(a=a.firstChild;a;a=a.nextSibling)d+=s(a)}else{if(3===b||4===b)return a.nodeValue}else for(b=0;c=a[b];b++)8!==c.nodeType&&(d+=s(c));return d},t=n.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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},
+type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c="string"===typeof b,d=c&&!q.test(b),c=c&&!d;d&&(b=b.toLowerCase());for(var d=0,e=a.length,f;d<e;d++)if(f=a[d]){for(;(f=f.previousSibling)&&1!==f.nodeType;);a[d]=c||f&&f.nodeName.toLowerCase()===b?f||!1:f===b}c&&n.filter(b,a,!0)},">":function(a,b){var c,d="string"===typeof b,e=0,f=a.length;if(d&&!q.test(b))for(b=b.toLowerCase();e<f;e++){if(c=a[e])c=c.parentNode,a[e]=c.nodeName.toLowerCase()===b?c:!1}else{for(;e<f;e++)(c=
+a[e])&&(a[e]=d?c.parentNode:c.parentNode===b);d&&n.filter(b,a,!0)}},"":function(c,d,e){var g,h=f++,k=b;"string"===typeof d&&!q.test(d)&&(g=d=d.toLowerCase(),k=a);k("parentNode",d,h,c,g,e)},"~":function(c,d,e){var g,h=f++,k=b;"string"===typeof d&&!q.test(d)&&(g=d=d.toLowerCase(),k=a);k("previousSibling",d,h,c,g,e)}},find:{ID:function(a,b,c){if("undefined"!==typeof b.getElementById&&!c)return(a=b.getElementById(a[1]))&&a.parentNode?[a]:[]},NAME:function(a,b){if("undefined"!==typeof b.getElementsByName){for(var c=
+[],d=b.getElementsByName(a[1]),e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return 0===c.length?null:c}},TAG:function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(l,"")+" ";if(f)return a;f=0;for(var g;null!=(g=b[f]);f++)g&&(e^(g.className&&g.className.baseVal&&0<=(" "+g.className.baseVal+" ").replace(/[\t\n\r]/g," ").indexOf(a))?c||d.push(g):c&&(b[f]=!1));return!1},ID:function(a){return a[1].replace(l,
+"")},TAG:function(a,b){return a[1].replace(l,"").toLowerCase()},CHILD:function(a){if("nth"===a[1]){a[2]||n.error(a[0]);a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec("even"===a[2]&&"2n"||"odd"===a[2]&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0;a[3]=b[3]-0}else a[2]&&n.error(a[0]);a[0]=f++;return a},ATTR:function(a,b,c,d,e,f){b=a[1]=a[1].replace(l,"");!f&&t.attrMap[b]&&(a[1]=t.attrMap[b]);a[4]=(a[4]||a[5]||"").replace(l,"");"~="===a[2]&&(a[4]=" "+a[4]+
+" ");return a},PSEUDO:function(a,b,c,e,f){if("not"===a[1])if(1<(d.exec(a[3])||"").length||/^\w/.test(a[3]))a[3]=n(a[3],null,null,b);else return a=n.filter(a[3],b,c,1^f),c||e.push.apply(e,a),!1;else if(t.match.POS.test(a[0])||t.match.CHILD.test(a[0]))return!0;return a},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return!1===a.disabled&&"hidden"!==a.type},disabled:function(a){return!0===a.disabled},checked:function(a){return!0===a.checked},selected:function(a){a.parentNode&&
+a.parentNode.selectedIndex;return!0===a.selected},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!n(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"input"===a.nodeName.toLowerCase()&&"text"===c&&(b===c||null===b)},radio:function(a){return"input"===a.nodeName.toLowerCase()&&"radio"===a.type},checkbox:function(a){return"input"===a.nodeName.toLowerCase()&&"checkbox"===
+a.type},file:function(a){return"input"===a.nodeName.toLowerCase()&&"file"===a.type},password:function(a){return"input"===a.nodeName.toLowerCase()&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return("input"===b||"button"===b)&&"submit"===a.type},image:function(a){return"input"===a.nodeName.toLowerCase()&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return("input"===b||"button"===b)&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();
+return"input"===b&&"button"===a.type||"button"===b},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return 0===b},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return 0===b%2},odd:function(a,b){return 1===b%2},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,
+b,c,d){var e=b[1],f=t.filters[e];if(f)return f(a,c,b,d);if("contains"===e)return 0<=(a.textContent||a.innerText||s([a])||"").indexOf(b[3]);if("not"===e){b=b[3];c=0;for(d=b.length;c<d;c++)if(b[c]===a)return!1;return!0}n.error(e)},CHILD:function(a,b){var c,d,f,g,h,k;c=b[1];k=a;switch(c){case "only":case "first":for(;k=k.previousSibling;)if(1===k.nodeType)return!1;if("first"===c)return!0;k=a;case "last":for(;k=k.nextSibling;)if(1===k.nodeType)return!1;return!0;case "nth":c=b[2];d=b[3];if(1===c&&0===
+d)return!0;f=b[0];if((g=a.parentNode)&&(g[e]!==f||!a.nodeIndex)){h=0;for(k=g.firstChild;k;k=k.nextSibling)1===k.nodeType&&(k.nodeIndex=++h);g[e]=f}k=a.nodeIndex-d;return 0===c?0===k:0===k%c&&0<=k/c}},ID:function(a,b){return 1===a.nodeType&&a.getAttribute("id")===b},TAG:function(a,b){return"*"===b&&1===a.nodeType||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return-1<(" "+(a.className&&a.className.baseVal||a.getAttribute("class"))+" ").indexOf(b)},ATTR:function(a,b){var c=b[1],c=
+n.attr?n.attr(a,c):t.attrHandle[c]?t.attrHandle[c](a):null!=a[c]?a[c]:a.getAttribute(c),d=c+"",e=b[2],f=b[4];return null==c?"!="===e:!e&&n.attr?null!=c:"="===e?d===f:"*="===e?0<=d.indexOf(f):"~="===e?0<=(" "+d+" ").indexOf(f):!f?d&&!1!==c:"!="===e?d!==f:"^="===e?0===d.indexOf(f):"$="===e?d.substr(d.length-f.length)===f:"|="===e?d===f||d.substr(0,f.length+1)===f+"-":!1},POS:function(a,b,c,d){var e=t.setFilters[b[2]];if(e)return e(a,c,b,d)}}},x=t.