From e5b86457b416106489f578bfe3cae20d74198e7b Mon Sep 17 00:00:00 2001 From: Christopher Joe Date: Wed, 5 Oct 2016 14:30:19 +1300 Subject: [PATCH] Added react LookupField component API MultiSelectField readonly transformation casts to LookupField instead of ReadonlyField FIX removed jQuery dependency from i18n --- Forms/LookupField.php | 2 + Forms/MultiSelectField.php | 18 +- admin/client/dist/js/bundle.js | 110 +- admin/client/dist/js/vendor.js | 1482 ++++++++--------- admin/client/src/boot/BootInjector.js | 2 + .../src/components/CheckboxSetField/README.md | 2 +- .../src/components/LookupField/LookupField.js | 93 ++ .../src/components/LookupField/README.md | 24 + .../LookupField/tests/LookupField-test.js | 62 + .../src/components/OptionsetField/README.md | 2 +- admin/client/src/i18n.js | 2 +- client/lang/en.js | 3 +- client/lang/src/en.js | 3 +- 13 files changed, 1000 insertions(+), 805 deletions(-) create mode 100644 admin/client/src/components/LookupField/LookupField.js create mode 100644 admin/client/src/components/LookupField/README.md create mode 100644 admin/client/src/components/LookupField/tests/LookupField-test.js diff --git a/Forms/LookupField.php b/Forms/LookupField.php index 262c850c8..5bd162f60 100644 --- a/Forms/LookupField.php +++ b/Forms/LookupField.php @@ -14,6 +14,8 @@ use SilverStripe\Core\Convert; * value. */ class LookupField extends MultiSelectField { + + protected $schemaComponent = 'LookupField'; /** * @var boolean $readonly diff --git a/Forms/MultiSelectField.php b/Forms/MultiSelectField.php index 06c9ae557..6a65fa112 100644 --- a/Forms/MultiSelectField.php +++ b/Forms/MultiSelectField.php @@ -208,21 +208,9 @@ abstract class MultiSelectField extends SelectField { * @return ReadonlyField */ public function performReadonlyTransformation() { - $source = $this->getSource(); - - // Map selected values to titles - $data = array(); - foreach($this->getValueArray() as $value) { - if(array_key_exists($value, $source)) { - $data[] = $source[$value]; - } else { - $data[] = $value; - } - } - $values = implode(', ', $data); - - $field = $this->castedCopy('SilverStripe\\Forms\\ReadonlyField'); - $field->setValue($values); + $field = $this->castedCopy('SilverStripe\\Forms\\LookupField'); + $field->setSource($this->getSource()); + $field->setReadonly(true); return $field; } diff --git a/admin/client/dist/js/bundle.js b/admin/client/dist/js/bundle.js index 2b520a2b3..6dd331ec5 100644 --- a/admin/client/dist/js/bundle.js +++ b/admin/client/dist/js/bundle.js @@ -44,7 +44,7 @@ w["default"].polyfill() var P=function(){function e(){r(this,e),this.fetch=y["default"]}return h(e,[{key:"createEndpointFetcher",value:function t(e){var t=this,n=m({method:"get",payloadFormat:"application/x-www-form-urlencoded", responseFormat:"application/json",payloadSchema:{},defaultData:{}},e),i={json:"application/json",urlencoded:"application/x-www-form-urlencoded"} return["payloadFormat","responseFormat"].forEach(function(e){i[n[e]]&&(n[e]=i[n[e]])}),function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=m({},i,{ -Accept:n.responseFormat,"Content-Type":n.payloadFormat}),o=E["default"].recursive({},n.defaultData,e),a=p(n.payloadSchema,n.url,o,{setFromData:"get"===n.method.toLowerCase()}),s=l(n.payloadFormat,f(n.payloadSchema,o)),u="get"===n.method.toLowerCase()?[a,r]:[a,s,r] +Accept:n.responseFormat,"Content-Type":n.payloadFormat}),o=E["default"].recursive({},n.defaultData,e),a=p(n.payloadSchema,n.url,o,{setFromData:"get"===n.method.toLowerCase()}),s="get"!==n.method.toLowerCase()?l(n.payloadFormat,f(n.payloadSchema,o)):"",u="get"===n.method.toLowerCase()?[a,r]:[a,s,r] return t[n.method.toLowerCase()].apply(t,u).then(c)}}},{key:"get",value:function n(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1] @@ -146,14 +146,14 @@ e._state=void 0,e._result=void 0,e._subscribers=[]}function N(e,t){this._instanc this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&S(this.promise,this._result))):k(this.promise,U())}function U(){ return new Error("Array Methods must be provided an Array")}function L(e){return new N(this,e).promise}function B(e){var t=this return new t(z(e)?function(n,i){for(var r=e.length,o=0;oy?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=l.toASCII(this.hostname)) var H=this.port?":"+this.port:"",$=this.hostname||"" -this.host=$+H,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!_[h])for(var S=0,F=m.length;S1?t-1:0),i=1;i1?t-1:0),i=1;i') @@ -2002,7 +2002,7 @@ var e={},t=(0,l.combineReducers)(h["default"].getAll()),n=[d["default"]],i=f["de var u=o(l.createStore),c=u(t,e) c.dispatch(g.setConfig(f["default"].getAll())),window.ss=window.ss||{},window.ss.store=c var p=new s["default"](c) -p.start(window.location.pathname)}var a=n(126),s=r(a),l=n(28),u=n(148),d=r(u),c=n(69),f=r(c),p=n(149),h=r(p),m=n(150),g=i(m),v=n(152),y=r(v),b=n(154),w=r(b),_=n(155),C=r(_),T=n(156),E=r(T),P=n(157),O=r(P),S=n(159),k=r(S),j=n(147),x=n(160),R=r(x),I=n(175),F=r(I) +p.start(window.location.pathname)}var a=n(126),s=r(a),l=n(28),u=n(148),d=r(u),c=n(69),f=r(c),p=n(149),h=r(p),m=n(150),g=i(m),v=n(152),y=r(v),b=n(154),w=r(b),_=n(155),C=r(_),T=n(156),E=r(T),P=n(157),O=r(P),S=n(159),k=r(S),j=n(147),x=n(160),R=r(x),I=n(176),F=r(I) window.onload=o},function(e,t,n){"use strict" @@ -2111,12 +2111,14 @@ for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}, t["default"]=r},function(e,t,n){"use strict" function i(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}) var o=function(){function e(e,t){for(var n=0;no; return i} W||(O=function ct(){if(this instanceof O)throw TypeError("Symbol is not a constructor!") var t=h(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(Q,n),r(this,I)&&r(this[I],t)&&(this[I][t]=!1),q(this,t,w(1,n))} -return o&&U&&q(z,t,{configurable:!0,set:e}),$(t)},s(O[A],"toString",function dt(){return this._k}),j.f=J,T.f=V,n(237).f=C.f=Z,n(231).f=G,n(230).f=tt,o&&!n(215)&&s(z,"propertyIsEnumerable",G,!0),f.f=function(t){ +return o&&U&&q(z,t,{configurable:!0,set:e}),$(t)},s(O[A],"toString",function dt(){return this._k}),j.f=J,T.f=V,n(238).f=C.f=Z,n(232).f=G,n(231).f=tt,o&&!n(216)&&s(z,"propertyIsEnumerable",G,!0),f.f=function(t){ return $(p(t))}),a(a.G+a.W+a.F*!W,{Symbol:O}) for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)p(et[nt++]) for(var et=E(p.store),nt=0;et.length>nt;)m(et[nt++]) @@ -3136,130 +3136,130 @@ a(a.S+a.F*!W,"Symbol",{"for":function(t){return r(F,t+="")?F[t]:F[t]=O(t)},keyFo throw TypeError(t+" is not a symbol!")},useSetter:function(){U=!0},useSimple:function(){U=!1}}),a(a.S+a.F*!W,"Object",{create:Y,defineProperty:V,defineProperties:X,getOwnPropertyDescriptor:J,getOwnPropertyNames:Z, getOwnPropertySymbols:tt}),M&&a(a.S+a.F*(!W||u(function(){var t=O() return"[null]"!=D([t])||"{}"!=D({a:t})||"{}"!=D(Object(t))})),"JSON",{stringify:function pt(t){if(void 0!==t&&!K(t)){for(var e=[t],n=1,i,r;arguments.length>n;)e.push(arguments[n++]) -return i=e[1],"function"==typeof i&&(r=i),!r&&y(i)||(i=function(t,e){if(r&&(e=r.call(this,t,e)),!K(e))return e}),e[1]=i,D.apply(M,e)}}}),O[A][R]||n(197)(O[A],R,O[A].valueOf),d(O,"Symbol"),d(Math,"Math",!0), +return i=e[1],"function"==typeof i&&(r=i),!r&&y(i)||(i=function(t,e){if(r&&(e=r.call(this,t,e)),!K(e))return e}),e[1]=i,D.apply(M,e)}}}),O[A][R]||n(198)(O[A],R,O[A].valueOf),d(O,"Symbol"),d(Math,"Math",!0), d(i.JSON,"JSON",!0)},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")() "number"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty -t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(194)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{ -return!!t()}catch(e){return!0}}},function(t,e,n){var i=n(191),r=n(196),o=n(197),a=n(205),s=n(207),l="prototype",u=function(t,e,n){var c=t&u.F,d=t&u.G,h=t&u.S,p=t&u.P,f=t&u.B,m=d?i:h?i[e]||(i[e]={}):(i[e]||{})[l],g=d?r:r[e]||(r[e]={}),v=g[l]||(g[l]={}),y,_,b,x +t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(195)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{ +return!!t()}catch(e){return!0}}},function(t,e,n){var i=n(192),r=n(197),o=n(198),a=n(206),s=n(208),l="prototype",u=function(t,e,n){var c=t&u.F,d=t&u.G,h=t&u.S,p=t&u.P,f=t&u.B,m=d?i:h?i[e]||(i[e]={}):(i[e]||{})[l],g=d?r:r[e]||(r[e]={}),v=g[l]||(g[l]={}),y,_,b,x d&&(n=e) for(y in n)_=!c&&m&&void 0!==m[y],b=(_?m:n)[y],x=f&&_?s(b,i):p&&"function"==typeof b?s(Function.call,b):b,m&&a(m,y,b,t&u.U),g[y]!=b&&o(g,y,x),p&&v[y]!=b&&(v[y]=b)} i.core=r,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){var n=t.exports={version:"2.4.0"} -"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(198),r=n(204) -t.exports=n(193)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(199),r=n(201),o=n(203),a=Object.defineProperty -e.f=n(193)?Object.defineProperty:function s(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return a(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!") -return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var i=n(200) +"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(199),r=n(205) +t.exports=n(194)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(200),r=n(202),o=n(204),a=Object.defineProperty +e.f=n(194)?Object.defineProperty:function s(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return a(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!") +return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var i=n(201) t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!") -return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){t.exports=!n(193)&&!n(194)(function(){return 7!=Object.defineProperty(n(202)("div"),"a",{ -get:function(){return 7}}).a})},function(t,e,n){var i=n(200),r=n(191).document,o=i(r)&&i(r.createElement) -t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){var i=n(200) +return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){t.exports=!n(194)&&!n(195)(function(){return 7!=Object.defineProperty(n(203)("div"),"a",{ +get:function(){return 7}}).a})},function(t,e,n){var i=n(201),r=n(192).document,o=i(r)&&i(r.createElement) +t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){var i=n(201) t.exports=function(t,e){if(!i(t))return t var n,r if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r -throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(191),r=n(197),o=n(192),a=n(206)("src"),s="toString",l=Function[s],u=(""+l).split(s) +throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(192),r=n(198),o=n(193),a=n(207)("src"),s="toString",l=Function[s],u=(""+l).split(s) -n(196).inspectSource=function(t){return l.call(t)},(t.exports=function(t,e,n,s){var l="function"==typeof n +n(197).inspectSource=function(t){return l.call(t)},(t.exports=function(t,e,n,s){var l="function"==typeof n l&&(o(n,"name")||r(n,"name",e)),t[e]!==n&&(l&&(o(n,a)||r(n,a,t[e]?""+t[e]:u.join(String(e)))),t===i?t[e]=n:s?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,s,function c(){return"function"==typeof this&&this[a]||l.call(this) })},function(t,e){var n=0,i=Math.random() -t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){var i=n(208) +t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){var i=n(209) t.exports=function(t,e,n){if(i(t),void 0===e)return t switch(n){case 1:return function(n){return t.call(e,n)} case 2:return function(n,i){return t.call(e,n,i)} case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!") -return t}},function(t,e,n){var i=n(206)("meta"),r=n(200),o=n(192),a=n(198).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(194)(function(){return l(Object.preventExtensions({}))}),c=function(t){ +return t}},function(t,e,n){var i=n(207)("meta"),r=n(201),o=n(193),a=n(199).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(195)(function(){return l(Object.preventExtensions({}))}),c=function(t){ a(t,i,{value:{i:"O"+ ++s,w:{}}})},d=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t if(!o(t,i)){if(!l(t))return"F" if(!e)return"E" c(t)}return t[i].i},h=function(t,e){if(!o(t,i)){if(!l(t))return!0 if(!e)return!1 -c(t)}return t[i].w},p=function(t){return u&&f.NEED&&l(t)&&!o(t,i)&&c(t),t},f=t.exports={KEY:i,NEED:!1,fastKey:d,getWeak:h,onFreeze:p}},function(t,e,n){var i=n(191),r="__core-js_shared__",o=i[r]||(i[r]={}) +c(t)}return t[i].w},p=function(t){return u&&f.NEED&&l(t)&&!o(t,i)&&c(t),t},f=t.exports={KEY:i,NEED:!1,fastKey:d,getWeak:h,onFreeze:p}},function(t,e,n){var i=n(192),r="__core-js_shared__",o=i[r]||(i[r]={}) -t.exports=function(t){return o[t]||(o[t]={})}},function(t,e,n){var i=n(198).f,r=n(192),o=n(212)("toStringTag") -t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(210)("wks"),r=n(206),o=n(191).Symbol,a="function"==typeof o,s=t.exports=function(t){return i[t]||(i[t]=a&&o[t]||(a?o:r)("Symbol."+t)) +t.exports=function(t){return o[t]||(o[t]={})}},function(t,e,n){var i=n(199).f,r=n(193),o=n(213)("toStringTag") +t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(211)("wks"),r=n(207),o=n(192).Symbol,a="function"==typeof o,s=t.exports=function(t){return i[t]||(i[t]=a&&o[t]||(a?o:r)("Symbol."+t)) } -s.store=i},function(t,e,n){e.f=n(212)},function(t,e,n){var i=n(191),r=n(196),o=n(215),a=n(213),s=n(198).f +s.store=i},function(t,e,n){e.f=n(213)},function(t,e,n){var i=n(192),r=n(197),o=n(216),a=n(214),s=n(199).f t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{}) -"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},function(t,e){t.exports=!1},function(t,e,n){var i=n(217),r=n(219) -t.exports=function(t,e){for(var n=r(t),o=i(n),a=o.length,s=0,l;a>s;)if(n[l=o[s++]]===e)return l}},function(t,e,n){var i=n(218),r=n(228) -t.exports=Object.keys||function o(t){return i(t,r)}},function(t,e,n){var i=n(192),r=n(219),o=n(223)(!1),a=n(227)("IE_PROTO") +"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},function(t,e){t.exports=!1},function(t,e,n){var i=n(218),r=n(220) +t.exports=function(t,e){for(var n=r(t),o=i(n),a=o.length,s=0,l;a>s;)if(n[l=o[s++]]===e)return l}},function(t,e,n){var i=n(219),r=n(229) +t.exports=Object.keys||function o(t){return i(t,r)}},function(t,e,n){var i=n(193),r=n(220),o=n(224)(!1),a=n(228)("IE_PROTO") t.exports=function(t,e){var n=r(t),s=0,l=[],u for(u in n)u!=a&&i(n,u)&&l.push(u) for(;e.length>s;)i(n,u=e[s++])&&(~o(l,u)||l.push(u)) -return l}},function(t,e,n){var i=n(220),r=n(222) -t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(221) +return l}},function(t,e,n){var i=n(221),r=n(223) +t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(222) t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t) -return t}},function(t,e,n){var i=n(219),r=n(224),o=n(226) +return t}},function(t,e,n){var i=n(220),r=n(225),o=n(227) t.exports=function(t){return function(e,n,a){var s=i(e),l=r(s.length),u=o(a,l),c if(t&&n!=n){for(;l>u;)if(c=s[u++],c!=c)return!0}else for(;l>u;u++)if((t||u in s)&&s[u]===n)return t||u||0 -return!t&&-1}}},function(t,e,n){var i=n(225),r=Math.min +return!t&&-1}}},function(t,e,n){var i=n(226),r=Math.min t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e){var n=Math.ceil,i=Math.floor -t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(225),r=Math.max,o=Math.min -t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(210)("keys"),r=n(206) -t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(217),r=n(230),o=n(231) +t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(226),r=Math.max,o=Math.min +t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(211)("keys"),r=n(207) +t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(218),r=n(231),o=n(232) t.exports=function(t){var e=i(t),n=r.f if(n)for(var a=n(t),s=o.f,l=0,u;a.length>l;)s.call(t,u=a[l++])&&e.push(u) -return e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(221) -t.exports=Array.isArray||function r(t){return"Array"==i(t)}},function(t,e,n){var i=n(199),r=n(234),o=n(228),a=n(227)("IE_PROTO"),s=function(){},l="prototype",u=function(){var t=n(202)("iframe"),e=o.length,i="<",r=">",a +return e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(222) +t.exports=Array.isArray||function r(t){return"Array"==i(t)}},function(t,e,n){var i=n(200),r=n(235),o=n(229),a=n(228)("IE_PROTO"),s=function(){},l="prototype",u=function(){var t=n(203)("iframe"),e=o.length,i="<",r=">",a -for(t.style.display="none",n(235).appendChild(t),t.src="javascript:",a=t.contentWindow.document,a.open(),a.write(i+"script"+r+"document.F=Object"+i+"/script"+r),a.close(),u=a.F;e--;)delete u[l][o[e]] +for(t.style.display="none",n(236).appendChild(t),t.src="javascript:",a=t.contentWindow.document,a.open(),a.write(i+"script"+r+"document.F=Object"+i+"/script"+r),a.close(),u=a.F;e--;)delete u[l][o[e]] return u()} t.exports=Object.create||function c(t,e){var n -return null!==t?(s[l]=i(t),n=new s,s[l]=null,n[a]=t):n=u(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(198),r=n(199),o=n(217) -t.exports=n(193)?Object.defineProperties:function a(t,e){r(t) +return null!==t?(s[l]=i(t),n=new s,s[l]=null,n[a]=t):n=u(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(199),r=n(200),o=n(218) +t.exports=n(194)?Object.defineProperties:function a(t,e){r(t) for(var n=o(e),a=n.length,s=0,l;a>s;)i.f(t,l=n[s++],e[l]) -return t}},function(t,e,n){t.exports=n(191).document&&document.documentElement},function(t,e,n){var i=n(219),r=n(237).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){ +return t}},function(t,e,n){t.exports=n(192).document&&document.documentElement},function(t,e,n){var i=n(220),r=n(238).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){ try{return r(t)}catch(e){return a.slice()}} -t.exports.f=function l(t){return a&&"[object Window]"==o.call(t)?s(t):r(i(t))}},function(t,e,n){var i=n(218),r=n(228).concat("length","prototype") -e.f=Object.getOwnPropertyNames||function o(t){return i(t,r)}},function(t,e,n){var i=n(231),r=n(204),o=n(219),a=n(203),s=n(192),l=n(201),u=Object.getOwnPropertyDescriptor -e.f=n(193)?u:function c(t,e){if(t=o(t),e=a(e,!0),l)try{return u(t,e)}catch(n){}if(s(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(195) -i(i.S,"Object",{create:n(233)})},function(t,e,n){var i=n(195) -i(i.S+i.F*!n(193),"Object",{defineProperty:n(198).f})},function(t,e,n){var i=n(195) -i(i.S+i.F*!n(193),"Object",{defineProperties:n(234)})},function(t,e,n){var i=n(219),r=n(238).f -n(243)("getOwnPropertyDescriptor",function(){return function t(e,n){return r(i(e),n)}})},function(t,e,n){var i=n(195),r=n(196),o=n(194) +t.exports.f=function l(t){return a&&"[object Window]"==o.call(t)?s(t):r(i(t))}},function(t,e,n){var i=n(219),r=n(229).concat("length","prototype") +e.f=Object.getOwnPropertyNames||function o(t){return i(t,r)}},function(t,e,n){var i=n(232),r=n(205),o=n(220),a=n(204),s=n(193),l=n(202),u=Object.getOwnPropertyDescriptor +e.f=n(194)?u:function c(t,e){if(t=o(t),e=a(e,!0),l)try{return u(t,e)}catch(n){}if(s(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(196) +i(i.S,"Object",{create:n(234)})},function(t,e,n){var i=n(196) +i(i.S+i.F*!n(194),"Object",{defineProperty:n(199).f})},function(t,e,n){var i=n(196) +i(i.S+i.F*!n(194),"Object",{defineProperties:n(235)})},function(t,e,n){var i=n(220),r=n(239).f +n(244)("getOwnPropertyDescriptor",function(){return function t(e,n){return r(i(e),n)}})},function(t,e,n){var i=n(196),r=n(197),o=n(195) t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],a={} -a[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",a)}},function(t,e,n){var i=n(245),r=n(246) -n(243)("getPrototypeOf",function(){return function t(e){return r(i(e))}})},function(t,e,n){var i=n(222) -t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(192),r=n(245),o=n(227)("IE_PROTO"),a=Object.prototype +a[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",a)}},function(t,e,n){var i=n(246),r=n(247) +n(244)("getPrototypeOf",function(){return function t(e){return r(i(e))}})},function(t,e,n){var i=n(223) +t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(193),r=n(246),o=n(228)("IE_PROTO"),a=Object.prototype t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){ -var i=n(245),r=n(217) -n(243)("keys",function(){return function t(e){return r(i(e))}})},function(t,e,n){n(243)("getOwnPropertyNames",function(){return n(236).f})},function(t,e,n){var i=n(200),r=n(209).onFreeze -n(243)("freeze",function(t){return function e(n){return t&&i(n)?t(r(n)):n}})},function(t,e,n){var i=n(200),r=n(209).onFreeze -n(243)("seal",function(t){return function e(n){return t&&i(n)?t(r(n)):n}})},function(t,e,n){var i=n(200),r=n(209).onFreeze -n(243)("preventExtensions",function(t){return function e(n){return t&&i(n)?t(r(n)):n}})},function(t,e,n){var i=n(200) -n(243)("isFrozen",function(t){return function e(n){return!i(n)||!!t&&t(n)}})},function(t,e,n){var i=n(200) -n(243)("isSealed",function(t){return function e(n){return!i(n)||!!t&&t(n)}})},function(t,e,n){var i=n(200) -n(243)("isExtensible",function(t){return function e(n){return!!i(n)&&(!t||t(n))}})},function(t,e,n){var i=n(195) -i(i.S+i.F,"Object",{assign:n(256)})},function(t,e,n){"use strict" -var i=n(217),r=n(230),o=n(231),a=n(245),s=n(220),l=Object.assign -t.exports=!l||n(194)(function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst" +var i=n(246),r=n(218) +n(244)("keys",function(){return function t(e){return r(i(e))}})},function(t,e,n){n(244)("getOwnPropertyNames",function(){return n(237).f})},function(t,e,n){var i=n(201),r=n(210).onFreeze +n(244)("freeze",function(t){return function e(n){return t&&i(n)?t(r(n)):n}})},function(t,e,n){var i=n(201),r=n(210).onFreeze +n(244)("seal",function(t){return function e(n){return t&&i(n)?t(r(n)):n}})},function(t,e,n){var i=n(201),r=n(210).onFreeze +n(244)("preventExtensions",function(t){return function e(n){return t&&i(n)?t(r(n)):n}})},function(t,e,n){var i=n(201) +n(244)("isFrozen",function(t){return function e(n){return!i(n)||!!t&&t(n)}})},function(t,e,n){var i=n(201) +n(244)("isSealed",function(t){return function e(n){return!i(n)||!!t&&t(n)}})},function(t,e,n){var i=n(201) +n(244)("isExtensible",function(t){return function e(n){return!!i(n)&&(!t||t(n))}})},function(t,e,n){var i=n(196) +i(i.S+i.F,"Object",{assign:n(257)})},function(t,e,n){"use strict" +var i=n(218),r=n(231),o=n(232),a=n(246),s=n(221),l=Object.assign +t.exports=!l||n(195)(function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst" return t[n]=7,i.split("").forEach(function(t){e[t]=t}),7!=l({},t)[n]||Object.keys(l({},e)).join("")!=i})?function u(t,e){for(var n=a(t),l=arguments.length,u=1,c=r.f,d=o.f;l>u;)for(var h=s(arguments[u++]),p=c?i(h).concat(c(h)):i(h),f=p.length,m=0,g;f>m;)d.call(h,g=p[m++])&&(n[g]=h[g]) -return n}:l},function(t,e,n){var i=n(195) -i(i.S,"Object",{is:n(258)})},function(t,e){t.exports=Object.is||function n(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},function(t,e,n){var i=n(195) -i(i.S,"Object",{setPrototypeOf:n(260).set})},function(t,e,n){var i=n(200),r=n(199),o=function(t,e){if(r(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")} -t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n(207)(Function.call,n(238).f(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(r){e=!0}return function a(t,n){ +return n}:l},function(t,e,n){var i=n(196) +i(i.S,"Object",{is:n(259)})},function(t,e){t.exports=Object.is||function n(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},function(t,e,n){var i=n(196) +i(i.S,"Object",{setPrototypeOf:n(261).set})},function(t,e,n){var i=n(201),r=n(200),o=function(t,e){if(r(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")} +t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,i){try{i=n(208)(Function.call,n(239).f(Object.prototype,"__proto__").set,2),i(t,[]),e=!(t instanceof Array)}catch(r){e=!0}return function a(t,n){ return o(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){"use strict" -var i=n(262),r={} -r[n(212)("toStringTag")]="z",r+""!="[object z]"&&n(205)(Object.prototype,"toString",function o(){return"[object "+i(this)+"]"},!0)},function(t,e,n){var i=n(221),r=n(212)("toStringTag"),o="Arguments"==i(function(){ +var i=n(263),r={} +r[n(213)("toStringTag")]="z",r+""!="[object z]"&&n(206)(Object.prototype,"toString",function o(){return"[object "+i(this)+"]"},!0)},function(t,e,n){var i=n(222),r=n(213)("toStringTag"),o="Arguments"==i(function(){ return arguments}()),a=function(t,e){try{return t[e]}catch(n){}} t.exports=function(t){var e,n,s -return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),r))?n:o?i(e):"Object"==(s=i(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,n){var i=n(195) -i(i.P,"Function",{bind:n(264)})},function(t,e,n){"use strict" -var i=n(208),r=n(200),o=n(265),a=[].slice,s={},l=function(t,e,n){if(!(e in s)){for(var i=[],r=0;r>>0||(a.test(n)?16:10))}:i},function(t,e,n){var i=n(195),r=n(222),o=n(194),a=n(271),s="["+a+"]",l="​…",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),d=function(t,e,n){var r={},s=o(function(){return!!a[t]()||l[t]()!=l +return i(n,e>>>0||(a.test(n)?16:10))}:i},function(t,e,n){var i=n(196),r=n(223),o=n(195),a=n(272),s="["+a+"]",l="​…",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),d=function(t,e,n){var r={},s=o(function(){return!!a[t]()||l[t]()!=l }),u=r[t]=s?e(h):a[t] n&&(r[n]=u),i(i.P+i.F*s,"String",r)},h=d.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t} -t.exports=d},function(t,e){t.exports="\t\n\x0B\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var i=n(195),r=n(273) -i(i.G+i.F*(parseFloat!=r),{parseFloat:r})},function(t,e,n){var i=n(191).parseFloat,r=n(270).trim -t.exports=1/i(n(271)+"-0")!==-(1/0)?function o(t){var e=r(String(t),3),n=i(e) +t.exports=d},function(t,e){t.exports="\t\n\x0B\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var i=n(196),r=n(274) +i(i.G+i.F*(parseFloat!=r),{parseFloat:r})},function(t,e,n){var i=n(192).parseFloat,r=n(271).trim +t.exports=1/i(n(272)+"-0")!==-(1/0)?function o(t){var e=r(String(t),3),n=i(e) return 0===n&&"-"==e.charAt(0)?-0:n}:i},function(t,e,n){"use strict" -var i=n(191),r=n(192),o=n(221),a=n(275),s=n(203),l=n(194),u=n(237).f,c=n(238).f,d=n(198).f,h=n(270).trim,p="Number",f=i[p],m=f,g=f.prototype,v=o(n(233)(g))==p,y="trim"in String.prototype,_=function(t){ +var i=n(192),r=n(193),o=n(222),a=n(276),s=n(204),l=n(195),u=n(238).f,c=n(239).f,d=n(199).f,h=n(271).trim,p="Number",f=i[p],m=f,g=f.prototype,v=o(n(234)(g))==p,y="trim"in String.prototype,_=function(t){ var e=s(t,!1) if("string"==typeof e&&e.length>2){e=y?e.trim():h(e,3) var n=e.charCodeAt(0),i,r,o @@ -3299,19 +3299,19 @@ default:return+e}for(var a=e.slice(2),l=0,u=a.length,c;lx;x++)r(m,w=b[x])&&!r(f,w)&&d(f,w,c(m,w)) +for(var b=n(194)?u(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),x=0,w;b.length>x;x++)r(m,w=b[x])&&!r(f,w)&&d(f,w,c(m,w)) -f.prototype=g,g.constructor=f,n(205)(i,p,f)}},function(t,e,n){var i=n(200),r=n(260).set +f.prototype=g,g.constructor=f,n(206)(i,p,f)}},function(t,e,n){var i=n(201),r=n(261).set t.exports=function(t,e,n){var o,a=e.constructor return a!==n&&"function"==typeof a&&(o=a.prototype)!==n.prototype&&i(o)&&r&&r(t,o),t}},function(t,e,n){"use strict" -var i=n(195),r=n(225),o=n(277),a=n(278),s=1..toFixed,l=Math.floor,u=[0,0,0,0,0,0],c="Number.toFixed: incorrect invocation!",d="0",h=function(t,e){for(var n=-1,i=e;++n<6;)i+=t*u[n],u[n]=i%1e7,i=l(i/1e7) +var i=n(196),r=n(226),o=n(278),a=n(279),s=1..toFixed,l=Math.floor,u=[0,0,0,0,0,0],c="Number.toFixed: incorrect invocation!",d="0",h=function(t,e){for(var n=-1,i=e;++n<6;)i+=t*u[n],u[n]=i%1e7,i=l(i/1e7) },p=function(t){for(var e=6,n=0;--e>=0;)n+=u[e],u[e]=l(n/t),n=n%t*1e7},f=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==u[t]){var n=String(u[t]) e=""===e?n:e+a.call(d,7-n.length)+n}return e},m=function(t,e,n){return 0===e?n:e%2===1?m(t,e-1,n*t):m(t*t,e/2,n)},g=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096 for(;n>=2;)e+=1,n/=2 return e} -i(i.P+i.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(194)(function(){s.call({})})),"Number",{toFixed:function v(t){ +i(i.P+i.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(195)(function(){s.call({})})),"Number",{toFixed:function v(t){ var e=o(this,c),n=r(t),i="",s=d,l,u,v,y if(n<0||n>20)throw RangeError(c) if(e!=e)return"NaN" @@ -3319,66 +3319,66 @@ if(e<=-1e21||e>=1e21)return String(e) if(e<0&&(i="-",e=-e),e>1e-21)if(l=g(e*m(2,69,1))-69,u=l<0?e*m(2,-l,1):e/m(2,l,1),u*=4503599627370496,l=52-l,l>0){for(h(0,u),v=n;v>=7;)h(1e7,0),v-=7 for(h(m(10,v,1),0),v=l-1;v>=23;)p(1<<23),v-=23 p(1<0?(y=s.length,s=i+(y<=n?"0."+a.call(d,n-y)+s:s.slice(0,y-n)+"."+s.slice(y-n))):s=i+s,s}})},function(t,e,n){var i=n(221) +return n>0?(y=s.length,s=i+(y<=n?"0."+a.call(d,n-y)+s:s.slice(0,y-n)+"."+s.slice(y-n))):s=i+s,s}})},function(t,e,n){var i=n(222) t.exports=function(t,e){if("number"!=typeof t&&"Number"!=i(t))throw TypeError(e) return+t}},function(t,e,n){"use strict" -var i=n(225),r=n(222) +var i=n(226),r=n(223) t.exports=function o(t){var e=String(r(this)),n="",o=i(t) if(o<0||o==1/0)throw RangeError("Count can't be negative") for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e) return n}},function(t,e,n){"use strict" -var i=n(195),r=n(194),o=n(277),a=1..toPrecision +var i=n(196),r=n(195),o=n(278),a=1..toPrecision i(i.P+i.F*(r(function(){return"1"!==a.call(1,void 0)})||!r(function(){a.call({})})),"Number",{toPrecision:function s(t){var e=o(this,"Number#toPrecision: incorrect invocation!") -return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var i=n(195) -i(i.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var i=n(195),r=n(191).isFinite -i(i.S,"Number",{isFinite:function o(t){return"number"==typeof t&&r(t)}})},function(t,e,n){var i=n(195) -i(i.S,"Number",{isInteger:n(283)})},function(t,e,n){var i=n(200),r=Math.floor -t.exports=function o(t){return!i(t)&&isFinite(t)&&r(t)===t}},function(t,e,n){var i=n(195) -i(i.S,"Number",{isNaN:function r(t){return t!=t}})},function(t,e,n){var i=n(195),r=n(283),o=Math.abs -i(i.S,"Number",{isSafeInteger:function a(t){return r(t)&&o(t)<=9007199254740991}})},function(t,e,n){var i=n(195) -i(i.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var i=n(195) -i(i.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var i=n(195),r=n(273) -i(i.S+i.F*(Number.parseFloat!=r),"Number",{parseFloat:r})},function(t,e,n){var i=n(195),r=n(269) -i(i.S+i.F*(Number.parseInt!=r),"Number",{parseInt:r})},function(t,e,n){var i=n(195),r=n(291),o=Math.sqrt,a=Math.acosh +return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var i=n(196) +i(i.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var i=n(196),r=n(192).isFinite +i(i.S,"Number",{isFinite:function o(t){return"number"==typeof t&&r(t)}})},function(t,e,n){var i=n(196) +i(i.S,"Number",{isInteger:n(284)})},function(t,e,n){var i=n(201),r=Math.floor +t.exports=function o(t){return!i(t)&&isFinite(t)&&r(t)===t}},function(t,e,n){var i=n(196) +i(i.S,"Number",{isNaN:function r(t){return t!=t}})},function(t,e,n){var i=n(196),r=n(284),o=Math.abs +i(i.S,"Number",{isSafeInteger:function a(t){return r(t)&&o(t)<=9007199254740991}})},function(t,e,n){var i=n(196) +i(i.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var i=n(196) +i(i.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var i=n(196),r=n(274) +i(i.S+i.F*(Number.parseFloat!=r),"Number",{parseFloat:r})},function(t,e,n){var i=n(196),r=n(270) +i(i.S+i.F*(Number.parseInt!=r),"Number",{parseInt:r})},function(t,e,n){var i=n(196),r=n(292),o=Math.sqrt,a=Math.acosh i(i.S+i.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function s(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:r(t-1+o(t-1)*o(t+1))}})},function(t,e){t.exports=Math.log1p||function n(t){ -return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){function i(t){return isFinite(t=+t)&&0!=t?t<0?-i(-t):Math.log(t+Math.sqrt(t*t+1)):t}var r=n(195),o=Math.asinh -r(r.S+r.F*!(o&&1/o(0)>0),"Math",{asinh:i})},function(t,e,n){var i=n(195),r=Math.atanh -i(i.S+i.F*!(r&&1/r(-0)<0),"Math",{atanh:function o(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var i=n(195),r=n(295) -i(i.S,"Math",{cbrt:function o(t){return r(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e){t.exports=Math.sign||function n(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,n){var i=n(195) -i(i.S,"Math",{clz32:function r(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var i=n(195),r=Math.exp -i(i.S,"Math",{cosh:function o(t){return(r(t=+t)+r(-t))/2}})},function(t,e,n){var i=n(195),r=n(299) +return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){function i(t){return isFinite(t=+t)&&0!=t?t<0?-i(-t):Math.log(t+Math.sqrt(t*t+1)):t}var r=n(196),o=Math.asinh +r(r.S+r.F*!(o&&1/o(0)>0),"Math",{asinh:i})},function(t,e,n){var i=n(196),r=Math.atanh +i(i.S+i.F*!(r&&1/r(-0)<0),"Math",{atanh:function o(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var i=n(196),r=n(296) +i(i.S,"Math",{cbrt:function o(t){return r(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e){t.exports=Math.sign||function n(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,n){var i=n(196) +i(i.S,"Math",{clz32:function r(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var i=n(196),r=Math.exp +i(i.S,"Math",{cosh:function o(t){return(r(t=+t)+r(-t))/2}})},function(t,e,n){var i=n(196),r=n(300) i(i.S+i.F*(r!=Math.expm1),"Math",{expm1:r})},function(t,e){var n=Math.expm1 -t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||n(-2e-17)!=-2e-17?function i(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e,n){var i=n(195),r=n(295),o=Math.pow,a=o(2,-52),s=o(2,-23),l=o(2,127)*(2-s),u=o(2,-126),c=function(t){ +t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||n(-2e-17)!=-2e-17?function i(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e,n){var i=n(196),r=n(296),o=Math.pow,a=o(2,-52),s=o(2,-23),l=o(2,127)*(2-s),u=o(2,-126),c=function(t){ return t+1/a-1/a} i(i.S,"Math",{fround:function d(t){var e=Math.abs(t),n=r(t),i,o -return el||o!=o?n*(1/0):n*o)}})},function(t,e,n){var i=n(195),r=Math.abs +return el||o!=o?n*(1/0):n*o)}})},function(t,e,n){var i=n(196),r=Math.abs i(i.S,"Math",{hypot:function o(t,e){for(var n=0,i=0,o=arguments.length,a=0,s,l;i0?(l=s/a,n+=l*l):n+=s -return a===1/0?1/0:a*Math.sqrt(n)}})},function(t,e,n){var i=n(195),r=Math.imul -i(i.S+i.F*n(194)(function(){return r(4294967295,5)!=-5||2!=r.length}),"Math",{imul:function o(t,e){var n=65535,i=+t,r=+e,o=n&i,a=n&r -return 0|o*a+((n&i>>>16)*a+o*(n&r>>>16)<<16>>>0)}})},function(t,e,n){var i=n(195) -i(i.S,"Math",{log10:function r(t){return Math.log(t)/Math.LN10}})},function(t,e,n){var i=n(195) -i(i.S,"Math",{log1p:n(291)})},function(t,e,n){var i=n(195) -i(i.S,"Math",{log2:function r(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var i=n(195) -i(i.S,"Math",{sign:n(295)})},function(t,e,n){var i=n(195),r=n(299),o=Math.exp -i(i.S+i.F*n(194)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function a(t){return Math.abs(t=+t)<1?(r(t)-r(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},function(t,e,n){var i=n(195),r=n(299),o=Math.exp +return a===1/0?1/0:a*Math.sqrt(n)}})},function(t,e,n){var i=n(196),r=Math.imul +i(i.S+i.F*n(195)(function(){return r(4294967295,5)!=-5||2!=r.length}),"Math",{imul:function o(t,e){var n=65535,i=+t,r=+e,o=n&i,a=n&r +return 0|o*a+((n&i>>>16)*a+o*(n&r>>>16)<<16>>>0)}})},function(t,e,n){var i=n(196) +i(i.S,"Math",{log10:function r(t){return Math.log(t)/Math.LN10}})},function(t,e,n){var i=n(196) +i(i.S,"Math",{log1p:n(292)})},function(t,e,n){var i=n(196) +i(i.S,"Math",{log2:function r(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var i=n(196) +i(i.S,"Math",{sign:n(296)})},function(t,e,n){var i=n(196),r=n(300),o=Math.exp +i(i.S+i.F*n(195)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function a(t){return Math.abs(t=+t)<1?(r(t)-r(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},function(t,e,n){var i=n(196),r=n(300),o=Math.exp i(i.S,"Math",{tanh:function a(t){var e=r(t=+t),n=r(-t) -return e==1/0?1:n==1/0?-1:(e-n)/(o(t)+o(-t))}})},function(t,e,n){var i=n(195) -i(i.S,"Math",{trunc:function r(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var i=n(195),r=n(226),o=String.fromCharCode,a=String.fromCodePoint +return e==1/0?1:n==1/0?-1:(e-n)/(o(t)+o(-t))}})},function(t,e,n){var i=n(196) +i(i.S,"Math",{trunc:function r(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var i=n(196),r=n(227),o=String.fromCharCode,a=String.fromCodePoint i(i.S+i.F*(!!a&&1!=a.length),"String",{fromCodePoint:function s(t){for(var e=[],n=arguments.length,i=0,a;n>i;){if(a=+arguments[i++],r(a,1114111)!==a)throw RangeError(a+" is not a valid code point") -e.push(a<65536?o(a):o(((a-=65536)>>10)+55296,a%1024+56320))}return e.join("")}})},function(t,e,n){var i=n(195),r=n(219),o=n(224) +e.push(a<65536?o(a):o(((a-=65536)>>10)+55296,a%1024+56320))}return e.join("")}})},function(t,e,n){var i=n(196),r=n(220),o=n(225) i(i.S,"String",{raw:function a(t){for(var e=r(t.raw),n=o(e.length),i=arguments.length,a=[],s=0;n>s;)a.push(String(e[s++])),s=t.length?{value:void 0,done:!0}:(n=i(t,e),this._i+=n.length,{value:n,done:!1})})},function(t,e,n){var i=n(225),r=n(222) +n(271)("trim",function(t){return function e(){return t(this,3)}})},function(t,e,n){"use strict" +var i=n(315)(!0) +n(316)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t=this._t,e=this._i,n +return e>=t.length?{value:void 0,done:!0}:(n=i(t,e),this._i+=n.length,{value:n,done:!1})})},function(t,e,n){var i=n(226),r=n(223) t.exports=function(t){return function(e,n){var o=String(r(e)),a=i(n),s=o.length,l,u return a<0||a>=s?t?"":void 0:(l=o.charCodeAt(a),l<55296||l>56319||a+1===s||(u=o.charCodeAt(a+1))<56320||u>57343?t?o.charAt(a):l:t?o.slice(a,a+2):(l-55296<<10)+(u-56320)+65536)}}},function(t,e,n){"use strict" -var i=n(215),r=n(195),o=n(205),a=n(197),s=n(192),l=n(316),u=n(317),c=n(211),d=n(246),h=n(212)("iterator"),p=!([].keys&&"next"in[].keys()),f="@@iterator",m="keys",g="values",v=function(){return this} +var i=n(216),r=n(196),o=n(206),a=n(198),s=n(193),l=n(317),u=n(318),c=n(212),d=n(247),h=n(213)("iterator"),p=!([].keys&&"next"in[].keys()),f="@@iterator",m="keys",g="values",v=function(){return this} t.exports=function(t,e,n,y,_,b,x){u(n,e,y) var w=function(t){if(!p&&t in T)return T[t] switch(t){case m:return function e(){return new n(this,t)} @@ -3389,173 +3389,173 @@ if(N&&(D=d(N.call(new t)),D!==Object.prototype&&(c(D,k,!0),i||s(D,h)||a(D,h,v))) keys:b?S:w(m),entries:P},x)for(M in O)M in T||o(T,M,O[M]) else r(r.P+r.F*(p||j),e,O) return O}},function(t,e){t.exports={}},function(t,e,n){"use strict" -var i=n(233),r=n(204),o=n(211),a={} -n(197)(a,n(212)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(a,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){"use strict" -var i=n(195),r=n(314)(!1) +var i=n(234),r=n(205),o=n(212),a={} +n(198)(a,n(213)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(a,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){"use strict" +var i=n(196),r=n(315)(!1) i(i.P,"String",{codePointAt:function o(t){return r(this,t)}})},function(t,e,n){"use strict" -var i=n(195),r=n(224),o=n(320),a="endsWith",s=""[a] -i(i.P+i.F*n(322)(a),"String",{endsWith:function l(t){var e=o(this,t,a),n=arguments.length>1?arguments[1]:void 0,i=r(e.length),l=void 0===n?i:Math.min(r(n),i),u=String(t) -return s?s.call(e,u,l):e.slice(l-u.length,l)===u}})},function(t,e,n){var i=n(321),r=n(222) +var i=n(196),r=n(225),o=n(321),a="endsWith",s=""[a] +i(i.P+i.F*n(323)(a),"String",{endsWith:function l(t){var e=o(this,t,a),n=arguments.length>1?arguments[1]:void 0,i=r(e.length),l=void 0===n?i:Math.min(r(n),i),u=String(t) +return s?s.call(e,u,l):e.slice(l-u.length,l)===u}})},function(t,e,n){var i=n(322),r=n(223) t.exports=function(t,e,n){if(i(e))throw TypeError("String#"+n+" doesn't accept regex!") -return String(r(t))}},function(t,e,n){var i=n(200),r=n(221),o=n(212)("match") +return String(r(t))}},function(t,e,n){var i=n(201),r=n(222),o=n(213)("match") t.exports=function(t){var e -return i(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==r(t))}},function(t,e,n){var i=n(212)("match") +return i(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==r(t))}},function(t,e,n){var i=n(213)("match") t.exports=function(t){var e=/./ try{"/./"[t](e)}catch(n){try{return e[i]=!1,!"/./"[t](e)}catch(r){}}return!0}},function(t,e,n){"use strict" -var i=n(195),r=n(320),o="includes" -i(i.P+i.F*n(322)(o),"String",{includes:function a(t){return!!~r(this,t,o).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var i=n(195) -i(i.P,"String",{repeat:n(278)})},function(t,e,n){"use strict" -var i=n(195),r=n(224),o=n(320),a="startsWith",s=""[a] -i(i.P+i.F*n(322)(a),"String",{startsWith:function l(t){var e=o(this,t,a),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),i=String(t) +var i=n(196),r=n(321),o="includes" +i(i.P+i.F*n(323)(o),"String",{includes:function a(t){return!!~r(this,t,o).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var i=n(196) +i(i.P,"String",{repeat:n(279)})},function(t,e,n){"use strict" +var i=n(196),r=n(225),o=n(321),a="startsWith",s=""[a] +i(i.P+i.F*n(323)(a),"String",{startsWith:function l(t){var e=o(this,t,a),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),i=String(t) return s?s.call(e,i,n):e.slice(n,n+i.length)===i}})},function(t,e,n){"use strict" -n(327)("anchor",function(t){return function e(n){return t(this,"a","name",n)}})},function(t,e,n){var i=n(195),r=n(194),o=n(222),a=/"/g,s=function(t,e,n,i){var r=String(o(t)),s="<"+e +n(328)("anchor",function(t){return function e(n){return t(this,"a","name",n)}})},function(t,e,n){var i=n(196),r=n(195),o=n(223),a=/"/g,s=function(t,e,n,i){var r=String(o(t)),s="<"+e return""!==n&&(s+=" "+n+'="'+String(i).replace(a,""")+'"'),s+">"+r+""} t.exports=function(t,e){var n={} n[t]=e(s),i(i.P+i.F*r(function(){var e=""[t]('"') return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},function(t,e,n){"use strict" -n(327)("big",function(t){return function e(){return t(this,"big","","")}})},function(t,e,n){"use strict" -n(327)("blink",function(t){return function e(){return t(this,"blink","","")}})},function(t,e,n){"use strict" -n(327)("bold",function(t){return function e(){return t(this,"b","","")}})},function(t,e,n){"use strict" -n(327)("fixed",function(t){return function e(){return t(this,"tt","","")}})},function(t,e,n){"use strict" -n(327)("fontcolor",function(t){return function e(n){return t(this,"font","color",n)}})},function(t,e,n){"use strict" -n(327)("fontsize",function(t){return function e(n){return t(this,"font","size",n)}})},function(t,e,n){"use strict" -n(327)("italics",function(t){return function e(){return t(this,"i","","")}})},function(t,e,n){"use strict" -n(327)("link",function(t){return function e(n){return t(this,"a","href",n)}})},function(t,e,n){"use strict" -n(327)("small",function(t){return function e(){return t(this,"small","","")}})},function(t,e,n){"use strict" -n(327)("strike",function(t){return function e(){return t(this,"strike","","")}})},function(t,e,n){"use strict" -n(327)("sub",function(t){return function e(){return t(this,"sub","","")}})},function(t,e,n){"use strict" -n(327)("sup",function(t){return function e(){return t(this,"sup","","")}})},function(t,e,n){var i=n(195) +n(328)("big",function(t){return function e(){return t(this,"big","","")}})},function(t,e,n){"use strict" +n(328)("blink",function(t){return function e(){return t(this,"blink","","")}})},function(t,e,n){"use strict" +n(328)("bold",function(t){return function e(){return t(this,"b","","")}})},function(t,e,n){"use strict" +n(328)("fixed",function(t){return function e(){return t(this,"tt","","")}})},function(t,e,n){"use strict" +n(328)("fontcolor",function(t){return function e(n){return t(this,"font","color",n)}})},function(t,e,n){"use strict" +n(328)("fontsize",function(t){return function e(n){return t(this,"font","size",n)}})},function(t,e,n){"use strict" +n(328)("italics",function(t){return function e(){return t(this,"i","","")}})},function(t,e,n){"use strict" +n(328)("link",function(t){return function e(n){return t(this,"a","href",n)}})},function(t,e,n){"use strict" +n(328)("small",function(t){return function e(){return t(this,"small","","")}})},function(t,e,n){"use strict" +n(328)("strike",function(t){return function e(){return t(this,"strike","","")}})},function(t,e,n){"use strict" +n(328)("sub",function(t){return function e(){return t(this,"sub","","")}})},function(t,e,n){"use strict" +n(328)("sup",function(t){return function e(){return t(this,"sup","","")}})},function(t,e,n){var i=n(196) i(i.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,n){"use strict" -var i=n(195),r=n(245),o=n(203) -i(i.P+i.F*n(194)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function a(t){var e=r(this),n=o(e) +var i=n(196),r=n(246),o=n(204) +i(i.P+i.F*n(195)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function a(t){var e=r(this),n=o(e) return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},function(t,e,n){"use strict" -var i=n(195),r=n(194),o=Date.prototype.getTime,a=function(t){return t>9?t:"0"+t} +var i=n(196),r=n(195),o=Date.prototype.getTime,a=function(t){return t>9?t:"0"+t} i(i.P+i.F*(r(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!r(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function s(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value") var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),i=e<0?"-":e>9999?"+":"" return i+("00000"+Math.abs(e)).slice(i?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}})},function(t,e,n){ var i=Date.prototype,r="Invalid Date",o="toString",a=i[o],s=i.getTime -new Date(NaN)+""!=r&&n(205)(i,o,function l(){var t=s.call(this) -return t===t?a.call(this):r})},function(t,e,n){var i=n(212)("toPrimitive"),r=Date.prototype -i in r||n(197)(r,i,n(345))},function(t,e,n){"use strict" -var i=n(199),r=n(203),o="number" +new Date(NaN)+""!=r&&n(206)(i,o,function l(){var t=s.call(this) +return t===t?a.call(this):r})},function(t,e,n){var i=n(213)("toPrimitive"),r=Date.prototype +i in r||n(198)(r,i,n(346))},function(t,e,n){"use strict" +var i=n(200),r=n(204),o="number" t.exports=function(t){if("string"!==t&&t!==o&&"default"!==t)throw TypeError("Incorrect hint") -return r(i(this),t!=o)}},function(t,e,n){var i=n(195) -i(i.S,"Array",{isArray:n(232)})},function(t,e,n){"use strict" -var i=n(207),r=n(195),o=n(245),a=n(348),s=n(349),l=n(224),u=n(350),c=n(351) -r(r.S+r.F*!n(352)(function(t){Array.from(t)}),"Array",{from:function d(t){var e=o(t),n="function"==typeof this?this:Array,r=arguments.length,d=r>1?arguments[1]:void 0,h=void 0!==d,p=0,f=c(e),m,g,v,y +return r(i(this),t!=o)}},function(t,e,n){var i=n(196) +i(i.S,"Array",{isArray:n(233)})},function(t,e,n){"use strict" +var i=n(208),r=n(196),o=n(246),a=n(349),s=n(350),l=n(225),u=n(351),c=n(352) +r(r.S+r.F*!n(353)(function(t){Array.from(t)}),"Array",{from:function d(t){var e=o(t),n="function"==typeof this?this:Array,r=arguments.length,d=r>1?arguments[1]:void 0,h=void 0!==d,p=0,f=c(e),m,g,v,y if(h&&(d=i(d,r>2?arguments[2]:void 0,2)),void 0==f||n==Array&&s(f))for(m=l(e.length),g=new n(m);m>p;p++)u(g,p,h?d(e[p],p):e[p]) else for(y=f.call(e),g=new n;!(v=y.next()).done;p++)u(g,p,h?a(y,d,[v.value,p],!0):v.value) -return g.length=p,g}})},function(t,e,n){var i=n(199) +return g.length=p,g}})},function(t,e,n){var i=n(200) t.exports=function(t,e,n,r){try{return r?e(i(n)[0],n[1]):e(n)}catch(o){var a=t["return"] -throw void 0!==a&&i(a.call(t)),o}}},function(t,e,n){var i=n(316),r=n(212)("iterator"),o=Array.prototype +throw void 0!==a&&i(a.call(t)),o}}},function(t,e,n){var i=n(317),r=n(213)("iterator"),o=Array.prototype t.exports=function(t){return void 0!==t&&(i.Array===t||o[r]===t)}},function(t,e,n){"use strict" -var i=n(198),r=n(204) -t.exports=function(t,e,n){e in t?i.f(t,e,r(0,n)):t[e]=n}},function(t,e,n){var i=n(262),r=n(212)("iterator"),o=n(316) -t.exports=n(196).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){var i=n(212)("iterator"),r=!1 +var i=n(199),r=n(205) +t.exports=function(t,e,n){e in t?i.f(t,e,r(0,n)):t[e]=n}},function(t,e,n){var i=n(263),r=n(213)("iterator"),o=n(317) +t.exports=n(197).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){var i=n(213)("iterator"),r=!1 try{var o=[7][i]() o["return"]=function(){r=!0},Array.from(o,function(){throw 2})}catch(a){}t.exports=function(t,e){if(!e&&!r)return!1 var n=!1 try{var o=[7],a=o[i]() a.next=function(){return{done:n=!0}},o[i]=function(){return a},t(o)}catch(s){}return n}},function(t,e,n){"use strict" -var i=n(195),r=n(350) -i(i.S+i.F*n(194)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function o(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)r(n,t,arguments[t++]) +var i=n(196),r=n(351) +i(i.S+i.F*n(195)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function o(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)r(n,t,arguments[t++]) return n.length=e,n}})},function(t,e,n){"use strict" -var i=n(195),r=n(219),o=[].join -i(i.P+i.F*(n(220)!=Object||!n(355)(o)),"Array",{join:function a(t){return o.call(r(this),void 0===t?",":t)}})},function(t,e,n){var i=n(194) +var i=n(196),r=n(220),o=[].join +i(i.P+i.F*(n(221)!=Object||!n(356)(o)),"Array",{join:function a(t){return o.call(r(this),void 0===t?",":t)}})},function(t,e,n){var i=n(195) t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){"use strict" -var i=n(195),r=n(235),o=n(221),a=n(226),s=n(224),l=[].slice -i(i.P+i.F*n(194)(function(){r&&l.call(r)}),"Array",{slice:function u(t,e){var n=s(this.length),i=o(this) +var i=n(196),r=n(236),o=n(222),a=n(227),s=n(225),l=[].slice +i(i.P+i.F*n(195)(function(){r&&l.call(r)}),"Array",{slice:function u(t,e){var n=s(this.length),i=o(this) if(e=void 0===e?n:e,"Array"==i)return l.call(this,t,e) for(var r=a(t,n),u=a(e,n),c=s(u-r),d=Array(c),h=0;h_;_++)if((h||_ in g)&&(x=g[_],w=v(x,_,m),t))if(n)b[_]=w else if(w)switch(t){case 3:return!0 case 5:return x case 6:return _ case 2:b.push(x)}else if(c)return!1 -return d?-1:u||c?c:b}}},function(t,e,n){var i=n(361) -t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){var i=n(200),r=n(232),o=n(212)("species") +return d?-1:u||c?c:b}}},function(t,e,n){var i=n(362) +t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){var i=n(201),r=n(233),o=n(213)("species") t.exports=function(t){var e return r(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),i(e)&&(e=e[o],null===e&&(e=void 0))),void 0===e?Array:e}},function(t,e,n){"use strict" -var i=n(195),r=n(359)(1) -i(i.P+i.F*!n(355)([].map,!0),"Array",{map:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" -var i=n(195),r=n(359)(2) -i(i.P+i.F*!n(355)([].filter,!0),"Array",{filter:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" -var i=n(195),r=n(359)(3) -i(i.P+i.F*!n(355)([].some,!0),"Array",{some:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" -var i=n(195),r=n(359)(4) -i(i.P+i.F*!n(355)([].every,!0),"Array",{every:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" -var i=n(195),r=n(367) -i(i.P+i.F*!n(355)([].reduce,!0),"Array",{reduce:function o(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){var i=n(208),r=n(245),o=n(220),a=n(224) +var i=n(196),r=n(360)(1) +i(i.P+i.F*!n(356)([].map,!0),"Array",{map:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" +var i=n(196),r=n(360)(2) +i(i.P+i.F*!n(356)([].filter,!0),"Array",{filter:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" +var i=n(196),r=n(360)(3) +i(i.P+i.F*!n(356)([].some,!0),"Array",{some:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" +var i=n(196),r=n(360)(4) +i(i.P+i.F*!n(356)([].every,!0),"Array",{every:function o(t){return r(this,t,arguments[1])}})},function(t,e,n){"use strict" +var i=n(196),r=n(368) +i(i.P+i.F*!n(356)([].reduce,!0),"Array",{reduce:function o(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){var i=n(209),r=n(246),o=n(221),a=n(225) t.exports=function(t,e,n,s,l){i(e) var u=r(t),c=o(u),d=a(u.length),h=l?d-1:0,p=l?-1:1 if(n<2)for(;;){if(h in c){s=c[h],h+=p break}if(h+=p,l?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;l?h>=0:d>h;h+=p)h in c&&(s=e(s,c[h],h,u)) return s}},function(t,e,n){"use strict" -var i=n(195),r=n(367) -i(i.P+i.F*!n(355)([].reduceRight,!0),"Array",{reduceRight:function o(t){return r(this,t,arguments.length,arguments[1],!0)}})},function(t,e,n){"use strict" -var i=n(195),r=n(223)(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0 -i(i.P+i.F*(a||!n(355)(o)),"Array",{indexOf:function s(t){return a?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){"use strict" -var i=n(195),r=n(219),o=n(225),a=n(224),s=[].lastIndexOf,l=!!s&&1/[1].lastIndexOf(1,-0)<0 -i(i.P+i.F*(l||!n(355)(s)),"Array",{lastIndexOf:function u(t){if(l)return s.apply(this,arguments)||0 +var i=n(196),r=n(368) +i(i.P+i.F*!n(356)([].reduceRight,!0),"Array",{reduceRight:function o(t){return r(this,t,arguments.length,arguments[1],!0)}})},function(t,e,n){"use strict" +var i=n(196),r=n(224)(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0 +i(i.P+i.F*(a||!n(356)(o)),"Array",{indexOf:function s(t){return a?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){"use strict" +var i=n(196),r=n(220),o=n(226),a=n(225),s=[].lastIndexOf,l=!!s&&1/[1].lastIndexOf(1,-0)<0 +i(i.P+i.F*(l||!n(356)(s)),"Array",{lastIndexOf:function u(t){if(l)return s.apply(this,arguments)||0 var e=r(this),n=a(e.length),i=n-1 for(arguments.length>1&&(i=Math.min(i,o(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in e&&e[i]===t)return i||0 -return-1}})},function(t,e,n){var i=n(195) -i(i.P,"Array",{copyWithin:n(372)}),n(373)("copyWithin")},function(t,e,n){"use strict" -var i=n(245),r=n(226),o=n(224) +return-1}})},function(t,e,n){var i=n(196) +i(i.P,"Array",{copyWithin:n(373)}),n(374)("copyWithin")},function(t,e,n){"use strict" +var i=n(246),r=n(227),o=n(225) t.exports=[].copyWithin||function a(t,e){var n=i(this),a=o(n.length),s=r(t,a),l=r(e,a),u=arguments.length>2?arguments[2]:void 0,c=Math.min((void 0===u?a:r(u,a))-l,a-s),d=1 for(l0;)l in n?n[s]=n[l]:delete n[s],s+=d,l+=d -return n}},function(t,e,n){var i=n(212)("unscopables"),r=Array.prototype -void 0==r[i]&&n(197)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(195) -i(i.P,"Array",{fill:n(375)}),n(373)("fill")},function(t,e,n){"use strict" -var i=n(245),r=n(226),o=n(224) +return n}},function(t,e,n){var i=n(213)("unscopables"),r=Array.prototype +void 0==r[i]&&n(198)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(196) +i(i.P,"Array",{fill:n(376)}),n(374)("fill")},function(t,e,n){"use strict" +var i=n(246),r=n(227),o=n(225) t.exports=function a(t){for(var e=i(this),n=o(e.length),a=arguments.length,s=r(a>1?arguments[1]:void 0,n),l=a>2?arguments[2]:void 0,u=void 0===l?n:r(l,n);u>s;)e[s++]=t return e}},function(t,e,n){"use strict" -var i=n(195),r=n(359)(5),o="find",a=!0 -o in[]&&Array(1)[o](function(){a=!1}),i(i.P+i.F*a,"Array",{find:function s(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(373)(o)},function(t,e,n){"use strict" -var i=n(195),r=n(359)(6),o="findIndex",a=!0 -o in[]&&Array(1)[o](function(){a=!1}),i(i.P+i.F*a,"Array",{findIndex:function s(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(373)(o)},function(t,e,n){n(379)("Array")},function(t,e,n){ +var i=n(196),r=n(360)(5),o="find",a=!0 +o in[]&&Array(1)[o](function(){a=!1}),i(i.P+i.F*a,"Array",{find:function s(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(374)(o)},function(t,e,n){"use strict" +var i=n(196),r=n(360)(6),o="findIndex",a=!0 +o in[]&&Array(1)[o](function(){a=!1}),i(i.P+i.F*a,"Array",{findIndex:function s(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(374)(o)},function(t,e,n){n(380)("Array")},function(t,e,n){ "use strict" -var i=n(191),r=n(198),o=n(193),a=n(212)("species") +var i=n(192),r=n(199),o=n(194),a=n(213)("species") t.exports=function(t){var e=i[t] o&&e&&!e[a]&&r.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){"use strict" -var i=n(373),r=n(381),o=n(316),a=n(219) -t.exports=n(315)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++ +var i=n(374),r=n(382),o=n(317),a=n(220) +t.exports=n(316)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++ return!t||n>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(t,e){ -return{value:e,done:!!t}}},function(t,e,n){var i=n(191),r=n(275),o=n(198).f,a=n(237).f,s=n(321),l=n(383),u=i.RegExp,c=u,d=u.prototype,h=/a/g,p=/a/g,f=new u(h)!==h -if(n(193)&&(!f||n(194)(function(){return p[n(212)("match")]=!1,u(h)!=h||u(p)==p||"/a/i"!=u(h,"i")}))){u=function y(t,e){var n=this instanceof u,i=s(t),o=void 0===e +return{value:e,done:!!t}}},function(t,e,n){var i=n(192),r=n(276),o=n(199).f,a=n(238).f,s=n(322),l=n(384),u=i.RegExp,c=u,d=u.prototype,h=/a/g,p=/a/g,f=new u(h)!==h +if(n(194)&&(!f||n(195)(function(){return p[n(213)("match")]=!1,u(h)!=h||u(p)==p||"/a/i"!=u(h,"i")}))){u=function y(t,e){var n=this instanceof u,i=s(t),o=void 0===e return!n&&i&&t.constructor===u&&o?t:r(f?new c(i&&!o?t.source:t,e):c((i=t instanceof u)?t.source:t,i&&o?l.call(t):e),n?this:d,u)} for(var m=(function(t){t in u||o(u,t,{configurable:!0,get:function(){return c[t]},set:function(e){c[t]=e}})}),g=a(c),v=0;g.length>v;)m(g[v++]) -d.constructor=u,u.prototype=d,n(205)(i,"RegExp",u)}n(379)("RegExp")},function(t,e,n){"use strict" -var i=n(199) +d.constructor=u,u.prototype=d,n(206)(i,"RegExp",u)}n(380)("RegExp")},function(t,e,n){"use strict" +var i=n(200) t.exports=function(){var t=i(this),e="" return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){"use strict" -n(385) -var i=n(199),r=n(383),o=n(193),a="toString",s=/./[a],l=function(t){n(205)(RegExp.prototype,a,t,!0)} -n(194)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?l(function u(){var t=i(this) -return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?r.call(t):void 0)}):s.name!=a&&l(function c(){return s.call(this)})},function(t,e,n){n(193)&&"g"!=/./g.flags&&n(198).f(RegExp.prototype,"flags",{ -configurable:!0,get:n(383)})},function(t,e,n){n(387)("match",1,function(t,e,n){return[function i(n){"use strict" +n(386) +var i=n(200),r=n(384),o=n(194),a="toString",s=/./[a],l=function(t){n(206)(RegExp.prototype,a,t,!0)} +n(195)(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?l(function u(){var t=i(this) +return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?r.call(t):void 0)}):s.name!=a&&l(function c(){return s.call(this)})},function(t,e,n){n(194)&&"g"!=/./g.flags&&n(199).f(RegExp.prototype,"flags",{ +configurable:!0,get:n(384)})},function(t,e,n){n(388)("match",1,function(t,e,n){return[function i(n){"use strict" var i=t(this),r=void 0==n?void 0:n[e] return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){"use strict" -var i=n(197),r=n(205),o=n(194),a=n(222),s=n(212) +var i=n(198),r=n(206),o=n(195),a=n(223),s=n(213) t.exports=function(t,e,n){var l=s(t),u=n(a,l,""[t]),c=u[0],d=u[1] o(function(){var e={} -return e[l]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,l,2==e?function(t,e){return d.call(t,this,e)}:function(t){return d.call(t,this)}))}},function(t,e,n){n(387)("replace",2,function(t,e,n){ +return e[l]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,l,2==e?function(t,e){return d.call(t,this,e)}:function(t){return d.call(t,this)}))}},function(t,e,n){n(388)("replace",2,function(t,e,n){ return[function i(r,o){"use strict" var a=t(this),s=void 0==r?void 0:r[e] -return void 0!==s?s.call(r,a,o):n.call(String(a),r,o)},n]})},function(t,e,n){n(387)("search",1,function(t,e,n){return[function i(n){"use strict" +return void 0!==s?s.call(r,a,o):n.call(String(a),r,o)},n]})},function(t,e,n){n(388)("search",1,function(t,e,n){return[function i(n){"use strict" var i=t(this),r=void 0==n?void 0:n[e] -return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){n(387)("split",2,function(t,e,i){"use strict" -var r=n(321),o=i,a=[].push,s="split",l="length",u="lastIndex" +return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){n(388)("split",2,function(t,e,i){"use strict" +var r=n(322),o=i,a=[].push,s="split",l="length",u="lastIndex" if("c"=="abbc"[s](/(b)*/)[1]||4!="test"[s](/(?:)/,-1)[l]||2!="ab"[s](/(?:ab)*/)[l]||4!="."[s](/(.?)(.?)/)[l]||"."[s](/()()/)[l]>1||""[s](/.?/)[l]){var c=void 0===/()??/.exec("")[1] i=function(t,e){var n=String(this) if(void 0===t&&0===e)return[] @@ -3567,8 +3567,8 @@ for(c||(f=new RegExp("^"+p.source+"$(?!\\s)",s));(m=p.exec(n))&&(g=m.index+m[0][ return d===n[l]?!v&&p.test("")||i.push(""):i.push(n.slice(d)),i[l]>h?i.slice(0,h):i}}else"0"[s](void 0,0)[l]&&(i=function(t,e){return void 0===t&&0===e?[]:o.call(this,t,e)}) return[function d(n,r){var o=t(this),a=void 0==n?void 0:n[e] return void 0!==a?a.call(n,o,r):i.call(String(o),n,r)},i]})},function(t,e,n){"use strict" -var i=n(215),r=n(191),o=n(207),a=n(262),s=n(195),l=n(200),u=n(208),c=n(392),d=n(393),h=n(394),p=n(395).set,f=n(396)(),m="Promise",g=r.TypeError,v=r.process,y=r[m],v=r.process,_="process"==a(v),b=function(){},x,w,k,C=!!function(){ -try{var t=y.resolve(1),e=(t.constructor={})[n(212)("species")]=function(t){t(b,b)} +var i=n(216),r=n(192),o=n(208),a=n(263),s=n(196),l=n(201),u=n(209),c=n(393),d=n(394),h=n(395),p=n(396).set,f=n(397)(),m="Promise",g=r.TypeError,v=r.process,y=r[m],v=r.process,_="process"==a(v),b=function(){},x,w,k,C=!!function(){ +try{var t=y.resolve(1),e=(t.constructor={})[n(213)("species")]=function(t){t(b,b)} return(_||"function"==typeof PromiseRejectionEvent)&&t.then(b)instanceof e}catch(i){}}(),j=function(t,e){return t===e||t===y&&e===k},T=function(t){var e return!(!l(t)||"function"!=typeof(e=t.then))&&e},E=function(t){return j(y,t)?new S(t):new w(t)},S=w=function(t){var e,n this.promise=new t(function(t,i){if(void 0!==e||void 0!==n)throw g("Bad Promise constructor") @@ -3587,32 +3587,32 @@ if(!e._d){e._d=!0,e=e._w||e try{if(e===t)throw g("Promise can't be resolved itself");(n=T(t))?f(function(){var i={_w:e,_d:!1} try{n.call(t,o(I,i,1),o(A,i,1))}catch(r){A.call(i,r)}}):(e._v=t,e._s=1,N(e,!1))}catch(i){A.call({_w:e,_d:!1},i)}}} C||(y=function R(t){c(this,y,m,"_h"),u(t),x.call(this) -try{t(o(I,this,1),o(A,this,1))}catch(e){A.call(this,e)}},x=function L(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},x.prototype=n(397)(y.prototype,{then:function F(t,e){ +try{t(o(I,this,1),o(A,this,1))}catch(e){A.call(this,e)}},x=function L(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},x.prototype=n(398)(y.prototype,{then:function F(t,e){ var n=E(h(this,y)) return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=_?v.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&N(this,!1),n.promise},"catch":function(t){return this.then(void 0,t) }}),S=function(){var t=new x -this.promise=t,this.resolve=o(I,t,1),this.reject=o(A,t,1)}),s(s.G+s.W+s.F*!C,{Promise:y}),n(211)(y,m),n(379)(m),k=n(196)[m],s(s.S+s.F*!C,m,{reject:function H(t){var e=E(this),n=e.reject +this.promise=t,this.resolve=o(I,t,1),this.reject=o(A,t,1)}),s(s.G+s.W+s.F*!C,{Promise:y}),n(212)(y,m),n(380)(m),k=n(197)[m],s(s.S+s.F*!C,m,{reject:function H(t){var e=E(this),n=e.reject return n(t),e.promise}}),s(s.S+s.F*(i||!C),m,{resolve:function Q(t){if(t instanceof y&&j(t.constructor,this))return t var e=E(this),n=e.resolve -return n(t),e.promise}}),s(s.S+s.F*!(C&&n(352)(function(t){y.all(t)["catch"](b)})),m,{all:function z(t){var e=this,n=E(e),i=n.resolve,r=n.reject,o=P(function(){var n=[],o=0,a=1 +return n(t),e.promise}}),s(s.S+s.F*!(C&&n(353)(function(t){y.all(t)["catch"](b)})),m,{all:function z(t){var e=this,n=E(e),i=n.resolve,r=n.reject,o=P(function(){var n=[],o=0,a=1 d(t,!1,function(t){var s=o++,l=!1 n.push(void 0),a++,e.resolve(t).then(function(t){l||(l=!0,n[s]=t,--a||i(n))},r)}),--a||i(n)}) return o&&r(o.error),n.promise},race:function W(t){var e=this,n=E(e),i=n.reject,r=P(function(){d(t,!1,function(t){e.resolve(t).then(n.resolve,i)})}) return r&&i(r.error),n.promise}})},function(t,e){t.exports=function(t,e,n,i){if(!(t instanceof e)||void 0!==i&&i in t)throw TypeError(n+": incorrect invocation!") -return t}},function(t,e,n){var i=n(207),r=n(348),o=n(349),a=n(199),s=n(224),l=n(351),u={},c={},e=t.exports=function(t,e,n,d,h){var p=h?function(){return t}:l(t),f=i(n,d,e?2:1),m=0,g,v,y,_ +return t}},function(t,e,n){var i=n(208),r=n(349),o=n(350),a=n(200),s=n(225),l=n(352),u={},c={},e=t.exports=function(t,e,n,d,h){var p=h?function(){return t}:l(t),f=i(n,d,e?2:1),m=0,g,v,y,_ if("function"!=typeof p)throw TypeError(t+" is not iterable!") if(o(p)){for(g=s(t.length);g>m;m++)if(_=e?f(a(v=t[m])[0],v[1]):f(t[m]),_===u||_===c)return _}else for(y=p.call(t);!(v=y.next()).done;)if(_=r(y,f,v.value,e),_===u||_===c)return _} -e.BREAK=u,e.RETURN=c},function(t,e,n){var i=n(199),r=n(208),o=n(212)("species") +e.BREAK=u,e.RETURN=c},function(t,e,n){var i=n(200),r=n(209),o=n(213)("species") t.exports=function(t,e){var n=i(t).constructor,a -return void 0===n||void 0==(a=i(n)[o])?e:r(a)}},function(t,e,n){var i=n(207),r=n(265),o=n(235),a=n(202),s=n(191),l=s.process,u=s.setImmediate,c=s.clearImmediate,d=s.MessageChannel,h=0,p={},f="onreadystatechange",m,g,v,y=function(){ +return void 0===n||void 0==(a=i(n)[o])?e:r(a)}},function(t,e,n){var i=n(208),r=n(266),o=n(236),a=n(203),s=n(192),l=s.process,u=s.setImmediate,c=s.clearImmediate,d=s.MessageChannel,h=0,p={},f="onreadystatechange",m,g,v,y=function(){ var t=+this if(p.hasOwnProperty(t)){var e=p[t] delete p[t],e()}},_=function(t){y.call(t.data)} u&&c||(u=function b(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]) -return p[++h]=function(){r("function"==typeof t?t:Function(t),e)},m(h),h},c=function x(t){delete p[t]},"process"==n(221)(l)?m=function(t){l.nextTick(i(y,t,1))}:d?(g=new d,v=g.port2,g.port1.onmessage=_, +return p[++h]=function(){r("function"==typeof t?t:Function(t),e)},m(h),h},c=function x(t){delete p[t]},"process"==n(222)(l)?m=function(t){l.nextTick(i(y,t,1))}:d?(g=new d,v=g.port2,g.port1.onmessage=_, m=i(v.postMessage,v,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(m=function(t){s.postMessage(t+"","*")},s.addEventListener("message",_,!1)):m=f in a("script")?function(t){o.appendChild(a("script"))[f]=function(){ -o.removeChild(this),y.call(t)}}:function(t){setTimeout(i(y,t,1),0)}),t.exports={set:u,clear:c}},function(t,e,n){var i=n(191),r=n(395).set,o=i.MutationObserver||i.WebKitMutationObserver,a=i.process,s=i.Promise,l="process"==n(221)(a) +o.removeChild(this),y.call(t)}}:function(t){setTimeout(i(y,t,1),0)}),t.exports={set:u,clear:c}},function(t,e,n){var i=n(192),r=n(396).set,o=i.MutationObserver||i.WebKitMutationObserver,a=i.process,s=i.Promise,l="process"==n(222)(a) t.exports=function(){var t,e,n,u=function(){var i,r @@ -3623,13 +3623,13 @@ else if(o){var c=!0,d=document.createTextNode("") new o(u).observe(d,{characterData:!0}),n=function(){d.data=c=!c}}else if(s&&s.resolve){var h=s.resolve() n=function(){h.then(u)}}else n=function(){r.call(i,u)} return function(i){var r={fn:i,next:void 0} -e&&(e.next=r),t||(t=r,n()),e=r}}},function(t,e,n){var i=n(205) +e&&(e.next=r),t||(t=r,n()),e=r}}},function(t,e,n){var i=n(206) t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n) return t}},function(t,e,n){"use strict" -var i=n(399) -t.exports=n(400)("Map",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function r(t){var e=i.getEntry(this,t) +var i=n(400) +t.exports=n(401)("Map",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function r(t){var e=i.getEntry(this,t) return e&&e.v},set:function o(t,e){return i.def(this,0===t?0:t,e)}},i,!0)},function(t,e,n){"use strict" -var i=n(198).f,r=n(233),o=n(397),a=n(207),s=n(392),l=n(222),u=n(393),c=n(315),d=n(381),h=n(379),p=n(193),f=n(209).fastKey,m=p?"_s":"size",g=function(t,e){var n=f(e),i +var i=n(199).f,r=n(234),o=n(398),a=n(208),s=n(393),l=n(223),u=n(394),c=n(316),d=n(382),h=n(380),p=n(194),f=n(210).fastKey,m=p?"_s":"size",g=function(t,e){var n=f(e),i if("F"!==n)return t._i[n] for(i=t._f;i;i=i.n)if(i.k==e)return i} t.exports={getConstructor:function(t,e,n,c){var d=t(function(t,i){s(t,d,e,"_i"),t._i=r(null),t._f=void 0,t._l=void 0,t[m]=0,void 0!=i&&u(i,n,t[c],t)}) @@ -3643,7 +3643,7 @@ for(var e=a(t,arguments.length>1?arguments[1]:void 0,3),n;n=n?n.n:this._f;)for(e return i?i.v=n:(t._l=i={i:o=f(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[m]++,"F"!==o&&(t._i[o]=i)),t},getEntry:g,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e, this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?d(0,n.k):"values"==e?d(0,n.v):d(0,[n.k,n.v]):(t._t=void 0,d(1))},n?"entries":"values",!n,!0),h(e)}}},function(t,e,n){"use strict" -var i=n(191),r=n(195),o=n(205),a=n(397),s=n(209),l=n(393),u=n(392),c=n(200),d=n(194),h=n(352),p=n(211),f=n(275) +var i=n(192),r=n(196),o=n(206),a=n(398),s=n(210),l=n(394),u=n(393),c=n(201),d=n(195),h=n(353),p=n(212),f=n(276) t.exports=function(t,e,n,m,g,v){var y=i[t],_=y,b=g?"set":"add",x=_&&_.prototype,w={},k=function(t){var e=x[t] o(x,t,"delete"==t?function(t){return!(v&&!c(t))&&e.call(this,0===t?0:t)}:"has"==t?function n(t){return!(v&&!c(t))&&e.call(this,0===t?0:t)}:"get"==t?function i(t){return v&&!c(t)?void 0:e.call(this,0===t?0:t) @@ -3658,17 +3658,17 @@ return void 0!=n&&l(n,g,i[b],i),i}),_.prototype=x,x.constructor=_),(T||S)&&(k("d return p(_,t),w[t]=_,r(r.G+r.W+r.F*(_!=y),w),v||m.setStrong(_,t,g),_}},function(t,e,n){"use strict" -var i=n(399) -t.exports=n(400)("Set",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function r(t){return i.def(this,t=0===t?0:t,t)}},i)},function(t,e,n){"use strict" -var i=n(359)(0),r=n(205),o=n(209),a=n(256),s=n(403),l=n(200),u=o.getWeak,c=Object.isExtensible,d=s.ufstore,h={},p,f=function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0) +var i=n(400) +t.exports=n(401)("Set",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function r(t){return i.def(this,t=0===t?0:t,t)}},i)},function(t,e,n){"use strict" +var i=n(360)(0),r=n(206),o=n(210),a=n(257),s=n(404),l=n(201),u=o.getWeak,c=Object.isExtensible,d=s.ufstore,h={},p,f=function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0) }},m={get:function v(t){if(l(t)){var e=u(t) -return e===!0?d(this).get(t):e?e[this._i]:void 0}},set:function y(t,e){return s.def(this,t,e)}},g=t.exports=n(400)("WeakMap",f,m,s,!0,!0) +return e===!0?d(this).get(t):e?e[this._i]:void 0}},set:function y(t,e){return s.def(this,t,e)}},g=t.exports=n(401)("WeakMap",f,m,s,!0,!0) 7!=(new g).set((Object.freeze||Object)(h),7).get(h)&&(p=s.getConstructor(f),a(p.prototype,m),o.NEED=!0,i(["delete","has","get","set"],function(t){var e=g.prototype,n=e[t] r(e,t,function(e,i){if(l(e)&&!c(e)){this._f||(this._f=new p) var r=this._f[t](e,i) return"set"==t?this:r}return n.call(this,e,i)})}))},function(t,e,n){"use strict" -var i=n(397),r=n(209).getWeak,o=n(199),a=n(200),s=n(392),l=n(393),u=n(359),c=n(192),d=u(5),h=u(6),p=0,f=function(t){return t._l||(t._l=new m)},m=function(){this.a=[]},g=function(t,e){return d(t.a,function(t){ +var i=n(398),r=n(210).getWeak,o=n(200),a=n(201),s=n(393),l=n(394),u=n(360),c=n(193),d=u(5),h=u(6),p=0,f=function(t){return t._l||(t._l=new m)},m=function(){this.a=[]},g=function(t,e){return d(t.a,function(t){ return t[0]===e})} m.prototype={get:function(t){var e=g(this,t) if(e)return e[1]},has:function(t){return!!g(this,t)},set:function(t,e){var n=g(this,t) @@ -3680,16 +3680,16 @@ return e===!0?f(this)["delete"](t):e&&c(e,this._i)&&delete e[this._i]},has:funct var e=r(t) return e===!0?f(this).has(t):e&&c(e,this._i)}}),u},def:function(t,e,n){var i=r(o(e),!0) return i===!0?f(t).set(e,n):i[t._i]=n,t},ufstore:f}},function(t,e,n){"use strict" -var i=n(403) -n(400)("WeakSet",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function r(t){return i.def(this,t,!0)}},i,!1,!0)},function(t,e,n){"use strict" -var i=n(195),r=n(406),o=n(407),a=n(199),s=n(226),l=n(224),u=n(200),c=n(191).ArrayBuffer,d=n(394),h=o.ArrayBuffer,p=o.DataView,f=r.ABV&&c.isView,m=h.prototype.slice,g=r.VIEW,v="ArrayBuffer" -i(i.G+i.W+i.F*(c!==h),{ArrayBuffer:h}),i(i.S+i.F*!r.CONSTR,v,{isView:function y(t){return f&&f(t)||u(t)&&g in t}}),i(i.P+i.U+i.F*n(194)(function(){return!new h(2).slice(1,void 0).byteLength}),v,{slice:function _(t,e){ +var i=n(404) +n(401)("WeakSet",function(t){return function e(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function r(t){return i.def(this,t,!0)}},i,!1,!0)},function(t,e,n){"use strict" +var i=n(196),r=n(407),o=n(408),a=n(200),s=n(227),l=n(225),u=n(201),c=n(192).ArrayBuffer,d=n(395),h=o.ArrayBuffer,p=o.DataView,f=r.ABV&&c.isView,m=h.prototype.slice,g=r.VIEW,v="ArrayBuffer" +i(i.G+i.W+i.F*(c!==h),{ArrayBuffer:h}),i(i.S+i.F*!r.CONSTR,v,{isView:function y(t){return f&&f(t)||u(t)&&g in t}}),i(i.P+i.U+i.F*n(195)(function(){return!new h(2).slice(1,void 0).byteLength}),v,{slice:function _(t,e){ if(void 0!==m&&void 0===e)return m.call(a(this),t) for(var n=a(this).byteLength,i=s(t,n),r=s(void 0===e?n:e,n),o=new(d(this,h))(l(r-i)),u=new p(this),c=new p(o),f=0;i>1,s=23===e?P(2,-24)-P(2,-77):0,l=0,u=t<0||0===t&&1/t<0?1:0,c,d,h for(t=S(t),t!=t||t===T?(d=t!=t?1:0,c=o):(c=N(O(t)/M),t*(h=P(2,-c))<1&&(c--,h*=2),t+=c+a>=1?s/h:s*P(2,1-a),t*h>=2&&(c++,h/=2),c+a>=o?(d=0,c=o):c+a>=1?(d=(t*h-1)*P(2,e),c+=a):(d=t*P(2,a-1)*P(2,e),c=0));e>=8;i[l++]=255&d, d/=256,e-=8);for(c=c<0;i[l++]=255&c,c/=256,r-=8);return i[--l]|=128*u,i},Q=function(t,e,n){var i=8*n-e-1,r=(1<>1,a=i-7,s=n-1,l=t[s--],u=127&l,c @@ -3725,9 +3725,9 @@ return e[1]<<8|e[0]},getInt32:function ht(t){return z(V(this,4,t,arguments[1]))} },setUint16:function _t(t,e){X(this,2,t,B,e,arguments[2])},setInt32:function bt(t,e){X(this,4,t,U,e,arguments[2])},setUint32:function xt(t,e){X(this,4,t,U,e,arguments[2])},setFloat32:function wt(t,e){X(this,4,t,$,e,arguments[2]) },setFloat64:function kt(t,e){X(this,8,t,q,e,arguments[2])}}) -g(w,v),g(k,y),s(k[_],a.VIEW,!0),e[v]=w,e[y]=k},function(t,e,n){var i=n(195) -i(i.G+i.W+i.F*!n(406).ABV,{DataView:n(407).DataView})},function(t,e,n){n(410)("Int8",1,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){"use strict" -if(n(193)){var i=n(215),r=n(191),o=n(194),a=n(195),s=n(406),l=n(407),u=n(207),c=n(392),d=n(204),h=n(197),p=n(397),f=n(225),m=n(224),g=n(226),v=n(203),y=n(192),_=n(258),b=n(262),x=n(200),w=n(245),k=n(349),C=n(233),j=n(246),T=n(237).f,E=n(351),S=n(206),P=n(212),N=n(359),O=n(223),M=n(394),D=n(380),A=n(316),I=n(352),R=n(379),L=n(375),F=n(372),H=n(198),Q=n(238),z=H.f,W=Q.f,B=r.RangeError,U=r.TypeError,q=r.Uint8Array,$="ArrayBuffer",K="Shared"+$,V="BYTES_PER_ELEMENT",X="prototype",Y=Array[X],G=l.ArrayBuffer,J=l.DataView,Z=N(0),tt=N(2),et=N(3),nt=N(4),it=N(5),rt=N(6),ot=O(!0),at=O(!1),st=D.values,lt=D.keys,ut=D.entries,ct=Y.lastIndexOf,dt=Y.reduce,ht=Y.reduceRight,pt=Y.join,ft=Y.sort,mt=Y.slice,gt=Y.toString,vt=Y.toLocaleString,yt=P("iterator"),_t=P("toStringTag"),bt=S("typed_constructor"),xt=S("def_constructor"),wt=s.CONSTR,kt=s.TYPED,Ct=s.VIEW,jt="Wrong length!",Tt=N(1,function(t,e){ +g(w,v),g(k,y),s(k[_],a.VIEW,!0),e[v]=w,e[y]=k},function(t,e,n){var i=n(196) +i(i.G+i.W+i.F*!n(407).ABV,{DataView:n(408).DataView})},function(t,e,n){n(411)("Int8",1,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){"use strict" +if(n(194)){var i=n(216),r=n(192),o=n(195),a=n(196),s=n(407),l=n(408),u=n(208),c=n(393),d=n(205),h=n(198),p=n(398),f=n(226),m=n(225),g=n(227),v=n(204),y=n(193),_=n(259),b=n(263),x=n(201),w=n(246),k=n(350),C=n(234),j=n(247),T=n(238).f,E=n(352),S=n(207),P=n(213),N=n(360),O=n(224),M=n(395),D=n(381),A=n(317),I=n(353),R=n(380),L=n(376),F=n(373),H=n(199),Q=n(239),z=H.f,W=Q.f,B=r.RangeError,U=r.TypeError,q=r.Uint8Array,$="ArrayBuffer",K="Shared"+$,V="BYTES_PER_ELEMENT",X="prototype",Y=Array[X],G=l.ArrayBuffer,J=l.DataView,Z=N(0),tt=N(2),et=N(3),nt=N(4),it=N(5),rt=N(6),ot=O(!0),at=O(!1),st=D.values,lt=D.keys,ut=D.entries,ct=Y.lastIndexOf,dt=Y.reduce,ht=Y.reduceRight,pt=Y.join,ft=Y.sort,mt=Y.slice,gt=Y.toString,vt=Y.toLocaleString,yt=P("iterator"),_t=P("toStringTag"),bt=S("typed_constructor"),xt=S("def_constructor"),wt=s.CONSTR,kt=s.TYPED,Ct=s.VIEW,jt="Wrong length!",Tt=N(1,function(t,e){ return Mt(M(t,t[xt]),e)}),Et=o(function(){return 1===new q(new Uint16Array([1]).buffer)[0]}),St=!!q&&!!q[X].set&&o(function(){new q(1).set({})}),Pt=function(t,e){if(void 0===t)throw U(jt) var n=+t,i=m(t) if(e&&!_(n,i))throw B(jt) @@ -3782,14 +3782,14 @@ var N=k[yt],O=!!N&&("values"==N.name||void 0==N.name),M=Bt.values h(g,bt,!0),h(k,kt,u),h(k,Ct,!0),h(k,xt,g),(l?new g(1)[_t]==u:_t in k)||z(k,_t,{get:function(){return u}}),w[u]=g,a(a.G+a.W+a.F*(g!=v),w),a(a.S,u,{BYTES_PER_ELEMENT:e,from:Rt,of:Lt}),V in k||h(k,V,e),a(a.P,u,Qt), R(u),a(a.P+a.F*St,u,{set:Wt}),a(a.P+a.F*!O,u,Bt),a(a.P+a.F*(k.toString!=gt),u,{toString:gt}),a(a.P+a.F*o(function(){new g(1).slice()}),u,{slice:zt}),a(a.P+a.F*(o(function(){return[1,2].toLocaleString()!=new g([1,2]).toLocaleString() -})||!o(function(){k.toLocaleString.call([1,2])})),u,{toLocaleString:Ht}),A[u]=O?N:M,i||O||h(k,yt,M)}}else t.exports=function(){}},function(t,e,n){n(410)("Uint8",1,function(t){return function e(n,i,r){return t(this,n,i,r) +})||!o(function(){k.toLocaleString.call([1,2])})),u,{toLocaleString:Ht}),A[u]=O?N:M,i||O||h(k,yt,M)}}else t.exports=function(){}},function(t,e,n){n(411)("Uint8",1,function(t){return function e(n,i,r){return t(this,n,i,r) -}})},function(t,e,n){n(410)("Uint8",1,function(t){return function e(n,i,r){return t(this,n,i,r)}},!0)},function(t,e,n){n(410)("Int16",2,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){ -n(410)("Uint16",2,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(410)("Int32",4,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(410)("Uint32",4,function(t){ -return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(410)("Float32",4,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(410)("Float64",8,function(t){return function e(n,i,r){ -return t(this,n,i,r)}})},function(t,e,n){var i=n(195),r=n(208),o=n(199),a=(n(191).Reflect||{}).apply,s=Function.apply -i(i.S+i.F*!n(194)(function(){a(function(){})}),"Reflect",{apply:function l(t,e,n){var i=r(t),l=o(n) -return a?a(i,e,l):s.call(i,e,l)}})},function(t,e,n){var i=n(195),r=n(233),o=n(208),a=n(199),s=n(200),l=n(194),u=n(264),c=(n(191).Reflect||{}).construct,d=l(function(){function t(){}return!(c(function(){},[],t)instanceof t) +}})},function(t,e,n){n(411)("Uint8",1,function(t){return function e(n,i,r){return t(this,n,i,r)}},!0)},function(t,e,n){n(411)("Int16",2,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){ +n(411)("Uint16",2,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(411)("Int32",4,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(411)("Uint32",4,function(t){ +return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(411)("Float32",4,function(t){return function e(n,i,r){return t(this,n,i,r)}})},function(t,e,n){n(411)("Float64",8,function(t){return function e(n,i,r){ +return t(this,n,i,r)}})},function(t,e,n){var i=n(196),r=n(209),o=n(200),a=(n(192).Reflect||{}).apply,s=Function.apply +i(i.S+i.F*!n(195)(function(){a(function(){})}),"Reflect",{apply:function l(t,e,n){var i=r(t),l=o(n) +return a?a(i,e,l):s.call(i,e,l)}})},function(t,e,n){var i=n(196),r=n(234),o=n(209),a=n(200),s=n(201),l=n(195),u=n(265),c=(n(192).Reflect||{}).construct,d=l(function(){function t(){}return!(c(function(){},[],t)instanceof t) }),h=!l(function(){c(function(){})}) i(i.S+i.F*(d||h),"Reflect",{construct:function p(t,e){o(t),a(e) @@ -3801,91 +3801,91 @@ case 2:return new t(e[0],e[1]) case 3:return new t(e[0],e[1],e[2]) case 4:return new t(e[0],e[1],e[2],e[3])}var i=[null] return i.push.apply(i,e),new(u.apply(t,i))}var l=n.prototype,p=r(s(l)?l:Object.prototype),f=Function.apply.call(t,p,e) -return s(f)?f:p}})},function(t,e,n){var i=n(198),r=n(195),o=n(199),a=n(203) -r(r.S+r.F*n(194)(function(){Reflect.defineProperty(i.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function s(t,e,n){o(t),e=a(e,!0),o(n) -try{return i.f(t,e,n),!0}catch(r){return!1}}})},function(t,e,n){var i=n(195),r=n(238).f,o=n(199) +return s(f)?f:p}})},function(t,e,n){var i=n(199),r=n(196),o=n(200),a=n(204) +r(r.S+r.F*n(195)(function(){Reflect.defineProperty(i.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function s(t,e,n){o(t),e=a(e,!0),o(n) +try{return i.f(t,e,n),!0}catch(r){return!1}}})},function(t,e,n){var i=n(196),r=n(239).f,o=n(200) i(i.S,"Reflect",{deleteProperty:function a(t,e){var n=r(o(t),e) return!(n&&!n.configurable)&&delete t[e]}})},function(t,e,n){"use strict" -var i=n(195),r=n(199),o=function(t){this._t=r(t),this._i=0 +var i=n(196),r=n(200),o=function(t){this._t=r(t),this._i=0 var e=this._k=[],n for(n in t)e.push(n)} -n(317)(o,"Object",function(){var t=this,e=t._k,n +n(318)(o,"Object",function(){var t=this,e=t._k,n do if(t._i>=e.length)return{value:void 0,done:!0} while(!((n=e[t._i++])in t._t)) return{value:n,done:!1}}),i(i.S,"Reflect",{enumerate:function a(t){return new o(t)}})},function(t,e,n){function i(t,e){var n=arguments.length<3?t:arguments[2],s,c -return u(t)===n?t[e]:(s=r.f(t,e))?a(s,"value")?s.value:void 0!==s.get?s.get.call(n):void 0:l(c=o(t))?i(c,e,n):void 0}var r=n(238),o=n(246),a=n(192),s=n(195),l=n(200),u=n(199) -s(s.S,"Reflect",{get:i})},function(t,e,n){var i=n(238),r=n(195),o=n(199) -r(r.S,"Reflect",{getOwnPropertyDescriptor:function a(t,e){return i.f(o(t),e)}})},function(t,e,n){var i=n(195),r=n(246),o=n(199) -i(i.S,"Reflect",{getPrototypeOf:function a(t){return r(o(t))}})},function(t,e,n){var i=n(195) -i(i.S,"Reflect",{has:function r(t,e){return e in t}})},function(t,e,n){var i=n(195),r=n(199),o=Object.isExtensible -i(i.S,"Reflect",{isExtensible:function a(t){return r(t),!o||o(t)}})},function(t,e,n){var i=n(195) -i(i.S,"Reflect",{ownKeys:n(430)})},function(t,e,n){var i=n(237),r=n(230),o=n(199),a=n(191).Reflect +return u(t)===n?t[e]:(s=r.f(t,e))?a(s,"value")?s.value:void 0!==s.get?s.get.call(n):void 0:l(c=o(t))?i(c,e,n):void 0}var r=n(239),o=n(247),a=n(193),s=n(196),l=n(201),u=n(200) +s(s.S,"Reflect",{get:i})},function(t,e,n){var i=n(239),r=n(196),o=n(200) +r(r.S,"Reflect",{getOwnPropertyDescriptor:function a(t,e){return i.f(o(t),e)}})},function(t,e,n){var i=n(196),r=n(247),o=n(200) +i(i.S,"Reflect",{getPrototypeOf:function a(t){return r(o(t))}})},function(t,e,n){var i=n(196) +i(i.S,"Reflect",{has:function r(t,e){return e in t}})},function(t,e,n){var i=n(196),r=n(200),o=Object.isExtensible +i(i.S,"Reflect",{isExtensible:function a(t){return r(t),!o||o(t)}})},function(t,e,n){var i=n(196) +i(i.S,"Reflect",{ownKeys:n(431)})},function(t,e,n){var i=n(238),r=n(231),o=n(200),a=n(192).Reflect t.exports=a&&a.ownKeys||function s(t){var e=i.f(o(t)),n=r.f -return n?e.concat(n(t)):e}},function(t,e,n){var i=n(195),r=n(199),o=Object.preventExtensions +return n?e.concat(n(t)):e}},function(t,e,n){var i=n(196),r=n(200),o=Object.preventExtensions i(i.S,"Reflect",{preventExtensions:function a(t){r(t) try{return o&&o(t),!0}catch(e){return!1}}})},function(t,e,n){function i(t,e,n){var l=arguments.length<4?t:arguments[3],h=o.f(c(t),e),p,f if(!h){if(d(f=a(t)))return i(f,e,n,l) -h=u(0)}return s(h,"value")?!(h.writable===!1||!d(l))&&(p=o.f(l,e)||u(0),p.value=n,r.f(l,e,p),!0):void 0!==h.set&&(h.set.call(l,n),!0)}var r=n(198),o=n(238),a=n(246),s=n(192),l=n(195),u=n(204),c=n(199),d=n(200) +h=u(0)}return s(h,"value")?!(h.writable===!1||!d(l))&&(p=o.f(l,e)||u(0),p.value=n,r.f(l,e,p),!0):void 0!==h.set&&(h.set.call(l,n),!0)}var r=n(199),o=n(239),a=n(247),s=n(193),l=n(196),u=n(205),c=n(200),d=n(201) -l(l.S,"Reflect",{set:i})},function(t,e,n){var i=n(195),r=n(260) +l(l.S,"Reflect",{set:i})},function(t,e,n){var i=n(196),r=n(261) r&&i(i.S,"Reflect",{setPrototypeOf:function o(t,e){r.check(t,e) try{return r.set(t,e),!0}catch(n){return!1}}})},function(t,e,n){"use strict" -var i=n(195),r=n(223)(!0) -i(i.P,"Array",{includes:function o(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(373)("includes")},function(t,e,n){"use strict" -var i=n(195),r=n(314)(!0) +var i=n(196),r=n(224)(!0) +i(i.P,"Array",{includes:function o(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(374)("includes")},function(t,e,n){"use strict" +var i=n(196),r=n(315)(!0) i(i.P,"String",{at:function o(t){return r(this,t)}})},function(t,e,n){"use strict" -var i=n(195),r=n(437) -i(i.P,"String",{padStart:function o(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},function(t,e,n){var i=n(224),r=n(278),o=n(222) +var i=n(196),r=n(438) +i(i.P,"String",{padStart:function o(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},function(t,e,n){var i=n(225),r=n(279),o=n(223) t.exports=function(t,e,n,a){var s=String(o(t)),l=s.length,u=void 0===n?" ":String(n),c=i(e) if(c<=l||""==u)return s var d=c-l,h=r.call(u,Math.ceil(d/u.length)) return h.length>d&&(h=h.slice(0,d)),a?h+s:s+h}},function(t,e,n){"use strict" -var i=n(195),r=n(437) +var i=n(196),r=n(438) i(i.P,"String",{padEnd:function o(t){return r(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},function(t,e,n){"use strict" -n(270)("trimLeft",function(t){return function e(){return t(this,1)}},"trimStart")},function(t,e,n){"use strict" -n(270)("trimRight",function(t){return function e(){return t(this,2)}},"trimEnd")},function(t,e,n){"use strict" -var i=n(195),r=n(222),o=n(224),a=n(321),s=n(383),l=RegExp.prototype,u=function(t,e){this._r=t,this._s=e} -n(317)(u,"RegExp String",function c(){var t=this._r.exec(this._s) +n(271)("trimLeft",function(t){return function e(){return t(this,1)}},"trimStart")},function(t,e,n){"use strict" +n(271)("trimRight",function(t){return function e(){return t(this,2)}},"trimEnd")},function(t,e,n){"use strict" +var i=n(196),r=n(223),o=n(225),a=n(322),s=n(384),l=RegExp.prototype,u=function(t,e){this._r=t,this._s=e} +n(318)(u,"RegExp String",function c(){var t=this._r.exec(this._s) return{value:t,done:null===t}}),i(i.P,"String",{matchAll:function d(t){if(r(this),!a(t))throw TypeError(t+" is not a regexp!") var e=String(this),n="flags"in l?String(t.flags):s.call(t),i=new RegExp(t.source,~n.indexOf("g")?n:"g"+n) -return i.lastIndex=o(t.lastIndex),new u(i,e)}})},function(t,e,n){n(214)("asyncIterator")},function(t,e,n){n(214)("observable")},function(t,e,n){var i=n(195),r=n(430),o=n(219),a=n(238),s=n(350) +return i.lastIndex=o(t.lastIndex),new u(i,e)}})},function(t,e,n){n(215)("asyncIterator")},function(t,e,n){n(215)("observable")},function(t,e,n){var i=n(196),r=n(431),o=n(220),a=n(239),s=n(351) i(i.S,"Object",{getOwnPropertyDescriptors:function l(t){for(var e=o(t),n=a.f,i=r(e),l={},u=0,c;i.length>u;)s(l,c=i[u++],n(e,c)) -return l}})},function(t,e,n){var i=n(195),r=n(446)(!1) -i(i.S,"Object",{values:function o(t){return r(t)}})},function(t,e,n){var i=n(217),r=n(219),o=n(231).f +return l}})},function(t,e,n){var i=n(196),r=n(447)(!1) +i(i.S,"Object",{values:function o(t){return r(t)}})},function(t,e,n){var i=n(218),r=n(220),o=n(232).f t.exports=function(t){return function(e){for(var n=r(e),a=i(n),s=a.length,l=0,u=[],c;s>l;)o.call(n,c=a[l++])&&u.push(t?[c,n[c]]:n[c]) -return u}}},function(t,e,n){var i=n(195),r=n(446)(!0) +return u}}},function(t,e,n){var i=n(196),r=n(447)(!0) i(i.S,"Object",{entries:function o(t){return r(t)}})},function(t,e,n){"use strict" -var i=n(195),r=n(245),o=n(208),a=n(198) -n(193)&&i(i.P+n(449),"Object",{__defineGetter__:function s(t,e){a.f(r(this),t,{get:o(e),enumerable:!0,configurable:!0})}})},function(t,e,n){t.exports=n(215)||!n(194)(function(){var t=Math.random() -__defineSetter__.call(null,t,function(){}),delete n(191)[t]})},function(t,e,n){"use strict" -var i=n(195),r=n(245),o=n(208),a=n(198) -n(193)&&i(i.P+n(449),"Object",{__defineSetter__:function s(t,e){a.f(r(this),t,{set:o(e),enumerable:!0,configurable:!0})}})},function(t,e,n){"use strict" -var i=n(195),r=n(245),o=n(203),a=n(246),s=n(238).f -n(193)&&i(i.P+n(449),"Object",{__lookupGetter__:function l(t){var e=r(this),n=o(t,!0),i +var i=n(196),r=n(246),o=n(209),a=n(199) +n(194)&&i(i.P+n(450),"Object",{__defineGetter__:function s(t,e){a.f(r(this),t,{get:o(e),enumerable:!0,configurable:!0})}})},function(t,e,n){t.exports=n(216)||!n(195)(function(){var t=Math.random() +__defineSetter__.call(null,t,function(){}),delete n(192)[t]})},function(t,e,n){"use strict" +var i=n(196),r=n(246),o=n(209),a=n(199) +n(194)&&i(i.P+n(450),"Object",{__defineSetter__:function s(t,e){a.f(r(this),t,{set:o(e),enumerable:!0,configurable:!0})}})},function(t,e,n){"use strict" +var i=n(196),r=n(246),o=n(204),a=n(247),s=n(239).f +n(194)&&i(i.P+n(450),"Object",{__lookupGetter__:function l(t){var e=r(this),n=o(t,!0),i do if(i=s(e,n))return i.get while(e=a(e))}})},function(t,e,n){"use strict" -var i=n(195),r=n(245),o=n(203),a=n(246),s=n(238).f -n(193)&&i(i.P+n(449),"Object",{__lookupSetter__:function l(t){var e=r(this),n=o(t,!0),i +var i=n(196),r=n(246),o=n(204),a=n(247),s=n(239).f +n(194)&&i(i.P+n(450),"Object",{__lookupSetter__:function l(t){var e=r(this),n=o(t,!0),i do if(i=s(e,n))return i.set -while(e=a(e))}})},function(t,e,n){var i=n(195) -i(i.P+i.R,"Map",{toJSON:n(454)("Map")})},function(t,e,n){var i=n(262),r=n(455) +while(e=a(e))}})},function(t,e,n){var i=n(196) +i(i.P+i.R,"Map",{toJSON:n(455)("Map")})},function(t,e,n){var i=n(263),r=n(456) t.exports=function(t){return function e(){if(i(this)!=t)throw TypeError(t+"#toJSON isn't generic") -return r(this)}}},function(t,e,n){var i=n(393) +return r(this)}}},function(t,e,n){var i=n(394) t.exports=function(t,e){var n=[] -return i(t,!1,n.push,n,e),n}},function(t,e,n){var i=n(195) -i(i.P+i.R,"Set",{toJSON:n(454)("Set")})},function(t,e,n){var i=n(195) -i(i.S,"System",{global:n(191)})},function(t,e,n){var i=n(195),r=n(221) -i(i.S,"Error",{isError:function o(t){return"Error"===r(t)}})},function(t,e,n){var i=n(195) +return i(t,!1,n.push,n,e),n}},function(t,e,n){var i=n(196) +i(i.P+i.R,"Set",{toJSON:n(455)("Set")})},function(t,e,n){var i=n(196) +i(i.S,"System",{global:n(192)})},function(t,e,n){var i=n(196),r=n(222) +i(i.S,"Error",{isError:function o(t){return"Error"===r(t)}})},function(t,e,n){var i=n(196) i(i.S,"Math",{iaddh:function r(t,e,n,i){var r=t>>>0,o=e>>>0,a=n>>>0 -return o+(i>>>0)+((r&a|(r|a)&~(r+a>>>0))>>>31)|0}})},function(t,e,n){var i=n(195) +return o+(i>>>0)+((r&a|(r|a)&~(r+a>>>0))>>>31)|0}})},function(t,e,n){var i=n(196) i(i.S,"Math",{isubh:function r(t,e,n,i){var r=t>>>0,o=e>>>0,a=n>>>0 -return o-(i>>>0)-((~r&a|~(r^a)&r-a>>>0)>>>31)|0}})},function(t,e,n){var i=n(195) +return o-(i>>>0)-((~r&a|~(r^a)&r-a>>>0)>>>31)|0}})},function(t,e,n){var i=n(196) i(i.S,"Math",{imulh:function r(t,e){var n=65535,i=+t,r=+e,o=i&n,a=r&n,s=i>>16,l=r>>16,u=(s*a>>>0)+(o*a>>>16) -return s*l+(u>>16)+((o*l>>>0)+(u&n)>>16)}})},function(t,e,n){var i=n(195) +return s*l+(u>>16)+((o*l>>>0)+(u&n)>>16)}})},function(t,e,n){var i=n(196) i(i.S,"Math",{umulh:function r(t,e){var n=65535,i=+t,r=+e,o=i&n,a=r&n,s=i>>>16,l=r>>>16,u=(s*a>>>0)+(o*a>>>16) -return s*l+(u>>>16)+((o*l>>>0)+(u&n)>>>16)}})},function(t,e,n){var i=n(464),r=n(199),o=i.key,a=i.set -i.exp({defineMetadata:function s(t,e,n,i){a(t,e,r(n),o(i))}})},function(t,e,n){var i=n(398),r=n(195),o=n(210)("metadata"),a=o.store||(o.store=new(n(402))),s=function(t,e,n){var r=a.get(t) +return s*l+(u>>>16)+((o*l>>>0)+(u&n)>>>16)}})},function(t,e,n){var i=n(465),r=n(200),o=i.key,a=i.set +i.exp({defineMetadata:function s(t,e,n,i){a(t,e,r(n),o(i))}})},function(t,e,n){var i=n(399),r=n(196),o=n(211)("metadata"),a=o.store||(o.store=new(n(403))),s=function(t,e,n){var r=a.get(t) if(!r){if(!n)return a.set(t,r=new i)}var o=r.get(e) if(!o){if(!n)return @@ -3893,33 +3893,33 @@ r.set(e,o=new i)}return o},l=function(t,e,n){var i=s(e,n,!1) return void 0!==i&&i.has(t)},u=function(t,e,n){var i=s(e,n,!1) return void 0===i?void 0:i.get(t)},c=function(t,e,n,i){s(n,i,!0).set(t,e)},d=function(t,e){var n=s(t,e,!1),i=[] return n&&n.forEach(function(t,e){i.push(e)}),i},h=function(t){return void 0===t||"symbol"==typeof t?t:String(t)},p=function(t){r(r.S,"Reflect",t)} -t.exports={store:a,map:s,has:l,get:u,set:c,keys:d,key:h,exp:p}},function(t,e,n){var i=n(464),r=n(199),o=i.key,a=i.map,s=i.store +t.exports={store:a,map:s,has:l,get:u,set:c,keys:d,key:h,exp:p}},function(t,e,n){var i=n(465),r=n(200),o=i.key,a=i.map,s=i.store i.exp({deleteMetadata:function l(t,e){var n=arguments.length<3?void 0:o(arguments[2]),i=a(r(e),n,!1) if(void 0===i||!i["delete"](t))return!1 if(i.size)return!0 var l=s.get(e) -return l["delete"](n),!!l.size||s["delete"](e)}})},function(t,e,n){var i=n(464),r=n(199),o=n(246),a=i.has,s=i.get,l=i.key,u=function(t,e,n){var i=a(t,e,n) +return l["delete"](n),!!l.size||s["delete"](e)}})},function(t,e,n){var i=n(465),r=n(200),o=n(247),a=i.has,s=i.get,l=i.key,u=function(t,e,n){var i=a(t,e,n) if(i)return s(t,e,n) var r=o(e) return null!==r?u(t,r,n):void 0} -i.exp({getMetadata:function c(t,e){return u(t,r(e),arguments.length<3?void 0:l(arguments[2]))}})},function(t,e,n){var i=n(401),r=n(455),o=n(464),a=n(199),s=n(246),l=o.keys,u=o.key,c=function(t,e){var n=l(t,e),o=s(t) +i.exp({getMetadata:function c(t,e){return u(t,r(e),arguments.length<3?void 0:l(arguments[2]))}})},function(t,e,n){var i=n(402),r=n(456),o=n(465),a=n(200),s=n(247),l=o.keys,u=o.key,c=function(t,e){var n=l(t,e),o=s(t) if(null===o)return n var a=c(o,e) return a.length?n.length?r(new i(n.concat(a))):a:n} -o.exp({getMetadataKeys:function d(t){return c(a(t),arguments.length<2?void 0:u(arguments[1]))}})},function(t,e,n){var i=n(464),r=n(199),o=i.get,a=i.key -i.exp({getOwnMetadata:function s(t,e){return o(t,r(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var i=n(464),r=n(199),o=i.keys,a=i.key -i.exp({getOwnMetadataKeys:function s(t){return o(r(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var i=n(464),r=n(199),o=n(246),a=i.has,s=i.key,l=function(t,e,n){var i=a(t,e,n) +o.exp({getMetadataKeys:function d(t){return c(a(t),arguments.length<2?void 0:u(arguments[1]))}})},function(t,e,n){var i=n(465),r=n(200),o=i.get,a=i.key +i.exp({getOwnMetadata:function s(t,e){return o(t,r(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var i=n(465),r=n(200),o=i.keys,a=i.key +i.exp({getOwnMetadataKeys:function s(t){return o(r(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var i=n(465),r=n(200),o=n(247),a=i.has,s=i.key,l=function(t,e,n){var i=a(t,e,n) if(i)return!0 var r=o(e) return null!==r&&l(t,r,n)} -i.exp({hasMetadata:function u(t,e){return l(t,r(e),arguments.length<3?void 0:s(arguments[2]))}})},function(t,e,n){var i=n(464),r=n(199),o=i.has,a=i.key -i.exp({hasOwnMetadata:function s(t,e){return o(t,r(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var i=n(464),r=n(199),o=n(208),a=i.key,s=i.set -i.exp({metadata:function l(t,e){return function n(i,l){s(t,e,(void 0!==l?r:o)(i),a(l))}}})},function(t,e,n){var i=n(195),r=n(396)(),o=n(191).process,a="process"==n(221)(o) +i.exp({hasMetadata:function u(t,e){return l(t,r(e),arguments.length<3?void 0:s(arguments[2]))}})},function(t,e,n){var i=n(465),r=n(200),o=i.has,a=i.key +i.exp({hasOwnMetadata:function s(t,e){return o(t,r(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var i=n(465),r=n(200),o=n(209),a=i.key,s=i.set +i.exp({metadata:function l(t,e){return function n(i,l){s(t,e,(void 0!==l?r:o)(i),a(l))}}})},function(t,e,n){var i=n(196),r=n(397)(),o=n(192).process,a="process"==n(222)(o) i(i.G,{asap:function s(t){var e=a&&o.domain r(e?e.bind(t):t)}})},function(t,e,n){"use strict" -var i=n(195),r=n(191),o=n(196),a=n(396)(),s=n(212)("observable"),l=n(208),u=n(199),c=n(392),d=n(397),h=n(197),p=n(393),f=p.RETURN,m=function(t){return null==t?void 0:l(t)},g=function(t){var e=t._c +var i=n(196),r=n(192),o=n(197),a=n(397)(),s=n(213)("observable"),l=n(209),u=n(200),c=n(393),d=n(398),h=n(198),p=n(394),f=p.RETURN,m=function(t){return null==t?void 0:l(t)},g=function(t){var e=t._c e&&(t._c=void 0,e())},v=function(t){return void 0===t._o},y=function(t){v(t)||(t._o=void 0,g(t))},_=function(t,e){u(t),this._c=void 0,this._o=t,t=new b(this) try{var n=e(t),i=n null!=n&&("function"==typeof n.unsubscribe?n=function(){i.unsubscribe()}:l(n),this._c=n)}catch(r){return void t.error(r)}v(this)&&g(this)} @@ -3949,17 +3949,17 @@ return a(function(){if(!n){try{if(p(t,!1,function(t){if(e.next(t),n)return f})== return void e.error(i)}e.complete()}}),function(){n=!0}})},of:function N(){for(var t=0,e=arguments.length,n=Array(e);ta;)(n[a]=arguments[a++])===s&&(l=!0) return function(){var i=this,o=arguments.length,a=0,u=0,c if(!l&&!o)return r(t,n,i) if(c=n.slice(),l)for(;e>a;a++)c[a]===s&&(c[a]=arguments[u++]) for(;o>u;)c.push(arguments[u++]) -return r(t,c,i)}}},function(t,e,n){t.exports=n(191)},function(t,e,n){var i=n(195),r=n(395) -i(i.G+i.B,{setImmediate:r.set,clearImmediate:r.clear})},function(t,e,n){for(var i=n(380),r=n(205),o=n(191),a=n(197),s=n(316),l=n(212),u=l("iterator"),c=l("toStringTag"),d=s.Array,h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],p=0;p<5;p++){ +return r(t,c,i)}}},function(t,e,n){t.exports=n(192)},function(t,e,n){var i=n(196),r=n(396) +i(i.G+i.B,{setImmediate:r.set,clearImmediate:r.clear})},function(t,e,n){for(var i=n(381),r=n(206),o=n(192),a=n(198),s=n(317),l=n(213),u=l("iterator"),c=l("toStringTag"),d=s.Array,h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],p=0;p<5;p++){ var f=h[p],m=o[f],g=m&&m.prototype,v if(g){g[u]||a(g,u,d),g[c]||a(g,c,f),s[f]=d for(v in i)g[v]||r(g,v,i[v],!0)}}},function(t,e,n){(function(e,n){!function(e){"use strict" @@ -4033,7 +4033,7 @@ if(n.tryLoc===t){var i=n.completion if("throw"===i.type){var r=i.arg p(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:m(t),resultName:e,nextLoc:n},S}}}("object"==typeof e?e:"object"==typeof window?window:"object"==typeof self?self:this) -}).call(e,function(){return this}(),n(10))},function(t,e,n){n(482),t.exports=n(196).RegExp.escape},function(t,e,n){var i=n(195),r=n(483)(/[\\^$*+?.()|[\]{}]/g,"\\$&") +}).call(e,function(){return this}(),n(10))},function(t,e,n){n(483),t.exports=n(197).RegExp.escape},function(t,e,n){var i=n(196),r=n(484)(/[\\^$*+?.()|[\]{}]/g,"\\$&") i(i.S,"RegExp",{escape:function o(t){return r(t)}})},function(t,e){t.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e return function(e){return String(e).replace(t,n)}}},function(module,exports){"function"!=typeof JSON.decycle&&(JSON.decycle=function t(e){"use strict" var n=[],i=[] @@ -4047,19 +4047,19 @@ l.forEach(function(n){Object.prototype.hasOwnProperty.call(t,n)&&(s[n]=r(t[n],e+ var px=/^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/ return function rez(value){var i,item,name,path if(value&&"object"==typeof value)if("[object Array]"===Object.prototype.toString.apply(value))for(i=0;i to avoid XSS via location.hash (#9521)\n\tquickExpr = /^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/,\n\n\t// Check if a string has a non-whitespace character in it\n\trnotwhite = /\\S/,\n\n\t// Used for trimming whitespace\n\ttrimLeft = /^\\s+/,\n\ttrimRight = /\\s+$/,\n\n\t// Match a standalone tag\n\trsingleTag = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,\n\n\t// JSON RegExp\n\trvalidchars = /^[\\],:{}\\s]*$/,\n\trvalidescape = /\\\\(?:["\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\n\trvalidtokens = /"[^"\\\\\\n\\r]*"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\n\trvalidbraces = /(?:^|:|,)(?:\\s*\\[)+/g,\n\n\t// Useragent RegExp\n\trwebkit = /(webkit)[ \\/]([\\w.]+)/,\n\tropera = /(opera)(?:.*version)?[ \\/]([\\w.]+)/,\n\trmsie = /(msie) ([\\w.]+)/,\n\trmozilla = /(mozilla)(?:.*? rv:([\\w.]+))?/,\n\n\t// Matches dashed string for camelizing\n\trdashAlpha = /-([a-z]|[0-9])/ig,\n\trmsPrefix = /^-ms-/,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn ( letter + "" ).toUpperCase();\n\t},\n\n\t// Keep a UserAgent string for use with jQuery.browser\n\tuserAgent = navigator.userAgent,\n\n\t// For matching the engine and version of the browser\n\tbrowserMatch,\n\n\t// The deferred used on DOM ready\n\treadyList,\n\n\t// The ready event handler\n\tDOMContentLoaded,\n\n\t// Save a reference to some core methods\n\ttoString = Object.prototype.toString,\n\thasOwn = Object.prototype.hasOwnProperty,\n\tpush = Array.prototype.push,\n\tslice = Array.prototype.slice,\n\ttrim = String.prototype.trim,\n\tindexOf = Array.prototype.indexOf,\n\n\t// [[Class]] -> type pairs\n\tclass2type = {};\n\njQuery.fn = jQuery.prototype = {\n\tconstructor: jQuery,\n\tinit: function( selector, context, rootjQuery ) {\n\t\tvar match, elem, ret, doc;\n\n\t\t// Handle $(""), $(null), or $(undefined)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle $(DOMElement)\n\t\tif ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\t\t}\n\n\t\t// The body element only exists once, optimize finding it\n\t\tif ( selector === "body" && !context && document.body ) {\n\t\t\tthis.context = document;\n\t\t\tthis[0] = document.body;\n\t\t\tthis.selector = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === "string" ) {\n\t\t\t// Are we dealing with HTML string or an ID?\n\t\t\tif ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = quickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Verify a match, and that no context was specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\t\t\t\t\tdoc = ( context ? context.ownerDocument || context : document );\n\n\t\t\t\t\t// If a single string is passed in and it\'s a single tag\n\t\t\t\t\t// just do a createElement and skip the rest\n\t\t\t\t\tret = rsingleTag.exec( selector );\n\n\t\t\t\t\tif ( ret ) {\n\t\t\t\t\t\tif ( jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\t\tselector = [ document.createElement( ret[1] ) ];\n\t\t\t\t\t\t\tjQuery.fn.attr.call( selector, context, true );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tselector = [ doc.createElement( ret[1] ) ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tret = jQuery.buildFragment( [ match[1] ], [ doc ] );\n\t\t\t\t\t\tselector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.merge( this, selector );\n\n\t\t\t\t// HANDLE: $("#id")\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn rootjQuery.ready( selector );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t},\n\n\t// Start with an empty selector\n\tselector: "",\n\n\t// The current version of jQuery being used\n\tjquery: "1.7.2",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\t// The number of elements contained in the matched element set\n\tsize: function() {\n\t\treturn this.length;\n\t},\n\n\ttoArray: function() {\n\t\treturn slice.call( this, 0 );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num == null ?\n\n\t\t\t// Return a \'clean\' array\n\t\t\tthis.toArray() :\n\n\t\t\t// Return just the object\n\t\t\t( num < 0 ? this[ this.length + num ] : this[ num ] );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems, name, selector ) {\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = this.constructor();\n\n\t\tif ( jQuery.isArray( elems ) ) {\n\t\t\tpush.apply( ret, elems );\n\n\t\t} else {\n\t\t\tjQuery.merge( ret, elems );\n\t\t}\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\tret.context = this.context;\n\n\t\tif ( name === "find" ) {\n\t\t\tret.selector = this.selector + ( this.selector ? " " : "" ) + selector;\n\t\t} else if ( name ) {\n\t\t\tret.selector = this.selector + "." + name + "(" + selector + ")";\n\t\t}\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tready: function( fn ) {\n\t\t// Attach the listeners\n\t\tjQuery.bindReady();\n\n\t\t// Add the callback\n\t\treadyList.add( fn );\n\n\t\treturn this;\n\t},\n\n\teq: function( i ) {\n\t\ti = +i;\n\t\treturn i === -1 ?\n\t\t\tthis.slice( i ) :\n\t\t\tthis.slice( i, i + 1 );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ),\n\t\t\t"slice", slice.call(arguments).join(",") );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array\'s method, not like a jQuery method.\n\tpush: push,\n\tsort: [].sort,\n\tsplice: [].splice\n};\n\n// Give the init function the jQuery prototype for later instantiation\njQuery.fn.init.prototype = jQuery.fn;\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === "boolean" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== "object" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( length === i ) {\n\t\ttarget = this;\n\t\t--i;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we\'re merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don\'t bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\tnoConflict: function( deep ) {\n\t\tif ( window.$ === jQuery ) {\n\t\t\twindow.$ = _$;\n\t\t}\n\n\t\tif ( deep && window.jQuery === jQuery ) {\n\t\t\twindow.jQuery = _jQuery;\n\t\t}\n\n\t\treturn jQuery;\n\t},\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\t\t// Either a released hold or an DOMready/load event and not yet ready\n\t\tif ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {\n\t\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\t\tif ( !document.body ) {\n\t\t\t\treturn setTimeout( jQuery.ready, 1 );\n\t\t\t}\n\n\t\t\t// Remember that the DOM is ready\n\t\t\tjQuery.isReady = true;\n\n\t\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there are functions bound, to execute\n\t\t\treadyList.fireWith( document, [ jQuery ] );\n\n\t\t\t// Trigger any bound ready events\n\t\t\tif ( jQuery.fn.trigger ) {\n\t\t\t\tjQuery( document ).trigger( "ready" ).off( "ready" );\n\t\t\t}\n\t\t}\n\t},\n\n\tbindReady: function() {\n\t\tif ( readyList ) {\n\t\t\treturn;\n\t\t}\n\n\t\treadyList = jQuery.Callbacks( "once memory" );\n\n\t\t// Catch cases where $(document).ready() is called after the\n\t\t// browser event has already occurred.\n\t\tif ( document.readyState === "complete" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\treturn setTimeout( jQuery.ready, 1 );\n\t\t}\n\n\t\t// Mozilla, Opera and webkit nightlies currently support this event\n\t\tif ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( "load", jQuery.ready, false );\n\n\t\t// If IE event model is used\n\t\t} else if ( document.attachEvent ) {\n\t\t\t// ensure firing before onload,\n\t\t\t// maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( "onreadystatechange", DOMContentLoaded );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( "onload", jQuery.ready );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar toplevel = false;\n\n\t\t\ttry {\n\t\t\t\ttoplevel = window.frameElement == null;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( document.documentElement.doScroll && toplevel ) {\n\t\t\t\tdoScrollCheck();\n\t\t\t}\n\t\t}\n\t},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren\'t supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === "function";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === "array";\n\t},\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\treturn !isNaN( parseFloat(obj) ) && isFinite( obj );\n\t},\n\n\ttype: function( obj ) {\n\t\treturn obj == null ?\n\t\t\tString( obj ) :\n\t\t\tclass2type[ toString.call(obj) ] || "object";\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don\'t pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, "constructor") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\n\t\tvar key;\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tfor ( var name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tparseJSON: function( data ) {\n\t\tif ( typeof data !== "string" || !data ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Make sure leading/trailing whitespace is removed (IE can\'t handle it)\n\t\tdata = jQuery.trim( data );\n\n\t\t// Attempt to parse using the native JSON parser first\n\t\tif ( window.JSON && window.JSON.parse ) {\n\t\t\treturn window.JSON.parse( data );\n\t\t}\n\n\t\t// Make sure the incoming data is actual JSON\n\t\t// Logic borrowed from http://json.org/json2.js\n\t\tif ( rvalidchars.test( data.replace( rvalidescape, "@" )\n\t\t\t.replace( rvalidtokens, "]" )\n\t\t\t.replace( rvalidbraces, "")) ) {\n\n\t\t\treturn ( new Function( "return " + data ) )();\n\n\t\t}\n\t\tjQuery.error( "Invalid JSON: " + data );\n\t},\n\n\t// Cross-browser xml parsing\n\tparseXML: function( data ) {\n\t\tif ( typeof data !== "string" || !data ) {\n\t\t\treturn null;\n\t\t}\n\t\tvar xml, tmp;\n\t\ttry {\n\t\t\tif ( window.DOMParser ) { // Standard\n\t\t\t\ttmp = new DOMParser();\n\t\t\t\txml = tmp.parseFromString( data , "text/xml" );\n\t\t\t} else { // IE\n\t\t\t\txml = new ActiveXObject( "Microsoft.XMLDOM" );\n\t\t\t\txml.async = "false";\n\t\t\t\txml.loadXML( data );\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\txml = undefined;\n\t\t}\n\t\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {\n\t\t\tjQuery.error( "Invalid XML: " + data );\n\t\t}\n\t\treturn xml;\n\t},\n\n\tnoop: function() {},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && rnotwhite.test( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ "eval" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( object, callback, args ) {\n\t\tvar name, i = 0,\n\t\t\tlength = object.length,\n\t\t\tisObj = length === undefined || jQuery.isFunction( object );\n\n\t\tif ( args ) {\n\t\t\tif ( isObj ) {\n\t\t\t\tfor ( name in object ) {\n\t\t\t\t\tif ( callback.apply( object[ name ], args ) === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( ; i < length; ) {\n\t\t\t\t\tif ( callback.apply( object[ i++ ], args ) === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isObj ) {\n\t\t\t\tfor ( name in object ) {\n\t\t\t\t\tif ( callback.call( object[ name ], name, object[ name ] ) === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( ; i < length; ) {\n\t\t\t\t\tif ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn object;\n\t},\n\n\t// Use native String.trim function wherever possible\n\ttrim: trim ?\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t"" :\n\t\t\t\ttrim.call( text );\n\t\t} :\n\n\t\t// Otherwise use our own trimming functionality\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t"" :\n\t\t\t\ttext.toString().replace( trimLeft, "" ).replace( trimRight, "" );\n\t\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( array, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( array != null ) {\n\t\t\t// The window, strings (and functions) also have \'length\'\n\t\t\t// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930\n\t\t\tvar type = jQuery.type( array );\n\n\t\t\tif ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {\n\t\t\t\tpush.call( ret, array );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( ret, array );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, array, i ) {\n\t\tvar len;\n\n\t\tif ( array ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( array, elem, i );\n\t\t\t}\n\n\t\t\tlen = array.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in array && array[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar i = first.length,\n\t\t\tj = 0;\n\n\t\tif ( typeof second.length === "number" ) {\n\t\t\tfor ( var l = second.length; j < l; j++ ) {\n\t\t\t\tfirst[ i++ ] = second[ j ];\n\t\t\t}\n\n\t\t} else {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, inv ) {\n\t\tvar ret = [], retVal;\n\t\tinv = !!inv;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( var i = 0, length = elems.length; i < length; i++ ) {\n\t\t\tretVal = !!callback( elems[ i ], i );\n\t\t\tif ( inv !== retVal ) {\n\t\t\t\tret.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value, key, ret = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\t// jquery objects are treated as arrays\n\t\t\tisArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;\n\n\t\t// Go through the array, translating each of the items to their\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( key in elems ) {\n\t\t\t\tvalue = callback( elems[ key ], key, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn ret.concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tif ( typeof context === "string" ) {\n\t\t\tvar tmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\tvar args = slice.call( arguments, 2 ),\n\t\t\tproxy = function() {\n\t\t\t\treturn fn.apply( context, args.concat( slice.call( arguments ) ) );\n\t\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\t// Mutifunctional method to get and set values to a collection\n\t// The value/s can optionally be executed if it\'s a function\n\taccess: function( elems, fn, key, value, chainable, emptyGet, pass ) {\n\t\tvar exec,\n\t\t\tbulk = key == null,\n\t\t\ti = 0,\n\t\t\tlength = elems.length;\n\n\t\t// Sets many values\n\t\tif ( key && typeof key === "object" ) {\n\t\t\tfor ( i in key ) {\n\t\t\t\tjQuery.access( elems, fn, i, key[i], 1, emptyGet, value );\n\t\t\t}\n\t\t\tchainable = 1;\n\n\t\t// Sets one value\n\t\t} else if ( value !== undefined ) {\n\t\t\t// Optionally, function values get executed if exec is true\n\t\t\texec = pass === undefined && jQuery.isFunction( value );\n\n\t\t\tif ( bulk ) {\n\t\t\t\t// Bulk operations only iterate when executing function values\n\t\t\t\tif ( exec ) {\n\t\t\t\t\texec = fn;\n\t\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\t\treturn exec.call( jQuery( elem ), value );\n\t\t\t\t\t};\n\n\t\t\t\t// Otherwise they run against the entire set\n\t\t\t\t} else {\n\t\t\t\t\tfn.call( elems, value );\n\t\t\t\t\tfn = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\t\t\t\tfor (; i < length; i++ ) {\n\t\t\t\t\tfn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchainable = 1;\n\t\t}\n\n\t\treturn chainable ?\n\t\t\telems :\n\n\t\t\t// Gets\n\t\t\tbulk ?\n\t\t\t\tfn.call( elems ) :\n\t\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n\t},\n\n\tnow: function() {\n\t\treturn ( new Date() ).getTime();\n\t},\n\n\t// Use of jQuery.browser is frowned upon.\n\t// More details: http://docs.jquery.com/Utilities/jQuery.browser\n\tuaMatch: function( ua ) {\n\t\tua = ua.toLowerCase();\n\n\t\tvar match = rwebkit.exec( ua ) ||\n\t\t\tropera.exec( ua ) ||\n\t\t\trmsie.exec( ua ) ||\n\t\t\tua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||\n\t\t\t[];\n\n\t\treturn { browser: match[1] || "", version: match[2] || "0" };\n\t},\n\n\tsub: function() {\n\t\tfunction jQuerySub( selector, context ) {\n\t\t\treturn new jQuerySub.fn.init( selector, context );\n\t\t}\n\t\tjQuery.extend( true, jQuerySub, this );\n\t\tjQuerySub.superclass = this;\n\t\tjQuerySub.fn = jQuerySub.prototype = this();\n\t\tjQuerySub.fn.constructor = jQuerySub;\n\t\tjQuerySub.sub = this.sub;\n\t\tjQuerySub.fn.init = function init( selector, context ) {\n\t\t\tif ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {\n\t\t\t\tcontext = jQuerySub( context );\n\t\t\t}\n\n\t\t\treturn jQuery.fn.init.call( this, selector, context, rootjQuerySub );\n\t\t};\n\t\tjQuerySub.fn.init.prototype = jQuerySub.fn;\n\t\tvar rootjQuerySub = jQuerySub(document);\n\t\treturn jQuerySub;\n\t},\n\n\tbrowser: {}\n});\n\n// Populate the class2type map\njQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {\n\tclass2type[ "[object " + name + "]" ] = name.toLowerCase();\n});\n\nbrowserMatch = jQuery.uaMatch( userAgent );\nif ( browserMatch.browser ) {\n\tjQuery.browser[ browserMatch.browser ] = true;\n\tjQuery.browser.version = browserMatch.version;\n}\n\n// Deprecated, use jQuery.browser.webkit instead\nif ( jQuery.browser.webkit ) {\n\tjQuery.browser.safari = true;\n}\n\n// IE doesn\'t match non-breaking spaces with \\s\nif ( rnotwhite.test( "\\xA0" ) ) {\n\ttrimLeft = /^[\\s\\xA0]+/;\n\ttrimRight = /[\\s\\xA0]+$/;\n}\n\n// All jQuery objects should point back to these\nrootjQuery = jQuery(document);\n\n// Cleanup functions for the document ready method\nif ( document.addEventListener ) {\n\tDOMContentLoaded = function() {\n\t\tdocument.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );\n\t\tjQuery.ready();\n\t};\n\n} else if ( document.attachEvent ) {\n\tDOMContentLoaded = function() {\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( document.readyState === "complete" ) {\n\t\t\tdocument.detachEvent( "onreadystatechange", DOMContentLoaded );\n\t\t\tjQuery.ready();\n\t\t}\n\t};\n}\n\n// The DOM ready check for Internet Explorer\nfunction doScrollCheck() {\n\tif ( jQuery.isReady ) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\t// If IE is used, use the trick by Diego Perini\n\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\tdocument.documentElement.doScroll("left");\n\t} catch(e) {\n\t\tsetTimeout( doScrollCheck, 1 );\n\t\treturn;\n\t}\n\n\t// and execute any waiting functions\n\tjQuery.ready();\n}\n\nreturn jQuery;\n\n})();\n\n\n// String to Object flags format cache\nvar flagsCache = {};\n\n// Convert String-formatted flags into Object-formatted ones and store in cache\nfunction createFlags( flags ) {\n\tvar object = flagsCache[ flags ] = {},\n\t\ti, length;\n\tflags = flags.split( /\\s+/ );\n\tfor ( i = 0, length = flags.length; i < length; i++ ) {\n\t\tobject[ flags[i] ] = true;\n\t}\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\tflags:\tan optional list of space-separated flags that will change how\n *\t\t\tthe callback list behaves\n *\n * By default a callback list will act like an event callback list and can be\n * "fired" multiple times.\n *\n * Possible flags:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest "memorized"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( flags ) {\n\n\t// Convert flags from String-formatted to Object-formatted\n\t// (we check in cache first)\n\tflags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};\n\n\tvar // Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = [],\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Add one or several callbacks to the list\n\t\tadd = function( args ) {\n\t\t\tvar i,\n\t\t\t\tlength,\n\t\t\t\telem,\n\t\t\t\ttype,\n\t\t\t\tactual;\n\t\t\tfor ( i = 0, length = args.length; i < length; i++ ) {\n\t\t\t\telem = args[ i ];\n\t\t\t\ttype = jQuery.type( elem );\n\t\t\t\tif ( type === "array" ) {\n\t\t\t\t\t// Inspect recursively\n\t\t\t\t\tadd( elem );\n\t\t\t\t} else if ( type === "function" ) {\n\t\t\t\t\t// Add if not in unique mode and callback is not in\n\t\t\t\t\tif ( !flags.unique || !self.has( elem ) ) {\n\t\t\t\t\t\tlist.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Fire callbacks\n\t\tfire = function( context, args ) {\n\t\t\targs = args || [];\n\t\t\tmemory = !flags.memory || [ context, args ];\n\t\t\tfired = true;\n\t\t\tfiring = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {\n\t\t\t\t\tmemory = true; // Mark as halted\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( !flags.once ) {\n\t\t\t\t\tif ( stack && stack.length ) {\n\t\t\t\t\t\tmemory = stack.shift();\n\t\t\t\t\t\tself.fireWith( memory[ 0 ], memory[ 1 ] );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory === true ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t} else {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tvar length = list.length;\n\t\t\t\t\tadd( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we\'re not firing then\n\t\t\t\t\t// we should call right away, unless previous\n\t\t\t\t\t// firing was halted (stopOnFalse)\n\t\t\t\t\t} else if ( memory && memory !== true ) {\n\t\t\t\t\t\tfiringStart = length;\n\t\t\t\t\t\tfire( memory[ 0 ], memory[ 1 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tvar args = arguments,\n\t\t\t\t\t\targIndex = 0,\n\t\t\t\t\t\targLength = args.length;\n\t\t\t\t\tfor ( ; argIndex < argLength ; argIndex++ ) {\n\t\t\t\t\t\tfor ( var i = 0; i < list.length; i++ ) {\n\t\t\t\t\t\t\tif ( args[ argIndex ] === list[ i ] ) {\n\t\t\t\t\t\t\t\t// Handle firingIndex and firingLength\n\t\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\t\tif ( i <= firingLength ) {\n\t\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t\t\tif ( i <= firingIndex ) {\n\t\t\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Remove the element\n\t\t\t\t\t\t\t\tlist.splice( i--, 1 );\n\t\t\t\t\t\t\t\t// If we have some unicity property then\n\t\t\t\t\t\t\t\t// we only need to do this once\n\t\t\t\t\t\t\t\tif ( flags.unique ) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Control if a given callback is in the list\n\t\t\thas: function( fn ) {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tvar i = 0,\n\t\t\t\t\t\tlength = list.length;\n\t\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\t\tif ( fn === list[ i ] ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory || memory === true ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tif ( !flags.once ) {\n\t\t\t\t\t\t\tstack.push( [ context, args ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( !( flags.once && memory ) ) {\n\t\t\t\t\t\tfire( context, args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\n\n\nvar // Static reference to slice\n\tsliceDeferred = [].slice;\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar doneList = jQuery.Callbacks( "once memory" ),\n\t\t\tfailList = jQuery.Callbacks( "once memory" ),\n\t\t\tprogressList = jQuery.Callbacks( "memory" ),\n\t\t\tstate = "pending",\n\t\t\tlists = {\n\t\t\t\tresolve: doneList,\n\t\t\t\treject: failList,\n\t\t\t\tnotify: progressList\n\t\t\t},\n\t\t\tpromise = {\n\t\t\t\tdone: doneList.add,\n\t\t\t\tfail: failList.add,\n\t\t\t\tprogress: progressList.add,\n\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\n\t\t\t\t// Deprecated\n\t\t\t\tisResolved: doneList.fired,\n\t\t\t\tisRejected: failList.fired,\n\n\t\t\t\tthen: function( doneCallbacks, failCallbacks, progressCallbacks ) {\n\t\t\t\t\tdeferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tpipe: function( fnDone, fnFail, fnProgress ) {\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( {\n\t\t\t\t\t\t\tdone: [ fnDone, "resolve" ],\n\t\t\t\t\t\t\tfail: [ fnFail, "reject" ],\n\t\t\t\t\t\t\tprogress: [ fnProgress, "notify" ]\n\t\t\t\t\t\t}, function( handler, data ) {\n\t\t\t\t\t\t\tvar fn = data[ 0 ],\n\t\t\t\t\t\t\t\taction = data[ 1 ],\n\t\t\t\t\t\t\t\treturned;\n\t\t\t\t\t\t\tif ( jQuery.isFunction( fn ) ) {\n\t\t\t\t\t\t\t\tdeferred[ handler ](function() {\n\t\t\t\t\t\t\t\t\treturned = fn.apply( this, arguments );\n\t\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\t\treturned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tnewDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdeferred[ handler ]( newDefer[ action ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\tif ( obj == null ) {\n\t\t\t\t\t\tobj = promise;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor ( var key in promise ) {\n\t\t\t\t\t\t\tobj[ key ] = promise[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn obj;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = promise.promise({}),\n\t\t\tkey;\n\n\t\tfor ( key in lists ) {\n\t\t\tdeferred[ key ] = lists[ key ].fire;\n\t\t\tdeferred[ key + "With" ] = lists[ key ].fireWith;\n\t\t}\n\n\t\t// Handle state\n\t\tdeferred.done( function() {\n\t\t\tstate = "resolved";\n\t\t}, failList.disable, progressList.lock ).fail( function() {\n\t\t\tstate = "rejected";\n\t\t}, doneList.disable, progressList.lock );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( firstParam ) {\n\t\tvar args = sliceDeferred.call( arguments, 0 ),\n\t\t\ti = 0,\n\t\t\tlength = args.length,\n\t\t\tpValues = new Array( length ),\n\t\t\tcount = length,\n\t\t\tpCount = length,\n\t\t\tdeferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?\n\t\t\t\tfirstParam :\n\t\t\t\tjQuery.Deferred(),\n\t\t\tpromise = deferred.promise();\n\t\tfunction resolveFunc( i ) {\n\t\t\treturn function( value ) {\n\t\t\t\targs[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdeferred.resolveWith( deferred, args );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tfunction progressFunc( i ) {\n\t\t\treturn function( value ) {\n\t\t\t\tpValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;\n\t\t\t\tdeferred.notifyWith( promise, pValues );\n\t\t\t};\n\t\t}\n\t\tif ( length > 1 ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {\n\t\t\t\t\targs[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );\n\t\t\t\t} else {\n\t\t\t\t\t--count;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( !count ) {\n\t\t\t\tdeferred.resolveWith( deferred, args );\n\t\t\t}\n\t\t} else if ( deferred !== firstParam ) {\n\t\t\tdeferred.resolveWith( deferred, length ? [ firstParam ] : [] );\n\t\t}\n\t\treturn promise;\n\t}\n});\n\n\n\n\njQuery.support = (function() {\n\n\tvar support,\n\t\tall,\n\t\ta,\n\t\tselect,\n\t\topt,\n\t\tinput,\n\t\tfragment,\n\t\ttds,\n\t\tevents,\n\t\teventName,\n\t\ti,\n\t\tisSupported,\n\t\tdiv = document.createElement( "div" ),\n\t\tdocumentElement = document.documentElement;\n\n\t// Preliminary tests\n\tdiv.setAttribute("className", "t");\n\tdiv.innerHTML = "
a";\n\n\tall = div.getElementsByTagName( "*" );\n\ta = div.getElementsByTagName( "a" )[ 0 ];\n\n\t// Can\'t get basic test support\n\tif ( !all || !all.length || !a ) {\n\t\treturn {};\n\t}\n\n\t// First batch of supports tests\n\tselect = document.createElement( "select" );\n\topt = select.appendChild( document.createElement("option") );\n\tinput = div.getElementsByTagName( "input" )[ 0 ];\n\n\tsupport = {\n\t\t// IE strips leading whitespace when .innerHTML is used\n\t\tleadingWhitespace: ( div.firstChild.nodeType === 3 ),\n\n\t\t// Make sure that tbody elements aren\'t automatically inserted\n\t\t// IE will insert them into empty tables\n\t\ttbody: !div.getElementsByTagName("tbody").length,\n\n\t\t// Make sure that link elements get serialized correctly by innerHTML\n\t\t// This requires a wrapper element in IE\n\t\thtmlSerialize: !!div.getElementsByTagName("link").length,\n\n\t\t// Get the style information from getAttribute\n\t\t// (IE uses .cssText instead)\n\t\tstyle: /top/.test( a.getAttribute("style") ),\n\n\t\t// Make sure that URLs aren\'t manipulated\n\t\t// (IE normalizes it by default)\n\t\threfNormalized: ( a.getAttribute("href") === "/a" ),\n\n\t\t// Make sure that element opacity exists\n\t\t// (IE uses filter instead)\n\t\t// Use a regex to work around a WebKit issue. See #5145\n\t\topacity: /^0.55/.test( a.style.opacity ),\n\n\t\t// Verify style float existence\n\t\t// (IE uses styleFloat instead of cssFloat)\n\t\tcssFloat: !!a.style.cssFloat,\n\n\t\t// Make sure that if no value is specified for a checkbox\n\t\t// that it defaults to "on".\n\t\t// (WebKit defaults to "" instead)\n\t\tcheckOn: ( input.value === "on" ),\n\n\t\t// Make sure that a selected-by-default option has a working selected property.\n\t\t// (WebKit defaults to false instead of true, IE too, if it\'s in an optgroup)\n\t\toptSelected: opt.selected,\n\n\t\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\t\tgetSetAttribute: div.className !== "t",\n\n\t\t// Tests for enctype support on a form(#6743)\n\t\tenctype: !!document.createElement("form").enctype,\n\n\t\t// Makes sure cloning an html5 element does not cause problems\n\t\t// Where outerHTML is undefined, this still works\n\t\thtml5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>",\n\n\t\t// Will be defined later\n\t\tsubmitBubbles: true,\n\t\tchangeBubbles: true,\n\t\tfocusinBubbles: false,\n\t\tdeleteExpando: true,\n\t\tnoCloneEvent: true,\n\t\tinlineBlockNeedsLayout: false,\n\t\tshrinkWrapBlocks: false,\n\t\treliableMarginRight: true,\n\t\tpixelMargin: true\n\t};\n\n\t// jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead\n\tjQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");\n\n\t// Make sure checked status is properly cloned\n\tinput.checked = true;\n\tsupport.noCloneChecked = input.cloneNode( true ).checked;\n\n\t// Make sure that the options inside disabled selects aren\'t marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Test to see if it\'s possible to delete an expando from an element\n\t// Fails in Internet Explorer\n\ttry {\n\t\tdelete div.test;\n\t} catch( e ) {\n\t\tsupport.deleteExpando = false;\n\t}\n\n\tif ( !div.addEventListener && div.attachEvent && div.fireEvent ) {\n\t\tdiv.attachEvent( "onclick", function() {\n\t\t\t// Cloning a node shouldn\'t copy over any\n\t\t\t// bound event handlers (IE does this)\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\t\tdiv.cloneNode( true ).fireEvent( "onclick" );\n\t}\n\n\t// Check if a radio maintains its value\n\t// after being appended to the DOM\n\tinput = document.createElement("input");\n\tinput.value = "t";\n\tinput.setAttribute("type", "radio");\n\tsupport.radioValue = input.value === "t";\n\n\tinput.setAttribute("checked", "checked");\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tinput.setAttribute( "name", "t" );\n\n\tdiv.appendChild( input );\n\tfragment = document.createDocumentFragment();\n\tfragment.appendChild( div.lastChild );\n\n\t// WebKit doesn\'t clone checked state correctly in fragments\n\tsupport.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tsupport.appendChecked = input.checked;\n\n\tfragment.removeChild( input );\n\tfragment.appendChild( div );\n\n\t// Technique from Juriy Zaytsev\n\t// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/\n\t// We only care about the case where non-standard event systems\n\t// are used, namely in IE. Short-circuiting here helps us to\n\t// avoid an eval call (in setAttribute) which can cause CSP\n\t// to go haywire. See: https://developer.mozilla.org/en/Security/CSP\n\tif ( div.attachEvent ) {\n\t\tfor ( i in {\n\t\t\tsubmit: 1,\n\t\t\tchange: 1,\n\t\t\tfocusin: 1\n\t\t}) {\n\t\t\teventName = "on" + i;\n\t\t\tisSupported = ( eventName in div );\n\t\t\tif ( !isSupported ) {\n\t\t\t\tdiv.setAttribute( eventName, "return;" );\n\t\t\t\tisSupported = ( typeof div[ eventName ] === "function" );\n\t\t\t}\n\t\t\tsupport[ i + "Bubbles" ] = isSupported;\n\t\t}\n\t}\n\n\tfragment.removeChild( div );\n\n\t// Null elements to avoid leaks in IE\n\tfragment = select = opt = div = input = null;\n\n\t// Run tests that need a body at doc ready\n\tjQuery(function() {\n\t\tvar container, outer, inner, table, td, offsetSupport,\n\t\t\tmarginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,\n\t\t\tpaddingMarginBorderVisibility, paddingMarginBorder,\n\t\t\tbody = document.getElementsByTagName("body")[0];\n\n\t\tif ( !body ) {\n\t\t\t// Return for frameset docs that don\'t have a body\n\t\t\treturn;\n\t\t}\n\n\t\tconMarginTop = 1;\n\t\tpaddingMarginBorder = "padding:0;margin:0;border:";\n\t\tpositionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";\n\t\tpaddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";\n\t\tstyle = "style=\'" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";\n\t\thtml = "
" +\n\t\t\t"" +\n\t\t\t"
";\n\n\t\tcontainer = document.createElement("div");\n\t\tcontainer.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";\n\t\tbody.insertBefore( container, body.firstChild );\n\n\t\t// Construct the test element\n\t\tdiv = document.createElement("div");\n\t\tcontainer.appendChild( div );\n\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\t// (only IE 8 fails this test)\n\t\tdiv.innerHTML = "
t
";\n\t\ttds = div.getElementsByTagName( "td" );\n\t\tisSupported = ( tds[ 0 ].offsetHeight === 0 );\n\n\t\ttds[ 0 ].style.display = "";\n\t\ttds[ 1 ].style.display = "none";\n\n\t\t// Check if empty table cells still have offsetWidth/Height\n\t\t// (IE <= 8 fail this test)\n\t\tsupport.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );\n\n\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t// gets computed margin-right based on width of container. For more\n\t\t// info see bug #3333\n\t\t// Fails in WebKit before Feb 2011 nightlies\n\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\tif ( window.getComputedStyle ) {\n\t\t\tdiv.innerHTML = "";\n\t\t\tmarginDiv = document.createElement( "div" );\n\t\t\tmarginDiv.style.width = "0";\n\t\t\tmarginDiv.style.marginRight = "0";\n\t\t\tdiv.style.width = "2px";\n\t\t\tdiv.appendChild( marginDiv );\n\t\t\tsupport.reliableMarginRight =\n\t\t\t\t( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;\n\t\t}\n\n\t\tif ( typeof div.style.zoom !== "undefined" ) {\n\t\t\t// Check if natively block-level elements act like inline-block\n\t\t\t// elements when setting their display to \'inline\' and giving\n\t\t\t// them layout\n\t\t\t// (IE < 8 does this)\n\t\t\tdiv.innerHTML = "";\n\t\t\tdiv.style.width = div.style.padding = "1px";\n\t\t\tdiv.style.border = 0;\n\t\t\tdiv.style.overflow = "hidden";\n\t\t\tdiv.style.display = "inline";\n\t\t\tdiv.style.zoom = 1;\n\t\t\tsupport.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );\n\n\t\t\t// Check if elements with layout shrink-wrap their children\n\t\t\t// (IE 6 does this)\n\t\t\tdiv.style.display = "block";\n\t\t\tdiv.style.overflow = "visible";\n\t\t\tdiv.innerHTML = "
";\n\t\t\tsupport.shrinkWrapBlocks = ( div.offsetWidth !== 3 );\n\t\t}\n\n\t\tdiv.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;\n\t\tdiv.innerHTML = html;\n\n\t\touter = div.firstChild;\n\t\tinner = outer.firstChild;\n\t\ttd = outer.nextSibling.firstChild.firstChild;\n\n\t\toffsetSupport = {\n\t\t\tdoesNotAddBorder: ( inner.offsetTop !== 5 ),\n\t\t\tdoesAddBorderForTableAndCells: ( td.offsetTop === 5 )\n\t\t};\n\n\t\tinner.style.position = "fixed";\n\t\tinner.style.top = "20px";\n\n\t\t// safari subtracts parent border width here which is 5px\n\t\toffsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );\n\t\tinner.style.position = inner.style.top = "";\n\n\t\touter.style.overflow = "hidden";\n\t\touter.style.position = "relative";\n\n\t\toffsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );\n\t\toffsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );\n\n\t\tif ( window.getComputedStyle ) {\n\t\t\tdiv.style.marginTop = "1%";\n\t\t\tsupport.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";\n\t\t}\n\n\t\tif ( typeof container.style.zoom !== "undefined" ) {\n\t\t\tcontainer.style.zoom = 1;\n\t\t}\n\n\t\tbody.removeChild( container );\n\t\tmarginDiv = div = container = null;\n\n\t\tjQuery.extend( support, offsetSupport );\n\t});\n\n\treturn support;\n})();\n\n\n\n\nvar rbrace = /^(?:\\{.*\\}|\\[.*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\njQuery.extend({\n\tcache: {},\n\n\t// Please use with caution\n\tuuid: 0,\n\n\t// Unique for each copy of jQuery on the page\n\t// Non-digits removed to match rinlinejQuery\n\texpando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\\D/g, "" ),\n\n\t// The following elements throw uncatchable exceptions if you\n\t// attempt to add expando properties to them.\n\tnoData: {\n\t\t"embed": true,\n\t\t// Ban all objects except for Flash (which handle expandos)\n\t\t"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",\n\t\t"applet": true\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data, pvt /* Internal Use Only */ ) {\n\t\tif ( !jQuery.acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar privateCache, thisCache, ret,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tgetByName = typeof name === "string",\n\n\t\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t\t// can\'t GC object references properly across the DOM-JS boundary\n\t\t\tisNode = elem.nodeType,\n\n\t\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t\t// attached directly to the object so GC can occur automatically\n\t\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,\n\t\t\tisEvents = name === "events";\n\n\t\t// Avoid doing any more work than we need to when trying to get data on an\n\t\t// object that has no data at all\n\t\tif ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !id ) {\n\t\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t\t// ends up in the global cache\n\t\t\tif ( isNode ) {\n\t\t\t\telem[ internalKey ] = id = ++jQuery.uuid;\n\t\t\t} else {\n\t\t\t\tid = internalKey;\n\t\t\t}\n\t\t}\n\n\t\tif ( !cache[ id ] ) {\n\t\t\tcache[ id ] = {};\n\n\t\t\t// Avoids exposing jQuery metadata on plain JS objects when the object\n\t\t\t// is serialized using JSON.stringify\n\t\t\tif ( !isNode ) {\n\t\t\t\tcache[ id ].toJSON = jQuery.noop;\n\t\t\t}\n\t\t}\n\n\t\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t\t// shallow copied over onto the existing cache\n\t\tif ( typeof name === "object" || typeof name === "function" ) {\n\t\t\tif ( pvt ) {\n\t\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t\t} else {\n\t\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t\t}\n\t\t}\n\n\t\tprivateCache = thisCache = cache[ id ];\n\n\t\t// jQuery data() is stored in a separate object inside the object\'s internal data\n\t\t// cache in order to avoid key collisions between internal data and user-defined\n\t\t// data.\n\t\tif ( !pvt ) {\n\t\t\tif ( !thisCache.data ) {\n\t\t\t\tthisCache.data = {};\n\t\t\t}\n\n\t\t\tthisCache = thisCache.data;\n\t\t}\n\n\t\tif ( data !== undefined ) {\n\t\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t\t}\n\n\t\t// Users should not attempt to inspect the internal events object using jQuery.data,\n\t\t// it is undocumented and subject to change. But does anyone listen? No.\n\t\tif ( isEvents && !thisCache[ name ] ) {\n\t\t\treturn privateCache.events;\n\t\t}\n\n\t\t// Check for both converted-to-camel and non-converted data property names\n\t\t// If a data property was specified\n\t\tif ( getByName ) {\n\n\t\t\t// First Try to find as-is property data\n\t\t\tret = thisCache[ name ];\n\n\t\t\t// Test for null|undefined property data\n\t\t\tif ( ret == null ) {\n\n\t\t\t\t// Try to find the camelCased property\n\t\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t\t}\n\t\t} else {\n\t\t\tret = thisCache;\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tremoveData: function( elem, name, pvt /* Internal Use Only */ ) {\n\t\tif ( !jQuery.acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar thisCache, i, l,\n\n\t\t\t// Reference to internal data cache key\n\t\t\tinternalKey = jQuery.expando,\n\n\t\t\tisNode = elem.nodeType,\n\n\t\t\t// See jQuery.data for more information\n\t\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t\t// See jQuery.data for more information\n\t\t\tid = isNode ? elem[ internalKey ] : internalKey;\n\n\t\t// If there is already no cache entry for this object, there is no\n\t\t// purpose in continuing\n\t\tif ( !cache[ id ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( name ) {\n\n\t\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\t\tif ( thisCache ) {\n\n\t\t\t\t// Support array or space separated string names for data keys\n\t\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tname = name.split( " " );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor ( i = 0, l = name.length; i < l; i++ ) {\n\t\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t\t}\n\n\t\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t\t// and let the cache object itself get destroyed\n\t\t\t\tif ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// See jQuery.data for more information\n\t\tif ( !pvt ) {\n\t\t\tdelete cache[ id ].data;\n\n\t\t\t// Don\'t destroy the parent cache unless the internal data object\n\t\t\t// had been the only thing left in it\n\t\t\tif ( !isEmptyDataObject(cache[ id ]) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Browsers that fail expando deletion also refuse to delete expandos on\n\t\t// the window, but it will allow it on all other JS objects; other browsers\n\t\t// don\'t care\n\t\t// Ensure that `cache` is not a window object #10080\n\t\tif ( jQuery.support.deleteExpando || !cache.setInterval ) {\n\t\t\tdelete cache[ id ];\n\t\t} else {\n\t\t\tcache[ id ] = null;\n\t\t}\n\n\t\t// We destroyed the cache and need to eliminate the expando on the node to avoid\n\t\t// false lookups in the cache for entries that no longer exist\n\t\tif ( isNode ) {\n\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t// we must handle all of these cases\n\t\t\tif ( jQuery.support.deleteExpando ) {\n\t\t\t\tdelete elem[ internalKey ];\n\t\t\t} else if ( elem.removeAttribute ) {\n\t\t\t\telem.removeAttribute( internalKey );\n\t\t\t} else {\n\t\t\t\telem[ internalKey ] = null;\n\t\t\t}\n\t\t}\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn jQuery.data( elem, name, data, true );\n\t},\n\n\t// A method for determining if a DOM node can handle the data expando\n\tacceptData: function( elem ) {\n\t\tif ( elem.nodeName ) {\n\t\t\tvar match = jQuery.noData[ elem.nodeName.toLowerCase() ];\n\n\t\t\tif ( match ) {\n\t\t\t\treturn !(match === true || elem.getAttribute("classid") !== match);\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar parts, part, attr, name, l,\n\t\t\telem = this[0],\n\t\t\ti = 0,\n\t\t\tdata = null;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {\n\t\t\t\t\tattr = elem.attributes;\n\t\t\t\t\tfor ( l = attr.length; i < l; i++ ) {\n\t\t\t\t\t\tname = attr[i].name;\n\n\t\t\t\t\t\tif ( name.indexOf( "data-" ) === 0 ) {\n\t\t\t\t\t\t\tname = jQuery.camelCase( name.substring(5) );\n\n\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, "parsedAttrs", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === "object" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\tparts = key.split( ".", 2 );\n\t\tparts[1] = parts[1] ? "." + parts[1] : "";\n\t\tpart = parts[1] + "!";\n\n\t\treturn jQuery.access( this, function( value ) {\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\tdata = this.triggerHandler( "getData" + part, [ parts[0] ] );\n\n\t\t\t\t// Try to fetch any internally stored data first\n\t\t\t\tif ( data === undefined && elem ) {\n\t\t\t\t\tdata = jQuery.data( elem, key );\n\t\t\t\t\tdata = dataAttr( elem, key, data );\n\t\t\t\t}\n\n\t\t\t\treturn data === undefined && parts[1] ?\n\t\t\t\t\tthis.data( parts[0] ) :\n\t\t\t\t\tdata;\n\t\t\t}\n\n\t\t\tparts[1] = value;\n\t\t\tthis.each(function() {\n\t\t\t\tvar self = jQuery( this );\n\n\t\t\t\tself.triggerHandler( "setData" + part, parts );\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t\tself.triggerHandler( "changeData" + part, parts );\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, false );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === "string" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === "true" ? true :\n\t\t\t\tdata === "false" ? false :\n\t\t\t\tdata === "null" ? null :\n\t\t\t\tjQuery.isNumeric( data ) ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn\'t changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tfor ( var name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== "toJSON" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n\n\n\nfunction handleQueueMarkDefer( elem, type, src ) {\n\tvar deferDataKey = type + "defer",\n\t\tqueueDataKey = type + "queue",\n\t\tmarkDataKey = type + "mark",\n\t\tdefer = jQuery._data( elem, deferDataKey );\n\tif ( defer &&\n\t\t( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&\n\t\t( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {\n\t\t// Give room for hard-coded callbacks to fire first\n\t\t// and eventually mark/queue something else on the element\n\t\tsetTimeout( function() {\n\t\t\tif ( !jQuery._data( elem, queueDataKey ) &&\n\t\t\t\t!jQuery._data( elem, markDataKey ) ) {\n\t\t\t\tjQuery.removeData( elem, deferDataKey, true );\n\t\t\t\tdefer.fire();\n\t\t\t}\n\t\t}, 0 );\n\t}\n}\n\njQuery.extend({\n\n\t_mark: function( elem, type ) {\n\t\tif ( elem ) {\n\t\t\ttype = ( type || "fx" ) + "mark";\n\t\t\tjQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );\n\t\t}\n\t},\n\n\t_unmark: function( force, elem, type ) {\n\t\tif ( force !== true ) {\n\t\t\ttype = elem;\n\t\t\telem = force;\n\t\t\tforce = false;\n\t\t}\n\t\tif ( elem ) {\n\t\t\ttype = type || "fx";\n\t\t\tvar key = type + "mark",\n\t\t\t\tcount = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );\n\t\t\tif ( count ) {\n\t\t\t\tjQuery._data( elem, key, count );\n\t\t\t} else {\n\t\t\t\tjQuery.removeData( elem, key, true );\n\t\t\t\thandleQueueMarkDefer( elem, type, "mark" );\n\t\t\t}\n\t\t}\n\t},\n\n\tqueue: function( elem, type, data ) {\n\t\tvar q;\n\t\tif ( elem ) {\n\t\t\ttype = ( type || "fx" ) + "queue";\n\t\t\tq = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !q || jQuery.isArray(data) ) {\n\t\t\t\t\tq = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tq.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn q || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || "fx";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tfn = queue.shift(),\n\t\t\thooks = {};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === "inprogress" ) {\n\t\t\tfn = queue.shift();\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === "fx" ) {\n\t\t\t\tqueue.unshift( "inprogress" );\n\t\t\t}\n\n\t\t\tjQuery._data( elem, type + ".run", hooks );\n\t\t\tfn.call( elem, function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t}, hooks );\n\t\t}\n\n\t\tif ( !queue.length ) {\n\t\t\tjQuery.removeData( elem, type + "queue " + type + ".run", true );\n\t\t\thandleQueueMarkDefer( elem, type, "queue" );\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== "string" ) {\n\t\t\tdata = type;\n\t\t\ttype = "fx";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\tif ( type === "fx" && queue[0] !== "inprogress" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\t// Based off of the plugin by Clint Helfers, with permission.\n\t// http://blindsignals.com/index.php/2009/07/jquery-delay/\n\tdelay: function( time, type ) {\n\t\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\t\ttype = type || "fx";\n\n\t\treturn this.queue( type, function( next, hooks ) {\n\t\t\tvar timeout = setTimeout( next, time );\n\t\t\thooks.stop = function() {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || "fx", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, object ) {\n\t\tif ( typeof type !== "string" ) {\n\t\t\tobject = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || "fx";\n\t\tvar defer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = elements.length,\n\t\t\tcount = 1,\n\t\t\tdeferDataKey = type + "defer",\n\t\t\tqueueDataKey = type + "queue",\n\t\t\tmarkDataKey = type + "mark",\n\t\t\ttmp;\n\t\tfunction resolve() {\n\t\t\tif ( !( --count ) ) {\n\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t}\n\t\t}\n\t\twhile( i-- ) {\n\t\t\tif (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||\n\t\t\t\t\t( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||\n\t\t\t\t\t\tjQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&\n\t\t\t\t\tjQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( object );\n\t}\n});\n\n\n\n\nvar rclass = /[\\n\\t\\r]/g,\n\trspace = /\\s+/,\n\trreturn = /\\r/g,\n\trtype = /^(?:button|input)$/i,\n\trfocusable = /^(?:button|input|object|select|textarea)$/i,\n\trclickable = /^a(?:rea)?$/i,\n\trboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,\n\tgetSetAttribute = jQuery.support.getSetAttribute,\n\tnodeHook, boolHook, fixSpecified;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t},\n\n\tprop: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t},\n\n\taddClass: function( value ) {\n\t\tvar classNames, i, l, elem,\n\t\t\tsetClass, c, cl;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call(this, j, this.className) );\n\t\t\t});\n\t\t}\n\n\t\tif ( value && typeof value === "string" ) {\n\t\t\tclassNames = value.split( rspace );\n\n\t\t\tfor ( i = 0, l = this.length; i < l; i++ ) {\n\t\t\t\telem = this[ i ];\n\n\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\tif ( !elem.className && classNames.length === 1 ) {\n\t\t\t\t\t\telem.className = value;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetClass = " " + elem.className + " ";\n\n\t\t\t\t\t\tfor ( c = 0, cl = classNames.length; c < cl; c++ ) {\n\t\t\t\t\t\t\tif ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {\n\t\t\t\t\t\t\t\tsetClass += classNames[ c ] + " ";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telem.className = jQuery.trim( setClass );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, i, l, elem, className, c, cl;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call(this, j, this.className) );\n\t\t\t});\n\t\t}\n\n\t\tif ( (value && typeof value === "string") || value === undefined ) {\n\t\t\tclassNames = ( value || "" ).split( rspace );\n\n\t\t\tfor ( i = 0, l = this.length; i < l; i++ ) {\n\t\t\t\telem = this[ i ];\n\n\t\t\t\tif ( elem.nodeType === 1 && elem.className ) {\n\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\tclassName = (" " + elem.className + " ").replace( rclass, " " );\n\t\t\t\t\t\tfor ( c = 0, cl = classNames.length; c < cl; c++ ) {\n\t\t\t\t\t\t\tclassName = className.replace(" " + classNames[ c ] + " ", " ");\n\t\t\t\t\t\t}\n\t\t\t\t\t\telem.className = jQuery.trim( className );\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.className = "";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisBool = typeof stateVal === "boolean";\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === "string" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tstate = stateVal,\n\t\t\t\t\tclassNames = value.split( rspace );\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space seperated list\n\t\t\t\t\tstate = isBool ? state : !self.hasClass( className );\n\t\t\t\t\tself[ state ? "addClass" : "removeClass" ]( className );\n\t\t\t\t}\n\n\t\t\t} else if ( type === "undefined" || type === "boolean" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, "__className__", this.className );\n\t\t\t\t}\n\n\t\t\t\t// toggle whole className\n\t\t\t\tthis.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = " " + selector + " ",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === "string" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, "") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? "" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar self = jQuery(this), val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, self.val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as ""; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = "";\n\t\t\t} else if ( typeof val === "number" ) {\n\t\t\t\tval += "";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map(val, function ( value ) {\n\t\t\t\t\treturn value == null ? "" : value + "";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// attributes.value is undefined in Blackberry 4.7 but\n\t\t\t\t// uses .value. See #6932\n\t\t\t\tvar val = elem.attributes.value;\n\t\t\t\treturn !val || val.specified ? elem.value : elem.text;\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, i, max, option,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tvalues = [],\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tone = elem.type === "select-one";\n\n\t\t\t\t// Nothing was selected\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\ti = one ? index : 0;\n\t\t\t\tmax = one ? index + 1 : options.length;\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Don\'t return options that are disabled or in a disabled optgroup\n\t\t\t\t\tif ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&\n\t\t\t\t\t\t\t(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don\'t need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fixes Bug #2551 -- select.val() broken in IE after form.reset()\n\t\t\t\tif ( one && !values.length && options.length ) {\n\t\t\t\t\treturn jQuery( options[ index ] ).val();\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar values = jQuery.makeArray( value );\n\n\t\t\t\tjQuery(elem).find("option").each(function() {\n\t\t\t\t\tthis.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;\n\t\t\t\t});\n\n\t\t\t\tif ( !values.length ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t},\n\n\tattrFn: {\n\t\tval: true,\n\t\tcss: true,\n\t\thtml: true,\n\t\ttext: true,\n\t\tdata: true,\n\t\twidth: true,\n\t\theight: true,\n\t\toffset: true\n\t},\n\n\tattr: function( elem, name, value, pass ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don\'t get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( pass && name in jQuery.attrFn ) {\n\t\t\treturn jQuery( elem )[ name ]( value );\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === "undefined" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( notxml ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\n\t\t\t} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, "" + value );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\n\t\t\tret = elem.getAttribute( name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret === null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar propName, attrNames, name, l, isBool,\n\t\t\ti = 0;\n\n\t\tif ( value && elem.nodeType === 1 ) {\n\t\t\tattrNames = value.toLowerCase().split( rspace );\n\t\t\tl = attrNames.length;\n\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tname = attrNames[ i ];\n\n\t\t\t\tif ( name ) {\n\t\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\t\t\t\t\tisBool = rboolean.test( name );\n\n\t\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t\t// Do not do this for boolean attributes (see #10870)\n\t\t\t\t\tif ( !isBool ) {\n\t\t\t\t\t\tjQuery.attr( elem, name, "" );\n\t\t\t\t\t}\n\t\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\n\t\t\t\t\t// Set corresponding property to false for boolean attributes\n\t\t\t\t\tif ( isBool && propName in elem ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\t// We can\'t allow the type property to be changed (since it causes problems in IE)\n\t\t\t\tif ( rtype.test( elem.nodeName ) && elem.parentNode ) {\n\t\t\t\t\tjQuery.error( "type property can\'t be changed" );\n\t\t\t\t} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to it\'s default in case type is set after value\n\t\t\t\t\t// This is for element creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( "type", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Use the value property for back compat\n\t\t// Use the nodeHook for button elements in IE6/7 (#1954)\n\t\tvalue: {\n\t\t\tget: function( elem, name ) {\n\t\t\t\tif ( nodeHook && jQuery.nodeName( elem, "button" ) ) {\n\t\t\t\t\treturn nodeHook.get( elem, name );\n\t\t\t\t}\n\t\t\t\treturn name in elem ?\n\t\t\t\t\telem.value :\n\t\t\t\t\tnull;\n\t\t\t},\n\t\t\tset: function( elem, value, name ) {\n\t\t\t\tif ( nodeHook && jQuery.nodeName( elem, "button" ) ) {\n\t\t\t\t\treturn nodeHook.set( elem, value, name );\n\t\t\t\t}\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.value = value;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\ttabindex: "tabIndex",\n\t\treadonly: "readOnly",\n\t\t"for": "htmlFor",\n\t\t"class": "className",\n\t\tmaxlength: "maxLength",\n\t\tcellspacing: "cellSpacing",\n\t\tcellpadding: "cellPadding",\n\t\trowspan: "rowSpan",\n\t\tcolspan: "colSpan",\n\t\tusemap: "useMap",\n\t\tframeborder: "frameBorder",\n\t\tcontenteditable: "contentEditable"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don\'t get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\treturn ( elem[ name ] = value );\n\t\t\t}\n\n\t\t} else {\n\t\t\tif ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\treturn elem[ name ];\n\t\t\t}\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn\'t always return the correct value when it hasn\'t been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\tvar attributeNode = elem.getAttributeNode("tabindex");\n\n\t\t\t\treturn attributeNode && attributeNode.specified ?\n\t\t\t\t\tparseInt( attributeNode.value, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tundefined;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)\njQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;\n\n// Hook for boolean attributes\nboolHook = {\n\tget: function( elem, name ) {\n\t\t// Align boolean attributes with corresponding properties\n\t\t// Fall back to attribute presence where some booleans are not supported\n\t\tvar attrNode,\n\t\t\tproperty = jQuery.prop( elem, name );\n\t\treturn property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?\n\t\t\tname.toLowerCase() :\n\t\t\tundefined;\n\t},\n\tset: function( elem, value, name ) {\n\t\tvar propName;\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\t// value is true since we know at this point it\'s type boolean and not false\n\t\t\t// Set boolean attributes to the same name and set the DOM property\n\t\t\tpropName = jQuery.propFix[ name ] || name;\n\t\t\tif ( propName in elem ) {\n\t\t\t\t// Only set the IDL specifically if it already exists on the element\n\t\t\t\telem[ propName ] = true;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, name.toLowerCase() );\n\t\t}\n\t\treturn name;\n\t}\n};\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\tfixSpecified = {\n\t\tname: true,\n\t\tid: true,\n\t\tcoords: true\n\t};\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = jQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret;\n\t\t\tret = elem.getAttributeNode( name );\n\t\t\treturn ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?\n\t\t\t\tret.nodeValue :\n\t\t\t\tundefined;\n\t\t},\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\tret = document.createAttribute( name );\n\t\t\t\telem.setAttributeNode( ret );\n\t\t\t}\n\t\t\treturn ( ret.nodeValue = value + "" );\n\t\t}\n\t};\n\n\t// Apply the nodeHook to tabindex\n\tjQuery.attrHooks.tabindex.set = nodeHook.set;\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ "width", "height" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === "" ) {\n\t\t\t\t\telem.setAttribute( name, "auto" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tget: nodeHook.get,\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( value === "" ) {\n\t\t\t\tvalue = "false";\n\t\t\t}\n\t\t\tnodeHook.set( elem, value, name );\n\t\t}\n\t};\n}\n\n\n// Some attributes require a special call on IE\nif ( !jQuery.support.hrefNormalized ) {\n\tjQuery.each([ "href", "src", "width", "height" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar ret = elem.getAttribute( name, 2 );\n\t\t\t\treturn ret === null ? undefined : ret;\n\t\t\t}\n\t\t});\n\t});\n}\n\nif ( !jQuery.support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Normalize to lowercase since IE uppercases css property names\n\t\t\treturn elem.style.cssText.toLowerCase() || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = "" + value );\n\t\t}\n\t};\n}\n\n// Safari mis-reports the default selected property of an option\n// Accessing the parent\'s selectedIndex property fixes it\nif ( !jQuery.support.optSelected ) {\n\tjQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t});\n}\n\n// IE6/7 call enctype encoding\nif ( !jQuery.support.enctype ) {\n\tjQuery.propFix.enctype = "encoding";\n}\n\n// Radios and checkboxes getter/setter\nif ( !jQuery.support.checkOn ) {\n\tjQuery.each([ "radio", "checkbox" ], function() {\n\t\tjQuery.valHooks[ this ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\t// Handle the case where in Webkit "" is returned instead of "on" if a value isn\'t specified\n\t\t\t\treturn elem.getAttribute("value") === null ? "on" : elem.value;\n\t\t\t}\n\t\t};\n\t});\n}\njQuery.each([ "radio", "checkbox" ], function() {\n\tjQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t});\n});\n\n\n\n\nvar rformElems = /^(?:textarea|input|select)$/i,\n\trtypenamespace = /^([^\\.]*)?(?:\\.(.+))?$/,\n\trhoverHack = /(?:^|\\s)hover(\\.\\S+)?\\b/,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trquickIs = /^(\\w*)(?:#([\\w\\-]+))?(?:\\.([\\w\\-]+))?$/,\n\tquickParse = function( selector ) {\n\t\tvar quick = rquickIs.exec( selector );\n\t\tif ( quick ) {\n\t\t\t// 0 1 2 3\n\t\t\t// [ _, tag, id, class ]\n\t\t\tquick[1] = ( quick[1] || "" ).toLowerCase();\n\t\t\tquick[3] = quick[3] && new RegExp( "(?:^|\\\\s)" + quick[3] + "(?:\\\\s|$)" );\n\t\t}\n\t\treturn quick;\n\t},\n\tquickIs = function( elem, m ) {\n\t\tvar attrs = elem.attributes || {};\n\t\treturn (\n\t\t\t(!m[1] || elem.nodeName.toLowerCase() === m[1]) &&\n\t\t\t(!m[2] || (attrs.id || {}).value === m[2]) &&\n\t\t\t(!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))\n\t\t);\n\t},\n\thoverHack = function( events ) {\n\t\treturn jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );\n\t};\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards\' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar elemData, eventHandle, events,\n\t\t\tt, tns, type, namespaces, handleObj,\n\t\t\thandleObjIn, quick, handlers, special;\n\n\t\t// Don\'t attach events to noData or text/comment nodes (allow plain objects tho)\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element\'s event structure and main handler, if this is the first\n\t\tevents = elemData.events;\n\t\tif ( !events ) {\n\t\t\telemData.events = events = {};\n\t\t}\n\t\teventHandle = elemData.handle;\n\t\tif ( !eventHandle ) {\n\t\t\telemData.handle = eventHandle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\t// jQuery(...).bind("mouseover mouseout", fn);\n\t\ttypes = jQuery.trim( hoverHack(types) ).split( " " );\n\t\tfor ( t = 0; t < types.length; t++ ) {\n\n\t\t\ttns = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = tns[1];\n\t\t\tnamespaces = ( tns[2] || "" ).split( "." ).sort();\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: tns[1],\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tquick: selector && quickParse( selector ),\n\t\t\t\tnamespace: namespaces.join(".")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we\'re the first\n\t\t\thandlers = events[ type ];\n\t\t\tif ( !handlers ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( "on" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element\'s handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\tglobal: {},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar elemData = jQuery.hasData( elem ) && jQuery._data( elem ),\n\t\t\tt, tns, type, origType, namespaces, origCount,\n\t\t\tj, events, special, handle, eventType, handleObj;\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = jQuery.trim( hoverHack( types || "" ) ).split(" ");\n\t\tfor ( t = 0; t < types.length; t++ ) {\n\t\t\ttns = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tns[1];\n\t\t\tnamespaces = tns[2];\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector? special.delegateType : special.bindType ) || type;\n\t\t\teventType = events[ type ] || [];\n\t\t\torigCount = eventType.length;\n\t\t\tnamespaces = namespaces ? new RegExp("(^|\\\\.)" + namespaces.split(".").sort().join("\\\\.(?:.*\\\\.)?") + "(\\\\.|$)") : null;\n\n\t\t\t// Remove matching events\n\t\t\tfor ( j = 0; j < eventType.length; j++ ) {\n\t\t\t\thandleObj = eventType[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t ( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t ( !namespaces || namespaces.test( handleObj.namespace ) ) &&\n\t\t\t\t\t ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {\n\t\t\t\t\teventType.splice( j--, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\teventType.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( eventType.length === 0 && origCount !== eventType.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it\'s no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\thandle = elemData.handle;\n\t\t\tif ( handle ) {\n\t\t\t\thandle.elem = null;\n\t\t\t}\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery.removeData( elem, [ "events", "handle" ], true );\n\t\t}\n\t},\n\n\t// Events that are safe to short-circuit if no handlers are attached.\n\t// Native DOM events should not be added, they may have inline handlers.\n\tcustomEvent: {\n\t\t"getData": true,\n\t\t"setData": true,\n\t\t"changeData": true\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\t// Don\'t do events on text and comment nodes\n\t\tif ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Event object or event type\n\t\tvar type = event.type || event,\n\t\t\tnamespaces = [],\n\t\t\tcache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;\n\n\t\t// focus/blur morphs to focusin/out; ensure we\'re not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( "!" ) >= 0 ) {\n\t\t\t// Exclusive events trigger only for the exact event (no namespaces)\n\t\t\ttype = type.slice(0, -1);\n\t\t\texclusive = true;\n\t\t}\n\n\t\tif ( type.indexOf( "." ) >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(".");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\n\t\tif ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {\n\t\t\t// No jQuery handlers for this event type, and it can\'t have inline handlers\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an Event, Object, or just an event type string\n\t\tevent = typeof event === "object" ?\n\t\t\t// jQuery.Event object\n\t\t\tevent[ jQuery.expando ] ? event :\n\t\t\t// Object literal\n\t\t\tnew jQuery.Event( type, event ) :\n\t\t\t// Just the event type (string)\n\t\t\tnew jQuery.Event( type );\n\n\t\tevent.type = type;\n\t\tevent.isTrigger = true;\n\t\tevent.exclusive = exclusive;\n\t\tevent.namespace = namespaces.join( "." );\n\t\tevent.namespace_re = event.namespace? new RegExp("(^|\\\\.)" + namespaces.join("\\\\.(?:.*\\\\.)?") + "(\\\\.|$)") : null;\n\t\tontype = type.indexOf( ":" ) < 0 ? "on" + type : "";\n\n\t\t// Handle a global trigger\n\t\tif ( !elem ) {\n\n\t\t\t// TODO: Stop taunting the data cache; remove global events and always attach to document\n\t\t\tcache = jQuery.cache;\n\t\t\tfor ( i in cache ) {\n\t\t\t\tif ( cache[ i ].events && cache[ i ].events[ type ] ) {\n\t\t\t\t\tjQuery.event.trigger( event, data, cache[ i ].handle.elem, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data != null ? jQuery.makeArray( data ) : [];\n\t\tdata.unshift( event );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\teventPath = [[ elem, special.bindType || type ]];\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tcur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;\n\t\t\told = null;\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push([ cur, bubbleType ]);\n\t\t\t\told = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( old && old === elem.ownerDocument ) {\n\t\t\t\teventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\tfor ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {\n\n\t\t\tcur = eventPath[i][0];\n\t\t\tevent.type = eventPath[i][1];\n\n\t\t\thandle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\t\t\t// Note that this is a bare JS function and not a jQuery handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&\n\t\t\t\t!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can\'t use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don\'t do default actions on window, that\'s where global variables be (#6170)\n\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486)\n\t\t\t\tif ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don\'t re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\told = elem[ ontype ];\n\n\t\t\t\t\tif ( old ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( old ) {\n\t\t\t\t\t\telem[ ontype ] = old;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event || window.event );\n\n\t\tvar handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\targs = [].slice.call( arguments, 0 ),\n\t\t\trun_all = !event.exclusive && !event.namespace,\n\t\t\tspecial = jQuery.event.special[ event.type ] || {},\n\t\t\thandlerQueue = [],\n\t\t\ti, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers that should run if there are delegated events\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && !(event.button && event.type === "click") ) {\n\n\t\t\t// Pregenerate a single jQuery object for reuse with .is()\n\t\t\tjqcur = jQuery(this);\n\t\t\tjqcur.context = this.ownerDocument || this;\n\n\t\t\tfor ( cur = event.target; cur != this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don\'t process events on disabled elements (#6911, #8165)\n\t\t\t\tif ( cur.disabled !== true ) {\n\t\t\t\t\tselMatch = {};\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tjqcur[0] = cur;\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\t\t\t\t\t\tsel = handleObj.selector;\n\n\t\t\t\t\t\tif ( selMatch[ sel ] === undefined ) {\n\t\t\t\t\t\t\tselMatch[ sel ] = (\n\t\t\t\t\t\t\t\thandleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( selMatch[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, matches: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( handlers.length > delegateCount ) {\n\t\t\thandlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\tfor ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {\n\t\t\tmatched = handlerQueue[ i ];\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tfor ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {\n\t\t\t\thandleObj = matched.matches[ j ];\n\n\t\t\t\t// Triggered event must either 1) be non-exclusive and have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.data = handleObj.data;\n\t\t\t\t\tevent.handleObj = handleObj;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tevent.result = ret;\n\t\t\t\t\t\tif ( ret === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\t// *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 ***\n\tprops: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: "char charCode key keyCode".split(" "),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don\'t use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = jQuery.event.fixHooks[ event.type ] || {},\n\t\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = jQuery.Event( originalEvent );\n\n\t\tfor ( i = copy.length; i; ) {\n\t\t\tprop = copy[ --i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Target should not be a text node (#504, Safari)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// For mouse/key events; add metaKey if it\'s not there (#3368, IE6/7/8)\n\t\tif ( event.metaKey === undefined ) {\n\t\t\tevent.metaKey = event.ctrlKey;\n\t\t}\n\n\t\treturn fixHook.filter? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tready: {\n\t\t\t// Make sure the ready event is setup\n\t\t\tsetup: jQuery.bindReady\n\t\t},\n\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\n\t\tfocus: {\n\t\t\tdelegateType: "focusin"\n\t\t},\n\t\tblur: {\n\t\t\tdelegateType: "focusout"\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tsetup: function( data, namespaces, eventHandle ) {\n\t\t\t\t// We only want to do this special case on windows\n\t\t\t\tif ( jQuery.isWindow( this ) ) {\n\t\t\t\t\tthis.onbeforeunload = eventHandle;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tteardown: function( namespaces, eventHandle ) {\n\t\t\t\tif ( this.onbeforeunload === eventHandle ) {\n\t\t\t\t\tthis.onbeforeunload = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor\'s stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{ type: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\n// Some plugins are using, but it\'s undocumented/deprecated and will be removed.\n// The 1.7 special event interface should provide all the hooks needed now.\njQuery.event.handle = jQuery.event.dispatch;\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.detachEvent ) {\n\t\t\telem.detachEvent( "on" + type, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the \'new\' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||\n\t\t\tsrc.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn\'t have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\nfunction returnFalse() {\n\treturn false;\n}\nfunction returnTrue() {\n\treturn true;\n}\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tpreventDefault: function() {\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tvar e = this.originalEvent;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// if preventDefault exists run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// otherwise set the returnValue property of the original event to false (IE)\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tvar e = this.originalEvent;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// if stopPropagation exists run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t\t// otherwise set the cancelBubble property of the original event to true (IE)\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\t\tthis.stopPropagation();\n\t},\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: "mouseover",\n\tmouseleave: "mouseout"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar target = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj,\n\t\t\t\tselector = handleObj.selector,\n\t\t\t\tret;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !jQuery.support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, "form" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, "click._submit keypress._submit", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !form._submit_attached ) {\n\t\t\t\t\tjQuery.event.add( form, "submit._submit", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tform._submit_attached = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don\'t need an event listener\n\t\t},\n\t\t\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( "submit", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, "form" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, "._submit" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !jQuery.support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn\'t fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === "checkbox" || this.type === "radio" ) {\n\t\t\t\t\tjQuery.event.add( this, "propertychange._change", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === "checked" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, "click._change", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t\tjQuery.event.simulate( "change", this, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, "beforeactivate._change", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {\n\t\t\t\t\tjQuery.event.add( elem, "change._change", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( "change", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\telem._change_attached = true;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, "._change" );\n\n\t\t\treturn rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create "bubbling" focus and blur events\nif ( !jQuery.support.focusinBubbles ) {\n\tjQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler while someone wants focusin/focusout\n\t\tvar attaches = 0,\n\t\t\thandler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tif ( attaches++ === 0 ) {\n\t\t\t\t\tdocument.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tif ( --attaches === 0 ) {\n\t\t\t\t\tdocument.removeEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar origFn, type;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === "object" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== "string" ) { // && selector != null\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === "string" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\tvar handleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === "object" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( var type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === "function" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tlive: function( types, data, fn ) {\n\t\tjQuery( this.context ).on( types, this.selector, data, fn );\n\t\treturn this;\n\t},\n\tdie: function( types, fn ) {\n\t\tjQuery( this.context ).off( types, this.selector || "**", fn );\n\t\treturn this;\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tif ( this[0] ) {\n\t\t\treturn jQuery.event.trigger( type, data, this[0], true );\n\t\t}\n\t},\n\n\ttoggle: function( fn ) {\n\t\t// Save reference to arguments for access in closure\n\t\tvar args = arguments,\n\t\t\tguid = fn.guid || jQuery.guid++,\n\t\t\ti = 0,\n\t\t\ttoggler = function( event ) {\n\t\t\t\t// Figure out which function to execute\n\t\t\t\tvar lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;\n\t\t\t\tjQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );\n\n\t\t\t\t// Make sure that clicks stop\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t// and execute the function\n\t\t\t\treturn args[ lastToggle ].apply( this, arguments ) || false;\n\t\t\t};\n\n\t\t// link all the functions, so any of them can unbind this click handler\n\t\ttoggler.guid = guid;\n\t\twhile ( i < args.length ) {\n\t\t\targs[ i++ ].guid = guid;\n\t\t}\n\n\t\treturn this.click( toggler );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n});\n\njQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +\n\t"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +\n\t"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\tif ( fn == null ) {\n\t\t\tfn = data;\n\t\t\tdata = null;\n\t\t}\n\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n\n\tif ( jQuery.attrFn ) {\n\t\tjQuery.attrFn[ name ] = true;\n\t}\n\n\tif ( rkeyEvent.test( name ) ) {\n\t\tjQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;\n\t}\n\n\tif ( rmouseEvent.test( name ) ) {\n\t\tjQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;\n\t}\n});\n\n\n\n/*!\n * Sizzle CSS Selector Engine\n * Copyright 2011, The Dojo Foundation\n * Released under the MIT, BSD, and GPL Licenses.\n * More information: http://sizzlejs.com/\n */\n(function(){\n\nvar chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,\n\texpando = "sizcache" + (Math.random() + \'\').replace(\'.\', \'\'),\n\tdone = 0,\n\ttoString = Object.prototype.toString,\n\thasDuplicate = false,\n\tbaseHasDuplicate = true,\n\trBackslash = /\\\\/g,\n\trReturn = /\\r\\n/g,\n\trNonWord = /\\W/;\n\n// Here we check if the JavaScript engine is using some sort of\n// optimization where it does not always call our comparision\n// function. If that is the case, discard the hasDuplicate value.\n// Thus far that includes Google Chrome.\n[0, 0].sort(function() {\n\tbaseHasDuplicate = false;\n\treturn 0;\n});\n\nvar Sizzle = function( selector, context, results, seed ) {\n\tresults = results || [];\n\tcontext = context || document;\n\n\tvar origContext = context;\n\n\tif ( context.nodeType !== 1 && context.nodeType !== 9 ) {\n\t\treturn [];\n\t}\n\n\tif ( !selector || typeof selector !== "string" ) {\n\t\treturn results;\n\t}\n\n\tvar m, set, checkSet, extra, ret, cur, pop, i,\n\t\tprune = true,\n\t\tcontextXML = Sizzle.isXML( context ),\n\t\tparts = [],\n\t\tsoFar = selector;\n\n\t// Reset the position of the chunker regexp (start from head)\n\tdo {\n\t\tchunker.exec( "" );\n\t\tm = chunker.exec( soFar );\n\n\t\tif ( m ) {\n\t\t\tsoFar = m[3];\n\n\t\t\tparts.push( m[1] );\n\n\t\t\tif ( m[2] ) {\n\t\t\t\textra = m[3];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} while ( m );\n\n\tif ( parts.length > 1 && origPOS.exec( selector ) ) {\n\n\t\tif ( parts.length === 2 && Expr.relative[ parts[0] ] ) {\n\t\t\tset = posProcess( parts[0] + parts[1], context, seed );\n\n\t\t} else {\n\t\t\tset = Expr.relative[ parts[0] ] ?\n\t\t\t\t[ context ] :\n\t\t\t\tSizzle( parts.shift(), context );\n\n\t\t\twhile ( parts.length ) {\n\t\t\t\tselector = parts.shift();\n\n\t\t\t\tif ( Expr.relative[ selector ] ) {\n\t\t\t\t\tselector += parts.shift();\n\t\t\t\t}\n\n\t\t\t\tset = posProcess( selector, set, seed );\n\t\t\t}\n\t\t}\n\n\t} else {\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\t// (but not if it\'ll be faster if the inner selector is an ID)\n\t\tif ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&\n\t\t\t\tExpr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {\n\n\t\t\tret = Sizzle.find( parts.shift(), context, contextXML );\n\t\t\tcontext = ret.expr ?\n\t\t\t\tSizzle.filter( ret.expr, ret.set )[0] :\n\t\t\t\tret.set[0];\n\t\t}\n\n\t\tif ( context ) {\n\t\t\tret = seed ?\n\t\t\t\t{ expr: parts.pop(), set: makeArray(seed) } :\n\t\t\t\tSizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );\n\n\t\t\tset = ret.expr ?\n\t\t\t\tSizzle.filter( ret.expr, ret.set ) :\n\t\t\t\tret.set;\n\n\t\t\tif ( parts.length > 0 ) {\n\t\t\t\tcheckSet = makeArray( set );\n\n\t\t\t} else {\n\t\t\t\tprune = false;\n\t\t\t}\n\n\t\t\twhile ( parts.length ) {\n\t\t\t\tcur = parts.pop();\n\t\t\t\tpop = cur;\n\n\t\t\t\tif ( !Expr.relative[ cur ] ) {\n\t\t\t\t\tcur = "";\n\t\t\t\t} else {\n\t\t\t\t\tpop = parts.pop();\n\t\t\t\t}\n\n\t\t\t\tif ( pop == null ) {\n\t\t\t\t\tpop = context;\n\t\t\t\t}\n\n\t\t\t\tExpr.relative[ cur ]( checkSet, pop, contextXML );\n\t\t\t}\n\n\t\t} else {\n\t\t\tcheckSet = parts = [];\n\t\t}\n\t}\n\n\tif ( !checkSet ) {\n\t\tcheckSet = set;\n\t}\n\n\tif ( !checkSet ) {\n\t\tSizzle.error( cur || selector );\n\t}\n\n\tif ( toString.call(checkSet) === "[object Array]" ) {\n\t\tif ( !prune ) {\n\t\t\tresults.push.apply( results, checkSet );\n\n\t\t} else if ( context && context.nodeType === 1 ) {\n\t\t\tfor ( i = 0; checkSet[i] != null; i++ ) {\n\t\t\t\tif ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {\n\t\t\t\t\tresults.push( set[i] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\t\t\tfor ( i = 0; checkSet[i] != null; i++ ) {\n\t\t\t\tif ( checkSet[i] && checkSet[i].nodeType === 1 ) {\n\t\t\t\t\tresults.push( set[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t} else {\n\t\tmakeArray( checkSet, results );\n\t}\n\n\tif ( extra ) {\n\t\tSizzle( extra, origContext, results, seed );\n\t\tSizzle.uniqueSort( results );\n\t}\n\n\treturn results;\n};\n\nSizzle.uniqueSort = function( results ) {\n\tif ( sortOrder ) {\n\t\thasDuplicate = baseHasDuplicate;\n\t\tresults.sort( sortOrder );\n\n\t\tif ( hasDuplicate ) {\n\t\t\tfor ( var i = 1; i < results.length; i++ ) {\n\t\t\t\tif ( results[i] === results[ i - 1 ] ) {\n\t\t\t\t\tresults.splice( i--, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn results;\n};\n\nSizzle.matches = function( expr, set ) {\n\treturn Sizzle( expr, null, null, set );\n};\n\nSizzle.matchesSelector = function( node, expr ) {\n\treturn Sizzle( expr, null, null, [node] ).length > 0;\n};\n\nSizzle.find = function( expr, context, isXML ) {\n\tvar set, i, len, match, type, left;\n\n\tif ( !expr ) {\n\t\treturn [];\n\t}\n\n\tfor ( i = 0, len = Expr.order.length; i < len; i++ ) {\n\t\ttype = Expr.order[i];\n\n\t\tif ( (match = Expr.leftMatch[ type ].exec( expr )) ) {\n\t\t\tleft = match[1];\n\t\t\tmatch.splice( 1, 1 );\n\n\t\t\tif ( left.substr( left.length - 1 ) !== "\\\\" ) {\n\t\t\t\tmatch[1] = (match[1] || "").replace( rBackslash, "" );\n\t\t\t\tset = Expr.find[ type ]( match, context, isXML );\n\n\t\t\t\tif ( set != null ) {\n\t\t\t\t\texpr = expr.replace( Expr.match[ type ], "" );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( !set ) {\n\t\tset = typeof context.getElementsByTagName !== "undefined" ?\n\t\t\tcontext.getElementsByTagName( "*" ) :\n\t\t\t[];\n\t}\n\n\treturn { set: set, expr: expr };\n};\n\nSizzle.filter = function( expr, set, inplace, not ) {\n\tvar match, anyFound,\n\t\ttype, found, item, filter, left,\n\t\ti, pass,\n\t\told = expr,\n\t\tresult = [],\n\t\tcurLoop = set,\n\t\tisXMLFilter = set && set[0] && Sizzle.isXML( set[0] );\n\n\twhile ( expr && set.length ) {\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {\n\t\t\t\tfilter = Expr.filter[ type ];\n\t\t\t\tleft = match[1];\n\n\t\t\t\tanyFound = false;\n\n\t\t\t\tmatch.splice(1,1);\n\n\t\t\t\tif ( left.substr( left.length - 1 ) === "\\\\" ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( curLoop === result ) {\n\t\t\t\t\tresult = [];\n\t\t\t\t}\n\n\t\t\t\tif ( Expr.preFilter[ type ] ) {\n\t\t\t\t\tmatch = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );\n\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\tanyFound = found = true;\n\n\t\t\t\t\t} else if ( match === true ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( match ) {\n\t\t\t\t\tfor ( i = 0; (item = curLoop[i]) != null; i++ ) {\n\t\t\t\t\t\tif ( item ) {\n\t\t\t\t\t\t\tfound = filter( item, match, i, curLoop );\n\t\t\t\t\t\t\tpass = not ^ found;\n\n\t\t\t\t\t\t\tif ( inplace && found != null ) {\n\t\t\t\t\t\t\t\tif ( pass ) {\n\t\t\t\t\t\t\t\t\tanyFound = true;\n\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcurLoop[i] = false;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else if ( pass ) {\n\t\t\t\t\t\t\t\tresult.push( item );\n\t\t\t\t\t\t\t\tanyFound = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( found !== undefined ) {\n\t\t\t\t\tif ( !inplace ) {\n\t\t\t\t\t\tcurLoop = result;\n\t\t\t\t\t}\n\n\t\t\t\t\texpr = expr.replace( Expr.match[ type ], "" );\n\n\t\t\t\t\tif ( !anyFound ) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Improper expression\n\t\tif ( expr === old ) {\n\t\t\tif ( anyFound == null ) {\n\t\t\t\tSizzle.error( expr );\n\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\told = expr;\n\t}\n\n\treturn curLoop;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( "Syntax error, unrecognized expression: " + msg );\n};\n\n/**\n * Utility function for retreiving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\nvar getText = Sizzle.getText = function( elem ) {\n var i, node,\n\t\tnodeType = elem.nodeType,\n\t\tret = "";\n\n\tif ( nodeType ) {\n\t\tif ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t\t// Use textContent || innerText for elements\n\t\t\tif ( typeof elem.textContent === \'string\' ) {\n\t\t\t\treturn elem.textContent;\n\t\t\t} else if ( typeof elem.innerText === \'string\' ) {\n\t\t\t\t// Replace IE\'s carriage returns\n\t\t\t\treturn elem.innerText.replace( rReturn, \'\' );\n\t\t\t} else {\n\t\t\t\t// Traverse it\'s children\n\t\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling) {\n\t\t\t\t\tret += getText( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\t} else {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\tfor ( i = 0; (node = elem[i]); i++ ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tif ( node.nodeType !== 8 ) {\n\t\t\t\tret += getText( node );\n\t\t\t}\n\t\t}\n\t}\n\treturn ret;\n};\n\nvar Expr = Sizzle.selectors = {\n\torder: [ "ID", "NAME", "TAG" ],\n\n\tmatch: {\n\t\tID: /#((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/,\n\t\tCLASS: /\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/,\n\t\tNAME: /\\[name=[\'"]*((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)[\'"]*\\]/,\n\t\tATTR: /\\[\\s*((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(?:([\'"])(.*?)\\3|(#?(?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)*)|)|)\\s*\\]/,\n\t\tTAG: /^((?:[\\w\\u00c0-\\uFFFF\\*\\-]|\\\\.)+)/,\n\t\tCHILD: /:(only|nth|last|first)-child(?:\\(\\s*(even|odd|(?:[+\\-]?\\d+|(?:[+\\-]?\\d*)?n\\s*(?:[+\\-]\\s*\\d+)?))\\s*\\))?/,\n\t\tPOS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,\n\t\tPSEUDO: /:((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)(?:\\(([\'"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/\n\t},\n\n\tleftMatch: {},\n\n\tattrMap: {\n\t\t"class": "className",\n\t\t"for": "htmlFor"\n\t},\n\n\tattrHandle: {\n\t\thref: function( elem ) {\n\t\t\treturn elem.getAttribute( "href" );\n\t\t},\n\t\ttype: function( elem ) {\n\t\t\treturn elem.getAttribute( "type" );\n\t\t}\n\t},\n\n\trelative: {\n\t\t"+": function(checkSet, part){\n\t\t\tvar isPartStr = typeof part === "string",\n\t\t\t\tisTag = isPartStr && !rNonWord.test( part ),\n\t\t\t\tisPartStrNotTag = isPartStr && !isTag;\n\n\t\t\tif ( isTag ) {\n\t\t\t\tpart = part.toLowerCase();\n\t\t\t}\n\n\t\t\tfor ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {\n\t\t\t\tif ( (elem = checkSet[i]) ) {\n\t\t\t\t\twhile ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}\n\n\t\t\t\t\tcheckSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?\n\t\t\t\t\t\telem || false :\n\t\t\t\t\t\telem === part;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( isPartStrNotTag ) {\n\t\t\t\tSizzle.filter( part, checkSet, true );\n\t\t\t}\n\t\t},\n\n\t\t">": function( checkSet, part ) {\n\t\t\tvar elem,\n\t\t\t\tisPartStr = typeof part === "string",\n\t\t\t\ti = 0,\n\t\t\t\tl = checkSet.length;\n\n\t\t\tif ( isPartStr && !rNonWord.test( part ) ) {\n\t\t\t\tpart = part.toLowerCase();\n\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\telem = checkSet[i];\n\n\t\t\t\t\tif ( elem ) {\n\t\t\t\t\t\tvar parent = elem.parentNode;\n\t\t\t\t\t\tcheckSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\telem = checkSet[i];\n\n\t\t\t\t\tif ( elem ) {\n\t\t\t\t\t\tcheckSet[i] = isPartStr ?\n\t\t\t\t\t\t\telem.parentNode :\n\t\t\t\t\t\t\telem.parentNode === part;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( isPartStr ) {\n\t\t\t\t\tSizzle.filter( part, checkSet, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t"": function(checkSet, part, isXML){\n\t\t\tvar nodeCheck,\n\t\t\t\tdoneName = done++,\n\t\t\t\tcheckFn = dirCheck;\n\n\t\t\tif ( typeof part === "string" && !rNonWord.test( part ) ) {\n\t\t\t\tpart = part.toLowerCase();\n\t\t\t\tnodeCheck = part;\n\t\t\t\tcheckFn = dirNodeCheck;\n\t\t\t}\n\n\t\t\tcheckFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );\n\t\t},\n\n\t\t"~": function( checkSet, part, isXML ) {\n\t\t\tvar nodeCheck,\n\t\t\t\tdoneName = done++,\n\t\t\t\tcheckFn = dirCheck;\n\n\t\t\tif ( typeof part === "string" && !rNonWord.test( part ) ) {\n\t\t\t\tpart = part.toLowerCase();\n\t\t\t\tnodeCheck = part;\n\t\t\t\tcheckFn = dirNodeCheck;\n\t\t\t}\n\n\t\t\tcheckFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );\n\t\t}\n\t},\n\n\tfind: {\n\t\tID: function( match, context, isXML ) {\n\t\t\tif ( typeof context.getElementById !== "undefined" && !isXML ) {\n\t\t\t\tvar m = context.getElementById(match[1]);\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [m] : [];\n\t\t\t}\n\t\t},\n\n\t\tNAME: function( match, context ) {\n\t\t\tif ( typeof context.getElementsByName !== "undefined" ) {\n\t\t\t\tvar ret = [],\n\t\t\t\t\tresults = context.getElementsByName( match[1] );\n\n\t\t\t\tfor ( var i = 0, l = results.length; i < l; i++ ) {\n\t\t\t\t\tif ( results[i].getAttribute("name") === match[1] ) {\n\t\t\t\t\t\tret.push( results[i] );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn ret.length === 0 ? null : ret;\n\t\t\t}\n\t\t},\n\n\t\tTAG: function( match, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== "undefined" ) {\n\t\t\t\treturn context.getElementsByTagName( match[1] );\n\t\t\t}\n\t\t}\n\t},\n\tpreFilter: {\n\t\tCLASS: function( match, curLoop, inplace, result, not, isXML ) {\n\t\t\tmatch = " " + match[1].replace( rBackslash, "" ) + " ";\n\n\t\t\tif ( isXML ) {\n\t\t\t\treturn match;\n\t\t\t}\n\n\t\t\tfor ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {\n\t\t\t\tif ( elem ) {\n\t\t\t\t\tif ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\\t\\n\\r]/g, " ").indexOf(match) >= 0) ) {\n\t\t\t\t\t\tif ( !inplace ) {\n\t\t\t\t\t\t\tresult.push( elem );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( inplace ) {\n\t\t\t\t\t\tcurLoop[i] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tID: function( match ) {\n\t\t\treturn match[1].replace( rBackslash, "" );\n\t\t},\n\n\t\tTAG: function( match, curLoop ) {\n\t\t\treturn match[1].replace( rBackslash, "" ).toLowerCase();\n\t\t},\n\n\t\tCHILD: function( match ) {\n\t\t\tif ( match[1] === "nth" ) {\n\t\t\t\tif ( !match[2] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\tmatch[2] = match[2].replace(/^\\+|\\s*/g, \'\');\n\n\t\t\t\t// parse equations like \'even\', \'odd\', \'5\', \'2n\', \'3n+2\', \'4n-1\', \'-n+6\'\n\t\t\t\tvar test = /(-?)(\\d*)(?:n([+\\-]?\\d*))?/.exec(\n\t\t\t\t\tmatch[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||\n\t\t\t\t\t!/\\D/.test( match[2] ) && "0n+" + match[2] || match[2]);\n\n\t\t\t\t// calculate the numbers (first)n+(last) including if they are negative\n\t\t\t\tmatch[2] = (test[1] + (test[2] || 1)) - 0;\n\t\t\t\tmatch[3] = test[3] - 0;\n\t\t\t}\n\t\t\telse if ( match[2] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\t// TODO: Move to normal caching system\n\t\t\tmatch[0] = done++;\n\n\t\t\treturn match;\n\t\t},\n\n\t\tATTR: function( match, curLoop, inplace, result, not, isXML ) {\n\t\t\tvar name = match[1] = match[1].replace( rBackslash, "" );\n\n\t\t\tif ( !isXML && Expr.attrMap[name] ) {\n\t\t\t\tmatch[1] = Expr.attrMap[name];\n\t\t\t}\n\n\t\t\t// Handle if an un-quoted value was used\n\t\t\tmatch[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );\n\n\t\t\tif ( match[2] === "~=" ) {\n\t\t\t\tmatch[4] = " " + match[4] + " ";\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match, curLoop, inplace, result, not ) {\n\t\t\tif ( match[1] === "not" ) {\n\t\t\t\t// If we\'re dealing with a complex expression, or a simple one\n\t\t\t\tif ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\\w/.test(match[3]) ) {\n\t\t\t\t\tmatch[3] = Sizzle(match[3], null, null, curLoop);\n\n\t\t\t\t} else {\n\t\t\t\t\tvar ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);\n\n\t\t\t\t\tif ( !inplace ) {\n\t\t\t\t\t\tresult.push.apply( result, ret );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPOS: function( match ) {\n\t\t\tmatch.unshift( true );\n\n\t\t\treturn match;\n\t\t}\n\t},\n\n\tfilters: {\n\t\tenabled: function( elem ) {\n\t\t\treturn elem.disabled === false && elem.type !== "hidden";\n\t\t},\n\n\t\tdisabled: function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\tchecked: function( elem ) {\n\t\t\treturn elem.checked === true;\n\t\t},\n\n\t\tselected: function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !!elem.firstChild;\n\t\t},\n\n\t\tempty: function( elem ) {\n\t\t\treturn !elem.firstChild;\n\t\t},\n\n\t\thas: function( elem, i, match ) {\n\t\t\treturn !!Sizzle( match[3], elem ).length;\n\t\t},\n\n\t\theader: function( elem ) {\n\t\t\treturn (/h\\d/i).test( elem.nodeName );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr = elem.getAttribute( "type" ), type = elem.type;\n\t\t\t// IE6 and 7 will map elem.type to \'text\' for new HTML5 types (search, etc)\n\t\t\t// use getAttribute instead to test this case\n\t\t\treturn elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );\n\t\t},\n\n\t\tradio: function( elem ) {\n\t\t\treturn elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;\n\t\t},\n\n\t\tcheckbox: function( elem ) {\n\t\t\treturn elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;\n\t\t},\n\n\t\tfile: function( elem ) {\n\t\t\treturn elem.nodeName.toLowerCase() === "input" && "file" === elem.type;\n\t\t},\n\n\t\tpassword: function( elem ) {\n\t\t\treturn elem.nodeName.toLowerCase() === "input" && "password" === elem.type;\n\t\t},\n\n\t\tsubmit: function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn (name === "input" || name === "button") && "submit" === elem.type;\n\t\t},\n\n\t\timage: function( elem ) {\n\t\t\treturn elem.nodeName.toLowerCase() === "input" && "image" === elem.type;\n\t\t},\n\n\t\treset: function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn (name === "input" || name === "button") && "reset" === elem.type;\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === "input" && "button" === elem.type || name === "button";\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn (/input|select|textarea|button/i).test( elem.nodeName );\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === elem.ownerDocument.activeElement;\n\t\t}\n\t},\n\tsetFilters: {\n\t\tfirst: function( elem, i ) {\n\t\t\treturn i === 0;\n\t\t},\n\n\t\tlast: function( elem, i, match, array ) {\n\t\t\treturn i === array.length - 1;\n\t\t},\n\n\t\teven: function( elem, i ) {\n\t\t\treturn i % 2 === 0;\n\t\t},\n\n\t\todd: function( elem, i ) {\n\t\t\treturn i % 2 === 1;\n\t\t},\n\n\t\tlt: function( elem, i, match ) {\n\t\t\treturn i < match[3] - 0;\n\t\t},\n\n\t\tgt: function( elem, i, match ) {\n\t\t\treturn i > match[3] - 0;\n\t\t},\n\n\t\tnth: function( elem, i, match ) {\n\t\t\treturn match[3] - 0 === i;\n\t\t},\n\n\t\teq: function( elem, i, match ) {\n\t\t\treturn match[3] - 0 === i;\n\t\t}\n\t},\n\tfilter: {\n\t\tPSEUDO: function( elem, match, i, array ) {\n\t\t\tvar name = match[1],\n\t\t\t\tfilter = Expr.filters[ name ];\n\n\t\t\tif ( filter ) {\n\t\t\t\treturn filter( elem, i, match, array );\n\n\t\t\t} else if ( name === "contains" ) {\n\t\t\t\treturn (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;\n\n\t\t\t} else if ( name === "not" ) {\n\t\t\t\tvar not = match[3];\n\n\t\t\t\tfor ( var j = 0, l = not.length; j < l; j++ ) {\n\t\t\t\t\tif ( not[j] === elem ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\n\t\t\t} else {\n\t\t\t\tSizzle.error( name );\n\t\t\t}\n\t\t},\n\n\t\tCHILD: function( elem, match ) {\n\t\t\tvar first, last,\n\t\t\t\tdoneName, parent, cache,\n\t\t\t\tcount, diff,\n\t\t\t\ttype = match[1],\n\t\t\t\tnode = elem;\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase "only":\n\t\t\t\tcase "first":\n\t\t\t\t\twhile ( (node = node.previousSibling) ) {\n\t\t\t\t\t\tif ( node.nodeType === 1 ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( type === "first" ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tnode = elem;\n\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase "last":\n\t\t\t\t\twhile ( (node = node.nextSibling) ) {\n\t\t\t\t\t\tif ( node.nodeType === 1 ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\n\t\t\t\tcase "nth":\n\t\t\t\t\tfirst = match[2];\n\t\t\t\t\tlast = match[3];\n\n\t\t\t\t\tif ( first === 1 && last === 0 ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tdoneName = match[0];\n\t\t\t\t\tparent = elem.parentNode;\n\n\t\t\t\t\tif ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {\n\t\t\t\t\t\tcount = 0;\n\n\t\t\t\t\t\tfor ( node = parent.firstChild; node; node = node.nextSibling ) {\n\t\t\t\t\t\t\tif ( node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\tnode.nodeIndex = ++count;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tparent[ expando ] = doneName;\n\t\t\t\t\t}\n\n\t\t\t\t\tdiff = elem.nodeIndex - last;\n\n\t\t\t\t\tif ( first === 0 ) {\n\t\t\t\t\t\treturn diff === 0;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tID: function( elem, match ) {\n\t\t\treturn elem.nodeType === 1 && elem.getAttribute("id") === match;\n\t\t},\n\n\t\tTAG: function( elem, match ) {\n\t\t\treturn (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;\n\t\t},\n\n\t\tCLASS: function( elem, match ) {\n\t\t\treturn (" " + (elem.className || elem.getAttribute("class")) + " ")\n\t\t\t\t.indexOf( match ) > -1;\n\t\t},\n\n\t\tATTR: function( elem, match ) {\n\t\t\tvar name = match[1],\n\t\t\t\tresult = Sizzle.attr ?\n\t\t\t\t\tSizzle.attr( elem, name ) :\n\t\t\t\t\tExpr.attrHandle[ name ] ?\n\t\t\t\t\tExpr.attrHandle[ name ]( elem ) :\n\t\t\t\t\telem[ name ] != null ?\n\t\t\t\t\t\telem[ name ] :\n\t\t\t\t\t\telem.getAttribute( name ),\n\t\t\t\tvalue = result + "",\n\t\t\t\ttype = match[2],\n\t\t\t\tcheck = match[4];\n\n\t\t\treturn result == null ?\n\t\t\t\ttype === "!=" :\n\t\t\t\t!type && Sizzle.attr ?\n\t\t\t\tresult != null :\n\t\t\t\ttype === "=" ?\n\t\t\t\tvalue === check :\n\t\t\t\ttype === "*=" ?\n\t\t\t\tvalue.indexOf(check) >= 0 :\n\t\t\t\ttype === "~=" ?\n\t\t\t\t(" " + value + " ").indexOf(check) >= 0 :\n\t\t\t\t!check ?\n\t\t\t\tvalue && result !== false :\n\t\t\t\ttype === "!=" ?\n\t\t\t\tvalue !== check :\n\t\t\t\ttype === "^=" ?\n\t\t\t\tvalue.indexOf(check) === 0 :\n\t\t\t\ttype === "$=" ?\n\t\t\t\tvalue.substr(value.length - check.length) === check :\n\t\t\t\ttype === "|=" ?\n\t\t\t\tvalue === check || value.substr(0, check.length + 1) === check + "-" :\n\t\t\t\tfalse;\n\t\t},\n\n\t\tPOS: function( elem, match, i, array ) {\n\t\t\tvar name = match[2],\n\t\t\t\tfilter = Expr.setFilters[ name ];\n\n\t\t\tif ( filter ) {\n\t\t\t\treturn filter( elem, i, match, array );\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar origPOS = Expr.match.POS,\n\tfescape = function(all, num){\n\t\treturn "\\\\" + (num - 0 + 1);\n\t};\n\nfor ( var type in Expr.match ) {\n\tExpr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\\[]*\\])(?![^\\(]*\\))/.source) );\n\tExpr.leftMatch[ type ] = new RegExp( /(^(?:.|\\r|\\n)*?)/.source + Expr.match[ type ].source.replace(/\\\\(\\d+)/g, fescape) );\n}\n// Expose origPOS\n// "global" as in regardless of relation to brackets/parens\nExpr.match.globalPOS = origPOS;\n\nvar makeArray = function( array, results ) {\n\tarray = Array.prototype.slice.call( array, 0 );\n\n\tif ( results ) {\n\t\tresults.push.apply( results, array );\n\t\treturn results;\n\t}\n\n\treturn array;\n};\n\n// Perform a simple check to determine if the browser is capable of\n// converting a NodeList to an array using builtin methods.\n// Also verifies that the returned array holds DOM nodes\n// (which is not the case in the Blackberry browser)\ntry {\n\tArray.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;\n\n// Provide a fallback method if it does not work\n} catch( e ) {\n\tmakeArray = function( array, results ) {\n\t\tvar i = 0,\n\t\t\tret = results || [];\n\n\t\tif ( toString.call(array) === "[object Array]" ) {\n\t\t\tArray.prototype.push.apply( ret, array );\n\n\t\t} else {\n\t\t\tif ( typeof array.length === "number" ) {\n\t\t\t\tfor ( var l = array.length; i < l; i++ ) {\n\t\t\t\t\tret.push( array[i] );\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tfor ( ; array[i]; i++ ) {\n\t\t\t\t\tret.push( array[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n}\n\nvar sortOrder, siblingCheck;\n\nif ( document.documentElement.compareDocumentPosition ) {\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {\n\t\t\treturn a.compareDocumentPosition ? -1 : 1;\n\t\t}\n\n\t\treturn a.compareDocumentPosition(b) & 4 ? -1 : 1;\n\t};\n\n} else {\n\tsortOrder = function( a, b ) {\n\t\t// The nodes are identical, we can exit early\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\n\t\t// Fallback to using sourceIndex (in IE) if it\'s available on both nodes\n\t\t} else if ( a.sourceIndex && b.sourceIndex ) {\n\t\t\treturn a.sourceIndex - b.sourceIndex;\n\t\t}\n\n\t\tvar al, bl,\n\t\t\tap = [],\n\t\t\tbp = [],\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tcur = aup;\n\n\t\t// If the nodes are siblings (or identical) we can do a quick check\n\t\tif ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\n\t\t// If no parents were found then the nodes are disconnected\n\t\t} else if ( !aup ) {\n\t\t\treturn -1;\n\n\t\t} else if ( !bup ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// Otherwise they\'re somewhere else in the tree so we need\n\t\t// to build up a full list of the parentNodes for comparison\n\t\twhile ( cur ) {\n\t\t\tap.unshift( cur );\n\t\t\tcur = cur.parentNode;\n\t\t}\n\n\t\tcur = bup;\n\n\t\twhile ( cur ) {\n\t\t\tbp.unshift( cur );\n\t\t\tcur = cur.parentNode;\n\t\t}\n\n\t\tal = ap.length;\n\t\tbl = bp.length;\n\n\t\t// Start walking down the tree looking for a discrepancy\n\t\tfor ( var i = 0; i < al && i < bl; i++ ) {\n\t\t\tif ( ap[i] !== bp[i] ) {\n\t\t\t\treturn siblingCheck( ap[i], bp[i] );\n\t\t\t}\n\t\t}\n\n\t\t// We ended someplace up the tree so do a sibling check\n\t\treturn i === al ?\n\t\t\tsiblingCheck( a, bp[i], -1 ) :\n\t\t\tsiblingCheck( ap[i], b, 1 );\n\t};\n\n\tsiblingCheck = function( a, b, ret ) {\n\t\tif ( a === b ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tvar cur = a.nextSibling;\n\n\t\twhile ( cur ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tcur = cur.nextSibling;\n\t\t}\n\n\t\treturn 1;\n\t};\n}\n\n// Check to see if the browser returns elements by name when\n// querying by getElementById (and provide a workaround)\n(function(){\n\t// We\'re going to inject a fake input element with a specified name\n\tvar form = document.createElement("div"),\n\t\tid = "script" + (new Date()).getTime(),\n\t\troot = document.documentElement;\n\n\tform.innerHTML = "";\n\n\t// Inject it into the root element, check its status, and remove it quickly\n\troot.insertBefore( form, root.firstChild );\n\n\t// The workaround has to do additional checks after a getElementById\n\t// Which slows things down for other browsers (hence the branching)\n\tif ( document.getElementById( id ) ) {\n\t\tExpr.find.ID = function( match, context, isXML ) {\n\t\t\tif ( typeof context.getElementById !== "undefined" && !isXML ) {\n\t\t\t\tvar m = context.getElementById(match[1]);\n\n\t\t\t\treturn m ?\n\t\t\t\t\tm.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?\n\t\t\t\t\t\t[m] :\n\t\t\t\t\t\tundefined :\n\t\t\t\t\t[];\n\t\t\t}\n\t\t};\n\n\t\tExpr.filter.ID = function( elem, match ) {\n\t\t\tvar node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");\n\n\t\t\treturn elem.nodeType === 1 && node && node.nodeValue === match;\n\t\t};\n\t}\n\n\troot.removeChild( form );\n\n\t// release memory in IE\n\troot = form = null;\n})();\n\n(function(){\n\t// Check to see if the browser returns only elements\n\t// when doing getElementsByTagName("*")\n\n\t// Create a fake element\n\tvar div = document.createElement("div");\n\tdiv.appendChild( document.createComment("") );\n\n\t// Make sure no comments are found\n\tif ( div.getElementsByTagName("*").length > 0 ) {\n\t\tExpr.find.TAG = function( match, context ) {\n\t\t\tvar results = context.getElementsByTagName( match[1] );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( match[1] === "*" ) {\n\t\t\t\tvar tmp = [];\n\n\t\t\t\tfor ( var i = 0; results[i]; i++ ) {\n\t\t\t\t\tif ( results[i].nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( results[i] );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresults = tmp;\n\t\t\t}\n\n\t\t\treturn results;\n\t\t};\n\t}\n\n\t// Check to see if an attribute returns normalized href attributes\n\tdiv.innerHTML = "";\n\n\tif ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&\n\t\t\tdiv.firstChild.getAttribute("href") !== "#" ) {\n\n\t\tExpr.attrHandle.href = function( elem ) {\n\t\t\treturn elem.getAttribute( "href", 2 );\n\t\t};\n\t}\n\n\t// release memory in IE\n\tdiv = null;\n})();\n\nif ( document.querySelectorAll ) {\n\t(function(){\n\t\tvar oldSizzle = Sizzle,\n\t\t\tdiv = document.createElement("div"),\n\t\t\tid = "__sizzle__";\n\n\t\tdiv.innerHTML = "

";\n\n\t\t// Safari can\'t handle uppercase or unicode characters when\n\t\t// in quirks mode.\n\t\tif ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tSizzle = function( query, context, extra, seed ) {\n\t\t\tcontext = context || document;\n\n\t\t\t// Only use querySelectorAll on non-XML documents\n\t\t\t// (ID selectors don\'t work in non-HTML documents)\n\t\t\tif ( !seed && !Sizzle.isXML(context) ) {\n\t\t\t\t// See if we find a selector to speed up\n\t\t\t\tvar match = /^(\\w+$)|^\\.([\\w\\-]+$)|^#([\\w\\-]+$)/.exec( query );\n\n\t\t\t\tif ( match && (context.nodeType === 1 || context.nodeType === 9) ) {\n\t\t\t\t\t// Speed-up: Sizzle("TAG")\n\t\t\t\t\tif ( match[1] ) {\n\t\t\t\t\t\treturn makeArray( context.getElementsByTagName( query ), extra );\n\n\t\t\t\t\t// Speed-up: Sizzle(".CLASS")\n\t\t\t\t\t} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {\n\t\t\t\t\t\treturn makeArray( context.getElementsByClassName( match[2] ), extra );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( context.nodeType === 9 ) {\n\t\t\t\t\t// Speed-up: Sizzle("body")\n\t\t\t\t\t// The body element only exists once, optimize finding it\n\t\t\t\t\tif ( query === "body" && context.body ) {\n\t\t\t\t\t\treturn makeArray( [ context.body ], extra );\n\n\t\t\t\t\t// Speed-up: Sizzle("#ID")\n\t\t\t\t\t} else if ( match && match[3] ) {\n\t\t\t\t\t\tvar elem = context.getElementById( match[3] );\n\n\t\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === match[3] ) {\n\t\t\t\t\t\t\t\treturn makeArray( [ elem ], extra );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn makeArray( [], extra );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn makeArray( context.querySelectorAll(query), extra );\n\t\t\t\t\t} catch(qsaError) {}\n\n\t\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t\t// IE 8 doesn\'t work on object elements\n\t\t\t\t} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {\n\t\t\t\t\tvar oldContext = context,\n\t\t\t\t\t\told = context.getAttribute( "id" ),\n\t\t\t\t\t\tnid = old || id,\n\t\t\t\t\t\thasParent = context.parentNode,\n\t\t\t\t\t\trelativeHierarchySelector = /^\\s*[+~]/.test( query );\n\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.setAttribute( "id", nid );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnid = nid.replace( /\'/g, "\\\\$&" );\n\t\t\t\t\t}\n\t\t\t\t\tif ( relativeHierarchySelector && hasParent ) {\n\t\t\t\t\t\tcontext = context.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ( !relativeHierarchySelector || hasParent ) {\n\t\t\t\t\t\t\treturn makeArray( context.querySelectorAll( "[id=\'" + nid + "\'] " + query ), extra );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} catch(pseudoError) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\t\toldContext.removeAttribute( "id" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn oldSizzle(query, context, extra, seed);\n\t\t};\n\n\t\tfor ( var prop in oldSizzle ) {\n\t\t\tSizzle[ prop ] = oldSizzle[ prop ];\n\t\t}\n\n\t\t// release memory in IE\n\t\tdiv = null;\n\t})();\n}\n\n(function(){\n\tvar html = document.documentElement,\n\t\tmatches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;\n\n\tif ( matches ) {\n\t\t// Check to see if it\'s possible to do matchesSelector\n\t\t// on a disconnected node (IE 9 fails this)\n\t\tvar disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),\n\t\t\tpseudoWorks = false;\n\n\t\ttry {\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( document.documentElement, "[test!=\'\']:sizzle" );\n\n\t\t} catch( pseudoError ) {\n\t\t\tpseudoWorks = true;\n\t\t}\n\n\t\tSizzle.matchesSelector = function( node, expr ) {\n\t\t\t// Make sure that attribute selectors are quoted\n\t\t\texpr = expr.replace(/\\=\\s*([^\'"\\]]*)\\s*\\]/g, "=\'$1\']");\n\n\t\t\tif ( !Sizzle.isXML( node ) ) {\n\t\t\t\ttry {\n\t\t\t\t\tif ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {\n\t\t\t\t\t\tvar ret = matches.call( node, expr );\n\n\t\t\t\t\t\t// IE 9\'s matchesSelector returns false on disconnected nodes\n\t\t\t\t\t\tif ( ret || !disconnectedMatch ||\n\t\t\t\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t\t\t\t// fragment in IE 9, so check for that\n\t\t\t\t\t\t\t\tnode.document && node.document.nodeType !== 11 ) {\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\treturn Sizzle(expr, null, null, [node]).length > 0;\n\t\t};\n\t}\n})();\n\n(function(){\n\tvar div = document.createElement("div");\n\n\tdiv.innerHTML = "
";\n\n\t// Opera can\'t find a second classname (in 9.6)\n\t// Also, make sure that getElementsByClassName actually exists\n\tif ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {\n\t\treturn;\n\t}\n\n\t// Safari caches class attributes, doesn\'t catch changes (in 3.2)\n\tdiv.lastChild.className = "e";\n\n\tif ( div.getElementsByClassName("e").length === 1 ) {\n\t\treturn;\n\t}\n\n\tExpr.order.splice(1, 0, "CLASS");\n\tExpr.find.CLASS = function( match, context, isXML ) {\n\t\tif ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {\n\t\t\treturn context.getElementsByClassName(match[1]);\n\t\t}\n\t};\n\n\t// release memory in IE\n\tdiv = null;\n})();\n\nfunction dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {\n\tfor ( var i = 0, l = checkSet.length; i < l; i++ ) {\n\t\tvar elem = checkSet[i];\n\n\t\tif ( elem ) {\n\t\t\tvar match = false;\n\n\t\t\telem = elem[dir];\n\n\t\t\twhile ( elem ) {\n\t\t\t\tif ( elem[ expando ] === doneName ) {\n\t\t\t\t\tmatch = checkSet[elem.sizset];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( elem.nodeType === 1 && !isXML ){\n\t\t\t\t\telem[ expando ] = doneName;\n\t\t\t\t\telem.sizset = i;\n\t\t\t\t}\n\n\t\t\t\tif ( elem.nodeName.toLowerCase() === cur ) {\n\t\t\t\t\tmatch = elem;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\telem = elem[dir];\n\t\t\t}\n\n\t\t\tcheckSet[i] = match;\n\t\t}\n\t}\n}\n\nfunction dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {\n\tfor ( var i = 0, l = checkSet.length; i < l; i++ ) {\n\t\tvar elem = checkSet[i];\n\n\t\tif ( elem ) {\n\t\t\tvar match = false;\n\n\t\t\telem = elem[dir];\n\n\t\t\twhile ( elem ) {\n\t\t\t\tif ( elem[ expando ] === doneName ) {\n\t\t\t\t\tmatch = checkSet[elem.sizset];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\tif ( !isXML ) {\n\t\t\t\t\t\telem[ expando ] = doneName;\n\t\t\t\t\t\telem.sizset = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof cur !== "string" ) {\n\t\t\t\t\t\tif ( elem === cur ) {\n\t\t\t\t\t\t\tmatch = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {\n\t\t\t\t\t\tmatch = elem;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\telem = elem[dir];\n\t\t\t}\n\n\t\t\tcheckSet[i] = match;\n\t\t}\n\t}\n}\n\nif ( document.documentElement.contains ) {\n\tSizzle.contains = function( a, b ) {\n\t\treturn a !== b && (a.contains ? a.contains(b) : true);\n\t};\n\n} else if ( document.documentElement.compareDocumentPosition ) {\n\tSizzle.contains = function( a, b ) {\n\t\treturn !!(a.compareDocumentPosition(b) & 16);\n\t};\n\n} else {\n\tSizzle.contains = function() {\n\t\treturn false;\n\t};\n}\n\nSizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn\'t yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;\n\n\treturn documentElement ? documentElement.nodeName !== "HTML" : false;\n};\n\nvar posProcess = function( selector, context, seed ) {\n\tvar match,\n\t\ttmpSet = [],\n\t\tlater = "",\n\t\troot = context.nodeType ? [context] : context;\n\n\t// Position selectors must be done after the filter\n\t// And so must :not(positional) so we move all PSEUDOs to the end\n\twhile ( (match = Expr.match.PSEUDO.exec( selector )) ) {\n\t\tlater += match[0];\n\t\tselector = selector.replace( Expr.match.PSEUDO, "" );\n\t}\n\n\tselector = Expr.relative[selector] ? selector + "*" : selector;\n\n\tfor ( var i = 0, l = root.length; i < l; i++ ) {\n\t\tSizzle( selector, root[i], tmpSet, seed );\n\t}\n\n\treturn Sizzle.filter( later, tmpSet );\n};\n\n// EXPOSE\n// Override sizzle attribute retrieval\nSizzle.attr = jQuery.attr;\nSizzle.selectors.attrMap = {};\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[":"] = jQuery.expr.filters;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n})();\n\n\nvar runtil = /Until$/,\n\trparentsprev = /^(?:parents|prevUntil|prevAll)/,\n\t// Note: This RegExp should be improved, or likely pulled from Sizzle\n\trmultiselector = /,/,\n\tisSimple = /^.[^:#\\[\\.,]*$/,\n\tslice = Array.prototype.slice,\n\tPOS = jQuery.expr.match.globalPOS,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar self = this,\n\t\t\ti, l;\n\n\t\tif ( typeof selector !== "string" ) {\n\t\t\treturn jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0, l = self.length; i < l; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar ret = this.pushStack( "", "find", selector ),\n\t\t\tlength, n, r;\n\n\t\tfor ( i = 0, l = this.length; i < l; i++ ) {\n\t\t\tlength = ret.length;\n\t\t\tjQuery.find( selector, this[i], ret );\n\n\t\t\tif ( i > 0 ) {\n\t\t\t\t// Make sure that the results are unique\n\t\t\t\tfor ( n = length; n < ret.length; n++ ) {\n\t\t\t\t\tfor ( r = 0; r < length; r++ ) {\n\t\t\t\t\t\tif ( ret[r] === ret[n] ) {\n\t\t\t\t\t\t\tret.splice(n--, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\thas: function( target ) {\n\t\tvar targets = jQuery( target );\n\t\treturn this.filter(function() {\n\t\t\tfor ( var i = 0, l = targets.length; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector, false), "not", selector);\n\t},\n\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector, true), "filter", selector );\n\t},\n\n\tis: function( selector ) {\n\t\treturn !!selector && (\n\t\t\ttypeof selector === "string" ?\n\t\t\t\t// If this is a positional selector, check membership in the returned set\n\t\t\t\t// so $("p:first").is("p:last") won\'t return true for a doc with two "p".\n\t\t\t\tPOS.test( selector ) ?\n\t\t\t\t\tjQuery( selector, this.context ).index( this[0] ) >= 0 :\n\t\t\t\t\tjQuery.filter( selector, this ).length > 0 :\n\t\t\t\tthis.filter( selector ).length > 0 );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar ret = [], i, l, cur = this[0];\n\n\t\t// Array (deprecated as of jQuery 1.7)\n\t\tif ( jQuery.isArray( selectors ) ) {\n\t\t\tvar level = 1;\n\n\t\t\twhile ( cur && cur.ownerDocument && cur !== context ) {\n\t\t\t\tfor ( i = 0; i < selectors.length; i++ ) {\n\n\t\t\t\t\tif ( jQuery( cur ).is( selectors[ i ] ) ) {\n\t\t\t\t\t\tret.push({ selector: selectors[ i ], elem: cur, level: level });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcur = cur.parentNode;\n\t\t\t\tlevel++;\n\t\t\t}\n\n\t\t\treturn ret;\n\t\t}\n\n\t\t// String\n\t\tvar pos = POS.test( selectors ) || typeof selectors !== "string" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( i = 0, l = this.length; i < l; i++ ) {\n\t\t\tcur = this[i];\n\n\t\t\twhile ( cur ) {\n\t\t\t\tif ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {\n\t\t\t\t\tret.push( cur );\n\t\t\t\t\tbreak;\n\n\t\t\t\t} else {\n\t\t\t\t\tcur = cur.parentNode;\n\t\t\t\t\tif ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tret = ret.length > 1 ? jQuery.unique( ret ) : ret;\n\n\t\treturn this.pushStack( ret, "closest", selectors );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === "string" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\tvar set = typeof selector === "string" ?\n\t\t\t\tjQuery( selector, context ) :\n\t\t\t\tjQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),\n\t\t\tall = jQuery.merge( this.get(), set );\n\n\t\treturn this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?\n\t\t\tall :\n\t\t\tjQuery.unique( all ) );\n\t},\n\n\tandSelf: function() {\n\t\treturn this.add( this.prevObject );\n\t}\n});\n\n// A painfully simple check to see if an element is disconnected\n// from a document (should be improved, where feasible).\nfunction isDisconnected( node ) {\n\treturn !node || !node.parentNode || node.parentNode.nodeType === 11;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, "parentNode" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, "parentNode", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn jQuery.nth( elem, 2, "nextSibling" );\n\t},\n\tprev: function( elem ) {\n\t\treturn jQuery.nth( elem, 2, "previousSibling" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, "nextSibling" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, "previousSibling" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, "nextSibling", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, "previousSibling", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, "iframe" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.makeArray( elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( !runtil.test( name ) ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === "string" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;\n\n\t\tif ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {\n\t\t\tret = ret.reverse();\n\t\t}\n\n\t\treturn this.pushStack( ret, name, slice.call( arguments ).join(",") );\n\t};\n});\n\njQuery.extend({\n\tfilter: function( expr, elems, not ) {\n\t\tif ( not ) {\n\t\t\texpr = ":not(" + expr + ")";\n\t\t}\n\n\t\treturn elems.length === 1 ?\n\t\t\tjQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :\n\t\t\tjQuery.find.matches(expr, elems);\n\t},\n\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tnth: function( cur, result, dir, elem ) {\n\t\tresult = result || 1;\n\t\tvar num = 0;\n\n\t\tfor ( ; cur; cur = cur[dir] ) {\n\t\t\tif ( cur.nodeType === 1 && ++num === result ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn cur;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, keep ) {\n\n\t// Can\'t pass null or undefined to indexOf in Firefox 4\n\t// Set to 0 to skip string check\n\tqualifier = qualifier || 0;\n\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep(elements, function( elem, i ) {\n\t\t\tvar retVal = !!qualifier.call( elem, i, elem );\n\t\t\treturn retVal === keep;\n\t\t});\n\n\t} else if ( qualifier.nodeType ) {\n\t\treturn jQuery.grep(elements, function( elem, i ) {\n\t\t\treturn ( elem === qualifier ) === keep;\n\t\t});\n\n\t} else if ( typeof qualifier === "string" ) {\n\t\tvar filtered = jQuery.grep(elements, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t});\n\n\t\tif ( isSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter(qualifier, filtered, !keep);\n\t\t} else {\n\t\t\tqualifier = jQuery.filter( qualifier, filtered );\n\t\t}\n\t}\n\n\treturn jQuery.grep(elements, function( elem, i ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;\n\t});\n}\n\n\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( "|" ),\n\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +\n\t\t"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",\n\trinlinejQuery = / jQuery\\d+="(?:\\d+|null)"/g,\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /]", "i"),\n\t// checked="checked" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /\\/(java|ecma)script/i,\n\trcleanScript = /^\\s*", "" ],\n\t\tlegend: [ 1, "
", "
" ],\n\t\tthead: [ 1, "", "
" ],\n\t\ttr: [ 2, "", "
" ],\n\t\ttd: [ 3, "", "
" ],\n\t\tcol: [ 2, "", "
" ],\n\t\tarea: [ 1, "", "" ],\n\t\t_default: [ 0, "", "" ]\n\t},\n\tsafeFragment = createSafeFragment( document );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// IE can\'t serialize and