From dc805dd9b1f13e3b993abb62fed108a6fb7a94c0 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 09:51:07 -0700 Subject: [PATCH 01/32] Added user avatars to listing --- app/Http/Controllers/Api/UsersController.php | 4 +++- app/Http/Transformers/UsersTransformer.php | 1 + app/Presenters/UserPresenter.php | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index e861c5cd7d..6420a19b27 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -43,7 +43,9 @@ class UsersController extends Controller 'users.last_login', 'users.deleted_at', 'users.department_id', - 'users.activated' + 'users.activated', + 'users.avatar', + ])->with('manager', 'groups', 'userloc', 'company', 'department','throttle','assets','licenses','accessories','consumables') ->withCount('assets','licenses','accessories','consumables'); $users = Company::scopeCompanyables($users); diff --git a/app/Http/Transformers/UsersTransformer.php b/app/Http/Transformers/UsersTransformer.php index 3f8d99489d..8b283da8d0 100644 --- a/app/Http/Transformers/UsersTransformer.php +++ b/app/Http/Transformers/UsersTransformer.php @@ -23,6 +23,7 @@ class UsersTransformer { $array = [ 'id' => (int) $user->id, + 'avatar' => e($user->present()->gravatar), 'name' => e($user->first_name).' '.($user->last_name), 'firstname' => e($user->first_name), 'lastname' => e($user->last_name), diff --git a/app/Presenters/UserPresenter.php b/app/Presenters/UserPresenter.php index 0b88e09085..601c33b051 100644 --- a/app/Presenters/UserPresenter.php +++ b/app/Presenters/UserPresenter.php @@ -34,6 +34,15 @@ class UserPresenter extends Presenter "title" => trans('general.id'), "visible" => false ], + [ + "field" => "avatar", + "searchable" => false, + "sortable" => false, + "switchable" => true, + "title" => 'Avatar', + "visible" => false, + "formatter" => "imageFormatter" + ], [ "field" => "company", "searchable" => true, From bbda0dc3b407c4292eda71043d07bae99eddebaa Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 13:02:30 -0700 Subject: [PATCH 02/32] Always return an avatar, and set a fun default --- app/Presenters/UserPresenter.php | 3 ++- public/img/default-sm.png | Bin 0 -> 18955 bytes public/img/default.png | Bin 0 -> 28435 bytes 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 public/img/default-sm.png create mode 100644 public/img/default.png diff --git a/app/Presenters/UserPresenter.php b/app/Presenters/UserPresenter.php index 601c33b051..53b5fcc344 100644 --- a/app/Presenters/UserPresenter.php +++ b/app/Presenters/UserPresenter.php @@ -287,7 +287,8 @@ class UserPresenter extends Presenter return "//gravatar.com/avatar/".$gravatar; } - return false; + // Set a fun, gender-neutral default icon + return url('/').'/img/default-sm.png'; } diff --git a/public/img/default-sm.png b/public/img/default-sm.png new file mode 100644 index 0000000000000000000000000000000000000000..49aa98b55db5228fd4abe6bade23a0667143835b GIT binary patch literal 18955 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 Z`|B$KtSe9U!De?7&i1Z9RP6DI{Xb_SZC?NY literal 0 HcmV?d00001 From ad32bae62f8d427cd48db7bc1521032dbc10c286 Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Tue, 24 Oct 2017 16:52:45 -0700 Subject: [PATCH 03/32] Fix to bad relation definition in Location. (#4306) --- app/Models/Location.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Models/Location.php b/app/Models/Location.php index c524c1eb30..3275c296d4 100755 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -59,7 +59,18 @@ class Location extends SnipeModel public function locationAssets() { - return $this->hasMany('\App\Models\Asset', 'rtd_location_id')->orHas('assignedAssets'); + /* This used to have an ...->orHas() clause that referred to + assignedAssets, and that was probably incorrect, as well as + definitely was setting fire to the query-planner. So don't do that. + + It is arguable that we should have a '...->whereNull('assigned_to') + bit in there, but that isn't always correct either (in the case + where a user has no location, for example). + + In all likelyhood, we need to denorm an "effective_location" column + into Assets to make this slightly less miserable. + */ + return $this->hasMany('\App\Models\Asset', 'rtd_location_id'); } public function parent() From 715da63581af8202d1dddf931b80771cdde28dde Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 16:53:46 -0700 Subject: [PATCH 04/32] Check that model name exists before trying to display it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I don’t know why this would ever trigger, but a user in Gitter complained earlier today, so… ¯\_(ツ)_/¯ --- app/Models/Asset.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 324034992c..a1dc0bd93a 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -184,7 +184,7 @@ class Asset extends Depreciable } else { $user_name = "Unassigned"; } - return $this->asset_tag . ' - ' . $this->name . ' (' . $user_name . ') ' . $this->model->name; + return $this->asset_tag . ' - ' . $this->name . ' (' . $user_name . ') ' . ($this->model) ? $this->model->name: ''; } public function validationRules($id = '0') From 2b45433255d7a3316740e38cadd017cd99bfea30 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 16:55:59 -0700 Subject: [PATCH 05/32] Removed copypasta commented out seeder code --- database/seeds/UserSeeder.php | 36 +---------------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/database/seeds/UserSeeder.php b/database/seeds/UserSeeder.php index e696e6e3d1..9e088df426 100644 --- a/database/seeds/UserSeeder.php +++ b/database/seeds/UserSeeder.php @@ -17,40 +17,6 @@ class UserSeeder extends Seeder factory(User::class, 1)->states('snipe-admin')->create(); factory(User::class, 3)->states('superuser')->create(); factory(User::class, 3)->states('admin')->create(); - factory(User::class, 1)->states('view-assets')->create(); -// factory(User::class, 1)->states('create-assets')->create(); -// factory(User::class, 1)->states('edit-assets')->create(); -// factory(User::class, 1)->states('delete-assets')->create(); -// factory(User::class, 1)->states('checkin-assets')->create(); -// factory(User::class, 1)->states('checkout-assets')->create(); -// factory(User::class, 1)->states('view-requestable-assets')->create(); -// factory(User::class, 1)->states('view-accessories')->create(); -// factory(User::class, 1)->states('create-accessories')->create(); -// factory(User::class, 1)->states('view-accessories')->create(); -// factory(User::class, 1)->states('delete-accessories')->create(); -// factory(User::class, 1)->states('edit-accessories')->create(); -// factory(User::class, 1)->states('checkout-accessories')->create(); -// factory(User::class, 1)->states('checkin-accessories')->create(); -// factory(User::class, 1)->states('view-consumables')->create(); -// factory(User::class, 1)->states('create-consumables')->create(); -// factory(User::class, 1)->states('edit-consumables')->create(); -// factory(User::class, 1)->states('delete-consumables')->create(); -// factory(User::class, 1)->states('checkout-consumables')->create(); -// factory(User::class, 1)->states('view-licenses')->create(); -// factory(User::class, 1)->states('edit-licenses')->create(); -// factory(User::class, 1)->states('delete-licenses')->create(); -// factory(User::class, 1)->states('create-licenses')->create(); -// factory(User::class, 1)->states('checkout-licenses')->create(); -// factory(User::class, 1)->states('view-keys-licenses')->create(); -// factory(User::class, 1)->states('view-components')->create(); -// factory(User::class, 1)->states('edit-components')->create(); -// factory(User::class, 1)->states('create-components')->create(); -// factory(User::class, 1)->states('delete-components')->create(); -// factory(User::class, 1)->states('checkout-components')->create(); -// factory(User::class, 1)->states('checkin-components')->create(); -// factory(User::class, 1)->states('view-users')->create(); -// factory(User::class, 1)->states('edit-users')->create(); -// factory(User::class, 1)->states('delete-users')->create(); -// factory(User::class, 1)->states('create-users')->create(); + factory(User::class, 50)->states('view-assets')->create(); } } From 8a9960f830344c01cd1d156f4d858af0bae2f0da Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 16:56:46 -0700 Subject: [PATCH 06/32] Fixed missing break that would override password requirement --- app/Http/Requests/SaveUserRequest.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/SaveUserRequest.php b/app/Http/Requests/SaveUserRequest.php index 32a8a3d80a..5f42033681 100644 --- a/app/Http/Requests/SaveUserRequest.php +++ b/app/Http/Requests/SaveUserRequest.php @@ -27,15 +27,17 @@ class SaveUserRequest extends Request $rules = []; + \Log::debug($this->method()); switch($this->method()) { - // Brand new asset + // Brand new user case 'POST': { $rules['first_name'] = 'required|string|min:1'; $rules['username'] = 'required_unless:ldap_import,1|string|min:1'; $rules['password'] = Setting::passwordComplexityRulesSaving('store'); + break; } // Save all fields @@ -43,11 +45,13 @@ class SaveUserRequest extends Request $rules['first_name'] = 'required|string|min:1'; $rules['username'] = 'required_unless:ldap_import,1|string|min:1'; $rules['password'] = Setting::passwordComplexityRulesSaving('update'); + break; // Save only what's passed case 'PATCH': { $rules['password'] = Setting::passwordComplexityRulesSaving('update'); + break; } default:break; From 4628c158131cafd1f27a416715e933aa20e12f0d Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 16:57:04 -0700 Subject: [PATCH 07/32] Fixed typo in comments --- resources/views/layouts/default.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 37077f908e..fd00a72a5b 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -73,7 +73,7 @@ } }; - + @routes From 680ad676ca4b4e9b51fb83e1a4c807ee3d69a36d Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 17:10:42 -0700 Subject: [PATCH 08/32] Remove debugging --- resources/assets/js/snipeit_modals.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/resources/assets/js/snipeit_modals.js b/resources/assets/js/snipeit_modals.js index d088bbb3f4..6bc837fc39 100644 --- a/resources/assets/js/snipeit_modals.js +++ b/resources/assets/js/snipeit_modals.js @@ -95,11 +95,9 @@ // this code adds the newly created object to that select var selector = document.getElementById(select); if(!selector) { - // console.error("Could not find original + + + {!! $errors->first('assigned_user', ' :message') !!} - +
@can('create', \App\Models\User::class) New diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index fd00a72a5b..596d3bfbb3 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -663,7 +663,63 @@ var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value $.fn.bootstrapDP = datepicker; $('.datepicker').datepicker(); - }) + }); + + // Crazy select2 rich dropdowns with images! + $(".js-data-user-ajax").select2({ + ajax: { + url: '{{ route('api.users.selectlist') }}', + + dataType: 'json', + delay: 250, + headers: { + "X-Requested-With": 'XMLHttpRequest', + "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content') + }, + data: function (params) { + var data = { + search: params.term, + page: params.page || 1 + }; + return data; + }, + processResults: function (data, params) { + + params.page = params.page || 1; + + var answer = { + results: data.items, + pagination: { + more: "true" //(params.page < data.page_count) + } + }; + + return answer; + }, + cache: true + }, + escapeMarkup: function (markup) { return markup; }, // let our custom formatter work + templateResult: formatUserlist, + templateSelection: formatUserSelection + }); + + function formatUserlist (userlist) { + var loading_markup = ' Loading...'; + if (userlist.loading) { + return loading_markup; + } + + var markup = "
" ; + markup +="
"; + markup += "
"; + markup += "
" + userlist.text + "
"; + markup += "
"; + return markup; + } + + function formatUserSelection (userlist) { + return userlist.text; + } diff --git a/routes/api.php b/routes/api.php index db12229776..176c905695 100644 --- a/routes/api.php +++ b/routes/api.php @@ -532,20 +532,7 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () { /*--- Users API ---*/ - Route::resource('users', 'UsersController', - [ - 'names' => - [ - 'index' => 'api.users.index', - 'show' => 'api.users.show', - 'store' => 'api.users.store', - 'update' => 'api.users.update', - 'destroy' => 'api.users.destroy' - ], - 'except' => ['create', 'edit'], - 'parameters' => ['user' => 'user_id'] - ] - ); // Users resource + Route::group([ 'prefix' => 'users' ], function () { @@ -563,6 +550,13 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () { ] ); + Route::get('selectlist', + [ + 'as' => 'api.users.selectlist', + 'uses' => 'UsersController@selectList' + ] + ); + Route::get('{user}/assets', [ 'as' => 'api.users.assetlist', @@ -578,6 +572,21 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () { ); }); // Users group + Route::resource('users', 'UsersController', + [ + 'names' => + [ + 'index' => 'api.users.index', + 'show' => 'api.users.show', + 'store' => 'api.users.store', + 'update' => 'api.users.update', + 'destroy' => 'api.users.destroy' + ], + 'except' => ['create', 'edit'], + 'parameters' => ['user' => 'user_id'] + ] + ); // Users resource + Route::get( 'reports/activity', From 21c1ca2336a324977875cc3e57df953562c6554f Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 24 Oct 2017 19:26:21 -0700 Subject: [PATCH 16/32] Bumped hash --- config/version.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/version.php b/config/version.php index 6c2b35e838..377b940fe2 100644 --- a/config/version.php +++ b/config/version.php @@ -1,7 +1,7 @@ 'v4.0.15', - 'build_version' => '339', - 'hash_version' => 'g17b2719', - 'full_hash' => 'v4.0.15-339-g17b2719', + 'build_version' => '362', + 'hash_version' => 'ga305b1e', + 'full_hash' => 'v4.0.15-362-ga305b1e', ); From ede16eec3c143bf8e6a58046f7a91cbde6500784 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 25 Oct 2017 11:11:32 -0700 Subject: [PATCH 17/32] Fixed #4308 - checkin and delete from user page --- resources/views/users/view.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index 05389e4c3e..c78c576559 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -229,7 +229,7 @@
- +
From 0b7864b09c625030ace3ae788d872004220e0240 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 25 Oct 2017 13:17:35 -0700 Subject: [PATCH 18/32] Fixed model number not saving in modal --- resources/views/modals/model.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/modals/model.blade.php b/resources/views/modals/model.blade.php index 5a348d3f3c..7a6cc93d8f 100644 --- a/resources/views/modals/model.blade.php +++ b/resources/views/modals/model.blade.php @@ -27,7 +27,7 @@
-
+
From c503729a9ae2496253ea9efa753611c1a346132a Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 25 Oct 2017 15:03:04 -0700 Subject: [PATCH 19/32] Removed build vue --- build/vue.js | 64 ------------------------------------------------ build/vue.js.map | 1 - 2 files changed, 65 deletions(-) delete mode 100644 build/vue.js delete mode 100644 build/vue.js.map diff --git a/build/vue.js b/build/vue.js deleted file mode 100644 index c9569dce4c..0000000000 --- a/build/vue.js +++ /dev/null @@ -1,64 +0,0 @@ -!function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=63)}([function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;ei.parts.length&&(n.parts.length=i.parts.length)}else{for(var o=[],r=0;r0&&e-1 in t)}function l(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}function u(t,e,i){return _t.isFunction(e)?_t.grep(t,function(t,n){return!!e.call(t,n,t)!==i}):e.nodeType?_t.grep(t,function(t){return t===e!==i}):"string"!=typeof e?_t.grep(t,function(t){return ht.call(e,t)>-1!==i}):At.test(e)?_t.filter(e,t,i):(e=_t.filter(e,t),_t.grep(t,function(t){return ht.call(e,t)>-1!==i&&1===t.nodeType}))}function c(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function h(t){var e={};return _t.each(t.match(Pt)||[],function(t,i){e[i]=!0}),e}function d(t){return t}function p(t){throw t}function f(t,e,i,n){var r;try{t&&_t.isFunction(r=t.promise)?r.call(t).done(e).fail(i):t&&_t.isFunction(r=t.then)?r.call(t,e,i):e.apply(void 0,[t].slice(n))}catch(t){i.apply(void 0,[t])}}function g(){ot.removeEventListener("DOMContentLoaded",g),i.removeEventListener("load",g),_t.ready()}function m(){this.expando=_t.expando+m.uid++}function v(t){return"true"===t||"false"!==t&&("null"===t?null:t===+t+""?+t:Ft.test(t)?JSON.parse(t):t)}function _(t,e,i){var n;if(void 0===i&&1===t.nodeType)if(n="data-"+e.replace(zt,"-$&").toLowerCase(),"string"==typeof(i=t.getAttribute(n))){try{i=v(i)}catch(t){}Lt.set(t,e,i)}else i=void 0;return i}function y(t,e,i,n){var r,s=1,o=20,a=n?function(){return n.cur()}:function(){return _t.css(t,e,"")},l=a(),u=i&&i[3]||(_t.cssNumber[e]?"":"px"),c=(_t.cssNumber[e]||"px"!==u&&+l)&&qt.exec(_t.css(t,e));if(c&&c[3]!==u){u=u||c[3],i=i||[],c=+l||1;do{s=s||".5",c/=s,_t.style(t,e,c+u)}while(s!==(s=a()/l)&&1!==s&&--o)}return i&&(c=+c||+l||0,r=i[1]?c+(i[1]+1)*i[2]:+i[2],n&&(n.unit=u,n.start=c,n.end=r)),r}function b(t){var e,i=t.ownerDocument,n=t.nodeName,r=Vt[n];return r||(e=i.body.appendChild(i.createElement(n)),r=_t.css(e,"display"),e.parentNode.removeChild(e),"none"===r&&(r="block"),Vt[n]=r,r)}function w(t,e){for(var i,n,r=[],s=0,o=t.length;s-1)r&&r.push(s);else if(u=_t.contains(s.ownerDocument,s),o=x(h.appendChild(s),"script"),u&&C(o),i)for(c=0;s=o[c++];)Gt.test(s.type||"")&&i.push(s);return h}function T(){return!0}function D(){return!1}function S(){try{return ot.activeElement}catch(t){}}function A(t,e,i,n,r,s){var o,a;if("object"==typeof e){"string"!=typeof i&&(n=n||i,i=void 0);for(a in e)A(t,a,i,n,e[a],s);return t}if(null==n&&null==r?(r=i,n=i=void 0):null==r&&("string"==typeof i?(r=n,n=void 0):(r=n,n=i,i=void 0)),!1===r)r=D;else if(!r)return t;return 1===s&&(o=r,r=function(t){return _t().off(t),o.apply(this,arguments)},r.guid=o.guid||(o.guid=_t.guid++)),t.each(function(){_t.event.add(this,e,r,n,i)})}function E(t,e){return l(t,"table")&&l(11!==e.nodeType?e:e.firstChild,"tr")?_t(">tbody",t)[0]||t:t}function I(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function $(t){var e=oe.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function O(t,e){var i,n,r,s,o,a,l,u;if(1===e.nodeType){if(Rt.hasData(t)&&(s=Rt.access(t),o=Rt.set(e,s),u=s.events)){delete o.handle,o.events={};for(r in u)for(i=0,n=u[r].length;i1&&"string"==typeof f&&!vt.checkClone&&se.test(f))return t.each(function(r){var s=t.eq(r);g&&(e[0]=f.call(this,r,s.html())),N(s,e,i,n)});if(d&&(r=k(e,t[0].ownerDocument,!1,t,n),s=r.firstChild,1===r.childNodes.length&&(r=s),s||n)){for(a=_t.map(x(r,"script"),I),l=a.length;h=0&&iw.cacheLength&&delete t[e.shift()],t[i+" "]=n}var e=[];return t}function n(t){return t[R]=!0,t}function r(t){var e=$.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function s(t,e){for(var i=t.split("|"),n=i.length;n--;)w.attrHandle[i[n]]=e}function o(t,e){var i=e&&t,n=i&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(n)return n;if(i)for(;i=i.nextSibling;)if(i===e)return-1;return t?1:-1}function a(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&xt(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function l(t){return n(function(e){return e=+e,n(function(i,n){for(var r,s=t([],i.length,e),o=s.length;o--;)i[r=s[o]]&&(i[r]=!(n[r]=i[r]))})})}function u(t){return t&&void 0!==t.getElementsByTagName&&t}function c(){}function h(t){for(var e=0,i=t.length,n="";e1?function(e,i,n){for(var r=t.length;r--;)if(!t[r](e,i,n))return!1;return!0}:t[0]}function f(t,i,n){for(var r=0,s=i.length;r-1&&(n[u]=!(o[u]=h))}}else y=g(y===o?y.splice(m,y.length):y),s?s(null,o,y,l):G.apply(o,y)})}function v(t){for(var e,i,n,r=t.length,s=w.relative[t[0].type],o=s||w.relative[" "],a=s?1:0,l=d(function(t){return t===e},o,!0),u=d(function(t){return J(e,t)>-1},o,!0),c=[function(t,i,n){var r=!s&&(n||i!==S)||((e=i).nodeType?l(t,i,n):u(t,i,n));return e=null,r}];a1&&p(c),a>1&&h(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(st,"$1"),i,a0,s=t.length>0,o=function(n,o,a,l,u){var c,h,d,p=0,f="0",m=n&&[],v=[],_=S,y=n||s&&w.find.TAG("*",u),b=F+=null==_?1:Math.random()||.1,x=y.length;for(u&&(S=o===$||o||u);f!==x&&null!=(c=y[f]);f++){if(s&&c){for(h=0,o||c.ownerDocument===$||(I(c),a=!P);d=t[h++];)if(d(c,o||$,a)){l.push(c);break}u&&(F=b)}r&&((c=!d&&c)&&p--,n&&m.push(c))}if(p+=f,r&&f!==p){for(h=0;d=i[h++];)d(m,v,o,a);if(n){if(p>0)for(;f--;)m[f]||v[f]||(v[f]=K.call(l));v=g(v)}G.apply(l,v),u&&!n&&v.length>0&&p+i.length>1&&e.uniqueSort(l)}return u&&(F=b,S=_),m};return r?n(o):o}var y,b,w,x,C,k,T,D,S,A,E,I,$,O,P,N,M,j,H,R="sizzle"+1*new Date,L=t.document,F=0,z=0,W=i(),q=i(),U=i(),B=function(t,e){return t===e&&(E=!0),0},Y={}.hasOwnProperty,V=[],K=V.pop,X=V.push,G=V.push,Z=V.slice,J=function(t,e){for(var i=0,n=t.length;i+~]|"+tt+")"+tt+"*"),lt=new RegExp("="+tt+"*([^\\]'\"]*?)"+tt+"*\\]","g"),ut=new RegExp(nt),ct=new RegExp("^"+et+"$"),ht={ID:new RegExp("^#("+et+")"),CLASS:new RegExp("^\\.("+et+")"),TAG:new RegExp("^("+et+"|[*])"),ATTR:new RegExp("^"+it),PSEUDO:new RegExp("^"+nt),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+tt+"*(even|odd|(([+-]|)(\\d*)n|)"+tt+"*(?:([+-]|)"+tt+"*(\\d+)|))"+tt+"*\\)|)","i"),bool:new RegExp("^(?:"+Q+")$","i"),needsContext:new RegExp("^"+tt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+tt+"*((?:-\\d)?\\d*)"+tt+"*\\)|)(?=[^-]|$)","i")},dt=/^(?:input|select|textarea|button)$/i,pt=/^h\d$/i,ft=/^[^{]+\{\s*\[native \w/,gt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,mt=/[+~]/,vt=new RegExp("\\\\([\\da-f]{1,6}"+tt+"?|("+tt+")|.)","ig"),_t=function(t,e,i){var n="0x"+e-65536;return n!==n||i?e:n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)},yt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,bt=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},wt=function(){I()},xt=d(function(t){return!0===t.disabled&&("form"in t||"label"in t)},{dir:"parentNode",next:"legend"});try{G.apply(V=Z.call(L.childNodes),L.childNodes),V[L.childNodes.length].nodeType}catch(t){G={apply:V.length?function(t,e){X.apply(t,Z.call(e))}:function(t,e){for(var i=t.length,n=0;t[i++]=e[n++];);t.length=i-1}}}b=e.support={},C=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},I=e.setDocument=function(t){var e,i,n=t?t.ownerDocument||t:L;return n!==$&&9===n.nodeType&&n.documentElement?($=n,O=$.documentElement,P=!C($),L!==$&&(i=$.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",wt,!1):i.attachEvent&&i.attachEvent("onunload",wt)),b.attributes=r(function(t){return t.className="i",!t.getAttribute("className")}),b.getElementsByTagName=r(function(t){return t.appendChild($.createComment("")),!t.getElementsByTagName("*").length}),b.getElementsByClassName=ft.test($.getElementsByClassName),b.getById=r(function(t){return O.appendChild(t).id=R,!$.getElementsByName||!$.getElementsByName(R).length}),b.getById?(w.filter.ID=function(t){var e=t.replace(vt,_t);return function(t){return t.getAttribute("id")===e}},w.find.ID=function(t,e){if(void 0!==e.getElementById&&P){var i=e.getElementById(t);return i?[i]:[]}}):(w.filter.ID=function(t){var e=t.replace(vt,_t);return function(t){var i=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return i&&i.value===e}},w.find.ID=function(t,e){if(void 0!==e.getElementById&&P){var i,n,r,s=e.getElementById(t);if(s){if((i=s.getAttributeNode("id"))&&i.value===t)return[s];for(r=e.getElementsByName(t),n=0;s=r[n++];)if((i=s.getAttributeNode("id"))&&i.value===t)return[s]}return[]}}),w.find.TAG=b.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):b.qsa?e.querySelectorAll(t):void 0}:function(t,e){var i,n=[],r=0,s=e.getElementsByTagName(t);if("*"===t){for(;i=s[r++];)1===i.nodeType&&n.push(i);return n}return s},w.find.CLASS=b.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&P)return e.getElementsByClassName(t)},M=[],N=[],(b.qsa=ft.test($.querySelectorAll))&&(r(function(t){O.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+tt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||N.push("\\["+tt+"*(?:value|"+Q+")"),t.querySelectorAll("[id~="+R+"-]").length||N.push("~="),t.querySelectorAll(":checked").length||N.push(":checked"),t.querySelectorAll("a#"+R+"+*").length||N.push(".#.+[+~]")}),r(function(t){t.innerHTML="";var e=$.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&N.push("name"+tt+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&N.push(":enabled",":disabled"),O.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&N.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),N.push(",.*:")})),(b.matchesSelector=ft.test(j=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&r(function(t){b.disconnectedMatch=j.call(t,"*"),j.call(t,"[s!='']:x"),M.push("!=",nt)}),N=N.length&&new RegExp(N.join("|")),M=M.length&&new RegExp(M.join("|")),e=ft.test(O.compareDocumentPosition),H=e||ft.test(O.contains)?function(t,e){var i=9===t.nodeType?t.documentElement:t,n=e&&e.parentNode;return t===n||!(!n||1!==n.nodeType||!(i.contains?i.contains(n):t.compareDocumentPosition&&16&t.compareDocumentPosition(n)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},B=e?function(t,e){if(t===e)return E=!0,0;var i=!t.compareDocumentPosition-!e.compareDocumentPosition;return i||(i=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&i||!b.sortDetached&&e.compareDocumentPosition(t)===i?t===$||t.ownerDocument===L&&H(L,t)?-1:e===$||e.ownerDocument===L&&H(L,e)?1:A?J(A,t)-J(A,e):0:4&i?-1:1)}:function(t,e){if(t===e)return E=!0,0;var i,n=0,r=t.parentNode,s=e.parentNode,a=[t],l=[e];if(!r||!s)return t===$?-1:e===$?1:r?-1:s?1:A?J(A,t)-J(A,e):0;if(r===s)return o(t,e);for(i=t;i=i.parentNode;)a.unshift(i);for(i=e;i=i.parentNode;)l.unshift(i);for(;a[n]===l[n];)n++;return n?o(a[n],l[n]):a[n]===L?-1:l[n]===L?1:0},$):$},e.matches=function(t,i){return e(t,null,null,i)},e.matchesSelector=function(t,i){if((t.ownerDocument||t)!==$&&I(t),i=i.replace(lt,"='$1']"),b.matchesSelector&&P&&!U[i+" "]&&(!M||!M.test(i))&&(!N||!N.test(i)))try{var n=j.call(t,i);if(n||b.disconnectedMatch||t.document&&11!==t.document.nodeType)return n}catch(t){}return e(i,$,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==$&&I(t),H(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==$&&I(t);var i=w.attrHandle[e.toLowerCase()],n=i&&Y.call(w.attrHandle,e.toLowerCase())?i(t,e,!P):void 0;return void 0!==n?n:b.attributes||!P?t.getAttribute(e):(n=t.getAttributeNode(e))&&n.specified?n.value:null},e.escape=function(t){return(t+"").replace(yt,bt)},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,i=[],n=0,r=0;if(E=!b.detectDuplicates,A=!b.sortStable&&t.slice(0),t.sort(B),E){for(;e=t[r++];)e===t[r]&&(n=i.push(r));for(;n--;)t.splice(i[n],1)}return A=null,t},x=e.getText=function(t){var e,i="",n=0,r=t.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)i+=x(t)}else if(3===r||4===r)return t.nodeValue}else for(;e=t[n++];)i+=x(e);return i},w=e.selectors={cacheLength:50,createPseudo:n,match:ht,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(vt,_t),t[3]=(t[3]||t[4]||t[5]||"").replace(vt,_t),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,i=!t[6]&&t[2];return ht.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":i&&ut.test(i)&&(e=k(i,!0))&&(e=i.indexOf(")",i.length-e)-i.length)&&(t[0]=t[0].slice(0,e),t[2]=i.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(vt,_t).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=W[t+" "];return e||(e=new RegExp("(^|"+tt+")"+t+"("+tt+"|$)"))&&W(t,function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,i,n){return function(r){var s=e.attr(r,t);return null==s?"!="===i:!i||(s+="","="===i?s===n:"!="===i?s!==n:"^="===i?n&&0===s.indexOf(n):"*="===i?n&&s.indexOf(n)>-1:"$="===i?n&&s.slice(-n.length)===n:"~="===i?(" "+s.replace(rt," ")+" ").indexOf(n)>-1:"|="===i&&(s===n||s.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,i,n,r){var s="nth"!==t.slice(0,3),o="last"!==t.slice(-4),a="of-type"===e;return 1===n&&0===r?function(t){return!!t.parentNode}:function(e,i,l){var u,c,h,d,p,f,g=s!==o?"nextSibling":"previousSibling",m=e.parentNode,v=a&&e.nodeName.toLowerCase(),_=!l&&!a,y=!1;if(m){if(s){for(;g;){for(d=e;d=d[g];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;f=g="only"===t&&!f&&"nextSibling"}return!0}if(f=[o?m.firstChild:m.lastChild],o&&_){for(d=m,h=d[R]||(d[R]={}),c=h[d.uniqueID]||(h[d.uniqueID]={}),u=c[t]||[],p=u[0]===F&&u[1],y=p&&u[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(y=p=0)||f.pop();)if(1===d.nodeType&&++y&&d===e){c[t]=[F,p,y];break}}else if(_&&(d=e,h=d[R]||(d[R]={}),c=h[d.uniqueID]||(h[d.uniqueID]={}),u=c[t]||[],p=u[0]===F&&u[1],y=p),!1===y)for(;(d=++p&&d&&d[g]||(y=p=0)||f.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++y||(_&&(h=d[R]||(d[R]={}),c=h[d.uniqueID]||(h[d.uniqueID]={}),c[t]=[F,y]),d!==e)););return(y-=r)===n||y%n==0&&y/n>=0}}},PSEUDO:function(t,i){var r,s=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return s[R]?s(i):s.length>1?(r=[t,t,"",i],w.setFilters.hasOwnProperty(t.toLowerCase())?n(function(t,e){for(var n,r=s(t,i),o=r.length;o--;)n=J(t,r[o]),t[n]=!(e[n]=r[o])}):function(t){return s(t,0,r)}):s}},pseudos:{not:n(function(t){var e=[],i=[],r=T(t.replace(st,"$1"));return r[R]?n(function(t,e,i,n){for(var s,o=r(t,null,n,[]),a=t.length;a--;)(s=o[a])&&(t[a]=!(e[a]=s))}):function(t,n,s){return e[0]=t,r(e,null,s,i),e[0]=null,!i.pop()}}),has:n(function(t){return function(i){return e(t,i).length>0}}),contains:n(function(t){return t=t.replace(vt,_t),function(e){return(e.textContent||e.innerText||x(e)).indexOf(t)>-1}}),lang:n(function(t){return ct.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(vt,_t).toLowerCase(),function(e){var i;do{if(i=P?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(i=i.toLowerCase())===t||0===i.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var i=t.location&&t.location.hash;return i&&i.slice(1)===e.id},root:function(t){return t===O},focus:function(t){return t===$.activeElement&&(!$.hasFocus||$.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:a(!1),disabled:a(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!w.pseudos.empty(t)},header:function(t){return pt.test(t.nodeName)},input:function(t){return dt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:l(function(){return[0]}),last:l(function(t,e){return[e-1]}),eq:l(function(t,e,i){return[i<0?i+e:i]}),even:l(function(t,e){for(var i=0;i=0;)t.push(n);return t}),gt:l(function(t,e,i){for(var n=i<0?i+e:i;++n2&&"ID"===(o=s[0]).type&&9===e.nodeType&&P&&w.relative[s[1].type]){if(!(e=(w.find.ID(o.matches[0].replace(vt,_t),e)||[])[0]))return i;c&&(e=e.parentNode),t=t.slice(s.shift().value.length)}for(r=ht.needsContext.test(t)?0:s.length;r--&&(o=s[r],!w.relative[a=o.type]);)if((l=w.find[a])&&(n=l(o.matches[0].replace(vt,_t),mt.test(s[0].type)&&u(e.parentNode)||e))){if(s.splice(r,1),!(t=n.length&&h(s)))return G.apply(i,n),i;break}}return(c||T(t,d))(n,e,!P,i,!e||mt.test(t)&&u(e.parentNode)||e),i},b.sortStable=R.split("").sort(B).join("")===R,b.detectDuplicates=!!E,I(),b.sortDetached=r(function(t){return 1&t.compareDocumentPosition($.createElement("fieldset"))}),r(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||s("type|href|height|width",function(t,e,i){if(!i)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),b.attributes&&r(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||s("value",function(t,e,i){if(!i&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),r(function(t){return null==t.getAttribute("disabled")})||s(Q,function(t,e,i){var n;if(!i)return!0===t[e]?e.toLowerCase():(n=t.getAttributeNode(e))&&n.specified?n.value:null}),e}(i);_t.find=Ct,_t.expr=Ct.selectors,_t.expr[":"]=_t.expr.pseudos,_t.uniqueSort=_t.unique=Ct.uniqueSort,_t.text=Ct.getText,_t.isXMLDoc=Ct.isXML,_t.contains=Ct.contains,_t.escapeSelector=Ct.escape;var kt=function(t,e,i){for(var n=[],r=void 0!==i;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&_t(t).is(i))break;n.push(t)}return n},Tt=function(t,e){for(var i=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&i.push(t);return i},Dt=_t.expr.match.needsContext,St=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,At=/^.[^:#\[\.,]*$/;_t.filter=function(t,e,i){var n=e[0];return i&&(t=":not("+t+")"),1===e.length&&1===n.nodeType?_t.find.matchesSelector(n,t)?[n]:[]:_t.find.matches(t,_t.grep(e,function(t){return 1===t.nodeType}))},_t.fn.extend({find:function(t){var e,i,n=this.length,r=this;if("string"!=typeof t)return this.pushStack(_t(t).filter(function(){for(e=0;e1?_t.uniqueSort(i):i},filter:function(t){return this.pushStack(u(this,t||[],!1))},not:function(t){return this.pushStack(u(this,t||[],!0))},is:function(t){return!!u(this,"string"==typeof t&&Dt.test(t)?_t(t):t||[],!1).length}});var Et,It=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(_t.fn.init=function(t,e,i){var n,r;if(!t)return this;if(i=i||Et,"string"==typeof t){if(!(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:It.exec(t))||!n[1]&&e)return!e||e.jquery?(e||i).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof _t?e[0]:e,_t.merge(this,_t.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:ot,!0)),St.test(n[1])&&_t.isPlainObject(e))for(n in e)_t.isFunction(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return r=ot.getElementById(n[2]),r&&(this[0]=r,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):_t.isFunction(t)?void 0!==i.ready?i.ready(t):t(_t):_t.makeArray(t,this)}).prototype=_t.fn,Et=_t(ot);var $t=/^(?:parents|prev(?:Until|All))/,Ot={children:!0,contents:!0,next:!0,prev:!0};_t.fn.extend({has:function(t){var e=_t(t,this),i=e.length;return this.filter(function(){for(var t=0;t-1:1===i.nodeType&&_t.find.matchesSelector(i,t))){s.push(i);break}return this.pushStack(s.length>1?_t.uniqueSort(s):s)},index:function(t){return t?"string"==typeof t?ht.call(_t(t),this[0]):ht.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(_t.uniqueSort(_t.merge(this.get(),_t(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),_t.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return kt(t,"parentNode")},parentsUntil:function(t,e,i){return kt(t,"parentNode",i)},next:function(t){return c(t,"nextSibling")},prev:function(t){return c(t,"previousSibling")},nextAll:function(t){return kt(t,"nextSibling")},prevAll:function(t){return kt(t,"previousSibling")},nextUntil:function(t,e,i){return kt(t,"nextSibling",i)},prevUntil:function(t,e,i){return kt(t,"previousSibling",i)},siblings:function(t){return Tt((t.parentNode||{}).firstChild,t)},children:function(t){return Tt(t.firstChild)},contents:function(t){return l(t,"iframe")?t.contentDocument:(l(t,"template")&&(t=t.content||t),_t.merge([],t.childNodes))}},function(t,e){_t.fn[t]=function(i,n){var r=_t.map(this,e,i);return"Until"!==t.slice(-5)&&(n=i),n&&"string"==typeof n&&(r=_t.filter(n,r)),this.length>1&&(Ot[t]||_t.uniqueSort(r),$t.test(t)&&r.reverse()),this.pushStack(r)}});var Pt=/[^\x20\t\r\n\f]+/g;_t.Callbacks=function(t){t="string"==typeof t?h(t):_t.extend({},t);var e,i,n,r,s=[],o=[],a=-1,l=function(){for(r=r||t.once,n=e=!0;o.length;a=-1)for(i=o.shift();++a-1;)s.splice(i,1),i<=a&&a--}),this},has:function(t){return t?_t.inArray(t,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return r=o=[],s=i="",this},disabled:function(){return!s},lock:function(){return r=o=[],i||e||(s=i=""),this},locked:function(){return!!r},fireWith:function(t,i){return r||(i=i||[],i=[t,i.slice?i.slice():i],o.push(i),e||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!n}};return u},_t.extend({Deferred:function(t){var e=[["notify","progress",_t.Callbacks("memory"),_t.Callbacks("memory"),2],["resolve","done",_t.Callbacks("once memory"),_t.Callbacks("once memory"),0,"resolved"],["reject","fail",_t.Callbacks("once memory"),_t.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return s.done(arguments).fail(arguments),this},catch:function(t){return r.then(null,t)},pipe:function(){var t=arguments;return _t.Deferred(function(i){_t.each(e,function(e,n){var r=_t.isFunction(t[n[4]])&&t[n[4]];s[n[1]](function(){var t=r&&r.apply(this,arguments);t&&_t.isFunction(t.promise)?t.promise().progress(i.notify).done(i.resolve).fail(i.reject):i[n[0]+"With"](this,r?[t]:arguments)})}),t=null}).promise()},then:function(t,n,r){function s(t,e,n,r){return function(){var a=this,l=arguments,u=function(){var i,u;if(!(t=o&&(n!==p&&(a=void 0,l=[i]),e.rejectWith(a,l))}};t?c():(_t.Deferred.getStackHook&&(c.stackTrace=_t.Deferred.getStackHook()),i.setTimeout(c))}}var o=0;return _t.Deferred(function(i){e[0][3].add(s(0,i,_t.isFunction(r)?r:d,i.notifyWith)),e[1][3].add(s(0,i,_t.isFunction(t)?t:d)),e[2][3].add(s(0,i,_t.isFunction(n)?n:p))}).promise()},promise:function(t){return null!=t?_t.extend(t,r):r}},s={};return _t.each(e,function(t,i){var o=i[2],a=i[5];r[i[1]]=o.add,a&&o.add(function(){n=a},e[3-t][2].disable,e[0][2].lock),o.add(i[3].fire),s[i[0]]=function(){return s[i[0]+"With"](this===s?void 0:this,arguments),this},s[i[0]+"With"]=o.fireWith}),r.promise(s),t&&t.call(s,s),s},when:function(t){var e=arguments.length,i=e,n=Array(i),r=lt.call(arguments),s=_t.Deferred(),o=function(t){return function(i){n[t]=this,r[t]=arguments.length>1?lt.call(arguments):i,--e||s.resolveWith(n,r)}};if(e<=1&&(f(t,s.done(o(i)).resolve,s.reject,!e),"pending"===s.state()||_t.isFunction(r[i]&&r[i].then)))return s.then();for(;i--;)f(r[i],o(i),s.reject);return s.promise()}});var Nt=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;_t.Deferred.exceptionHook=function(t,e){i.console&&i.console.warn&&t&&Nt.test(t.name)&&i.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},_t.readyException=function(t){i.setTimeout(function(){throw t})};var Mt=_t.Deferred();_t.fn.ready=function(t){return Mt.then(t).catch(function(t){_t.readyException(t)}),this},_t.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--_t.readyWait:_t.isReady)||(_t.isReady=!0,!0!==t&&--_t.readyWait>0||Mt.resolveWith(ot,[_t]))}}),_t.ready.then=Mt.then,"complete"===ot.readyState||"loading"!==ot.readyState&&!ot.documentElement.doScroll?i.setTimeout(_t.ready):(ot.addEventListener("DOMContentLoaded",g),i.addEventListener("load",g));var jt=function(t,e,i,n,r,s,o){var a=0,l=t.length,u=null==i;if("object"===_t.type(i)){r=!0;for(a in i)jt(t,e,a,i[a],!0,s,o)}else if(void 0!==n&&(r=!0,_t.isFunction(n)||(o=!0),u&&(o?(e.call(t,n),e=null):(u=e,e=function(t,e,i){return u.call(_t(t),i)})),e))for(;a1,null,!0)},removeData:function(t){return this.each(function(){Lt.remove(this,t)})}}),_t.extend({queue:function(t,e,i){var n;if(t)return e=(e||"fx")+"queue",n=Rt.get(t,e),i&&(!n||Array.isArray(i)?n=Rt.access(t,e,_t.makeArray(i)):n.push(i)),n||[]},dequeue:function(t,e){e=e||"fx";var i=_t.queue(t,e),n=i.length,r=i.shift(),s=_t._queueHooks(t,e),o=function(){_t.dequeue(t,e)};"inprogress"===r&&(r=i.shift(),n--),r&&("fx"===e&&i.unshift("inprogress"),delete s.stop,r.call(t,o,s)),!n&&s&&s.empty.fire()},_queueHooks:function(t,e){var i=e+"queueHooks";return Rt.get(t,i)||Rt.access(t,i,{empty:_t.Callbacks("once memory").add(function(){Rt.remove(t,[e+"queue",i])})})}}),_t.fn.extend({queue:function(t,e){var i=2;return"string"!=typeof t&&(e=t,t="fx",i--),arguments.length\x20\t\r\n\f]+)/i,Gt=/^$|\/(?:java|ecma)script/i,Zt={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Zt.optgroup=Zt.option,Zt.tbody=Zt.tfoot=Zt.colgroup=Zt.caption=Zt.thead,Zt.th=Zt.td;var Jt=/<|&#?\w+;/;!function(){var t=ot.createDocumentFragment(),e=t.appendChild(ot.createElement("div")),i=ot.createElement("input");i.setAttribute("type","radio"),i.setAttribute("checked","checked"),i.setAttribute("name","t"),e.appendChild(i),vt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",vt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Qt=ot.documentElement,te=/^key/,ee=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ie=/^([^.]*)(?:\.(.+)|)/;_t.event={global:{},add:function(t,e,i,n,r){var s,o,a,l,u,c,h,d,p,f,g,m=Rt.get(t);if(m)for(i.handler&&(s=i,i=s.handler,r=s.selector),r&&_t.find.matchesSelector(Qt,r),i.guid||(i.guid=_t.guid++),(l=m.events)||(l=m.events={}),(o=m.handle)||(o=m.handle=function(e){return void 0!==_t&&_t.event.triggered!==e.type?_t.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(Pt)||[""],u=e.length;u--;)a=ie.exec(e[u])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p&&(h=_t.event.special[p]||{},p=(r?h.delegateType:h.bindType)||p,h=_t.event.special[p]||{},c=_t.extend({type:p,origType:g,data:n,handler:i,guid:i.guid,selector:r,needsContext:r&&_t.expr.match.needsContext.test(r),namespace:f.join(".")},s),(d=l[p])||(d=l[p]=[],d.delegateCount=0,h.setup&&!1!==h.setup.call(t,n,f,o)||t.addEventListener&&t.addEventListener(p,o)),h.add&&(h.add.call(t,c),c.handler.guid||(c.handler.guid=i.guid)),r?d.splice(d.delegateCount++,0,c):d.push(c),_t.event.global[p]=!0)},remove:function(t,e,i,n,r){var s,o,a,l,u,c,h,d,p,f,g,m=Rt.hasData(t)&&Rt.get(t);if(m&&(l=m.events)){for(e=(e||"").match(Pt)||[""],u=e.length;u--;)if(a=ie.exec(e[u])||[],p=g=a[1],f=(a[2]||"").split(".").sort(),p){for(h=_t.event.special[p]||{},p=(n?h.delegateType:h.bindType)||p,d=l[p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=s=d.length;s--;)c=d[s],!r&&g!==c.origType||i&&i.guid!==c.guid||a&&!a.test(c.namespace)||n&&n!==c.selector&&("**"!==n||!c.selector)||(d.splice(s,1),c.selector&&d.delegateCount--,h.remove&&h.remove.call(t,c));o&&!d.length&&(h.teardown&&!1!==h.teardown.call(t,f,m.handle)||_t.removeEvent(t,p,m.handle),delete l[p])}else for(p in l)_t.event.remove(t,p+e[u],i,n,!0);_t.isEmptyObject(l)&&Rt.remove(t,"handle events")}},dispatch:function(t){var e,i,n,r,s,o,a=_t.event.fix(t),l=new Array(arguments.length),u=(Rt.get(this,"events")||{})[a.type]||[],c=_t.event.special[a.type]||{};for(l[0]=a,e=1;e=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==t.type||!0!==u.disabled)){for(s=[],o={},i=0;i-1:_t.find(r,this,null,[u]).length),o[r]&&s.push(n);s.length&&a.push({elem:u,handlers:s})}return u=this,l\x20\t\r\n\f]*)[^>]*)\/>/gi,re=/\s*$/g;_t.extend({htmlPrefilter:function(t){return t.replace(ne,"<$1>")},clone:function(t,e,i){var n,r,s,o,a=t.cloneNode(!0),l=_t.contains(t.ownerDocument,t);if(!(vt.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||_t.isXMLDoc(t)))for(o=x(a),s=x(t),n=0,r=s.length;n0&&C(o,!l&&x(t,"script")),a},cleanData:function(t){for(var e,i,n,r=_t.event.special,s=0;void 0!==(i=t[s]);s++)if(Ht(i)){if(e=i[Rt.expando]){if(e.events)for(n in e.events)r[n]?_t.event.remove(i,n):_t.removeEvent(i,n,e.handle);i[Rt.expando]=void 0}i[Lt.expando]&&(i[Lt.expando]=void 0)}}}),_t.fn.extend({detach:function(t){return M(this,t,!0)},remove:function(t){return M(this,t)},text:function(t){return jt(this,function(t){return void 0===t?_t.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return N(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){E(this,t).appendChild(t)}})},prepend:function(){return N(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=E(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return N(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return N(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(_t.cleanData(x(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return _t.clone(this,t,e)})},html:function(t){return jt(this,function(t){var e=this[0]||{},i=0,n=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!re.test(t)&&!Zt[(Xt.exec(t)||["",""])[1].toLowerCase()]){t=_t.htmlPrefilter(t);try{for(;i1)}}),_t.Tween=q,q.prototype={constructor:q,init:function(t,e,i,n,r,s){this.elem=t,this.prop=i,this.easing=r||_t.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=n,this.unit=s||(_t.cssNumber[i]?"":"px")},cur:function(){var t=q.propHooks[this.prop];return t&&t.get?t.get(this):q.propHooks._default.get(this)},run:function(t){var e,i=q.propHooks[this.prop];return this.options.duration?this.pos=e=_t.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):q.propHooks._default.set(this),this}},q.prototype.init.prototype=q.prototype,q.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=_t.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){_t.fx.step[t.prop]?_t.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[_t.cssProps[t.prop]]&&!_t.cssHooks[t.prop]?t.elem[t.prop]=t.now:_t.style(t.elem,t.prop,t.now+t.unit)}}},q.propHooks.scrollTop=q.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},_t.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},_t.fx=q.prototype.init,_t.fx.step={};var ve,_e,ye=/^(?:toggle|show|hide)$/,be=/queueHooks$/;_t.Animation=_t.extend(G,{tweeners:{"*":[function(t,e){var i=this.createTween(t,e);return y(i.elem,t,qt.exec(e),i),i}]},tweener:function(t,e){_t.isFunction(t)?(e=t,t=["*"]):t=t.match(Pt);for(var i,n=0,r=t.length;n1)},removeAttr:function(t){return this.each(function(){_t.removeAttr(this,t)})}}),_t.extend({attr:function(t,e,i){var n,r,s=t.nodeType;if(3!==s&&8!==s&&2!==s)return void 0===t.getAttribute?_t.prop(t,e,i):(1===s&&_t.isXMLDoc(t)||(r=_t.attrHooks[e.toLowerCase()]||(_t.expr.match.bool.test(e)?we:void 0)),void 0!==i?null===i?void _t.removeAttr(t,e):r&&"set"in r&&void 0!==(n=r.set(t,i,e))?n:(t.setAttribute(e,i+""),i):r&&"get"in r&&null!==(n=r.get(t,e))?n:(n=_t.find.attr(t,e),null==n?void 0:n))},attrHooks:{type:{set:function(t,e){if(!vt.radioValue&&"radio"===e&&l(t,"input")){var i=t.value;return t.setAttribute("type",e),i&&(t.value=i),e}}}},removeAttr:function(t,e){var i,n=0,r=e&&e.match(Pt);if(r&&1===t.nodeType)for(;i=r[n++];)t.removeAttribute(i)}}),we={set:function(t,e,i){return!1===e?_t.removeAttr(t,i):t.setAttribute(i,i),i}},_t.each(_t.expr.match.bool.source.match(/\w+/g),function(t,e){var i=xe[e]||_t.find.attr;xe[e]=function(t,e,n){var r,s,o=e.toLowerCase();return n||(s=xe[o],xe[o]=r,r=null!=i(t,e,n)?o:null,xe[o]=s),r}});var Ce=/^(?:input|select|textarea|button)$/i,ke=/^(?:a|area)$/i;_t.fn.extend({prop:function(t,e){return jt(this,_t.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[_t.propFix[t]||t]})}}),_t.extend({prop:function(t,e,i){var n,r,s=t.nodeType;if(3!==s&&8!==s&&2!==s)return 1===s&&_t.isXMLDoc(t)||(e=_t.propFix[e]||e,r=_t.propHooks[e]),void 0!==i?r&&"set"in r&&void 0!==(n=r.set(t,i,e))?n:t[e]=i:r&&"get"in r&&null!==(n=r.get(t,e))?n:t[e]},propHooks:{tabIndex:{get:function(t){var e=_t.find.attr(t,"tabindex");return e?parseInt(e,10):Ce.test(t.nodeName)||ke.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),vt.optSelected||(_t.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),_t.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_t.propFix[this.toLowerCase()]=this}),_t.fn.extend({addClass:function(t){var e,i,n,r,s,o,a,l=0;if(_t.isFunction(t))return this.each(function(e){_t(this).addClass(t.call(this,e,J(this)))});if("string"==typeof t&&t)for(e=t.match(Pt)||[];i=this[l++];)if(r=J(i),n=1===i.nodeType&&" "+Z(r)+" "){for(o=0;s=e[o++];)n.indexOf(" "+s+" ")<0&&(n+=s+" ");a=Z(n),r!==a&&i.setAttribute("class",a)}return this},removeClass:function(t){var e,i,n,r,s,o,a,l=0;if(_t.isFunction(t))return this.each(function(e){_t(this).removeClass(t.call(this,e,J(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(Pt)||[];i=this[l++];)if(r=J(i),n=1===i.nodeType&&" "+Z(r)+" "){for(o=0;s=e[o++];)for(;n.indexOf(" "+s+" ")>-1;)n=n.replace(" "+s+" "," ");a=Z(n),r!==a&&i.setAttribute("class",a)}return this},toggleClass:function(t,e){var i=typeof t;return"boolean"==typeof e&&"string"===i?e?this.addClass(t):this.removeClass(t):_t.isFunction(t)?this.each(function(i){_t(this).toggleClass(t.call(this,i,J(this),e),e)}):this.each(function(){var e,n,r,s;if("string"===i)for(n=0,r=_t(this),s=t.match(Pt)||[];e=s[n++];)r.hasClass(e)?r.removeClass(e):r.addClass(e);else void 0!==t&&"boolean"!==i||(e=J(this),e&&Rt.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":Rt.get(this,"__className__")||""))})},hasClass:function(t){var e,i,n=0;for(e=" "+t+" ";i=this[n++];)if(1===i.nodeType&&(" "+Z(J(i))+" ").indexOf(e)>-1)return!0;return!1}});var Te=/\r/g;_t.fn.extend({val:function(t){var e,i,n,r=this[0];{if(arguments.length)return n=_t.isFunction(t),this.each(function(i){var r;1===this.nodeType&&(r=n?t.call(this,i,_t(this).val()):t,null==r?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=_t.map(r,function(t){return null==t?"":t+""})),(e=_t.valHooks[this.type]||_t.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))});if(r)return(e=_t.valHooks[r.type]||_t.valHooks[r.nodeName.toLowerCase()])&&"get"in e&&void 0!==(i=e.get(r,"value"))?i:(i=r.value,"string"==typeof i?i.replace(Te,""):null==i?"":i)}}}),_t.extend({valHooks:{option:{get:function(t){var e=_t.find.attr(t,"value");return null!=e?e:Z(_t.text(t))}},select:{get:function(t){var e,i,n,r=t.options,s=t.selectedIndex,o="select-one"===t.type,a=o?null:[],u=o?s+1:r.length;for(n=s<0?u:o?s:0;n-1)&&(i=!0);return i||(t.selectedIndex=-1),s}}}}),_t.each(["radio","checkbox"],function(){_t.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=_t.inArray(_t(t).val(),e)>-1}},vt.checkOn||(_t.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var De=/^(?:focusinfocus|focusoutblur)$/;_t.extend(_t.event,{trigger:function(t,e,n,r){var s,o,a,l,u,c,h,d=[n||ot],p=ft.call(t,"type")?t.type:t,f=ft.call(t,"namespace")?t.namespace.split("."):[];if(o=a=n=n||ot,3!==n.nodeType&&8!==n.nodeType&&!De.test(p+_t.event.triggered)&&(p.indexOf(".")>-1&&(f=p.split("."),p=f.shift(),f.sort()),u=p.indexOf(":")<0&&"on"+p,t=t[_t.expando]?t:new _t.Event(p,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=f.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),e=null==e?[t]:_t.makeArray(e,[t]),h=_t.event.special[p]||{},r||!h.trigger||!1!==h.trigger.apply(n,e))){if(!r&&!h.noBubble&&!_t.isWindow(n)){for(l=h.delegateType||p,De.test(l+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(n.ownerDocument||ot)&&d.push(a.defaultView||a.parentWindow||i)}for(s=0;(o=d[s++])&&!t.isPropagationStopped();)t.type=s>1?l:h.bindType||p,c=(Rt.get(o,"events")||{})[t.type]&&Rt.get(o,"handle"),c&&c.apply(o,e),(c=u&&o[u])&&c.apply&&Ht(o)&&(t.result=c.apply(o,e),!1===t.result&&t.preventDefault());return t.type=p,r||t.isDefaultPrevented()||h._default&&!1!==h._default.apply(d.pop(),e)||!Ht(n)||u&&_t.isFunction(n[p])&&!_t.isWindow(n)&&(a=n[u],a&&(n[u]=null),_t.event.triggered=p,n[p](),_t.event.triggered=void 0,a&&(n[u]=a)),t.result}},simulate:function(t,e,i){var n=_t.extend(new _t.Event,i,{type:t,isSimulated:!0});_t.event.trigger(n,null,e)}}),_t.fn.extend({trigger:function(t,e){return this.each(function(){_t.event.trigger(t,e,this)})},triggerHandler:function(t,e){var i=this[0];if(i)return _t.event.trigger(t,e,i,!0)}}),_t.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(t,e){_t.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}}),_t.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),vt.focusin="onfocusin"in i,vt.focusin||_t.each({focus:"focusin",blur:"focusout"},function(t,e){var i=function(t){_t.event.simulate(e,t.target,_t.event.fix(t))};_t.event.special[e]={setup:function(){var n=this.ownerDocument||this,r=Rt.access(n,e);r||n.addEventListener(t,i,!0),Rt.access(n,e,(r||0)+1)},teardown:function(){var n=this.ownerDocument||this,r=Rt.access(n,e)-1;r?Rt.access(n,e,r):(n.removeEventListener(t,i,!0),Rt.remove(n,e))}}});var Se=i.location,Ae=_t.now(),Ee=/\?/;_t.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new i.DOMParser).parseFromString(t,"text/xml")}catch(t){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||_t.error("Invalid XML: "+t),e};var Ie=/\[\]$/,$e=/\r?\n/g,Oe=/^(?:submit|button|image|reset|file)$/i,Pe=/^(?:input|select|textarea|keygen)/i;_t.param=function(t,e){var i,n=[],r=function(t,e){var i=_t.isFunction(e)?e():e;n[n.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==i?"":i)};if(Array.isArray(t)||t.jquery&&!_t.isPlainObject(t))_t.each(t,function(){r(this.name,this.value)});else for(i in t)Q(i,t[i],e,r);return n.join("&")},_t.fn.extend({serialize:function(){return _t.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=_t.prop(this,"elements");return t?_t.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!_t(this).is(":disabled")&&Pe.test(this.nodeName)&&!Oe.test(t)&&(this.checked||!Kt.test(t))}).map(function(t,e){var i=_t(this).val();return null==i?null:Array.isArray(i)?_t.map(i,function(t){return{name:e.name,value:t.replace($e,"\r\n")}}):{name:e.name,value:i.replace($e,"\r\n")}}).get()}});var Ne=/%20/g,Me=/#.*$/,je=/([?&])_=[^&]*/,He=/^(.*?):[ \t]*([^\r\n]*)$/gm,Re=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Le=/^(?:GET|HEAD)$/,Fe=/^\/\//,ze={},We={},qe="*/".concat("*"),Ue=ot.createElement("a");Ue.href=Se.href,_t.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Se.href,type:"GET",isLocal:Re.test(Se.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":qe,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":_t.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?it(it(t,_t.ajaxSettings),e):it(_t.ajaxSettings,t)},ajaxPrefilter:tt(ze),ajaxTransport:tt(We),ajax:function(t,e){function n(t,e,n,a){var u,d,p,b,w,x=e;c||(c=!0,l&&i.clearTimeout(l),r=void 0,o=a||"",C.readyState=t>0?4:0,u=t>=200&&t<300||304===t,n&&(b=nt(f,C,n)),b=rt(f,b,C,u),u?(f.ifModified&&(w=C.getResponseHeader("Last-Modified"),w&&(_t.lastModified[s]=w),(w=C.getResponseHeader("etag"))&&(_t.etag[s]=w)),204===t||"HEAD"===f.type?x="nocontent":304===t?x="notmodified":(x=b.state,d=b.data,p=b.error,u=!p)):(p=x,!t&&x||(x="error",t<0&&(t=0))),C.status=t,C.statusText=(e||x)+"",u?v.resolveWith(g,[d,x,C]):v.rejectWith(g,[C,x,p]),C.statusCode(y),y=void 0,h&&m.trigger(u?"ajaxSuccess":"ajaxError",[C,f,u?d:p]),_.fireWith(g,[C,x]),h&&(m.trigger("ajaxComplete",[C,f]),--_t.active||_t.event.trigger("ajaxStop")))}"object"==typeof t&&(e=t,t=void 0),e=e||{};var r,s,o,a,l,u,c,h,d,p,f=_t.ajaxSetup({},e),g=f.context||f,m=f.context&&(g.nodeType||g.jquery)?_t(g):_t.event,v=_t.Deferred(),_=_t.Callbacks("once memory"),y=f.statusCode||{},b={},w={},x="canceled",C={readyState:0,getResponseHeader:function(t){var e;if(c){if(!a)for(a={};e=He.exec(o);)a[e[1].toLowerCase()]=e[2];e=a[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(t,e){return null==c&&(t=w[t.toLowerCase()]=w[t.toLowerCase()]||t,b[t]=e),this},overrideMimeType:function(t){return null==c&&(f.mimeType=t),this},statusCode:function(t){var e;if(t)if(c)C.always(t[C.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||x;return r&&r.abort(e),n(0,e),this}};if(v.promise(C),f.url=((t||f.url||Se.href)+"").replace(Fe,Se.protocol+"//"),f.type=e.method||e.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(Pt)||[""],null==f.crossDomain){u=ot.createElement("a");try{u.href=f.url,u.href=u.href,f.crossDomain=Ue.protocol+"//"+Ue.host!=u.protocol+"//"+u.host}catch(t){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=_t.param(f.data,f.traditional)),et(ze,f,e,C),c)return C;h=_t.event&&f.global,h&&0==_t.active++&&_t.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Le.test(f.type),s=f.url.replace(Me,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(Ne,"+")):(p=f.url.slice(s.length),f.data&&(s+=(Ee.test(s)?"&":"?")+f.data,delete f.data),!1===f.cache&&(s=s.replace(je,"$1"),p=(Ee.test(s)?"&":"?")+"_="+Ae+++p),f.url=s+p),f.ifModified&&(_t.lastModified[s]&&C.setRequestHeader("If-Modified-Since",_t.lastModified[s]),_t.etag[s]&&C.setRequestHeader("If-None-Match",_t.etag[s])),(f.data&&f.hasContent&&!1!==f.contentType||e.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+qe+"; q=0.01":""):f.accepts["*"]);for(d in f.headers)C.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(g,C,f)||c))return C.abort();if(x="abort",_.add(f.complete),C.done(f.success),C.fail(f.error),r=et(We,f,e,C)){if(C.readyState=1,h&&m.trigger("ajaxSend",[C,f]),c)return C;f.async&&f.timeout>0&&(l=i.setTimeout(function(){C.abort("timeout")},f.timeout));try{c=!1,r.send(b,n)}catch(t){if(c)throw t;n(-1,t)}}else n(-1,"No Transport");return C},getJSON:function(t,e,i){return _t.get(t,e,i,"json")},getScript:function(t,e){return _t.get(t,void 0,e,"script")}}),_t.each(["get","post"],function(t,e){_t[e]=function(t,i,n,r){return _t.isFunction(i)&&(r=r||n,n=i,i=void 0),_t.ajax(_t.extend({url:t,type:e,dataType:r,data:i,success:n},_t.isPlainObject(t)&&t))}}),_t._evalUrl=function(t){return _t.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},_t.fn.extend({wrapAll:function(t){var e;return this[0]&&(_t.isFunction(t)&&(t=t.call(this[0])),e=_t(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return _t.isFunction(t)?this.each(function(e){_t(this).wrapInner(t.call(this,e))}):this.each(function(){var e=_t(this),i=e.contents();i.length?i.wrapAll(t):e.append(t)})},wrap:function(t){var e=_t.isFunction(t);return this.each(function(i){_t(this).wrapAll(e?t.call(this,i):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){_t(this).replaceWith(this.childNodes)}),this}}),_t.expr.pseudos.hidden=function(t){return!_t.expr.pseudos.visible(t)},_t.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},_t.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(t){}};var Be={0:200,1223:204},Ye=_t.ajaxSettings.xhr();vt.cors=!!Ye&&"withCredentials"in Ye,vt.ajax=Ye=!!Ye,_t.ajaxTransport(function(t){var e,n;if(vt.cors||Ye&&!t.crossDomain)return{send:function(r,s){var o,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)a.setRequestHeader(o,r[o]);e=function(t){return function(){e&&(e=n=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?s(0,"error"):s(a.status,a.statusText):s(Be[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=e(),n=a.onerror=e("error"),void 0!==a.onabort?a.onabort=n:a.onreadystatechange=function(){4===a.readyState&&i.setTimeout(function(){e&&n()})},e=e("abort");try{a.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}}),_t.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),_t.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return _t.globalEval(t),t}}}),_t.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),_t.ajaxTransport("script",function(t){if(t.crossDomain){var e,i;return{send:function(n,r){e=_t("