├── .eslintignore
├── bench
├── fixture
│ ├── basic.js
│ ├── mithril@1.1.0.js
│ ├── lodash@4.17.4.js
│ └── jquery@3.2.1.js
├── tippex-find-bench.js
├── acorn-parse-bench.js
├── index.html
└── index.js
├── .gitignore
├── test
├── samples
│ ├── imports.js
│ ├── requires.js
│ ├── regexDivisionAfter.js
│ ├── regexDivisionBefore.js
│ ├── jsxAfter.jsx
│ ├── jsxBefore.jsx
│ └── misc.js
└── test.js
├── .travis.yml
├── rollup.config.js
├── .eslintrc
├── package.json
├── CHANGELOG.md
├── README.md
└── src
└── index.js
/.eslintignore:
--------------------------------------------------------------------------------
1 | test/samples/**/*.js
2 |
--------------------------------------------------------------------------------
/bench/fixture/basic.js:
--------------------------------------------------------------------------------
1 | var answer = 42;
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | dist
4 |
--------------------------------------------------------------------------------
/test/samples/imports.js:
--------------------------------------------------------------------------------
1 | import a from './a.js';
2 | // import b from './b.js';
3 | import c from './c.js';
4 |
5 | const str = "import d from './d.js';";
6 |
--------------------------------------------------------------------------------
/bench/tippex-find-bench.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const tippex = require( '../dist/tippex.umd.js' );
4 |
5 | module.exports = input => tippex.find( input );
6 |
7 |
--------------------------------------------------------------------------------
/test/samples/requires.js:
--------------------------------------------------------------------------------
1 | var a = require('./a.js');
2 | // import b from './b.js';
3 | var c = require('./c.js');
4 |
5 | const str = "import d from './d.js';";
6 |
--------------------------------------------------------------------------------
/bench/acorn-parse-bench.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const { parse } = require('acorn');
4 |
5 | module.exports = (content) => parse(content, {
6 | sourceType: 'module'
7 | });
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | node_js:
4 | - "4"
5 | - "stable"
6 | env:
7 | global:
8 | - BUILD_TIMEOUT=10000
9 | install: npm install
10 |
--------------------------------------------------------------------------------
/test/samples/regexDivisionAfter.js:
--------------------------------------------------------------------------------
1 | / /;
2 | / /;
3 | a
4 | /b/g;
5 | a/b/g;
6 | (a)/b/g;
7 | (a/b)/c;
8 | (a/b)/c/g;
9 | if (a)/ /g;
10 | if (a/b)/ /g;
11 | while (a)/ /g;
12 | while (a/b)/ /g;
13 | while ((m = / /.exec(str)) a/=2/g;
14 | a++/b/g;
15 | a++ /b/g;
16 | a--/b/g;
17 | a-- /b/g;
18 | (a)++/b/g;
19 | (a++)/b/g;
20 | i/=j/2;
21 |
--------------------------------------------------------------------------------
/test/samples/regexDivisionBefore.js:
--------------------------------------------------------------------------------
1 | /foo/;
2 | /foo/;
3 | a
4 | /b/g;
5 | a/b/g;
6 | (a)/b/g;
7 | (a/b)/c;
8 | (a/b)/c/g;
9 | if (a)/b/g;
10 | if (a/b)/c/g;
11 | while (a)/b/g;
12 | while (a/b)/c/g;
13 | while ((m = /..(.*)/.exec(str)) a/=2/g;
14 | a++/b/g;
15 | a++ /b/g;
16 | a--/b/g;
17 | a-- /b/g;
18 | (a)++/b/g;
19 | (a++)/b/g;
20 | i/=j/2;
21 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import buble from 'rollup-plugin-buble';
2 | import nodeResolve from 'rollup-plugin-node-resolve';
3 |
4 | const pkg = require( './package.json' );
5 |
6 | export default {
7 | entry: 'src/index.js',
8 | plugins: [
9 | nodeResolve(),
10 | buble({ exclude: 'node_modules/**' })
11 | ],
12 | moduleName: 'tippex',
13 | sourceMap: true,
14 | targets: [
15 | { dest: pkg.main, format: 'umd' },
16 | { dest: pkg.module, format: 'es' }
17 | ]
18 | };
19 |
--------------------------------------------------------------------------------
/test/samples/jsxAfter.jsx:
--------------------------------------------------------------------------------
1 | {/**/}/**/;
2 | { {/**/}/**/ };
3 | /**/ {/**/}/**/;
4 | let x = {/**/}/**/;
5 | foo( {/**/}, {/**/}, ( {/**/}))/**/;
6 | {/**/}/**/;
7 | /**/ {/**/}/**/;
8 | let r = x < 10 /**/ && x > y ? 1 /**/ : 2;
9 | if (x < 10) { {/**/}/**/ }/**/;
10 | 10/**/}> {x /**/ < 10 /**/ || x /**/ > 10 /**/} /**/;
11 | ; function x() { {/**/}/**/ } /**/;
12 | ; function x() { {/**/}/**/ }
13 |
14 | /**/;
15 |
--------------------------------------------------------------------------------
/test/samples/jsxBefore.jsx:
--------------------------------------------------------------------------------
1 | /**/{/**/}/**/;
2 | { /**/{/**/}/**/ };
3 | /**//**/{/**/}/**/;
4 | let x = /**/{/**/}/**/;
5 | foo(/**/{/**/}, /**/{/**/}, (/**/{/**/}))/**/;
6 | /**/{/**/}/**/;
7 | /**//**/{/**/}/**/;
8 | let r = x < 10 /**/ && x > y ? 1 /**/ : 2;
9 | if (x < 10) { /**/{/**/}/**/ }/**/;
10 | 10/**/}>/**/{x /**/ < 10 /**/ || x /**/ > 10 /**/}/**//**/;
11 | ; function x() { /**/{/**/}/**/ } /**/;
12 | ; function x() { /**/{/**/}/**/ }
13 |
14 | /**/;
15 |
--------------------------------------------------------------------------------
/bench/index.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/test/samples/misc.js:
--------------------------------------------------------------------------------
1 | const answer = 42; // line comment
2 | const moarAnswer = (7*4)/(2/3)
3 |
4 | /*
5 | (•_•)
6 | <) )╯Multi
7 | / \
8 |
9 | \(•_•)
10 | ( (> Line
11 | / \
12 |
13 | (•_•)
14 | <) )> Comment
15 | / \
16 | */
17 |
18 | const singleQuotedString = 'i\'m trying to escape';
19 | const doubleQuotedString = "this is also \"escaped\"";
20 | const templateString = `the answer is ${answer}. This is a backtick: \``;
21 |
22 | const regex = /you can ignore\/[/]skip me, it's cool/;
23 |
24 | if ( a / b ) /foo/;
25 |
26 | function calc (data) {
27 | for (i = 0; i < num; i++)
28 | something = item[i] / total * 100
29 |
30 | for (i = 0; i < 4; i++) {
31 | something = Math.round(totals[i] / total * 100)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "indent": [ 2, "tab", { "SwitchCase": 1 } ],
4 | "quotes": [ 0 ],
5 | "linebreak-style": [ 2, "unix" ],
6 | "semi": [ 2, "always" ],
7 | "keyword-spacing": [ 2, {"before": true, "after": true}],
8 | "space-before-blocks": [ 2, "always" ],
9 | "space-before-function-paren": [ 2, "always" ],
10 | "no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ],
11 | "no-cond-assign": [ 0 ]
12 | },
13 | "env": {
14 | "es6": true,
15 | "browser": true,
16 | "mocha": true,
17 | "node": true
18 | },
19 | "extends": "eslint:recommended",
20 | "parserOptions": {
21 | "ecmaVersion": 6,
22 | "sourceType": "module"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/bench/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | 'use strict'
3 |
4 | const glob = require('glob')
5 | const { Suite } = require('benchmark')
6 |
7 | const Benchmark = require('benchmark')
8 | const fs = require('fs')
9 | const path = require('path')
10 | const prettyBytes = require('pretty-bytes')
11 | const prettyMs = require('pretty-ms')
12 |
13 | process.chdir(__dirname)
14 |
15 | glob.sync('fixture/*.js').forEach(fixture => {
16 | const content = fs.readFileSync(fixture, 'utf8')
17 | const size = prettyBytes(Buffer.byteLength(content, 'utf8'))
18 |
19 | console.log(`${ fixture } (${ size }):`)
20 |
21 | const suite = new Suite()
22 | glob.sync('./*-bench.js').forEach((id) => {
23 | const fn = require(id);
24 | suite.add(id, () => {
25 | fn(content);
26 | });
27 | })
28 | suite.on('error', ({ target: { error } }) => {
29 | throw error
30 | })
31 | suite.on('cycle', ({ target }) => {
32 | const time = prettyMs(1e3 / target.hz)
33 | console.log(` ${ target }`.replace(' x ', ` in ${ time }; `))
34 | })
35 | suite.run()
36 | })
37 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tippex",
3 | "description": "Find and erase strings and comments in JavaScript code",
4 | "version": "3.0.0",
5 | "author": "Rich Harris",
6 | "main": "dist/tippex.umd.js",
7 | "module": "dist/tippex.es.js",
8 | "files": [
9 | "src",
10 | "dist",
11 | "README.md"
12 | ],
13 | "license": "MIT",
14 | "repository": "https://github.com/Rich-Harris/tippex",
15 | "scripts": {
16 | "bench": "node bench",
17 | "test": "mocha --compilers js:buble/register",
18 | "prebench": "npm run build",
19 | "pretest": "npm run build",
20 | "build": "rollup -c",
21 | "prepublish": "npm run lint && rm -rf dist && npm test",
22 | "lint": "eslint src"
23 | },
24 | "devDependencies": {
25 | "acorn": "^4.0.11",
26 | "benchmark": "^2.1.3",
27 | "buble": "^0.15.2",
28 | "console-group": "^0.3.3",
29 | "eslint": "^3.17.1",
30 | "locate-character": "^2.0.0",
31 | "glob": "^7.1.1",
32 | "mocha": "^3.2.0",
33 | "pretty-bytes": "^4.0.2",
34 | "pretty-ms": "^2.1.0",
35 | "rollup": "^0.41.5",
36 | "rollup-plugin-buble": "^0.15.0",
37 | "rollup-plugin-node-resolve": "^2.0.0",
38 | "source-map-support": "^0.4.12"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Tippex changelog
2 |
3 | ## 3.0.0
4 |
5 | * Massive performance improvements, especially with large files ([#17](https://github.com/Rich-Harris/tippex/issues/17))
6 | * Found tokens now take the form `{ start, end, type, value }` — no more `inner` and `outer`
7 | * Text content inside JSX tags is removed
8 | * Fix bug with keyword false positives ([#18](https://github.com/Rich-Harris/tippex/issues/18))
9 |
10 | ## 2.3.1
11 |
12 | * Handle escaped slash at start of regex ([#15](https://github.com/Rich-Harris/tippex/issues/15))
13 |
14 | ## 2.3.0
15 |
16 | * JSX support ([#14](https://github.com/Rich-Harris/tippex/pull/14))
17 |
18 | ## 2.2.0
19 |
20 | * Include `default` among keywords that signal `/` should be treated as start of regex literal ([#1](https://github.com/Rich-Harris/tippex/issues/1))
21 | * More informative error message than 'state is not a function'
22 |
23 | ## 2.1.2
24 |
25 | * Fix crash on double asterisk in closing block comment ([#10](https://github.com/Rich-Harris/tippex/pull/10))
26 |
27 | ## 2.1.1
28 |
29 | * Handle `$` in template literals ([#1](https://github.com/Rich-Harris/tippex/issues/1))
30 | * Fix crash on specific comments ([#8](https://github.com/Rich-Harris/tippex/issues/8))
31 |
32 |
33 | ## 2.1.0
34 |
35 | * Handle prefix `++`/`--` operators followed by `/` ([#5](https://github.com/Rich-Harris/tippex/pull/5))
36 |
37 | ## 2.0.0
38 |
39 | * Handle majority (see note in README) of characters that could be either a division operator or the start of a regular expression literal ([#3](https://github.com/Rich-Harris/tippex/pull/3))
40 |
41 | ## 1.2.0
42 |
43 | * Add `tippex.replace` method
44 |
45 | ## 1.1.0
46 |
47 | * Add `tippex.match` method
48 |
49 | ## 1.0.0
50 |
51 | * First release
52 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tippex
2 |
3 | Erase comments, strings and regular expressions from JavaScript code.
4 |
5 | ## Why?
6 |
7 | Say you want to do some very simple code analysis, such as finding `import` and `export` statements. You *could* just skim over the code with a regex, but you'll get bad results if matches exist inside comments or strings:
8 |
9 | ```js
10 | import a from './a.js';
11 | // import b from './b.js'; TODO do we need this?
12 | ```
13 |
14 | Instead, you might generate an abstract syntax tree with a parser like [Acorn](https://github.com/ternjs/acorn), and traverse the AST looking for nodes of a specific type. But for a lot of simple tasks that's overkill – parsing is expensive, traversing is a lot less simple than using regular expressions, and if you're doing anything in the browser it's better to avoid large dependencies.
15 |
16 | Tippex offers some middle ground. It's as robust as a full-fledged parser, but miniscule – and much faster. (Americans: Tippex is what you oddballs call 'Liquid Paper' or 'Wite-Out'.)
17 |
18 |
19 | ## What does it do?
20 |
21 | Tippex simply replaces the contents of strings (including ES6 template strings), regular expressions and comments with the equivalent whitespace.
22 |
23 | So this...
24 |
25 | ```js
26 | var a = 1; // line comment
27 | /*
28 | block comment
29 | */
30 | var b = 2;
31 | var c = /\w+/;
32 | var d = 'some text';
33 | var e = "some more text";
34 | var f = `an ${ 'unnecessarily' ? `${'complicated'}` : `${'template'}` } string`;
35 | ```
36 |
37 | ...becomes this:
38 |
39 | ```js
40 | var a = 1; //
41 | /*
42 |
43 | */
44 | var b = 2;
45 | var c = / /;
46 | var d = ' ';
47 | var e = " ";
48 | var f = ` ${ ' ' ? `${' '}` : `${' '}` } `;
49 | ```
50 |
51 | Once that's done, you can search for patterns (such as `var` or ` = ` or `import`) in complete confidence that you won't get any false positives.
52 |
53 |
54 | ## Installation
55 |
56 | ```bash
57 | npm install --save tippex
58 | ```
59 |
60 | ...or download from unpkg.com ([UMD version](https://unpkg.com/tippex), [ES6 exports version](https://unpkg.com/tippex/dist/tippex.es.js)).
61 |
62 |
63 | ## Usage
64 |
65 | ```js
66 | import * as tippex from 'tippex'; // or `var tippex = require('tippex')`, etc
67 |
68 | var erased = tippex.erase( 'var a = 1; // line comment' );
69 | // -> 'var a = 1; // '
70 |
71 | var found = tippex.find( 'var a = 1; // line comment' );
72 | // -> [{
73 | // start: 11,
74 | // end: 26,
75 | // type: 'line',
76 | // outer: '// line comment',
77 | // inner: ' line comment'
78 | // }]
79 | ```
80 |
81 | Sometimes you might need to match a regular expression against the original string, but ignoring comments etc. For that you can use `tippex.match`:
82 |
83 | ```js
84 | var code = `
85 | import a from './a.js';
86 | // import b from './b.js'; TODO do we need this?
87 | `;
88 |
89 | var importPattern = /import (.+?) from '([^']+)'/g; // must have 'g' flag
90 | var importDeclarations = [];
91 |
92 | tippex.match( code, importPattern, ( match, name, source ) => {
93 | // this callback will be called for each match that *doesn't* begin
94 | // inside a comment, string or regular expression
95 | importDeclarations.push({ name, source });
96 | });
97 |
98 | console.log( importDeclarations );
99 | // -> [{
100 | // name: 'a',
101 | // source: './a.js'
102 | // }]
103 | ```
104 |
105 | (A complete regular expression for ES6 imports would be a bit more complicated; this is for illustrative purposes.)
106 |
107 | To replace occurrences of a pattern that aren't inside strings or comments, use `tippex.replace`:
108 |
109 | ```js
110 | code = tippex.replace( code, importPattern, ( match, name, source ) => {
111 | return `var ${name} = require('${source}')`;
112 | });
113 | ```
114 |
115 |
116 | ## Known issues
117 |
118 | It's extremely difficult to distinguish between regular expression literals and division operators in certain edge cases at the lexical level. Fortunately, these cases are rare and generally somewhat contrived. If you encounter one in the wild, please raise an issue so we can try to accommodate it.
119 |
120 |
121 |
122 | ## License
123 |
124 | MIT
125 |
126 | ----
127 |
128 | Follow [@Rich_Harris](https://twitter.com/Rich_Harris) on Twitter for more artisanal, hand-crafted JavaScript.
129 |
--------------------------------------------------------------------------------
/test/test.js:
--------------------------------------------------------------------------------
1 | const fs = require( 'fs' );
2 | const assert = require( 'assert' );
3 | const { describe, it } = require( 'mocha' );
4 |
5 | require( 'source-map-support' ).install();
6 | require( 'console-group' ).install();
7 |
8 | const tippex = require( '../' );
9 |
10 | let samples = {};
11 | fs.readdirSync( 'test/samples' ).forEach( file => {
12 | samples[ file.replace( /\.jsx?$/, '' ) ] = fs.readFileSync( `test/samples/${file}`, 'utf-8' );
13 | });
14 |
15 | describe( 'tippex', () => {
16 | describe( 'find', () => {
17 | let found;
18 |
19 | before( () => {
20 | found = tippex.find( samples.misc );
21 | });
22 |
23 | it( 'finds line comments', () => {
24 | const lines = found.filter( chunk => chunk.type === 'line' );
25 |
26 | const start = samples.misc.indexOf( '//' ) + 2;
27 | const end = samples.misc.indexOf( '\n', start );
28 |
29 | assert.equal( lines.length, 1 );
30 | assert.deepEqual( lines[0], {
31 | start,
32 | end,
33 | value: ' line comment',
34 | type: 'line'
35 | });
36 | });
37 |
38 | it( 'finds block comments', () => {
39 | const blocks = found.filter( chunk => chunk.type === 'block' );
40 |
41 | const start = samples.misc.indexOf( '/*' ) + 2;
42 | const end = samples.misc.indexOf( '*/' );
43 |
44 | const comment = samples.misc.slice( start, end );
45 |
46 | assert.equal( blocks.length, 1 );
47 | assert.deepEqual( blocks[0], {
48 | start,
49 | end,
50 | value: comment,
51 | type: 'block'
52 | });
53 | });
54 |
55 | it( 'finds regular expressions', () => {
56 | const regexes = found.filter( chunk => chunk.type === 'regex' );
57 |
58 | const start = samples.misc.indexOf( '/you' ) + 1;
59 | const end = samples.misc.indexOf( 'cool/' ) + 4;
60 | const regex = samples.misc.slice( start, end );
61 |
62 | assert.equal( regexes.length, 2 );
63 | assert.deepEqual( regexes[0], {
64 | start,
65 | end,
66 | value: regex,
67 | type: 'regex'
68 | });
69 | });
70 |
71 | it( 'finds template strings', () => {
72 | const templateStrings = found.filter( chunk => chunk.type.slice( 0, 8 ) === 'template' );
73 |
74 | assert.equal( templateStrings.length, 2 );
75 |
76 | let start = samples.misc.indexOf( '`the' ) + 1;
77 | let end = samples.misc.indexOf( '${' );
78 | let section = samples.misc.slice( start, end );
79 |
80 | assert.deepEqual( templateStrings[0], {
81 | start,
82 | end,
83 | value: section,
84 | type: 'templateChunk'
85 | });
86 |
87 | start = samples.misc.indexOf( '}.' ) + 1;
88 | end = samples.misc.indexOf( '\\``' ) + 2;
89 | section = samples.misc.slice( start, end );
90 |
91 | assert.deepEqual( templateStrings[1], {
92 | start,
93 | end,
94 | value: section,
95 | type: 'templateEnd'
96 | });
97 | });
98 |
99 | it( 'finds normal strings', () => {
100 | const strings = found.filter( chunk => chunk.type === 'string' );
101 |
102 | assert.equal( strings.length, 2 );
103 |
104 | let start = samples.misc.indexOf( "'" ) + 1;
105 | let end = samples.misc.indexOf( "';" );
106 | let string = samples.misc.slice( start, end );
107 |
108 | assert.deepEqual( strings[0], {
109 | start,
110 | end,
111 | value: string,
112 | type: 'string'
113 | });
114 |
115 | start = samples.misc.indexOf( '"' ) + 1;
116 | end = samples.misc.indexOf( '";' );
117 | string = samples.misc.slice( start, end );
118 |
119 | assert.deepEqual( strings[1], {
120 | start,
121 | end,
122 | value: string,
123 | type: 'string'
124 | });
125 | });
126 | });
127 |
128 | describe( 'erase', () => {
129 | const tests = {
130 | 'erases a line comment': [
131 | `const answer = 42; // line comment`,
132 | `const answer = 42; // `
133 | ],
134 |
135 | 'erases a line comment at the start of a line': [
136 | `// line comment`,
137 | `// `
138 | ],
139 |
140 | 'erases a line comment with parens (#8)': [
141 | `//)\n//\n`,
142 | `// \n//\n`
143 | ],
144 |
145 | 'removes jsx contents': [
146 | 'this should disappear
',
147 | '
'
148 | ],
149 |
150 | 'removes jsx attributes': [
151 | '',
152 | ''
153 | ],
154 |
155 | 'handles simple jsx syntax': [
156 | `/**//**/{/**/}/**/;`,
157 | `/**/ {/**/}/**/;`
158 | ],
159 |
160 | 'erases block comments': [
161 | `/*foo*/`,
162 | `/* */`
163 | ],
164 |
165 | 'erases regular expressions': [
166 | `const regex = /you can ignore\\/[/]skip me, it's cool/;`,
167 | `const regex = / /;`
168 | ],
169 |
170 | 'erases template strings': [
171 | "const templateString = `the answer is ${answer}. This is a backtick: \\``;",
172 | "const templateString = ` ${answer} `;"
173 | ],
174 |
175 | 'erases normal strings': [
176 | `const singleQuotedString = 'i\\'m trying to escape';`,
177 | `const singleQuotedString = ' ';`
178 | ],
179 |
180 | 'handles double trailing asterisks in block comments': [
181 | '/* double trailing asterisks **/',
182 | '/* */'
183 | ],
184 |
185 | 'handles comments before division': [
186 | '1 /**/ / 2',
187 | '1 /**/ / 2'
188 | ],
189 |
190 | 'handles comments before regex': [
191 | `foo = 'bar'; /**/ /bar/.test(foo)`,
192 | `foo = ' '; /**/ / /.test(foo)`
193 | ],
194 |
195 | 'removes dollar inside template string': [
196 | 'const a = `$`;',
197 | 'const a = ` `;'
198 | ],
199 |
200 | 'removes escaped dollar inside template string': [
201 | 'const a = `\\$`;',
202 | 'const a = ` `;'
203 | ],
204 |
205 | 'removes things that look like template expressions': [
206 | 'const c = `$ {}${ `${ `$` }` }`;',
207 | 'const c = ` ${ `${ ` ` }` }`;'
208 | ],
209 |
210 | 'handles curlies inside a regex following export default (#1)': [
211 | 'export default /^}{/',
212 | 'export default / /'
213 | ],
214 |
215 | 'handles / character after parenthesized expression': [
216 | '( a + b ) / /x+/.exec( y )[0].length',
217 | '( a + b ) / / /.exec( y )[0].length'
218 | ],
219 |
220 | 'handles regex with escaped slash': [
221 | 'var regex = /\\//;',
222 | 'var regex = / /;'
223 | ],
224 |
225 | 'handles slash after almost-keyword': [
226 | `dodo / 'nonsense'`,
227 | `dodo / ' '`
228 | ]
229 | };
230 |
231 | Object.keys( tests ).forEach( key => {
232 | ( key[0] === '-' ? it.only : it )( key, () => {
233 | const [ before, after ] = tests[ key ];
234 | assert.equal( tippex.erase( before ), after );
235 | });
236 | });
237 |
238 | it( 'handles tricky regex/division cases', () => {
239 | const erased = tippex.erase( samples.regexDivisionBefore );
240 | assert.equal( erased, samples.regexDivisionAfter );
241 | });
242 |
243 | it( "handles jsx syntax", () => {
244 | const erased = tippex.erase( samples.jsxBefore );
245 | assert.equal( erased, samples.jsxAfter );
246 | });
247 |
248 | it( 'erases block comments', () => {
249 | const erased = tippex.erase( samples.misc );
250 | assert.equal( erased.indexOf( 'Multi' ), -1 );
251 | });
252 | });
253 |
254 | describe( 'match', () => {
255 | it( 'matches regular expressions against the original string', () => {
256 | const importPattern = /import (\w+) from '([^']+)'/g;
257 |
258 | let results = [];
259 | tippex.match( samples.imports, importPattern, ( match, name, source ) => {
260 | results.push({ match, name, source });
261 | });
262 |
263 | assert.deepEqual( results, [
264 | {
265 | match: "import a from './a.js'",
266 | name: 'a',
267 | source: './a.js'
268 | },
269 | {
270 | match: "import c from './c.js'",
271 | name: 'c',
272 | source: './c.js'
273 | }
274 | ]);
275 | });
276 |
277 | it( 'matches regular expressions without the global flag', () => {
278 | const importPattern = /import (\w+) from '([^']+)'/;
279 |
280 | let results = [];
281 | tippex.match( samples.imports, importPattern, ( match, name, source ) => {
282 | results.push({ match, name, source });
283 | });
284 |
285 | assert.deepEqual( results, [
286 | {
287 | match: "import a from './a.js'",
288 | name: 'a',
289 | source: './a.js'
290 | }
291 | ]);
292 | });
293 | });
294 |
295 | describe( 'replace', () => {
296 | it( 'replaces a pattern', () => {
297 | const importPattern = /import (\w+) from '([^']+)'/g;
298 |
299 | var result = tippex.replace( samples.imports, importPattern, ( match, name, source ) => {
300 | return `var ${name} = require('${source}')`;
301 | });
302 |
303 | assert.equal( result, samples.requires );
304 | });
305 | });
306 | });
307 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import { locate } from 'locate-character';
2 |
3 | const keywords = /\b(case|default|delete|do|else|in|instanceof|new|return|throw|typeof|void)\s*$/;
4 | const punctuators = /(^|\{|\(|\[\.|;|,|<|>|<=|>=|==|!=|===|!==|\+|-|\*\%|<<|>>|>>>|&|\||\^|!|~|&&|\|\||\?|:|=|\+=|-=|\*=|%=|<<=|>>=|>>>=|&=|\|=|\^=|\/=|\/)\s*$/;
5 | const ambiguous = /(\}|\)|\+\+|--)\s*$/;
6 |
7 | const punctuatorChars = /[{}()[.;,<>=+\-*%&|\^!~?:/]/;
8 | const keywordChars = /[a-z]/;
9 | const beforeJsxChars = /[=:;,({}[&+]/;
10 |
11 | const whitespace = /\s/;
12 |
13 | function isWhitespace ( char ) {
14 | return whitespace.test( char );
15 | }
16 |
17 | function isPunctuatorChar ( char ) {
18 | return punctuatorChars.test( char );
19 | }
20 |
21 | function isKeywordChar ( char ) {
22 | return keywordChars.test( char );
23 | }
24 |
25 | function isPunctuator ( str ) {
26 | return punctuators.test( str );
27 | }
28 |
29 | function isKeyword ( str ) {
30 | return keywords.test( str );
31 | }
32 |
33 | function isAmbiguous ( str ) {
34 | return ambiguous.test( str );
35 | }
36 |
37 | export function find ( str ) {
38 | let quote;
39 | let escapedFrom;
40 | let regexEnabled = true;
41 | let pfixOp = false;
42 | let jsxTagDepth = 0;
43 | let stack = [];
44 |
45 | let start;
46 | let found = [];
47 | let state = base;
48 |
49 | let lsci = -1; // last significant character index
50 | const lsc = () => str[ lsci ];
51 |
52 | const parenMatches = {};
53 | const openingParenPositions = {};
54 | let parenDepth = 0;
55 |
56 | function tokenClosesExpression () {
57 | if ( lsc() === ')' ) {
58 | let c = parenMatches[ lsci ];
59 | while ( isWhitespace( str[ c - 1 ] ) ) c -= 1;
60 |
61 | // if parenthesized expression is immediately preceded by `if`/`while`, it's not closing an expression
62 | return !/(if|while)$/.test( str.slice( c - 5, c ) );
63 | }
64 |
65 | // TODO handle }, ++ and -- tokens immediately followed by / character
66 | return true;
67 | }
68 |
69 | function base ( char, i ) {
70 | // the order of these tests is based on which characters are
71 | // typically more prevalent in a codebase
72 | if ( char === '(' ) {
73 | lsci = i;
74 | openingParenPositions[ parenDepth++ ] = i;
75 | return base;
76 | }
77 |
78 | if ( char === ')' ) {
79 | lsci = i;
80 | parenMatches[i] = openingParenPositions[ --parenDepth ];
81 | return base;
82 | }
83 |
84 | if ( char === '{' ) {
85 | lsci = i;
86 | stack.push( base );
87 | return base;
88 | }
89 |
90 | if ( char === '}' ) {
91 | lsci = i;
92 | return start = i + 1, stack.pop();
93 | }
94 |
95 | if ( char === '"' || char === "'" ) {
96 | start = i + 1;
97 | quote = char;
98 | stack.push( base );
99 | return string;
100 | }
101 |
102 | if ( char === '/' ) {
103 | // could be start of regex literal OR division punctuator. Solution via
104 | // http://stackoverflow.com/questions/5519596/when-parsing-javascript-what-determines-the-meaning-of-a-slash/27120110#27120110
105 |
106 | let b = i;
107 | while ( b > 0 && isWhitespace( str[ b - 1 ] ) ) b -= 1;
108 |
109 | if ( b > 0 ) {
110 | let a = b;
111 |
112 | if ( isPunctuatorChar( str[ a - 1 ] ) ) {
113 | while ( a > 0 && isPunctuatorChar( str[ a - 1 ] ) ) a -= 1;
114 | } else {
115 | while ( a > 0 && isKeywordChar( str[ a - 1 ] ) ) a -= 1;
116 | }
117 |
118 | const token = str.slice( a, b );
119 |
120 | regexEnabled = token ? (
121 | isKeyword( token ) ||
122 | isPunctuator( token ) ||
123 | ( isAmbiguous( token ) && !tokenClosesExpression() )
124 | ) : false;
125 | } else {
126 | regexEnabled = true;
127 | }
128 |
129 | start = i;
130 | return slash;
131 | }
132 |
133 | if ( char === '`' ) {
134 | start = i + 1;
135 | return templateString;
136 | }
137 |
138 | if ( char === '<' && ( !~lsci || beforeJsxChars.test( lsc() ) ) ) {
139 | stack.push( base );
140 | return jsxTagStart;
141 | }
142 |
143 | if ( char === '+' && !pfixOp && str[ i - 1 ] === '+' ) {
144 | pfixOp = true;
145 | } else if ( char === '-' && !pfixOp && str[ i - 1 ] === '-' ) {
146 | pfixOp = true;
147 | }
148 |
149 | if ( !isWhitespace( char ) ) lsci = i;
150 | return base;
151 | }
152 |
153 | function slash ( char, i ) {
154 | if ( char === '/' ) return start = i + 1, lineComment;
155 | if ( char === '*' ) return start = i + 1, blockComment;
156 | if ( char === '[' ) return regexEnabled ? ( start = i, regexCharacter ) : base;
157 | if ( char === '\\' ) return start = i, escapedFrom = regex, escaped;
158 | return regexEnabled && !pfixOp ? ( start = i, regex ) : base;
159 | }
160 |
161 | function regex ( char, i ) {
162 | if ( char === '[' ) return regexCharacter;
163 | if ( char === '\\' ) return escapedFrom = regex, escaped;
164 |
165 | if ( char === '/' ) {
166 | const end = i;
167 | const value = str.slice( start, end );
168 |
169 | found.push({ start, end, value, type: 'regex' });
170 |
171 | return base;
172 | }
173 |
174 | return regex;
175 | }
176 |
177 | function regexCharacter ( char ) {
178 | if ( char === ']' ) return regex;
179 | if ( char === '\\' ) return escapedFrom = regexCharacter, escaped;
180 | return regexCharacter;
181 | }
182 |
183 | function string ( char, i ) {
184 | if ( char === '\\' ) return escapedFrom = string, escaped;
185 | if ( char === quote ) {
186 | const end = i;
187 | const value = str.slice( start, end );
188 |
189 | found.push({ start, end, value, type: 'string' });
190 |
191 | return stack.pop();
192 | }
193 |
194 | return string;
195 | }
196 |
197 | function escaped () {
198 | return escapedFrom;
199 | }
200 |
201 | function templateString ( char, i ) {
202 | if ( char === '$' ) return templateStringDollar;
203 | if ( char === '\\' ) return escapedFrom = templateString, escaped;
204 |
205 | if ( char === '`' ) {
206 | const end = i;
207 | const value = str.slice( start, end );
208 |
209 | found.push({ start, end, value, type: 'templateEnd' });
210 |
211 | return base;
212 | }
213 |
214 | return templateString;
215 | }
216 |
217 | function templateStringDollar ( char, i ) {
218 | if ( char === '{' ) {
219 | const end = i - 1;
220 | const value = str.slice( start, end );
221 |
222 | found.push({ start, end, value, type: 'templateChunk' });
223 |
224 | stack.push( templateString );
225 | return base;
226 | }
227 | return templateString( char, i );
228 | }
229 |
230 | // JSX is an XML-like extension to ECMAScript
231 | // https://facebook.github.io/jsx/
232 |
233 | function jsxTagStart ( char ) {
234 | if ( char === '/' ) return jsxTagDepth--, jsxTag;
235 | return jsxTagDepth++, jsxTag;
236 | }
237 |
238 | function jsxTag ( char, i ) {
239 | if ( char === '"' || char === "'" ) return start = i + 1, quote = char, stack.push( jsxTag ), string;
240 | if ( char === '{' ) return stack.push( jsxTag ), base;
241 | if ( char === '>' ) {
242 | if ( jsxTagDepth <= 0 ) return base;
243 | start = i + 1;
244 | return jsx;
245 | }
246 | if ( char === '/' ) return jsxTagSelfClosing;
247 |
248 | return jsxTag;
249 | }
250 |
251 | function jsxTagSelfClosing ( char ) {
252 | if ( char === '>' ) {
253 | jsxTagDepth--;
254 | if ( jsxTagDepth <= 0 ) return base;
255 | return jsx;
256 | }
257 |
258 | return jsxTag;
259 | }
260 |
261 | function jsx ( char, end ) {
262 | if ( char === '{' || char === '<' ) {
263 | const value = str.slice( start, end );
264 | found.push({ start, end, value, type: 'jsx' });
265 |
266 | if ( char === '{' ) {
267 | return stack.push( jsx ), base;
268 | }
269 |
270 | if ( char === '<' ) {
271 | return jsxTagStart;
272 | }
273 | }
274 |
275 | return jsx;
276 | }
277 |
278 | function lineComment ( char, end ) {
279 | if ( char === '\n' ) {
280 | const value = str.slice( start, end );
281 |
282 | found.push({ start, end, value, type: 'line' });
283 |
284 | return base;
285 | }
286 |
287 | return lineComment;
288 | }
289 |
290 | function blockComment ( char ) {
291 | if ( char === '*' ) return blockCommentEnding;
292 | return blockComment;
293 | }
294 |
295 | function blockCommentEnding ( char, i ) {
296 | if ( char === '/' ) {
297 | const end = i - 1;
298 | const value = str.slice( start, end );
299 |
300 | found.push({ start, end, value, type: 'block' });
301 |
302 | return base;
303 | }
304 |
305 | return blockComment( char );
306 | }
307 |
308 | for ( let i = 0; i < str.length; i += 1 ) {
309 | if ( !state ) {
310 | const { line, column } = locate( str, i, { offsetLine: 1 });
311 | const before = str.slice( 0, i );
312 | const beforeLine = /(^|\n).+$/.exec( before )[0];
313 | const after = str.slice( i );
314 | const afterLine = /.+(\n|$)/.exec( after )[0];
315 |
316 | const snippet = `${beforeLine}${afterLine}\n${ Array( beforeLine.length + 1 ).join( ' ' )}^`;
317 |
318 | throw new Error( `Unexpected character (${line}:${column}). If this is valid JavaScript, it's probably a bug in tippex. Please raise an issue at https://github.com/Rich-Harris/tippex/issues – thanks!\n\n${snippet}` );
319 | }
320 |
321 | state = state( str[i], i );
322 | }
323 |
324 | // cheeky hack
325 | if ( state.name === 'lineComment' ) state( '\n', str.length );
326 |
327 | return found;
328 | }
329 |
330 | export function erase ( str ) {
331 | const found = find( str );
332 | return _erase( str, found );
333 | }
334 |
335 | function _erase ( str, found ) {
336 | let erased = '';
337 | let charIndex = 0;
338 |
339 | for ( let i = 0; i < found.length; i += 1 ) {
340 | const chunk = found[i];
341 | erased += str.slice( charIndex, chunk.start );
342 | erased += chunk.value.replace( /[^\n]/g, ' ' );
343 |
344 | charIndex = chunk.end;
345 | }
346 |
347 | erased += str.slice( charIndex );
348 | return erased;
349 | }
350 |
351 | function makeGlobalRegExp ( original ) {
352 | let flags = 'g';
353 |
354 | if ( original.multiline ) flags += 'm';
355 | if ( original.ignoreCase ) flags += 'i';
356 | if ( original.sticky ) flags += 'y';
357 | if ( original.unicode ) flags += 'u';
358 |
359 | return new RegExp( original.source, flags );
360 | }
361 |
362 | export function match ( str, pattern, callback ) {
363 | const g = pattern.global;
364 | if ( !g ) pattern = makeGlobalRegExp( pattern );
365 |
366 | const found = find( str );
367 |
368 | let match;
369 | let chunkIndex = 0;
370 |
371 | while ( match = pattern.exec( str ) ) {
372 | let chunk;
373 |
374 | do {
375 | chunk = found[ chunkIndex ];
376 |
377 | if ( chunk && chunk.end < match.index ) {
378 | chunkIndex += 1;
379 | } else {
380 | break;
381 | }
382 | } while ( chunk );
383 |
384 | if ( !chunk || chunk.start > match.index ) {
385 | const args = [].slice.call( match ).concat( match.index, str );
386 | callback.apply( null, args );
387 | if ( !g ) break;
388 | }
389 | }
390 | }
391 |
392 | export function replace ( str, pattern, callback ) {
393 | let replacements = [];
394 |
395 | match( str, pattern, function ( match ) {
396 | const start = arguments[ arguments.length - 2 ];
397 | const end = start + match.length;
398 | const content = callback.apply( null, arguments );
399 |
400 | replacements.push({ start, end, content });
401 | });
402 |
403 | let replaced = '';
404 | let lastIndex = 0;
405 |
406 | for ( let i = 0; i < replacements.length; i += 1 ) {
407 | const { start, end, content } = replacements[i];
408 | replaced += str.slice( lastIndex, start ) + content;
409 |
410 | lastIndex = end;
411 | }
412 |
413 | replaced += str.slice( lastIndex );
414 |
415 | return replaced;
416 | }
417 |
--------------------------------------------------------------------------------
/bench/fixture/mithril@1.1.0.js:
--------------------------------------------------------------------------------
1 | !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.mithril=e()}}(function(){return function e(t,n,r){function o(l,a){if(!n[l]){if(!t[l]){var u="function"==typeof require&&require;if(!a&&u)return u(l,!0);if(i)return i(l,!0);var f=new Error("Cannot find module '"+l+"'");throw f.code="MODULE_NOT_FOUND",f}var s=n[l]={exports:{}};t[l][0].call(s.exports,function(e){var n=t[l][1][e];return o(n?n:e)},s,s.exports,e,t,n,r)}return n[l].exports}for(var i="function"==typeof require&&require,l=0;l0&&(o.className=r.join(" ")),u[e]={tag:n,attrs:o}}function o(e,t,r){var o,i,l=!1,a=t.className||t["class"];for(var u in e.attrs)f.call(e.attrs,u)&&(t[u]=e.attrs[u]);null!=a&&(null!=t["class"]&&(t["class"]=void 0,t.className=a),null!=e.attrs.className&&(t.className=e.attrs.className+" "+a));for(var u in t)if(f.call(t,u)&&"key"!==u){l=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?i=r[0].children:o=r,n(e.tag,t.key,l?t:void 0,o,i)}function i(e){var t,i=arguments[1],l=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var a=u[e]||r(e);if(i?("object"!=typeof i||null!=i.tag||Array.isArray(i))&&(i={},l=1):i={},arguments.length===l+1)t=arguments[l],Array.isArray(t)||(t=[t]);else for(t=[];l=t?(n=i,e()):null===r&&(r=o(function(){r=null,e(),n=Date.now()},t-(i-n)))}}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,e===!1?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t0||e(t)}}var n=0,r=t(a);try{e(t(l),r)}catch(o){r(o)}}if(!(this instanceof c))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,o=[],i=[],l=t(o,!0),a=t(i,!1),u=r._instance={resolvers:o,rejectors:i},f="function"==typeof setImmediate?setImmediate:setTimeout;n(e)};if(c.prototype.then=function(e,t){function n(e,t,n,i){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(i){o&&o(i)}}),"function"==typeof l.retry&&i===l.state&&l.retry()}var r,o,i=this,l=i._instance,a=new c(function(e,t){r=e,o=t});return n(e,l.resolvers,r,!0),n(t,l.rejectors,o,!1),a},c.prototype["catch"]=function(e){return this.then(null,e)},c.resolve=function(e){return e instanceof c?e:new c(function(t){t(e)})},c.reject=function(e){return new c(function(t,n){n(e)})},c.all=function(e){return new c(function(t,n){var r=e.length,o=0,i=[];if(0===e.length)t([]);else for(var l=0;l=200&&i.status<300||304===i.status||v.test(n.url))t(c(n.type,e));else{var o=new Error(i.responseText);for(var a in e)o[a]=e[a];r(o)}}catch(u){r(u)}},o&&null!=n.data?i.send(n.data):i.send()});return n.background===!0?d:l(d)}function l(n,i){var l=r();n=o(n,i);var f=new t(function(t,r){var o=n.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+p++,i=e.document.createElement("script");e[o]=function(r){i.parentNode.removeChild(i),t(c(n.type,r)),delete e[o]},i.onerror=function(){i.parentNode.removeChild(i),r(new Error("JSONP request failed")),delete e[o]},null==n.data&&(n.data={}),n.url=a(n.url,n.data),n.data[n.callbackKey||"callback"]=o,i.src=u(n.url,n.data),e.document.documentElement.appendChild(i)});return n.background===!0?f:l(f)}function a(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;ru;u++){var f=t[u];null!=f&&o(e,f,i,a,l)}}function o(e,t,n,r,o){var f=t.tag;if("string"!=typeof f)return s(e,t,n,r,o);switch(t.state={},null!=t.attrs&&L(t.attrs,t,n),f){case"#":return i(e,t,o);case"<":return l(e,t,o);case"[":return a(e,t,n,r,o);default:return u(e,t,n,r,o)}}function i(e,t,n){return t.dom=B.createTextNode(t.children),k(e,t.dom,n),t.dom}function l(e,t,n){var r=t.children.match(/^\s*?<(\w+)/im)||[],o={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[r[1]]||"div",i=B.createElement(o);i.innerHTML=t.children,t.dom=i.firstChild,t.domSize=i.childNodes.length;for(var l,a=B.createDocumentFragment();l=i.firstChild;)a.appendChild(l);return k(e,a,n),a}function a(e,t,n,o,i){var l=B.createDocumentFragment();if(null!=t.children){var a=t.children;r(l,a,0,a.length,n,null,o)}return t.dom=l.firstChild,t.domSize=l.childNodes.length,k(e,l,i),l}function u(e,t,o,i,l){var a=t.tag;switch(t.tag){case"svg":i="http://www.w3.org/2000/svg";break;case"math":i="http://www.w3.org/1998/Math/MathML"}var u=t.attrs,f=u&&u.is,s=i?f?B.createElementNS(i,a,{is:f}):B.createElementNS(i,a):f?B.createElement(a,{is:f}):B.createElement(a);if(t.dom=s,null!=u&&N(t,u,i),k(e,s,l),null!=t.attrs&&null!=t.attrs.contenteditable)C(t);else if(null!=t.text&&(""!==t.text?s.textContent=t.text:t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),null!=t.children){var c=t.children;r(s,c,0,c.length,o,null,i),O(t)}return s}function f(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),r=e.state.view,null!=r.$$reentrantLock$$)return J;r.$$reentrantLock$$=!0}else{if(e.state=void 0,r=e.tag,null!=r.$$reentrantLock$$)return J;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&L(e.attrs,e,t),L(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function s(e,t,n,r,i){if(f(t,n),null!=t.instance){var l=o(e,t.instance,n,r,i);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,k(e,l,i),l}return t.domSize=0,J}function c(e,t,n,i,l,a,u){if(t!==n&&(null!=t||null!=n))if(null==t)r(e,n,0,n.length,l,a,void 0);else if(null==n)S(t,0,t.length,n);else{if(t.length===n.length){for(var f=!1,s=0;s=h&&g>=p;){var C=t[h],E=n[p];if(C!==E||i)if(null==C)h++;else if(null==E)p++;else if(C.key===E.key){var z=null!=c&&h>=t.length-c.length||null==c&&i;h++,p++,d(e,C,E,l,x(t,h,a),z,u),i&&C.tag===E.tag&&k(e,b(C),a)}else{var C=t[m];if(C!==E||i)if(null==C)m--;else if(null==E)p++;else{if(C.key!==E.key)break;var z=null!=c&&m>=t.length-c.length||null==c&&i;d(e,C,E,l,x(t,m+1,a),z,u),(i||g>p)&&k(e,b(C),x(t,h,a)),m--,p++}else m--,p++}else h++,p++}for(;m>=h&&g>=p;){var C=t[m],E=n[g];if(C!==E||i)if(null==C)m--;else if(null==E)g--;else if(C.key===E.key){var z=null!=c&&m>=t.length-c.length||null==c&&i;d(e,C,E,l,x(t,m+1,a),z,u),i&&C.tag===E.tag&&k(e,b(C),a),null!=C.dom&&(a=C.dom),m--,g--}else{if(v||(v=w(t,m)),null!=E){var A=v[E.key];if(null!=A){var N=t[A],z=null!=c&&A>=t.length-c.length||null==c&&i;d(e,N,E,l,x(t,m+1,a),i,u),k(e,b(N),a),t[A].skip=!0,null!=N.dom&&(a=N.dom)}else{var j=o(e,E,l,void 0,a);a=j}}g--}else m--,g--;if(p>g)break}r(e,n,p,g+1,l,a,u),S(t,h,m+1,n)}}function d(e,t,n,r,i,l,a){var u=t.tag,f=n.tag;if(u===f){if(n.state=t.state,n._state=t._state,n.events=t.events,!l&&F(n,t))return;if("string"==typeof u)switch(null!=n.attrs&&(l?(n.state={},L(n.attrs,n,r)):D(n.attrs,n,r)),u){case"#":v(t,n);break;case"<":h(e,t,n,i);break;case"[":p(e,t,n,l,r,i,a);break;default:m(t,n,l,r,a)}else g(e,t,n,r,i,l,a)}else E(t,null),o(e,n,r,a,i)}function v(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children),t.dom=e.dom}function h(e,t,n,r){t.children!==n.children?(b(t),l(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}function p(e,t,n,r,o,i,l){c(e,t.children,n.children,r,o,i,l);var a=0,u=n.children;if(n.dom=null,null!=u){for(var f=0;fr;r++){var o=e[r];if(null!=o){var i=o.key;null!=i&&(n[i]=r)}}return n}function b(e){var t=e.domSize;if(null!=t||null==e.dom){var n=B.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function x(e,t,n){for(;to;o++){var i=e[o];null!=i&&(i.skip?i.skip=!1:E(i,r))}}function E(e,t){function n(){if(++o===r&&(A(e),e.dom)){var n=e.domSize||1;if(n>1)for(var i=e.dom;--n;)z(i.nextSibling);z(e.dom),null==t||null!=e.domSize||I(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,o=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){var i=e.attrs.onbeforeremove.call(e.state,e);null!=i&&"function"==typeof i.then&&(r++,i.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var i=e._state.onbeforeremove.call(e.state,e);null!=i&&"function"==typeof i.then&&(r++,i.then(n,n))}n()}function z(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function A(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)A(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n-1&&"xlink"===t.substr(0,l))i.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(l+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)q(e,t,r);else if("style"===t)R(i,n,r);else if(t in i&&!M(t)&&void 0===o&&!P(e)){if("input"===e.tag&&"value"===t&&e.dom.value==r&&e.dom===B.activeElement)return;if("select"===e.tag&&"value"===t&&e.dom.value==r&&e.dom===B.activeElement)return;if("option"===e.tag&&"value"===t&&e.dom.value==r)return;if("input"===e.tag&&"type"===t)return void i.setAttribute(t,r);i[t]=r}else"boolean"==typeof r?r?i.setAttribute(t,""):i.removeAttribute(t):i.setAttribute("className"===t?"class":t,r)}}function O(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&j(e,"value",null,t.value,void 0),"selectedIndex"in t&&j(e,"selectedIndex",null,t.selectedIndex,void 0))}function T(e,t,n,r){if(null!=n)for(var o in n)j(e,o,t&&t[o],n[o],r);if(null!=t)for(var o in t)null!=n&&o in n||("className"===o&&(o="class"),"o"!==o[0]||"n"!==o[1]||_(o)?"key"!==o&&e.dom.removeAttribute(o):q(e,o,void 0))}function $(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===B.activeElement}function _(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function M(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}function P(e){return e.attrs.is||e.tag.indexOf("-")>-1}function I(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}function R(e,t,n){if(t===n&&(e.style.cssText="",t=null),null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}function q(e,t,n){var r=e.dom,o="function"!=typeof H?n:function(e){var t=n.call(r,e);return H.call(r,e),t};if(t in r)r[t]="function"==typeof n?o:null;else{var i=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===o)return;null!=e.events[t]&&r.removeEventListener(i,e.events[t],!1),"function"==typeof n&&(e.events[t]=o,r.addEventListener(i,e.events[t],!1))}}function L(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function D(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}function F(e,t){var n,r;return null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t)),"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t)),void 0===n&&void 0===r||n||r?!1:(e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0)}function U(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],o=B.activeElement;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),c(e,e.vnodes,n.normalizeChildren(t),!1,r,null,void 0),e.vnodes=t;for(var i=0;i-1&&i.splice(t,2)}function r(){for(var e=1;e-1&&u.pop();for(var s=0;s-1?r:o>-1?o:e.length;if(r>-1){var l=o>-1?o:e.length,a=x(e.slice(r+1,l));for(var u in a)t[u]=a[u]}if(o>-1){var f=x(e.slice(o+1));for(var u in f)n[u]=f[u]}return e.slice(0,i)}var o,i="function"==typeof e.history.pushState,l="function"==typeof setImmediate?setImmediate:setTimeout,a={prefix:"#!"};return a.getPath=function(){var e=a.prefix.charAt(0);switch(e){case"#":return t("hash").slice(a.prefix.length);case"?":return t("search").slice(a.prefix.length)+t("hash");default:return t("pathname").slice(a.prefix.length)+t("search")+t("hash")}},a.setPath=function(t,n,o){var l={},u={};if(t=r(t,l,u),null!=n){for(var f in n)l[f]=n[f];t=t.replace(/:([^\/]+)/g,function(e,t){return delete l[t],n[t]})}var s=d(l);s&&(t+="?"+s);var c=d(u);if(c&&(t+="#"+c),i){var v=o?o.state:null,h=o?o.title:null;e.onpopstate(),o&&o.replace?e.history.replaceState(v,h,a.prefix+t):e.history.pushState(v,h,a.prefix+t)}else e.location.href=a.prefix+t},a.defineRoutes=function(t,o,l){function u(){var n=a.getPath(),i={},u=r(n,i,i),f=e.history.state;if(null!=f)for(var s in f)i[s]=f[s];for(var c in t){var d=new RegExp("^"+c.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(u))return void u.replace(d,function(){for(var e=c.match(/:[^\/]+/g)||[],r=[].slice.call(arguments,1,-2),l=0;l-1}function p(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r}function $(n,t){for(var r=n.length;r--&&j(t,n[r],0)>-1;);return r}function D(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;return e}function M(n){return"\\"+te[n]}function F(n,t){return null==n?en:n[t]}function N(n){return Kr.test(n)}function q(n){return Vr.test(n)}function P(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function Z(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function K(n,t){return function(r){return n(t(r))}}function V(n,t){for(var r=-1,e=n.length,u=0,i=[];++r>>1,Fn=[["ary",An],["bind",yn],["bindKey",dn],["curry",mn],["curryRight",wn],["flip",kn],["partial",xn],["partialRight",jn],["rearg",On]],Nn="[object Arguments]",qn="[object Array]",Pn="[object AsyncFunction]",Zn="[object Boolean]",Kn="[object Date]",Vn="[object DOMException]",Gn="[object Error]",Hn="[object Function]",Jn="[object GeneratorFunction]",Yn="[object Map]",Qn="[object Number]",Xn="[object Null]",nt="[object Object]",tt="[object Promise]",rt="[object Proxy]",et="[object RegExp]",ut="[object Set]",it="[object String]",ot="[object Symbol]",ft="[object Undefined]",at="[object WeakMap]",ct="[object WeakSet]",lt="[object ArrayBuffer]",st="[object DataView]",ht="[object Float32Array]",pt="[object Float64Array]",vt="[object Int8Array]",_t="[object Int16Array]",gt="[object Int32Array]",yt="[object Uint8Array]",dt="[object Uint8ClampedArray]",bt="[object Uint16Array]",mt="[object Uint32Array]",wt=/\b__p \+= '';/g,xt=/\b(__p \+=) '' \+/g,jt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,At=/&(?:amp|lt|gt|quot|#39);/g,Ot=/[&<>"']/g,kt=RegExp(At.source),It=RegExp(Ot.source),Rt=/<%-([\s\S]+?)%>/g,Et=/<%([\s\S]+?)%>/g,zt=/<%=([\s\S]+?)%>/g,St=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Lt=/^\w*$/,Wt=/^\./,Ct=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ut=/[\\^$.*+?()[\]{}|]/g,Bt=RegExp(Ut.source),Tt=/^\s+|\s+$/g,$t=/^\s+/,Dt=/\s+$/,Mt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ft=/\{\n\/\* \[wrapped with (.+)\] \*/,Nt=/,? & /,qt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Pt=/\\(\\)?/g,Zt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Kt=/\w*$/,Vt=/^[-+]0x[0-9a-f]+$/i,Gt=/^0b[01]+$/i,Ht=/^\[object .+?Constructor\]$/,Jt=/^0o[0-7]+$/i,Yt=/^(?:0|[1-9]\d*)$/,Qt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Xt=/($^)/,nr=/['\n\r\u2028\u2029\\]/g,tr="\\ud800-\\udfff",rr="\\u0300-\\u036f",er="\\ufe20-\\ufe2f",ur="\\u20d0-\\u20ff",ir=rr+er+ur,or="\\u2700-\\u27bf",fr="a-z\\xdf-\\xf6\\xf8-\\xff",ar="\\xac\\xb1\\xd7\\xf7",cr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",lr="\\u2000-\\u206f",sr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",hr="A-Z\\xc0-\\xd6\\xd8-\\xde",pr="\\ufe0e\\ufe0f",vr=ar+cr+lr+sr,_r="['’]",gr="["+tr+"]",yr="["+vr+"]",dr="["+ir+"]",br="\\d+",mr="["+or+"]",wr="["+fr+"]",xr="[^"+tr+vr+br+or+fr+hr+"]",jr="\\ud83c[\\udffb-\\udfff]",Ar="(?:"+dr+"|"+jr+")",Or="[^"+tr+"]",kr="(?:\\ud83c[\\udde6-\\uddff]){2}",Ir="[\\ud800-\\udbff][\\udc00-\\udfff]",Rr="["+hr+"]",Er="\\u200d",zr="(?:"+wr+"|"+xr+")",Sr="(?:"+Rr+"|"+xr+")",Lr="(?:"+_r+"(?:d|ll|m|re|s|t|ve))?",Wr="(?:"+_r+"(?:D|LL|M|RE|S|T|VE))?",Cr=Ar+"?",Ur="["+pr+"]?",Br="(?:"+Er+"(?:"+[Or,kr,Ir].join("|")+")"+Ur+Cr+")*",Tr="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",$r="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",Dr=Ur+Cr+Br,Mr="(?:"+[mr,kr,Ir].join("|")+")"+Dr,Fr="(?:"+[Or+dr+"?",dr,kr,Ir,gr].join("|")+")",Nr=RegExp(_r,"g"),qr=RegExp(dr,"g"),Pr=RegExp(jr+"(?="+jr+")|"+Fr+Dr,"g"),Zr=RegExp([Rr+"?"+wr+"+"+Lr+"(?="+[yr,Rr,"$"].join("|")+")",Sr+"+"+Wr+"(?="+[yr,Rr+zr,"$"].join("|")+")",Rr+"?"+zr+"+"+Lr,Rr+"+"+Wr,$r,Tr,br,Mr].join("|"),"g"),Kr=RegExp("["+Er+tr+ir+pr+"]"),Vr=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Gr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Hr=-1,Jr={};Jr[ht]=Jr[pt]=Jr[vt]=Jr[_t]=Jr[gt]=Jr[yt]=Jr[dt]=Jr[bt]=Jr[mt]=!0,Jr[Nn]=Jr[qn]=Jr[lt]=Jr[Zn]=Jr[st]=Jr[Kn]=Jr[Gn]=Jr[Hn]=Jr[Yn]=Jr[Qn]=Jr[nt]=Jr[et]=Jr[ut]=Jr[it]=Jr[at]=!1;var Yr={};Yr[Nn]=Yr[qn]=Yr[lt]=Yr[st]=Yr[Zn]=Yr[Kn]=Yr[ht]=Yr[pt]=Yr[vt]=Yr[_t]=Yr[gt]=Yr[Yn]=Yr[Qn]=Yr[nt]=Yr[et]=Yr[ut]=Yr[it]=Yr[ot]=Yr[yt]=Yr[dt]=Yr[bt]=Yr[mt]=!0,Yr[Gn]=Yr[Hn]=Yr[at]=!1;var Qr={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},Xr={"&":"&","<":"<",">":">",'"':""","'":"'"},ne={"&":"&","<":"<",">":">",""":'"',"'":"'"},te={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},re=parseFloat,ee=parseInt,ue="object"==typeof t&&t&&t.Object===Object&&t,ie="object"==typeof self&&self&&self.Object===Object&&self,oe=ue||ie||Function("return this")(),fe="object"==typeof e&&e&&!e.nodeType&&e,ae=fe&&"object"==typeof r&&r&&!r.nodeType&&r,ce=ae&&ae.exports===fe,le=ce&&ue.process,se=function(){try{return le&&le.binding&&le.binding("util")}catch(n){}}(),he=se&&se.isArrayBuffer,pe=se&&se.isDate,ve=se&&se.isMap,_e=se&&se.isRegExp,ge=se&&se.isSet,ye=se&&se.isTypedArray,de=I("length"),be=R(Qr),me=R(Xr),we=R(ne),xe=function Ae(n){function t(n){if(la(n)&&!wh(n)&&!(n instanceof b)){if(n instanceof e)return n;if(wl.call(n,"__wrapped__"))return io(n)}return new e(n)}function r(){}function e(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=en}function b(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=$n,this.__views__=[]}function R(){var n=new b(this.__wrapped__);return n.__actions__=Mu(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Mu(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Mu(this.__views__),n}function J(){if(this.__filtered__){var n=new b(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function nn(){var n=this.__wrapped__.value(),t=this.__dir__,r=wh(n),e=0>t,u=r?n.length:0,i=Ei(0,u,this.__views__),o=i.start,f=i.end,a=f-o,c=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Yl(a,this.__takeCount__);if(!r||!e&&u==a&&p==a)return wu(n,this.__actions__);var v=[];n:for(;a--&&p>h;){c+=t;for(var _=-1,g=n[c];++_r)return!1;var e=t.length-1;return r==e?t.pop():Ul.call(t,r,1),--this.size,!0}function ar(n){var t=this.__data__,r=Lr(t,n);return 0>r?en:t[r][1]}function cr(n){return Lr(this.__data__,n)>-1}function lr(n,t){var r=this.__data__,e=Lr(r,n);return 0>e?(++this.size,r.push([n,t])):r[e][1]=t,this}function sr(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=n?n:r),t!==en&&(n=n>=t?n:t)),n}function Dr(n,t,r,e,u,i){var o,f=t&hn,c=t&pn,l=t&vn;if(r&&(o=u?r(n,e,u,i):r(n)),o!==en)return o;if(!ca(n))return n;var s=wh(n);if(s){if(o=Li(n),!f)return Mu(n,o)}else{var h=Ss(n),p=h==Hn||h==Jn;if(jh(n))return Ru(n,f);if(h==nt||h==Nn||p&&!u){if(o=c||p?{}:Wi(n),!f)return c?qu(n,Ur(o,n)):Nu(n,Cr(o,n))}else{if(!Yr[h])return u?n:{};o=Ci(n,h,Dr,f)}}i||(i=new mr);var v=i.get(n);if(v)return v;i.set(n,o);var _=l?c?wi:mi:c?Ka:Za,g=s?en:_(n);return a(g||n,function(e,u){g&&(u=e,e=n[u]),Sr(o,u,Dr(e,t,r,u,n,i))}),o}function Mr(n){var t=Za(n);return function(r){return Fr(r,n,t)}}function Fr(n,t,r){var e=r.length;if(null==n)return!e;for(n=hl(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===en&&!(u in n)||!i(o))return!1}return!0}function Pr(n,t,r){if("function"!=typeof n)throw new _l(an);return Cs(function(){n.apply(en,r)},t)}function Zr(n,t,r,e){var u=-1,i=h,o=!0,f=n.length,a=[],c=t.length;if(!f)return a;r&&(t=v(t,C(r))),e?(i=p,o=!1):t.length>=on&&(i=B,o=!1,t=new yr(t));n:for(;++ur&&(r=-r>u?0:u+r),e=e===en||e>u?u:Ia(e),0>e&&(e+=u),e=r>e?0:Ra(e);e>r;)n[r++]=t;return n}function Xr(n,t){var r=[];return bs(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function ne(n,t,r,e,u){var i=-1,o=n.length;for(r||(r=Bi),u||(u=[]);++i0&&r(f)?t>1?ne(f,t-1,r,e,u):_(u,f):e||(u[u.length]=f)}return u}function te(n,t){return n&&ws(n,t,Za)}function ue(n,t){return n&&xs(n,t,Za)}function ie(n,t){return s(t,function(t){return oa(n[t])})}function fe(n,t){t=ku(t,n);for(var r=0,e=t.length;null!=n&&e>r;)n=n[ro(t[r++])];return r&&r==e?n:en}function ae(n,t,r){var e=t(n);return wh(n)?e:_(e,r(n))}function le(n){return null==n?n===en?ft:Xn:$l&&$l in hl(n)?Ri(n):Hi(n)}function se(n,t){return n>t}function de(n,t){return null!=n&&wl.call(n,t)}function xe(n,t){return null!=n&&t in hl(n)}function Oe(n,t,r){return n>=Yl(t,r)&&n=120&&l.length>=120)?new yr(o&&l):en}l=n[0];var s=-1,_=f[0];n:for(;++sn}function Pe(n,t){var r=-1,e=Yf(n)?fl(n.length):[];return bs(n,function(n,u,i){e[++r]=t(n,u,i)}),e}function Ze(n){var t=ki(n);return 1==t.length&&t[0][2]?Zi(t[0][0],t[0][1]):function(r){return r===n||Ue(r,n,t)}}function Ke(n,t){return Di(n)&&Pi(t)?Zi(ro(n),t):function(r){var e=Na(r,n);return e===en&&e===t?Pa(r,n):Le(t,e,_n|gn)}}function Ve(n,t,r,e,u){n!==t&&ws(t,function(i,o){if(ca(i))u||(u=new mr),Ge(n,t,o,r,Ve,e,u);else{var f=e?e(n[o],i,o+"",n,t,u):en;f===en&&(f=i),zr(n,o,f)}},Ka)}function Ge(n,t,r,e,u,i,o){var f=n[r],a=t[r],c=o.get(a);if(c)return void zr(n,r,c);var l=i?i(f,a,r+"",n,t,o):en,s=l===en;if(s){var h=wh(a),p=!h&&jh(a),v=!h&&!p&&Rh(a);l=a,h||p||v?wh(f)?l=f:Qf(f)?l=Mu(f):p?(s=!1,l=Ru(a,!0)):v?(s=!1,l=Uu(a,!0)):l=[]:da(a)||mh(a)?(l=f,mh(f)?l=za(f):(!ca(f)||e&&oa(f))&&(l=Wi(a))):s=!1}s&&(o.set(a,l),u(l,a,e,i,o),o["delete"](a)),zr(n,r,l)}function He(n,t){var r=n.length;if(r)return t+=0>t?r:0,Ti(t,r)?n[t]:en}function Je(n,t,r){var e=-1;t=v(t.length?t:[Uc],C(Ai()));var u=Pe(n,function(n){var r=v(t,function(t){return t(n)});return{criteria:r,index:++e,value:n}});return z(u,function(n,t){return Tu(n,t,r)})}function Ye(n,t){return Qe(n,t,function(t,r){return Pa(n,r)})}function Qe(n,t,r){for(var e=-1,u=t.length,i={};++e-1;)f!==n&&Ul.call(f,a,1),Ul.call(n,a,1);return n}function tu(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(r==e||u!==i){var i=u;Ti(u)?Ul.call(n,u,1):du(n,u)}}return n}function ru(n,t){return n+Pl(ns()*(t-n+1))}function eu(n,t,r,e){for(var u=-1,i=Jl(ql((t-n)/(r||1)),0),o=fl(i);i--;)o[e?i:++u]=n,n+=r;return o}function uu(n,t){var r="";if(!n||1>t||t>Un)return r;do t%2&&(r+=n),t=Pl(t/2),t&&(n+=n);while(t);return r}function iu(n,t){return Us(Ji(n,t,Uc),n+"")}function ou(n){return Ir(uc(n))}function fu(n,t){var r=uc(n);return to(r,$r(t,0,r.length))}function au(n,t,r,e){if(!ca(n))return n;t=ku(t,n);for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++ut&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=fl(u);++e=u){for(;u>e;){var i=e+u>>>1,o=n[i];null!==o&&!wa(o)&&(r?t>=o:t>o)?e=i+1:u=i}return u}return pu(n,t,Uc,r)}function pu(n,t,r,e){t=r(t);for(var u=0,i=null==n?0:n.length,o=t!==t,f=null===t,a=wa(t),c=t===en;i>u;){var l=Pl((u+i)/2),s=r(n[l]),h=s!==en,p=null===s,v=s===s,_=wa(s);if(o)var g=e||v;else g=c?v&&(e||h):f?v&&h&&(e||!p):a?v&&h&&!p&&(e||!_):p||_?!1:e?t>=s:t>s;g?u=l+1:i=l}return Yl(i,Dn)}function vu(n,t){for(var r=-1,e=n.length,u=0,i=[];++r=on){var c=t?null:Is(n);if(c)return G(c);o=!1,u=B,a=new yr}else a=t?[]:f;n:for(;++ee)return e?yu(n[0]):[];for(var u=-1,i=fl(e);++ue?t[e]:en;r(o,n[e],f)}return o}function Au(n){return Qf(n)?n:[]}function Ou(n){return"function"==typeof n?n:Uc}function ku(n,t){return wh(n)?n:Di(n,t)?[n]:Bs(La(n))}function Iu(n,t,r){var e=n.length;return r=r===en?e:r,!t&&r>=e?n:lu(n,t,r)}function Ru(n,t){if(t)return n.slice();var r=n.length,e=Sl?Sl(r):new n.constructor(r);return n.copy(e),e}function Eu(n){var t=new n.constructor(n.byteLength);return new zl(t).set(new zl(n)),t}function zu(n,t){var r=t?Eu(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}function Su(n,t,r){var e=t?r(Z(n),hn):Z(n);return g(e,u,new n.constructor)}function Lu(n){var t=new n.constructor(n.source,Kt.exec(n));return t.lastIndex=n.lastIndex,t}function Wu(n,t,r){var e=t?r(G(n),hn):G(n);return g(e,i,new n.constructor)}function Cu(n){return gs?hl(gs.call(n)):{}}function Uu(n,t){var r=t?Eu(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function Bu(n,t){if(n!==t){var r=n!==en,e=null===n,u=n===n,i=wa(n),o=t!==en,f=null===t,a=t===t,c=wa(t);if(!f&&!c&&!i&&n>t||i&&o&&a&&!f&&!c||e&&o&&a||!r&&a||!u)return 1;if(!e&&!i&&!c&&t>n||c&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!a)return-1}return 0}function Tu(n,t,r){for(var e=-1,u=n.criteria,i=t.criteria,o=u.length,f=r.length;++e=f)return a;var c=r[e];return a*("desc"==c?-1:1)}}return n.index-t.index}function $u(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,a=t.length,c=Jl(i-o,0),l=fl(a+c),s=!e;++fu)&&(l[r[u]]=n[u]);for(;c--;)l[f++]=n[u++];return l}function Du(n,t,r,e){for(var u=-1,i=n.length,o=-1,f=r.length,a=-1,c=t.length,l=Jl(i-f,0),s=fl(l+c),h=!e;++uu)&&(s[p+r[o]]=n[u++]);return s}function Mu(n,t){var r=-1,e=n.length;for(t||(t=fl(e));++r1?r[u-1]:en,o=u>2?r[2]:en;for(i=n.length>3&&"function"==typeof i?(u--,i):en,o&&$i(r[0],r[1],o)&&(i=3>u?en:i,u=1),t=hl(t);++ei&&f[0]!==c&&f[i-1]!==c?[]:V(f,c);if(i-=l.length,r>i)return ci(n,t,ti,e.placeholder,en,f,l,en,en,r-i);var s=this&&this!==oe&&this instanceof e?u:n;return o(s,this,f)}var u=Yu(n);return e}function Xu(n){return function(t,r,e){var u=hl(t);if(!Yf(t)){var i=Ai(r,3);t=Za(t),r=function(n){return i(u[n],n,u)}}var o=n(t,r,e);return o>-1?u[i?t[o]:o]:en}}function ni(n){return bi(function(t){var r=t.length,u=r,i=e.prototype.thru;for(n&&t.reverse();u--;){var o=t[u];if("function"!=typeof o)throw new _l(an);if(i&&!f&&"wrapper"==xi(o))var f=new e([],!0)}for(u=f?u:r;++uy){var x=V(d,m);return ci(n,t,ti,l.placeholder,r,d,x,f,a,c-y)}var j=h?r:this,A=p?j[n]:n;return y=d.length,f?d=Qi(d,f):_&&y>1&&d.reverse(),s&&y>a&&(d.length=a),this&&this!==oe&&this instanceof l&&(A=g||Yu(A)),A.apply(j,d)}var s=t&An,h=t&yn,p=t&dn,v=t&(mn|wn),_=t&kn,g=p?en:Yu(n);return l}function ri(n,t){return function(r,e){return Ie(r,n,t(e),{})}}function ei(n,t){return function(r,e){var u;if(r===en&&e===en)return t;if(r!==en&&(u=r),e!==en){if(u===en)return e;"string"==typeof r||"string"==typeof e?(r=gu(r),e=gu(e)):(r=_u(r),e=_u(e)),u=n(r,e)}return u}}function ui(n){return bi(function(t){return t=v(t,C(Ai())),iu(function(r){var e=this;return n(t,function(n){return o(n,e,r)})})})}function ii(n,t){t=t===en?" ":gu(t);var r=t.length;if(2>r)return r?uu(t,n):t;var e=uu(t,ql(n/Q(t)));return N(t)?Iu(X(e),0,n).join(""):e.slice(0,n)}function oi(n,t,r,e){function u(){for(var t=-1,a=arguments.length,c=-1,l=e.length,s=fl(l+a),h=this&&this!==oe&&this instanceof u?f:n;++ct?1:-1:ka(e),eu(t,r,e,n)}}function ai(n){return function(t,r){return("string"!=typeof t||"string"!=typeof r)&&(t=Ea(t),r=Ea(r)),n(t,r)}}function ci(n,t,r,e,u,i,o,f,a,c){var l=t&mn,s=l?o:en,h=l?en:o,p=l?i:en,v=l?en:i;t|=l?xn:jn,t&=~(l?jn:xn),t&bn||(t&=~(yn|dn));var _=[n,t,u,p,s,v,h,f,a,c],g=r.apply(en,_);return Fi(n)&&Ws(g,_),g.placeholder=e,Xi(g,n,t)}function li(n){var t=sl[n];return function(n,r){if(n=Ea(n),r=null==r?0:Yl(Ia(r),292)){var e=(La(n)+"e").split("e"),u=t(e[0]+"e"+(+e[1]+r));return e=(La(u)+"e").split("e"),+(e[0]+"e"+(+e[1]-r))}return t(n)}}function si(n){return function(t){var r=Ss(t);return r==Yn?Z(t):r==ut?H(t):W(t,n(t))}}function hi(n,t,r,e,u,i,o,f){var a=t&dn;if(!a&&"function"!=typeof n)throw new _l(an);var c=e?e.length:0;if(c||(t&=~(xn|jn),e=u=en),o=o===en?o:Jl(Ia(o),0),f=f===en?f:Ia(f),c-=u?u.length:0,t&jn){var l=e,s=u;e=u=en}var h=a?en:Rs(n),p=[n,t,r,e,u,l,s,i,o,f];if(h&&Vi(p,h),n=p[0],t=p[1],r=p[2],e=p[3],u=p[4],f=p[9]=p[9]===en?a?0:n.length:Jl(p[9]-c,0),!f&&t&(mn|wn)&&(t&=~(mn|wn)),t&&t!=yn)v=t==mn||t==wn?Qu(n,t,f):t!=xn&&t!=(yn|xn)||u.length?ti.apply(en,p):oi(n,t,r,e);else var v=Gu(n,t,r);var _=h?js:Ws;return Xi(_(v,p),n,t)}function pi(n,t,r,e){return n===en||Jf(n,dl[r])&&!wl.call(e,r)?t:n}function vi(n,t,r,e,u,i){return ca(n)&&ca(t)&&(i.set(t,n),Ve(n,t,en,vi,i),i["delete"](t)),n}function _i(n){return da(n)?en:n}function gi(n,t,r,e,u,i){var o=r&_n,f=n.length,a=t.length;if(f!=a&&!(o&&a>f))return!1;var c=i.get(n);if(c&&i.get(t))return c==t;var l=-1,s=!0,h=r&gn?new yr:en;for(i.set(n,t),i.set(t,n);++l1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(Mt,"{\n/* [wrapped with "+t+"] */\n")}function Bi(n){return wh(n)||mh(n)||!!(Bl&&n&&n[Bl])}function Ti(n,t){return t=null==t?Un:t,!!t&&("number"==typeof n||Yt.test(n))&&n>-1&&n%1==0&&t>n}function $i(n,t,r){if(!ca(r))return!1;var e=typeof t;return("number"==e?Yf(r)&&Ti(t,r.length):"string"==e&&t in r)?Jf(r[t],n):!1}function Di(n,t){if(wh(n))return!1;var r=typeof n;return"number"==r||"symbol"==r||"boolean"==r||null==n||wa(n)?!0:Lt.test(n)||!St.test(n)||null!=t&&n in hl(t)}function Mi(n){var t=typeof n;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==n:null===n}function Fi(n){var r=xi(n),e=t[r];if("function"!=typeof e||!(r in b.prototype))return!1;if(n===e)return!0;var u=Rs(e);return!!u&&n===u[0]}function Ni(n){return!!jl&&jl in n}function qi(n){var t=n&&n.constructor,r="function"==typeof t&&t.prototype||dl;return n===r}function Pi(n){return n===n&&!ca(n)}function Zi(n,t){return function(r){return null==r?!1:r[n]===t&&(t!==en||n in hl(r))}}function Ki(n){var t=Bf(n,function(n){return r.size===ln&&r.clear(),n}),r=t.cache;return t}function Vi(n,t){var r=n[1],e=t[1],u=r|e,i=(yn|dn|An)>u,o=e==An&&r==mn||e==An&&r==On&&n[7].length<=t[8]||e==(An|On)&&t[7].length<=t[8]&&r==mn;if(!i&&!o)return n;e&yn&&(n[2]=t[2],u|=r&yn?0:bn);var f=t[3];if(f){var a=n[3];n[3]=a?$u(a,f,t[4]):f,n[4]=a?V(n[3],sn):t[4]}return f=t[5],f&&(a=n[5],n[5]=a?Du(a,f,t[6]):f,n[6]=a?V(n[5],sn):t[6]),f=t[7],f&&(n[7]=f),e&An&&(n[8]=null==n[8]?t[8]:Yl(n[8],t[8])),null==n[9]&&(n[9]=t[9]),n[0]=t[0],n[1]=u,n}function Gi(n){var t=[];if(null!=n)for(var r in hl(n))t.push(r);return t}function Hi(n){return Al.call(n)}function Ji(n,t,r){return t=Jl(t===en?n.length-1:t,0),function(){for(var e=arguments,u=-1,i=Jl(e.length-t,0),f=fl(i);++u0){if(++t>=En)return arguments[0]}else t=0;return n.apply(en,arguments)}}function to(n,t){var r=-1,e=n.length,u=e-1;for(t=t===en?e:t;++rt)return[];for(var u=0,i=0,o=fl(ql(e/t));e>u;)o[i++]=lu(n,u,u+=t);return o}function fo(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++tt?0:t,e)):[]}function lo(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===en?1:Ia(t),t=e-t,lu(n,0,0>t?0:t)):[]}function so(n,t){return n&&n.length?mu(n,Ai(t,3),!0,!0):[]}function ho(n,t){return n&&n.length?mu(n,Ai(t,3),!0):[]}function po(n,t,r,e){var u=null==n?0:n.length;return u?(r&&"number"!=typeof r&&$i(n,t,r)&&(r=0,e=u),Qr(n,t,r,e)):[]}function vo(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=null==r?0:Ia(r);return 0>u&&(u=Jl(e+u,0)),x(n,Ai(t,3),u)}function _o(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==en&&(u=Ia(r),u=0>r?Jl(e+u,0):Yl(u,e-1)),x(n,Ai(t,3),u,!0)}function go(n){var t=null==n?0:n.length;return t?ne(n,1):[]}function yo(n){var t=null==n?0:n.length;return t?ne(n,Cn):[]}function bo(n,t){var r=null==n?0:n.length;return r?(t=t===en?1:Ia(t),ne(n,t)):[]}function mo(n){for(var t=-1,r=null==n?0:n.length,e={};++tu&&(u=Jl(e+u,0)),j(n,t,u)}function jo(n){var t=null==n?0:n.length;return t?lu(n,0,-1):[]}function Ao(n,t){return null==n?"":Gl.call(n,t)}function Oo(n){var t=null==n?0:n.length;return t?n[t-1]:en}function ko(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;return r!==en&&(u=Ia(r),u=0>u?Jl(e+u,0):Yl(u,e-1)),t===t?Y(n,t,u):x(n,O,u,!0)}function Io(n,t){return n&&n.length?He(n,Ia(t)):en}function Ro(n,t){return n&&n.length&&t&&t.length?nu(n,t):n}function Eo(n,t,r){return n&&n.length&&t&&t.length?nu(n,t,Ai(r,2)):n}function zo(n,t,r){return n&&n.length&&t&&t.length?nu(n,t,en,r):n}function So(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],i=n.length;for(t=Ai(t,3);++ee&&Jf(n[e],t))return e}return-1}function To(n,t){return hu(n,t,!0)}function $o(n,t,r){return pu(n,t,Ai(r,2),!0)}function Do(n,t){var r=null==n?0:n.length;if(r){var e=hu(n,t,!0)-1;if(Jf(n[e],t))return e}return-1}function Mo(n){return n&&n.length?vu(n):[]}function Fo(n,t){return n&&n.length?vu(n,Ai(t,2)):[]}function No(n){var t=null==n?0:n.length;return t?lu(n,1,t):[]}function qo(n,t,r){return n&&n.length?(t=r||t===en?1:Ia(t),lu(n,0,0>t?0:t)):[]}function Po(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===en?1:Ia(t),t=e-t,lu(n,0>t?0:t,e)):[]}function Zo(n,t){return n&&n.length?mu(n,Ai(t,3),!1,!0):[]}function Ko(n,t){return n&&n.length?mu(n,Ai(t,3)):[]}function Vo(n){return n&&n.length?yu(n):[]}function Go(n,t){return n&&n.length?yu(n,Ai(t,2)):[]}function Ho(n,t){return t="function"==typeof t?t:en,n&&n.length?yu(n,en,t):[]}function Jo(n){if(!n||!n.length)return[];var t=0;return n=s(n,function(n){return Qf(n)?(t=Jl(n.length,t),!0):void 0}),L(t,function(t){return v(n,I(t))})}function Yo(n,t){if(!n||!n.length)return[];var r=Jo(n);return null==t?r:v(r,function(n){return o(t,en,n)})}function Qo(n,t){return ju(n||[],t||[],Sr)}function Xo(n,t){return ju(n||[],t||[],au)}function nf(n){var r=t(n);return r.__chain__=!0,r}function tf(n,t){return t(n),n}function rf(n,t){return t(n)}function ef(){return nf(this)}function uf(){return new e(this.value(),this.__chain__)}function of(){this.__values__===en&&(this.__values__=Oa(this.value()));var n=this.__index__>=this.__values__.length,t=n?en:this.__values__[this.__index__++];return{done:n,value:t}}function ff(){return this}function af(n){for(var t,e=this;e instanceof r;){var u=io(e);u.__index__=0,u.__values__=en,t?i.__wrapped__=u:t=u;var i=u;e=e.__wrapped__}return i.__wrapped__=n,t}function cf(){var n=this.__wrapped__;if(n instanceof b){var t=n;return this.__actions__.length&&(t=new b(this)),t=t.reverse(),t.__actions__.push({func:rf,args:[Lo],thisArg:en}),new e(t,this.__chain__)}return this.thru(Lo)}function lf(){return wu(this.__wrapped__,this.__actions__)}function sf(n,t,r){var e=wh(n)?l:Kr;return r&&$i(n,t,r)&&(t=en),e(n,Ai(t,3))}function hf(n,t){var r=wh(n)?s:Xr;return r(n,Ai(t,3))}function pf(n,t){return ne(bf(n,t),1)}function vf(n,t){return ne(bf(n,t),Cn)}function _f(n,t,r){return r=r===en?1:Ia(r),ne(bf(n,t),r)}function gf(n,t){var r=wh(n)?a:bs;return r(n,Ai(t,3))}function yf(n,t){var r=wh(n)?c:ms;return r(n,Ai(t,3))}function df(n,t,r,e){n=Yf(n)?n:uc(n),r=r&&!e?Ia(r):0;var u=n.length;return 0>r&&(r=Jl(u+r,0)),ma(n)?u>=r&&n.indexOf(t,r)>-1:!!u&&j(n,t,r)>-1}function bf(n,t){var r=wh(n)?v:Pe;return r(n,Ai(t,3))}function mf(n,t,r,e){return null==n?[]:(wh(t)||(t=null==t?[]:[t]),r=e?en:r,wh(r)||(r=null==r?[]:[r]),Je(n,t,r))}function wf(n,t,r){var e=wh(n)?g:E,u=arguments.length<3;return e(n,Ai(t,4),r,u,bs)}function xf(n,t,r){var e=wh(n)?y:E,u=arguments.length<3;return e(n,Ai(t,4),r,u,ms)}function jf(n,t){var r=wh(n)?s:Xr;return r(n,Tf(Ai(t,3)))}function Af(n){var t=wh(n)?Ir:ou;return t(n)}function Of(n,t,r){t=(r?$i(n,t,r):t===en)?1:Ia(t);var e=wh(n)?Rr:fu;return e(n,t)}function kf(n){var t=wh(n)?Er:cu;return t(n)}function If(n){if(null==n)return 0;if(Yf(n))return ma(n)?Q(n):n.length;var t=Ss(n);return t==Yn||t==ut?n.size:Fe(n).length}function Rf(n,t,r){var e=wh(n)?d:su;return r&&$i(n,t,r)&&(t=en),e(n,Ai(t,3))}function Ef(n,t){if("function"!=typeof t)throw new _l(an);return n=Ia(n),function(){return--n<1?t.apply(this,arguments):void 0}}function zf(n,t,r){return t=r?en:t,t=n&&null==t?n.length:t,hi(n,An,en,en,en,en,t)}function Sf(n,t){var r;if("function"!=typeof t)throw new _l(an);return n=Ia(n),function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=en),r}}function Lf(n,t,r){t=r?en:t;var e=hi(n,mn,en,en,en,en,en,t);return e.placeholder=Lf.placeholder,e}function Wf(n,t,r){t=r?en:t;var e=hi(n,wn,en,en,en,en,en,t);return e.placeholder=Wf.placeholder,e}function Cf(n,t,r){function e(t){var r=h,e=p;return h=p=en,d=t,_=n.apply(e,r)}function u(n){return d=n,g=Cs(f,t),b?e(n):_}function i(n){var r=n-y,e=n-d,u=t-r;return m?Yl(u,v-e):u}function o(n){var r=n-y,e=n-d;return y===en||r>=t||0>r||m&&e>=v}function f(){var n=ch();return o(n)?a(n):void(g=Cs(f,i(n)))}function a(n){return g=en,w&&h?e(n):(h=p=en,_)}function c(){g!==en&&ks(g),d=0,h=y=p=g=en}function l(){return g===en?_:a(ch())}function s(){var n=ch(),r=o(n);if(h=arguments,p=this,y=n,r){if(g===en)return u(y);if(m)return g=Cs(f,t),e(y)}return g===en&&(g=Cs(f,t)),_}var h,p,v,_,g,y,d=0,b=!1,m=!1,w=!0;if("function"!=typeof n)throw new _l(an);return t=Ea(t)||0,ca(r)&&(b=!!r.leading,m="maxWait"in r,v=m?Jl(Ea(r.maxWait)||0,t):v,w="trailing"in r?!!r.trailing:w),s.cancel=c,s.flush=l,s}function Uf(n){return hi(n,kn)}function Bf(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new _l(an);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Bf.Cache||sr),r}function Tf(n){if("function"!=typeof n)throw new _l(an);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function $f(n){return Sf(2,n)}function Df(n,t){if("function"!=typeof n)throw new _l(an);return t=t===en?t:Ia(t),iu(n,t)}function Mf(n,t){if("function"!=typeof n)throw new _l(an);return t=null==t?0:Jl(Ia(t),0),iu(function(r){var e=r[t],u=Iu(r,0,t);return e&&_(u,e),o(n,this,u)})}function Ff(n,t,r){var e=!0,u=!0;if("function"!=typeof n)throw new _l(an);return ca(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),Cf(n,t,{leading:e,maxWait:t,trailing:u})}function Nf(n){return zf(n,1)}function qf(n,t){return _h(Ou(t),n)}function Pf(){if(!arguments.length)return[];var n=arguments[0];return wh(n)?n:[n]}function Zf(n){return Dr(n,vn)}function Kf(n,t){return t="function"==typeof t?t:en,Dr(n,vn,t)}function Vf(n){return Dr(n,hn|vn)}function Gf(n,t){return t="function"==typeof t?t:en,Dr(n,hn|vn,t)}function Hf(n,t){return null==t||Fr(n,t,Za(t))}function Jf(n,t){return n===t||n!==n&&t!==t}function Yf(n){return null!=n&&aa(n.length)&&!oa(n)}function Qf(n){return la(n)&&Yf(n)}function Xf(n){return n===!0||n===!1||la(n)&&le(n)==Zn}function na(n){return la(n)&&1===n.nodeType&&!da(n)}function ta(n){if(null==n)return!0;if(Yf(n)&&(wh(n)||"string"==typeof n||"function"==typeof n.splice||jh(n)||Rh(n)||mh(n)))return!n.length;var t=Ss(n);if(t==Yn||t==ut)return!n.size;if(qi(n))return!Fe(n).length;for(var r in n)if(wl.call(n,r))return!1;return!0}function ra(n,t){return Le(n,t)}function ea(n,t,r){r="function"==typeof r?r:en;var e=r?r(n,t):en;return e===en?Le(n,t,en,r):!!e}function ua(n){if(!la(n))return!1;var t=le(n);return t==Gn||t==Vn||"string"==typeof n.message&&"string"==typeof n.name&&!da(n)}function ia(n){return"number"==typeof n&&Vl(n)}function oa(n){if(!ca(n))return!1;var t=le(n);return t==Hn||t==Jn||t==Pn||t==rt}function fa(n){return"number"==typeof n&&n==Ia(n)}function aa(n){return"number"==typeof n&&n>-1&&n%1==0&&Un>=n}function ca(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function la(n){return null!=n&&"object"==typeof n}function sa(n,t){return n===t||Ue(n,t,ki(t))}function ha(n,t,r){return r="function"==typeof r?r:en,Ue(n,t,ki(t),r)}function pa(n){return ya(n)&&n!=+n}function va(n){if(Ls(n))throw new cl(fn);return Be(n)}function _a(n){return null===n}function ga(n){return null==n}function ya(n){return"number"==typeof n||la(n)&&le(n)==Qn}function da(n){if(!la(n)||le(n)!=nt)return!1;var t=Ll(n);if(null===t)return!0;var r=wl.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&ml.call(r)==Ol}function ba(n){return fa(n)&&n>=-Un&&Un>=n}function ma(n){return"string"==typeof n||!wh(n)&&la(n)&&le(n)==it}function wa(n){return"symbol"==typeof n||la(n)&&le(n)==ot}function xa(n){return n===en}function ja(n){return la(n)&&Ss(n)==at}function Aa(n){return la(n)&&le(n)==ct}function Oa(n){if(!n)return[];if(Yf(n))return ma(n)?X(n):Mu(n);if(Tl&&n[Tl])return P(n[Tl]());var t=Ss(n),r=t==Yn?Z:t==ut?G:uc;return r(n)}function ka(n){if(!n)return 0===n?n:0;if(n=Ea(n),n===Cn||n===-Cn){var t=0>n?-1:1;return t*Bn}return n===n?n:0}function Ia(n){var t=ka(n),r=t%1;return t===t?r?t-r:t:0}function Ra(n){return n?$r(Ia(n),0,$n):0}function Ea(n){if("number"==typeof n)return n;if(wa(n))return Tn;if(ca(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=ca(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=n.replace(Tt,"");var r=Gt.test(n);return r||Jt.test(n)?ee(n.slice(2),r?2:8):Vt.test(n)?Tn:+n}function za(n){return Fu(n,Ka(n))}function Sa(n){return n?$r(Ia(n),-Un,Un):0===n?n:0}function La(n){return null==n?"":gu(n)}function Wa(n,t){var r=ds(n);return null==t?r:Cr(r,t)}function Ca(n,t){return w(n,Ai(t,3),te)}function Ua(n,t){return w(n,Ai(t,3),ue)}function Ba(n,t){return null==n?n:ws(n,Ai(t,3),Ka)}function Ta(n,t){return null==n?n:xs(n,Ai(t,3),Ka)}function $a(n,t){return n&&te(n,Ai(t,3))}function Da(n,t){return n&&ue(n,Ai(t,3))}function Ma(n){return null==n?[]:ie(n,Za(n))}function Fa(n){return null==n?[]:ie(n,Ka(n))}function Na(n,t,r){var e=null==n?en:fe(n,t);return e===en?r:e}function qa(n,t){return null!=n&&Si(n,t,de)}function Pa(n,t){return null!=n&&Si(n,t,xe)}function Za(n){return Yf(n)?kr(n):Fe(n)}function Ka(n){return Yf(n)?kr(n,!0):Ne(n)}function Va(n,t){var r={};return t=Ai(t,3),te(n,function(n,e,u){Br(r,t(n,e,u),n)}),r}function Ga(n,t){var r={};return t=Ai(t,3),te(n,function(n,e,u){Br(r,e,t(n,e,u))}),r}function Ha(n,t){return Ja(n,Tf(Ai(t)))}function Ja(n,t){if(null==n)return{};var r=v(wi(n),function(n){return[n]});return t=Ai(t),Qe(n,r,function(n,r){return t(n,r[0])})}function Ya(n,t,r){t=ku(t,n);var e=-1,u=t.length;for(u||(u=1,n=en);++et){var e=n;n=t,t=e}if(r||n%1||t%1){var u=ns();return Yl(n+u*(t-n+re("1e-"+((u+"").length-1))),t)}return ru(n,t)}function cc(n){return np(La(n).toLowerCase())}function lc(n){return n=La(n),n&&n.replace(Qt,be).replace(qr,"")}function sc(n,t,r){n=La(n),t=gu(t);var e=n.length;r=r===en?e:$r(Ia(r),0,e);var u=r;return r-=t.length,r>=0&&n.slice(r,u)==t}function hc(n){return n=La(n),n&&It.test(n)?n.replace(Ot,me):n}function pc(n){return n=La(n),n&&Bt.test(n)?n.replace(Ut,"\\$&"):n}function vc(n,t,r){n=La(n),t=Ia(t);var e=t?Q(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return ii(Pl(u),r)+n+ii(ql(u),r)}function _c(n,t,r){n=La(n),t=Ia(t);var e=t?Q(n):0;return t&&t>e?n+ii(t-e,r):n}function gc(n,t,r){n=La(n),t=Ia(t);var e=t?Q(n):0;return t&&t>e?ii(t-e,r)+n:n}function yc(n,t,r){return r||null==t?t=0:t&&(t=+t),Xl(La(n).replace($t,""),t||0)}function dc(n,t,r){return t=(r?$i(n,t,r):t===en)?1:Ia(t),uu(La(n),t)}function bc(){var n=arguments,t=La(n[0]);return n.length<3?t:t.replace(n[1],n[2])}function mc(n,t,r){return r&&"number"!=typeof r&&$i(n,t,r)&&(t=r=en),(r=r===en?$n:r>>>0)?(n=La(n),n&&("string"==typeof t||null!=t&&!kh(t))&&(t=gu(t),!t&&N(n))?Iu(X(n),0,r):n.split(t,r)):[]}function wc(n,t,r){return n=La(n),r=null==r?0:$r(Ia(r),0,n.length),t=gu(t),n.slice(r,r+t.length)==t}function xc(n,r,e){var u=t.templateSettings;e&&$i(n,r,e)&&(r=en),n=La(n),r=Wh({},r,u,pi);var i,o,f=Wh({},r.imports,u.imports,pi),a=Za(f),c=U(f,a),l=0,s=r.interpolate||Xt,h="__p += '",p=pl((r.escape||Xt).source+"|"+s.source+"|"+(s===zt?Zt:Xt).source+"|"+(r.evaluate||Xt).source+"|$","g"),v="//# sourceURL="+("sourceURL"in r?r.sourceURL:"lodash.templateSources["+ ++Hr+"]")+"\n";n.replace(p,function(t,r,e,u,f,a){return e||(e=u),h+=n.slice(l,a).replace(nr,M),r&&(i=!0,h+="' +\n__e("+r+") +\n'"),f&&(o=!0,h+="';\n"+f+";\n__p += '"),e&&(h+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),l=a+t.length,t}),h+="';\n";var _=r.variable;_||(h="with (obj) {\n"+h+"\n}\n"),h=(o?h.replace(wt,""):h).replace(xt,"$1").replace(jt,"$1;"),h="function("+(_||"obj")+") {\n"+(_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=tp(function(){return ll(a,v+"return "+h).apply(en,c)});if(g.source=h,ua(g))throw g;return g}function jc(n){return La(n).toLowerCase()}function Ac(n){return La(n).toUpperCase()}function Oc(n,t,r){if(n=La(n),n&&(r||t===en))return n.replace(Tt,"");if(!n||!(t=gu(t)))return n;var e=X(n),u=X(t),i=T(e,u),o=$(e,u)+1;return Iu(e,i,o).join("")}function kc(n,t,r){if(n=La(n),n&&(r||t===en))return n.replace(Dt,"");if(!n||!(t=gu(t)))return n;var e=X(n),u=$(e,X(t))+1;return Iu(e,0,u).join("")}function Ic(n,t,r){if(n=La(n),n&&(r||t===en))return n.replace($t,"");if(!n||!(t=gu(t)))return n;var e=X(n),u=T(e,X(t));return Iu(e,u).join("")}function Rc(n,t){var r=In,e=Rn;if(ca(t)){var u="separator"in t?t.separator:u;r="length"in t?Ia(t.length):r,e="omission"in t?gu(t.omission):e}n=La(n);var i=n.length;if(N(n)){var o=X(n);i=o.length}if(r>=i)return n;var f=r-Q(e);if(1>f)return e;var a=o?Iu(o,0,f).join(""):n.slice(0,f);if(u===en)return a+e;if(o&&(f+=a.length-f),kh(u)){if(n.slice(f).search(u)){var c,l=a;for(u.global||(u=pl(u.source,La(Kt.exec(u))+"g")),u.lastIndex=0;c=u.exec(l);)var s=c.index;a=a.slice(0,s===en?f:s)}}else if(n.indexOf(gu(u),f)!=f){var h=a.lastIndexOf(u);h>-1&&(a=a.slice(0,h))}return a+e}function Ec(n){return n=La(n),n&&kt.test(n)?n.replace(At,we):n}function zc(n,t,r){return n=La(n),t=r?en:t,t===en?q(n)?rn(n):m(n):n.match(t)||[]}function Sc(n){var t=null==n?0:n.length,r=Ai();return n=t?v(n,function(n){if("function"!=typeof n[1])throw new _l(an);return[r(n[0]),n[1]]}):[],iu(function(r){for(var e=-1;++en||n>Un)return[];var r=$n,e=Yl(n,$n);t=Ai(t),n-=$n;for(var u=L(e,t);++r1?n[t-1]:en;return r="function"==typeof r?(n.pop(),r):en,Yo(n,r)}),nh=bi(function(n){var t=n.length,r=t?n[0]:0,u=this.__wrapped__,i=function(t){return Tr(t,n)};return!(t>1||this.__actions__.length)&&u instanceof b&&Ti(r)?(u=u.slice(r,+r+(t?1:0)),u.__actions__.push({func:rf,args:[i],thisArg:en}),new e(u,this.__chain__).thru(function(n){return t&&!n.length&&n.push(en),n})):this.thru(i)}),th=Pu(function(n,t,r){wl.call(n,r)?++n[r]:Br(n,r,1)}),rh=Xu(vo),eh=Xu(_o),uh=Pu(function(n,t,r){wl.call(n,r)?n[r].push(t):Br(n,r,[t])}),ih=iu(function(n,t,r){var e=-1,u="function"==typeof t,i=Yf(n)?fl(n.length):[];return bs(n,function(n){i[++e]=u?o(t,n,r):Re(n,t,r)}),i}),oh=Pu(function(n,t,r){Br(n,r,t)}),fh=Pu(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),ah=iu(function(n,t){if(null==n)return[];var r=t.length;return r>1&&$i(n,t[0],t[1])?t=[]:r>2&&$i(t[0],t[1],t[2])&&(t=[t[0]]),Je(n,ne(t,1),[])}),ch=Fl||function(){return oe.Date.now()},lh=iu(function(n,t,r){var e=yn;if(r.length){var u=V(r,ji(lh));e|=xn}return hi(n,e,t,r,u)}),sh=iu(function(n,t,r){var e=yn|dn;if(r.length){var u=V(r,ji(sh));e|=xn}return hi(t,e,n,r,u)}),hh=iu(function(n,t){return Pr(n,1,t)}),ph=iu(function(n,t,r){return Pr(n,Ea(t)||0,r)});Bf.Cache=sr;var vh=Os(function(n,t){t=1==t.length&&wh(t[0])?v(t[0],C(Ai())):v(ne(t,1),C(Ai()));var r=t.length;return iu(function(e){for(var u=-1,i=Yl(e.length,r);++u=t}),mh=Ee(function(){return arguments}())?Ee:function(n){return la(n)&&wl.call(n,"callee")&&!Cl.call(n,"callee")},wh=fl.isArray,xh=he?C(he):ze,jh=Kl||Kc,Ah=pe?C(pe):Se,Oh=ve?C(ve):Ce,kh=_e?C(_e):Te,Ih=ge?C(ge):$e,Rh=ye?C(ye):De,Eh=ai(qe),zh=ai(function(n,t){return t>=n}),Sh=Zu(function(n,t){if(qi(t)||Yf(t))return void Fu(t,Za(t),n);for(var r in t)wl.call(t,r)&&Sr(n,r,t[r])}),Lh=Zu(function(n,t){Fu(t,Ka(t),n)}),Wh=Zu(function(n,t,r,e){Fu(t,Ka(t),n,e)}),Ch=Zu(function(n,t,r,e){Fu(t,Za(t),n,e)}),Uh=bi(Tr),Bh=iu(function(n){return n.push(en,pi),o(Wh,en,n)}),Th=iu(function(n){return n.push(en,vi),o(Nh,en,n)}),$h=ri(function(n,t,r){n[t]=r},Wc(Uc)),Dh=ri(function(n,t,r){wl.call(n,t)?n[t].push(r):n[t]=[r]},Ai),Mh=iu(Re),Fh=Zu(function(n,t,r){Ve(n,t,r)}),Nh=Zu(function(n,t,r,e){Ve(n,t,r,e)}),qh=bi(function(n,t){var r={};if(null==n)return r;var e=!1;t=v(t,function(t){return t=ku(t,n),e||(e=t.length>1),t}),Fu(n,wi(n),r),e&&(r=Dr(r,hn|pn|vn,_i));for(var u=t.length;u--;)du(r,t[u]);return r}),Ph=bi(function(n,t){return null==n?{}:Ye(n,t)}),Zh=si(Za),Kh=si(Ka),Vh=Ju(function(n,t,r){return t=t.toLowerCase(),n+(r?cc(t):t)}),Gh=Ju(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Hh=Ju(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Jh=Hu("toLowerCase"),Yh=Ju(function(n,t,r){return n+(r?"_":"")+t.toLowerCase();
4 |
5 | }),Qh=Ju(function(n,t,r){return n+(r?" ":"")+np(t)}),Xh=Ju(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),np=Hu("toUpperCase"),tp=iu(function(n,t){try{return o(n,en,t)}catch(r){return ua(r)?r:new cl(r)}}),rp=bi(function(n,t){return a(t,function(t){t=ro(t),Br(n,t,lh(n[t],n))}),n}),ep=ni(),up=ni(!0),ip=iu(function(n,t){return function(r){return Re(r,n,t)}}),op=iu(function(n,t){return function(r){return Re(n,r,t)}}),fp=ui(v),ap=ui(l),cp=ui(d),lp=fi(),sp=fi(!0),hp=ei(function(n,t){return n+t},0),pp=li("ceil"),vp=ei(function(n,t){return n/t},1),_p=li("floor"),gp=ei(function(n,t){return n*t},1),yp=li("round"),dp=ei(function(n,t){return n-t},0);return t.after=Ef,t.ary=zf,t.assign=Sh,t.assignIn=Lh,t.assignInWith=Wh,t.assignWith=Ch,t.at=Uh,t.before=Sf,t.bind=lh,t.bindAll=rp,t.bindKey=sh,t.castArray=Pf,t.chain=nf,t.chunk=oo,t.compact=fo,t.concat=ao,t.cond=Sc,t.conforms=Lc,t.constant=Wc,t.countBy=th,t.create=Wa,t.curry=Lf,t.curryRight=Wf,t.debounce=Cf,t.defaults=Bh,t.defaultsDeep=Th,t.defer=hh,t.delay=ph,t.difference=Ts,t.differenceBy=$s,t.differenceWith=Ds,t.drop=co,t.dropRight=lo,t.dropRightWhile=so,t.dropWhile=ho,t.fill=po,t.filter=hf,t.flatMap=pf,t.flatMapDeep=vf,t.flatMapDepth=_f,t.flatten=go,t.flattenDeep=yo,t.flattenDepth=bo,t.flip=Uf,t.flow=ep,t.flowRight=up,t.fromPairs=mo,t.functions=Ma,t.functionsIn=Fa,t.groupBy=uh,t.initial=jo,t.intersection=Ms,t.intersectionBy=Fs,t.intersectionWith=Ns,t.invert=$h,t.invertBy=Dh,t.invokeMap=ih,t.iteratee=Bc,t.keyBy=oh,t.keys=Za,t.keysIn=Ka,t.map=bf,t.mapKeys=Va,t.mapValues=Ga,t.matches=Tc,t.matchesProperty=$c,t.memoize=Bf,t.merge=Fh,t.mergeWith=Nh,t.method=ip,t.methodOf=op,t.mixin=Dc,t.negate=Tf,t.nthArg=Nc,t.omit=qh,t.omitBy=Ha,t.once=$f,t.orderBy=mf,t.over=fp,t.overArgs=vh,t.overEvery=ap,t.overSome=cp,t.partial=_h,t.partialRight=gh,t.partition=fh,t.pick=Ph,t.pickBy=Ja,t.property=qc,t.propertyOf=Pc,t.pull=qs,t.pullAll=Ro,t.pullAllBy=Eo,t.pullAllWith=zo,t.pullAt=Ps,t.range=lp,t.rangeRight=sp,t.rearg=yh,t.reject=jf,t.remove=So,t.rest=Df,t.reverse=Lo,t.sampleSize=Of,t.set=Qa,t.setWith=Xa,t.shuffle=kf,t.slice=Wo,t.sortBy=ah,t.sortedUniq=Mo,t.sortedUniqBy=Fo,t.split=mc,t.spread=Mf,t.tail=No,t.take=qo,t.takeRight=Po,t.takeRightWhile=Zo,t.takeWhile=Ko,t.tap=tf,t.throttle=Ff,t.thru=rf,t.toArray=Oa,t.toPairs=Zh,t.toPairsIn=Kh,t.toPath=Yc,t.toPlainObject=za,t.transform=nc,t.unary=Nf,t.union=Zs,t.unionBy=Ks,t.unionWith=Vs,t.uniq=Vo,t.uniqBy=Go,t.uniqWith=Ho,t.unset=tc,t.unzip=Jo,t.unzipWith=Yo,t.update=rc,t.updateWith=ec,t.values=uc,t.valuesIn=ic,t.without=Gs,t.words=zc,t.wrap=qf,t.xor=Hs,t.xorBy=Js,t.xorWith=Ys,t.zip=Qs,t.zipObject=Qo,t.zipObjectDeep=Xo,t.zipWith=Xs,t.entries=Zh,t.entriesIn=Kh,t.extend=Lh,t.extendWith=Wh,Dc(t,t),t.add=hp,t.attempt=tp,t.camelCase=Vh,t.capitalize=cc,t.ceil=pp,t.clamp=oc,t.clone=Zf,t.cloneDeep=Vf,t.cloneDeepWith=Gf,t.cloneWith=Kf,t.conformsTo=Hf,t.deburr=lc,t.defaultTo=Cc,t.divide=vp,t.endsWith=sc,t.eq=Jf,t.escape=hc,t.escapeRegExp=pc,t.every=sf,t.find=rh,t.findIndex=vo,t.findKey=Ca,t.findLast=eh,t.findLastIndex=_o,t.findLastKey=Ua,t.floor=_p,t.forEach=gf,t.forEachRight=yf,t.forIn=Ba,t.forInRight=Ta,t.forOwn=$a,t.forOwnRight=Da,t.get=Na,t.gt=dh,t.gte=bh,t.has=qa,t.hasIn=Pa,t.head=wo,t.identity=Uc,t.includes=df,t.indexOf=xo,t.inRange=fc,t.invoke=Mh,t.isArguments=mh,t.isArray=wh,t.isArrayBuffer=xh,t.isArrayLike=Yf,t.isArrayLikeObject=Qf,t.isBoolean=Xf,t.isBuffer=jh,t.isDate=Ah,t.isElement=na,t.isEmpty=ta,t.isEqual=ra,t.isEqualWith=ea,t.isError=ua,t.isFinite=ia,t.isFunction=oa,t.isInteger=fa,t.isLength=aa,t.isMap=Oh,t.isMatch=sa,t.isMatchWith=ha,t.isNaN=pa,t.isNative=va,t.isNil=ga,t.isNull=_a,t.isNumber=ya,t.isObject=ca,t.isObjectLike=la,t.isPlainObject=da,t.isRegExp=kh,t.isSafeInteger=ba,t.isSet=Ih,t.isString=ma,t.isSymbol=wa,t.isTypedArray=Rh,t.isUndefined=xa,t.isWeakMap=ja,t.isWeakSet=Aa,t.join=Ao,t.kebabCase=Gh,t.last=Oo,t.lastIndexOf=ko,t.lowerCase=Hh,t.lowerFirst=Jh,t.lt=Eh,t.lte=zh,t.max=Xc,t.maxBy=nl,t.mean=tl,t.meanBy=rl,t.min=el,t.minBy=ul,t.stubArray=Zc,t.stubFalse=Kc,t.stubObject=Vc,t.stubString=Gc,t.stubTrue=Hc,t.multiply=gp,t.nth=Io,t.noConflict=Mc,t.noop=Fc,t.now=ch,t.pad=vc,t.padEnd=_c,t.padStart=gc,t.parseInt=yc,t.random=ac,t.reduce=wf,t.reduceRight=xf,t.repeat=dc,t.replace=bc,t.result=Ya,t.round=yp,t.runInContext=Ae,t.sample=Af,t.size=If,t.snakeCase=Yh,t.some=Rf,t.sortedIndex=Co,t.sortedIndexBy=Uo,t.sortedIndexOf=Bo,t.sortedLastIndex=To,t.sortedLastIndexBy=$o,t.sortedLastIndexOf=Do,t.startCase=Qh,t.startsWith=wc,t.subtract=dp,t.sum=il,t.sumBy=ol,t.template=xc,t.times=Jc,t.toFinite=ka,t.toInteger=Ia,t.toLength=Ra,t.toLower=jc,t.toNumber=Ea,t.toSafeInteger=Sa,t.toString=La,t.toUpper=Ac,t.trim=Oc,t.trimEnd=kc,t.trimStart=Ic,t.truncate=Rc,t.unescape=Ec,t.uniqueId=Qc,t.upperCase=Xh,t.upperFirst=np,t.each=gf,t.eachRight=yf,t.first=wo,Dc(t,function(){var n={};return te(t,function(r,e){wl.call(t.prototype,e)||(n[e]=r)}),n}(),{chain:!1}),t.VERSION=un,a(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){t[n].placeholder=t}),a(["drop","take"],function(n,t){b.prototype[n]=function(r){r=r===en?1:Jl(Ia(r),0);var e=this.__filtered__&&!t?new b(this):this.clone();return e.__filtered__?e.__takeCount__=Yl(r,e.__takeCount__):e.__views__.push({size:Yl(r,$n),type:n+(e.__dir__<0?"Right":"")}),e},b.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),a(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==Sn||r==Wn;b.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:Ai(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),a(["head","last"],function(n,t){var r="take"+(t?"Right":"");b.prototype[n]=function(){return this[r](1).value()[0]}}),a(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[r](1)}}),b.prototype.compact=function(){return this.filter(Uc)},b.prototype.find=function(n){return this.filter(n).head()},b.prototype.findLast=function(n){return this.reverse().find(n)},b.prototype.invokeMap=iu(function(n,t){return"function"==typeof n?new b(this):this.map(function(r){return Re(r,n,t)})}),b.prototype.reject=function(n){return this.filter(Tf(Ai(n)))},b.prototype.slice=function(n,t){n=Ia(n);var r=this;return r.__filtered__&&(n>0||0>t)?new b(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==en&&(t=Ia(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take($n)},te(b.prototype,function(n,r){var u=/^(?:filter|find|map|reject)|While$/.test(r),i=/^(?:head|last)$/.test(r),o=t[i?"take"+("last"==r?"Right":""):r],f=i||/^find/.test(r);o&&(t.prototype[r]=function(){var r=this.__wrapped__,a=i?[1]:arguments,c=r instanceof b,l=a[0],s=c||wh(r),h=function(n){var r=o.apply(t,_([n],a));return i&&p?r[0]:r};s&&u&&"function"==typeof l&&1!=l.length&&(c=s=!1);var p=this.__chain__,v=!!this.__actions__.length,g=f&&!p,y=c&&!v;if(!f&&s){r=y?r:new b(this);var d=n.apply(r,a);return d.__actions__.push({func:rf,args:[h],thisArg:en}),new e(d,p)}return g&&y?n.apply(this,a):(d=this.thru(h),g?i?d.value()[0]:d.value():d)})}),a(["pop","push","shift","sort","splice","unshift"],function(n){var r=gl[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",u=/^(?:pop|shift)$/.test(n);t.prototype[n]=function(){var n=arguments;if(u&&!this.__chain__){var t=this.value();return r.apply(wh(t)?t:[],n)}return this[e](function(t){return r.apply(wh(t)?t:[],n)})}}),te(b.prototype,function(n,r){var e=t[r];if(e){var u=e.name+"",i=cs[u]||(cs[u]=[]);i.push({name:r,func:e})}}),cs[ti(en,dn).name]=[{name:"wrapper",func:en}],b.prototype.clone=R,b.prototype.reverse=J,b.prototype.value=nn,t.prototype.at=nh,t.prototype.chain=ef,t.prototype.commit=uf,t.prototype.next=of,t.prototype.plant=af,t.prototype.reverse=cf,t.prototype.toJSON=t.prototype.valueOf=t.prototype.value=lf,t.prototype.first=t.prototype.head,Tl&&(t.prototype[Tl]=ff),t},je=xe();"function"==typeof n&&"object"==typeof n.amd&&n.amd?(oe._=je,n(function(){return je})):ae?((ae.exports=je)._=je,fe._=je):oe._=je}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)});
--------------------------------------------------------------------------------
/bench/fixture/jquery@3.2.1.js:
--------------------------------------------------------------------------------
1 | !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.jquery=e()}}(function(){var e;return function t(e,n,r){function i(a,s){if(!n[a]){if(!e[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a0&&t-1 in e}function o(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function a(e,t,n){return me.isFunction(t)?me.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?me.grep(e,function(e){return e===t!==n}):"string"!=typeof t?me.grep(e,function(e){return ue.call(t,e)>-1!==n}):Se.test(t)?me.filter(t,e,n):(t=me.filter(t,e),me.grep(e,function(e){return ue.call(t,e)>-1!==n&&1===e.nodeType}))}function s(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function u(e){var t={};return me.each(e.match(Le)||[],function(e,n){t[n]=!0}),t}function l(e){return e}function c(e){throw e}function f(e,t,n,r){var i;try{e&&me.isFunction(i=e.promise)?i.call(e).done(t).fail(n):e&&me.isFunction(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}function p(){re.removeEventListener("DOMContentLoaded",p),t.removeEventListener("load",p),me.ready()}function d(){this.expando=me.expando+d.uid++}function h(e){return"true"===e?!0:"false"===e?!1:"null"===e?null:e===+e+""?+e:Ie.test(e)?JSON.parse(e):e}function g(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(We,"-$&").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n=h(n)}catch(i){}Me.set(e,t,n)}else n=void 0;return n}function m(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return me.css(e,t,"")},u=s(),l=n&&n[3]||(me.cssNumber[t]?"":"px"),c=(me.cssNumber[t]||"px"!==l&&+u)&&Be.exec(me.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,me.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function v(e){var t,n=e.ownerDocument,r=e.nodeName,i=Ue[r];return i?i:(t=n.body.appendChild(n.createElement(r)),i=me.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),Ue[r]=i,i)}function y(e,t){for(var n,r,i=[],o=0,a=e.length;a>o;o++)r=e[o],r.style&&(n=r.style.display,t?("none"===n&&(i[o]=Re.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ze(r)&&(i[o]=v(r))):"none"!==n&&(i[o]="none",Re.set(r,"display",n)));for(o=0;a>o;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}function x(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&o(e,t)?me.merge([e],n):n}function b(e,t){for(var n=0,r=e.length;r>n;n++)Re.set(e[n],"globalEval",!t||Re.get(t[n],"globalEval"))}function w(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;h>d;d++)if(o=e[d],o||0===o)if("object"===me.type(o))me.merge(p,o.nodeType?[o]:o);else if(Je.test(o)){for(a=a||f.appendChild(t.createElement("div")),s=(Ge.exec(o)||["",""])[1].toLowerCase(),u=Qe[s]||Qe._default,a.innerHTML=u[1]+me.htmlPrefilter(o)+u[2],c=u[0];c--;)a=a.lastChild;me.merge(p,a.childNodes),a=f.firstChild,a.textContent=""}else p.push(t.createTextNode(o));for(f.textContent="",d=0;o=p[d++];)if(r&&me.inArray(o,r)>-1)i&&i.push(o);else if(l=me.contains(o.ownerDocument,o),a=x(f.appendChild(o),"script"),l&&b(a),n)for(c=0;o=a[c++];)Ye.test(o.type||"")&&n.push(o);return f}function T(){return!0}function C(){return!1}function E(){try{return re.activeElement}catch(e){}}function k(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)k(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=C;else if(!i)return e;return 1===o&&(a=i,i=function(e){return me().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=me.guid++)),e.each(function(){me.event.add(this,t,i,r,n)})}function S(e,t){return o(e,"table")&&o(11!==t.nodeType?t:t.firstChild,"tr")?me(">tbody",e)[0]||e:e}function N(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function D(e){var t=ot.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function j(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Re.hasData(e)&&(o=Re.access(e),a=Re.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)me.event.add(t,i,l[i][n])}Me.hasData(e)&&(s=Me.access(e),u=me.extend({},s),Me.set(t,u))}}function A(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ve.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function q(e,t,n,i){t=ae.apply([],t);var o,a,s,u,l,c,f=0,p=e.length,d=p-1,h=t[0],g=me.isFunction(h);if(g||p>1&&"string"==typeof h&&!he.checkClone&&it.test(h))return e.each(function(r){var o=e.eq(r);g&&(t[0]=h.call(this,r,o.html())),q(o,t,n,i)});if(p&&(o=w(t,e[0].ownerDocument,!1,e,i),a=o.firstChild,1===o.childNodes.length&&(o=a),a||i)){for(s=me.map(x(o,"script"),N),u=s.length;p>f;f++)l=o,f!==d&&(l=me.clone(l,!0,!0),u&&me.merge(s,x(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,me.map(s,D),f=0;u>f;f++)l=s[f],Ye.test(l.type||"")&&!Re.access(l,"globalEval")&&me.contains(c,l)&&(l.src?me._evalUrl&&me._evalUrl(l.src):r(l.textContent.replace(at,""),c))}return e}function L(e,t,n){for(var r,i=t?me.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||me.cleanData(x(r)),r.parentNode&&(n&&me.contains(r.ownerDocument,r)&&b(x(r,"script")),r.parentNode.removeChild(r));return e}function H(e,t,n){var r,i,o,a,s=e.style;return n=n||lt(e),n&&(a=n.getPropertyValue(t)||n[t],""!==a||me.contains(e.ownerDocument,e)||(a=me.style(e,t)),!he.pixelMarginRight()&&ut.test(a)&&st.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function F(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function O(e){if(e in gt)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=ht.length;n--;)if(e=ht[n]+t,e in gt)return e}function P(e){var t=me.cssProps[e];return t||(t=me.cssProps[e]=O(e)||e),t}function R(e,t,n){var r=Be.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function M(e,t,n,r,i){var o,a=0;for(o=n===(r?"border":"content")?4:"width"===t?1:0;4>o;o+=2)"margin"===n&&(a+=me.css(e,n+_e[o],!0,i)),r?("content"===n&&(a-=me.css(e,"padding"+_e[o],!0,i)),"margin"!==n&&(a-=me.css(e,"border"+_e[o]+"Width",!0,i))):(a+=me.css(e,"padding"+_e[o],!0,i),"padding"!==n&&(a+=me.css(e,"border"+_e[o]+"Width",!0,i)));return a}function I(e,t,n){var r,i=lt(e),o=H(e,t,i),a="border-box"===me.css(e,"boxSizing",!1,i);return ut.test(o)?o:(r=a&&(he.boxSizingReliable()||o===e.style[t]),"auto"===o&&(o=e["offset"+t[0].toUpperCase()+t.slice(1)]),o=parseFloat(o)||0,o+M(e,t,n||(a?"border":"content"),r,i)+"px")}function W(e,t,n,r,i){return new W.prototype.init(e,t,n,r,i)}function $(){vt&&(re.hidden===!1&&t.requestAnimationFrame?t.requestAnimationFrame($):t.setTimeout($,me.fx.interval),me.fx.tick())}function B(){return t.setTimeout(function(){mt=void 0}),mt=me.now()}function _(e,t){var n,r=0,i={height:e};for(t=t?1:0;4>r;r+=2-t)n=_e[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function z(e,t,n){for(var r,i=(V.tweeners[t]||[]).concat(V.tweeners["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function X(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ze(e),m=Re.get(e,"fxshow");n.queue||(a=me._queueHooks(e,"fx"),null==a.unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,me.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],yt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;g=!0}d[r]=m&&m[r]||me.style(e,r)}if(u=!me.isEmptyObject(t),u||!me.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],l=m&&m.display,null==l&&(l=Re.get(e,"display")),c=me.css(e,"display"),"none"===c&&(l?c=l:(y([e],!0),l=e.style.display||l,c=me.css(e,"display"),y([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===me.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(m?"hidden"in m&&(g=m.hidden):m=Re.access(e,"fxshow",{display:l}),o&&(m.hidden=!g),g&&y([e],!0),p.done(function(){g||y([e]),Re.remove(e,"fxshow");for(r in d)me.style(e,r,d[r])})),u=z(g?m[r]:0,r,p),r in m||(m[r]=u.start,g&&(u.end=u.start,u.start=0))}}function U(e,t){var n,r,i,o,a;for(n in e)if(r=me.camelCase(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=me.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function V(e,t,n){var r,i,o=0,a=V.prefilters.length,s=me.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=mt||B(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(u||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:me.extend({},t),opts:me.extend(!0,{specialEasing:{},easing:me.easing._default},n),originalProperties:t,originalOptions:n,startTime:mt||B(),duration:n.duration,tweens:[],createTween:function(t,n){var r=me.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(U(c,l.opts.specialEasing);a>o;o++)if(r=V.prefilters[o].call(l,e,c,l.opts))return me.isFunction(r.stop)&&(me._queueHooks(l.elem,l.opts.queue).stop=me.proxy(r.stop,r)),r;return me.map(c,z,l),me.isFunction(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),me.fx.timer(me.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}function G(e){var t=e.match(Le)||[];return t.join(" ")}function Y(e){return e.getAttribute&&e.getAttribute("class")||""}function Q(e,t,n,r){var i;if(Array.isArray(t))me.each(t,function(t,i){n||jt.test(e)?r(e,i):Q(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==me.type(t))r(e,t);else for(i in t)Q(e+"["+i+"]",t[i],n,r)}function J(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(Le)||[];if(me.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function K(e,t,n,r){function i(s){var u;return o[s]=!0,me.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||a||o[l]?a?!(u=l):void 0:(t.dataTypes.unshift(l),i(l),!1)}),u}var o={},a=e===$t;return i(t.dataTypes[0])||!o["*"]&&i("*")}function Z(e,t){var n,r,i=me.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&me.extend(!0,e,r),e}function ee(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}return o?(o!==u[0]&&u.unshift(o),n[o]):void 0}function te(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(a=l[u+" "+o]||l["* "+o],!a)for(i in l)if(s=i.split(" "),s[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){a===!0?a=l[i]:l[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}var ne=[],re=t.document,ie=Object.getPrototypeOf,oe=ne.slice,ae=ne.concat,se=ne.push,ue=ne.indexOf,le={},ce=le.toString,fe=le.hasOwnProperty,pe=fe.toString,de=pe.call(Object),he={},ge="3.2.1",me=function(e,t){return new me.fn.init(e,t)},ve=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ye=/^-ms-/,xe=/-([a-z])/g,be=function(e,t){return t.toUpperCase()};me.fn=me.prototype={jquery:ge,constructor:me,length:0,toArray:function(){return oe.call(this)},get:function(e){return null==e?oe.call(this):0>e?this[e+this.length]:this[e]},pushStack:function(e){var t=me.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return me.each(this,e)},map:function(e){return this.pushStack(me.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(oe.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:se,sort:ne.sort,splice:ne.splice},me.extend=me.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||me.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],r=e[t],a!==r&&(l&&r&&(me.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&me.isPlainObject(n)?n:{},a[t]=me.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},me.extend({expando:"jQuery"+(ge+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===me.type(e)},isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){var t=me.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},isPlainObject:function(e){var t,n;return e&&"[object Object]"===ce.call(e)?(t=ie(e))?(n=fe.call(t,"constructor")&&t.constructor,"function"==typeof n&&pe.call(n)===de):!0:!1},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?le[ce.call(e)]||"object":typeof e},globalEval:function(e){r(e)},camelCase:function(e){return e.replace(ye,"ms-").replace(xe,be)},each:function(e,t){var n,r=0;if(i(e))for(n=e.length;n>r&&t.call(e[r],r,e[r])!==!1;r++);else for(r in e)if(t.call(e[r],r,e[r])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ve,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(i(Object(e))?me.merge(n,"string"==typeof e?[e]:e):se.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:ue.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;a>o;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,o,a=0,s=[];if(i(e))for(r=e.length;r>a;a++)o=t(e[a],a,n),null!=o&&s.push(o);else for(a in e)o=t(e[a],a,n),null!=o&&s.push(o);return ae.apply([],s)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),me.isFunction(e)?(r=oe.call(arguments,2),i=function(){return e.apply(t||this,r.concat(oe.call(arguments)))},i.guid=e.guid=e.guid||me.guid++,i):void 0},now:Date.now,support:he}),"function"==typeof Symbol&&(me.fn[Symbol.iterator]=ne[Symbol.iterator]),me.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){le["[object "+t+"]"]=t.toLowerCase()});var we=function(e){function t(e,t,n,r){var i,o,a,s,u,l,c,p=t&&t.ownerDocument,h=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==h&&9!==h&&11!==h)return n;if(!r&&((t?t.ownerDocument||t:$)!==H&&L(t),t=t||H,O)){if(11!==h&&(u=ve.exec(e)))if(i=u[1]){if(9===h){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(p&&(a=p.getElementById(i))&&I(t,a)&&a.id===i)return n.push(a),n}else{if(u[2])return K.apply(n,t.getElementsByTagName(e)),n;if((i=u[3])&&T.getElementsByClassName&&t.getElementsByClassName)return K.apply(n,t.getElementsByClassName(i)),n}if(!(!T.qsa||U[e+" "]||P&&P.test(e))){if(1!==h)p=t,c=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(we,Te):t.setAttribute("id",s=W),l=S(e),o=l.length;o--;)l[o]="#"+s+" "+d(l[o]);c=l.join(","),p=ye.test(e)&&f(t.parentNode)||t}if(c)try{return K.apply(n,p.querySelectorAll(c)),n}catch(g){}finally{s===W&&t.removeAttribute("id")}}}return D(e.replace(se,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>C.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[W]=!0,e}function i(e){var t=H.createElement("fieldset");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)C.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return function(t){return"form"in t?t.parentNode&&t.disabled===!1?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Ee(t)===e:t.disabled===e:"label"in t?t.disabled===e:!1}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function d(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=_++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[B,s];if(u){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(f=t[W]||(t[W]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===B&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function g(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function v(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function y(e,t,n,i,o,a){return i&&!i[W]&&(i=y(i)),o&&!o[W]&&(o=y(o,a)),r(function(r,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?g:v(g,p,e,s,u),x=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,x,s,u),i)for(l=v(x,d),i(l,[],s,u),c=l.length;c--;)(f=l[c])&&(x[d[c]]=!(y[d[c]]=f));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(y[c]=f);o(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=o?ee(r,f):p[c])>-1&&(r[l]=!(a[l]=f))}}else x=v(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):K.apply(a,x)})}function x(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,u=h(function(e){return e===t},a,!0),l=h(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];i>s;s++)if(n=C.relative[e[s].type])c=[h(g(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[W]){for(r=++s;i>r&&!C.relative[e[r].type];r++);return y(s>1&&g(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,r>s&&x(e.slice(s,r)),i>r&&x(e=e.slice(r)),i>r&&d(e))}c.push(n)}return g(c)}function b(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var c,f,p,d=0,h="0",g=r&&[],m=[],y=j,x=r||o&&C.find.TAG("*",l),b=B+=null==y?1:Math.random()||.1,w=x.length;for(l&&(j=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!O);p=e[f++];)if(p(c,a||H,s)){u.push(c);break}l&&(B=b)}i&&((c=!p&&c)&&d--,r&&g.push(c))}if(d+=h,i&&h!==d){for(f=0;p=n[f++];)p(g,m,a,s);if(r){if(d>0)for(;h--;)g[h]||m[h]||(m[h]=Q.call(u));m=v(m)}K.apply(u,m),l&&!r&&m.length>0&&d+n.length>1&&t.uniqueSort(u)}return l&&(B=b,j=y),g};return i?r(a):a}var w,T,C,E,k,S,N,D,j,A,q,L,H,F,O,P,R,M,I,W="sizzle"+1*new Date,$=e.document,B=0,_=0,z=n(),X=n(),U=n(),V=function(e,t){return e===t&&(q=!0),0},G={}.hasOwnProperty,Y=[],Q=Y.pop,J=Y.push,K=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+re+"))|)"+ne+"*\\]",oe=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),se=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ue=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),pe=new RegExp("^"+re+"$"),de={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Te=function(e,t){return t?"\x00"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ce=function(){L()},Ee=h(function(e){return e.disabled===!0&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(Y=Z.call($.childNodes),$.childNodes),Y[$.childNodes.length].nodeType}catch(ke){K={apply:Y.length?function(e,t){J.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}T=t.support={},k=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:$;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,F=H.documentElement,O=!k(H),$!==H&&(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),T.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),T.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),T.getElementsByClassName=me.test(H.getElementsByClassName),T.getById=i(function(e){return F.appendChild(e).id=W,!H.getElementsByName||!H.getElementsByName(W).length}),T.getById?(C.filter.ID=function(e){var t=e.replace(xe,be);return function(e){return e.getAttribute("id")===t}},C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&O){var n=t.getElementById(e);return n?[n]:[]}}):(C.filter.ID=function(e){var t=e.replace(xe,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&O){var n,r,i,o=t.getElementById(e);if(o){if(n=o.getAttributeNode("id"),n&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if(n=o.getAttributeNode("id"),n&&n.value===e)return[o]}return[]}}),C.find.TAG=T.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):T.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},C.find.CLASS=T.getElementsByClassName&&function(e,t){return"undefined"!=typeof t.getElementsByClassName&&O?t.getElementsByClassName(e):void 0},R=[],P=[],(T.qsa=me.test(H.querySelectorAll))&&(i(function(e){F.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+W+"-]").length||P.push("~="),e.querySelectorAll(":checked").length||P.push(":checked"),e.querySelectorAll("a#"+W+"+*").length||P.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&P.push(":enabled",":disabled"),F.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(T.matchesSelector=me.test(M=F.matches||F.webkitMatchesSelector||F.mozMatchesSelector||F.oMatchesSelector||F.msMatchesSelector))&&i(function(e){T.disconnectedMatch=M.call(e,"*"),M.call(e,"[s!='']:x"),R.push("!=",oe)}),P=P.length&&new RegExp(P.join("|")),R=R.length&&new RegExp(R.join("|")),t=me.test(F.compareDocumentPosition),I=t||me.test(F.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},V=t?function(e,t){if(e===t)return q=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!T.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===$&&I($,e)?-1:t===H||t.ownerDocument===$&&I($,t)?1:A?ee(A,e)-ee(A,t):0:4&n?-1:1)}:function(e,t){if(e===t)return q=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:A?ee(A,e)-ee(A,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===$?-1:u[r]===$?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),!(!T.matchesSelector||!O||U[n+" "]||R&&R.test(n)||P&&P.test(n)))try{var r=M.call(e,n);if(r||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),I(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=C.attrHandle[t.toLowerCase()],r=n&&G.call(C.attrHandle,t.toLowerCase())?n(e,t,!O):void 0;return void 0!==r?r:T.attributes||!O?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(we,Te)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(q=!T.detectDuplicates,A=!T.sortStable&&e.slice(0),e.sort(V),q){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return A=null,e},E=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},C=t.selectors={cacheLength:50,createPseudo:r,match:de,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,be),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=S(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=z[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&z(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!u&&!s,x=!1;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&y){for(p=m,f=p[W]||(p[W]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),l=c[e]||[],d=l[0]===B&&l[1],x=d&&l[2],p=d&&m.childNodes[d];p=++d&&p&&p[g]||(x=d=0)||h.pop();)if(1===p.nodeType&&++x&&p===t){c[e]=[B,d,x];break}}else if(y&&(p=t,f=p[W]||(p[W]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),l=c[e]||[],d=l[0]===B&&l[1],x=d),x===!1)for(;(p=++d&&p&&p[g]||(x=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++x||(y&&(f=p[W]||(p[W]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),c[e]=[B,x]),p!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[W]?o(n):o.length>1?(i=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a]);
2 |
3 | }):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=N(e.replace(se,"$1"));return i[W]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,be),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(e){return pe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,be).toLowerCase(),function(t){var n;do if(n=O?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===F},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:l(!1),disabled:l(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r2&&"ID"===(a=o[0]).type&&9===t.nodeType&&O&&C.relative[o[1].type]){if(t=(C.find.ID(a.matches[0].replace(xe,be),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=de.needsContext.test(e)?0:o.length;i--&&(a=o[i],!C.relative[s=a.type]);)if((u=C.find[s])&&(r=u(a.matches[0].replace(xe,be),ye.test(o[0].type)&&f(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return K.apply(n,r),n;break}}return(l||N(e,c))(r,t,!O,n,!t||ye.test(e)&&f(t.parentNode)||t),n},T.sortStable=W.split("").sort(V).join("")===W,T.detectDuplicates=!!q,L(),T.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),T.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(t);me.find=we,me.expr=we.selectors,me.expr[":"]=me.expr.pseudos,me.uniqueSort=me.unique=we.uniqueSort,me.text=we.getText,me.isXMLDoc=we.isXML,me.contains=we.contains,me.escapeSelector=we.escape;var Te=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&me(e).is(n))break;r.push(e)}return r},Ce=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Ee=me.expr.match.needsContext,ke=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,Se=/^.[^:#\[\.,]*$/;me.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?me.find.matchesSelector(r,e)?[r]:[]:me.find.matches(e,me.grep(t,function(e){return 1===e.nodeType}))},me.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(me(e).filter(function(){for(t=0;r>t;t++)if(me.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;r>t;t++)me.find(e,i[t],n);return r>1?me.uniqueSort(n):n},filter:function(e){return this.pushStack(a(this,e||[],!1))},not:function(e){return this.pushStack(a(this,e||[],!0))},is:function(e){return!!a(this,"string"==typeof e&&Ee.test(e)?me(e):e||[],!1).length}});var Ne,De=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,je=me.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ne,"string"==typeof e){if(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:De.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof me?t[0]:t,me.merge(this,me.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),ke.test(r[1])&&me.isPlainObject(t))for(r in t)me.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=re.getElementById(r[2]),i&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):me.isFunction(e)?void 0!==n.ready?n.ready(e):e(me):me.makeArray(e,this)};je.prototype=me.fn,Ne=me(re);var Ae=/^(?:parents|prev(?:Until|All))/,qe={children:!0,contents:!0,next:!0,prev:!0};me.fn.extend({has:function(e){var t=me(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(me.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&me(e);if(!Ee.test(e))for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&me.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?me.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?ue.call(me(e),this[0]):ue.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(me.uniqueSort(me.merge(this.get(),me(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),me.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Te(e,"parentNode")},parentsUntil:function(e,t,n){return Te(e,"parentNode",n)},next:function(e){return s(e,"nextSibling")},prev:function(e){return s(e,"previousSibling")},nextAll:function(e){return Te(e,"nextSibling")},prevAll:function(e){return Te(e,"previousSibling")},nextUntil:function(e,t,n){return Te(e,"nextSibling",n)},prevUntil:function(e,t,n){return Te(e,"previousSibling",n)},siblings:function(e){return Ce((e.parentNode||{}).firstChild,e)},children:function(e){return Ce(e.firstChild)},contents:function(e){return o(e,"iframe")?e.contentDocument:(o(e,"template")&&(e=e.content||e),me.merge([],e.childNodes))}},function(e,t){me.fn[e]=function(n,r){var i=me.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=me.filter(r,i)),this.length>1&&(qe[e]||me.uniqueSort(i),Ae.test(e)&&i.reverse()),this.pushStack(i)}});var Le=/[^\x20\t\r\n\f]+/g;me.Callbacks=function(e){e="string"==typeof e?u(e):me.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),s>=n&&s--}),this},has:function(e){return e?me.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},me.extend({Deferred:function(e){var n=[["notify","progress",me.Callbacks("memory"),me.Callbacks("memory"),2],["resolve","done",me.Callbacks("once memory"),me.Callbacks("once memory"),0,"resolved"],["reject","fail",me.Callbacks("once memory"),me.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return me.Deferred(function(t){me.each(n,function(n,r){var i=me.isFunction(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&me.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(e,r,i){function o(e,n,r,i){return function(){var s=this,u=arguments,f=function(){var t,f;if(!(a>e)){if(t=r.apply(s,u),t===n.promise())throw new TypeError("Thenable self-resolution");f=t&&("object"==typeof t||"function"==typeof t)&&t.then,me.isFunction(f)?i?f.call(t,o(a,n,l,i),o(a,n,c,i)):(a++,f.call(t,o(a,n,l,i),o(a,n,c,i),o(a,n,l,n.notifyWith))):(r!==l&&(s=void 0,u=[t]),(i||n.resolveWith)(s,u))}},p=i?f:function(){try{f()}catch(t){me.Deferred.exceptionHook&&me.Deferred.exceptionHook(t,p.stackTrace),e+1>=a&&(r!==c&&(s=void 0,u=[t]),n.rejectWith(s,u))}};e?p():(me.Deferred.getStackHook&&(p.stackTrace=me.Deferred.getStackHook()),t.setTimeout(p))}}var a=0;return me.Deferred(function(t){n[0][3].add(o(0,t,me.isFunction(i)?i:l,t.notifyWith)),n[1][3].add(o(0,t,me.isFunction(e)?e:l)),n[2][3].add(o(0,t,me.isFunction(r)?r:c))}).promise()},promise:function(e){return null!=e?me.extend(e,i):i}},o={};return me.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[0][2].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=oe.call(arguments),o=me.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?oe.call(arguments):n,--t||o.resolveWith(r,i)}};if(1>=t&&(f(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||me.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)f(i[n],a(n),o.reject);return o.promise()}});var He=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;me.Deferred.exceptionHook=function(e,n){t.console&&t.console.warn&&e&&He.test(e.name)&&t.console.warn("jQuery.Deferred exception: "+e.message,e.stack,n)},me.readyException=function(e){t.setTimeout(function(){throw e})};var Fe=me.Deferred();me.fn.ready=function(e){return Fe.then(e)["catch"](function(e){me.readyException(e)}),this},me.extend({isReady:!1,readyWait:1,ready:function(e){(e===!0?--me.readyWait:me.isReady)||(me.isReady=!0,e!==!0&&--me.readyWait>0||Fe.resolveWith(re,[me]))}}),me.ready.then=Fe.then,"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll?t.setTimeout(me.ready):(re.addEventListener("DOMContentLoaded",p),t.addEventListener("load",p));var Oe=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===me.type(n)){i=!0;for(s in n)Oe(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,me.isFunction(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(me(e),n)})),t))for(;u>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},Pe=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};d.uid=1,d.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Pe(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[me.camelCase(t)]=n;else for(r in t)i[me.camelCase(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][me.camelCase(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){Array.isArray(t)?t=t.map(me.camelCase):(t=me.camelCase(t),t=t in r?[t]:t.match(Le)||[]),n=t.length;for(;n--;)delete r[t[n]]}(void 0===t||me.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!me.isEmptyObject(t)}};var Re=new d,Me=new d,Ie=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,We=/[A-Z]/g;me.extend({hasData:function(e){return Me.hasData(e)||Re.hasData(e)},data:function(e,t,n){return Me.access(e,t,n)},removeData:function(e,t){Me.remove(e,t)},_data:function(e,t,n){return Re.access(e,t,n)},_removeData:function(e,t){Re.remove(e,t)}}),me.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=Me.get(o),1===o.nodeType&&!Re.get(o,"hasDataAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=me.camelCase(r.slice(5)),g(o,r,i[r])));Re.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){Me.set(this,e)}):Oe(this,function(t){var n;if(o&&void 0===t){if(n=Me.get(o,e),void 0!==n)return n;if(n=g(o,e),void 0!==n)return n}else this.each(function(){Me.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Me.remove(this,e)})}}),me.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=Re.get(e,t),n&&(!r||Array.isArray(n)?r=Re.access(e,t,me.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=me.queue(e,t),r=n.length,i=n.shift(),o=me._queueHooks(e,t),a=function(){me.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Re.get(e,n)||Re.access(e,n,{empty:me.Callbacks("once memory").add(function(){Re.remove(e,[t+"queue",n])})})}}),me.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Ye=/^$|\/(?:java|ecma)script/i,Qe={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};Qe.optgroup=Qe.option,Qe.tbody=Qe.tfoot=Qe.colgroup=Qe.caption=Qe.thead,Qe.th=Qe.td;var Je=/<|?\w+;/;!function(){var e=re.createDocumentFragment(),t=e.appendChild(re.createElement("div")),n=re.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),he.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",he.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Ke=re.documentElement,Ze=/^key/,et=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,tt=/^([^.]*)(?:\.(.+)|)/;me.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,m=Re.get(e);if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&me.find.matchesSelector(Ke,i),n.guid||(n.guid=me.guid++),(u=m.events)||(u=m.events={}),(a=m.handle)||(a=m.handle=function(t){return"undefined"!=typeof me&&me.event.triggered!==t.type?me.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Le)||[""],l=t.length;l--;)s=tt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d&&(f=me.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=me.event.special[d]||{},c=me.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&me.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||(p=u[d]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,h,a)!==!1||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),me.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,m=Re.hasData(e)&&Re.get(e);if(m&&(u=m.events)){for(t=(t||"").match(Le)||[""],l=t.length;l--;)if(s=tt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(f=me.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||me.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)me.event.remove(e,d+t[l],n,r,!0);me.isEmptyObject(u)&&Re.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=me.event.fix(e),u=new Array(arguments.length),l=(Re.get(this,"events")||{})[s.type]||[],c=me.event.special[s.type]||{};for(u[0]=s,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||l.disabled!==!0)){for(o=[],a={},n=0;u>n;n++)r=t[n],i=r.selector+" ",void 0===a[i]&&(a[i]=r.needsContext?me(i,this).index(l)>-1:me.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,rt=/