From 241e5f9d4c06efdf99b04e666d1efba99f185a9c Mon Sep 17 00:00:00 2001 From: Barret Schloerke Date: Tue, 20 Oct 2026 14:11:51 -0400 Subject: [PATCH 1/3] test(srcts): Replay the sample logs in a Node test srcts/__tests__/graphReplay.test.ts runs each log in inst/log-files/ through GraphAtStep and checks the step lists and the node and edge counts at the first, middle, and last visible step. `npm test` bundles it with esbuild and runs it with node --test; `npm run build` (and so CI's routine job) runs it too. --- AGENTS.md | 3 +- memory-bank/ciAndRelease.md | 2 +- memory-bank/jsBuild.md | 28 +++++- package-lock.json | 18 ++++ package.json | 4 +- srcts/__tests__/graphReplay.test.ts | 141 ++++++++++++++++++++++++++++ srcts/__tests__/setupWindow.ts | 3 + 7 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 srcts/__tests__/graphReplay.test.ts create mode 100644 srcts/__tests__/setupWindow.ts diff --git a/AGENTS.md b/AGENTS.md index 28f4c8f..de559c7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,7 +16,8 @@ JavaScript (npm; Node 22 works): npm ci # install; postinstall also runs the build npm run build-only # esbuild -> inst/reactlog/reactlogAsset/reactlog.js (no type check) npm run typecheck # tsc, no output files -npm run build # eslint --fix + prettier on srcts, typecheck, then build +npm test # replay the sample logs in inst/log-files/ (node:test) +npm run build # eslint --fix + prettier on srcts, typecheck, test, then build npm run watch # lint, then rebuild on change (no type check) npm run lint -- srcts/foo.ts # eslint --fix + prettier on given files npm run check-shiny-target # fail if tsc/esbuild target differs from rstudio/shiny (needs network) diff --git a/memory-bank/ciAndRelease.md b/memory-bank/ciAndRelease.md index d265711..0f3ef32 100644 --- a/memory-bank/ciAndRelease.md +++ b/memory-bank/ciAndRelease.md @@ -91,7 +91,7 @@ Steps that may auto-commit, in order: | `usethis::use_tidy_description()` | Reorders and reformats `DESCRIPTION` | | `devtools::document()` | `DESCRIPTION`, `NAMESPACE`, `man/` | | `oxipng` | Lossless PNG shrink on `man/figures/*.png` and `vignettes/*.png`. Git pathspec `*` also matches `/`, so this hits all 22 PNGs under `vignettes/images/` | -| `npm ci` + `npm run build` | Uses Node `current`. `package.json` has a `build` script, so this runs (`npm ci` also runs `postinstall`, which builds). `build` runs `lint-all` (eslint `--fix` + prettier on `srcts/`), `typecheck` (tsc), then esbuild. Commits changes under `inst/` and `srcts/` plus `package-lock.json` | +| `npm ci` + `npm run build` | Uses Node `current`. `package.json` has a `build` script, so this runs (`npm ci` also runs `postinstall`, which builds). `build` runs `lint-all` (eslint `--fix` + prettier on `srcts/`), `typecheck` (tsc), `test` (graph replay), then esbuild. Commits changes under `inst/` and `srcts/` plus `package-lock.json` | There is no `README.Rmd`, `codecov.yml`, or `# @staticimports`, so those steps skip. After pushing, it runs `devtools::lint()` (because `.lintr` exists) and fails on diff --git a/memory-bank/jsBuild.md b/memory-bank/jsBuild.md index 911ef02..b25b48f 100644 --- a/memory-bank/jsBuild.md +++ b/memory-bank/jsBuild.md @@ -49,7 +49,10 @@ blank lines. --target=es2021 --outfile=inst/reactlog/reactlogAsset/reactlog.js`. Takes well under a second. esbuild strips types without checking them. - `typecheck`: `tsc -p .`. Writes nothing. -- `build`: `lint-all`, then `typecheck`, then `build-only`. `lint-all` runs +- `test`: bundles `srcts/__tests__/graphReplay.test.ts` for Node with esbuild + (into `node_modules/.cache/reactlog-test/`) and runs it with `node --test`. + See "Tests" below. +- `build`: `lint-all`, then `typecheck`, then `test`, then `build-only`. `lint-all` runs `bin/lint_file.sh` on the `srcts` folder. - `watch`: `lint-all` once, then `build-only -- --watch`. No type check while watching; run `npm run typecheck` (or an editor) for that. @@ -176,7 +179,28 @@ with their license text, under a header saying the package is MIT. To check that a build change did not change behavior, load the old and new bundle in turn and compare `window._reactlog.curTick`, `window._reactlog.cyto.nodes().length` and the `#logEntry` text after the same -button clicks and key presses. There are no JS unit tests. +button clicks and key presses. + +## Tests + +`srcts/__tests__/graphReplay.test.ts` replays every log in `inst/log-files/` +through `GraphAtStep` and checks the step lists (visible, idle, output calc, +user mark) and the node and edge counts at the first, middle, and last visible +step. It runs in about 0.2 seconds, and `npm run build` runs it, so CI's +`routine` job does too. Adding a log file without adding its counts fails the +test. + +- The graph modules read `window` when they load, and `rlog.ts` and + `GraphAtStep.ts` import each other. So the test imports `./setupWindow` + (a minimal `window` stub) first, then `../rlog`, then `GraphAtStep`. jQuery + and cytoscape load fine in Node without a DOM. +- The counts are recorded from the code, not worked out by hand. If a change + moves them on purpose, check the viewer in a browser, then update the table. +- The file has `/// ` so `tsc` knows the `node:` + modules. That reference adds Node's globals to the whole `tsc` run, not + just the test, so `tsc` will not flag Node-only APIs in app code. +- Nothing tests the DOM or cytoscape drawing; use the browser comparison + above for that. ## Pitfalls diff --git a/package-lock.json b/package-lock.json index b3a6402..3e65939 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@eslint/js": "^10.0.1", "@types/jquery": "^3.5.34", "@types/lodash": "^4.17.26", + "@types/node": "^22.20.5", "esbuild": "^0.28.2", "eslint": "^10.13.0", "license-checker": "^25.0.1", @@ -811,6 +812,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "22.20.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.5.tgz", + "integrity": "sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, "node_modules/@types/sizzle": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.10.tgz", @@ -5644,6 +5655,13 @@ "typescript": ">=4.8.4 <6.1.0" } }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", diff --git a/package.json b/package.json index a6ef055..b91ea1c 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "fix-all": "npm run fix -- srcts", "lint-all": "npm run lint -- srcts", "typecheck": "tsc -p .", - "build": "npm run lint-all && npm run typecheck && npm run build-only", + "test": "esbuild srcts/__tests__/graphReplay.test.ts --bundle --platform=node --log-level=warning --outfile=node_modules/.cache/reactlog-test/graphReplay.test.cjs && node --test node_modules/.cache/reactlog-test/graphReplay.test.cjs", + "build": "npm run lint-all && npm run typecheck && npm test && npm run build-only", "build-only": "esbuild srcts/index.ts --bundle --minify --sourcemap --target=es2021 --outfile=inst/reactlog/reactlogAsset/reactlog.js", "check-shiny-target": "node bin/check_shiny_target.js", "watch": "npm run lint-all && npm run build-only -- --watch", @@ -30,6 +31,7 @@ "@eslint/js": "^10.0.1", "@types/jquery": "^3.5.34", "@types/lodash": "^4.17.26", + "@types/node": "^22.20.5", "esbuild": "^0.28.2", "eslint": "^10.13.0", "license-checker": "^25.0.1", diff --git a/srcts/__tests__/graphReplay.test.ts b/srcts/__tests__/graphReplay.test.ts new file mode 100644 index 0000000..002d269 --- /dev/null +++ b/srcts/__tests__/graphReplay.test.ts @@ -0,0 +1,141 @@ +/// + +// Replays each sample log in inst/log-files/ and checks the graph at a few +// steps. Run with `npm test`. The counts were recorded from the current code. +// If a change moves them on purpose, check the viewer in a browser, then update +// them. + +// Must load first: it sets the `window` that the modules below read on load +import "./setupWindow"; +// Load rlog before GraphAtStep to match index.ts; they import each other +import "../rlog"; + +import assert from "node:assert/strict"; +import fs from "node:fs"; +import path from "node:path"; +import { test } from "node:test"; + +import { GraphAtStep } from "../graph/GraphAtStep"; + +import type { LogType } from "../log/logStates"; + +// [step, nodes, edges, unique edges] +type StepCounts = [number, number, number, number]; + +const expected: Record< + string, + { + entries: number; + visible: number; + idle: number; + outputCalc: number; + userMark: number; + // first, middle, and last visible step + steps: Array; + } +> = { + "log-crandash.js": { + entries: 870, + visible: 595, + idle: 13, + outputCalc: 42, + userMark: 1, + steps: [ + [5, 4, 0, 0], + [461, 34, 18, 51], + [869, 34, 42, 51], + ], + }, + "log-cranwhales.js": { + entries: 563, + visible: 413, + idle: 8, + outputCalc: 19, + userMark: 0, + steps: [ + [48, 21, 0, 0], + [305, 27, 12, 18], + [561, 27, 7, 18], + ], + }, + "log-linear-multi.js": { + entries: 830, + visible: 707, + idle: 5, + outputCalc: 5, + userMark: 0, + steps: [ + [6, 3, 0, 0], + [398, 4, 54, 3], + [828, 4, 11, 3], + ], + }, + "log-radiant.js": { + entries: 6883, + visible: 3686, + idle: 40, + outputCalc: 347, + userMark: 0, + steps: [ + [0, 0, 0, 0], + [4421, 1202, 451, 493], + [6881, 1218, 29, 617], + ], + }, + "log-superzip.js": { + entries: 460, + visible: 318, + idle: 14, + outputCalc: 25, + userMark: 0, + steps: [ + [31, 12, 0, 0], + [241, 28, 22, 32], + [458, 28, 5, 32], + ], + }, +}; + +const logDir = path.join("inst", "log-files"); + +// Each file is `window.log = [...];` +function readLog(file: string): LogType { + const text = fs.readFileSync(path.join(logDir, file), "utf8"); + const log = JSON.parse( + text.replace(/^window\.log\s*=\s*/, "").replace(/;\s*$/, "") + ) as LogType; + // same as log/initStep.ts + log.forEach((entry, i) => { + entry.step = i; + }); + return log; +} + +test("every sample log has expected counts", () => { + assert.deepEqual(fs.readdirSync(logDir).sort(), Object.keys(expected).sort()); +}); + +for (const [file, want] of Object.entries(expected)) { + test(`replays ${file}`, () => { + const log = readLog(file); + const graph = new GraphAtStep(log); + + assert.equal(log.length, want.entries); + assert.equal(graph.stepsVisible.length, want.visible); + assert.equal(graph.stepsIdle.length, want.idle); + assert.equal(graph.stepsOutputCalc.length, want.outputCalc); + assert.equal(graph.stepsUserMark.length, want.userMark); + + const visible = graph.stepsVisible; + const steps = [ + visible[0], + visible[Math.floor(visible.length / 2)], + visible[visible.length - 1], + ]; + const got = steps.map((k): StepCounts => { + const g = graph.rawGraphAtStep(k); + return [k, g.nodes.size, g.edges.size, g.edgesUnique.size]; + }); + assert.deepEqual(got, want.steps); + }); +} diff --git a/srcts/__tests__/setupWindow.ts b/srcts/__tests__/setupWindow.ts new file mode 100644 index 0000000..f12517d --- /dev/null +++ b/srcts/__tests__/setupWindow.ts @@ -0,0 +1,3 @@ +// The app reads a few browser globals when its modules load. This is the +// smallest `window` that lets the graph code run under Node. +(globalThis as any).window = { console, location: { search: "" } }; From 13a038afbd3500a80d70ec72e46d69d3181f8963 Mon Sep 17 00:00:00 2001 From: Barret Schloerke Date: Tue, 20 Oct 2026 14:17:38 -0400 Subject: [PATCH 2/3] test(srcts): Run the bundled test with plain node Newer Node (CI uses the current release) treats `node --test` arguments as globs, and globs skip node_modules/, so it could not find the bundle. Running the file directly still reports through node:test and exits 1 on failure. --- memory-bank/jsBuild.md | 4 +++- package.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/memory-bank/jsBuild.md b/memory-bank/jsBuild.md index b25b48f..91d913d 100644 --- a/memory-bank/jsBuild.md +++ b/memory-bank/jsBuild.md @@ -50,7 +50,9 @@ blank lines. well under a second. esbuild strips types without checking them. - `typecheck`: `tsc -p .`. Writes nothing. - `test`: bundles `srcts/__tests__/graphReplay.test.ts` for Node with esbuild - (into `node_modules/.cache/reactlog-test/`) and runs it with `node --test`. + (into `node_modules/.cache/reactlog-test/`) and runs it with plain `node` + (`node:test` still reports and sets the exit code). Not `node --test`: + newer Node treats its arguments as globs, which skip `node_modules/`. See "Tests" below. - `build`: `lint-all`, then `typecheck`, then `test`, then `build-only`. `lint-all` runs `bin/lint_file.sh` on the `srcts` folder. diff --git a/package.json b/package.json index b91ea1c..cb6cc5f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "fix-all": "npm run fix -- srcts", "lint-all": "npm run lint -- srcts", "typecheck": "tsc -p .", - "test": "esbuild srcts/__tests__/graphReplay.test.ts --bundle --platform=node --log-level=warning --outfile=node_modules/.cache/reactlog-test/graphReplay.test.cjs && node --test node_modules/.cache/reactlog-test/graphReplay.test.cjs", + "test": "esbuild srcts/__tests__/graphReplay.test.ts --bundle --platform=node --log-level=warning --outfile=node_modules/.cache/reactlog-test/graphReplay.test.cjs && node node_modules/.cache/reactlog-test/graphReplay.test.cjs", "build": "npm run lint-all && npm run typecheck && npm test && npm run build-only", "build-only": "esbuild srcts/index.ts --bundle --minify --sourcemap --target=es2021 --outfile=inst/reactlog/reactlogAsset/reactlog.js", "check-shiny-target": "node bin/check_shiny_target.js", From 9ca29199a015447bd85e7e62ebc2463bf20e2ff9 Mon Sep 17 00:00:00 2001 From: Barret Schloerke Date: Tue, 20 Oct 2026 14:27:47 -0400 Subject: [PATCH 3/3] test(srcts): Fingerprint the graph, test filtering, and keep Node types out of app code - Split tsconfig: app code no longer sees @types/node; tsconfig.test.json adds the tests - Fingerprint each checked step from what cytoscape draws, so wrong statuses fail - Filter on the first node and check the filtered steps and graph - Number steps with initStep() instead of a copy - Ignore non-.js files in inst/log-files/ and find it from the bundle's folder --- .Rbuildignore | 1 + AGENTS.md | 2 +- inst/reactlog/reactlogAsset/reactlog.js | 6 +- inst/reactlog/reactlogAsset/reactlog.js.map | 6 +- memory-bank/jsBuild.md | 45 +++++--- package.json | 2 +- srcts/__tests__/graphReplay.test.ts | 111 +++++++++++++------- srcts/__tests__/setupWindow.ts | 4 +- srcts/log/initStep.ts | 13 ++- tsconfig.json | 3 +- tsconfig.test.json | 7 ++ 11 files changed, 136 insertions(+), 64 deletions(-) create mode 100644 tsconfig.test.json diff --git a/.Rbuildignore b/.Rbuildignore index 79a9036..a4ad7da 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -12,6 +12,7 @@ ^prettier\.config\.js$ ^package-lock\.json$ ^tsconfig\.json$ +^tsconfig\.test\.json$ ^CODE_OF_CONDUCT\.md$ ^node_modules ^bin diff --git a/AGENTS.md b/AGENTS.md index de559c7..43a6d11 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,7 +15,7 @@ JavaScript (npm; Node 22 works): ```bash npm ci # install; postinstall also runs the build npm run build-only # esbuild -> inst/reactlog/reactlogAsset/reactlog.js (no type check) -npm run typecheck # tsc, no output files +npm run typecheck # tsc for app code, then for tests (tsconfig.test.json); no output files npm test # replay the sample logs in inst/log-files/ (node:test) npm run build # eslint --fix + prettier on srcts, typecheck, test, then build npm run watch # lint, then rebuild on change (no type check) diff --git a/inst/reactlog/reactlogAsset/reactlog.js b/inst/reactlog/reactlogAsset/reactlog.js index cb626c6..3817bbd 100644 --- a/inst/reactlog/reactlogAsset/reactlog.js +++ b/inst/reactlog/reactlogAsset/reactlog.js @@ -1,13 +1,13 @@ "use strict";(()=>{var Ik=Object.create;var Rl=Object.defineProperty;var Dk=Object.getOwnPropertyDescriptor;var Lk=Object.getOwnPropertyNames;var Ak=Object.getPrototypeOf,qk=Object.prototype.hasOwnProperty;var Ka=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var M=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},Ok=(t,e)=>{for(var r in e)Rl(t,r,{get:e[r],enumerable:!0})},Nk=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Lk(e))!qk.call(t,a)&&a!==r&&Rl(t,a,{get:()=>e[a],enumerable:!(n=Dk(e,a))||n.enumerable});return t};var je=(t,e,r)=>(r=t!=null?Ik(Ak(t)):{},Nk(e||!t||!t.__esModule?Rl(r,"default",{value:t,enumerable:!0}):r,t));var Vn=M((hh,As)=>{(function(t,e){"use strict";typeof As=="object"&&typeof As.exports=="object"?As.exports=t.document?e(t,!0):function(r){if(!r.document)throw new Error("jQuery requires a window with a document");return e(r)}:e(t)})(typeof window<"u"?window:hh,function(t,e){"use strict";var r=[],n=Object.getPrototypeOf,a=r.slice,i=r.flat?function(c){return r.flat.call(c)}:function(c){return r.concat.apply([],c)},o=r.push,s=r.indexOf,u={},l=u.toString,f=u.hasOwnProperty,d=f.toString,p=d.call(Object),g={},y=function(h){return typeof h=="function"&&typeof h.nodeType!="number"},m=function(h){return h!=null&&h===h.window},x=t.document,E={type:!0,src:!0,nonce:!0,noModule:!0};function T(c,h,b){b=b||x;var w,C,k=b.createElement("script");if(k.text=c,h)for(w in E)C=h[w]||h.getAttribute&&h.getAttribute(w),C&&k.setAttribute(w,C);b.head.appendChild(k).parentNode.removeChild(k)}function S(c){return c==null?c+"":typeof c=="object"||typeof c=="function"?u[l.call(c)]||"object":typeof c}var D="3.5.1",v=function(c,h){return new v.fn.init(c,h)};v.fn=v.prototype={jquery:D,constructor:v,length:0,toArray:function(){return a.call(this)},get:function(c){return c==null?a.call(this):c<0?this[c+this.length]:this[c]},pushStack:function(c){var h=v.merge(this.constructor(),c);return h.prevObject=this,h},each:function(c){return v.each(this,c)},map:function(c){return this.pushStack(v.map(this,function(h,b){return c.call(h,b,h)}))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(v.grep(this,function(c,h){return(h+1)%2}))},odd:function(){return this.pushStack(v.grep(this,function(c,h){return h%2}))},eq:function(c){var h=this.length,b=+c+(c<0?h:0);return this.pushStack(b>=0&&b0&&h-1 in c}var I=(function(c){var h,b,w,C,k,L,H,$,Q,ae,Ee,te,ve,Me,Xe,Re,Kt,$t,Dr,bt="sizzle"+1*new Date,Ye=c.document,Er=0,lt=0,Rt=ks(),Ui=ks(),Ts=ks(),Lr=ks(),ha=function(O,V){return O===V&&(Ee=!0),0},va={}.hasOwnProperty,Tr=[],Gn=Tr.pop,Rr=Tr.push,_n=Tr.push,ah=Tr.slice,pa=function(O,V){for(var W=0,pe=O.length;W+~]|"+gt+")"+gt+"*"),pk=new RegExp(gt+"|>"),gk=new RegExp(Ll),yk=new RegExp("^"+ga+"$"),Cs={ID:new RegExp("^#("+ga+")"),CLASS:new RegExp("^\\.("+ga+")"),TAG:new RegExp("^("+ga+"|[*])"),ATTR:new RegExp("^"+ih),PSEUDO:new RegExp("^"+Ll),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+gt+"*(even|odd|(([+-]|)(\\d*)n|)"+gt+"*(?:([+-]|)"+gt+"*(\\d+)|))"+gt+"*\\)|)","i"),bool:new RegExp("^(?:"+Dl+")$","i"),needsContext:new RegExp("^"+gt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+gt+"*((?:-\\d)?\\d*)"+gt+"*\\)|)(?=[^-]|$)","i")},mk=/HTML$/i,bk=/^(?:input|select|textarea|button)$/i,xk=/^h\d$/i,Ki=/^[^{]+\{\s*\[native \w/,wk=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Al=/[+~]/,pn=new RegExp("\\\\[\\da-fA-F]{1,6}"+gt+"?|\\\\([^\\r\\n\\f])","g"),gn=function(O,V){var W="0x"+O.slice(1)-65536;return V||(W<0?String.fromCharCode(W+65536):String.fromCharCode(W>>10|55296,W&1023|56320))},sh=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,uh=function(O,V){return V?O==="\0"?"\uFFFD":O.slice(0,-1)+"\\"+O.charCodeAt(O.length-1).toString(16)+" ":"\\"+O},lh=function(){te()},Ek=Ds(function(O){return O.disabled===!0&&O.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{_n.apply(Tr=ah.call(Ye.childNodes),Ye.childNodes),Tr[Ye.childNodes.length].nodeType}catch{_n={apply:Tr.length?function(V,W){Rr.apply(V,ah.call(W))}:function(V,W){for(var pe=V.length,J=0;V[pe++]=W[J++];);V.length=pe-1}}}function Et(O,V,W,pe){var J,ye,we,Ce,Ie,_e,ze,We=V&&V.ownerDocument,at=V?V.nodeType:9;if(W=W||[],typeof O!="string"||!O||at!==1&&at!==9&&at!==11)return W;if(!pe&&(te(V),V=V||ve,Xe)){if(at!==11&&(Ie=wk.exec(O)))if(J=Ie[1]){if(at===9)if(we=V.getElementById(J)){if(we.id===J)return W.push(we),W}else return W;else if(We&&(we=We.getElementById(J))&&Dr(V,we)&&we.id===J)return W.push(we),W}else{if(Ie[2])return _n.apply(W,V.getElementsByTagName(O)),W;if((J=Ie[3])&&b.getElementsByClassName&&V.getElementsByClassName)return _n.apply(W,V.getElementsByClassName(J)),W}if(b.qsa&&!Lr[O+" "]&&(!Re||!Re.test(O))&&(at!==1||V.nodeName.toLowerCase()!=="object")){if(ze=O,We=V,at===1&&(pk.test(O)||oh.test(O))){for(We=Al.test(O)&&Ol(V.parentNode)||V,(We!==V||!b.scope)&&((Ce=V.getAttribute("id"))?Ce=Ce.replace(sh,uh):V.setAttribute("id",Ce=bt)),_e=L(O),ye=_e.length;ye--;)_e[ye]=(Ce?"#"+Ce:":scope")+" "+Is(_e[ye]);ze=_e.join(",")}try{return _n.apply(W,We.querySelectorAll(ze)),W}catch{Lr(O,!0)}finally{Ce===bt&&V.removeAttribute("id")}}}return $(O.replace(Ss,"$1"),V,W,pe)}function ks(){var O=[];function V(W,pe){return O.push(W+" ")>w.cacheLength&&delete V[O.shift()],V[W+" "]=pe}return V}function Kr(O){return O[bt]=!0,O}function jr(O){var V=ve.createElement("fieldset");try{return!!O(V)}catch{return!1}finally{V.parentNode&&V.parentNode.removeChild(V),V=null}}function ql(O,V){for(var W=O.split("|"),pe=W.length;pe--;)w.attrHandle[W[pe]]=V}function fh(O,V){var W=V&&O,pe=W&&O.nodeType===1&&V.nodeType===1&&O.sourceIndex-V.sourceIndex;if(pe)return pe;if(W){for(;W=W.nextSibling;)if(W===V)return-1}return O?1:-1}function Tk(O){return function(V){var W=V.nodeName.toLowerCase();return W==="input"&&V.type===O}}function Sk(O){return function(V){var W=V.nodeName.toLowerCase();return(W==="input"||W==="button")&&V.type===O}}function ch(O){return function(V){return"form"in V?V.parentNode&&V.disabled===!1?"label"in V?"label"in V.parentNode?V.parentNode.disabled===O:V.disabled===O:V.isDisabled===O||V.isDisabled!==!O&&Ek(V)===O:V.disabled===O:"label"in V?V.disabled===O:!1}}function ya(O){return Kr(function(V){return V=+V,Kr(function(W,pe){for(var J,ye=O([],W.length,V),we=ye.length;we--;)W[J=ye[we]]&&(W[J]=!(pe[J]=W[J]))})})}function Ol(O){return O&&typeof O.getElementsByTagName<"u"&&O}b=Et.support={},k=Et.isXML=function(O){var V=O.namespaceURI,W=(O.ownerDocument||O).documentElement;return!mk.test(V||W&&W.nodeName||"HTML")},te=Et.setDocument=function(O){var V,W,pe=O?O.ownerDocument||O:Ye;return pe==ve||pe.nodeType!==9||!pe.documentElement||(ve=pe,Me=ve.documentElement,Xe=!k(ve),Ye!=ve&&(W=ve.defaultView)&&W.top!==W&&(W.addEventListener?W.addEventListener("unload",lh,!1):W.attachEvent&&W.attachEvent("onunload",lh)),b.scope=jr(function(J){return Me.appendChild(J).appendChild(ve.createElement("div")),typeof J.querySelectorAll<"u"&&!J.querySelectorAll(":scope fieldset div").length}),b.attributes=jr(function(J){return J.className="i",!J.getAttribute("className")}),b.getElementsByTagName=jr(function(J){return J.appendChild(ve.createComment("")),!J.getElementsByTagName("*").length}),b.getElementsByClassName=Ki.test(ve.getElementsByClassName),b.getById=jr(function(J){return Me.appendChild(J).id=bt,!ve.getElementsByName||!ve.getElementsByName(bt).length}),b.getById?(w.filter.ID=function(J){var ye=J.replace(pn,gn);return function(we){return we.getAttribute("id")===ye}},w.find.ID=function(J,ye){if(typeof ye.getElementById<"u"&&Xe){var we=ye.getElementById(J);return we?[we]:[]}}):(w.filter.ID=function(J){var ye=J.replace(pn,gn);return function(we){var Ce=typeof we.getAttributeNode<"u"&&we.getAttributeNode("id");return Ce&&Ce.value===ye}},w.find.ID=function(J,ye){if(typeof ye.getElementById<"u"&&Xe){var we,Ce,Ie,_e=ye.getElementById(J);if(_e){if(we=_e.getAttributeNode("id"),we&&we.value===J)return[_e];for(Ie=ye.getElementsByName(J),Ce=0;_e=Ie[Ce++];)if(we=_e.getAttributeNode("id"),we&&we.value===J)return[_e]}return[]}}),w.find.TAG=b.getElementsByTagName?function(J,ye){if(typeof ye.getElementsByTagName<"u")return ye.getElementsByTagName(J);if(b.qsa)return ye.querySelectorAll(J)}:function(J,ye){var we,Ce=[],Ie=0,_e=ye.getElementsByTagName(J);if(J==="*"){for(;we=_e[Ie++];)we.nodeType===1&&Ce.push(we);return Ce}return _e},w.find.CLASS=b.getElementsByClassName&&function(J,ye){if(typeof ye.getElementsByClassName<"u"&&Xe)return ye.getElementsByClassName(J)},Kt=[],Re=[],(b.qsa=Ki.test(ve.querySelectorAll))&&(jr(function(J){var ye;Me.appendChild(J).innerHTML="",J.querySelectorAll("[msallowcapture^='']").length&&Re.push("[*^$]="+gt+`*(?:''|"")`),J.querySelectorAll("[selected]").length||Re.push("\\["+gt+"*(?:value|"+Dl+")"),J.querySelectorAll("[id~="+bt+"-]").length||Re.push("~="),ye=ve.createElement("input"),ye.setAttribute("name",""),J.appendChild(ye),J.querySelectorAll("[name='']").length||Re.push("\\["+gt+"*name"+gt+"*="+gt+`*(?:''|"")`),J.querySelectorAll(":checked").length||Re.push(":checked"),J.querySelectorAll("a#"+bt+"+*").length||Re.push(".#.+[+~]"),J.querySelectorAll("\\\f"),Re.push("[\\r\\n\\f]")}),jr(function(J){J.innerHTML="";var ye=ve.createElement("input");ye.setAttribute("type","hidden"),J.appendChild(ye).setAttribute("name","D"),J.querySelectorAll("[name=d]").length&&Re.push("name"+gt+"*[*^$|!~]?="),J.querySelectorAll(":enabled").length!==2&&Re.push(":enabled",":disabled"),Me.appendChild(J).disabled=!0,J.querySelectorAll(":disabled").length!==2&&Re.push(":enabled",":disabled"),J.querySelectorAll("*,:x"),Re.push(",.*:")})),(b.matchesSelector=Ki.test($t=Me.matches||Me.webkitMatchesSelector||Me.mozMatchesSelector||Me.oMatchesSelector||Me.msMatchesSelector))&&jr(function(J){b.disconnectedMatch=$t.call(J,"*"),$t.call(J,"[s!='']:x"),Kt.push("!=",Ll)}),Re=Re.length&&new RegExp(Re.join("|")),Kt=Kt.length&&new RegExp(Kt.join("|")),V=Ki.test(Me.compareDocumentPosition),Dr=V||Ki.test(Me.contains)?function(J,ye){var we=J.nodeType===9?J.documentElement:J,Ce=ye&&ye.parentNode;return J===Ce||!!(Ce&&Ce.nodeType===1&&(we.contains?we.contains(Ce):J.compareDocumentPosition&&J.compareDocumentPosition(Ce)&16))}:function(J,ye){if(ye){for(;ye=ye.parentNode;)if(ye===J)return!0}return!1},ha=V?function(J,ye){if(J===ye)return Ee=!0,0;var we=!J.compareDocumentPosition-!ye.compareDocumentPosition;return we||(we=(J.ownerDocument||J)==(ye.ownerDocument||ye)?J.compareDocumentPosition(ye):1,we&1||!b.sortDetached&&ye.compareDocumentPosition(J)===we?J==ve||J.ownerDocument==Ye&&Dr(Ye,J)?-1:ye==ve||ye.ownerDocument==Ye&&Dr(Ye,ye)?1:ae?pa(ae,J)-pa(ae,ye):0:we&4?-1:1)}:function(J,ye){if(J===ye)return Ee=!0,0;var we,Ce=0,Ie=J.parentNode,_e=ye.parentNode,ze=[J],We=[ye];if(!Ie||!_e)return J==ve?-1:ye==ve?1:Ie?-1:_e?1:ae?pa(ae,J)-pa(ae,ye):0;if(Ie===_e)return fh(J,ye);for(we=J;we=we.parentNode;)ze.unshift(we);for(we=ye;we=we.parentNode;)We.unshift(we);for(;ze[Ce]===We[Ce];)Ce++;return Ce?fh(ze[Ce],We[Ce]):ze[Ce]==Ye?-1:We[Ce]==Ye?1:0}),ve},Et.matches=function(O,V){return Et(O,null,null,V)},Et.matchesSelector=function(O,V){if(te(O),b.matchesSelector&&Xe&&!Lr[V+" "]&&(!Kt||!Kt.test(V))&&(!Re||!Re.test(V)))try{var W=$t.call(O,V);if(W||b.disconnectedMatch||O.document&&O.document.nodeType!==11)return W}catch{Lr(V,!0)}return Et(V,ve,null,[O]).length>0},Et.contains=function(O,V){return(O.ownerDocument||O)!=ve&&te(O),Dr(O,V)},Et.attr=function(O,V){(O.ownerDocument||O)!=ve&&te(O);var W=w.attrHandle[V.toLowerCase()],pe=W&&va.call(w.attrHandle,V.toLowerCase())?W(O,V,!Xe):void 0;return pe!==void 0?pe:b.attributes||!Xe?O.getAttribute(V):(pe=O.getAttributeNode(V))&&pe.specified?pe.value:null},Et.escape=function(O){return(O+"").replace(sh,uh)},Et.error=function(O){throw new Error("Syntax error, unrecognized expression: "+O)},Et.uniqueSort=function(O){var V,W=[],pe=0,J=0;if(Ee=!b.detectDuplicates,ae=!b.sortStable&&O.slice(0),O.sort(ha),Ee){for(;V=O[J++];)V===O[J]&&(pe=W.push(J));for(;pe--;)O.splice(W[pe],1)}return ae=null,O},C=Et.getText=function(O){var V,W="",pe=0,J=O.nodeType;if(J){if(J===1||J===9||J===11){if(typeof O.textContent=="string")return O.textContent;for(O=O.firstChild;O;O=O.nextSibling)W+=C(O)}else if(J===3||J===4)return O.nodeValue}else for(;V=O[pe++];)W+=C(V);return W},w=Et.selectors={cacheLength:50,createPseudo:Kr,match:Cs,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(O){return O[1]=O[1].replace(pn,gn),O[3]=(O[3]||O[4]||O[5]||"").replace(pn,gn),O[2]==="~="&&(O[3]=" "+O[3]+" "),O.slice(0,4)},CHILD:function(O){return O[1]=O[1].toLowerCase(),O[1].slice(0,3)==="nth"?(O[3]||Et.error(O[0]),O[4]=+(O[4]?O[5]+(O[6]||1):2*(O[3]==="even"||O[3]==="odd")),O[5]=+(O[7]+O[8]||O[3]==="odd")):O[3]&&Et.error(O[0]),O},PSEUDO:function(O){var V,W=!O[6]&&O[2];return Cs.CHILD.test(O[0])?null:(O[3]?O[2]=O[4]||O[5]||"":W&&gk.test(W)&&(V=L(W,!0))&&(V=W.indexOf(")",W.length-V)-W.length)&&(O[0]=O[0].slice(0,V),O[2]=W.slice(0,V)),O.slice(0,3))}},filter:{TAG:function(O){var V=O.replace(pn,gn).toLowerCase();return O==="*"?function(){return!0}:function(W){return W.nodeName&&W.nodeName.toLowerCase()===V}},CLASS:function(O){var V=Rt[O+" "];return V||(V=new RegExp("(^|"+gt+")"+O+"("+gt+"|$)"))&&Rt(O,function(W){return V.test(typeof W.className=="string"&&W.className||typeof W.getAttribute<"u"&&W.getAttribute("class")||"")})},ATTR:function(O,V,W){return function(pe){var J=Et.attr(pe,O);return J==null?V==="!=":V?(J+="",V==="="?J===W:V==="!="?J!==W:V==="^="?W&&J.indexOf(W)===0:V==="*="?W&&J.indexOf(W)>-1:V==="$="?W&&J.slice(-W.length)===W:V==="~="?(" "+J.replace(hk," ")+" ").indexOf(W)>-1:V==="|="?J===W||J.slice(0,W.length+1)===W+"-":!1):!0}},CHILD:function(O,V,W,pe,J){var ye=O.slice(0,3)!=="nth",we=O.slice(-4)!=="last",Ce=V==="of-type";return pe===1&&J===0?function(Ie){return!!Ie.parentNode}:function(Ie,_e,ze){var We,at,Tt,Ve,jt,lr,Ar=ye!==we?"nextSibling":"previousSibling",Nt=Ie.parentNode,ji=Ce&&Ie.nodeName.toLowerCase(),Yi=!ze&&!Ce,qr=!1;if(Nt){if(ye){for(;Ar;){for(Ve=Ie;Ve=Ve[Ar];)if(Ce?Ve.nodeName.toLowerCase()===ji:Ve.nodeType===1)return!1;lr=Ar=O==="only"&&!lr&&"nextSibling"}return!0}if(lr=[we?Nt.firstChild:Nt.lastChild],we&&Yi){for(Ve=Nt,Tt=Ve[bt]||(Ve[bt]={}),at=Tt[Ve.uniqueID]||(Tt[Ve.uniqueID]={}),We=at[O]||[],jt=We[0]===Er&&We[1],qr=jt&&We[2],Ve=jt&&Nt.childNodes[jt];Ve=++jt&&Ve&&Ve[Ar]||(qr=jt=0)||lr.pop();)if(Ve.nodeType===1&&++qr&&Ve===Ie){at[O]=[Er,jt,qr];break}}else if(Yi&&(Ve=Ie,Tt=Ve[bt]||(Ve[bt]={}),at=Tt[Ve.uniqueID]||(Tt[Ve.uniqueID]={}),We=at[O]||[],jt=We[0]===Er&&We[1],qr=jt),qr===!1)for(;(Ve=++jt&&Ve&&Ve[Ar]||(qr=jt=0)||lr.pop())&&!((Ce?Ve.nodeName.toLowerCase()===ji:Ve.nodeType===1)&&++qr&&(Yi&&(Tt=Ve[bt]||(Ve[bt]={}),at=Tt[Ve.uniqueID]||(Tt[Ve.uniqueID]={}),at[O]=[Er,qr]),Ve===Ie)););return qr-=J,qr===pe||qr%pe===0&&qr/pe>=0}}},PSEUDO:function(O,V){var W,pe=w.pseudos[O]||w.setFilters[O.toLowerCase()]||Et.error("unsupported pseudo: "+O);return pe[bt]?pe(V):pe.length>1?(W=[O,O,"",V],w.setFilters.hasOwnProperty(O.toLowerCase())?Kr(function(J,ye){for(var we,Ce=pe(J,V),Ie=Ce.length;Ie--;)we=pa(J,Ce[Ie]),J[we]=!(ye[we]=Ce[Ie])}):function(J){return pe(J,0,W)}):pe}},pseudos:{not:Kr(function(O){var V=[],W=[],pe=H(O.replace(Ss,"$1"));return pe[bt]?Kr(function(J,ye,we,Ce){for(var Ie,_e=pe(J,null,Ce,[]),ze=J.length;ze--;)(Ie=_e[ze])&&(J[ze]=!(ye[ze]=Ie))}):function(J,ye,we){return V[0]=J,pe(V,null,we,W),V[0]=null,!W.pop()}}),has:Kr(function(O){return function(V){return Et(O,V).length>0}}),contains:Kr(function(O){return O=O.replace(pn,gn),function(V){return(V.textContent||C(V)).indexOf(O)>-1}}),lang:Kr(function(O){return yk.test(O||"")||Et.error("unsupported lang: "+O),O=O.replace(pn,gn).toLowerCase(),function(V){var W;do if(W=Xe?V.lang:V.getAttribute("xml:lang")||V.getAttribute("lang"))return W=W.toLowerCase(),W===O||W.indexOf(O+"-")===0;while((V=V.parentNode)&&V.nodeType===1);return!1}}),target:function(O){var V=c.location&&c.location.hash;return V&&V.slice(1)===O.id},root:function(O){return O===Me},focus:function(O){return O===ve.activeElement&&(!ve.hasFocus||ve.hasFocus())&&!!(O.type||O.href||~O.tabIndex)},enabled:ch(!1),disabled:ch(!0),checked:function(O){var V=O.nodeName.toLowerCase();return V==="input"&&!!O.checked||V==="option"&&!!O.selected},selected:function(O){return O.parentNode&&O.parentNode.selectedIndex,O.selected===!0},empty:function(O){for(O=O.firstChild;O;O=O.nextSibling)if(O.nodeType<6)return!1;return!0},parent:function(O){return!w.pseudos.empty(O)},header:function(O){return xk.test(O.nodeName)},input:function(O){return bk.test(O.nodeName)},button:function(O){var V=O.nodeName.toLowerCase();return V==="input"&&O.type==="button"||V==="button"},text:function(O){var V;return O.nodeName.toLowerCase()==="input"&&O.type==="text"&&((V=O.getAttribute("type"))==null||V.toLowerCase()==="text")},first:ya(function(){return[0]}),last:ya(function(O,V){return[V-1]}),eq:ya(function(O,V,W){return[W<0?W+V:W]}),even:ya(function(O,V){for(var W=0;WV?V:W;--pe>=0;)O.push(pe);return O}),gt:ya(function(O,V,W){for(var pe=W<0?W+V:W;++pe1?function(V,W,pe){for(var J=O.length;J--;)if(!O[J](V,W,pe))return!1;return!0}:O[0]}function Ck(O,V,W){for(var pe=0,J=V.length;pe-1&&(we[ze]=!(Ce[ze]=at))}}else Nt=Ls(Nt===Ce?Nt.splice(jt,Nt.length):Nt),J?J(null,Ce,Nt,_e):_n.apply(Ce,Nt)})}function Ml(O){for(var V,W,pe,J=O.length,ye=w.relative[O[0].type],we=ye||w.relative[" "],Ce=ye?1:0,Ie=Ds(function(We){return We===V},we,!0),_e=Ds(function(We){return pa(V,We)>-1},we,!0),ze=[function(We,at,Tt){var Ve=!ye&&(Tt||at!==Q)||((V=at).nodeType?Ie(We,at,Tt):_e(We,at,Tt));return V=null,Ve}];Ce1&&Nl(ze),Ce>1&&Is(O.slice(0,Ce-1).concat({value:O[Ce-2].type===" "?"*":""})).replace(Ss,"$1"),W,Ce0,pe=O.length>0,J=function(ye,we,Ce,Ie,_e){var ze,We,at,Tt=0,Ve="0",jt=ye&&[],lr=[],Ar=Q,Nt=ye||pe&&w.find.TAG("*",_e),ji=Er+=Ar==null?1:Math.random()||.1,Yi=Nt.length;for(_e&&(Q=we==ve||we||_e);Ve!==Yi&&(ze=Nt[Ve])!=null;Ve++){if(pe&&ze){for(We=0,!we&&ze.ownerDocument!=ve&&(te(ze),Ce=!Xe);at=O[We++];)if(at(ze,we||ve,Ce)){Ie.push(ze);break}_e&&(Er=ji)}W&&((ze=!at&&ze)&&Tt--,ye&&jt.push(ze))}if(Tt+=Ve,W&&Ve!==Tt){for(We=0;at=V[We++];)at(jt,lr,we,Ce);if(ye){if(Tt>0)for(;Ve--;)jt[Ve]||lr[Ve]||(lr[Ve]=Gn.call(Ie));lr=Ls(lr)}_n.apply(Ie,lr),_e&&!ye&&lr.length>0&&Tt+V.length>1&&Et.uniqueSort(Ie)}return _e&&(Er=ji,Q=Ar),jt};return W?Kr(J):J}return H=Et.compile=function(O,V){var W,pe=[],J=[],ye=Ts[O+" "];if(!ye){for(V||(V=L(O)),W=V.length;W--;)ye=Ml(V[W]),ye[bt]?pe.push(ye):J.push(ye);ye=Ts(O,kk(J,pe)),ye.selector=O}return ye},$=Et.select=function(O,V,W,pe){var J,ye,we,Ce,Ie,_e=typeof O=="function"&&O,ze=!pe&&L(O=_e.selector||O);if(W=W||[],ze.length===1){if(ye=ze[0]=ze[0].slice(0),ye.length>2&&(we=ye[0]).type==="ID"&&V.nodeType===9&&Xe&&w.relative[ye[1].type]){if(V=(w.find.ID(we.matches[0].replace(pn,gn),V)||[])[0],V)_e&&(V=V.parentNode);else return W;O=O.slice(ye.shift().value.length)}for(J=Cs.needsContext.test(O)?0:ye.length;J--&&(we=ye[J],!w.relative[Ce=we.type]);)if((Ie=w.find[Ce])&&(pe=Ie(we.matches[0].replace(pn,gn),Al.test(ye[0].type)&&Ol(V.parentNode)||V))){if(ye.splice(J,1),O=pe.length&&Is(ye),!O)return _n.apply(W,pe),W;break}}return(_e||H(O,ze))(pe,V,!Xe,W,!V||Al.test(O)&&Ol(V.parentNode)||V),W},b.sortStable=bt.split("").sort(ha).join("")===bt,b.detectDuplicates=!!Ee,te(),b.sortDetached=jr(function(O){return O.compareDocumentPosition(ve.createElement("fieldset"))&1}),jr(function(O){return O.innerHTML="",O.firstChild.getAttribute("href")==="#"})||ql("type|href|height|width",function(O,V,W){if(!W)return O.getAttribute(V,V.toLowerCase()==="type"?1:2)}),(!b.attributes||!jr(function(O){return O.innerHTML="",O.firstChild.setAttribute("value",""),O.firstChild.getAttribute("value")===""}))&&ql("value",function(O,V,W){if(!W&&O.nodeName.toLowerCase()==="input")return O.defaultValue}),jr(function(O){return O.getAttribute("disabled")==null})||ql(Dl,function(O,V,W){var pe;if(!W)return O[V]===!0?V.toLowerCase():(pe=O.getAttributeNode(V))&&pe.specified?pe.value:null}),Et})(t);v.find=I,v.expr=I.selectors,v.expr[":"]=v.expr.pseudos,v.uniqueSort=v.unique=I.uniqueSort,v.text=I.getText,v.isXMLDoc=I.isXML,v.contains=I.contains,v.escapeSelector=I.escape;var P=function(c,h,b){for(var w=[],C=b!==void 0;(c=c[h])&&c.nodeType!==9;)if(c.nodeType===1){if(C&&v(c).is(b))break;w.push(c)}return w},A=function(c,h){for(var b=[];c;c=c.nextSibling)c.nodeType===1&&c!==h&&b.push(c);return b},F=v.expr.match.needsContext;function R(c,h){return c.nodeName&&c.nodeName.toLowerCase()===h.toLowerCase()}var B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function _(c,h,b){return y(h)?v.grep(c,function(w,C){return!!h.call(w,C,w)!==b}):h.nodeType?v.grep(c,function(w){return w===h!==b}):typeof h!="string"?v.grep(c,function(w){return s.call(h,w)>-1!==b}):v.filter(h,c,b)}v.filter=function(c,h,b){var w=h[0];return b&&(c=":not("+c+")"),h.length===1&&w.nodeType===1?v.find.matchesSelector(w,c)?[w]:[]:v.find.matches(c,v.grep(h,function(C){return C.nodeType===1}))},v.fn.extend({find:function(c){var h,b,w=this.length,C=this;if(typeof c!="string")return this.pushStack(v(c).filter(function(){for(h=0;h1?v.uniqueSort(b):b},filter:function(c){return this.pushStack(_(this,c||[],!1))},not:function(c){return this.pushStack(_(this,c||[],!0))},is:function(c){return!!_(this,typeof c=="string"&&F.test(c)?v(c):c||[],!1).length}});var z,j=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=v.fn.init=function(c,h,b){var w,C;if(!c)return this;if(b=b||z,typeof c=="string")if(c[0]==="<"&&c[c.length-1]===">"&&c.length>=3?w=[null,c,null]:w=j.exec(c),w&&(w[1]||!h))if(w[1]){if(h=h instanceof v?h[0]:h,v.merge(this,v.parseHTML(w[1],h&&h.nodeType?h.ownerDocument||h:x,!0)),B.test(w[1])&&v.isPlainObject(h))for(w in h)y(this[w])?this[w](h[w]):this.attr(w,h[w]);return this}else return C=x.getElementById(w[2]),C&&(this[0]=C,this.length=1),this;else return!h||h.jquery?(h||b).find(c):this.constructor(h).find(c);else{if(c.nodeType)return this[0]=c,this.length=1,this;if(y(c))return b.ready!==void 0?b.ready(c):c(v)}return v.makeArray(c,this)};G.prototype=v.fn,z=v(x);var U=/^(?:parents|prev(?:Until|All))/,Z={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({has:function(c){var h=v(c,this),b=h.length;return this.filter(function(){for(var w=0;w-1:b.nodeType===1&&v.find.matchesSelector(b,c))){k.push(b);break}}return this.pushStack(k.length>1?v.uniqueSort(k):k)},index:function(c){return c?typeof c=="string"?s.call(v(c),this[0]):s.call(this,c.jquery?c[0]:c):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(c,h){return this.pushStack(v.uniqueSort(v.merge(this.get(),v(c,h))))},addBack:function(c){return this.add(c==null?this.prevObject:this.prevObject.filter(c))}});function X(c,h){for(;(c=c[h])&&c.nodeType!==1;);return c}v.each({parent:function(c){var h=c.parentNode;return h&&h.nodeType!==11?h:null},parents:function(c){return P(c,"parentNode")},parentsUntil:function(c,h,b){return P(c,"parentNode",b)},next:function(c){return X(c,"nextSibling")},prev:function(c){return X(c,"previousSibling")},nextAll:function(c){return P(c,"nextSibling")},prevAll:function(c){return P(c,"previousSibling")},nextUntil:function(c,h,b){return P(c,"nextSibling",b)},prevUntil:function(c,h,b){return P(c,"previousSibling",b)},siblings:function(c){return A((c.parentNode||{}).firstChild,c)},children:function(c){return A(c.firstChild)},contents:function(c){return c.contentDocument!=null&&n(c.contentDocument)?c.contentDocument:(R(c,"template")&&(c=c.content||c),v.merge([],c.childNodes))}},function(c,h){v.fn[c]=function(b,w){var C=v.map(this,h,b);return c.slice(-5)!=="Until"&&(w=b),w&&typeof w=="string"&&(C=v.filter(w,C)),this.length>1&&(Z[c]||v.uniqueSort(C),U.test(c)&&C.reverse()),this.pushStack(C)}});var ee=/[^\x20\t\r\n\f]+/g;function re(c){var h={};return v.each(c.match(ee)||[],function(b,w){h[w]=!0}),h}v.Callbacks=function(c){c=typeof c=="string"?re(c):v.extend({},c);var h,b,w,C,k=[],L=[],H=-1,$=function(){for(C=C||c.once,w=h=!0;L.length;H=-1)for(b=L.shift();++H-1;)k.splice(te,1),te<=H&&H--}),this},has:function(ae){return ae?v.inArray(ae,k)>-1:k.length>0},empty:function(){return k&&(k=[]),this},disable:function(){return C=L=[],k=b="",this},disabled:function(){return!k},lock:function(){return C=L=[],!b&&!h&&(k=b=""),this},locked:function(){return!!C},fireWith:function(ae,Ee){return C||(Ee=Ee||[],Ee=[ae,Ee.slice?Ee.slice():Ee],L.push(Ee),h||$()),this},fire:function(){return Q.fireWith(this,arguments),this},fired:function(){return!!w}};return Q};function ce(c){return c}function ge(c){throw c}function xe(c,h,b,w){var C;try{c&&y(C=c.promise)?C.call(c).done(h).fail(b):c&&y(C=c.then)?C.call(c,h,b):h.apply(void 0,[c].slice(w))}catch(k){b.apply(void 0,[k])}}v.extend({Deferred:function(c){var h=[["notify","progress",v.Callbacks("memory"),v.Callbacks("memory"),2],["resolve","done",v.Callbacks("once memory"),v.Callbacks("once memory"),0,"resolved"],["reject","fail",v.Callbacks("once memory"),v.Callbacks("once memory"),1,"rejected"]],b="pending",w={state:function(){return b},always:function(){return C.done(arguments).fail(arguments),this},catch:function(k){return w.then(null,k)},pipe:function(){var k=arguments;return v.Deferred(function(L){v.each(h,function(H,$){var Q=y(k[$[4]])&&k[$[4]];C[$[1]](function(){var ae=Q&&Q.apply(this,arguments);ae&&y(ae.promise)?ae.promise().progress(L.notify).done(L.resolve).fail(L.reject):L[$[0]+"With"](this,Q?[ae]:arguments)})}),k=null}).promise()},then:function(k,L,H){var $=0;function Q(ae,Ee,te,ve){return function(){var Me=this,Xe=arguments,Re=function(){var $t,Dr;if(!(ae<$)){if($t=te.apply(Me,Xe),$t===Ee.promise())throw new TypeError("Thenable self-resolution");Dr=$t&&(typeof $t=="object"||typeof $t=="function")&&$t.then,y(Dr)?ve?Dr.call($t,Q($,Ee,ce,ve),Q($,Ee,ge,ve)):($++,Dr.call($t,Q($,Ee,ce,ve),Q($,Ee,ge,ve),Q($,Ee,ce,Ee.notifyWith))):(te!==ce&&(Me=void 0,Xe=[$t]),(ve||Ee.resolveWith)(Me,Xe))}},Kt=ve?Re:function(){try{Re()}catch($t){v.Deferred.exceptionHook&&v.Deferred.exceptionHook($t,Kt.stackTrace),ae+1>=$&&(te!==ge&&(Me=void 0,Xe=[$t]),Ee.rejectWith(Me,Xe))}};ae?Kt():(v.Deferred.getStackHook&&(Kt.stackTrace=v.Deferred.getStackHook()),t.setTimeout(Kt))}}return v.Deferred(function(ae){h[0][3].add(Q(0,ae,y(H)?H:ce,ae.notifyWith)),h[1][3].add(Q(0,ae,y(k)?k:ce)),h[2][3].add(Q(0,ae,y(L)?L:ge))}).promise()},promise:function(k){return k!=null?v.extend(k,w):w}},C={};return v.each(h,function(k,L){var H=L[2],$=L[5];w[L[1]]=H.add,$&&H.add(function(){b=$},h[3-k][2].disable,h[3-k][3].disable,h[0][2].lock,h[0][3].lock),H.add(L[3].fire),C[L[0]]=function(){return C[L[0]+"With"](this===C?void 0:this,arguments),this},C[L[0]+"With"]=H.fireWith}),w.promise(C),c&&c.call(C,C),C},when:function(c){var h=arguments.length,b=h,w=Array(b),C=a.call(arguments),k=v.Deferred(),L=function(H){return function($){w[H]=this,C[H]=arguments.length>1?a.call(arguments):$,--h||k.resolveWith(w,C)}};if(h<=1&&(xe(c,k.done(L(b)).resolve,k.reject,!h),k.state()==="pending"||y(C[b]&&C[b].then)))return k.then();for(;b--;)xe(C[b],L(b),k.reject);return k.promise()}});var be=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;v.Deferred.exceptionHook=function(c,h){t.console&&t.console.warn&&c&&be.test(c.name)&&t.console.warn("jQuery.Deferred exception: "+c.message,c.stack,h)},v.readyException=function(c){t.setTimeout(function(){throw c})};var oe=v.Deferred();v.fn.ready=function(c){return oe.then(c).catch(function(h){v.readyException(h)}),this},v.extend({isReady:!1,readyWait:1,ready:function(c){(c===!0?--v.readyWait:v.isReady)||(v.isReady=!0,!(c!==!0&&--v.readyWait>0)&&oe.resolveWith(x,[v]))}}),v.ready.then=oe.then;function K(){x.removeEventListener("DOMContentLoaded",K),t.removeEventListener("load",K),v.ready()}x.readyState==="complete"||x.readyState!=="loading"&&!x.documentElement.doScroll?t.setTimeout(v.ready):(x.addEventListener("DOMContentLoaded",K),t.addEventListener("load",K));var le=function(c,h,b,w,C,k,L){var H=0,$=c.length,Q=b==null;if(S(b)==="object"){C=!0;for(H in b)le(c,h,H,b[H],!0,k,L)}else if(w!==void 0&&(C=!0,y(w)||(L=!0),Q&&(L?(h.call(c,w),h=null):(Q=h,h=function(ae,Ee,te){return Q.call(v(ae),te)})),h))for(;H<$;H++)h(c[H],b,L?w:w.call(c[H],H,h(c[H],b)));return C?c:Q?h.call(c):$?h(c[0],b):k},Se=/^-ms-/,Te=/-([a-z])/g;function Ae(c,h){return h.toUpperCase()}function qe(c){return c.replace(Se,"ms-").replace(Te,Ae)}var Ge=function(c){return c.nodeType===1||c.nodeType===9||!+c.nodeType};function Le(){this.expando=v.expando+Le.uid++}Le.uid=1,Le.prototype={cache:function(c){var h=c[this.expando];return h||(h={},Ge(c)&&(c.nodeType?c[this.expando]=h:Object.defineProperty(c,this.expando,{value:h,configurable:!0}))),h},set:function(c,h,b){var w,C=this.cache(c);if(typeof h=="string")C[qe(h)]=b;else for(w in h)C[qe(w)]=h[w];return C},get:function(c,h){return h===void 0?this.cache(c):c[this.expando]&&c[this.expando][qe(h)]},access:function(c,h,b){return h===void 0||h&&typeof h=="string"&&b===void 0?this.get(c,h):(this.set(c,h,b),b!==void 0?b:h)},remove:function(c,h){var b,w=c[this.expando];if(w!==void 0){if(h!==void 0)for(Array.isArray(h)?h=h.map(qe):(h=qe(h),h=h in w?[h]:h.match(ee)||[]),b=h.length;b--;)delete w[h[b]];(h===void 0||v.isEmptyObject(w))&&(c.nodeType?c[this.expando]=void 0:delete c[this.expando])}},hasData:function(c){var h=c[this.expando];return h!==void 0&&!v.isEmptyObject(h)}};var de=new Le,De=new Le,ie=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/[A-Z]/g;function Y(c){return c==="true"?!0:c==="false"?!1:c==="null"?null:c===+c+""?+c:ie.test(c)?JSON.parse(c):c}function se(c,h,b){var w;if(b===void 0&&c.nodeType===1)if(w="data-"+h.replace(N,"-$&").toLowerCase(),b=c.getAttribute(w),typeof b=="string"){try{b=Y(b)}catch{}De.set(c,h,b)}else b=void 0;return b}v.extend({hasData:function(c){return De.hasData(c)||de.hasData(c)},data:function(c,h,b){return De.access(c,h,b)},removeData:function(c,h){De.remove(c,h)},_data:function(c,h,b){return de.access(c,h,b)},_removeData:function(c,h){de.remove(c,h)}}),v.fn.extend({data:function(c,h){var b,w,C,k=this[0],L=k&&k.attributes;if(c===void 0){if(this.length&&(C=De.get(k),k.nodeType===1&&!de.get(k,"hasDataAttrs"))){for(b=L.length;b--;)L[b]&&(w=L[b].name,w.indexOf("data-")===0&&(w=qe(w.slice(5)),se(k,w,C[w])));de.set(k,"hasDataAttrs",!0)}return C}return typeof c=="object"?this.each(function(){De.set(this,c)}):le(this,function(H){var $;if(k&&H===void 0)return $=De.get(k,c),$!==void 0||($=se(k,c),$!==void 0)?$:void 0;this.each(function(){De.set(this,c,H)})},null,h,arguments.length>1,null,!0)},removeData:function(c){return this.each(function(){De.remove(this,c)})}}),v.extend({queue:function(c,h,b){var w;if(c)return h=(h||"fx")+"queue",w=de.get(c,h),b&&(!w||Array.isArray(b)?w=de.access(c,h,v.makeArray(b)):w.push(b)),w||[]},dequeue:function(c,h){h=h||"fx";var b=v.queue(c,h),w=b.length,C=b.shift(),k=v._queueHooks(c,h),L=function(){v.dequeue(c,h)};C==="inprogress"&&(C=b.shift(),w--),C&&(h==="fx"&&b.unshift("inprogress"),delete k.stop,C.call(c,L,k)),!w&&k&&k.empty.fire()},_queueHooks:function(c,h){var b=h+"queueHooks";return de.get(c,b)||de.access(c,b,{empty:v.Callbacks("once memory").add(function(){de.remove(c,[h+"queue",b])})})}}),v.fn.extend({queue:function(c,h){var b=2;return typeof c!="string"&&(h=c,c="fx",b--),arguments.length\x20\t\r\n\f]*)/i,br=/^$|^module$|\/(?:java|ecma)script/i;(function(){var c=x.createDocumentFragment(),h=c.appendChild(x.createElement("div")),b=x.createElement("input");b.setAttribute("type","radio"),b.setAttribute("checked","checked"),b.setAttribute("name","t"),h.appendChild(b),g.checkClone=h.cloneNode(!0).cloneNode(!0).lastChild.checked,h.innerHTML="",g.noCloneChecked=!!h.cloneNode(!0).lastChild.defaultValue,h.innerHTML="",g.option=!!h.lastChild})();var Ot={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Ot.tbody=Ot.tfoot=Ot.colgroup=Ot.caption=Ot.thead,Ot.th=Ot.td,g.option||(Ot.optgroup=Ot.option=[1,""]);function dt(c,h){var b;return typeof c.getElementsByTagName<"u"?b=c.getElementsByTagName(h||"*"):typeof c.querySelectorAll<"u"?b=c.querySelectorAll(h||"*"):b=[],h===void 0||h&&R(c,h)?v.merge([c],b):b}function sr(c,h){for(var b=0,w=c.length;b-1){C&&C.push(k);continue}if(Q=Oe(k),L=dt(Ee.appendChild(k),"script"),Q&&sr(L),b)for(ae=0;k=L[ae++];)br.test(k.type||"")&&b.push(k)}return Ee}var tn=/^key/,Mn=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rn=/^([^.]*)(?:\.(.+)|)/;function Ir(){return!0}function Wr(){return!1}function dn(c,h){return c===ur()==(h==="focus")}function ur(){try{return x.activeElement}catch{}}function tr(c,h,b,w,C,k){var L,H;if(typeof h=="object"){typeof b!="string"&&(w=w||b,b=void 0);for(H in h)tr(c,H,b,w,h[H],k);return c}if(w==null&&C==null?(C=b,w=b=void 0):C==null&&(typeof b=="string"?(C=w,w=void 0):(C=w,w=b,b=void 0)),C===!1)C=Wr;else if(!C)return c;return k===1&&(L=C,C=function($){return v().off($),L.apply(this,arguments)},C.guid=L.guid||(L.guid=v.guid++)),c.each(function(){v.event.add(this,h,C,w,b)})}v.event={global:{},add:function(c,h,b,w,C){var k,L,H,$,Q,ae,Ee,te,ve,Me,Xe,Re=de.get(c);if(Ge(c))for(b.handler&&(k=b,b=k.handler,C=k.selector),C&&v.find.matchesSelector(he,C),b.guid||(b.guid=v.guid++),($=Re.events)||($=Re.events=Object.create(null)),(L=Re.handle)||(L=Re.handle=function(Kt){return typeof v<"u"&&v.event.triggered!==Kt.type?v.event.dispatch.apply(c,arguments):void 0}),h=(h||"").match(ee)||[""],Q=h.length;Q--;)H=rn.exec(h[Q])||[],ve=Xe=H[1],Me=(H[2]||"").split(".").sort(),ve&&(Ee=v.event.special[ve]||{},ve=(C?Ee.delegateType:Ee.bindType)||ve,Ee=v.event.special[ve]||{},ae=v.extend({type:ve,origType:Xe,data:w,handler:b,guid:b.guid,selector:C,needsContext:C&&v.expr.match.needsContext.test(C),namespace:Me.join(".")},k),(te=$[ve])||(te=$[ve]=[],te.delegateCount=0,(!Ee.setup||Ee.setup.call(c,w,Me,L)===!1)&&c.addEventListener&&c.addEventListener(ve,L)),Ee.add&&(Ee.add.call(c,ae),ae.handler.guid||(ae.handler.guid=b.guid)),C?te.splice(te.delegateCount++,0,ae):te.push(ae),v.event.global[ve]=!0)},remove:function(c,h,b,w,C){var k,L,H,$,Q,ae,Ee,te,ve,Me,Xe,Re=de.hasData(c)&&de.get(c);if(!(!Re||!($=Re.events))){for(h=(h||"").match(ee)||[""],Q=h.length;Q--;){if(H=rn.exec(h[Q])||[],ve=Xe=H[1],Me=(H[2]||"").split(".").sort(),!ve){for(ve in $)v.event.remove(c,ve+h[Q],b,w,!0);continue}for(Ee=v.event.special[ve]||{},ve=(w?Ee.delegateType:Ee.bindType)||ve,te=$[ve]||[],H=H[2]&&new RegExp("(^|\\.)"+Me.join("\\.(?:.*\\.|)")+"(\\.|$)"),L=k=te.length;k--;)ae=te[k],(C||Xe===ae.origType)&&(!b||b.guid===ae.guid)&&(!H||H.test(ae.namespace))&&(!w||w===ae.selector||w==="**"&&ae.selector)&&(te.splice(k,1),ae.selector&&te.delegateCount--,Ee.remove&&Ee.remove.call(c,ae));L&&!te.length&&((!Ee.teardown||Ee.teardown.call(c,Me,Re.handle)===!1)&&v.removeEvent(c,ve,Re.handle),delete $[ve])}v.isEmptyObject($)&&de.remove(c,"handle events")}},dispatch:function(c){var h,b,w,C,k,L,H=new Array(arguments.length),$=v.event.fix(c),Q=(de.get(this,"events")||Object.create(null))[$.type]||[],ae=v.event.special[$.type]||{};for(H[0]=$,h=1;h=1)){for(;Q!==this;Q=Q.parentNode||this)if(Q.nodeType===1&&!(c.type==="click"&&Q.disabled===!0)){for(k=[],L={},b=0;b<$;b++)w=h[b],C=w.selector+" ",L[C]===void 0&&(L[C]=w.needsContext?v(C,this).index(Q)>-1:v.find(C,this,null,[Q]).length),L[C]&&k.push(w);k.length&&H.push({elem:Q,handlers:k})}}return Q=this,$\s*$/g;function $a(c,h){return R(c,"table")&&R(h.nodeType!==11?h:h.firstChild,"tr")&&v(c).children("tbody")[0]||c}function hn(c){return c.type=(c.getAttribute("type")!==null)+"/"+c.type,c}function gl(c){return(c.type||"").slice(0,5)==="true/"?c.type=c.type.slice(5):c.removeAttribute("type"),c}function ys(c,h){var b,w,C,k,L,H,$;if(h.nodeType===1){if(de.hasData(c)&&(k=de.get(c),$=k.events,$)){de.remove(h,"handle events");for(C in $)for(b=0,w=$[C].length;b1&&typeof ve=="string"&&!g.checkClone&&an.test(ve))return c.each(function(Xe){var Re=c.eq(Xe);Me&&(h[0]=ve.call(this,Xe,Re.html())),Bn(Re,h,b,w)});if(Ee&&(C=Mr(h,c[0].ownerDocument,!1,c,w),k=C.firstChild,C.childNodes.length===1&&(C=k),k||w)){for(L=v.map(dt(C,"script"),hn),H=L.length;ae0&&sr(L,!$&&dt(c,"script")),H},cleanData:function(c){for(var h,b,w,C=v.event.special,k=0;(b=c[k])!==void 0;k++)if(Ge(b)){if(h=b[de.expando]){if(h.events)for(w in h.events)C[w]?v.event.remove(b,w):v.removeEvent(b,w,h.handle);b[de.expando]=void 0}b[De.expando]&&(b[De.expando]=void 0)}}}),v.fn.extend({detach:function(c){return ms(this,c,!0)},remove:function(c){return ms(this,c)},text:function(c){return le(this,function(h){return h===void 0?v.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=h)})},null,c,arguments.length)},append:function(){return Bn(this,arguments,function(c){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var h=$a(this,c);h.appendChild(c)}})},prepend:function(){return Bn(this,arguments,function(c){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var h=$a(this,c);h.insertBefore(c,h.firstChild)}})},before:function(){return Bn(this,arguments,function(c){this.parentNode&&this.parentNode.insertBefore(c,this)})},after:function(){return Bn(this,arguments,function(c){this.parentNode&&this.parentNode.insertBefore(c,this.nextSibling)})},empty:function(){for(var c,h=0;(c=this[h])!=null;h++)c.nodeType===1&&(v.cleanData(dt(c,!1)),c.textContent="");return this},clone:function(c,h){return c=c??!1,h=h??c,this.map(function(){return v.clone(this,c,h)})},html:function(c){return le(this,function(h){var b=this[0]||{},w=0,C=this.length;if(h===void 0&&b.nodeType===1)return b.innerHTML;if(typeof h=="string"&&!nn.test(h)&&!Ot[(Ht.exec(h)||["",""])[1].toLowerCase()]){h=v.htmlPrefilter(h);try{for(;w3,he.removeChild(ae)),L}}))})();function zn(c,h,b){var w,C,k,L,H=c.style;return b=b||Fn(c),b&&(L=b.getPropertyValue(h)||b[h],L===""&&!Oe(c)&&(L=v.style(c,h)),!g.pixelBoxStyles()&&vn.test(L)&&bs.test(h)&&(w=H.width,C=H.minWidth,k=H.maxWidth,H.minWidth=H.maxWidth=H.width=L,L=b.width,H.width=w,H.minWidth=C,H.maxWidth=k)),L!==void 0?L+"":L}function xs(c,h){return{get:function(){if(c()){delete this.get;return}return(this.get=h).apply(this,arguments)}}}var xr=["Webkit","Moz","ms"],Wa=x.createElement("div").style,Vi={};function fa(c){for(var h=c[0].toUpperCase()+c.slice(1),b=xr.length;b--;)if(c=xr[b]+h,c in Wa)return c}function pr(c){var h=v.cssProps[c]||Vi[c];return h||(c in Wa?c:Vi[c]=fa(c)||c)}var ml=/^(none|table(?!-c[ea]).+)/,Vd=/^--/,HC={position:"absolute",visibility:"hidden",display:"block"},Hd={letterSpacing:"0",fontWeight:"400"};function $d(c,h,b){var w=ne.exec(h);return w?Math.max(0,w[2]-(b||0))+(w[3]||"px"):h}function bl(c,h,b,w,C,k){var L=h==="width"?1:0,H=0,$=0;if(b===(w?"border":"content"))return 0;for(;L<4;L+=2)b==="margin"&&($+=v.css(c,b+Ne[L],!0,C)),w?(b==="content"&&($-=v.css(c,"padding"+Ne[L],!0,C)),b!=="margin"&&($-=v.css(c,"border"+Ne[L]+"Width",!0,C))):($+=v.css(c,"padding"+Ne[L],!0,C),b!=="padding"?$+=v.css(c,"border"+Ne[L]+"Width",!0,C):H+=v.css(c,"border"+Ne[L]+"Width",!0,C));return!w&&k>=0&&($+=Math.max(0,Math.ceil(c["offset"+h[0].toUpperCase()+h.slice(1)]-k-$-H-.5))||0),$}function Wd(c,h,b){var w=Fn(c),C=!g.boxSizingReliable()||b,k=C&&v.css(c,"boxSizing",!1,w)==="border-box",L=k,H=zn(c,h,w),$="offset"+h[0].toUpperCase()+h.slice(1);if(vn.test(H)){if(!b)return H;H="auto"}return(!g.boxSizingReliable()&&k||!g.reliableTrDimensions()&&R(c,"tr")||H==="auto"||!parseFloat(H)&&v.css(c,"display",!1,w)==="inline")&&c.getClientRects().length&&(k=v.css(c,"boxSizing",!1,w)==="border-box",L=$ in c,L&&(H=c[$])),H=parseFloat(H)||0,H+bl(c,h,b||(k?"border":"content"),L,w,H)+"px"}v.extend({cssHooks:{opacity:{get:function(c,h){if(h){var b=zn(c,"opacity");return b===""?"1":b}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(c,h,b,w){if(!(!c||c.nodeType===3||c.nodeType===8||!c.style)){var C,k,L,H=qe(h),$=Vd.test(h),Q=c.style;if($||(h=pr(H)),L=v.cssHooks[h]||v.cssHooks[H],b!==void 0){if(k=typeof b,k==="string"&&(C=ne.exec(b))&&C[1]&&(b=Fe(c,h,C),k="number"),b==null||b!==b)return;k==="number"&&!$&&(b+=C&&C[3]||(v.cssNumber[H]?"":"px")),!g.clearCloneStyle&&b===""&&h.indexOf("background")===0&&(Q[h]="inherit"),(!L||!("set"in L)||(b=L.set(c,b,w))!==void 0)&&($?Q.setProperty(h,b):Q[h]=b)}else return L&&"get"in L&&(C=L.get(c,!1,w))!==void 0?C:Q[h]}},css:function(c,h,b,w){var C,k,L,H=qe(h),$=Vd.test(h);return $||(h=pr(H)),L=v.cssHooks[h]||v.cssHooks[H],L&&"get"in L&&(C=L.get(c,!0,b)),C===void 0&&(C=zn(c,h,w)),C==="normal"&&h in Hd&&(C=Hd[h]),b===""||b?(k=parseFloat(C),b===!0||isFinite(k)?k||0:C):C}}),v.each(["height","width"],function(c,h){v.cssHooks[h]={get:function(b,w,C){if(w)return ml.test(v.css(b,"display"))&&(!b.getClientRects().length||!b.getBoundingClientRect().width)?la(b,HC,function(){return Wd(b,h,C)}):Wd(b,h,C)},set:function(b,w,C){var k,L=Fn(b),H=!g.scrollboxSize()&&L.position==="absolute",$=H||C,Q=$&&v.css(b,"boxSizing",!1,L)==="border-box",ae=C?bl(b,h,C,Q,L):0;return Q&&H&&(ae-=Math.ceil(b["offset"+h[0].toUpperCase()+h.slice(1)]-parseFloat(L[h])-bl(b,h,"border",!1,L)-.5)),ae&&(k=ne.exec(w))&&(k[3]||"px")!=="px"&&(b.style[h]=w,w=v.css(b,h)),$d(b,w,ae)}}}),v.cssHooks.marginLeft=xs(g.reliableMarginLeft,function(c,h){if(h)return(parseFloat(zn(c,"marginLeft"))||c.getBoundingClientRect().left-la(c,{marginLeft:0},function(){return c.getBoundingClientRect().left}))+"px"}),v.each({margin:"",padding:"",border:"Width"},function(c,h){v.cssHooks[c+h]={expand:function(b){for(var w=0,C={},k=typeof b=="string"?b.split(" "):[b];w<4;w++)C[c+Ne[w]+h]=k[w]||k[w-2]||k[0];return C}},c!=="margin"&&(v.cssHooks[c+h].set=$d)}),v.fn.extend({css:function(c,h){return le(this,function(b,w,C){var k,L,H={},$=0;if(Array.isArray(w)){for(k=Fn(b),L=w.length;$1)}});function wr(c,h,b,w,C){return new wr.prototype.init(c,h,b,w,C)}v.Tween=wr,wr.prototype={constructor:wr,init:function(c,h,b,w,C,k){this.elem=c,this.prop=b,this.easing=C||v.easing._default,this.options=h,this.start=this.now=this.cur(),this.end=w,this.unit=k||(v.cssNumber[b]?"":"px")},cur:function(){var c=wr.propHooks[this.prop];return c&&c.get?c.get(this):wr.propHooks._default.get(this)},run:function(c){var h,b=wr.propHooks[this.prop];return this.options.duration?this.pos=h=v.easing[this.easing](c,this.options.duration*c,0,1,this.options.duration):this.pos=h=c,this.now=(this.end-this.start)*h+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),b&&b.set?b.set(this):wr.propHooks._default.set(this),this}},wr.prototype.init.prototype=wr.prototype,wr.propHooks={_default:{get:function(c){var h;return c.elem.nodeType!==1||c.elem[c.prop]!=null&&c.elem.style[c.prop]==null?c.elem[c.prop]:(h=v.css(c.elem,c.prop,""),!h||h==="auto"?0:h)},set:function(c){v.fx.step[c.prop]?v.fx.step[c.prop](c):c.elem.nodeType===1&&(v.cssHooks[c.prop]||c.elem.style[pr(c.prop)]!=null)?v.style(c.elem,c.prop,c.now+c.unit):c.elem[c.prop]=c.now}}},wr.propHooks.scrollTop=wr.propHooks.scrollLeft={set:function(c){c.elem.nodeType&&c.elem.parentNode&&(c.elem[c.prop]=c.now)}},v.easing={linear:function(c){return c},swing:function(c){return .5-Math.cos(c*Math.PI)/2},_default:"swing"},v.fx=wr.prototype.init,v.fx.step={};var Ua,ws,$C=/^(?:toggle|show|hide)$/,WC=/queueHooks$/;function xl(){ws&&(x.hidden===!1&&t.requestAnimationFrame?t.requestAnimationFrame(xl):t.setTimeout(xl,v.fx.interval),v.fx.tick())}function Ud(){return t.setTimeout(function(){Ua=void 0}),Ua=Date.now()}function Es(c,h){var b,w=0,C={height:c};for(h=h?1:0;w<4;w+=2-h)b=Ne[w],C["margin"+b]=C["padding"+b]=c;return h&&(C.opacity=C.width=c),C}function Kd(c,h,b){for(var w,C=(Ur.tweeners[h]||[]).concat(Ur.tweeners["*"]),k=0,L=C.length;k1)},removeAttr:function(c){return this.each(function(){v.removeAttr(this,c)})}}),v.extend({attr:function(c,h,b){var w,C,k=c.nodeType;if(!(k===3||k===8||k===2)){if(typeof c.getAttribute>"u")return v.prop(c,h,b);if((k!==1||!v.isXMLDoc(c))&&(C=v.attrHooks[h.toLowerCase()]||(v.expr.match.bool.test(h)?jd:void 0)),b!==void 0){if(b===null){v.removeAttr(c,h);return}return C&&"set"in C&&(w=C.set(c,b,h))!==void 0?w:(c.setAttribute(h,b+""),b)}return C&&"get"in C&&(w=C.get(c,h))!==null?w:(w=v.find.attr(c,h),w??void 0)}},attrHooks:{type:{set:function(c,h){if(!g.radioValue&&h==="radio"&&R(c,"input")){var b=c.value;return c.setAttribute("type",h),b&&(c.value=b),h}}}},removeAttr:function(c,h){var b,w=0,C=h&&h.match(ee);if(C&&c.nodeType===1)for(;b=C[w++];)c.removeAttribute(b)}}),jd={set:function(c,h,b){return h===!1?v.removeAttr(c,b):c.setAttribute(b,b),b}},v.each(v.expr.match.bool.source.match(/\w+/g),function(c,h){var b=Hi[h]||v.find.attr;Hi[h]=function(w,C,k){var L,H,$=C.toLowerCase();return k||(H=Hi[$],Hi[$]=L,L=b(w,C,k)!=null?$:null,Hi[$]=H),L}});var jC=/^(?:input|select|textarea|button)$/i,YC=/^(?:a|area)$/i;v.fn.extend({prop:function(c,h){return le(this,v.prop,c,h,arguments.length>1)},removeProp:function(c){return this.each(function(){delete this[v.propFix[c]||c]})}}),v.extend({prop:function(c,h,b){var w,C,k=c.nodeType;if(!(k===3||k===8||k===2))return(k!==1||!v.isXMLDoc(c))&&(h=v.propFix[h]||h,C=v.propHooks[h]),b!==void 0?C&&"set"in C&&(w=C.set(c,b,h))!==void 0?w:c[h]=b:C&&"get"in C&&(w=C.get(c,h))!==null?w:c[h]},propHooks:{tabIndex:{get:function(c){var h=v.find.attr(c,"tabindex");return h?parseInt(h,10):jC.test(c.nodeName)||YC.test(c.nodeName)&&c.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(v.propHooks.selected={get:function(c){var h=c.parentNode;return h&&h.parentNode&&h.parentNode.selectedIndex,null},set:function(c){var h=c.parentNode;h&&(h.selectedIndex,h.parentNode&&h.parentNode.selectedIndex)}}),v.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){v.propFix[this.toLowerCase()]=this});function ca(c){var h=c.match(ee)||[];return h.join(" ")}function da(c){return c.getAttribute&&c.getAttribute("class")||""}function wl(c){return Array.isArray(c)?c:typeof c=="string"?c.match(ee)||[]:[]}v.fn.extend({addClass:function(c){var h,b,w,C,k,L,H,$=0;if(y(c))return this.each(function(Q){v(this).addClass(c.call(this,Q,da(this)))});if(h=wl(c),h.length){for(;b=this[$++];)if(C=da(b),w=b.nodeType===1&&" "+ca(C)+" ",w){for(L=0;k=h[L++];)w.indexOf(" "+k+" ")<0&&(w+=k+" ");H=ca(w),C!==H&&b.setAttribute("class",H)}}return this},removeClass:function(c){var h,b,w,C,k,L,H,$=0;if(y(c))return this.each(function(Q){v(this).removeClass(c.call(this,Q,da(this)))});if(!arguments.length)return this.attr("class","");if(h=wl(c),h.length){for(;b=this[$++];)if(C=da(b),w=b.nodeType===1&&" "+ca(C)+" ",w){for(L=0;k=h[L++];)for(;w.indexOf(" "+k+" ")>-1;)w=w.replace(" "+k+" "," ");H=ca(w),C!==H&&b.setAttribute("class",H)}}return this},toggleClass:function(c,h){var b=typeof c,w=b==="string"||Array.isArray(c);return typeof h=="boolean"&&w?h?this.addClass(c):this.removeClass(c):y(c)?this.each(function(C){v(this).toggleClass(c.call(this,C,da(this),h),h)}):this.each(function(){var C,k,L,H;if(w)for(k=0,L=v(this),H=wl(c);C=H[k++];)L.hasClass(C)?L.removeClass(C):L.addClass(C);else(c===void 0||b==="boolean")&&(C=da(this),C&&de.set(this,"__className__",C),this.setAttribute&&this.setAttribute("class",C||c===!1?"":de.get(this,"__className__")||""))})},hasClass:function(c){var h,b,w=0;for(h=" "+c+" ";b=this[w++];)if(b.nodeType===1&&(" "+ca(da(b))+" ").indexOf(h)>-1)return!0;return!1}});var XC=/\r/g;v.fn.extend({val:function(c){var h,b,w,C=this[0];return arguments.length?(w=y(c),this.each(function(k){var L;this.nodeType===1&&(w?L=c.call(this,k,v(this).val()):L=c,L==null?L="":typeof L=="number"?L+="":Array.isArray(L)&&(L=v.map(L,function(H){return H==null?"":H+""})),h=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()],(!h||!("set"in h)||h.set(this,L,"value")===void 0)&&(this.value=L))})):C?(h=v.valHooks[C.type]||v.valHooks[C.nodeName.toLowerCase()],h&&"get"in h&&(b=h.get(C,"value"))!==void 0?b:(b=C.value,typeof b=="string"?b.replace(XC,""):b??"")):void 0}}),v.extend({valHooks:{option:{get:function(c){var h=v.find.attr(c,"value");return h??ca(v.text(c))}},select:{get:function(c){var h,b,w,C=c.options,k=c.selectedIndex,L=c.type==="select-one",H=L?null:[],$=L?k+1:C.length;for(k<0?w=$:w=L?k:0;w<$;w++)if(b=C[w],(b.selected||w===k)&&!b.disabled&&(!b.parentNode.disabled||!R(b.parentNode,"optgroup"))){if(h=v(b).val(),L)return h;H.push(h)}return H},set:function(c,h){for(var b,w,C=c.options,k=v.makeArray(h),L=C.length;L--;)w=C[L],(w.selected=v.inArray(v.valHooks.option.get(w),k)>-1)&&(b=!0);return b||(c.selectedIndex=-1),k}}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]={set:function(c,h){if(Array.isArray(h))return c.checked=v.inArray(v(c).val(),h)>-1}},g.checkOn||(v.valHooks[this].get=function(c){return c.getAttribute("value")===null?"on":c.value})}),g.focusin="onfocusin"in t;var Yd=/^(?:focusinfocus|focusoutblur)$/,Xd=function(c){c.stopPropagation()};v.extend(v.event,{trigger:function(c,h,b,w){var C,k,L,H,$,Q,ae,Ee,te=[b||x],ve=f.call(c,"type")?c.type:c,Me=f.call(c,"namespace")?c.namespace.split("."):[];if(k=Ee=L=b=b||x,!(b.nodeType===3||b.nodeType===8)&&!Yd.test(ve+v.event.triggered)&&(ve.indexOf(".")>-1&&(Me=ve.split("."),ve=Me.shift(),Me.sort()),$=ve.indexOf(":")<0&&"on"+ve,c=c[v.expando]?c:new v.Event(ve,typeof c=="object"&&c),c.isTrigger=w?2:3,c.namespace=Me.join("."),c.rnamespace=c.namespace?new RegExp("(^|\\.)"+Me.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,c.result=void 0,c.target||(c.target=b),h=h==null?[c]:v.makeArray(h,[c]),ae=v.event.special[ve]||{},!(!w&&ae.trigger&&ae.trigger.apply(b,h)===!1))){if(!w&&!ae.noBubble&&!m(b)){for(H=ae.delegateType||ve,Yd.test(H+ve)||(k=k.parentNode);k;k=k.parentNode)te.push(k),L=k;L===(b.ownerDocument||x)&&te.push(L.defaultView||L.parentWindow||t)}for(C=0;(k=te[C++])&&!c.isPropagationStopped();)Ee=k,c.type=C>1?H:ae.bindType||ve,Q=(de.get(k,"events")||Object.create(null))[c.type]&&de.get(k,"handle"),Q&&Q.apply(k,h),Q=$&&k[$],Q&&Q.apply&&Ge(k)&&(c.result=Q.apply(k,h),c.result===!1&&c.preventDefault());return c.type=ve,!w&&!c.isDefaultPrevented()&&(!ae._default||ae._default.apply(te.pop(),h)===!1)&&Ge(b)&&$&&y(b[ve])&&!m(b)&&(L=b[$],L&&(b[$]=null),v.event.triggered=ve,c.isPropagationStopped()&&Ee.addEventListener(ve,Xd),b[ve](),c.isPropagationStopped()&&Ee.removeEventListener(ve,Xd),v.event.triggered=void 0,L&&(b[$]=L)),c.result}},simulate:function(c,h,b){var w=v.extend(new v.Event,b,{type:c,isSimulated:!0});v.event.trigger(w,null,h)}}),v.fn.extend({trigger:function(c,h){return this.each(function(){v.event.trigger(c,h,this)})},triggerHandler:function(c,h){var b=this[0];if(b)return v.event.trigger(c,h,b,!0)}}),g.focusin||v.each({focus:"focusin",blur:"focusout"},function(c,h){var b=function(w){v.event.simulate(h,w.target,v.event.fix(w))};v.event.special[h]={setup:function(){var w=this.ownerDocument||this.document||this,C=de.access(w,h);C||w.addEventListener(c,b,!0),de.access(w,h,(C||0)+1)},teardown:function(){var w=this.ownerDocument||this.document||this,C=de.access(w,h)-1;C?de.access(w,h,C):(w.removeEventListener(c,b,!0),de.remove(w,h))}}});var $i=t.location,Qd={guid:Date.now()},El=/\?/;v.parseXML=function(c){var h;if(!c||typeof c!="string")return null;try{h=new t.DOMParser().parseFromString(c,"text/xml")}catch{h=void 0}return(!h||h.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+c),h};var QC=/\[\]$/,Zd=/\r?\n/g,ZC=/^(?:submit|button|image|reset|file)$/i,JC=/^(?:input|select|textarea|keygen)/i;function Tl(c,h,b,w){var C;if(Array.isArray(h))v.each(h,function(k,L){b||QC.test(c)?w(c,L):Tl(c+"["+(typeof L=="object"&&L!=null?k:"")+"]",L,b,w)});else if(!b&&S(h)==="object")for(C in h)Tl(c+"["+C+"]",h[C],b,w);else w(c,h)}v.param=function(c,h){var b,w=[],C=function(k,L){var H=y(L)?L():L;w[w.length]=encodeURIComponent(k)+"="+encodeURIComponent(H??"")};if(c==null)return"";if(Array.isArray(c)||c.jquery&&!v.isPlainObject(c))v.each(c,function(){C(this.name,this.value)});else for(b in c)Tl(b,c[b],h,C);return w.join("&")},v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var c=v.prop(this,"elements");return c?v.makeArray(c):this}).filter(function(){var c=this.type;return this.name&&!v(this).is(":disabled")&&JC.test(this.nodeName)&&!ZC.test(c)&&(this.checked||!mt.test(c))}).map(function(c,h){var b=v(this).val();return b==null?null:Array.isArray(b)?v.map(b,function(w){return{name:h.name,value:w.replace(Zd,`\r `)}}):{name:h.name,value:b.replace(Zd,`\r -`)}}).get()}});var ek=/%20/g,tk=/#.*$/,rk=/([?&])_=[^&]*/,nk=/^(.*?):[ \t]*([^\r\n]*)$/mg,ak=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ik=/^(?:GET|HEAD)$/,ok=/^\/\//,Jd={},Sl={},eh="*/".concat("*"),Cl=x.createElement("a");Cl.href=$i.href;function th(c){return function(h,b){typeof h!="string"&&(b=h,h="*");var w,C=0,k=h.toLowerCase().match(ee)||[];if(y(b))for(;w=k[C++];)w[0]==="+"?(w=w.slice(1)||"*",(c[w]=c[w]||[]).unshift(b)):(c[w]=c[w]||[]).push(b)}}function rh(c,h,b,w){var C={},k=c===Sl;function L(H){var $;return C[H]=!0,v.each(c[H]||[],function(Q,ae){var Ee=ae(h,b,w);if(typeof Ee=="string"&&!k&&!C[Ee])return h.dataTypes.unshift(Ee),L(Ee),!1;if(k)return!($=Ee)}),$}return L(h.dataTypes[0])||!C["*"]&&L("*")}function kl(c,h){var b,w,C=v.ajaxSettings.flatOptions||{};for(b in h)h[b]!==void 0&&((C[b]?c:w||(w={}))[b]=h[b]);return w&&v.extend(!0,c,w),c}function sk(c,h,b){for(var w,C,k,L,H=c.contents,$=c.dataTypes;$[0]==="*";)$.shift(),w===void 0&&(w=c.mimeType||h.getResponseHeader("Content-Type"));if(w){for(C in H)if(H[C]&&H[C].test(w)){$.unshift(C);break}}if($[0]in b)k=$[0];else{for(C in b){if(!$[0]||c.converters[C+" "+$[0]]){k=C;break}L||(L=C)}k=k||L}if(k)return k!==$[0]&&$.unshift(k),b[k]}function uk(c,h,b,w){var C,k,L,H,$,Q={},ae=c.dataTypes.slice();if(ae[1])for(L in c.converters)Q[L.toLowerCase()]=c.converters[L];for(k=ae.shift();k;)if(c.responseFields[k]&&(b[c.responseFields[k]]=h),!$&&w&&c.dataFilter&&(h=c.dataFilter(h,c.dataType)),$=k,k=ae.shift(),k){if(k==="*")k=$;else if($!=="*"&&$!==k){if(L=Q[$+" "+k]||Q["* "+k],!L){for(C in Q)if(H=C.split(" "),H[1]===k&&(L=Q[$+" "+H[0]]||Q["* "+H[0]],L)){L===!0?L=Q[C]:Q[C]!==!0&&(k=H[0],ae.unshift(H[1]));break}}if(L!==!0)if(L&&c.throws)h=L(h);else try{h=L(h)}catch(Ee){return{state:"parsererror",error:L?Ee:"No conversion from "+$+" to "+k}}}}return{state:"success",data:h}}v.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:$i.href,type:"GET",isLocal:ak.test($i.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":eh,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":v.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(c,h){return h?kl(kl(c,v.ajaxSettings),h):kl(v.ajaxSettings,c)},ajaxPrefilter:th(Jd),ajaxTransport:th(Sl),ajax:function(c,h){typeof c=="object"&&(h=c,c=void 0),h=h||{};var b,w,C,k,L,H,$,Q,ae,Ee,te=v.ajaxSetup({},h),ve=te.context||te,Me=te.context&&(ve.nodeType||ve.jquery)?v(ve):v.event,Xe=v.Deferred(),Re=v.Callbacks("once memory"),Kt=te.statusCode||{},$t={},Dr={},bt="canceled",Ye={readyState:0,getResponseHeader:function(lt){var Rt;if($){if(!k)for(k={};Rt=nk.exec(C);)k[Rt[1].toLowerCase()+" "]=(k[Rt[1].toLowerCase()+" "]||[]).concat(Rt[2]);Rt=k[lt.toLowerCase()+" "]}return Rt==null?null:Rt.join(", ")},getAllResponseHeaders:function(){return $?C:null},setRequestHeader:function(lt,Rt){return $==null&&(lt=Dr[lt.toLowerCase()]=Dr[lt.toLowerCase()]||lt,$t[lt]=Rt),this},overrideMimeType:function(lt){return $==null&&(te.mimeType=lt),this},statusCode:function(lt){var Rt;if(lt)if($)Ye.always(lt[Ye.status]);else for(Rt in lt)Kt[Rt]=[Kt[Rt],lt[Rt]];return this},abort:function(lt){var Rt=lt||bt;return b&&b.abort(Rt),Er(0,Rt),this}};if(Xe.promise(Ye),te.url=((c||te.url||$i.href)+"").replace(ok,$i.protocol+"//"),te.type=h.method||h.type||te.method||te.type,te.dataTypes=(te.dataType||"*").toLowerCase().match(ee)||[""],te.crossDomain==null){H=x.createElement("a");try{H.href=te.url,H.href=H.href,te.crossDomain=Cl.protocol+"//"+Cl.host!=H.protocol+"//"+H.host}catch{te.crossDomain=!0}}if(te.data&&te.processData&&typeof te.data!="string"&&(te.data=v.param(te.data,te.traditional)),rh(Jd,te,h,Ye),$)return Ye;Q=v.event&&te.global,Q&&v.active++===0&&v.event.trigger("ajaxStart"),te.type=te.type.toUpperCase(),te.hasContent=!ik.test(te.type),w=te.url.replace(tk,""),te.hasContent?te.data&&te.processData&&(te.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(te.data=te.data.replace(ek,"+")):(Ee=te.url.slice(w.length),te.data&&(te.processData||typeof te.data=="string")&&(w+=(El.test(w)?"&":"?")+te.data,delete te.data),te.cache===!1&&(w=w.replace(rk,"$1"),Ee=(El.test(w)?"&":"?")+"_="+Qd.guid+++Ee),te.url=w+Ee),te.ifModified&&(v.lastModified[w]&&Ye.setRequestHeader("If-Modified-Since",v.lastModified[w]),v.etag[w]&&Ye.setRequestHeader("If-None-Match",v.etag[w])),(te.data&&te.hasContent&&te.contentType!==!1||h.contentType)&&Ye.setRequestHeader("Content-Type",te.contentType),Ye.setRequestHeader("Accept",te.dataTypes[0]&&te.accepts[te.dataTypes[0]]?te.accepts[te.dataTypes[0]]+(te.dataTypes[0]!=="*"?", "+eh+"; q=0.01":""):te.accepts["*"]);for(ae in te.headers)Ye.setRequestHeader(ae,te.headers[ae]);if(te.beforeSend&&(te.beforeSend.call(ve,Ye,te)===!1||$))return Ye.abort();if(bt="abort",Re.add(te.complete),Ye.done(te.success),Ye.fail(te.error),b=rh(Sl,te,h,Ye),!b)Er(-1,"No Transport");else{if(Ye.readyState=1,Q&&Me.trigger("ajaxSend",[Ye,te]),$)return Ye;te.async&&te.timeout>0&&(L=t.setTimeout(function(){Ye.abort("timeout")},te.timeout));try{$=!1,b.send($t,Er)}catch(lt){if($)throw lt;Er(-1,lt)}}function Er(lt,Rt,Ui,Ts){var Lr,ha,va,Tr,Gn,Rr=Rt;$||($=!0,L&&t.clearTimeout(L),b=void 0,C=Ts||"",Ye.readyState=lt>0?4:0,Lr=lt>=200&<<300||lt===304,Ui&&(Tr=sk(te,Ye,Ui)),!Lr&&v.inArray("script",te.dataTypes)>-1&&(te.converters["text script"]=function(){}),Tr=uk(te,Tr,Ye,Lr),Lr?(te.ifModified&&(Gn=Ye.getResponseHeader("Last-Modified"),Gn&&(v.lastModified[w]=Gn),Gn=Ye.getResponseHeader("etag"),Gn&&(v.etag[w]=Gn)),lt===204||te.type==="HEAD"?Rr="nocontent":lt===304?Rr="notmodified":(Rr=Tr.state,ha=Tr.data,va=Tr.error,Lr=!va)):(va=Rr,(lt||!Rr)&&(Rr="error",lt<0&&(lt=0))),Ye.status=lt,Ye.statusText=(Rt||Rr)+"",Lr?Xe.resolveWith(ve,[ha,Rr,Ye]):Xe.rejectWith(ve,[Ye,Rr,va]),Ye.statusCode(Kt),Kt=void 0,Q&&Me.trigger(Lr?"ajaxSuccess":"ajaxError",[Ye,te,Lr?ha:va]),Re.fireWith(ve,[Ye,Rr]),Q&&(Me.trigger("ajaxComplete",[Ye,te]),--v.active||v.event.trigger("ajaxStop")))}return Ye},getJSON:function(c,h,b){return v.get(c,h,b,"json")},getScript:function(c,h){return v.get(c,void 0,h,"script")}}),v.each(["get","post"],function(c,h){v[h]=function(b,w,C,k){return y(w)&&(k=k||C,C=w,w=void 0),v.ajax(v.extend({url:b,type:h,dataType:k,data:w,success:C},v.isPlainObject(b)&&b))}}),v.ajaxPrefilter(function(c){var h;for(h in c.headers)h.toLowerCase()==="content-type"&&(c.contentType=c.headers[h]||"")}),v._evalUrl=function(c,h,b){return v.ajax({url:c,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(w){v.globalEval(w,h,b)}})},v.fn.extend({wrapAll:function(c){var h;return this[0]&&(y(c)&&(c=c.call(this[0])),h=v(c,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&h.insertBefore(this[0]),h.map(function(){for(var b=this;b.firstElementChild;)b=b.firstElementChild;return b}).append(this)),this},wrapInner:function(c){return y(c)?this.each(function(h){v(this).wrapInner(c.call(this,h))}):this.each(function(){var h=v(this),b=h.contents();b.length?b.wrapAll(c):h.append(c)})},wrap:function(c){var h=y(c);return this.each(function(b){v(this).wrapAll(h?c.call(this,b):c)})},unwrap:function(c){return this.parent(c).not("body").each(function(){v(this).replaceWith(this.childNodes)}),this}}),v.expr.pseudos.hidden=function(c){return!v.expr.pseudos.visible(c)},v.expr.pseudos.visible=function(c){return!!(c.offsetWidth||c.offsetHeight||c.getClientRects().length)},v.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch{}};var lk={0:200,1223:204},Wi=v.ajaxSettings.xhr();g.cors=!!Wi&&"withCredentials"in Wi,g.ajax=Wi=!!Wi,v.ajaxTransport(function(c){var h,b;if(g.cors||Wi&&!c.crossDomain)return{send:function(w,C){var k,L=c.xhr();if(L.open(c.type,c.url,c.async,c.username,c.password),c.xhrFields)for(k in c.xhrFields)L[k]=c.xhrFields[k];c.mimeType&&L.overrideMimeType&&L.overrideMimeType(c.mimeType),!c.crossDomain&&!w["X-Requested-With"]&&(w["X-Requested-With"]="XMLHttpRequest");for(k in w)L.setRequestHeader(k,w[k]);h=function(H){return function(){h&&(h=b=L.onload=L.onerror=L.onabort=L.ontimeout=L.onreadystatechange=null,H==="abort"?L.abort():H==="error"?typeof L.status!="number"?C(0,"error"):C(L.status,L.statusText):C(lk[L.status]||L.status,L.statusText,(L.responseType||"text")!=="text"||typeof L.responseText!="string"?{binary:L.response}:{text:L.responseText},L.getAllResponseHeaders()))}},L.onload=h(),b=L.onerror=L.ontimeout=h("error"),L.onabort!==void 0?L.onabort=b:L.onreadystatechange=function(){L.readyState===4&&t.setTimeout(function(){h&&b()})},h=h("abort");try{L.send(c.hasContent&&c.data||null)}catch(H){if(h)throw H}},abort:function(){h&&h()}}}),v.ajaxPrefilter(function(c){c.crossDomain&&(c.contents.script=!1)}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(c){return v.globalEval(c),c}}}),v.ajaxPrefilter("script",function(c){c.cache===void 0&&(c.cache=!1),c.crossDomain&&(c.type="GET")}),v.ajaxTransport("script",function(c){if(c.crossDomain||c.scriptAttrs){var h,b;return{send:function(w,C){h=v("