Compare commits

...

88 Commits

Author SHA1 Message Date
Simon Lydell
fb0639fa38 Merge pull request #4381 from GeoffreyBooth/1.12
[WIP] 1.12.0
2016-12-04 20:32:45 +01:00
Geoffrey Booth
b7dbee2402 Update broken links 2016-12-03 23:49:44 -08:00
Geoffrey Booth
2ca0f44cc8 Update 1.12.0 release date 2016-12-03 23:14:08 -08:00
Geoffrey Booth
c5121c8c4e Rebuild 2016-12-03 22:06:07 -08:00
Geoffrey Booth
2f72d0394f Improve comments formatting for better output in annotated source 2016-12-03 21:53:43 -08:00
Geoffrey Booth
026d9d6ccd Merge branch 'master' of github.com:jashkenas/coffeescript into 1.12 2016-12-03 20:24:28 -08:00
Simon Lydell
c9de5be966 Merge pull request #4383 from GeoffreyBooth/escape-template-literals
Escape backticks and `${` within template literals; fixes #4380
2016-12-03 20:41:25 +01:00
Geoffrey Booth
d45d780869 Improve tests and comments 2016-12-03 10:16:41 -08:00
Geoffrey Booth
d8abfae457 Handle tagged template literals (and future CS2 interpolated strings) with “invalidly escaped” backticks or ${—one backslash instead of two 2016-12-02 16:54:31 -08:00
Geoffrey Booth
98bf335777 Regenerate docs 2016-12-01 21:42:17 -08:00
Geoffrey Booth
1a69493f87 Remove change log updates related to documentation and the compiler build system 2016-12-01 21:40:18 -08:00
Geoffrey Booth
abe746bf53 Wrap HTML in comments in backticks, so as not to fool docco when generating the annotated source 2016-12-01 21:36:15 -08:00
Geoffrey Booth
075e48df95 Add Trix to list of examples; closes #4227 2016-12-01 21:28:42 -08:00
Geoffrey Booth
47c0a5cbef Escape backticks and ${ within template literals; fixes #4380 2016-12-01 13:10:03 -08:00
Geoffrey Booth
c48f5ce30f Add link to browser tests 2016-11-30 22:51:25 -08:00
Geoffrey Booth
4efd27ed28 Update annotated source for 1.12.0 2016-11-30 22:38:14 -08:00
Geoffrey Booth
e6b1218ae1 Updated output docs for 1.12.0, including new browser compiler 2016-11-30 22:33:20 -08:00
Geoffrey Booth
68938cda30 Updated lib for 1.12.0 2016-11-30 22:27:32 -08:00
Geoffrey Booth
7d6a3b5fa4 Docs examples with quotation marks were broken. Properly escape the quotes. http://stackoverflow.com/a/1082558/223225 2016-11-30 22:23:51 -08:00
Geoffrey Booth
f187440bb8 Update size of browser compiler 2016-11-30 22:06:22 -08:00
Geoffrey Booth
d0d2ef9f77 Convert eligible HTML entities to unicode characters (a recommended practice: http://stackoverflow.com/a/436637/223225) and convert straight quotes to curly quotes 2016-11-30 21:55:24 -08:00
Geoffrey Booth
a15bf3d336 1.11.1 to 1.12.0 change log 2016-11-30 20:48:58 -08:00
Geoffrey Booth
6d507b46d3 Bump version to 1.12.0; pass through as a variable to index.html 2016-11-30 20:48:06 -08:00
Jeremy Ashkenas
5588658641 Merge pull request #4378 from GeoffreyBooth/fix-browser-tests
Fix browser tests
2016-11-30 10:22:42 -05:00
Geoffrey Booth
d99ae0e7ef Refactor the way test.html runs tests to be similar to how Cakefile runs them; most importantly, tests fail when the test function throws an exception, not when ok does (which happens intentionally a few times in the classes tests); this also produces a more accurate count of tests run 2016-11-30 00:34:07 -08:00
Geoffrey Booth
cf3a27259a Exclude error messages from browser-based tests; watch test files 2016-11-30 00:31:18 -08:00
Geoffrey Booth
1ea753d19f Polyfill missing helper functions from Node’s assert, one with CDN-hosted Underscore; handle .litcoffee correctly 2016-11-30 00:02:45 -08:00
Geoffrey Booth
831d3c9341 test.html: better test failure output; add inexplicably missing testingBrowser 2016-11-29 21:37:54 -08:00
Geoffrey Booth
729fec2947 Abstract the eq and arrayEq functions, shared by Cakefile and test.html, into one file that can be included into both 2016-11-29 21:19:11 -08:00
Geoffrey Booth
faab9330e9 Run literate 2016-11-29 18:33:18 -08:00
Geoffrey Booth
8c8ebf874a Add test description to error message 2016-11-29 18:27:34 -08:00
Geoffrey Booth
06b3180223 Refactor test.html to be part of the docs output, with the tests embedded inside it; update test.html styles; move UTF-8 comment test out of test.html and into test/comments.coffee where it belongs 2016-11-29 18:13:12 -08:00
Geoffrey Booth
6d29086519 Standardize on .html file extension; move test.html into its new home 2016-11-29 08:45:46 -08:00
Geoffrey Booth
a401f587c3 Organize Cakefile: move helper functions that are only used by doc:site into the doc:site task 2016-11-29 08:39:00 -08:00
Geoffrey Booth
ac26360fdc Replace Uglify.js with Google Closure Compiler, JS version; let NPM finally reformat package.json the way it likes (#4376) 2016-11-28 23:10:17 -08:00
Geoffrey Booth
ac20f6634a Browser compiler should convert the string to load to UTF-8, in case it is UTF-16 like the contents of a <script> block generally are (#4375) 2016-11-27 23:05:49 -08:00
Geoffrey Booth
5c765f4cc7 Add for…from to list of ES2015 exceptions in the introduction (#4373) 2016-11-27 23:05:05 -08:00
Geoffrey Booth
02c5641b32 Fix path to browser compiler (#4374) 2016-11-27 20:47:54 -08:00
Gregory Huczynski
555e47dbb9 Docs for tagged template literals (#4372)
* Correct tagged template literal test.

Should use Coffeescript form of interpolated
strings, not Javascript!

* First pass at docs for tagged template literals.

* Correct alerted variable.

* Add note re checking runtime for tagged template literals

* Fixed broken example.

* Consistent style

* Clarify that CoffeeScript isn’t handling the tagged template literal, the runtime is; fix CoffeeScript spelling

* Collapse notes about generator functions and tagged template literals into the same sentence

* Make tagged template literals example into a function

* Make text less clunky.

* More clarity on what CoffeeScript is doing versus what the runtime is doing, and emphasize runtimes vs Babel/Traceur
2016-11-26 19:28:43 -08:00
Geoffrey Booth
992eb49e92 Docs for triple-backticks and escaping backticks (#4369)
* Documentation for triple backticks and escaping backticks

* Better explanation of escaped backticks within triple-backticks block
2016-11-22 22:09:35 -08:00
Geoffrey Booth
8ea67ff3e9 Update Bower.json per latest spec (#4371)
* Remove moot `version` property from bower.json

Per bower/bower.json-spec@a325da3

* No need for bower to know about dev dependencies, and this is one less thing to keep in sync
2016-11-22 22:00:51 -08:00
Geoffrey Booth
56482a3166 Docs for for…from (#4368)
* Documentation of `for...from` for iterating over generator functions

* Add note that the CoffeeScript compiler does not, in fact, generate JavaScript that runs in every JavaScript runtime 😢
2016-11-22 09:30:39 -08:00
Daniel Bayley
6c759d49bd Docs shorthand object notation (#4356)
* Docs shorthand object notation

A simple but slightly more imaginative example of shorthand object notation.

Closes #1808.

Signed-off-by: Daniel Bayley <daniel.bayley@me.com>

* Update for new documentation folder structure

* Fix typo
2016-11-20 23:04:49 -08:00
Geoffrey Booth
cc3be717a0 Docs improvements (#4367)
* The generated JavaScript for the examples in the docs ends up within index.html, so we don’t need the intermediate generated .js files committed in the repo; also, even while .gitignored they should be under `docs`, with the rest of the generated files, not under `documentation`, where the source files are.

* Add “Existential Operator” to the table of contents. Closes #4361

* Updated output due to newer version of highlight.js

* Generated the JavaScript for the docs examples should be synchronous, so that index.html isn’t generated before the JavaScript is

* In “Try CoffeeScript,” if you press the tab key it should type a tab character. Closes #3342.

* Rename doc example folders from `js` and `coffee` to just `examples`

* Add missing `yield` to the list of keywords to highlight until highlight.js catches up; update the class used to match highlight.js’ `keyword`

* `cake doc:site` should watch the example files too, not just index.html.js

* Remove examples folder, including underscore.coffee; remove link to annotated underscore.coffee
2016-11-20 17:05:19 -08:00
Geoffrey Booth
073e14746e Triple backticks to allow creation of JavaScript blocks (#4357)
* Support JavaScript code blocks set apart by triple backticks (``` ... ```)

* Add test for escaped backticks

* Remove TODOs for things we’re never going to support

* Convert escaped backticks to backticks; update tests

* Block inline JavaScript can end with an escaped backtick character

* Updated JavaScript token regexes per @lydell

* In JavaScript blocks, escape backslashes when they immediately precede backticks; additional tests

* Test that we don’t break backslash escaping in JavaScript literals
2016-11-19 11:13:30 -08:00
Gregory Huczynski
78e1f43b24 CS1 tagged template literals (and CS2 interpolated strings as template literals) (#4352)
* Add initial support for template literals with no
interpolation

* Change ‘unexpected string’ error message tests to
use number not identifier prefix.

Identifer prefixes are now valid as tagged
template literals

* Test tagged template literals for non-interpolated
strings and tag function.

* Tagged template literals work for pure Strings.

Pull tagged template definition up to Invocation
level in grammar, enabling chained invocation calls.

We can view a tagged template is a special form
of function call.

* Readying for StringWithInterpolations work.

* Tweaks.

* Fix style

* Pass StringWithInterpolations parameter straight
into Call constructor.

StringWithInterpolations will be output as
template literal, so already in correct form for
outputting tagged template literal.

* Strip down compileNode for StringWithInterpolations

* Done StringLiteral case for interpolated Strings

* Remove need for TemplateLiteral

* Simplify code.

* Small code tidy

* Interpolated strings now outputting as template literals.

Still needs comprehensive testing.

* Move error message tests into error_messages.coffee; remove test that is testing for a Node runtime error

* Split up tests that were testing multiple things per test, so that each test tests only one thing

* Edge cases: tagged template literals containing interpolated strings or even internal tagged template literals

* Make more concise, more idiomatic style

* Pull back extreme indentation

* Restore and fix commented-out tests

* Edge case: tagged template literal with empty string

* Only use new ES2015 interpolated string syntax if we’re inside a tagged template literal; this keeps this PR safe to merge into CoffeeScript 1.x. Remove the code from this commit to make all interpolated strings use ES2015 syntax, for CoffeeScript 2.

* Compiler now _doesn’t_ use template literals.

* Expand tagged template literal tests

* Move ‘Unexpected string’ error message tests into
tagged template literal section.

‘Unexpected string’ is not reported in these test
scenarios anymore. Instead, we error that the
prefixing literal is not a function.

* Don’t unwrap StringWithInterpolations.

Saw bug with program consisting of “#{2}” not
compiling with template literals. Root cause was
that Block.compileNode was unwrapping interpolated
string and so didn’t use compileNode logic at
StringWithInterpolations level.

* No need to bracket interpolated strings any more.

When interpolated string looks like `hello ${2}`,
no extract brackets are needed, as the `s mark the
beginning and end.

* Show html templating with tagged template literals

* Multiline should match multiline

* Comment out unnecessary `unwrap`, which is only needed for CoffeeScript 2 all-ES2015 syntax output
2016-11-18 10:25:03 -08:00
Geoffrey Booth
a49c5c5150 Revert to http://coffeescript.org until GitHub pages supports HTTPS for custom domains (#4363) 2016-11-17 09:57:03 -08:00
Jeremy Ashkenas
24033eb11a move CNAME 2016-11-17 12:02:30 -05:00
Jeremy Ashkenas
f32740c032 Merge pull request #4360 from GeoffreyBooth/branch-docs
Reorganize docs for v1/v2 split
2016-11-17 11:59:37 -05:00
Geoffrey Booth
bebc5812e5 Revert unintended changes to generated index.html 2016-11-15 22:08:27 -08:00
Geoffrey Booth
4ab6fbca72 Fix missing hunk 2016-11-15 21:55:19 -08:00
Geoffrey Booth
7bc5b73db1 Fix links to annotated source 2016-11-15 21:37:41 -08:00
Geoffrey Booth
a95d986055 coffeescript.org goes HTTPS! 2016-11-15 21:31:53 -08:00
Geoffrey Booth
846c0e4c51 Even 1.x doesn’t need to limit generators tests to --harmony mode anymore; minor cleanup 2016-11-15 21:28:35 -08:00
Geoffrey Booth
3736b0fed1 Update cake build:browser to reflect new path to coffee-script.js 2016-11-15 21:19:43 -08:00
Geoffrey Booth
eb46975d87 Update cake doc:source to output to new docs/v{1|2}/annotated-source; collapse doc:underscore into it and generate missing underscore.html (closes #4295) 2016-11-15 21:16:13 -08:00
Geoffrey Booth
3739954de6 Move v1 documentation under docs/v1, with docs/index.html symlinking to docs/v1/index.html (with .nojekyll file to hopefully make the symlink work) 2016-11-15 20:54:30 -08:00
Geoffrey Booth
3b0b002f29 Use Google-hosted jQuery 2016-11-15 20:37:11 -08:00
Geoffrey Booth
6f09d36ec8 Update dev dependencies; update template rendering to use new Underscore syntax 2016-11-14 21:39:25 -08:00
Geoffrey Booth
b3896d08e8 Add a for .. from .. loop for generators, see #4306, #3832 (#4355)
* Added support for for-from loop, see #3832

* for-from: remove extra newline and add support for ranges

* for-from: tidy up the lexer

* for-from: add support for patterns

* for-from: fix bad alignment

* for-from: add two more tests

* for-from: fix test "for-from loops over generators"

See explanation here: https://github.com/jashkenas/coffeescript/pull/4306#issuecomment-257066877

* for-from: delete leftover console.log

* Refactor the big `if` block in the lexer to be as minimal a change from `master` as we can get away with

* Cleanup to make more idiomatic, remove trailing whitespace, minor performance improvements

* for-from: move code from one file to another

* for-from: clean up whitespace

* for-from: lexer bikeshedding

* Move "own is not supported in for-from loops" test into error_messages.coffee; improve error message so that "own" is underlined

* Revert unnecessary changes, to minimize the lines of code modified by this PR
2016-11-07 23:40:01 -08:00
Simon Lydell
aca72f9b91 Merge pull request #4350 from alangpierce/upstream-fix-generated-close-curly-location
Include generated } tokens when fixing closing token positions
2016-10-31 07:54:24 +01:00
Alan Pierce
c5afb4e2fd Include generated } tokens when fixing closing token positions
This is an upstream port of https://github.com/decaffeinate/coffeescript/pull/10
See that PR for links to the issues that this fixes.

Just like OUTDENT and CALL_END tokens, close-curly-brace tokens can be generated
without having a real location, and if that position overlaps with a later
token, it can cause the AST to have bad location data. Just like the other two
token types, we now give `}` tokens the position of the previous real token,
which makes all AST nodes have reasonable locations.
2016-10-30 21:39:54 -07:00
Geoffrey Booth
0d132318ce Resolve conflicts with 2 branch 2016-10-26 09:05:35 -07:00
geebo
26ad6d4670 Selectively ignore CS-only keywords in ES imports and exports (#4347) 2016-10-26 14:37:19 +02:00
Geoffrey Booth
887052de07 Merge branch 'master' of github.com:jashkenas/coffeescript 2016-10-23 17:06:13 -07:00
Alan Pierce
6087c2c8fc Properly set location for string tokens ending in a newline (#4344)
This is an upstream port of https://github.com/decaffeinate/coffeescript/pull/9

The existing logic for computing the end location of a string was to take the
end of the string contents, then add the delimiter length to last_column. For
example, `"""abc"""` would have an end position three characters after the `c`.
However, if a string ended in a newline, then the end location for the string
contents would be one line above the end location for the string, so the proper
fix is to move the end location to the next line, not just to shift it to the
right.

This avoids a bug where the location data would sometimes reference a
non-existent location (one past the end of its line). It fixes the AST location
data, although as far as I know, it never has caused correctness issues in the
CoffeeScript output.
2016-10-23 09:41:46 +02:00
Geoffrey Booth
0521c3582c Fix typo 2016-10-22 23:11:04 -07:00
Simon Lydell
3c42b400a1 Merge pull request #4340 from GeoffreyBooth/node-deprecations
Call synchronous `fs` methods using the `Sync` variants
2016-10-19 08:05:20 +02:00
Geoffrey Booth
be44ebd2cd Node 7-nightly throws deprecation warnings when calling fs non-Sync functions without callbacks; but we always want the synchronous versions, so we should just call those in the first place 2016-10-18 21:49:15 -07:00
Simon Lydell
4d3d7352f1 Merge pull request #4339 from GeoffreyBooth/fix-export-anonymous-class
Disallow exporting anonymous classes
2016-10-16 10:23:37 +02:00
Geoffrey Booth
48e00d81a9 The CoffeeScript compiler should error on trying to export anonymous classes (previously we were outputting invalid JavaScript that the runtime was erroring on) 2016-10-15 21:32:06 -07:00
Simon Lydell
0853b412c6 Merge pull request #4296 from alangpierce/move-outdents-to-previous-token
Change OUTDENT tokens to be positioned at the end of the previous token
2016-10-10 19:08:35 +02:00
Simon Lydell
a75fe280f2 Merge pull request #4335 from alangpierce/fix-operator-precedence
Define proper operator precedence for bitwise/logical operators
2016-10-10 16:09:09 +02:00
Alan Pierce
e14946b3e6 Define proper operator precedence for bitwise/logical operators
This is an upstream port for the patch https://github.com/decaffeinate/coffeescript/pull/8

See https://github.com/decaffeinate/decaffeinate/issues/291 for the bug that this fixed.

For the most part, CoffeeScript and JavaScript have the same precedence rules,
but in some cases, the intermediate AST format didn't represent the actual
evaluation order. For example, in the expression `a or b and c`, the `and` is
evaluated first, but the parser treated the two operators with equal precedence.
This was still correct end-to-end because CoffeeScript simply emitted the result
without parens, but any intermediate tools using the CoffeeScript parser could
become confused.

Here are the JS operator precedence rules:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

For the most part, CoffeeScript already follows these. `COMPARE` operators
already behave differently due to chained comparisons, so I think we don't need
to worry about following JS precedence for those. So I think the only case where
it was behaving differently in an important way was for the binary/bitwise
operators that are being changed here.

As part of this change, I also introduced a new token tag, `BIN?`, for the
binary form of the `?` operator.
2016-10-09 14:45:25 -07:00
Alan Pierce
88693e420d Fix location data for implicit CALL_END tokens
Fixes https://github.com/decaffeinate/decaffeinate/issues/446

In addition to OUTDENT tokens, CALL_END tokens can also be virtual tokens
without a real location, and sometimes they end up with a location that's
incorrect.
2016-10-06 19:46:41 -07:00
Alan Pierce
ce971b766f Change OUTDENT tokens to be positioned at the end of the previous token
This commit adds another post-processing step after normal lexing that sets the
locationData on all OUTDENT tokens to be at the last character of the previous
token. This does feel like a little bit of a hack. Ideally the location data
would be set correctly in the first place and not in a post-processing step, but
I tried that and some temporary intermediate tokens were causing problems, so I
decided to set the location data once those intermediate tokens were removed.
Also, having this as a separate processing step makes it more robust and
isolated.

This fixes the problem in https://github.com/decaffeinate/decaffeinate/issues/371 .
In that issue, the CoffeeScript tokens had three OUTDENT tokens in a row, and
the last two overlapped with the `]`. Since at least one of those OUTDENT tokens
was considered part of the function body, the function expression had an ending
position just after the end of the `]`.

OUTDENT tokens are sort of a weird case in the lexer anyway, since they often
don't correspond to an actual location in the source code. It seems like the
code in `lexer.coffee` makes an attempt at finding a good place for them, but in
some cases, it has a bad result. This seems hard to avoid in the general case.
For example, in this code:
```coffee
[->
  a]
```
There must be an OUTDENT between the `a` and the `]`, but CoffeeScript tokens
have an inclusive start and end, so they must always be at least one character
wide (I think). In this case, the lexer was choosing the `]` as the location,
and the parser ended up generating correct location data, I believe because
it ignores the outermost INDENT and OUTDENT tokens. However, with multiple
OUTDENT tokens in a row, the parser ends up producing location data that is
wrong.

It seems to me like there isn't a solid answer to "what location do OUTDENT
tokens have", since it hasn't mattered much, but for this commit, I'm defining
it: they always have the location of the last character of the previous token.
This should hopefully be fairly safe because tokens are still in the same order
relative to each other. Also, it's worth noting that this makes the start
location for OUTDENT tokens awkward. However, OUTDENT tokens are always used to
mark the end of something, so their `last_line` and `last_column` values are
always what matter when determining AST node bounds, so it is most important for
those to be correct.
2016-10-06 19:39:31 -07:00
Simon Lydell
11561dddcf Merge pull request #4329 from shreeve/strip-cr-if-present
strip \r (if present) before final \n
2016-10-04 07:39:52 +02:00
Steve Shreeve
7c7bc8ee2f strip \r (if present) before final \n 2016-10-02 15:17:54 -04:00
Simon Lydell
7b9fbf2c76 Merge pull request #4327 from lydell/1.11.1
1.11.1
2016-10-02 18:21:28 +02:00
Simon Lydell
8623792bcd CoffeeScript 1.11.1 2016-10-01 20:58:53 +02:00
Simon Lydell
809634ba39 Add changelog for version 1.11.1 2016-10-01 20:55:23 +02:00
Simon Lydell
46841d916d Fix shorthands after interpolated key in objects
Fixes #4324.
2016-09-29 19:02:00 +02:00
Simon Lydell
0b2d852f67 Merge pull request #4322 from fliptheweb/patch-1
Fix minor typo in changelog for 1.11.0
2016-09-26 20:04:33 +02:00
Artur Kornakov
964a588e29 Fix minor typo in changelog for 1.11.0 2016-09-26 20:37:37 +03:00
Simon Lydell
568a0c7b4e Fix indentation-stripping in """ strings
`"""` (and `"`) strings are lexed into an array of tokens, consisting of
strings and interpolations. Previously, the minimum indententation
inside `"""` strings was stripped from the beginning of _all_ of those
string tokens. Usually, the indentation is longer than any other
sequence of spaces in a `"""` string, so the problem didn't occur in
most cases. This commit makes sure to only strip indentation after
newlines.

Fixes #4314.
2016-09-26 17:14:31 +02:00
Simon Lydell
57f5297714 Handle very large hexadecimal number literals correctly
Very large decimal number literals, binary number literals and octal
literals are lexed into an INFINITY token (instead of a NUMBER token)
and compiled into `2e308`. That is is supposed to be the case for very
large hexdecimal dumber literals as well, but previously wasn't.

Before:

    $ node -p 'require("./").tokens(`0x${Array(256 + 1).join("f")}`)[0][0]'
    NUMBER

After:

    $ node -p 'require("./").tokens(`0x${Array(256 + 1).join("f")}`)[0][0]'
    INFINITY

This commit also cleans up `numberToken` in lexer.coffee a bit.
2016-09-26 16:33:57 +02:00
Simon Lydell
32041806ae Fix isLiteralArguments
`isLiteralArguments` mistakenly looked at `Literal`s instead of
`IdentifierLiteral`s.

This also gets rid of the ugly `.asKey` hack in nodes.coffee.

Fixes #4320.
2016-09-26 15:33:44 +02:00
Simon Lydell
b0d8fca245 Update the changelog for 1.11.0
Fixes #4321.
2016-09-26 15:09:53 +02:00
207 changed files with 13633 additions and 12984 deletions

0
.nojekyll Normal file
View File

242
Cakefile
View File

@@ -1,9 +1,9 @@
fs = require 'fs'
path = require 'path'
_ = require 'underscore'
CoffeeScript = require './lib/coffee-script'
{spawn, exec} = require 'child_process'
helpers = require './lib/coffee-script/helpers'
fs = require 'fs'
path = require 'path'
_ = require 'underscore'
{ spawn, exec, execSync } = require 'child_process'
CoffeeScript = require './lib/coffee-script'
helpers = require './lib/coffee-script/helpers'
# ANSI Terminal Colors.
bold = red = green = reset = ''
@@ -24,6 +24,9 @@ header = """
*/
"""
# Used in folder names like docs/v1
majorVersion = CoffeeScript.VERSION.split('.')[0]
# Build the CoffeeScript language from source.
build = (cb) ->
files = fs.readdirSync 'src'
@@ -35,66 +38,13 @@ run = (args, cb) ->
proc = spawn 'node', ['bin/coffee'].concat(args)
proc.stderr.on 'data', (buffer) -> console.log buffer.toString()
proc.on 'exit', (status) ->
process.exit(1) if status != 0
process.exit(1) if status isnt 0
cb() if typeof cb is 'function'
# Log a message with a color.
log = (message, color, explanation) ->
console.log color + message + reset + ' ' + (explanation or '')
codeFor = ->
counter = 0
hljs = require 'highlight.js'
hljs.configure classPrefix: ''
(file, executable = false, showLoad = true) ->
counter++
return unless fs.existsSync "documentation/js/#{file}.js"
cs = fs.readFileSync "documentation/coffee/#{file}.coffee", 'utf-8'
js = fs.readFileSync "documentation/js/#{file}.js", 'utf-8'
js = js.replace /^\/\/ generated.*?\n/i, ''
cshtml = "<pre><code>#{hljs.highlight('coffeescript', cs).value}</code></pre>"
# Temporary fix until highlight.js adds support for newer CoffeeScript reserved words
if file is 'modules'
cshtml = cshtml.replace /(import|export|from|as|default) /g, '<span class="reserved">$1</span> '
jshtml = "<pre><code>#{hljs.highlight('javascript', js).value}</code></pre>"
append = if executable is yes then '' else "alert(#{executable});"
if executable and executable != yes
cs.replace /(\S)\s*\Z/m, "$1\n\nalert #{executable}"
run = if executable is true then 'run' else "run: #{executable}"
name = "example#{counter}"
script = "<script>window.#{name} = #{JSON.stringify cs}</script>"
load = if showLoad then "<div class='minibutton load' onclick='javascript: loadConsole(#{name});'>load</div>" else ''
button = if executable then "<div class='minibutton ok' onclick='javascript: #{js};#{append}'>#{run}</div>" else ''
"<div class='code'>#{cshtml}#{jshtml}#{script}#{load}#{button}<br class='clear' /></div>"
monthNames = [
'January'
'February'
'March'
'April'
'May'
'June'
'July'
'August'
'September'
'October'
'November'
'December'
]
formatDate = (date) ->
date.replace /^(\d\d\d\d)-(\d\d)-(\d\d)$/, (match, $1, $2, $3) ->
"#{monthNames[$2 - 1]} #{+$3}, #{$1}"
releaseHeader = (date, version, prevVersion) -> """
<div class="anchor" id="#{version}"></div>
<b class="header">
#{prevVersion and "<a href=\"https://github.com/jashkenas/coffeescript/compare/#{prevVersion}...#{version}\">#{version}</a>" or version}
<span class="timestamp"> &mdash; <time datetime="#{date}">#{formatDate date}</time></span>
</b>
"""
option '-p', '--prefix [DIR]', 'set the installation prefix for `cake install`'
task 'install', 'install CoffeeScript into /usr/local (or --prefix)', (options) ->
@@ -102,9 +52,9 @@ task 'install', 'install CoffeeScript into /usr/local (or --prefix)', (options)
lib = "#{base}/lib/coffee-script"
bin = "#{base}/bin"
node = "~/.node_libraries/coffee-script"
console.log "Installing CoffeeScript to #{lib}"
console.log "Linking to #{node}"
console.log "Linking 'coffee' to #{bin}/coffee"
console.log "Installing CoffeeScript to #{lib}"
console.log "Linking to #{node}"
console.log "Linking 'coffee' to #{bin}/coffee"
exec([
"mkdir -p #{lib} #{bin}"
"cp -rf bin lib LICENSE README.md package.json src #{lib}"
@@ -133,10 +83,11 @@ task 'build:full', 'rebuild the source twice, and run the tests', ->
task 'build:parser', 'rebuild the Jison parser (run build first)', ->
helpers.extend global, require('util')
helpers.extend global, require 'util'
require 'jison'
parser = require('./lib/coffee-script/grammar').parser
fs.writeFile 'lib/coffee-script/parser.js', parser.generate()
fs.writeFileSync 'lib/coffee-script/parser.js', parser.generate()
task 'build:browser', 'rebuild the merged script for inclusion in the browser', ->
code = ''
@@ -164,37 +115,139 @@ task 'build:browser', 'rebuild the merged script for inclusion in the browser',
}(this));
"""
unless process.env.MINIFY is 'false'
{code} = require('uglify-js').minify code, fromString: true
fs.writeFileSync 'extras/coffee-script.js', header + '\n' + code
{compiledCode} = require('google-closure-compiler-js').compile
jsCode: [
src: code
languageOut: if majorVersion is 1 then 'ES5' else 'ES6'
]
outputFolder = "docs/v#{majorVersion}/browser-compiler"
fs.mkdirSync outputFolder unless fs.existsSync outputFolder
fs.writeFileSync "#{outputFolder}/coffee-script.js", header + '\n' + compiledCode
console.log "built ... running browser tests:"
invoke 'test:browser'
task 'doc:site', 'watch and continually rebuild the documentation for the website', ->
source = 'documentation/index.html.js'
exec 'bin/coffee -bc -o documentation/js documentation/coffee/*.coffee'
# Helpers
codeFor = ->
counter = 0
hljs = require 'highlight.js'
hljs.configure classPrefix: ''
(file, executable = false, showLoad = true) ->
counter++
return unless fs.existsSync "docs/v#{majorVersion}/examples/#{file}.js"
cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
js = fs.readFileSync "docs/v#{majorVersion}/examples/#{file}.js", 'utf-8'
js = js.replace /^\/\/ generated.*?\n/i, ''
cshtml = "<pre><code>#{hljs.highlight('coffeescript', cs).value}</code></pre>"
# Temporary fix until highlight.js adds support for newer CoffeeScript keywords
# Added in https://github.com/isagalaev/highlight.js/pull/1357, awaiting release
if file in ['generator_iteration', 'generators', 'modules']
cshtml = cshtml.replace /(yield|import|export|from|as|default) /g, '<span class="keyword">$1</span> '
jshtml = "<pre><code>#{hljs.highlight('javascript', js).value}</code></pre>"
append = if executable is yes then '' else "alert(#{executable});".replace /"/g, '&quot;'
if executable and executable isnt yes
cs.replace /(\S)\s*\Z/m, "$1\n\nalert #{executable}"
run = if executable is true then 'run' else "run: #{executable}"
name = "example#{counter}"
script = "<script>window.#{name} = #{JSON.stringify cs}</script>"
load = if showLoad then "<div class='minibutton load' onclick='javascript: loadConsole(#{name});'>load</div>" else ''
button = if executable then """<div class="minibutton ok" onclick="javascript: #{js.replace /"/g, '&quot;'};#{append}">#{run}</div>""" else ''
"<div class='code'>#{cshtml}#{jshtml}#{script}#{load}#{button}<br class='clear' /></div>"
monthNames = [
'January'
'February'
'March'
'April'
'May'
'June'
'July'
'August'
'September'
'October'
'November'
'December'
]
formatDate = (date) ->
date.replace /^(\d\d\d\d)-(\d\d)-(\d\d)$/, (match, $1, $2, $3) ->
"#{monthNames[$2 - 1]} #{+$3}, #{$1}"
releaseHeader = (date, version, prevVersion) -> """
<div class="anchor" id="#{version}"></div>
<b class="header">
#{prevVersion and "<a href=\"https://github.com/jashkenas/coffeescript/compare/#{prevVersion}...#{version}\">#{version}</a>" or version}
<span class="timestamp"> &mdash; <time datetime="#{date}">#{formatDate date}</time></span>
</b>
"""
testHelpers = fs.readFileSync('test/support/helpers.coffee', 'utf-8').replace /exports\./g, '@'
testsInScriptBlocks = ->
output = ''
excludedTestFiles = ['error_messages.coffee']
for filename in fs.readdirSync 'test'
continue if filename in excludedTestFiles
if filename.indexOf('.coffee') isnt -1
type = 'coffeescript'
else if filename.indexOf('.litcoffee') isnt -1
type = 'literate-coffeescript'
else
continue
# Set the type to text/x-coffeescript or text/x-literate-coffeescript
# to prevent the browser compiler from automatically running the script
output += """
<script type="text/x-#{type}" class="test" id="#{filename.split('.')[0]}">
#{fs.readFileSync "test/#{filename}", 'utf-8'}
</script>\n
"""
output
# Task
examplesSourceFolder = 'documentation/examples'
examplesOutputFolder = "docs/v#{majorVersion}/examples"
fs.mkdirSync examplesOutputFolder unless fs.existsSync examplesOutputFolder
do renderExamples = ->
execSync "bin/coffee -bc -o #{examplesOutputFolder} #{examplesSourceFolder}/*.coffee"
indexFile = 'documentation/index.html'
do renderIndex = ->
codeSnippetCounter = 0
rendered = _.template fs.readFileSync(source, 'utf-8'),
render = _.template fs.readFileSync(indexFile, 'utf-8')
output = render
codeFor: codeFor()
releaseHeader: releaseHeader
fs.writeFileSync 'index.html', rendered
log "compiled", green, "#{source}"
majorVersion: majorVersion
fullVersion: CoffeeScript.VERSION
fs.writeFileSync "docs/v#{majorVersion}/index.html", output
log 'compiled', green, "#{indexFile} → docs/v#{majorVersion}/index.html"
fs.watchFile source, interval: 200, renderIndex
log "watching..." , green
testFile = 'documentation/test.html'
do renderTest = ->
render = _.template fs.readFileSync(testFile, 'utf-8')
output = render
testHelpers: testHelpers
tests: testsInScriptBlocks()
majorVersion: majorVersion
fs.writeFileSync "docs/v#{majorVersion}/test.html", output
log 'compiled', green, "#{testFile} → docs/v#{majorVersion}/test.html"
fs.watch examplesSourceFolder, interval: 200, ->
renderExamples()
renderIndex()
fs.watch indexFile, interval: 200, renderIndex
fs.watch testFile, interval: 200, renderTest
fs.watch 'test', interval: 200, renderTest
log 'watching...' , green
task 'doc:source', 'rebuild the internal documentation', ->
exec 'node_modules/.bin/docco src/*.*coffee && cp -rf docs documentation && rm -r docs', (err) ->
throw err if err
task 'doc:source', 'rebuild the annotated source documentation', ->
exec "node_modules/docco/bin/docco src/*.*coffee --output docs/v#{majorVersion}/annotated-source", (err) -> throw err if err
task 'doc:underscore', 'rebuild the Underscore.coffee documentation page', ->
exec 'node_modules/.bin/docco examples/underscore.coffee && cp -rf docs documentation && rm -r docs', (err) ->
throw err if err
task 'bench', 'quick benchmark of compilation time', ->
{Rewriter} = require './lib/coffee-script/rewriter'
sources = ['coffee-script', 'grammar', 'helpers', 'lexer', 'nodes', 'rewriter']
@@ -244,23 +297,7 @@ runTests = (CoffeeScript) ->
description: description if description?
source: fn.toString() if fn.toString?
# See http://wiki.ecmascript.org/doku.php?id=harmony:egal
egal = (a, b) ->
if a is b
a isnt 0 or 1/a is 1/b
else
a isnt a and b isnt b
# A recursive functional equivalence helper; uses egal for testing equivalence.
arrayEgal = (a, b) ->
if egal a, b then yes
else if a instanceof Array and b instanceof Array
return no unless a.length is b.length
return no for el, idx in a when not arrayEgal el, b[idx]
yes
global.eq = (a, b, msg) -> ok egal(a, b), msg ? "Expected #{a} to equal #{b}"
global.arrayEq = (a, b, msg) -> ok arrayEgal(a,b), msg ? "Expected #{a} to deep equal #{b}"
helpers.extend global, require './test/support/helpers'
# When all the tests have run, collect and print errors.
# If a stacktrace is available, output the compiled function source.
@@ -280,11 +317,6 @@ runTests = (CoffeeScript) ->
# Run every test in the `test` folder, recording failures.
files = fs.readdirSync 'test'
# Ignore generators test file if generators are not available
generatorsAreAvailable = '--harmony' in process.execArgv or
'--harmony-generators' in process.execArgv
files.splice files.indexOf('generators.coffee'), 1 if not generatorsAreAvailable
for file in files when helpers.isCoffee file
literate = helpers.isLiterate file
currentFile = filename = path.join 'test', file
@@ -301,7 +333,7 @@ task 'test', 'run the CoffeeScript language test suite', ->
task 'test:browser', 'run the test suite against the merged browser script', ->
source = fs.readFileSync 'extras/coffee-script.js', 'utf-8'
source = fs.readFileSync "docs/v#{majorVersion}/browser-compiler/coffee-script.js", 'utf-8'
result = {}
global.testingBrowser = yes
(-> eval source).call result

View File

@@ -1,6 +1,5 @@
{
"name": "coffee-script",
"version": "1.11.0",
"main": [
"lib/coffee-script/coffee-script.js"
],
@@ -11,13 +10,6 @@
"coffeescript",
"compiler"
],
"devDependencies": {
"uglify-js": "~2.2",
"jison": ">=0.2.0",
"highlight.js": "~9.6.0",
"underscore": "~1.5.2",
"docco": "~0.6.2"
},
"author": {
"name": "Jeremy Ashkenas"
},

View File

1
docs/index.html Symbolic link
View File

@@ -0,0 +1 @@
v1/index.html

1
docs/v1/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
examples/

View File

@@ -144,7 +144,7 @@ SourceMap = <span class="hljs-built_in">require</span> <span class="hljs-str
</div>
<div class="content"><div class='highlight'><pre>exports.VERSION = <span class="hljs-string">'1.11.0'</span>
<div class="content"><div class='highlight'><pre>exports.VERSION = <span class="hljs-string">'1.12.0'</span>
exports.FILE_EXTENSIONS = [<span class="hljs-string">'.coffee'</span>, <span class="hljs-string">'.litcoffee'</span>, <span class="hljs-string">'.coffee.md'</span>]</pre></div></div>
@@ -179,10 +179,7 @@ exports.FILE_EXTENSIONS = [<span class="hljs-string">'.coffee'</span>, <span cla
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-title">base64encode</span> = <span class="hljs-params">(src)</span> -&gt;</span> <span class="hljs-keyword">switch</span>
<span class="hljs-keyword">when</span> <span class="hljs-keyword">typeof</span> Buffer <span class="hljs-keyword">is</span> <span class="hljs-string">'function'</span>
<span class="hljs-keyword">new</span> Buffer(src).toString(<span class="hljs-string">'base64'</span>)
<span class="hljs-keyword">when</span> <span class="hljs-keyword">typeof</span> btoa <span class="hljs-keyword">is</span> <span class="hljs-string">'function'</span>
btoa(src)
<span class="hljs-keyword">else</span>
<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> Error(<span class="hljs-string">'Unable to base64 encode inline sourcemap.'</span>)</pre></div></div>
<span class="hljs-keyword">when</span> <span class="hljs-keyword">typeof</span> btoa <span class="hljs-keyword">is</span> <span class="hljs-string">'function'</span></pre></div></div>
</li>
@@ -193,6 +190,27 @@ exports.FILE_EXTENSIONS = [<span class="hljs-string">'.coffee'</span>, <span cla
<div class="pilwrap ">
<a class="pilcrow" href="#section-5">&#182;</a>
</div>
<p>The contents of a <code>&lt;script&gt;</code> block are encoded via UTF-16, so if any extended
characters are used in the block, btoa will fail as it maxes out at UTF-8.
See <a href="https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem">https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem</a>
for the gory details, and for the solution implemented here.</p>
</div>
<div class="content"><div class='highlight'><pre> btoa encodeURIComponent(src).replace <span class="hljs-regexp">/%([0-9A-F]{2})/g</span>, <span class="hljs-function"><span class="hljs-params">(match, p1)</span> -&gt;</span>
String.fromCharCode <span class="hljs-string">'0x'</span> + p1
<span class="hljs-keyword">else</span>
<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> Error(<span class="hljs-string">'Unable to base64 encode inline sourcemap.'</span>)</pre></div></div>
</li>
<li id="section-6">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-6">&#182;</a>
</div>
<p>Function wrapper to add source file information to SyntaxErrors thrown by the
lexer/parser/compiler.</p>
@@ -209,11 +227,11 @@ lexer/parser/compiler.</p>
</li>
<li id="section-6">
<li id="section-7">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-6">&#182;</a>
<a class="pilcrow" href="#section-7">&#182;</a>
</div>
<p>Compile CoffeeScript code to JavaScript, using the Coffee/Jison compiler.</p>
<p>If <code>options.sourceMap</code> is specified, then <code>options.filename</code> must also be specified. All
@@ -238,11 +256,11 @@ lookups.</p>
</li>
<li id="section-7">
<li id="section-8">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-7">&#182;</a>
<a class="pilcrow" href="#section-8">&#182;</a>
</div>
<p>Pass a list of referenced variables, so that generated variables wont get
the same name.</p>
@@ -256,11 +274,11 @@ the same name.</p>
</li>
<li id="section-8">
<li id="section-9">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-8">&#182;</a>
<a class="pilcrow" href="#section-9">&#182;</a>
</div>
<p>Check for import or export; if found, force bare mode</p>
@@ -284,11 +302,11 @@ the same name.</p>
</li>
<li id="section-9">
<li id="section-10">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-9">&#182;</a>
<a class="pilcrow" href="#section-10">&#182;</a>
</div>
<p>Update the sourcemap with data from each fragment</p>
@@ -299,11 +317,11 @@ the same name.</p>
</li>
<li id="section-10">
<li id="section-11">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-10">&#182;</a>
<a class="pilcrow" href="#section-11">&#182;</a>
</div>
<p>Do not include empty, whitespace, or semicolon-only fragments.</p>
@@ -324,11 +342,11 @@ the same name.</p>
</li>
<li id="section-11">
<li id="section-12">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-11">&#182;</a>
<a class="pilcrow" href="#section-12">&#182;</a>
</div>
<p>Copy the code from each fragment into the final JavaScript.</p>
@@ -361,11 +379,11 @@ the same name.</p>
</li>
<li id="section-12">
<li id="section-13">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-12">&#182;</a>
<a class="pilcrow" href="#section-13">&#182;</a>
</div>
<p>Tokenize a string of CoffeeScript code, and return the array of tokens.</p>
@@ -377,11 +395,11 @@ the same name.</p>
</li>
<li id="section-13">
<li id="section-14">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-13">&#182;</a>
<a class="pilcrow" href="#section-14">&#182;</a>
</div>
<p>Parse a string of CoffeeScript code or an array of lexed tokens, and
return the AST. You can then compile it by calling <code>.compile()</code> on the root,
@@ -398,11 +416,11 @@ or traverse it by using <code>.traverseChildren()</code> with a callback.</p>
</li>
<li id="section-14">
<li id="section-15">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-14">&#182;</a>
<a class="pilcrow" href="#section-15">&#182;</a>
</div>
<p>Compile and execute a string of CoffeeScript (on the server), correctly
setting <code>__filename</code>, <code>__dirname</code>, and relative <code>require()</code>.</p>
@@ -415,11 +433,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-15">
<li id="section-16">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-15">&#182;</a>
<a class="pilcrow" href="#section-16">&#182;</a>
</div>
<p>Set the filename.</p>
@@ -431,11 +449,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-16">
<li id="section-17">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-16">&#182;</a>
<a class="pilcrow" href="#section-17">&#182;</a>
</div>
<p>Clear the module cache.</p>
@@ -446,11 +464,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-17">
<li id="section-18">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-17">&#182;</a>
<a class="pilcrow" href="#section-18">&#182;</a>
</div>
<p>Assign paths for node_modules loading</p>
@@ -465,11 +483,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-18">
<li id="section-19">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-18">&#182;</a>
<a class="pilcrow" href="#section-19">&#182;</a>
</div>
<p>Compile.</p>
@@ -484,11 +502,11 @@ setting <code>__filename</code>, <code>__dirname</code>, and relative <code>requ
</li>
<li id="section-19">
<li id="section-20">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-19">&#182;</a>
<a class="pilcrow" href="#section-20">&#182;</a>
</div>
<p>Compile and evaluate a string of CoffeeScript (in a Node.js-like environment).
The CoffeeScript REPL uses this to run the input.</p>
@@ -518,11 +536,11 @@ The CoffeeScript REPL uses this to run the input.</p>
</li>
<li id="section-20">
<li id="section-21">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-20">&#182;</a>
<a class="pilcrow" href="#section-21">&#182;</a>
</div>
<p>define module/require only if they chose not to specify their own</p>
@@ -539,11 +557,11 @@ The CoffeeScript REPL uses this to run the input.</p>
</li>
<li id="section-21">
<li id="section-22">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-21">&#182;</a>
<a class="pilcrow" href="#section-22">&#182;</a>
</div>
<p>use the same hack node currently uses for their own REPL</p>
@@ -565,11 +583,11 @@ exports.register = <span class="hljs-function">-&gt;</span> <span class="hljs-bu
</li>
<li id="section-22">
<li id="section-23">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-22">&#182;</a>
<a class="pilcrow" href="#section-23">&#182;</a>
</div>
<p>Throw error with deprecation warning when depending upon implicit <code>require.extensions</code> registration</p>
@@ -597,11 +615,11 @@ exports._compileFile = <span class="hljs-function"><span class="hljs-params">(fi
</li>
<li id="section-23">
<li id="section-24">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-23">&#182;</a>
<a class="pilcrow" href="#section-24">&#182;</a>
</div>
<p>As the filename and code of a dynamically loaded file will be different
from the original file compiled with CoffeeScript.run, add that
@@ -616,11 +634,11 @@ information to error so it can be pretty-printed later.</p>
</li>
<li id="section-24">
<li id="section-25">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-24">&#182;</a>
<a class="pilcrow" href="#section-25">&#182;</a>
</div>
<p>Instantiate a Lexer for our use here.</p>
@@ -631,11 +649,11 @@ information to error so it can be pretty-printed later.</p>
</li>
<li id="section-25">
<li id="section-26">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-25">&#182;</a>
<a class="pilcrow" href="#section-26">&#182;</a>
</div>
<p>The real Lexer produces a generic stream of tokens. This object provides a
thin wrapper around it, compatible with the Jison API. We can then pass it
@@ -663,11 +681,11 @@ directly as a “Jison lexer”.</p>
</li>
<li id="section-26">
<li id="section-27">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-26">&#182;</a>
<a class="pilcrow" href="#section-27">&#182;</a>
</div>
<p>Make all the AST nodes visible to the parser.</p>
@@ -678,11 +696,11 @@ directly as a “Jison lexer”.</p>
</li>
<li id="section-27">
<li id="section-28">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-27">&#182;</a>
<a class="pilcrow" href="#section-28">&#182;</a>
</div>
<p>Override Jisons default error handling function.</p>
@@ -693,11 +711,11 @@ directly as a “Jison lexer”.</p>
</li>
<li id="section-28">
<li id="section-29">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-28">&#182;</a>
<a class="pilcrow" href="#section-29">&#182;</a>
</div>
<p>Disregard Jisons message, it contains redundant line number information.
Disregard the token, we take its value directly from the lexer in case
@@ -721,11 +739,11 @@ the error is caused by a generated token which might refer to its origin.</p>
</li>
<li id="section-29">
<li id="section-30">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-29">&#182;</a>
<a class="pilcrow" href="#section-30">&#182;</a>
</div>
<p>The second argument has a <code>loc</code> property, which should have the location
data for this token. Unfortunately, Jison seems to send an outdated <code>loc</code>
@@ -739,11 +757,11 @@ from the lexer.</p>
</li>
<li id="section-30">
<li id="section-31">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-30">&#182;</a>
<a class="pilcrow" href="#section-31">&#182;</a>
</div>
<p>Based on <a href="http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js">http://v8.googlecode.com/svn/branches/bleeding_edge/src/messages.js</a>
Modified to handle sourceMap</p>
@@ -771,11 +789,11 @@ Modified to handle sourceMap</p>
</li>
<li id="section-31">
<li id="section-32">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-31">&#182;</a>
<a class="pilcrow" href="#section-32">&#182;</a>
</div>
<p>Check for a sourceMap position</p>
@@ -797,13 +815,13 @@ Modified to handle sourceMap</p>
typeName = frame.getTypeName()
<span class="hljs-keyword">if</span> functionName
tp = as = <span class="hljs-string">''</span>
tp = <span class="hljs-keyword">as</span> = <span class="hljs-string">''</span>
<span class="hljs-keyword">if</span> typeName <span class="hljs-keyword">and</span> functionName.indexOf typeName
tp = <span class="hljs-string">"<span class="hljs-subst">#{typeName}</span>."</span>
<span class="hljs-keyword">if</span> methodName <span class="hljs-keyword">and</span> functionName.indexOf(<span class="hljs-string">".<span class="hljs-subst">#{methodName}</span>"</span>) <span class="hljs-keyword">isnt</span> functionName.length - methodName.length - <span class="hljs-number">1</span>
as = <span class="hljs-string">" [as <span class="hljs-subst">#{methodName}</span>]"</span>
<span class="hljs-keyword">as</span> = <span class="hljs-string">" [as <span class="hljs-subst">#{methodName}</span>]"</span>
<span class="hljs-string">"<span class="hljs-subst">#{tp}</span><span class="hljs-subst">#{functionName}</span><span class="hljs-subst">#{as}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-string">"<span class="hljs-subst">#{tp}</span><span class="hljs-subst">#{functionName}</span><span class="hljs-subst">#{<span class="hljs-keyword">as</span>}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-keyword">else</span>
<span class="hljs-string">"<span class="hljs-subst">#{typeName}</span>.<span class="hljs-subst">#{methodName <span class="hljs-keyword">or</span> <span class="hljs-string">'&lt;anonymous&gt;'</span>}</span> (<span class="hljs-subst">#{fileLocation}</span>)"</span>
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> isConstructor
@@ -816,11 +834,11 @@ Modified to handle sourceMap</p>
</li>
<li id="section-32">
<li id="section-33">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-32">&#182;</a>
<a class="pilcrow" href="#section-33">&#182;</a>
</div>
<p>Map of filenames -&gt; sourceMap object.</p>
@@ -831,11 +849,11 @@ Modified to handle sourceMap</p>
</li>
<li id="section-33">
<li id="section-34">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-33">&#182;</a>
<a class="pilcrow" href="#section-34">&#182;</a>
</div>
<p>Generates the source map for a coffee file and stores it in the local cache variable.</p>
@@ -852,11 +870,11 @@ Modified to handle sourceMap</p>
</li>
<li id="section-34">
<li id="section-35">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-34">&#182;</a>
<a class="pilcrow" href="#section-35">&#182;</a>
</div>
<p>Based on <a href="http://goo.gl/ZTx1p">michaelficarra/CoffeeScriptRedux</a>
NodeJS / V8 have no support for transforming positions in stack traces using

View File

@@ -981,6 +981,7 @@ and optional references to the superclass.</p>
</div>
<div class="content"><div class='highlight'><pre> Invocation: [
o <span class="hljs-string">'Value OptFuncExist String'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> TaggedTemplateCall $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>, $<span class="hljs-number">2</span>
o <span class="hljs-string">'Value OptFuncExist Arguments'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Call $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>, $<span class="hljs-number">2</span>
o <span class="hljs-string">'Invocation OptFuncExist Arguments'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Call $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>, $<span class="hljs-number">2</span>
o <span class="hljs-string">'Super'</span>
@@ -1344,12 +1345,12 @@ or postfix, with a single expression.</p>
ForBody: [
o <span class="hljs-string">'FOR Range'</span>, <span class="hljs-function">-&gt;</span> source: (LOC(<span class="hljs-number">2</span>) <span class="hljs-keyword">new</span> Value($<span class="hljs-number">2</span>))
o <span class="hljs-string">'FOR Range BY Expression'</span>, <span class="hljs-function">-&gt;</span> source: (LOC(<span class="hljs-number">2</span>) <span class="hljs-keyword">new</span> Value($<span class="hljs-number">2</span>)), step: $<span class="hljs-number">4</span>
o <span class="hljs-string">'ForStart ForSource'</span>, <span class="hljs-function">-&gt;</span> $<span class="hljs-number">2.</span>own = $<span class="hljs-number">1.</span>own; $<span class="hljs-number">2.</span>name = $<span class="hljs-number">1</span>[<span class="hljs-number">0</span>]; $<span class="hljs-number">2.</span>index = $<span class="hljs-number">1</span>[<span class="hljs-number">1</span>]; $<span class="hljs-number">2</span>
o <span class="hljs-string">'ForStart ForSource'</span>, <span class="hljs-function">-&gt;</span> $<span class="hljs-number">2.</span>own = $<span class="hljs-number">1.</span>own; $<span class="hljs-number">2.</span>ownTag = $<span class="hljs-number">1.</span>ownTag; $<span class="hljs-number">2.</span>name = $<span class="hljs-number">1</span>[<span class="hljs-number">0</span>]; $<span class="hljs-number">2.</span>index = $<span class="hljs-number">1</span>[<span class="hljs-number">1</span>]; $<span class="hljs-number">2</span>
]
ForStart: [
o <span class="hljs-string">'FOR ForVariables'</span>, <span class="hljs-function">-&gt;</span> $<span class="hljs-number">2</span>
o <span class="hljs-string">'FOR OWN ForVariables'</span>, <span class="hljs-function">-&gt;</span> $<span class="hljs-number">3.</span>own = <span class="hljs-literal">yes</span>; $<span class="hljs-number">3</span>
o <span class="hljs-string">'FOR OWN ForVariables'</span>, <span class="hljs-function">-&gt;</span> $<span class="hljs-number">3.</span>own = <span class="hljs-literal">yes</span>; $<span class="hljs-number">3.</span>ownTag = (LOC(<span class="hljs-number">2</span>) <span class="hljs-keyword">new</span> Literal($<span class="hljs-number">2</span>)); $<span class="hljs-number">3</span>
]</pre></div></div>
</li>
@@ -1416,6 +1417,8 @@ in fixed-size increments.</p>
o <span class="hljs-string">'FORIN Expression BY Expression'</span>, <span class="hljs-function">-&gt;</span> source: $<span class="hljs-number">2</span>, step: $<span class="hljs-number">4</span>
o <span class="hljs-string">'FORIN Expression WHEN Expression BY Expression'</span>, <span class="hljs-function">-&gt;</span> source: $<span class="hljs-number">2</span>, guard: $<span class="hljs-number">4</span>, step: $<span class="hljs-number">6</span>
o <span class="hljs-string">'FORIN Expression BY Expression WHEN Expression'</span>, <span class="hljs-function">-&gt;</span> source: $<span class="hljs-number">2</span>, step: $<span class="hljs-number">4</span>, guard: $<span class="hljs-number">6</span>
o <span class="hljs-string">'FORFROM Expression'</span>, <span class="hljs-function">-&gt;</span> source: $<span class="hljs-number">2</span>, from: <span class="hljs-literal">yes</span>
o <span class="hljs-string">'FORFROM Expression WHEN Expression'</span>, <span class="hljs-function">-&gt;</span> source: $<span class="hljs-number">2</span>, guard: $<span class="hljs-number">4</span>, from: <span class="hljs-literal">yes</span>
]
Switch: [
@@ -1527,7 +1530,7 @@ rules are necessary.</p>
<div class="pilwrap ">
<a class="pilcrow" href="#section-65">&#182;</a>
</div>
<p><a href="http://jashkenas.github.com/coffee-script/#existence">The existential operator</a>.</p>
<p><a href="http://coffeescript.org/#existential-operator">The existential operator</a>.</p>
</div>
@@ -1540,7 +1543,12 @@ rules are necessary.</p>
o <span class="hljs-string">'Expression ** Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression SHIFT Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression COMPARE Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression LOGIC Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression &amp; Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression ^ Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression | Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression &amp;&amp; Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression || Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression BIN? Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">2</span>, $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'Expression RELATION Expression'</span>, <span class="hljs-function">-&gt;</span>
<span class="hljs-keyword">if</span> $<span class="hljs-number">2.</span>charAt(<span class="hljs-number">0</span>) <span class="hljs-keyword">is</span> <span class="hljs-string">'!'</span>
<span class="hljs-keyword">new</span> Op($<span class="hljs-number">2</span>[<span class="hljs-number">1.</span>.], $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>).invert()
@@ -1611,11 +1619,16 @@ down. Following these rules is what makes <code>2 + 3 * 4</code> parse as:</p>
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'SHIFT'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'RELATION'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'COMPARE'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'LOGIC'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'&amp;'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'^'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'|'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'&amp;&amp;'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'||'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'BIN?'</span>]
[<span class="hljs-string">'nonassoc'</span>, <span class="hljs-string">'INDENT'</span>, <span class="hljs-string">'OUTDENT'</span>]
[<span class="hljs-string">'right'</span>, <span class="hljs-string">'YIELD'</span>]
[<span class="hljs-string">'right'</span>, <span class="hljs-string">'='</span>, <span class="hljs-string">':'</span>, <span class="hljs-string">'COMPOUND_ASSIGN'</span>, <span class="hljs-string">'RETURN'</span>, <span class="hljs-string">'THROW'</span>, <span class="hljs-string">'EXTENDS'</span>]
[<span class="hljs-string">'right'</span>, <span class="hljs-string">'FORIN'</span>, <span class="hljs-string">'FOROF'</span>, <span class="hljs-string">'BY'</span>, <span class="hljs-string">'WHEN'</span>]
[<span class="hljs-string">'right'</span>, <span class="hljs-string">'FORIN'</span>, <span class="hljs-string">'FOROF'</span>, <span class="hljs-string">'FORFROM'</span>, <span class="hljs-string">'BY'</span>, <span class="hljs-string">'WHEN'</span>]
[<span class="hljs-string">'right'</span>, <span class="hljs-string">'IF'</span>, <span class="hljs-string">'ELSE'</span>, <span class="hljs-string">'FOR'</span>, <span class="hljs-string">'WHILE'</span>, <span class="hljs-string">'UNTIL'</span>, <span class="hljs-string">'LOOP'</span>, <span class="hljs-string">'SUPER'</span>, <span class="hljs-string">'CLASS'</span>, <span class="hljs-string">'IMPORT'</span>, <span class="hljs-string">'EXPORT'</span>]
[<span class="hljs-string">'left'</span>, <span class="hljs-string">'POST_IF'</span>]
]</pre></div></div>

View File

@@ -478,7 +478,7 @@ The object is returned either way.</p>
</div>
<p>Throws a SyntaxError from a given location.
The errors <code>toString</code> will return an error message following the “standard”
format <filename>:<line>:<col>: <message> plus the line with the error and a
format <code>&lt;filename&gt;:&lt;line&gt;:&lt;col&gt;: &lt;message&gt;</code> plus the line with the error and a
marker showing where the error is.</p>
</div>

View File

@@ -458,7 +458,7 @@ parens. Unwrap all that.</p>
<div class="content"><div class='highlight'><pre> readFd = fs.openSync filename, <span class="hljs-string">'r'</span>
buffer = <span class="hljs-keyword">new</span> Buffer(size)
fs.readSync readFd, buffer, <span class="hljs-number">0</span>, size, stat.size - size
fs.close readFd</pre></div></div>
fs.closeSync readFd</pre></div></div>
</li>
@@ -525,10 +525,10 @@ parens. Unwrap all that.</p>
</div>
<div class="content"><div class='highlight'><pre> fs.write fd, <span class="hljs-string">"<span class="hljs-subst">#{code}</span>\n"</span>
<div class="content"><div class='highlight'><pre> fs.writeSync fd, <span class="hljs-string">"<span class="hljs-subst">#{code}</span>\n"</span>
lastLine = code
repl.<span class="hljs-literal">on</span> <span class="hljs-string">'exit'</span>, <span class="hljs-function">-&gt;</span> fs.close fd</pre></div></div>
repl.<span class="hljs-literal">on</span> <span class="hljs-string">'exit'</span>, <span class="hljs-function">-&gt;</span> fs.closeSync fd</pre></div></div>
</li>

View File

@@ -198,6 +198,7 @@ corrected before implicit parentheses can be wrapped around blocks of code.</p>
@tagPostfixConditionals()
@addImplicitBracesAndParens()
@addLocationDataToGeneratedTokens()
@fixOutdentLocationData()
@tokens</pre></div></div>
</li>
@@ -618,7 +619,7 @@ f a, f() b, f? c, h[0] d etc.</p>
a: b
b: c
</code></pre><p>Dont accept implicit calls of this type, when on the same line
as the control strucutures below as that may misinterpret constructs like:</p>
as the control structures below as that may misinterpret constructs like:</p>
<pre><code><span class="hljs-keyword">if</span> f
a: <span class="hljs-number">1</span>
</code></pre><p>as</p>
@@ -883,6 +884,34 @@ array further up the stack, so give it a chance.</p>
<div class="pilwrap ">
<a class="pilcrow" href="#section-35">&#182;</a>
</div>
<p>OUTDENT tokens should always be positioned at the last character of the
previous token, so that AST nodes ending in an OUTDENT token end up with a
location corresponding to the last “real” token under the node.</p>
</div>
<div class="content"><div class='highlight'><pre> fixOutdentLocationData: <span class="hljs-function">-&gt;</span>
@scanTokens (token, i, tokens) -&gt;
<span class="hljs-keyword">return</span> <span class="hljs-number">1</span> <span class="hljs-keyword">unless</span> token[<span class="hljs-number">0</span>] <span class="hljs-keyword">is</span> <span class="hljs-string">'OUTDENT'</span> <span class="hljs-keyword">or</span>
(token.generated <span class="hljs-keyword">and</span> token[<span class="hljs-number">0</span>] <span class="hljs-keyword">is</span> <span class="hljs-string">'CALL_END'</span>) <span class="hljs-keyword">or</span>
(token.generated <span class="hljs-keyword">and</span> token[<span class="hljs-number">0</span>] <span class="hljs-keyword">is</span> <span class="hljs-string">'}'</span>)
prevLocationData = tokens[i - <span class="hljs-number">1</span>][<span class="hljs-number">2</span>]
token[<span class="hljs-number">2</span>] =
first_line: prevLocationData.last_line
first_column: prevLocationData.last_column
last_line: prevLocationData.last_line
last_column: prevLocationData.last_column
<span class="hljs-keyword">return</span> <span class="hljs-number">1</span></pre></div></div>
</li>
<li id="section-36">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-36">&#182;</a>
</div>
<p>Because our grammar is LALR(1), it cant handle some single-line
expressions that lack ending delimiters. The <strong>Rewriter</strong> adds the implicit
blocks, so it doesnt need to. To keep the grammar clean and tidy, trailing
@@ -931,11 +960,11 @@ blocks are added.</p>
</li>
<li id="section-36">
<li id="section-37">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-36">&#182;</a>
<a class="pilcrow" href="#section-37">&#182;</a>
</div>
<p>Tag postfix conditionals as such, so that we can parse them with a
different precedence.</p>
@@ -964,11 +993,11 @@ different precedence.</p>
</li>
<li id="section-37">
<li id="section-38">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-37">&#182;</a>
<a class="pilcrow" href="#section-38">&#182;</a>
</div>
<p>Generate the indentation tokens, based on another token on the same line.</p>
@@ -989,11 +1018,11 @@ different precedence.</p>
</li>
<li id="section-38">
<li id="section-39">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-38">&#182;</a>
<a class="pilcrow" href="#section-39">&#182;</a>
</div>
<p>Look up a tag by token index.</p>
@@ -1004,26 +1033,14 @@ different precedence.</p>
</li>
<li id="section-39">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-39">&#182;</a>
</div>
<h2 id="constants">Constants</h2>
</div>
</li>
<li id="section-40">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-40">&#182;</a>
</div>
<h2 id="constants">Constants</h2>
</div>
</li>
@@ -1035,6 +1052,18 @@ different precedence.</p>
<div class="pilwrap ">
<a class="pilcrow" href="#section-41">&#182;</a>
</div>
</div>
</li>
<li id="section-42">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-42">&#182;</a>
</div>
<p>List of the token pairs that must be balanced.</p>
</div>
@@ -1054,11 +1083,11 @@ different precedence.</p>
</li>
<li id="section-42">
<li id="section-43">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-42">&#182;</a>
<a class="pilcrow" href="#section-43">&#182;</a>
</div>
<p>The inverse mappings of <code>BALANCED_PAIRS</code> were trying to fix up, so we can
look things up from either end.</p>
@@ -1070,11 +1099,11 @@ look things up from either end.</p>
</li>
<li id="section-43">
<li id="section-44">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-43">&#182;</a>
<a class="pilcrow" href="#section-44">&#182;</a>
</div>
<p>The tokens that signal the start/end of a balanced pair.</p>
@@ -1090,11 +1119,11 @@ EXPRESSION_END = []
</li>
<li id="section-44">
<li id="section-45">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-44">&#182;</a>
<a class="pilcrow" href="#section-45">&#182;</a>
</div>
<p>Tokens that indicate the close of a clause of an expression.</p>
@@ -1105,11 +1134,11 @@ EXPRESSION_END = []
</li>
<li id="section-45">
<li id="section-46">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-45">&#182;</a>
<a class="pilcrow" href="#section-46">&#182;</a>
</div>
<p>Tokens that, if followed by an <code>IMPLICIT_CALL</code>, indicate a function invocation.</p>
@@ -1120,11 +1149,11 @@ EXPRESSION_END = []
</li>
<li id="section-46">
<li id="section-47">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-46">&#182;</a>
<a class="pilcrow" href="#section-47">&#182;</a>
</div>
<p>If preceded by an <code>IMPLICIT_FUNC</code>, indicates a function invocation.</p>
@@ -1144,11 +1173,11 @@ IMPLICIT_UNSPACED_CALL = [<span class="hljs-string">'+'</span>, <span class="hlj
</li>
<li id="section-47">
<li id="section-48">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-47">&#182;</a>
<a class="pilcrow" href="#section-48">&#182;</a>
</div>
<p>Tokens that always mark the end of an implicit call for single-liners.</p>
@@ -1160,11 +1189,11 @@ IMPLICIT_UNSPACED_CALL = [<span class="hljs-string">'+'</span>, <span class="hlj
</li>
<li id="section-48">
<li id="section-49">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-48">&#182;</a>
<a class="pilcrow" href="#section-49">&#182;</a>
</div>
<p>Single-line flavors of block expressions that have unclosed endings.
The grammar cant disambiguate them, so we insert the implicit indentation.</p>
@@ -1177,11 +1206,11 @@ SINGLE_CLOSERS = [<span class="hljs-string">'TERMINATOR'</span>, <span class="
</li>
<li id="section-49">
<li id="section-50">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-49">&#182;</a>
<a class="pilcrow" href="#section-50">&#182;</a>
</div>
<p>Tokens that end a line.</p>
@@ -1192,11 +1221,11 @@ SINGLE_CLOSERS = [<span class="hljs-string">'TERMINATOR'</span>, <span class="
</li>
<li id="section-50">
<li id="section-51">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-50">&#182;</a>
<a class="pilcrow" href="#section-51">&#182;</a>
</div>
<p>Tokens that close open calls when they follow a newline.</p>

View File

@@ -0,0 +1,395 @@
/**
* CoffeeScript Compiler v1.12.0
* http://coffeescript.org
*
* Copyright 2011, Jeremy Ashkenas
* Released under the MIT License
*/
var $jscomp={scope:{},checkStringArgs:function(t,ya,pa){if(null==t)throw new TypeError("The 'this' value for String.prototype."+pa+" must not be null or undefined");if(ya instanceof RegExp)throw new TypeError("First argument to String.prototype."+pa+" must not be a regular expression");return t+""}};
$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(t,ya,pa){if(pa.get||pa.set)throw new TypeError("ES3 does not support getters and setters.");t!=Array.prototype&&t!=Object.prototype&&(t[ya]=pa.value)};$jscomp.getGlobal=function(t){return"undefined"!=typeof window&&window===t?t:"undefined"!=typeof global&&null!=global?global:t};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(t,ya,pa,f){if(ya){pa=$jscomp.global;t=t.split(".");for(f=0;f<t.length-1;f++){var ta=t[f];ta in pa||(pa[ta]={});pa=pa[ta]}t=t[t.length-1];f=pa[t];ya=ya(f);ya!=f&&null!=ya&&$jscomp.defineProperty(pa,t,{configurable:!0,writable:!0,value:ya})}};
$jscomp.polyfill("String.prototype.repeat",function(t){return t?t:function(t){var pa=$jscomp.checkStringArgs(this,null,"repeat");if(0>t||1342177279<t)throw new RangeError("Invalid count value");t|=0;for(var f="";t;)if(t&1&&(f+=pa),t>>>=1)pa+=pa;return f}},"es6-impl","es3");$jscomp.findInternal=function(t,ya,pa){t instanceof String&&(t=String(t));for(var f=t.length,ta=0;ta<f;ta++){var xa=t[ta];if(ya.call(pa,xa,ta,t))return{i:ta,v:xa}}return{i:-1,v:void 0}};
$jscomp.polyfill("Array.prototype.find",function(t){return t?t:function(t,pa){return $jscomp.findInternal(this,t,pa).v}},"es6-impl","es3");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(t){return $jscomp.SYMBOL_PREFIX+(t||"")+$jscomp.symbolCounter_++};
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var t=$jscomp.global.Symbol.iterator;t||(t=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[t]&&$jscomp.defineProperty(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};
$jscomp.arrayIterator=function(t){var ya=0;return $jscomp.iteratorPrototype(function(){return ya<t.length?{done:!1,value:t[ya++]}:{done:!0}})};$jscomp.iteratorPrototype=function(t){$jscomp.initSymbolIterator();t={next:t};t[$jscomp.global.Symbol.iterator]=function(){return this};return t};$jscomp.array=$jscomp.array||{};
$jscomp.iteratorFromArray=function(t,ya){$jscomp.initSymbolIterator();t instanceof String&&(t+="");var pa=0,f={next:function(){if(pa<t.length){var ta=pa++;return{value:ya(ta,t[ta]),done:!1}}f.next=function(){return{done:!0,value:void 0}};return f.next()}};f[Symbol.iterator]=function(){return f};return f};$jscomp.polyfill("Array.prototype.keys",function(t){return t?t:function(){return $jscomp.iteratorFromArray(this,function(t){return t})}},"es6-impl","es3");
(function(t){var ya=function(){function t(f){return t[f]}t["./helpers"]=function(){var f={};(function(){var t,xa,D,a,c,Ca;f.starts=function(a,c,l){return c===a.substr(l,c.length)};f.ends=function(a,c,l){var d;d=c.length;return c===a.substr(a.length-d-(l||0),d)};f.repeat=c=function(a,c){var d;for(d="";0<c;)c&1&&(d+=a),c>>>=1,a+=a;return d};f.compact=function(a){var d,c,f,D;D=[];d=0;for(f=a.length;d<f;d++)(c=a[d])&&D.push(c);return D};f.count=function(a,c){var d,v;d=v=0;if(!c.length)return 1/0;for(;v=
1+a.indexOf(c,v);)d++;return d};f.merge=function(a,c){return xa(xa({},a),c)};xa=f.extend=function(a,c){var d,v;for(d in c)v=c[d],a[d]=v;return a};f.flatten=D=function(a){var d,c,f,F;c=[];f=0;for(F=a.length;f<F;f++)d=a[f],"[object Array]"===Object.prototype.toString.call(d)?c=c.concat(D(d)):c.push(d);return c};f.del=function(a,c){var d;d=a[c];delete a[c];return d};f.some=null!=(a=Array.prototype.some)?a:function(a){var d,c,f;c=0;for(f=this.length;c<f;c++)if(d=this[c],a(d))return!0;return!1};f.invertLiterate=
function(a){var d;d=!0;var c,f,D,w;D=a.split("\n");w=[];c=0;for(f=D.length;c<f;c++)a=D[c],d&&/^([ ]{4}|[ ]{0,3}\t)/.test(a)?w.push(a):(d=/^\s*$/.test(a))?w.push(a):w.push("# "+a);return w.join("\n")};t=function(a,c){return c?{first_line:a.first_line,first_column:a.first_column,last_line:c.last_line,last_column:c.last_column}:a};f.addLocationDataFn=function(a,c){return function(d){"object"===typeof d&&d.updateLocationDataIfMissing&&d.updateLocationDataIfMissing(t(a,c));return d}};f.locationDataToString=
function(a){var d;"2"in a&&"first_line"in a[2]?d=a[2]:"first_line"in a&&(d=a);return d?d.first_line+1+":"+(d.first_column+1)+"-"+(d.last_line+1+":"+(d.last_column+1)):"No location data"};f.baseFileName=function(a,c,f){null==c&&(c=!1);null==f&&(f=!1);a=a.split(f?/\\|\//:/\//);a=a[a.length-1];if(!(c&&0<=a.indexOf(".")))return a;a=a.split(".");a.pop();"coffee"===a[a.length-1]&&1<a.length&&a.pop();return a.join(".")};f.isCoffee=function(a){return/\.((lit)?coffee|coffee\.md)$/.test(a)};f.isLiterate=function(a){return/\.(litcoffee|coffee\.md)$/.test(a)};
f.throwSyntaxError=function(a,c){a=new SyntaxError(a);a.location=c;a.toString=Ca;a.stack=a.toString();throw a;};f.updateSyntaxError=function(a,c,f){a.toString===Ca&&(a.code||(a.code=c),a.filename||(a.filename=f),a.stack=a.toString());return a};Ca=function(){var a,f,l,D,F,w,z,n,G,t;if(!this.code||!this.location)return Error.prototype.toString.call(this);a=this.location;w=a.first_line;F=a.first_column;l=a.last_line;z=a.last_column;null==l&&(l=w);null==z&&(z=F);D=this.filename||"[stdin]";a=this.code.split("\n")[w];
l=w===l?z+1:a.length;z=a.slice(0,F).replace(/[^\s]/g," ")+c("^",l-F);"undefined"!==typeof process&&null!==process&&(f=(null!=(n=process.stdout)?n.isTTY:void 0)&&!(null!=(G=process.env)&&G.NODE_DISABLE_COLORS));if(null!=(t=this.colorful)?t:f)f=function(a){return"\u001b[1;31m"+a+"\u001b[0m"},a=a.slice(0,F)+f(a.slice(F,l))+a.slice(l),z=f(z);return D+":"+(w+1)+":"+(F+1)+": error: "+this.message+"\n"+a+"\n"+z};f.nameWhitespaceCharacter=function(a){switch(a){case " ":return"space";case "\n":return"newline";
case "\r":return"carriage return";case "\t":return"tab";default:return a}}}).call(this);return f}();t["./rewriter"]=function(){var f={};(function(){var t,xa,D,a,c,Ca,d,v,l,u,F,w,z,n,G,L,I,x,E=[].indexOf||function(a){for(var c=0,d=this.length;c<d;c++)if(c in this&&this[c]===a)return c;return-1},m=[].slice;n=function(a,c,d){a=[a,c];a.generated=!0;d&&(a.origin=d);return a};f.Rewriter=function(){function g(){}g.prototype.rewrite=function(a){this.tokens=a;this.removeLeadingNewlines();this.closeOpenCalls();
this.closeOpenIndexes();this.normalizeLines();this.tagPostfixConditionals();this.addImplicitBracesAndParens();this.addLocationDataToGeneratedTokens();this.fixOutdentLocationData();return this.tokens};g.prototype.scanTokens=function(a){var c,d,h;h=this.tokens;for(c=0;d=h[c];)c+=a.call(this,d,c,h);return!0};g.prototype.detectEnd=function(d,q,k){var h,r,g,f,m;m=this.tokens;for(h=0;f=m[d];){if(0===h&&q.call(this,f,d))return k.call(this,f,d);if(!f||0>h)return k.call(this,f,d-1);(r=f[0],0<=E.call(c,r))?
h+=1:(g=f[0],0<=E.call(a,g))&&--h;d+=1}return d-1};g.prototype.removeLeadingNewlines=function(){var a,c,d,h,g;h=this.tokens;a=c=0;for(d=h.length;c<d&&(g=h[a][0],"TERMINATOR"===g);a=++c);if(a)return this.tokens.splice(0,a)};g.prototype.closeOpenCalls=function(){var a,c;c=function(a,c){var h;return")"===(h=a[0])||"CALL_END"===h||"OUTDENT"===a[0]&&")"===this.tag(c-1)};a=function(a,c){return this.tokens["OUTDENT"===a[0]?c-1:c][0]="CALL_END"};return this.scanTokens(function(d,h){"CALL_START"===d[0]&&this.detectEnd(h+
1,c,a);return 1})};g.prototype.closeOpenIndexes=function(){var a,c;c=function(a,c){var h;return"]"===(h=a[0])||"INDEX_END"===h};a=function(a,c){return a[0]="INDEX_END"};return this.scanTokens(function(d,h){"INDEX_START"===d[0]&&this.detectEnd(h+1,c,a);return 1})};g.prototype.indexOfTag=function(){var a,c,d,h,g,f,H;c=arguments[0];g=2<=arguments.length?m.call(arguments,1):[];d=h=a=0;for(f=g.length;0<=f?h<f:h>f;d=0<=f?++h:--h){for(;"HERECOMMENT"===this.tag(c+d+a);)a+=2;if(null!=g[d]&&("string"===typeof g[d]&&
(g[d]=[g[d]]),H=this.tag(c+d+a),0>E.call(g[d],H)))return-1}return c+d+a-1};g.prototype.looksObjectish=function(d){var g;if(-1<this.indexOfTag(d,"@",null,":")||-1<this.indexOfTag(d,null,":"))return!0;d=this.indexOfTag(d,c);return-1<d&&(g=null,this.detectEnd(d+1,function(c){var d;return d=c[0],0<=E.call(a,d)},function(a,c){return g=c}),":"===this.tag(g+1))?!0:!1};g.prototype.findTagsBackwards=function(d,g){var f,h,r,q,H,m,l;for(f=[];0<=d&&(f.length||(q=this.tag(d),0>E.call(g,q))&&((H=this.tag(d),0>
E.call(c,H))||this.tokens[d].generated)&&(m=this.tag(d),0>E.call(F,m)));)(h=this.tag(d),0<=E.call(a,h))&&f.push(this.tag(d)),(r=this.tag(d),0<=E.call(c,r))&&f.length&&f.pop(),--d;return l=this.tag(d),0<=E.call(g,l)};g.prototype.addImplicitBracesAndParens=function(){var g,f;g=[];f=null;return this.scanTokens(function(q,h,r){var k,m,y,K,D,x,u,z,C,A,G,B,t,w,I,L,U,J;J=q[0];A=(G=0<h?r[h-1]:[])[0];C=(h<r.length-1?r[h+1]:[])[0];I=function(){return g[g.length-1]};L=h;y=function(a){return h-L+a};K=function(){var a,
c;return null!=(a=I())?null!=(c=a[2])?c.ours:void 0:void 0};D=function(){var a;return K()&&"("===(null!=(a=I())?a[0]:void 0)};u=function(){var a;return K()&&"{"===(null!=(a=I())?a[0]:void 0)};x=function(){var a;return K&&"CONTROL"===(null!=(a=I())?a[0]:void 0)};U=function(a){var c;c=null!=a?a:h;g.push(["(",c,{ours:!0}]);r.splice(c,0,n("CALL_START","("));if(null==a)return h+=1};k=function(){g.pop();r.splice(h,0,n("CALL_END",")",["","end of input",q[2]]));return h+=1};z=function(a,c){var d;null==c&&
(c=!0);d=null!=a?a:h;g.push(["{",d,{sameLine:!0,startsLine:c,ours:!0}]);c=new String("{");c.generated=!0;r.splice(d,0,n("{",c,q));if(null==a)return h+=1};m=function(a){a=null!=a?a:h;g.pop();r.splice(a,0,n("}","}",q));return h+=1};if(D()&&("IF"===J||"TRY"===J||"FINALLY"===J||"CATCH"===J||"CLASS"===J||"SWITCH"===J))return g.push(["CONTROL",h,{ours:!0}]),y(1);if("INDENT"===J&&K()){if("\x3d\x3e"!==A&&"-\x3e"!==A&&"["!==A&&"("!==A&&","!==A&&"{"!==A&&"TRY"!==A&&"ELSE"!==A&&"\x3d"!==A)for(;D();)k();x()&&
g.pop();g.push([J,h]);return y(1)}if(0<=E.call(c,J))return g.push([J,h]),y(1);if(0<=E.call(a,J)){for(;K();)D()?k():u()?m():g.pop();f=g.pop()}if((0<=E.call(v,J)&&q.spaced||"?"===J&&0<h&&!r[h-1].spaced)&&(0<=E.call(Ca,C)||0<=E.call(l,C)&&(null==(B=r[h+1])||!B.spaced)&&(null==(t=r[h+1])||!t.newLine)))return"?"===J&&(J=q[0]="FUNC_EXIST"),U(h+1),y(2);if(0<=E.call(v,J)&&-1<this.indexOfTag(h+1,"INDENT")&&this.looksObjectish(h+2)&&!this.findTagsBackwards(h,"CLASS EXTENDS IF CATCH SWITCH LEADING_WHEN FOR WHILE UNTIL".split(" ")))return U(h+
1),g.push(["INDENT",h+2]),y(3);if(":"===J){for(m=function(){var c;switch(!1){case c=this.tag(h-1),0>E.call(a,c):return f[1];case "@"!==this.tag(h-2):return h-2;default:return h-1}}.call(this);"HERECOMMENT"===this.tag(m-2);)m-=2;this.insideForDeclaration="FOR"===C;x=0===m||(w=this.tag(m-1),0<=E.call(F,w))||r[m-1].newLine;if(I()&&(u=I(),w=u[0],G=u[1],("{"===w||"INDENT"===w&&"{"===this.tag(G-1))&&(x||","===this.tag(m-1)||"{"===this.tag(m-1))))return y(1);z(m,!!x);return y(2)}u()&&0<=E.call(F,J)&&(I()[2].sameLine=
!1);z="OUTDENT"===A||G.newLine;if(0<=E.call(d,J)||0<=E.call(xa,J)&&z)for(;K();)if(z=I(),w=z[0],G=z[1],w=z[2],z=w.sameLine,x=w.startsLine,D()&&","!==A)k();else if(u()&&!this.insideForDeclaration&&z&&"TERMINATOR"!==J&&":"!==A)m();else if(!u()||"TERMINATOR"!==J||","===A||x&&this.looksObjectish(h+1))break;else{if("HERECOMMENT"===C)return y(1);m()}if(!(","!==J||this.looksObjectish(h+1)||!u()||this.insideForDeclaration||"TERMINATOR"===C&&this.looksObjectish(h+2)))for(C="OUTDENT"===C?1:0;u();)m(h+C);return y(1)})};
g.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(a,c,d){var h,g,f;if(a[2]||!a.generated&&!a.explicit)return 1;"{"===a[0]&&(h=null!=(f=d[c+1])?f[2]:void 0)?(g=h.first_line,h=h.first_column):(h=null!=(g=d[c-1])?g[2]:void 0)?(g=h.last_line,h=h.last_column):g=h=0;a[2]={first_line:g,first_column:h,last_line:g,last_column:h};return 1})};g.prototype.fixOutdentLocationData=function(){return this.scanTokens(function(a,c,d){if(!("OUTDENT"===a[0]||a.generated&&"CALL_END"===
a[0]||a.generated&&"}"===a[0]))return 1;c=d[c-1][2];a[2]={first_line:c.last_line,first_column:c.last_column,last_line:c.last_line,last_column:c.last_column};return 1})};g.prototype.normalizeLines=function(){var a,c,d,h,g;g=d=h=null;c=function(a,c){var d,h,f,m;return";"!==a[1]&&(d=a[0],0<=E.call(w,d))&&!("TERMINATOR"===a[0]&&(h=this.tag(c+1),0<=E.call(D,h)))&&!("ELSE"===a[0]&&"THEN"!==g)&&!!("CATCH"!==(f=a[0])&&"FINALLY"!==f||"-\x3e"!==g&&"\x3d\x3e"!==g)||(m=a[0],0<=E.call(xa,m))&&this.tokens[c-1].newLine};
a=function(a,c){return this.tokens.splice(","===this.tag(c-1)?c-1:c,0,h)};return this.scanTokens(function(f,q,r){var k,l,x;f=f[0];if("TERMINATOR"===f){if("ELSE"===this.tag(q+1)&&"OUTDENT"!==this.tag(q-1))return r.splice.apply(r,[q,1].concat(m.call(this.indentation()))),1;if(k=this.tag(q+1),0<=E.call(D,k))return r.splice(q,1),0}if("CATCH"===f)for(k=l=1;2>=l;k=++l)if("OUTDENT"===(x=this.tag(q+k))||"TERMINATOR"===x||"FINALLY"===x)return r.splice.apply(r,[q+k,0].concat(m.call(this.indentation()))),2+
k;0<=E.call(z,f)&&"INDENT"!==this.tag(q+1)&&("ELSE"!==f||"IF"!==this.tag(q+1))&&(g=f,x=this.indentation(r[q]),d=x[0],h=x[1],"THEN"===g&&(d.fromThen=!0),r.splice(q+1,0,d),this.detectEnd(q+2,c,a),"THEN"===f&&r.splice(q,1));return 1})};g.prototype.tagPostfixConditionals=function(){var a,c,d;d=null;c=function(a,c){a=a[0];c=this.tokens[c-1][0];return"TERMINATOR"===a||"INDENT"===a&&0>E.call(z,c)};a=function(a,c){if("INDENT"!==a[0]||a.generated&&!a.fromThen)return d[0]="POST_"+d[0]};return this.scanTokens(function(h,
g){if("IF"!==h[0])return 1;d=h;this.detectEnd(g+1,c,a);return 1})};g.prototype.indentation=function(a){var c,d;c=["INDENT",2];d=["OUTDENT",2];a?(c.generated=d.generated=!0,c.origin=d.origin=a):c.explicit=d.explicit=!0;return[c,d]};g.prototype.generate=n;g.prototype.tag=function(a){var c;return null!=(c=this.tokens[a])?c[0]:void 0};return g}();t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],
["REGEX_START","REGEX_END"]];f.INVERSES=u={};c=[];a=[];G=0;for(I=t.length;G<I;G++)x=t[G],L=x[0],x=x[1],c.push(u[x]=L),a.push(u[L]=x);D=["CATCH","THEN","ELSE","FINALLY"].concat(a);v="IDENTIFIER PROPERTY SUPER ) CALL_END ] INDEX_END @ THIS".split(" ");Ca="IDENTIFIER PROPERTY NUMBER INFINITY NAN STRING STRING_START REGEX REGEX_START JS NEW PARAM_START CLASS IF TRY SWITCH THIS UNDEFINED NULL BOOL UNARY YIELD UNARY_MATH SUPER THROW @ -\x3e \x3d\x3e [ ( { -- ++".split(" ");l=["+","-"];d="POST_IF FOR WHILE UNTIL WHEN BY LOOP TERMINATOR".split(" ");
z="ELSE -\x3e \x3d\x3e TRY FINALLY THEN".split(" ");w="TERMINATOR CATCH FINALLY ELSE OUTDENT LEADING_WHEN".split(" ");F=["TERMINATOR","INDENT","OUTDENT"];xa=[".","?.","::","?::"]}).call(this);return f}();t["./lexer"]=function(){var f={};(function(){var ta,xa,D,a,c,Ca,d,v,l,u,F,w,z,n,G,L,I,x,E,m,g,r,q,k,h,K,O,H,y,T,S,P,Z,R,C,A,W,B,N,X,Y,V,U,J,aa,Q,pa,ya,Xa,ia,ba,da,ga,fa,ka,ja,M,ha,ca=[].indexOf||function(a){for(var c=0,d=this.length;c<d;c++)if(c in this&&this[c]===a)return c;return-1},oa=[].slice;
ja=t("./rewriter");B=ja.Rewriter;g=ja.INVERSES;ja=t("./helpers");da=ja.count;M=ja.repeat;ga=ja.invertLiterate;ha=ja.throwSyntaxError;f.Lexer=function(){function f(){}f.prototype.tokenize=function(a,c){var d,f,qa,h;null==c&&(c={});this.literate=c.literate;this.outdebt=this.indebt=this.baseIndent=this.indent=0;this.indents=[];this.ends=[];this.tokens=[];this.exportSpecifierList=this.seenExport=this.seenImport=this.seenFor=!1;this.chunkLine=c.line||0;this.chunkColumn=c.column||0;a=this.clean(a);for(qa=
0;this.chunk=a.slice(qa);)if(d=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),h=this.getLineAndColumnFromChunk(d),this.chunkLine=h[0],this.chunkColumn=h[1],qa+=d,c.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:qa};this.closeIndentation();(f=this.ends.pop())&&this.error("missing "+f.tag,f.origin[2]);return!1===c.rewrite?this.tokens:(new B).rewrite(this.tokens)};
f.prototype.clean=function(a){a.charCodeAt(0)===ta&&(a=a.slice(1));a=a.replace(/\r/g,"").replace(pa,"");ba.test(a)&&(a="\n"+a,this.chunkLine--);this.literate&&(a=ga(a));return a};f.prototype.identifierToken=function(){var d,f,g,m,r,k,l,x,D,y,n;if(!(f=I.exec(this.chunk)))return 0;r=f[0];g=f[1];f=f[2];m=g.length;k=void 0;if("own"===g&&"FOR"===this.tag())return this.token("OWN",g),g.length;if("from"===g&&"YIELD"===this.tag())return this.token("FROM",g),g.length;if("as"===g&&this.seenImport){if("*"===
this.value())this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(l=this.value(),0<=ca.call(Ca,l))this.tokens[this.tokens.length-1][0]="IDENTIFIER";if("IMPORT_ALL"===(x=this.tag())||"IDENTIFIER"===x)return this.token("AS",g),g.length}if("as"===g&&this.seenExport&&"IDENTIFIER"===this.tag())return this.token("AS",g),g.length;if("default"===g&&this.seenExport)return this.token("DEFAULT",g),g.length;l=this.tokens;l=l[l.length-1];n=f||null!=l&&("."===(D=l[0])||"?."===D||"::"===D||"?::"===D||!l.spaced&&
"@"===l[0])?"PROPERTY":"IDENTIFIER";"IDENTIFIER"!==n||!(0<=ca.call(q,g)||0<=ca.call(Ca,g))||this.exportSpecifierList&&0<=ca.call(Ca,g)?"IDENTIFIER"===n&&this.seenFor&&"from"===g&&(n="FORFROM",this.seenFor=!1):(n=g.toUpperCase(),"WHEN"===n&&(y=this.tag(),0<=ca.call(h,y))?n="LEADING_WHEN":"FOR"===n?this.seenFor=!0:"UNLESS"===n?n="IF":"IMPORT"===n?this.seenImport=!0:"EXPORT"===n?this.seenExport=!0:0<=ca.call(ya,n)?n="UNARY":0<=ca.call(A,n)&&("INSTANCEOF"!==n&&this.seenFor?(n="FOR"+n,this.seenFor=!1):
(n="RELATION","!"===this.value()&&(k=this.tokens.pop(),g="!"+g))));"IDENTIFIER"===n&&0<=ca.call(W,g)&&this.error("reserved word '"+g+"'",{length:g.length});"PROPERTY"!==n&&(0<=ca.call(a,g)&&(d=g,g=c[g]),n=function(){switch(g){case "!":return"UNARY";case "\x3d\x3d":case "!\x3d":return"COMPARE";case "true":case "false":return"BOOL";case "break":case "continue":case "debugger":return"STATEMENT";case "\x26\x26":case "||":return g;default:return n}}());D=this.token(n,g,0,m);d&&(D.origin=[n,d,D[2]]);k&&
(d=[k[2].first_line,k[2].first_column],D[2].first_line=d[0],D[2].first_column=d[1]);f&&(d=r.lastIndexOf(":"),this.token(":",":",d,f.length));return r.length};f.prototype.numberToken=function(){var a,c,d,g;if(!(c=T.exec(this.chunk)))return 0;d=c[0];c=d.length;switch(!1){case !/^0[BOX]/.test(d):this.error("radix prefix in '"+d+"' must be lowercase",{offset:1});break;case !/^(?!0x).*E/.test(d):this.error("exponential notation in '"+d+"' must be indicated with a lowercase 'e'",{offset:d.indexOf("E")});
break;case !/^0\d*[89]/.test(d):this.error("decimal literal '"+d+"' must not be prefixed with '0'",{length:c});break;case !/^0\d+/.test(d):this.error("octal literal '"+d+"' must be prefixed with '0o'",{length:c})}a=function(){switch(d.charAt(1)){case "b":return 2;case "o":return 8;case "x":return 16;default:return null}}();a=null!=a?parseInt(d.slice(2),a):parseFloat(d);if("b"===(g=d.charAt(1))||"o"===g)d="0x"+a.toString(16);this.token(Infinity===a?"INFINITY":"NUMBER",d,0,c);return c};f.prototype.stringToken=
function(){var a,c,d,g,f,h,m,q,r,n,l,D;r=(aa.exec(this.chunk)||[])[0];if(!r)return 0;this.tokens.length&&"from"===this.value()&&(this.seenImport||this.seenExport)&&(this.tokens[this.tokens.length-1][0]="FROM");d=function(){switch(r){case "'":return J;case '"':return V;case "'''":return z;case '"""':return F}}();g=3===r.length;d=this.matchWithInterpolations(d,r);D=d.tokens;f=d.index;a=D.length-1;d=r.charAt(0);if(g){m=null;for(g=function(){var a,c,d;d=[];h=a=0;for(c=D.length;a<c;h=++a)l=D[h],"NEOSTRING"===
l[0]&&d.push(l[1]);return d}().join("#{}");c=w.exec(g);)if(c=c[1],null===m||0<(n=c.length)&&n<m.length)m=c;m&&(q=RegExp("\\n"+m,"g"));this.mergeInterpolationTokens(D,{delimiter:d},function(c){return function(d,g){d=c.formatString(d);q&&(d=d.replace(q,"\n"));0===g&&(d=d.replace(k,""));g===a&&(d=d.replace(Q,""));return d}}(this))}else this.mergeInterpolationTokens(D,{delimiter:d},function(c){return function(d,g){d=c.formatString(d);return d=d.replace(X,function(c,f){return 0===g&&0===f||g===a&&f+c.length===
d.length?"":" "})}}(this));return f};f.prototype.commentToken=function(){var a,c,g;if(!(g=this.chunk.match(d)))return 0;a=g[0];if(c=g[1])(g=u.exec(a))&&this.error("block comments cannot contain "+g[0],{offset:g.index,length:g[0].length}),0<=c.indexOf("\n")&&(c=c.replace(RegExp("\\n"+M(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",c,0,a.length);return a.length};f.prototype.jsToken=function(){var a,c;if("`"!==this.chunk.charAt(0)||!(a=L.exec(this.chunk)||r.exec(this.chunk)))return 0;c=a[1].replace(/\\+(`|$)/g,
function(a){return a.slice(-Math.ceil(a.length/2))});this.token("JS",c,0,a[0].length);return a[0].length};f.prototype.regexToken=function(){var a,c,d,g,f,h,m,r;switch(!1){case !(c=C.exec(this.chunk)):this.error("regular expressions cannot begin with "+c[2],{offset:c.index+c[1].length});break;case !(c=this.matchWithInterpolations(n,"///")):r=c.tokens;f=c.index;break;case !(c=Z.exec(this.chunk)):m=c[0];a=c[1];c=c[2];this.validateEscapes(a,{isRegex:!0,offsetInChunk:1});f=m.length;h=this.tokens;if(h=
h[h.length-1])if(h.spaced&&(d=h[0],0<=ca.call(xa,d))){if(!c||P.test(m))return 0}else if(g=h[0],0<=ca.call(y,g))return 0;c||this.error("missing / (unclosed regex)");break;default:return 0}g=R.exec(this.chunk.slice(f))[0];d=f+g.length;c=this.makeToken("REGEX",null,0,d);switch(!1){case !!ia.test(g):this.error("invalid regular expression flags "+g,{offset:f,length:g.length});break;case !(m||1===r.length):null==a&&(a=this.formatHeregex(r[0][1]));this.token("REGEX",""+this.makeDelimitedLiteral(a,{delimiter:"/"})+
g,0,d,c);break;default:this.token("REGEX_START","(",0,0,c),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(r,{delimiter:'"',double:!0},this.formatHeregex),g&&(this.token(",",",",f,0),this.token("STRING",'"'+g+'"',f,g.length)),this.token(")",")",d,0),this.token("REGEX_END",")",d,0)}return d};f.prototype.lineToken=function(){var a,c,d;if(!(c=H.exec(this.chunk)))return 0;c=c[0];this.seenFor=!1;d=c.length-1-c.lastIndexOf("\n");a=this.unfinished();if(d-
this.indebt===this.indent)return a?this.suppressNewlines():this.newlineToken(0),c.length;if(d>this.indent){if(a)return this.indebt=d-this.indent,this.suppressNewlines(),c.length;if(!this.tokens.length)return this.baseIndent=this.indent=d,c.length;a=d-this.indent+this.outdebt;this.token("INDENT",a,c.length-d,d);this.indents.push(a);this.ends.push({tag:"OUTDENT"});this.outdebt=this.indebt=0;this.indent=d}else d<this.baseIndent?this.error("missing indentation",{offset:c.length}):(this.indebt=0,this.outdentToken(this.indent-
d,a,c.length));return c.length};f.prototype.outdentToken=function(a,c,d){var g,f,h,m;for(g=this.indent-a;0<a;)(h=this.indents[this.indents.length-1])?h===this.outdebt?(a-=this.outdebt,this.outdebt=0):h<this.outdebt?(this.outdebt-=h,a-=h):(f=this.indents.pop()+this.outdebt,d&&(m=this.chunk[d],0<=ca.call(x,m))&&(g-=f-a,a=f),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",a,0,d),a-=f):a=0;f&&(this.outdebt-=a);for(;";"===this.value();)this.tokens.pop();"TERMINATOR"===this.tag()||c||this.token("TERMINATOR",
"\n",d,0);this.indent=g;return this};f.prototype.whitespaceToken=function(){var a,c;if(!(a=ba.exec(this.chunk))&&"\n"!==this.chunk.charAt(0))return 0;c=this.tokens;(c=c[c.length-1])&&(c[a?"spaced":"newLine"]=!0);return a?a[0].length:0};f.prototype.newlineToken=function(a){for(;";"===this.value();)this.tokens.pop();"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",a,0);return this};f.prototype.suppressNewlines=function(){"\\"===this.value()&&this.tokens.pop();return this};f.prototype.literalToken=
function(){var a,c,d,f,h,m,r,q;(a=S.exec(this.chunk))?(a=a[0],D.test(a)&&this.tagParameters()):a=this.chunk.charAt(0);q=a;f=this.tokens;if((f=f[f.length-1])&&0<=ca.call(["\x3d"].concat(oa.call(l)),a)&&(r=!1,"\x3d"!==a||"||"!==(d=f[1])&&"\x26\x26"!==d||f.spaced||(f[0]="COMPOUND_ASSIGN",f[1]+="\x3d",f=this.tokens[this.tokens.length-2],r=!0),f&&"PROPERTY"!==f[0]&&(d=null!=(c=f.origin)?c:f,(c=fa(f[1],d[1]))&&this.error(c,d[2])),r))return a.length;"{"===a&&"EXPORT"===(null!=f?f[0]:void 0)?this.exportSpecifierList=
!0:this.exportSpecifierList&&"}"===a&&(this.exportSpecifierList=!1);if(";"===a)this.seenFor=this.seenImport=this.seenExport=!1,q="TERMINATOR";else if("*"===a&&"EXPORT"===f[0])q="EXPORT_ALL";else if(0<=ca.call(O,a))q="MATH";else if(0<=ca.call(v,a))q="COMPARE";else if(0<=ca.call(l,a))q="COMPOUND_ASSIGN";else if(0<=ca.call(ya,a))q="UNARY";else if(0<=ca.call(Xa,a))q="UNARY_MATH";else if(0<=ca.call(N,a))q="SHIFT";else if("?"===a&&null!=f&&f.spaced)q="BIN?";else if(f&&!f.spaced)if("("===a&&(h=f[0],0<=ca.call(xa,
h)))"?"===f[0]&&(f[0]="FUNC_EXIST"),q="CALL_START";else if("["===a&&(m=f[0],0<=ca.call(E,m)))switch(q="INDEX_START",f[0]){case "?":f[0]="INDEX_SOAK"}h=this.makeToken(q,a);switch(a){case "(":case "{":case "[":this.ends.push({tag:g[a],origin:h});break;case ")":case "}":case "]":this.pair(a)}this.tokens.push(h);return a.length};f.prototype.tagParameters=function(){var a,c,d,f;if(")"!==this.tag())return this;c=[];f=this.tokens;a=f.length;for(f[--a][0]="PARAM_END";d=f[--a];)switch(d[0]){case ")":c.push(d);
break;case "(":case "CALL_START":if(c.length)c.pop();else return"("===d[0]&&(d[0]="PARAM_START"),this}return this};f.prototype.closeIndentation=function(){return this.outdentToken(this.indent)};f.prototype.matchWithInterpolations=function(a,c){var d,g,h,m,q,r,k,n;n=[];q=c.length;if(this.chunk.slice(0,q)!==c)return null;for(k=this.chunk.slice(q);;){m=a.exec(k)[0];this.validateEscapes(m,{isRegex:"/"===c.charAt(0),offsetInChunk:q});n.push(this.makeToken("NEOSTRING",m,q));k=k.slice(m.length);q+=m.length;
if("#{"!==k.slice(0,2))break;d=this.getLineAndColumnFromChunk(q+1);m=d[0];d=d[1];d=(new f).tokenize(k.slice(1),{line:m,column:d,untilBalanced:!0});m=d.tokens;g=d.index;g+=1;r=m[0];d=m[m.length-1];r[0]=r[1]="(";d[0]=d[1]=")";d.origin=["","end of interpolation",d[2]];"TERMINATOR"===(null!=(h=m[1])?h[0]:void 0)&&m.splice(1,1);n.push(["TOKENS",m]);k=k.slice(g);q+=g}k.slice(0,c.length)!==c&&this.error("missing "+c,{length:c.length});a=n[0];h=n[n.length-1];a[2].first_column-=c.length;"\n"===h[1].substr(-1)?
(h[2].last_line+=1,h[2].last_column=c.length-1):h[2].last_column+=c.length;0===h[1].length&&--h[2].last_column;return{tokens:n,index:q+c.length}};f.prototype.mergeInterpolationTokens=function(a,c,d){var f,g,h,m,q,r,k,n,l,D,x,y;1<a.length&&(n=this.token("STRING_START","(",0,0));h=this.tokens.length;m=q=0;for(r=a.length;q<r;m=++q){D=a[m];f=D[0];y=D[1];switch(f){case "TOKENS":if(2===y.length)continue;k=y[0];x=y;break;case "NEOSTRING":f=d(D[1],m);if(0===f.length)if(0===m)g=this.tokens.length;else continue;
2===m&&null!=g&&this.tokens.splice(g,2);D[0]="STRING";D[1]=this.makeDelimitedLiteral(f,c);k=D;x=[D]}this.tokens.length>h&&(m=this.token("+","+"),m[2]={first_line:k[2].first_line,first_column:k[2].first_column,last_line:k[2].first_line,last_column:k[2].first_column});(l=this.tokens).push.apply(l,x)}if(n)return a=a[a.length-1],n.origin=["STRING",null,{first_line:n[2].first_line,first_column:n[2].first_column,last_line:a[2].last_line,last_column:a[2].last_column}],n=this.token("STRING_END",")"),n[2]=
{first_line:a[2].last_line,first_column:a[2].last_column,last_line:a[2].last_line,last_column:a[2].last_column}};f.prototype.pair=function(a){var c;c=this.ends;c=c[c.length-1];return a!==(c=null!=c?c.tag:void 0)?("OUTDENT"!==c&&this.error("unmatched "+a),c=this.indents,c=c[c.length-1],this.outdentToken(c,!0),this.pair(a)):this.ends.pop()};f.prototype.getLineAndColumnFromChunk=function(a){var c,d;if(0===a)return[this.chunkLine,this.chunkColumn];d=a>=this.chunk.length?this.chunk:this.chunk.slice(0,
+(a-1)+1||9E9);a=da(d,"\n");c=this.chunkColumn;0<a?(c=d.split("\n"),c=c[c.length-1],c=c.length):c+=d.length;return[this.chunkLine+a,c]};f.prototype.makeToken=function(a,c,d,f){var g,h;null==d&&(d=0);null==f&&(f=c.length);g={};h=this.getLineAndColumnFromChunk(d);g.first_line=h[0];g.first_column=h[1];d=this.getLineAndColumnFromChunk(d+(0<f?f-1:0));g.last_line=d[0];g.last_column=d[1];return[a,c,g]};f.prototype.token=function(a,c,d,f,g){a=this.makeToken(a,c,d,f);g&&(a.origin=g);this.tokens.push(a);return a};
f.prototype.tag=function(){var a;a=this.tokens;a=a[a.length-1];return null!=a?a[0]:void 0};f.prototype.value=function(){var a;a=this.tokens;a=a[a.length-1];return null!=a?a[1]:void 0};f.prototype.unfinished=function(){var a;return K.test(this.chunk)||"\\"===(a=this.tag())||"."===a||"?."===a||"?::"===a||"UNARY"===a||"MATH"===a||"UNARY_MATH"===a||"+"===a||"-"===a||"**"===a||"SHIFT"===a||"RELATION"===a||"COMPARE"===a||"\x26"===a||"^"===a||"|"===a||"\x26\x26"===a||"||"===a||"BIN?"===a||"THROW"===a||"EXTENDS"===
a};f.prototype.formatString=function(a){return a.replace(U,"$1")};f.prototype.formatHeregex=function(a){return a.replace(G,"$1$2")};f.prototype.validateEscapes=function(a,c){var d,f,g,h,q;null==c&&(c={});if(f=m.exec(a))if(f[0],a=f[1],g=f[2],d=f[3],q=f[4],!c.isRegex||!g||"0"===g.charAt(0))return d="\\"+(g||d||q),this.error((g?"octal escape sequences are not allowed":"invalid escape sequence")+" "+d,{offset:(null!=(h=c.offsetInChunk)?h:0)+f.index+a.length,length:d.length})};f.prototype.makeDelimitedLiteral=
function(a,c){null==c&&(c={});""===a&&"/"===c.delimiter&&(a="(?:)");a=a.replace(RegExp("(\\\\\\\\)|(\\\\0(?\x3d[1-7]))|\\\\?("+c.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),function(a,d,f,g,h,m,q,r,k){switch(!1){case !d:return c.double?d+d:d;case !f:return"\\x00";case !g:return"\\"+g;case !h:return"\\n";case !m:return"\\r";case !q:return"\\u2028";case !r:return"\\u2029";case !k:return c.double?"\\"+k:k}});return""+c.delimiter+a+c.delimiter};f.prototype.error=function(a,c){var d,
f,g,h,m;null==c&&(c={});c="first_line"in c?c:(h=this.getLineAndColumnFromChunk(null!=(g=c.offset)?g:0),f=h[0],d=h[1],h,{first_line:f,first_column:d,last_column:d+(null!=(m=c.length)?m:1)-1});return ha(a,c)};return f}();fa=function(a,c){null==c&&(c=a);switch(!1){case 0>ca.call(oa.call(q).concat(oa.call(Ca)),a):return"keyword '"+c+"' can't be assigned";case 0>ca.call(Y,a):return"'"+c+"' can't be assigned";case 0>ca.call(W,a):return"reserved word '"+c+"' can't be assigned";default:return!1}};f.isUnassignable=
fa;q="true false null this new delete typeof in instanceof return throw break continue debugger yield if else switch for while do try catch finally class extends super import export default".split(" ");Ca="undefined Infinity NaN then unless until loop of by when".split(" ");c={and:"\x26\x26",or:"||",is:"\x3d\x3d",isnt:"!\x3d",not:"!",yes:"true",no:"false",on:"true",off:"false"};a=function(){var a;a=[];for(ka in c)a.push(ka);return a}();Ca=Ca.concat(a);W="case function var void with const let enum native implements interface package private protected public static".split(" ");
Y=["arguments","eval"];f.JS_FORBIDDEN=q.concat(W).concat(Y);ta=65279;I=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/;T=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;S=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;ba=/^[^\n\S]+/;d=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/;D=/^[-=]>/;H=/^(?:\n[^\n\S]*)+/;r=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;L=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;aa=/^(?:'''|"""|'|")/;J=/^(?:[^\\']|\\[\s\S])*/;
V=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/;z=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;F=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/;U=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g;X=/\s*\n\s*/g;w=/\n+([^\n\S]*)(?=\S)/g;Z=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;R=/^\w*/;ia=/^(?!.*(.).*\1)[imgy]*$/;n=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/;G=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g;C=/^(\/|\/{3}\s*)(\*)/;P=/^\/=?\s/;u=/\*\//;K=/^\s*(?:,|\??\.(?![.\d])|::)/;m=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/;
k=/^[^\n\S]*\n/;Q=/\n[^\n\S]*$/;pa=/\s+$/;l="-\x3d +\x3d /\x3d *\x3d %\x3d ||\x3d \x26\x26\x3d ?\x3d \x3c\x3c\x3d \x3e\x3e\x3d \x3e\x3e\x3e\x3d \x26\x3d ^\x3d |\x3d **\x3d //\x3d %%\x3d".split(" ");ya=["NEW","TYPEOF","DELETE","DO"];Xa=["!","~"];N=["\x3c\x3c","\x3e\x3e","\x3e\x3e\x3e"];v="\x3d\x3d !\x3d \x3c \x3e \x3c\x3d \x3e\x3d".split(" ");O=["*","/","%","//","%%"];A=["IN","OF","INSTANCEOF"];xa="IDENTIFIER PROPERTY ) ] ? @ THIS SUPER".split(" ");E=xa.concat("NUMBER INFINITY NAN STRING STRING_END REGEX REGEX_END BOOL NULL UNDEFINED } ::".split(" "));
y=E.concat(["++","--"]);h=["INDENT","OUTDENT","TERMINATOR"];x=[")","}","]"]}).call(this);return f}();t["./parser"]=function(){var f={},ta={exports:f},xa=function(){function f(){this.yy={}}var a=function(a,p,ra,b){ra=ra||{};for(b=a.length;b--;ra[a[b]]=p);return ra},c=[1,22],t=[1,25],d=[1,83],v=[1,79],l=[1,84],u=[1,85],F=[1,81],w=[1,82],z=[1,56],n=[1,58],G=[1,59],L=[1,60],I=[1,61],x=[1,62],E=[1,49],m=[1,50],g=[1,32],r=[1,68],q=[1,69],k=[1,78],h=[1,47],K=[1,51],O=[1,52],H=[1,67],y=[1,65],T=[1,66],S=
[1,64],P=[1,42],Z=[1,48],R=[1,63],C=[1,73],A=[1,74],W=[1,75],B=[1,76],N=[1,46],X=[1,72],Y=[1,34],V=[1,35],U=[1,36],J=[1,37],aa=[1,38],Q=[1,39],xa=[1,86],ta=[1,6,32,42,131],pa=[1,101],ia=[1,89],ba=[1,88],da=[1,87],ga=[1,90],fa=[1,91],ka=[1,92],ja=[1,93],M=[1,94],ha=[1,95],ca=[1,96],oa=[1,97],na=[1,98],qa=[1,99],la=[1,100],ya=[1,104],sa=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ja=[2,162],Ta=[1,110],Ga=[1,111],Ua=[1,
112],Fa=[1,113],Pa=[1,115],Qa=[1,116],Na=[1,109],za=[1,6,32,42,131,133,135,139,156],ma=[2,27],ea=[1,123],Ha=[1,121],Aa=[1,6,31,32,40,41,42,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Ia=[2,94],b=[1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],p=[2,73],ra=[1,128],ua=[1,133],e=[1,134],va=[1,136],Ka=[1,
6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],wa=[2,91],Eb=[1,6,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],$a=[2,63],Fb=[1,166],ab=[1,178],Wa=[1,180],Gb=[1,175],Oa=[1,182],sb=[1,184],La=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,156,159,160,161,162,163,164,
165,166,167,168,169,170,171,172,173,174,175],Hb=[2,110],Ib=[1,6,31,32,40,41,42,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Jb=[1,6,31,32,40,41,42,46,58,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],Kb=[40,41,114],Lb=[1,241],tb=[1,240],Ma=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156],Ea=[2,
71],Mb=[1,250],Va=[6,31,32,65,70],fb=[6,31,32,55,65,70,73],bb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,164,166,167,168,169,170,171,172,173,174],Nb=[40,41,82,83,84,85,87,90,113,114],gb=[1,269],cb=[2,62],hb=[1,279],ub=[1,285],Ob=[2,183],vb=[1,6,31,32,40,41,42,55,65,70,73,82,83,84,85,87,89,90,94,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],ib=[1,295],Ra=[6,31,32,70,115,120],Pb=[1,6,31,32,40,41,
42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],Qb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,140,156],Ya=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,134,140,156],jb=[146,147,148],kb=[70,146,147,148],lb=[6,31,94],Rb=[1,309],Ba=[6,31,32,70,94],Sb=[6,31,32,58,70,94],wb=[6,31,32,55,58,70,94],Tb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,159,160,166,
167,168,169,170,171,172,173,174],Ub=[12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,89,92,95,97,104,112,117,118,119,125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Vb=[2,172],Sa=[6,31,32],db=[2,72],Wb=[1,321],Xb=[1,322],Yb=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,128,131,133,134,135,139,140,151,153,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],mb=[32,151,153],Zb=[1,6,32,42,65,70,73,89,94,115,120,122,131,134,140,156],nb=[1,348],xb=[1,353],yb=[1,6,32,42,131,
156],eb=[2,86],ob=[1,363],pb=[1,364],$b=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,151,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],zb=[1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,140,156],ac=[1,377],bc=[1,378],Ab=[6,31,32,94],cc=[6,31,32,70],Bb=[1,6,31,32,42,65,70,73,89,94,115,120,122,127,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],dc=[31,70],qb=[1,404],rb=[1,405],Cb=[1,410],Db=[1,411],ec={trace:function(){},
yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,YieldReturn:9,Return:10,Comment:11,STATEMENT:12,Import:13,Export:14,Value:15,Invocation:16,Code:17,Operation:18,Assign:19,If:20,Try:21,While:22,For:23,Switch:24,Class:25,Throw:26,Yield:27,YIELD:28,FROM:29,Block:30,INDENT:31,OUTDENT:32,Identifier:33,IDENTIFIER:34,Property:35,PROPERTY:36,AlphaNumeric:37,NUMBER:38,String:39,STRING:40,STRING_START:41,STRING_END:42,Regex:43,REGEX:44,REGEX_START:45,REGEX_END:46,Literal:47,
JS:48,UNDEFINED:49,NULL:50,BOOL:51,INFINITY:52,NAN:53,Assignable:54,"\x3d":55,AssignObj:56,ObjAssignable:57,":":58,SimpleObjAssignable:59,ThisProperty:60,RETURN:61,HERECOMMENT:62,PARAM_START:63,ParamList:64,PARAM_END:65,FuncGlyph:66,"-\x3e":67,"\x3d\x3e":68,OptComma:69,",":70,Param:71,ParamVar:72,"...":73,Array:74,Object:75,Splat:76,SimpleAssignable:77,Accessor:78,Parenthetical:79,Range:80,This:81,".":82,"?.":83,"::":84,"?::":85,Index:86,INDEX_START:87,IndexValue:88,INDEX_END:89,INDEX_SOAK:90,Slice:91,
"{":92,AssignList:93,"}":94,CLASS:95,EXTENDS:96,IMPORT:97,ImportDefaultSpecifier:98,ImportNamespaceSpecifier:99,ImportSpecifierList:100,ImportSpecifier:101,AS:102,IMPORT_ALL:103,EXPORT:104,ExportSpecifierList:105,DEFAULT:106,EXPORT_ALL:107,ExportSpecifier:108,OptFuncExist:109,Arguments:110,Super:111,SUPER:112,FUNC_EXIST:113,CALL_START:114,CALL_END:115,ArgList:116,THIS:117,"@":118,"[":119,"]":120,RangeDots:121,"..":122,Arg:123,SimpleArgs:124,TRY:125,Catch:126,FINALLY:127,CATCH:128,THROW:129,"(":130,
")":131,WhileSource:132,WHILE:133,WHEN:134,UNTIL:135,Loop:136,LOOP:137,ForBody:138,FOR:139,BY:140,ForStart:141,ForSource:142,ForVariables:143,OWN:144,ForValue:145,FORIN:146,FOROF:147,FORFROM:148,SWITCH:149,Whens:150,ELSE:151,When:152,LEADING_WHEN:153,IfBlock:154,IF:155,POST_IF:156,UNARY:157,UNARY_MATH:158,"-":159,"+":160,"--":161,"++":162,"?":163,MATH:164,"**":165,SHIFT:166,COMPARE:167,"\x26":168,"^":169,"|":170,"\x26\x26":171,"||":172,"BIN?":173,RELATION:174,COMPOUND_ASSIGN:175,$accept:0,$end:1},
terminals_:{2:"error",6:"TERMINATOR",12:"STATEMENT",28:"YIELD",29:"FROM",31:"INDENT",32:"OUTDENT",34:"IDENTIFIER",36:"PROPERTY",38:"NUMBER",40:"STRING",41:"STRING_START",42:"STRING_END",44:"REGEX",45:"REGEX_START",46:"REGEX_END",48:"JS",49:"UNDEFINED",50:"NULL",51:"BOOL",52:"INFINITY",53:"NAN",55:"\x3d",58:":",61:"RETURN",62:"HERECOMMENT",63:"PARAM_START",65:"PARAM_END",67:"-\x3e",68:"\x3d\x3e",70:",",73:"...",82:".",83:"?.",84:"::",85:"?::",87:"INDEX_START",89:"INDEX_END",90:"INDEX_SOAK",92:"{",
94:"}",95:"CLASS",96:"EXTENDS",97:"IMPORT",102:"AS",103:"IMPORT_ALL",104:"EXPORT",106:"DEFAULT",107:"EXPORT_ALL",112:"SUPER",113:"FUNC_EXIST",114:"CALL_START",115:"CALL_END",117:"THIS",118:"@",119:"[",120:"]",122:"..",125:"TRY",127:"FINALLY",128:"CATCH",129:"THROW",130:"(",131:")",133:"WHILE",134:"WHEN",135:"UNTIL",137:"LOOP",139:"FOR",140:"BY",144:"OWN",146:"FORIN",147:"FOROF",148:"FORFROM",149:"SWITCH",151:"ELSE",153:"LEADING_WHEN",155:"IF",156:"POST_IF",157:"UNARY",158:"UNARY_MATH",159:"-",160:"+",
161:"--",162:"++",163:"?",164:"MATH",165:"**",166:"SHIFT",167:"COMPARE",168:"\x26",169:"^",170:"|",171:"\x26\x26",172:"||",173:"BIN?",174:"RELATION",175:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[5,1],[8,1],[8,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[27,1],[27,2],[27,3],[30,2],[30,3],[33,1],[35,1],[37,1],[37,1],[39,1],[39,3],[43,1],[43,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[19,3],[19,
4],[19,5],[56,1],[56,3],[56,5],[56,3],[56,5],[56,1],[59,1],[59,1],[59,1],[57,1],[57,1],[10,2],[10,1],[9,3],[9,2],[11,1],[17,5],[17,2],[66,1],[66,1],[69,0],[69,1],[64,0],[64,1],[64,3],[64,4],[64,6],[71,1],[71,2],[71,3],[71,1],[72,1],[72,1],[72,1],[72,1],[76,2],[77,1],[77,2],[77,2],[77,1],[54,1],[54,1],[54,1],[15,1],[15,1],[15,1],[15,1],[15,1],[78,2],[78,2],[78,2],[78,2],[78,1],[78,1],[86,3],[86,2],[88,1],[88,1],[75,4],[93,0],[93,1],[93,3],[93,4],[93,6],[25,1],[25,2],[25,3],[25,4],[25,2],[25,3],[25,
4],[25,5],[13,2],[13,4],[13,4],[13,5],[13,7],[13,6],[13,9],[100,1],[100,3],[100,4],[100,4],[100,6],[101,1],[101,3],[98,1],[99,3],[14,3],[14,5],[14,2],[14,4],[14,5],[14,6],[14,3],[14,4],[14,7],[105,1],[105,3],[105,4],[105,4],[105,6],[108,1],[108,3],[108,3],[16,3],[16,3],[16,3],[16,1],[111,1],[111,2],[109,0],[109,1],[110,2],[110,4],[81,1],[81,1],[60,2],[74,2],[74,4],[121,1],[121,1],[80,5],[91,3],[91,2],[91,2],[91,1],[116,1],[116,3],[116,4],[116,4],[116,6],[123,1],[123,1],[123,1],[124,1],[124,3],[21,
2],[21,3],[21,4],[21,5],[126,3],[126,3],[126,2],[26,2],[79,3],[79,5],[132,2],[132,4],[132,2],[132,4],[22,2],[22,2],[22,2],[22,1],[136,2],[136,2],[23,2],[23,2],[23,2],[138,2],[138,4],[138,2],[141,2],[141,3],[145,1],[145,1],[145,1],[145,1],[143,1],[143,3],[142,2],[142,2],[142,4],[142,4],[142,4],[142,6],[142,6],[142,2],[142,4],[24,5],[24,7],[24,4],[24,6],[150,1],[150,2],[152,3],[152,4],[154,3],[154,5],[20,1],[20,3],[20,3],[20,3],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,2],[18,3],[18,
3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,3],[18,5],[18,4],[18,3]],performAction:function(a,p,ra,b,ua,c,e){a=c.length-1;switch(ua){case 1:return this.$=b.addLocationDataFn(e[a],e[a])(new b.Block);case 2:return this.$=c[a];case 3:this.$=b.addLocationDataFn(e[a],e[a])(b.Block.wrap([c[a]]));break;case 4:this.$=b.addLocationDataFn(e[a-2],e[a])(c[a-2].push(c[a]));break;case 5:this.$=c[a-1];break;case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 35:case 40:case 42:case 56:case 57:case 58:case 59:case 60:case 61:case 71:case 72:case 82:case 83:case 84:case 85:case 90:case 91:case 94:case 98:case 104:case 159:case 183:case 184:case 186:case 216:case 217:case 235:case 241:this.$=
c[a];break;case 11:this.$=b.addLocationDataFn(e[a],e[a])(new b.StatementLiteral(c[a]));break;case 27:this.$=b.addLocationDataFn(e[a],e[a])(new b.Op(c[a],new b.Value(new b.Literal(""))));break;case 28:case 245:case 246:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Op(c[a-1],c[a]));break;case 29:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Op(c[a-2].concat(c[a-1]),c[a]));break;case 30:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Block);break;case 31:case 105:this.$=b.addLocationDataFn(e[a-2],e[a])(c[a-
1]);break;case 32:this.$=b.addLocationDataFn(e[a],e[a])(new b.IdentifierLiteral(c[a]));break;case 33:this.$=b.addLocationDataFn(e[a],e[a])(new b.PropertyName(c[a]));break;case 34:this.$=b.addLocationDataFn(e[a],e[a])(new b.NumberLiteral(c[a]));break;case 36:this.$=b.addLocationDataFn(e[a],e[a])(new b.StringLiteral(c[a]));break;case 37:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.StringWithInterpolations(c[a-1]));break;case 38:this.$=b.addLocationDataFn(e[a],e[a])(new b.RegexLiteral(c[a]));break;
case 39:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.RegexWithInterpolations(c[a-1].args));break;case 41:this.$=b.addLocationDataFn(e[a],e[a])(new b.PassthroughLiteral(c[a]));break;case 43:this.$=b.addLocationDataFn(e[a],e[a])(new b.UndefinedLiteral);break;case 44:this.$=b.addLocationDataFn(e[a],e[a])(new b.NullLiteral);break;case 45:this.$=b.addLocationDataFn(e[a],e[a])(new b.BooleanLiteral(c[a]));break;case 46:this.$=b.addLocationDataFn(e[a],e[a])(new b.InfinityLiteral(c[a]));break;case 47:this.$=
b.addLocationDataFn(e[a],e[a])(new b.NaNLiteral);break;case 48:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Assign(c[a-2],c[a]));break;case 49:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Assign(c[a-3],c[a]));break;case 50:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Assign(c[a-4],c[a-1]));break;case 51:case 87:case 92:case 93:case 95:case 96:case 97:case 218:case 219:this.$=b.addLocationDataFn(e[a],e[a])(new b.Value(c[a]));break;case 52:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Assign(b.addLocationDataFn(e[a-
2])(new b.Value(c[a-2])),c[a],"object",{operatorToken:b.addLocationDataFn(e[a-1])(new b.Literal(c[a-1]))}));break;case 53:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Assign(b.addLocationDataFn(e[a-4])(new b.Value(c[a-4])),c[a-1],"object",{operatorToken:b.addLocationDataFn(e[a-3])(new b.Literal(c[a-3]))}));break;case 54:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Assign(b.addLocationDataFn(e[a-2])(new b.Value(c[a-2])),c[a],null,{operatorToken:b.addLocationDataFn(e[a-1])(new b.Literal(c[a-1]))}));
break;case 55:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Assign(b.addLocationDataFn(e[a-4])(new b.Value(c[a-4])),c[a-1],null,{operatorToken:b.addLocationDataFn(e[a-3])(new b.Literal(c[a-3]))}));break;case 62:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Return(c[a]));break;case 63:this.$=b.addLocationDataFn(e[a],e[a])(new b.Return);break;case 64:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.YieldReturn(c[a]));break;case 65:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.YieldReturn);break;case 66:this.$=
b.addLocationDataFn(e[a],e[a])(new b.Comment(c[a]));break;case 67:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Code(c[a-3],c[a],c[a-1]));break;case 68:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Code([],c[a],c[a-1]));break;case 69:this.$=b.addLocationDataFn(e[a],e[a])("func");break;case 70:this.$=b.addLocationDataFn(e[a],e[a])("boundfunc");break;case 73:case 110:this.$=b.addLocationDataFn(e[a],e[a])([]);break;case 74:case 111:case 130:case 148:case 178:case 220:this.$=b.addLocationDataFn(e[a],
e[a])([c[a]]);break;case 75:case 112:case 131:case 149:case 179:this.$=b.addLocationDataFn(e[a-2],e[a])(c[a-2].concat(c[a]));break;case 76:case 113:case 132:case 150:case 180:this.$=b.addLocationDataFn(e[a-3],e[a])(c[a-3].concat(c[a]));break;case 77:case 114:case 134:case 152:case 182:this.$=b.addLocationDataFn(e[a-5],e[a])(c[a-5].concat(c[a-2]));break;case 78:this.$=b.addLocationDataFn(e[a],e[a])(new b.Param(c[a]));break;case 79:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Param(c[a-1],null,!0));
break;case 80:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Param(c[a-2],c[a]));break;case 81:case 185:this.$=b.addLocationDataFn(e[a],e[a])(new b.Expansion);break;case 86:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Splat(c[a-1]));break;case 88:this.$=b.addLocationDataFn(e[a-1],e[a])(c[a-1].add(c[a]));break;case 89:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Value(c[a-1],[].concat(c[a])));break;case 99:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Access(c[a]));break;case 100:this.$=b.addLocationDataFn(e[a-
1],e[a])(new b.Access(c[a],"soak"));break;case 101:this.$=b.addLocationDataFn(e[a-1],e[a])([b.addLocationDataFn(e[a-1])(new b.Access(new b.PropertyName("prototype"))),b.addLocationDataFn(e[a])(new b.Access(c[a]))]);break;case 102:this.$=b.addLocationDataFn(e[a-1],e[a])([b.addLocationDataFn(e[a-1])(new b.Access(new b.PropertyName("prototype"),"soak")),b.addLocationDataFn(e[a])(new b.Access(c[a]))]);break;case 103:this.$=b.addLocationDataFn(e[a],e[a])(new b.Access(new b.PropertyName("prototype")));
break;case 106:this.$=b.addLocationDataFn(e[a-1],e[a])(b.extend(c[a],{soak:!0}));break;case 107:this.$=b.addLocationDataFn(e[a],e[a])(new b.Index(c[a]));break;case 108:this.$=b.addLocationDataFn(e[a],e[a])(new b.Slice(c[a]));break;case 109:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Obj(c[a-2],c[a-3].generated));break;case 115:this.$=b.addLocationDataFn(e[a],e[a])(new b.Class);break;case 116:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Class(null,null,c[a]));break;case 117:this.$=b.addLocationDataFn(e[a-
2],e[a])(new b.Class(null,c[a]));break;case 118:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Class(null,c[a-1],c[a]));break;case 119:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Class(c[a]));break;case 120:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Class(c[a-1],null,c[a]));break;case 121:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Class(c[a-2],c[a]));break;case 122:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Class(c[a-3],c[a-1],c[a]));break;case 123:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.ImportDeclaration(null,
c[a]));break;case 124:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.ImportDeclaration(new b.ImportClause(c[a-2],null),c[a]));break;case 125:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.ImportDeclaration(new b.ImportClause(null,c[a-2]),c[a]));break;case 126:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.ImportDeclaration(new b.ImportClause(null,new b.ImportSpecifierList([])),c[a]));break;case 127:this.$=b.addLocationDataFn(e[a-6],e[a])(new b.ImportDeclaration(new b.ImportClause(null,new b.ImportSpecifierList(c[a-
4])),c[a]));break;case 128:this.$=b.addLocationDataFn(e[a-5],e[a])(new b.ImportDeclaration(new b.ImportClause(c[a-4],c[a-2]),c[a]));break;case 129:this.$=b.addLocationDataFn(e[a-8],e[a])(new b.ImportDeclaration(new b.ImportClause(c[a-7],new b.ImportSpecifierList(c[a-4])),c[a]));break;case 133:case 151:case 165:case 181:this.$=b.addLocationDataFn(e[a-3],e[a])(c[a-2]);break;case 135:this.$=b.addLocationDataFn(e[a],e[a])(new b.ImportSpecifier(c[a]));break;case 136:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.ImportSpecifier(c[a-
2],c[a]));break;case 137:this.$=b.addLocationDataFn(e[a],e[a])(new b.ImportDefaultSpecifier(c[a]));break;case 138:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.ImportNamespaceSpecifier(new b.Literal(c[a-2]),c[a]));break;case 139:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.ExportNamedDeclaration(new b.ExportSpecifierList([])));break;case 140:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.ExportNamedDeclaration(new b.ExportSpecifierList(c[a-2])));break;case 141:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.ExportNamedDeclaration(c[a]));
break;case 142:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.ExportNamedDeclaration(new b.Assign(c[a-2],c[a],null,{moduleDeclaration:"export"})));break;case 143:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.ExportNamedDeclaration(new b.Assign(c[a-3],c[a],null,{moduleDeclaration:"export"})));break;case 144:this.$=b.addLocationDataFn(e[a-5],e[a])(new b.ExportNamedDeclaration(new b.Assign(c[a-4],c[a-1],null,{moduleDeclaration:"export"})));break;case 145:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.ExportDefaultDeclaration(c[a]));
break;case 146:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.ExportAllDeclaration(new b.Literal(c[a-2]),c[a]));break;case 147:this.$=b.addLocationDataFn(e[a-6],e[a])(new b.ExportNamedDeclaration(new b.ExportSpecifierList(c[a-4]),c[a]));break;case 153:this.$=b.addLocationDataFn(e[a],e[a])(new b.ExportSpecifier(c[a]));break;case 154:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.ExportSpecifier(c[a-2],c[a]));break;case 155:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.ExportSpecifier(c[a-2],new b.Literal(c[a])));
break;case 156:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.TaggedTemplateCall(c[a-2],c[a],c[a-1]));break;case 157:case 158:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Call(c[a-2],c[a],c[a-1]));break;case 160:this.$=b.addLocationDataFn(e[a],e[a])(new b.SuperCall);break;case 161:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.SuperCall(c[a]));break;case 162:this.$=b.addLocationDataFn(e[a],e[a])(!1);break;case 163:this.$=b.addLocationDataFn(e[a],e[a])(!0);break;case 164:this.$=b.addLocationDataFn(e[a-
1],e[a])([]);break;case 166:case 167:this.$=b.addLocationDataFn(e[a],e[a])(new b.Value(new b.ThisLiteral));break;case 168:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Value(b.addLocationDataFn(e[a-1])(new b.ThisLiteral),[b.addLocationDataFn(e[a])(new b.Access(c[a]))],"this"));break;case 169:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Arr([]));break;case 170:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Arr(c[a-2]));break;case 171:this.$=b.addLocationDataFn(e[a],e[a])("inclusive");break;case 172:this.$=
b.addLocationDataFn(e[a],e[a])("exclusive");break;case 173:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Range(c[a-3],c[a-1],c[a-2]));break;case 174:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Range(c[a-2],c[a],c[a-1]));break;case 175:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Range(c[a-1],null,c[a]));break;case 176:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Range(null,c[a],c[a-1]));break;case 177:this.$=b.addLocationDataFn(e[a],e[a])(new b.Range(null,null,c[a]));break;case 187:this.$=b.addLocationDataFn(e[a-
2],e[a])([].concat(c[a-2],c[a]));break;case 188:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Try(c[a]));break;case 189:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Try(c[a-1],c[a][0],c[a][1]));break;case 190:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Try(c[a-2],null,null,c[a]));break;case 191:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Try(c[a-3],c[a-2][0],c[a-2][1],c[a]));break;case 192:this.$=b.addLocationDataFn(e[a-2],e[a])([c[a-1],c[a]]);break;case 193:this.$=b.addLocationDataFn(e[a-2],
e[a])([b.addLocationDataFn(e[a-1])(new b.Value(c[a-1])),c[a]]);break;case 194:this.$=b.addLocationDataFn(e[a-1],e[a])([null,c[a]]);break;case 195:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Throw(c[a]));break;case 196:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Parens(c[a-1]));break;case 197:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Parens(c[a-2]));break;case 198:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.While(c[a]));break;case 199:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.While(c[a-
2],{guard:c[a]}));break;case 200:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.While(c[a],{invert:!0}));break;case 201:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.While(c[a-2],{invert:!0,guard:c[a]}));break;case 202:this.$=b.addLocationDataFn(e[a-1],e[a])(c[a-1].addBody(c[a]));break;case 203:case 204:this.$=b.addLocationDataFn(e[a-1],e[a])(c[a].addBody(b.addLocationDataFn(e[a-1])(b.Block.wrap([c[a-1]]))));break;case 205:this.$=b.addLocationDataFn(e[a],e[a])(c[a]);break;case 206:this.$=b.addLocationDataFn(e[a-
1],e[a])((new b.While(b.addLocationDataFn(e[a-1])(new b.BooleanLiteral("true")))).addBody(c[a]));break;case 207:this.$=b.addLocationDataFn(e[a-1],e[a])((new b.While(b.addLocationDataFn(e[a-1])(new b.BooleanLiteral("true")))).addBody(b.addLocationDataFn(e[a])(b.Block.wrap([c[a]]))));break;case 208:case 209:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.For(c[a-1],c[a]));break;case 210:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.For(c[a],c[a-1]));break;case 211:this.$=b.addLocationDataFn(e[a-1],e[a])({source:b.addLocationDataFn(e[a])(new b.Value(c[a]))});
break;case 212:this.$=b.addLocationDataFn(e[a-3],e[a])({source:b.addLocationDataFn(e[a-2])(new b.Value(c[a-2])),step:c[a]});break;case 213:b=b.addLocationDataFn(e[a-1],e[a]);c[a].own=c[a-1].own;c[a].ownTag=c[a-1].ownTag;c[a].name=c[a-1][0];c[a].index=c[a-1][1];this.$=b(c[a]);break;case 214:this.$=b.addLocationDataFn(e[a-1],e[a])(c[a]);break;case 215:ua=b.addLocationDataFn(e[a-2],e[a]);c[a].own=!0;c[a].ownTag=b.addLocationDataFn(e[a-1])(new b.Literal(c[a-1]));this.$=ua(c[a]);break;case 221:this.$=
b.addLocationDataFn(e[a-2],e[a])([c[a-2],c[a]]);break;case 222:this.$=b.addLocationDataFn(e[a-1],e[a])({source:c[a]});break;case 223:this.$=b.addLocationDataFn(e[a-1],e[a])({source:c[a],object:!0});break;case 224:this.$=b.addLocationDataFn(e[a-3],e[a])({source:c[a-2],guard:c[a]});break;case 225:this.$=b.addLocationDataFn(e[a-3],e[a])({source:c[a-2],guard:c[a],object:!0});break;case 226:this.$=b.addLocationDataFn(e[a-3],e[a])({source:c[a-2],step:c[a]});break;case 227:this.$=b.addLocationDataFn(e[a-
5],e[a])({source:c[a-4],guard:c[a-2],step:c[a]});break;case 228:this.$=b.addLocationDataFn(e[a-5],e[a])({source:c[a-4],step:c[a-2],guard:c[a]});break;case 229:this.$=b.addLocationDataFn(e[a-1],e[a])({source:c[a],from:!0});break;case 230:this.$=b.addLocationDataFn(e[a-3],e[a])({source:c[a-2],guard:c[a],from:!0});break;case 231:this.$=b.addLocationDataFn(e[a-4],e[a])(new b.Switch(c[a-3],c[a-1]));break;case 232:this.$=b.addLocationDataFn(e[a-6],e[a])(new b.Switch(c[a-5],c[a-3],c[a-1]));break;case 233:this.$=
b.addLocationDataFn(e[a-3],e[a])(new b.Switch(null,c[a-1]));break;case 234:this.$=b.addLocationDataFn(e[a-5],e[a])(new b.Switch(null,c[a-3],c[a-1]));break;case 236:this.$=b.addLocationDataFn(e[a-1],e[a])(c[a-1].concat(c[a]));break;case 237:this.$=b.addLocationDataFn(e[a-2],e[a])([[c[a-1],c[a]]]);break;case 238:this.$=b.addLocationDataFn(e[a-3],e[a])([[c[a-2],c[a-1]]]);break;case 239:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.If(c[a-1],c[a],{type:c[a-2]}));break;case 240:this.$=b.addLocationDataFn(e[a-
4],e[a])(c[a-4].addElse(b.addLocationDataFn(e[a-2],e[a])(new b.If(c[a-1],c[a],{type:c[a-2]}))));break;case 242:this.$=b.addLocationDataFn(e[a-2],e[a])(c[a-2].addElse(c[a]));break;case 243:case 244:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.If(c[a],b.addLocationDataFn(e[a-2])(b.Block.wrap([c[a-2]])),{type:c[a-1],statement:!0}));break;case 247:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Op("-",c[a]));break;case 248:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Op("+",c[a]));break;case 249:this.$=
b.addLocationDataFn(e[a-1],e[a])(new b.Op("--",c[a]));break;case 250:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Op("++",c[a]));break;case 251:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Op("--",c[a-1],null,!0));break;case 252:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Op("++",c[a-1],null,!0));break;case 253:this.$=b.addLocationDataFn(e[a-1],e[a])(new b.Existence(c[a-1]));break;case 254:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Op("+",c[a-2],c[a]));break;case 255:this.$=b.addLocationDataFn(e[a-
2],e[a])(new b.Op("-",c[a-2],c[a]));break;case 256:case 257:case 258:case 259:case 260:case 261:case 262:case 263:case 264:case 265:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Op(c[a-1],c[a-2],c[a]));break;case 266:e=b.addLocationDataFn(e[a-2],e[a]);c="!"===c[a-1].charAt(0)?(new b.Op(c[a-1].slice(1),c[a-2],c[a])).invert():new b.Op(c[a-1],c[a-2],c[a]);this.$=e(c);break;case 267:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Assign(c[a-2],c[a],c[a-1]));break;case 268:this.$=b.addLocationDataFn(e[a-
4],e[a])(new b.Assign(c[a-4],c[a-1],c[a-3]));break;case 269:this.$=b.addLocationDataFn(e[a-3],e[a])(new b.Assign(c[a-3],c[a],c[a-2]));break;case 270:this.$=b.addLocationDataFn(e[a-2],e[a])(new b.Extends(c[a-2],c[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,
74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{1:[3]},{1:[2,2],6:xa},a(ta,[2,3]),a(ta,[2,6],{141:77,132:102,138:103,133:C,135:A,139:B,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(ta,[2,7],{141:77,132:105,138:106,133:C,135:A,139:B,156:ya}),a(ta,[2,8]),a(sa,[2,14],{109:107,
78:108,86:114,40:Ja,41:Ja,114:Ja,82:Ta,83:Ga,84:Ua,85:Fa,87:Pa,90:Qa,113:Na}),a(sa,[2,15],{86:114,109:117,78:118,82:Ta,83:Ga,84:Ua,85:Fa,87:Pa,90:Qa,113:Na,114:Ja}),a(sa,[2,16]),a(sa,[2,17]),a(sa,[2,18]),a(sa,[2,19]),a(sa,[2,20]),a(sa,[2,21]),a(sa,[2,22]),a(sa,[2,23]),a(sa,[2,24]),a(sa,[2,25]),a(sa,[2,26]),a(za,[2,9]),a(za,[2,10]),a(za,[2,11]),a(za,[2,12]),a(za,[2,13]),a([1,6,32,42,131,133,135,139,156,163,164,165,166,167,168,169,170,171,172,173,174],ma,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,
23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120,8:122,12:c,28:ea,29:Ha,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,51:L,52:I,53:x,61:[1,119],62:m,63:g,67:r,68:q,92:k,95:h,97:K,104:O,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,137:W,149:N,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q}),a(Aa,Ia,{55:[1,124]}),a(Aa,[2,95]),a(Aa,[2,96]),a(Aa,[2,97]),a(Aa,[2,98]),a(b,[2,
159]),a([6,31,65,70],p,{64:125,71:126,72:127,33:129,60:130,74:131,75:132,34:d,73:ra,92:k,118:ua,119:e}),{30:135,31:va},{7:137,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,
137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:138,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,
154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:139,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,
160:J,161:aa,162:Q},{7:140,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{15:142,16:143,
33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:144,60:71,74:53,75:54,77:141,79:28,80:29,81:30,92:k,111:31,112:H,117:y,118:T,119:S,130:R},{15:142,16:143,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:144,60:71,74:53,75:54,77:145,79:28,80:29,81:30,92:k,111:31,112:H,117:y,118:T,119:S,130:R},a(Ka,wa,{96:[1,149],161:[1,146],162:[1,147],175:[1,148]}),a(sa,[2,241],{151:[1,150]}),{30:151,31:va},{30:152,31:va},a(sa,
[2,205]),{30:153,31:va},{7:154,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:[1,155],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},
a(Eb,[2,115],{47:27,79:28,80:29,81:30,111:31,74:53,75:54,37:55,43:57,33:70,60:71,39:80,15:142,16:143,54:144,30:156,77:158,31:va,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,51:L,52:I,53:x,92:k,96:[1,157],112:H,117:y,118:T,119:S,130:R}),{7:159,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,
77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(za,$a,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:160,12:c,28:ea,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,
51:L,52:I,53:x,61:E,62:m,63:g,67:r,68:q,92:k,95:h,97:K,104:O,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,137:W,149:N,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q}),a([1,6,31,32,42,70,94,131,133,135,139,156],[2,66]),{33:165,34:d,39:161,40:l,41:u,92:[1,164],98:162,99:163,103:Fb},{25:168,33:169,34:d,92:[1,167],95:h,106:[1,170],107:[1,171]},a(Ka,[2,92]),a(Ka,[2,93]),a(Aa,[2,40]),a(Aa,[2,41]),a(Aa,[2,42]),a(Aa,[2,43]),a(Aa,[2,44]),a(Aa,[2,45]),a(Aa,[2,46]),a(Aa,[2,47]),{4:172,5:3,7:4,8:5,9:6,10:20,11:21,12:c,
13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,31:[1,173],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:174,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,
17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:ab,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,116:176,117:y,118:T,119:S,120:Gb,123:177,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Aa,[2,166]),a(Aa,[2,167],{35:181,36:Oa}),
a([1,6,31,32,42,46,65,70,73,82,83,84,85,87,89,90,94,113,115,120,122,131,133,134,135,139,140,156,159,160,163,164,165,166,167,168,169,170,171,172,173,174],[2,160],{110:183,114:sb}),{31:[2,69]},{31:[2,70]},a(La,[2,87]),a(La,[2,90]),{7:185,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,
79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:186,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,
104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:187,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,
119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:189,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,30:188,31:va,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,
130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{33:194,34:d,60:195,74:196,75:197,80:190,92:k,118:ua,119:S,143:191,144:[1,192],145:193},{142:198,146:[1,199],147:[1,200],148:[1,201]},a([6,31,70,94],Hb,{39:80,93:202,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,34:d,36:Oa,38:v,40:l,41:u,62:m,118:ua}),a(Ib,[2,34]),a(Ib,[2,35]),a(Aa,[2,38]),{15:142,16:211,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,
50:G,51:L,52:I,53:x,54:144,60:71,74:53,75:54,77:212,79:28,80:29,81:30,92:k,111:31,112:H,117:y,118:T,119:S,130:R},a([1,6,29,31,32,40,41,42,55,58,65,70,73,82,83,84,85,87,89,90,94,96,102,113,114,115,120,122,131,133,134,135,139,140,146,147,148,156,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[2,32]),a(Jb,[2,36]),{4:213,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:d,37:55,38:v,39:80,40:l,41:u,
43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(ta,[2,5],{7:4,8:5,9:6,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,
138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,5:214,12:c,28:t,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,51:L,52:I,53:x,61:E,62:m,63:g,67:r,68:q,92:k,95:h,97:K,104:O,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,133:C,135:A,137:W,139:B,149:N,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q}),a(sa,[2,253]),{7:215,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,
50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:216,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,
61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:217,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,
74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:218,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,
81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:219,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,
112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:220,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,
129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:221,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,
136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:222,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,
149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:223,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,
159:U,160:J,161:aa,162:Q},{7:224,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:225,
8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:226,8:122,10:20,11:21,12:c,13:23,14:24,
15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:227,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,
21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:228,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,
26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(sa,[2,204]),a(sa,[2,209]),{7:229,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,
27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(sa,[2,203]),a(sa,[2,208]),{39:230,40:l,41:u,110:231,114:sb},a(La,[2,88]),a(Kb,[2,163]),{35:232,36:Oa},{35:233,36:Oa},a(La,[2,103],{35:234,36:Oa}),
{35:235,36:Oa},a(La,[2,104]),{7:237,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Lb,74:53,75:54,77:40,79:28,80:29,81:30,88:236,91:238,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,121:239,122:tb,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,
158:V,159:U,160:J,161:aa,162:Q},{86:242,87:Pa,90:Qa},{110:243,114:sb},a(La,[2,89]),a(ta,[2,65],{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,7:244,12:c,28:ea,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,51:L,52:I,53:x,61:E,62:m,63:g,67:r,68:q,92:k,95:h,97:K,104:O,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,133:$a,135:$a,
139:$a,156:$a,137:W,149:N,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q}),a(Ma,[2,28],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{7:245,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,
95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{132:105,133:C,135:A,138:106,139:B,141:77,156:ya},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,163,164,165,166,167,168,169,170,171,172,173,174],ma,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,
132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,7:120,8:122,12:c,28:ea,29:Ha,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,51:L,52:I,53:x,61:E,62:m,63:g,67:r,68:q,92:k,95:h,97:K,104:O,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,137:W,149:N,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q}),{6:[1,247],7:246,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:[1,248],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,
47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a([6,31],Ea,{69:251,65:[1,249],70:Mb}),a(Va,[2,74]),a(Va,[2,78],{55:[1,253],73:[1,252]}),a(Va,[2,81]),a(fb,[2,82]),a(fb,[2,83]),a(fb,[2,84]),a(fb,[2,85]),{35:181,36:Oa},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,
15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:ab,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,116:176,117:y,118:T,119:S,120:Gb,123:177,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(sa,[2,68]),{4:256,5:3,7:4,8:5,
9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,32:[1,255],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a([1,6,31,32,42,65,70,73,89,94,
115,120,122,131,133,134,135,139,140,156,159,160,164,165,166,167,168,169,170,171,172,173,174],[2,245],{141:77,132:102,138:103,163:da}),a(bb,[2,246],{141:77,132:102,138:103,163:da,165:fa}),a(bb,[2,247],{141:77,132:102,138:103,163:da,165:fa}),a(bb,[2,248],{141:77,132:102,138:103,163:da,165:fa}),a(sa,[2,249],{40:wa,41:wa,82:wa,83:wa,84:wa,85:wa,87:wa,90:wa,113:wa,114:wa}),a(Kb,Ja,{109:107,78:108,86:114,82:Ta,83:Ga,84:Ua,85:Fa,87:Pa,90:Qa,113:Na}),{78:118,82:Ta,83:Ga,84:Ua,85:Fa,86:114,87:Pa,90:Qa,109:117,
113:Na,114:Ja},a(Nb,Ia),a(sa,[2,250],{40:wa,41:wa,82:wa,83:wa,84:wa,85:wa,87:wa,90:wa,113:wa,114:wa}),a(sa,[2,251]),a(sa,[2,252]),{6:[1,259],7:257,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:[1,258],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,
129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:260,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,
136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{30:261,31:va,155:[1,262]},a(sa,[2,188],{126:263,127:[1,264],128:[1,265]}),a(sa,[2,202]),a(sa,[2,210]),{31:[1,266],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},{150:267,152:268,153:gb},a(sa,[2,116]),{7:270,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,
27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Eb,[2,119],{30:271,31:va,40:wa,41:wa,82:wa,83:wa,84:wa,85:wa,87:wa,90:wa,113:wa,114:wa,96:[1,272]}),a(Ma,[2,195],{141:77,132:102,138:103,159:ia,
160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(za,cb,{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(za,[2,123]),{29:[1,273],70:[1,274]},{29:[1,275]},{31:hb,33:280,34:d,94:[1,276],100:277,101:278},a([29,70],[2,137]),{102:[1,281]},{31:ub,33:286,34:d,94:[1,282],105:283,108:284},a(za,[2,141]),{55:[1,287]},{7:288,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,
21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{29:[1,289]},{6:xa,131:[1,290]},{4:291,5:3,7:4,8:5,9:6,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,
19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:t,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a([6,31,70,120],Ob,{141:77,132:102,138:103,121:292,73:[1,293],122:tb,133:C,135:A,139:B,156:pa,
159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(vb,[2,169]),a([6,31,120],Ea,{69:294,70:ib}),a(Ra,[2,178]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:ab,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,
116:296,117:y,118:T,119:S,123:177,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Ra,[2,184]),a(Ra,[2,185]),a(Pb,[2,168]),a(Pb,[2,33]),a(b,[2,161]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:ab,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Wa,74:53,
75:54,76:179,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,115:[1,297],116:298,117:y,118:T,119:S,123:177,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{30:299,31:va,132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},a(Qb,[2,198],{141:77,132:102,138:103,133:C,134:[1,300],135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,
166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Qb,[2,200],{141:77,132:102,138:103,133:C,134:[1,301],135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(sa,[2,206]),a(Ya,[2,207],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156,159,160,163,164,165,166,167,168,169,
170,171,172,173,174],[2,211],{140:[1,302]}),a(jb,[2,214]),{33:194,34:d,60:195,74:196,75:197,92:k,118:ua,119:e,143:303,145:193},a(jb,[2,220],{70:[1,304]}),a(kb,[2,216]),a(kb,[2,217]),a(kb,[2,218]),a(kb,[2,219]),a(sa,[2,213]),{7:305,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,
80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:306,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,
111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:307,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,
125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(lb,Ea,{69:308,70:Rb}),a(Ba,[2,111]),a(Ba,[2,51],{58:[1,310]}),a(Sb,[2,60],{55:[1,311]}),a(Ba,[2,56]),a(Sb,[2,61]),a(wb,[2,57]),a(wb,[2,58]),a(wb,[2,59]),{46:[1,312],78:118,82:Ta,83:Ga,84:Ua,85:Fa,86:114,87:Pa,90:Qa,109:117,113:Na,114:Ja},a(Nb,wa),{6:xa,42:[1,313]},a(ta,[2,4]),a(Tb,[2,254],{141:77,132:102,138:103,163:da,164:ga,165:fa}),a(Tb,[2,255],{141:77,132:102,138:103,
163:da,164:ga,165:fa}),a(bb,[2,256],{141:77,132:102,138:103,163:da,165:fa}),a(bb,[2,257],{141:77,132:102,138:103,163:da,165:fa}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,166,167,168,169,170,171,172,173,174],[2,258],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173],[2,259],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,174:la}),a([1,6,31,32,
42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,168,169,170,171,172,173],[2,260],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,169,170,171,172,173],[2,261],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,170,171,172,173],[2,262],{141:77,132:102,138:103,159:ia,160:ba,163:da,
164:ga,165:fa,166:ka,167:ja,168:M,169:ha,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,171,172,173],[2,263],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,172,173],[2,264],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,
140,156,173],[2,265],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,174:la}),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,140,156,167,168,169,170,171,172,173,174],[2,266],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka}),a(Ya,[2,244],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ya,[2,243],{141:77,132:102,138:103,
133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(b,[2,156]),a(b,[2,157]),a(La,[2,99]),a(La,[2,100]),a(La,[2,101]),a(La,[2,102]),{89:[1,314]},{73:Lb,89:[2,107],121:315,122:tb,132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},{89:[2,108]},{7:316,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,
25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,177],92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Ub,[2,171]),a(Ub,Vb),a(La,[2,106]),a(b,[2,158]),a(ta,[2,64],{141:77,132:102,138:103,133:cb,135:cb,139:cb,156:cb,159:ia,
160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ma,[2,29],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ma,[2,48],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{7:317,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,
38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:318,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,
45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{66:319,67:r,68:q},a(Sa,db,{72:127,33:129,60:130,74:131,75:132,71:320,34:d,73:ra,92:k,118:ua,119:e}),{6:Wb,31:Xb},a(Va,[2,79]),{7:323,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,
21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Ra,Ob,{141:77,132:102,138:103,73:[1,324],133:C,135:A,139:B,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,
167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Yb,[2,30]),{6:xa,32:[1,325]},a(Ma,[2,267],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{7:326,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,
80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:327,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,
111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Ma,[2,270],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(sa,[2,242]),{7:328,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,
50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(sa,[2,189],{127:[1,329]}),{30:330,31:va},{30:333,31:va,33:331,34:d,75:332,92:k},{150:334,152:268,153:gb},{32:[1,335],151:[1,336],152:337,153:gb},a(mb,[2,235]),{7:339,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,
19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,124:338,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Zb,[2,117],{141:77,132:102,138:103,30:340,31:va,133:C,135:A,139:B,159:ia,160:ba,163:da,
164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(sa,[2,120]),{7:341,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,
149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{39:342,40:l,41:u},{92:[1,344],99:343,103:Fb},{39:345,40:l,41:u},{29:[1,346]},a(lb,Ea,{69:347,70:nb}),a(Ba,[2,130]),{31:hb,33:280,34:d,100:349,101:278},a(Ba,[2,135],{102:[1,350]}),{33:351,34:d},a(za,[2,139]),a(lb,Ea,{69:352,70:xb}),a(Ba,[2,148]),{31:ub,33:286,34:d,105:354,108:284},a(Ba,[2,153],{102:[1,355]}),{6:[1,357],7:356,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:[1,
358],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(yb,[2,145],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),
{39:359,40:l,41:u},a(Aa,[2,196]),{6:xa,32:[1,360]},{7:361,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,
160:J,161:aa,162:Q},a([12,28,34,38,40,41,44,45,48,49,50,51,52,53,61,62,63,67,68,92,95,97,104,112,117,118,119,125,129,130,133,135,137,139,149,155,157,158,159,160,161,162],Vb,{6:eb,31:eb,70:eb,120:eb}),{6:ob,31:pb,120:[1,362]},a([6,31,32,115,120],db,{15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,10:20,11:21,13:23,14:24,54:26,47:27,79:28,80:29,81:30,111:31,66:33,77:40,154:41,132:43,136:44,138:45,74:53,75:54,37:55,43:57,33:70,60:71,141:77,39:80,8:122,76:179,7:254,123:365,
12:c,28:ea,34:d,38:v,40:l,41:u,44:F,45:w,48:z,49:n,50:G,51:L,52:I,53:x,61:E,62:m,63:g,67:r,68:q,73:Wa,92:k,95:h,97:K,104:O,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,133:C,135:A,137:W,139:B,149:N,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q}),a(Sa,Ea,{69:366,70:ib}),a(b,[2,164]),a([6,31,115],Ea,{69:367,70:ib}),a($b,[2,239]),{7:368,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,
48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:369,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,
54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:370,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,
67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(jb,[2,215]),{33:194,34:d,60:195,74:196,75:197,92:k,118:ua,119:e,145:371},a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,135,139,156],[2,222],{141:77,132:102,138:103,134:[1,372],140:[1,373],159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,
173:qa,174:la}),a(zb,[2,223],{141:77,132:102,138:103,134:[1,374],159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(zb,[2,229],{141:77,132:102,138:103,134:[1,375],159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{6:ac,31:bc,94:[1,376]},a(Ab,db,{39:80,57:204,59:205,11:206,37:207,33:208,35:209,60:210,56:379,34:d,36:Oa,38:v,40:l,41:u,62:m,118:ua}),{7:380,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,
18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:[1,381],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:382,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,
22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:[1,383],33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Aa,[2,39]),a(Jb,[2,37]),a(La,[2,105]),{7:384,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,
19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,89:[2,175],92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{89:[2,176],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,
165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},a(Ma,[2,49],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{32:[1,385],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},{30:386,31:va},a(Va,[2,75]),{33:129,34:d,60:130,71:387,72:127,73:ra,74:131,75:132,92:k,118:ua,119:e},a(cc,p,{71:126,72:127,33:129,60:130,74:131,
75:132,64:388,34:d,73:ra,92:k,118:ua,119:e}),a(Va,[2,80],{141:77,132:102,138:103,133:C,135:A,139:B,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ra,eb),a(Yb,[2,31]),{32:[1,389],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},a(Ma,[2,269],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,
173:qa,174:la}),{30:390,31:va,132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},{30:391,31:va},a(sa,[2,190]),{30:392,31:va},{30:393,31:va},a(Bb,[2,194]),{32:[1,394],151:[1,395],152:337,153:gb},a(sa,[2,233]),{30:396,31:va},a(mb,[2,236]),{30:397,31:va,70:[1,398]},a(dc,[2,186],{141:77,132:102,138:103,133:C,135:A,139:B,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,
173:qa,174:la}),a(sa,[2,118]),a(Zb,[2,121],{141:77,132:102,138:103,30:399,31:va,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(za,[2,124]),{29:[1,400]},{31:hb,33:280,34:d,100:401,101:278},a(za,[2,125]),{39:402,40:l,41:u},{6:qb,31:rb,94:[1,403]},a(Ab,db,{33:280,101:406,34:d}),a(Sa,Ea,{69:407,70:nb}),{33:408,34:d},{29:[2,138]},{6:Cb,31:Db,94:[1,409]},a(Ab,db,{33:286,108:412,34:d}),a(Sa,Ea,{69:413,70:xb}),{33:414,34:d,106:[1,415]},
a(yb,[2,142],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{7:416,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,
129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:417,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,
136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(za,[2,146]),{131:[1,418]},{120:[1,419],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},a(vb,[2,170]),{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,
54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,123:420,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:254,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,31:ab,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,
60:71,61:E,62:m,63:g,66:33,67:r,68:q,73:Wa,74:53,75:54,76:179,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,116:421,117:y,118:T,119:S,123:177,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Ra,[2,179]),{6:ob,31:pb,32:[1,422]},{6:ob,31:pb,115:[1,423]},a(Ya,[2,199],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ya,
[2,201],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ya,[2,212],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(jb,[2,221]),{7:424,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,
49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:425,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,
60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:426,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,
68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:427,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,
81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(vb,[2,109]),{11:206,33:208,34:d,35:209,36:Oa,37:207,38:v,39:80,40:l,41:u,56:428,57:204,59:205,60:210,62:m,118:ua},a(cc,Hb,{39:80,56:203,57:204,59:205,11:206,37:207,33:208,35:209,60:210,93:429,34:d,36:Oa,38:v,40:l,41:u,62:m,118:ua}),a(Ba,[2,112]),a(Ba,[2,52],{141:77,132:102,138:103,133:C,135:A,139:B,156:pa,159:ia,
160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{7:430,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,
149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},a(Ba,[2,54],{141:77,132:102,138:103,133:C,135:A,139:B,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),{7:431,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,
81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{89:[2,174],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},a(sa,[2,50]),a(sa,[2,67]),a(Va,[2,76]),a(Sa,Ea,{69:432,70:Mb}),a(sa,[2,268]),a($b,[2,240]),a(sa,[2,191]),a(Bb,[2,192]),a(Bb,[2,193]),a(sa,[2,231]),{30:433,31:va},
{32:[1,434]},a(mb,[2,237],{6:[1,435]}),{7:436,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,
162:Q},a(sa,[2,122]),{39:437,40:l,41:u},a(lb,Ea,{69:438,70:nb}),a(za,[2,126]),{29:[1,439]},{33:280,34:d,101:440},{31:hb,33:280,34:d,100:441,101:278},a(Ba,[2,131]),{6:qb,31:rb,32:[1,442]},a(Ba,[2,136]),a(za,[2,140],{29:[1,443]}),{33:286,34:d,108:444},{31:ub,33:286,34:d,105:445,108:284},a(Ba,[2,149]),{6:Cb,31:Db,32:[1,446]},a(Ba,[2,154]),a(Ba,[2,155]),a(yb,[2,143],{141:77,132:102,138:103,133:C,135:A,139:B,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),
{32:[1,447],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},a(Aa,[2,197]),a(Aa,[2,173]),a(Ra,[2,180]),a(Sa,Ea,{69:448,70:ib}),a(Ra,[2,181]),a(b,[2,165]),a([1,6,31,32,42,65,70,73,89,94,115,120,122,131,133,134,135,139,156],[2,224],{141:77,132:102,138:103,140:[1,449],159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(zb,[2,226],{141:77,132:102,138:103,134:[1,
450],159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ma,[2,225],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ma,[2,230],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ba,[2,113]),a(Sa,Ea,{69:451,70:Rb}),{32:[1,452],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,
165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},{32:[1,453],132:102,133:C,135:A,138:103,139:B,141:77,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la},{6:Wb,31:Xb,32:[1,454]},{32:[1,455]},a(sa,[2,234]),a(mb,[2,238]),a(dc,[2,187],{141:77,132:102,138:103,133:C,135:A,139:B,156:pa,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(za,[2,128]),{6:qb,31:rb,94:[1,456]},{39:457,40:l,
41:u},a(Ba,[2,132]),a(Sa,Ea,{69:458,70:nb}),a(Ba,[2,133]),{39:459,40:l,41:u},a(Ba,[2,150]),a(Sa,Ea,{69:460,70:xb}),a(Ba,[2,151]),a(za,[2,144]),{6:ob,31:pb,32:[1,461]},{7:462,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,
119:S,125:P,129:Z,130:R,132:43,133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{7:463,8:122,10:20,11:21,12:c,13:23,14:24,15:7,16:8,17:9,18:10,19:11,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19,28:ea,33:70,34:d,37:55,38:v,39:80,40:l,41:u,43:57,44:F,45:w,47:27,48:z,49:n,50:G,51:L,52:I,53:x,54:26,60:71,61:E,62:m,63:g,66:33,67:r,68:q,74:53,75:54,77:40,79:28,80:29,81:30,92:k,95:h,97:K,104:O,111:31,112:H,117:y,118:T,119:S,125:P,129:Z,130:R,132:43,
133:C,135:A,136:44,137:W,138:45,139:B,141:77,149:N,154:41,155:X,157:Y,158:V,159:U,160:J,161:aa,162:Q},{6:ac,31:bc,32:[1,464]},a(Ba,[2,53]),a(Ba,[2,55]),a(Va,[2,77]),a(sa,[2,232]),{29:[1,465]},a(za,[2,127]),{6:qb,31:rb,32:[1,466]},a(za,[2,147]),{6:Cb,31:Db,32:[1,467]},a(Ra,[2,182]),a(Ma,[2,227],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ma,[2,228],{141:77,132:102,138:103,159:ia,160:ba,163:da,164:ga,165:fa,166:ka,167:ja,
168:M,169:ha,170:ca,171:oa,172:na,173:qa,174:la}),a(Ba,[2,114]),{39:468,40:l,41:u},a(Ba,[2,134]),a(Ba,[2,152]),a(za,[2,129])],defaultActions:{68:[2,69],69:[2,70],238:[2,108],351:[2,138]},parseError:function(a,b){if(b.recoverable)this.trace(a);else{var e=function(a,b){this.message=a;this.hash=b};e.prototype=Error;throw new e(a,b);}},parse:function(a){var b=[0],e=[null],c=[],p=this.table,ra="",ua=0,d=0,f=0,g=c.slice.call(arguments,1),va=Object.create(this.lexer),h={},Ka;for(Ka in this.yy)Object.prototype.hasOwnProperty.call(this.yy,
Ka)&&(h[Ka]=this.yy[Ka]);va.setInput(a,h);h.lexer=va;h.parser=this;"undefined"==typeof va.yylloc&&(va.yylloc={});Ka=va.yylloc;c.push(Ka);var m=va.options&&va.options.ranges;this.parseError="function"===typeof h.parseError?h.parseError:Object.getPrototypeOf(this).parseError;for(var q,r,Ia,k,n={},l,D;;){Ia=b[b.length-1];if(this.defaultActions[Ia])k=this.defaultActions[Ia];else{if(null===q||"undefined"==typeof q)q=va.lex()||1,"number"!==typeof q&&(q=this.symbols_[q]||q);k=p[Ia]&&p[Ia][q]}if("undefined"===
typeof k||!k.length||!k[0]){var wa;D=[];for(l in p[Ia])this.terminals_[l]&&2<l&&D.push("'"+this.terminals_[l]+"'");wa=va.showPosition?"Parse error on line "+(ua+1)+":\n"+va.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[q]||q)+"'":"Parse error on line "+(ua+1)+": Unexpected "+(1==q?"end of input":"'"+(this.terminals_[q]||q)+"'");this.parseError(wa,{text:va.match,token:this.terminals_[q]||q,line:va.yylineno,loc:Ka,expected:D})}if(k[0]instanceof Array&&1<k.length)throw Error("Parse Error: multiple actions possible at state: "+
Ia+", token: "+q);switch(k[0]){case 1:b.push(q);e.push(va.yytext);c.push(va.yylloc);b.push(k[1]);q=null;r?(q=r,r=null):(d=va.yyleng,ra=va.yytext,ua=va.yylineno,Ka=va.yylloc,0<f&&f--);break;case 2:D=this.productions_[k[1]][1];n.$=e[e.length-D];n._$={first_line:c[c.length-(D||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(D||1)].first_column,last_column:c[c.length-1].last_column};m&&(n._$.range=[c[c.length-(D||1)].range[0],c[c.length-1].range[1]]);Ia=this.performAction.apply(n,
[ra,d,ua,h,k[1],e,c].concat(g));if("undefined"!==typeof Ia)return Ia;D&&(b=b.slice(0,-2*D),e=e.slice(0,-1*D),c=c.slice(0,-1*D));b.push(this.productions_[k[1]][0]);e.push(n.$);c.push(n._$);k=p[b[b.length-2]][b[b.length-1]];b.push(k);break;case 3:return!0}}}};f.prototype=ec;ec.Parser=f;return new f}();"undefined"!==typeof t&&"undefined"!==typeof f&&(f.parser=xa,f.Parser=xa.Parser,f.parse=function(){return xa.parse.apply(xa,arguments)},f.main=function(D){D[1]||(console.log("Usage: "+D[0]+" FILE"),process.exit(1));
D=t("fs").readFileSync(t("path").normalize(D[1]),"utf8");return f.parser.parse(D)},"undefined"!==typeof ta&&t.main===ta&&f.main(process.argv.slice(1)));return ta.exports}();t["./scope"]=function(){var f={};(function(){var t=[].indexOf||function(f){for(var D=0,a=this.length;D<a;D++)if(D in this&&this[D]===f)return D;return-1};f.Scope=function(){function f(f,a,c,t){var d,D;this.parent=f;this.expressions=a;this.method=c;this.referencedVars=t;this.variables=[{name:"arguments",type:"arguments"}];this.positions=
{};this.parent||(this.utilities={});this.root=null!=(d=null!=(D=this.parent)?D.root:void 0)?d:this}f.prototype.add=function(f,a,c){return this.shared&&!c?this.parent.add(f,a,c):Object.prototype.hasOwnProperty.call(this.positions,f)?this.variables[this.positions[f]].type=a:this.positions[f]=this.variables.push({name:f,type:a})-1};f.prototype.namedMethod=function(){var f;return null!=(f=this.method)&&f.name||!this.parent?this.method:this.parent.namedMethod()};f.prototype.find=function(f){if(this.check(f))return!0;
this.add(f,"var");return!1};f.prototype.parameter=function(f){if(!this.shared||!this.parent.check(f,!0))return this.add(f,"param")};f.prototype.check=function(f){var a;return!!(this.type(f)||null!=(a=this.parent)&&a.check(f))};f.prototype.temporary=function(f,a,c){null==c&&(c=!1);return c?(c=f.charCodeAt(0),f=122-c,c=String.fromCharCode(c+a%(f+1)),a=Math.floor(a/(f+1)),""+c+(a||"")):""+f+(a||"")};f.prototype.type=function(f){var a,c,D,d;D=this.variables;a=0;for(c=D.length;a<c;a++)if(d=D[a],d.name===
f)return d.type;return null};f.prototype.freeVariable=function(f,a){var c,D,d;null==a&&(a={});for(c=0;;){d=this.temporary(f,c,a.single);if(!(this.check(d)||0<=t.call(this.root.referencedVars,d)))break;c++}(null!=(D=a.reserve)?D:1)&&this.add(d,"var",!0);return d};f.prototype.assign=function(f,a){this.add(f,{value:a,assigned:!0},!0);return this.hasAssignments=!0};f.prototype.hasDeclarations=function(){return!!this.declaredVariables().length};f.prototype.declaredVariables=function(){var f,a,c,t,d;t=
this.variables;d=[];a=0;for(c=t.length;a<c;a++)f=t[a],"var"===f.type&&d.push(f.name);return d.sort()};f.prototype.assignedVariables=function(){var f,a,c,t,d;c=this.variables;t=[];f=0;for(a=c.length;f<a;f++)d=c[f],d.type.assigned&&t.push(d.name+" \x3d "+d.type.value);return t};return f}()}).call(this);return f}();t["./nodes"]=function(){var f={};(function(){var ta,pa,D,a,c,Ca,d,v,l,u,F,w,z,n,G,L,I,x,E,m,g,r,q,k,h,K,O,H,y,T,S,P,Z,R,C,A,W,B,N,X,Y,V,U,J,aa,Q,ya,Za,Xa,ia,ba,da,ga,fa,ka,ja,M,ha,ca,oa,na,
qa,la,Da,sa,Ja,Ta,Ga,Ua,Fa,Pa,Qa,Na,za,ma=function(a,b){function c(){this.constructor=a}for(var ra in b)ea.call(b,ra)&&(a[ra]=b[ra]);c.prototype=b.prototype;a.prototype=new c;a.__super__=b.prototype;return a},ea={}.hasOwnProperty,Ha=[].indexOf||function(a){for(var b=0,c=this.length;b<c;b++)if(b in this&&this[b]===a)return b;return-1},Aa=[].slice;Error.stackTraceLimit=Infinity;J=t("./scope").Scope;a=t("./lexer");Ga=a.isUnassignable;r=a.JS_FORBIDDEN;n=t("./helpers");oa=n.compact;la=n.flatten;qa=n.extend;
Fa=n.merge;na=n.del;a=n.addLocationDataFn;Ua=n.locationDataToString;Qa=n.throwSyntaxError;f.extend=qa;f.addLocationDataFn=a;ha=function(){return!0};P=function(){return!1};da=function(){return this};S=function(){this.negated=!this.negated;return this};f.CodeFragment=u=function(){function a(a,c){var b;this.code=""+c;this.locationData=null!=a?a.locationData:void 0;this.type=(null!=a?null!=(b=a.constructor)?b.name:void 0:void 0)||"unknown"}a.prototype.toString=function(){return""+this.code+(this.locationData?
": "+Ua(this.locationData):"")};return a}();Da=function(a){var b,c,ra,ua;ua=[];c=0;for(ra=a.length;c<ra;c++)b=a[c],ua.push(b.code);return ua.join("")};f.Base=a=function(){function a(){}a.prototype.compile=function(a,c){return Da(this.compileToFragments(a,c))};a.prototype.compileToFragments=function(a,c){a=qa({},a);c&&(a.level=c);c=this.unfoldSoak(a)||this;c.tab=a.indent;return a.level!==H&&c.isStatement(a)?c.compileClosure(a):c.compileNode(a)};a.prototype.compileClosure=function(a){var b,ra,ua,e;
(ua=this.jumps())&&ua.error("cannot use a pure statement in an expression");a.sharedScope=!0;ua=new l([],c.wrap([this]));b=[];if((ra=this.contains(Ja))||this.contains(Ta))b=[new ga],ra?(ra="apply",b.push(new x("arguments"))):ra="call",ua=new M(ua,[new ta(new N(ra))]);a=(new d(ua,b)).compileNode(a);if(ua.isGenerator||null!=(e=ua.base)&&e.isGenerator)a.unshift(this.makeCode("(yield* ")),a.push(this.makeCode(")"));return a};a.prototype.cache=function(a,c,ra){var b;if(null!=ra?ra(this):this.isComplex())return ra=
new x(a.scope.freeVariable("ref")),b=new D(ra,this),c?[b.compileToFragments(a,c),[this.makeCode(ra.value)]]:[b,ra];ra=c?this.compileToFragments(a,c):this;return[ra,ra]};a.prototype.cacheToCodeFragments=function(a){return[Da(a[0]),Da(a[1])]};a.prototype.makeReturn=function(a){var b;b=this.unwrapAll();return a?new d(new y(a+".push"),[b]):new V(b)};a.prototype.contains=function(a){var b;b=void 0;this.traverseChildren(!1,function(c){if(a(c))return b=c,!1});return b};a.prototype.lastNonComment=function(a){var b;
for(b=a.length;b--;)if(!(a[b]instanceof F))return a[b];return null};a.prototype.toString=function(a,c){var b;null==a&&(a="");null==c&&(c=this.constructor.name);b="\n"+a+c;this.soak&&(b+="?");this.eachChild(function(c){return b+=c.toString(a+ba)});return b};a.prototype.eachChild=function(a){var b,c,ua,e,d,f,g;if(!this.children)return this;f=this.children;c=0;for(e=f.length;c<e;c++)if(b=f[c],this[b])for(g=la([this[b]]),ua=0,d=g.length;ua<d;ua++)if(b=g[ua],!1===a(b))return this;return this};a.prototype.traverseChildren=
function(a,c){return this.eachChild(function(b){if(!1!==c(b))return b.traverseChildren(a,c)})};a.prototype.invert=function(){return new A("!",this)};a.prototype.unwrapAll=function(){var a;for(a=this;a!==(a=a.unwrap()););return a};a.prototype.children=[];a.prototype.isStatement=P;a.prototype.jumps=P;a.prototype.isComplex=ha;a.prototype.isChainable=P;a.prototype.isAssignable=P;a.prototype.isNumber=P;a.prototype.unwrap=da;a.prototype.unfoldSoak=P;a.prototype.assigns=P;a.prototype.updateLocationDataIfMissing=
function(a){if(this.locationData)return this;this.locationData=a;return this.eachChild(function(b){return b.updateLocationDataIfMissing(a)})};a.prototype.error=function(a){return Qa(a,this.locationData)};a.prototype.makeCode=function(a){return new u(this,a)};a.prototype.wrapInBraces=function(a){return[].concat(this.makeCode("("),a,this.makeCode(")"))};a.prototype.joinFragmentArrays=function(a,c){var b,p,e,d,f;b=[];e=d=0;for(f=a.length;d<f;e=++d)p=a[e],e&&b.push(this.makeCode(c)),b=b.concat(p);return b};
return a}();f.Block=c=function(a){function b(a){this.expressions=oa(la(a||[]))}ma(b,a);b.prototype.children=["expressions"];b.prototype.push=function(a){this.expressions.push(a);return this};b.prototype.pop=function(){return this.expressions.pop()};b.prototype.unshift=function(a){this.expressions.unshift(a);return this};b.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this};b.prototype.isEmpty=function(){return!this.expressions.length};b.prototype.isStatement=function(a){var b,
c,e,p;p=this.expressions;c=0;for(e=p.length;c<e;c++)if(b=p[c],b.isStatement(a))return!0;return!1};b.prototype.jumps=function(a){var b,c,e,p;p=this.expressions;c=0;for(e=p.length;c<e;c++)if(b=p[c],b=b.jumps(a))return b};b.prototype.makeReturn=function(a){var b,c;for(c=this.expressions.length;c--;)if(b=this.expressions[c],!(b instanceof F)){this.expressions[c]=b.makeReturn(a);b instanceof V&&!b.expression&&this.expressions.splice(c,1);break}return this};b.prototype.compileToFragments=function(a,c){null==
a&&(a={});return a.scope?b.__super__.compileToFragments.call(this,a,c):this.compileRoot(a)};b.prototype.compileNode=function(a){var c,p,e,d,f,g,m;this.tab=a.indent;m=a.level===H;p=[];g=this.expressions;e=c=0;for(d=g.length;c<d;e=++c)f=g[e],f=f.unwrapAll(),f=f.unfoldSoak(a)||f,f instanceof b?p.push(f.compileNode(a)):m?(f.front=!0,e=f.compileToFragments(a),f.isStatement(a)||(e.unshift(this.makeCode(""+this.tab)),e.push(this.makeCode(";"))),p.push(e)):p.push(f.compileToFragments(a,h));if(m)return this.spaced?
[].concat(this.joinFragmentArrays(p,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(p,"\n");c=p.length?this.joinFragmentArrays(p,", "):[this.makeCode("void 0")];return 1<p.length&&a.level>=h?this.wrapInBraces(c):c};b.prototype.compileRoot=function(a){var b,c,e,p,d;a.indent=a.bare?"":ba;a.level=H;this.spaced=!0;a.scope=new J(null,this,null,null!=(e=a.referencedVars)?e:[]);d=a.locals||[];e=0;for(c=d.length;e<c;e++)p=d[e],a.scope.parameter(p);e=[];if(!a.bare){var f;f=this.expressions;c=[];b=p=0;
for(d=f.length;p<d;b=++p){b=f[b];if(!(b.unwrap()instanceof F))break;c.push(b)}p=this.expressions.slice(c.length);this.expressions=c;c.length&&(e=this.compileNode(Fa(a,{indent:""})),e.push(this.makeCode("\n")));this.expressions=p}c=this.compileWithDeclarations(a);return a.bare?c:[].concat(e,this.makeCode("(function() {\n"),c,this.makeCode("\n}).call(this);\n"))};b.prototype.compileWithDeclarations=function(a){var b,c,e,p,d,f;e=[];f=this.expressions;p=d=0;for(b=f.length;d<b&&(c=f[p],c=c.unwrap(),c instanceof
F||c instanceof y);p=++d);a=Fa(a,{level:H});p&&(c=this.expressions.splice(p,9E9),e=[this.spaced,!1],d=e[0],this.spaced=e[1],d=[this.compileNode(a),d],e=d[0],this.spaced=d[1],this.expressions=c);c=this.compileNode(a);d=a.scope;d.expressions===this&&(b=a.scope.hasDeclarations(),a=d.hasAssignments,b||a?(p&&e.push(this.makeCode("\n")),e.push(this.makeCode(this.tab+"var ")),b&&e.push(this.makeCode(d.declaredVariables().join(", "))),a&&(b&&e.push(this.makeCode(",\n"+(this.tab+ba))),e.push(this.makeCode(d.assignedVariables().join(",\n"+
(this.tab+ba))))),e.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):e.length&&c.length&&e.push(this.makeCode("\n")));return e.concat(c)};b.wrap=function(a){return 1===a.length&&a[0]instanceof b?a[0]:new b(a)};return b}(a);f.Literal=y=function(a){function b(a){this.value=a}ma(b,a);b.prototype.isComplex=P;b.prototype.assigns=function(a){return a===this.value};b.prototype.compileNode=function(a){return[this.makeCode(this.value)]};b.prototype.toString=function(){return" "+(this.isStatement()?b.__super__.toString.apply(this,
arguments):this.constructor.name)+": "+this.value};return b}(a);f.NumberLiteral=R=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(y);f.InfinityLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.compileNode=function(){return[this.makeCode("2e308")]};return b}(R);f.NaNLiteral=function(a){function b(){b.__super__.constructor.call(this,"NaN")}ma(b,a);b.prototype.compileNode=function(a){var b;b=[this.makeCode("0/0")];
return a.level>=K?this.wrapInBraces(b):b};return b}(R);f.StringLiteral=Za=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(y);f.RegexLiteral=Y=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(y);f.PassthroughLiteral=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(y);f.IdentifierLiteral=x=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}
ma(b,a);b.prototype.isAssignable=ha;return b}(y);f.PropertyName=N=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.isAssignable=ha;return b}(y);f.StatementLiteral=ya=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.isStatement=ha;b.prototype.makeReturn=da;b.prototype.jumps=function(a){if("break"===this.value&&!(null!=a&&a.loop||null!=a&&a.block)||"continue"===this.value&&(null==a||!a.loop))return this};
b.prototype.compileNode=function(a){return[this.makeCode(""+this.tab+this.value+";")]};return b}(y);f.ThisLiteral=ga=function(a){function b(){b.__super__.constructor.call(this,"this")}ma(b,a);b.prototype.compileNode=function(a){var b;a=null!=(b=a.scope.method)&&b.bound?a.scope.method.context:this.value;return[this.makeCode(a)]};return b}(y);f.UndefinedLiteral=ja=function(a){function b(){b.__super__.constructor.call(this,"undefined")}ma(b,a);b.prototype.compileNode=function(a){return[this.makeCode(a.level>=
q?"(void 0)":"void 0")]};return b}(y);f.NullLiteral=Z=function(a){function b(){b.__super__.constructor.call(this,"null")}ma(b,a);return b}(y);f.BooleanLiteral=Ca=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(y);f.Return=V=function(a){function b(a){this.expression=a}ma(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ha;b.prototype.makeReturn=da;b.prototype.jumps=da;b.prototype.compileToFragments=function(a,c){var ra,e;ra=null!=(e=this.expression)?
e.makeReturn():void 0;return!ra||ra instanceof b?b.__super__.compileToFragments.call(this,a,c):ra.compileToFragments(a,c)};b.prototype.compileNode=function(a){var b;b=[];b.push(this.makeCode(this.tab+("return"+(this.expression?" ":""))));this.expression&&(b=b.concat(this.expression.compileToFragments(a,O)));b.push(this.makeCode(";"));return b};return b}(a);f.YieldReturn=ca=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.compileNode=function(a){null==
a.scope.parent&&this.error("yield can only occur inside functions");return b.__super__.compileNode.apply(this,arguments)};return b}(V);f.Value=M=function(a){function b(a,c,d){if(!c&&a instanceof b)return a;this.base=a;this.properties=c||[];d&&(this[d]=!0);return this}ma(b,a);b.prototype.children=["base","properties"];b.prototype.add=function(a){this.properties=this.properties.concat(a);return this};b.prototype.hasProperties=function(){return!!this.properties.length};b.prototype.bareLiteral=function(a){return!this.properties.length&&
this.base instanceof a};b.prototype.isArray=function(){return this.bareLiteral(pa)};b.prototype.isRange=function(){return this.bareLiteral(X)};b.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()};b.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()};b.prototype.isNumber=function(){return this.bareLiteral(R)};b.prototype.isString=function(){return this.bareLiteral(Za)};b.prototype.isRegex=function(){return this.bareLiteral(Y)};b.prototype.isUndefined=
function(){return this.bareLiteral(ja)};b.prototype.isNull=function(){return this.bareLiteral(Z)};b.prototype.isBoolean=function(){return this.bareLiteral(Ca)};b.prototype.isAtomic=function(){var a,b,c,e;e=this.properties.concat(this.base);a=0;for(b=e.length;a<b;a++)if(c=e[a],c.soak||c instanceof d)return!1;return!0};b.prototype.isNotCallable=function(){return this.isNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()||this.isUndefined()||this.isNull()||
this.isBoolean()};b.prototype.isStatement=function(a){return!this.properties.length&&this.base.isStatement(a)};b.prototype.assigns=function(a){return!this.properties.length&&this.base.assigns(a)};b.prototype.jumps=function(a){return!this.properties.length&&this.base.jumps(a)};b.prototype.isObject=function(a){return this.properties.length?!1:this.base instanceof C&&(!a||this.base.generated)};b.prototype.isSplice=function(){var a;a=this.properties;return a[a.length-1]instanceof aa};b.prototype.looksStatic=
function(a){var b;return this.base.value===a&&1===this.properties.length&&"prototype"!==(null!=(b=this.properties[0].name)?b.value:void 0)};b.prototype.unwrap=function(){return this.properties.length?this:this.base};b.prototype.cacheReference=function(a){var c,p,e,d;c=this.properties;e=c[c.length-1];if(2>this.properties.length&&!this.base.isComplex()&&(null==e||!e.isComplex()))return[this,this];c=new b(this.base,this.properties.slice(0,-1));c.isComplex()&&(p=new x(a.scope.freeVariable("base")),c=
new b(new B(new D(p,c))));if(!e)return[c,p];e.isComplex()&&(d=new x(a.scope.freeVariable("name")),e=new g(new D(d,e.index)),d=new g(d));return[c.add(e),new b(p||c.base,[d||e])]};b.prototype.compileNode=function(a){var b,c,e,p,d;this.base.front=this.front;d=this.properties;b=this.base.compileToFragments(a,d.length?q:null);d.length&&U.test(Da(b))&&b.push(this.makeCode("."));c=0;for(e=d.length;c<e;c++)p=d[c],b.push.apply(b,p.compileToFragments(a));return b};b.prototype.unfoldSoak=function(a){return null!=
this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(c){return function(){var p,e,ra,d,f;if(e=c.base.unfoldSoak(a))return(p=e.body.properties).push.apply(p,c.properties),e;f=c.properties;e=p=0;for(ra=f.length;p<ra;e=++p)if(d=f[e],d.soak)return d.soak=!1,p=new b(c.base,c.properties.slice(0,e)),ra=new b(c.base,c.properties.slice(e)),p.isComplex()&&(e=new x(a.scope.freeVariable("ref")),p=new B(new D(e,p)),ra.base=e),new E(new w(p),ra,{soak:!0});return!1}}(this)()};return b}(a);f.Comment=F=
function(a){function b(a){this.comment=a}ma(b,a);b.prototype.isStatement=ha;b.prototype.makeReturn=da;b.prototype.compileNode=function(a,b){var c;c=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *");c="/*"+Pa(c,this.tab)+(0<=Ha.call(c,"\n")?"\n"+this.tab:"")+" */";(b||a.level)===H&&(c=a.indent+c);return[this.makeCode("\n"),this.makeCode(c)]};return b}(a);f.Call=d=function(a){function b(a,b,c){this.variable=a;this.args=null!=b?b:[];this.soak=c;this.isNew=!1;this.variable instanceof M&&this.variable.isNotCallable()&&
this.variable.error("literal is not a function")}ma(b,a);b.prototype.children=["variable","args"];b.prototype.newInstance=function(){var a,c;a=(null!=(c=this.variable)?c.base:void 0)||this.variable;a instanceof b&&!a.isNew?a.newInstance():this.isNew=!0;return this};b.prototype.unfoldSoak=function(a){var c,p,e,d,f;if(this.soak){if(this instanceof ia)c=new y(this.superReference(a)),p=new M(c);else{if(p=Na(a,this,"variable"))return p;p=(new M(this.variable)).cacheReference(a);c=p[0];p=p[1]}p=new b(p,
this.args);p.isNew=this.isNew;c=new y("typeof "+c.compile(a)+' \x3d\x3d\x3d "function"');return new E(c,new M(p),{soak:!0})}c=this;for(e=[];;)if(c.variable instanceof b)e.push(c),c=c.variable;else{if(!(c.variable instanceof M))break;e.push(c);if(!((c=c.variable.base)instanceof b))break}f=e.reverse();e=0;for(d=f.length;e<d;e++)c=f[e],p&&(c.variable instanceof b?c.variable=p:c.variable.base=p),p=Na(a,c,"variable");return p};b.prototype.compileNode=function(a){var b,c,e,p,d,f;null!=(e=this.variable)&&
(e.front=this.front);e=Q.compileSplattedArray(a,this.args,!0);if(e.length)return this.compileSplat(a,e);e=[];f=this.args;c=p=0;for(d=f.length;p<d;c=++p)b=f[c],c&&e.push(this.makeCode(", ")),e.push.apply(e,b.compileToFragments(a,h));b=[];this instanceof ia?(a=this.superReference(a)+(".call("+this.superThis(a)),e.length&&(a+=", "),b.push(this.makeCode(a))):(this.isNew&&b.push(this.makeCode("new ")),b.push.apply(b,this.variable.compileToFragments(a,q)),b.push(this.makeCode("(")));b.push.apply(b,e);b.push(this.makeCode(")"));
return b};b.prototype.compileSplat=function(a,b){var c,e,p,ra;if(this instanceof ia)return[].concat(this.makeCode(this.superReference(a)+".apply("+this.superThis(a)+", "),b,this.makeCode(")"));if(this.isNew)return c=this.tab+ba,[].concat(this.makeCode("(function(func, args, ctor) {\n"+c+"ctor.prototype \x3d func.prototype;\n"+c+"var child \x3d new ctor, result \x3d func.apply(child, args);\n"+c+"return Object(result) \x3d\x3d\x3d result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(a,
h),this.makeCode(", "),b,this.makeCode(", function(){})"));c=[];e=new M(this.variable);(p=e.properties.pop())&&e.isComplex()?(ra=a.scope.freeVariable("ref"),c=c.concat(this.makeCode("("+ra+" \x3d "),e.compileToFragments(a,h),this.makeCode(")"),p.compileToFragments(a))):(e=e.compileToFragments(a,q),U.test(Da(e))&&(e=this.wrapInBraces(e)),p?(ra=Da(e),e.push.apply(e,p.compileToFragments(a))):ra="null",c=c.concat(e));return c.concat(this.makeCode(".apply("+ra+", "),b,this.makeCode(")"))};return b}(a);
f.SuperCall=ia=function(a){function b(a){b.__super__.constructor.call(this,null,null!=a?a:[new Q(new x("arguments"))]);this.isBare=null!=a}ma(b,a);b.prototype.superReference=function(a){var b,c,e,p,d,f,h;p=a.scope.namedMethod();if(null!=p&&p.klass){e=p.klass;d=p.name;h=p.variable;e.isComplex()&&(c=new x(a.scope.parent.freeVariable("base")),b=new M(new B(new D(c,e))),h.base=b,h.properties.splice(0,e.properties.length));if(d.isComplex()||d instanceof g&&d.index.isAssignable())f=new x(a.scope.parent.freeVariable("name")),
d=new g(new D(f,d.index)),h.properties.pop(),h.properties.push(d);b=[new ta(new N("__super__"))];p["static"]&&b.push(new ta(new N("constructor")));b.push(null!=f?new g(f):d);return(new M(null!=c?c:e,b)).compile(a)}return null!=p&&p.ctor?p.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")};b.prototype.superThis=function(a){return(a=a.scope.method)&&!a.klass&&a.context||"this"};return b}(d);f.RegexWithInterpolations=function(a){function b(a){null==a&&(a=[]);
b.__super__.constructor.call(this,new M(new x("RegExp")),a,!1)}ma(b,a);return b}(d);f.TaggedTemplateCall=function(a){function b(a,d,f){d instanceof Za&&(d=new Xa(c.wrap([new M(d)])));b.__super__.constructor.call(this,a,[d],f)}ma(b,a);b.prototype.compileNode=function(a){a.inTaggedTemplateCall=!0;return this.variable.compileToFragments(a,q).concat(this.args[0].compileToFragments(a,h))};return b}(d);f.Extends=L=function(a){function b(a,b){this.child=a;this.parent=b}ma(b,a);b.prototype.children=["child",
"parent"];b.prototype.compileToFragments=function(a){return(new d(new M(new y(za("extend",a))),[this.child,this.parent])).compileToFragments(a)};return b}(a);f.Access=ta=function(a){function b(a,b){this.name=a;this.soak="soak"===b}ma(b,a);b.prototype.children=["name"];b.prototype.compileToFragments=function(a){var b,c;a=this.name.compileToFragments(a);b=this.name.unwrap();return b instanceof N?(c=b.value,0<=Ha.call(r,c))?[this.makeCode('["')].concat(Aa.call(a),[this.makeCode('"]')]):[this.makeCode(".")].concat(Aa.call(a)):
[this.makeCode("[")].concat(Aa.call(a),[this.makeCode("]")])};b.prototype.isComplex=P;return b}(a);f.Index=g=function(a){function b(a){this.index=a}ma(b,a);b.prototype.children=["index"];b.prototype.compileToFragments=function(a){return[].concat(this.makeCode("["),this.index.compileToFragments(a,O),this.makeCode("]"))};b.prototype.isComplex=function(){return this.index.isComplex()};return b}(a);f.Range=X=function(a){function b(a,b,c){this.from=a;this.to=b;this.equals=(this.exclusive="exclusive"===
c)?"":"\x3d"}ma(b,a);b.prototype.children=["from","to"];b.prototype.compileVariables=function(a){var b,c;a=Fa(a,{top:!0});b=na(a,"isComplex");c=this.cacheToCodeFragments(this.from.cache(a,h,b));this.fromC=c[0];this.fromVar=c[1];c=this.cacheToCodeFragments(this.to.cache(a,h,b));this.toC=c[0];this.toVar=c[1];if(c=na(a,"step"))a=this.cacheToCodeFragments(c.cache(a,h,b)),this.step=a[0],this.stepVar=a[1];this.fromNum=this.from.isNumber()?Number(this.fromVar):null;this.toNum=this.to.isNumber()?Number(this.toVar):
null;return this.stepNum=null!=c&&c.isNumber()?Number(this.stepVar):null};b.prototype.compileNode=function(a){var b,c,e,d,p,f,g,h,m,q;this.fromVar||this.compileVariables(a);if(!a.index)return this.compileArray(a);f=null!=this.fromNum&&null!=this.toNum;p=na(a,"index");g=(a=na(a,"name"))&&a!==p;q=p+" \x3d "+this.fromC;this.toC!==this.toVar&&(q+=", "+this.toC);this.step!==this.stepVar&&(q+=", "+this.step);d=[p+" \x3c"+this.equals,p+" \x3e"+this.equals];c=d[0];d=d[1];c=null!=this.stepNum?0<this.stepNum?
c+" "+this.toVar:d+" "+this.toVar:f?(h=[this.fromNum,this.toNum],e=h[0],m=h[1],h,e<=m?c+" "+m:d+" "+m):(b=this.stepVar?this.stepVar+" \x3e 0":this.fromVar+" \x3c\x3d "+this.toVar,b+" ? "+c+" "+this.toVar+" : "+d+" "+this.toVar);b=this.stepVar?p+" +\x3d "+this.stepVar:f?g?e<=m?"++"+p:"--"+p:e<=m?p+"++":p+"--":g?b+" ? ++"+p+" : --"+p:b+" ? "+p+"++ : "+p+"--";g&&(q=a+" \x3d "+q);g&&(b=a+" \x3d "+b);return[this.makeCode(q+"; "+c+"; "+b)]};b.prototype.compileArray=function(a){var b,c,e,d,p,f,g,h,m;if((c=
null!=this.fromNum&&null!=this.toNum)&&20>=Math.abs(this.fromNum-this.toNum))return b=function(){h=[];for(var a=f=this.fromNum,b=this.toNum;f<=b?a<=b:a>=b;f<=b?a++:a--)h.push(a);return h}.apply(this),this.exclusive&&b.pop(),[this.makeCode("["+b.join(", ")+"]")];d=this.tab+ba;e=a.scope.freeVariable("i",{single:!0});g=a.scope.freeVariable("results");p="\n"+d+g+" \x3d [];";c?(a.index=e,c=Da(this.compileNode(a))):(m=e+" \x3d "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),c=this.fromVar+" \x3c\x3d "+
this.toVar,c="var "+m+"; "+c+" ? "+e+" \x3c"+this.equals+" "+this.toVar+" : "+e+" \x3e"+this.equals+" "+this.toVar+"; "+c+" ? "+e+"++ : "+e+"--");e="{ "+g+".push("+e+"); }\n"+d+"return "+g+";\n"+a.indent;a=function(a){return null!=a?a.contains(Ja):void 0};if(a(this.from)||a(this.to))b=", arguments";return[this.makeCode("(function() {"+p+"\n"+d+"for ("+c+")"+e+"}).apply(this"+(null!=b?b:"")+")")]};return b}(a);f.Slice=aa=function(a){function b(a){this.range=a;b.__super__.constructor.call(this)}ma(b,
a);b.prototype.children=["range"];b.prototype.compileNode=function(a){var b,c,e,d,p;b=this.range;d=b.to;e=(b=b.from)&&b.compileToFragments(a,O)||[this.makeCode("0")];d&&(b=d.compileToFragments(a,O),c=Da(b),this.range.exclusive||-1!==+c)&&(p=", "+(this.range.exclusive?c:d.isNumber()?""+(+c+1):(b=d.compileToFragments(a,q),"+"+Da(b)+" + 1 || 9e9")));return[this.makeCode(".slice("+Da(e)+(p||"")+")")]};return b}(a);f.Obj=C=function(a){function b(a,b){this.generated=null!=b?b:!1;this.objects=this.properties=
a||[]}ma(b,a);b.prototype.children=["properties"];b.prototype.compileNode=function(a){var b,c,e,d,p,f,g,h,m,q,r,k,n;n=this.properties;if(this.generated)for(c=0,b=n.length;c<b;c++)e=n[c],e instanceof M&&e.error("cannot have an implicit value in an implicit object");c=b=0;for(e=n.length;b<e&&!(k=n[c],(k.variable||k).base instanceof B);c=++b);e=c<n.length;p=a.indent+=ba;m=this.lastNonComment(this.properties);b=[];e&&(r=a.scope.freeVariable("obj"),b.push(this.makeCode("(\n"+p+r+" \x3d ")));b.push(this.makeCode("{"+
(0===n.length||0===c?"}":"\n")));d=h=0;for(q=n.length;h<q;d=++h)k=n[d],d===c&&(0!==d&&b.push(this.makeCode("\n"+p+"}")),b.push(this.makeCode(",\n"))),g=d===n.length-1||d===c-1?"":k===m||k instanceof F?"\n":",\n",f=k instanceof F?"":p,e&&d<c&&(f+=ba),k instanceof D&&("object"!==k.context&&k.operatorToken.error("unexpected "+k.operatorToken.value),k.variable instanceof M&&k.variable.hasProperties()&&k.variable.error("invalid object key")),k instanceof M&&k["this"]&&(k=new D(k.properties[0].name,k,"object")),
k instanceof F||(d<c?k instanceof D||(k=new D(k,k,"object")):(k instanceof D?(d=k.variable,k=k.value):(k=k.base.cache(a),d=k[0],k=k[1],d instanceof x&&(d=new N(d.value))),k=new D(new M(new x(r),[new ta(d)]),k))),f&&b.push(this.makeCode(f)),b.push.apply(b,k.compileToFragments(a,H)),g&&b.push(this.makeCode(g));e?b.push(this.makeCode(",\n"+p+r+"\n"+this.tab+")")):0!==n.length&&b.push(this.makeCode("\n"+this.tab+"}"));return this.front&&!e?this.wrapInBraces(b):b};b.prototype.assigns=function(a){var b,
c,e,d;d=this.properties;b=0;for(c=d.length;b<c;b++)if(e=d[b],e.assigns(a))return!0;return!1};return b}(a);f.Arr=pa=function(a){function b(a){this.objects=a||[]}ma(b,a);b.prototype.children=["objects"];b.prototype.compileNode=function(a){var b,c,e,d,p;if(!this.objects.length)return[this.makeCode("[]")];a.indent+=ba;b=Q.compileSplattedArray(a,this.objects);if(b.length)return b;b=[];var f;p=this.objects;f=[];e=0;for(d=p.length;e<d;e++)c=p[e],f.push(c.compileToFragments(a,h));e=d=0;for(p=f.length;d<p;e=
++d)c=f[e],e&&b.push(this.makeCode(", ")),b.push.apply(b,c);0<=Da(b).indexOf("\n")?(b.unshift(this.makeCode("[\n"+a.indent)),b.push(this.makeCode("\n"+this.tab+"]"))):(b.unshift(this.makeCode("[")),b.push(this.makeCode("]")));return b};b.prototype.assigns=function(a){var b,c,e,d;d=this.objects;b=0;for(c=d.length;b<c;b++)if(e=d[b],e.assigns(a))return!0;return!1};return b}(a);f.Class=v=function(a){function b(a,b,d){this.variable=a;this.parent=b;this.body=null!=d?d:new c;this.boundFuncs=[];this.body.classBody=
!0}ma(b,a);b.prototype.children=["variable","parent","body"];b.prototype.defaultClassVariableName="_Class";b.prototype.determineName=function(){var a,b;if(!this.variable)return this.defaultClassVariableName;b=this.variable.properties;b=(a=b[b.length-1])?a instanceof ta&&a.name:this.variable.base;if(!(b instanceof x||b instanceof N))return this.defaultClassVariableName;b=b.value;a||(a=Ga(b))&&this.variable.error(a);return 0<=Ha.call(r,b)?"_"+b:b};b.prototype.setContext=function(a){return this.body.traverseChildren(!1,
function(b){if(b.classBody)return!1;if(b instanceof ga)return b.value=a;if(b instanceof l&&b.bound)return b.context=a})};b.prototype.addBoundFunctions=function(a){var b,c,e,d;d=this.boundFuncs;c=0;for(e=d.length;c<e;c++)b=d[c],b=(new M(new ga,[new ta(b)])).compile(a),this.ctor.body.unshift(new y(b+" \x3d "+za("bind",a)+"("+b+", this)"))};b.prototype.addProperties=function(a,b,c){var e,d,p,f;f=a.base.properties.slice(0);var ra;for(ra=[];e=f.shift();)e instanceof D&&(d=e.variable.base,delete e.context,
p=e.value,"constructor"===d.value?(this.ctor&&e.error("cannot define more than one constructor in a class"),p.bound&&e.error("cannot define a constructor as a bound function"),p instanceof l?e=this.ctor=p:(this.externalCtor=c.classScope.freeVariable("ctor"),e=new D(new x(this.externalCtor),p))):e.variable["this"]?p["static"]=!0:(a=d.isComplex()?new g(d):new ta(d),e.variable=new M(new x(b),[new ta(new N("prototype")),a]),p instanceof l&&p.bound&&(this.boundFuncs.push(d),p.bound=!1))),ra.push(e);return oa(ra)};
b.prototype.walkBody=function(a,d){return this.traverseChildren(!1,function(p){return function(e){var f,ra,g,h,ua,m,q;f=!0;if(e instanceof b)return!1;if(e instanceof c){q=ra=e.expressions;g=h=0;for(ua=q.length;h<ua;g=++h)m=q[g],m instanceof D&&m.variable.looksStatic(a)?m.value["static"]=!0:m instanceof M&&m.isObject(!0)&&(f=!1,ra[g]=p.addProperties(m,a,d));e.expressions=la(ra)}return f&&!(e instanceof b)}}(this))};b.prototype.hoistDirectivePrologue=function(){var a,b,c;b=0;for(a=this.body.expressions;(c=
a[b])&&c instanceof F||c instanceof M&&c.isString();)++b;return this.directives=a.splice(0,b)};b.prototype.ensureConstructor=function(a){this.ctor||(this.ctor=new l,this.externalCtor?this.ctor.body.push(new y(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new y(a+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor));this.ctor.ctor=this.ctor.name=a;this.ctor.klass=null;return this.ctor.noReturn=!0};b.prototype.compileNode=
function(a){var b,p,e,f,g;(p=this.body.jumps())&&p.error("Class bodies cannot contain pure statements");(b=this.body.contains(Ja))&&b.error("Class bodies shouldn't reference arguments");g=this.determineName();f=new x(g);p=new l([],c.wrap([this.body]));b=[];a.classScope=p.makeScope(a.scope);this.hoistDirectivePrologue();this.setContext(g);this.walkBody(g,a);this.ensureConstructor(g);this.addBoundFunctions(a);this.body.spaced=!0;this.body.expressions.push(f);this.parent&&(g=new x(a.classScope.freeVariable("superClass",
{reserve:!1})),this.body.expressions.unshift(new L(f,g)),p.params.push(new W(g)),b.push(this.parent));(e=this.body.expressions).unshift.apply(e,this.directives);e=new B(new d(p,b));this.variable&&(e=new D(this.variable,e,null,{moduleDeclaration:this.moduleDeclaration}));return e.compileToFragments(a)};return b}(a);f.ModuleDeclaration=n=function(a){function b(a,b){this.clause=a;this.source=b;this.checkSource()}ma(b,a);b.prototype.children=["clause","source"];b.prototype.isStatement=ha;b.prototype.jumps=
da;b.prototype.makeReturn=da;b.prototype.checkSource=function(){if(null!=this.source&&this.source instanceof Xa)return this.source.error("the name of the module to be imported from must be an uninterpolated string")};b.prototype.checkScope=function(a,b){if(0!==a.indent.length)return this.error(b+" statements must be at top-level scope")};return b}(a);f.ImportDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.compileNode=function(a){var b,
c;this.checkScope(a,"import");a.importedSymbols=[];b=[];b.push(this.makeCode(this.tab+"import "));null!=this.clause&&b.push.apply(b,this.clause.compileNode(a));null!=(null!=(c=this.source)?c.value:void 0)&&(null!==this.clause&&b.push(this.makeCode(" from ")),b.push(this.makeCode(this.source.value)));b.push(this.makeCode(";"));return b};return b}(n);f.ImportClause=function(a){function b(a,b){this.defaultBinding=a;this.namedImports=b}ma(b,a);b.prototype.children=["defaultBinding","namedImports"];b.prototype.compileNode=
function(a){var b;b=[];null!=this.defaultBinding&&(b.push.apply(b,this.defaultBinding.compileNode(a)),null!=this.namedImports&&b.push(this.makeCode(", ")));null!=this.namedImports&&b.push.apply(b,this.namedImports.compileNode(a));return b};return b}(a);f.ExportDeclaration=n=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.compileNode=function(a){var b,d;this.checkScope(a,"export");b=[];b.push(this.makeCode(this.tab+"export "));this instanceof G&&b.push(this.makeCode("default "));
this instanceof G||!(this.clause instanceof D||this.clause instanceof v)||(this.clause instanceof v&&!this.clause.variable&&this.clause.error("anonymous classes cannot be exported"),b.push(this.makeCode("var ")),this.clause.moduleDeclaration="export");b=null!=this.clause.body&&this.clause.body instanceof c?b.concat(this.clause.compileToFragments(a,H)):b.concat(this.clause.compileNode(a));null!=(null!=(d=this.source)?d.value:void 0)&&b.push(this.makeCode(" from "+this.source.value));b.push(this.makeCode(";"));
return b};return b}(n);f.ExportNamedDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(n);f.ExportDefaultDeclaration=G=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(n);f.ExportAllDeclaration=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(n);f.ModuleSpecifierList=n=function(a){function b(a){this.specifiers=a}ma(b,a);b.prototype.children=["specifiers"];
b.prototype.compileNode=function(a){var b,c,e,d,f;b=[];a.indent+=ba;var p;f=this.specifiers;p=[];e=0;for(d=f.length;e<d;e++)c=f[e],p.push(c.compileToFragments(a,h));if(0!==this.specifiers.length){b.push(this.makeCode("{\n"+a.indent));e=d=0;for(f=p.length;d<f;e=++d)c=p[e],e&&b.push(this.makeCode(",\n"+a.indent)),b.push.apply(b,c);b.push(this.makeCode("\n}"))}else b.push(this.makeCode("{}"));return b};return b}(a);f.ImportSpecifierList=function(a){function b(){return b.__super__.constructor.apply(this,
arguments)}ma(b,a);return b}(n);f.ExportSpecifierList=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(n);f.ModuleSpecifier=T=function(a){function b(a,b,c){this.original=a;this.alias=b;this.moduleDeclarationType=c;this.identifier=null!=this.alias?this.alias.value:this.original.value}ma(b,a);b.prototype.children=["original","alias"];b.prototype.compileNode=function(a){a.scope.add(this.identifier,this.moduleDeclarationType);a=[];a.push(this.makeCode(this.original.value));
null!=this.alias&&a.push(this.makeCode(" as "+this.alias.value));return a};return b}(a);f.ImportSpecifier=n=function(a){function b(a,c){b.__super__.constructor.call(this,a,c,"import")}ma(b,a);b.prototype.compileNode=function(a){var c;(c=this.identifier,0<=Ha.call(a.importedSymbols,c))||a.scope.check(this.identifier)?this.error("'"+this.identifier+"' has already been declared"):a.importedSymbols.push(this.identifier);return b.__super__.compileNode.call(this,a)};return b}(T);f.ImportDefaultSpecifier=
function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(n);f.ImportNamespaceSpecifier=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);return b}(n);f.ExportSpecifier=function(a){function b(a,c){b.__super__.constructor.call(this,a,c,"export")}ma(b,a);return b}(T);f.Assign=D=function(a){function b(a,b,c,e){this.variable=a;this.value=b;this.context=c;null==e&&(e={});this.param=e.param;this.subpattern=e.subpattern;this.operatorToken=
e.operatorToken;this.moduleDeclaration=e.moduleDeclaration}ma(b,a);b.prototype.children=["variable","value"];b.prototype.isStatement=function(a){return(null!=a?a.level:void 0)===H&&null!=this.context&&(this.moduleDeclaration||0<=Ha.call(this.context,"?"))};b.prototype.checkAssignability=function(a,b){if(Object.prototype.hasOwnProperty.call(a.scope.positions,b.value)&&"import"===a.scope.variables[a.scope.positions[b.value]].type)return b.error("'"+b.value+"' is read-only")};b.prototype.assigns=function(a){return this["object"===
this.context?"value":"variable"].assigns(a)};b.prototype.unfoldSoak=function(a){return Na(a,this,"variable")};b.prototype.compileNode=function(a){var b,c,e,d,f,p,g;if(c=this.variable instanceof M){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(a);if(this.variable.isSplice())return this.compileSplice(a);if("||\x3d"===(d=this.context)||"\x26\x26\x3d"===d||"?\x3d"===d)return this.compileConditional(a);if("**\x3d"===(f=this.context)||"//\x3d"===f||"%%\x3d"===f)return this.compileSpecialMath(a)}this.value instanceof
l&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):2<=(null!=(p=this.variable.properties)?p.length:void 0)&&(p=this.variable.properties,d=3<=p.length?Aa.call(p,0,e=p.length-2):(e=0,[]),f=p[e++],e=p[e++],"prototype"===(null!=(g=f.name)?g.value:void 0)&&(this.value.klass=new M(this.variable.base,d),this.value.name=e,this.value.variable=this.variable)));this.context||(g=this.variable.unwrapAll(),g.isAssignable()||
this.variable.error("'"+this.variable.compile(a)+"' can't be assigned"),"function"===typeof g.hasProperties&&g.hasProperties()||(this.moduleDeclaration?(this.checkAssignability(a,g),a.scope.add(g.value,this.moduleDeclaration)):this.param?a.scope.add(g.value,"var"):(this.checkAssignability(a,g),a.scope.find(g.value))));g=this.value.compileToFragments(a,h);c&&this.variable.base instanceof C&&(this.variable.front=!0);c=this.variable.compileToFragments(a,h);if("object"===this.context){if(b=Da(c),0<=Ha.call(r,
b))c.unshift(this.makeCode('"')),c.push(this.makeCode('"'));return c.concat(this.makeCode(": "),g)}b=c.concat(this.makeCode(" "+(this.context||"\x3d")+" "),g);return a.level<=h?b:this.wrapInBraces(b)};b.prototype.compilePatternMatch=function(a){var c,d,e,f,p,m,q,k,r,n,l,D,t,u,B,v;u=a.level===H;k=this.value;D=this.variable.base.objects;if(!(t=D.length))return d=k.compileToFragments(a),a.level>=K?this.wrapInBraces(d):d;l=D[0];1===t&&l instanceof z&&l.error("Destructuring assignment has no target");
m=this.variable.isObject();if(u&&1===t&&!(l instanceof Q))return e=null,l instanceof b&&"object"===l.context?(d=l,f=d.variable,p=f.base,l=d.value,l instanceof b&&(e=l.value,l=l.variable)):(l instanceof b&&(e=l.value,l=l.variable),p=m?l["this"]?l.properties[0].name:new N(l.unwrap().value):new R(0)),c=p.unwrap()instanceof N,k=new M(k),k.properties.push(new (c?ta:g)(p)),(n=Ga(l.unwrap().value))&&l.error(n),e&&(k=new A("?",k,e)),(new b(l,k,null,{param:this.param})).compileToFragments(a,H);B=k.compileToFragments(a,
h);v=Da(B);d=[];f=!1;k.unwrap()instanceof x&&!this.variable.assigns(v)||(d.push([this.makeCode((e=a.scope.freeVariable("ref"))+" \x3d ")].concat(Aa.call(B))),B=[this.makeCode(e)],v=e);e=k=0;for(r=D.length;k<r;e=++k){l=D[e];p=e;if(!f&&l instanceof Q)n=l.name.unwrap().value,l=l.unwrap(),p=t+" \x3c\x3d "+v+".length ? "+za("slice",a)+".call("+v+", "+e,(c=t-e-1)?(q=a.scope.freeVariable("i",{single:!0}),p+=", "+q+" \x3d "+v+".length - "+c+") : ("+q+" \x3d "+e+", [])"):p+=") : []",p=new y(p),f=q+"++";else if(!f&&
l instanceof z){if(c=t-e-1)1===c?f=v+".length - 1":(q=a.scope.freeVariable("i",{single:!0}),p=new y(q+" \x3d "+v+".length - "+c),f=q+"++",d.push(p.compileToFragments(a,h)));continue}else(l instanceof Q||l instanceof z)&&l.error("multiple splats/expansions are disallowed in an assignment"),e=null,l instanceof b&&"object"===l.context?(p=l.variable,p=p.base,l=l.value,l instanceof b&&(e=l.value,l=l.variable)):(l instanceof b&&(e=l.value,l=l.variable),p=m?l["this"]?l.properties[0].name:new N(l.unwrap().value):
new y(f||p)),n=l.unwrap().value,c=p.unwrap()instanceof N,p=new M(new y(v),[new (c?ta:g)(p)]),e&&(p=new A("?",p,e));null!=n&&(n=Ga(n))&&l.error(n);d.push((new b(l,p,null,{param:this.param,subpattern:!0})).compileToFragments(a,h))}u||this.subpattern||d.push(B);d=this.joinFragmentArrays(d,", ");return a.level<h?d:this.wrapInBraces(d)};b.prototype.compileConditional=function(a){var c,d;d=this.variable.cacheReference(a);c=d[0];d=d[1];c.properties.length||!(c.base instanceof y)||c.base instanceof ga||a.scope.check(c.base.value)||
this.variable.error('the variable "'+c.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before");if(0<=Ha.call(this.context,"?"))return a.isExistentialEquals=!0,(new E(new w(c),d,{type:"if"})).addElse(new b(d,this.value,"\x3d")).compileToFragments(a);c=(new A(this.context.slice(0,-1),c,new b(d,this.value,"\x3d"))).compileToFragments(a);return a.level<=h?c:this.wrapInBraces(c)};b.prototype.compileSpecialMath=function(a){var c,d;d=this.variable.cacheReference(a);
c=d[0];d=d[1];return(new b(c,new A(this.context.slice(0,-1),d,this.value))).compileToFragments(a)};b.prototype.compileSplice=function(a){var b,c,e,d,f,p;d=this.variable.properties.pop().range;e=d.from;b=d.to;c=d.exclusive;p=this.variable.compile(a);e?(f=this.cacheToCodeFragments(e.cache(a,K)),d=f[0],f=f[1]):d=f="0";b?null!=e&&e.isNumber()&&b.isNumber()?(b=b.compile(a)-f,c||(b+=1)):(b=b.compile(a,q)+" - "+f,c||(b+=" + 1")):b="9e9";c=this.value.cache(a,h);e=c[0];c=c[1];b=[].concat(this.makeCode("[].splice.apply("+
p+", ["+d+", "+b+"].concat("),e,this.makeCode(")), "),c);return a.level>H?this.wrapInBraces(b):b};return b}(a);f.Code=l=function(a){function b(a,b,d){this.params=a||[];this.body=b||new c;this.bound="boundfunc"===d;this.isGenerator=!!this.body.contains(function(a){return a instanceof A&&a.isYield()||a instanceof ca})}ma(b,a);b.prototype.children=["params","body"];b.prototype.isStatement=function(){return!!this.ctor};b.prototype.jumps=P;b.prototype.makeScope=function(a){return new J(a,this.body,this)};
b.prototype.compileNode=function(a){var f,p,e,g,h,m,k,l,r,n,t,u,v;this.bound&&null!=(p=a.scope.method)&&p.bound&&(this.context=a.scope.method.context);if(this.bound&&!this.context)return this.context="_this",p=new b([new W(new x(this.context))],new c([this])),p=new d(p,[new ga]),p.updateLocationDataIfMissing(this.locationData),p.compileNode(a);a.scope=na(a,"classScope")||this.makeScope(a.scope);a.scope.shared=na(a,"sharedScope");a.indent+=ba;delete a.bare;delete a.isExistentialEquals;p=[];f=[];l=
this.params;g=0;for(m=l.length;g<m;g++)k=l[g],k instanceof z||a.scope.parameter(k.asReference(a));l=this.params;g=0;for(m=l.length;g<m;g++)if(k=l[g],k.splat||k instanceof z){g=this.params;h=0;for(k=g.length;h<k;h++)r=g[h],r instanceof z||!r.name.value||a.scope.add(r.name.value,"var",!0);h=new D(new M(new pa(function(){var b,c,e,d;e=this.params;d=[];c=0;for(b=e.length;c<b;c++)r=e[c],d.push(r.asReference(a));return d}.call(this))),new M(new x("arguments")));break}t=this.params;l=0;for(g=t.length;l<
g;l++)k=t[l],k.isComplex()?(v=n=k.asReference(a),k.value&&(v=new A("?",n,k.value)),f.push(new D(new M(k.name),v,"\x3d",{param:!0}))):(n=k,k.value&&(m=new y(n.name.value+" \x3d\x3d null"),v=new D(new M(k.name),k.value,"\x3d"),f.push(new E(m,v)))),h||p.push(n);k=this.body.isEmpty();h&&f.unshift(h);f.length&&(e=this.body.expressions).unshift.apply(e,f);e=h=0;for(f=p.length;h<f;e=++h)r=p[e],p[e]=r.compileToFragments(a),a.scope.parameter(Da(p[e]));u=[];this.eachParamName(function(a,b){0<=Ha.call(u,a)&&
b.error("multiple parameters named "+a);return u.push(a)});k||this.noReturn||this.body.makeReturn();e="function";this.isGenerator&&(e+="*");this.ctor&&(e+=" "+this.name);f=[this.makeCode(e+"(")];e=k=0;for(h=p.length;k<h;e=++k)r=p[e],e&&f.push(this.makeCode(", ")),f.push.apply(f,r);f.push(this.makeCode(") {"));this.body.isEmpty()||(f=f.concat(this.makeCode("\n"),this.body.compileWithDeclarations(a),this.makeCode("\n"+this.tab)));f.push(this.makeCode("}"));return this.ctor?[this.makeCode(this.tab)].concat(Aa.call(f)):
this.front||a.level>=q?this.wrapInBraces(f):f};b.prototype.eachParamName=function(a){var b,c,e,d,f;d=this.params;f=[];b=0;for(c=d.length;b<c;b++)e=d[b],f.push(e.eachName(a));return f};b.prototype.traverseChildren=function(a,c){if(a)return b.__super__.traverseChildren.call(this,a,c)};return b}(a);f.Param=W=function(a){function b(a,b,c){this.name=a;this.value=b;this.splat=c;(a=Ga(this.name.unwrapAll().value))&&this.name.error(a);this.name instanceof C&&this.name.generated&&(a=this.name.objects[0].operatorToken,
a.error("unexpected "+a.value))}ma(b,a);b.prototype.children=["name","value"];b.prototype.compileToFragments=function(a){return this.name.compileToFragments(a,h)};b.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name;b["this"]?(b=b.properties[0].name.value,0<=Ha.call(r,b)&&(b="_"+b),b=new x(a.scope.freeVariable(b))):b.isComplex()&&(b=new x(a.scope.freeVariable("arg")));b=new M(b);this.splat&&(b=new Q(b));b.updateLocationDataIfMissing(this.locationData);return this.reference=
b};b.prototype.isComplex=function(){return this.name.isComplex()};b.prototype.eachName=function(a,b){var c,e,d,f;null==b&&(b=this.name);c=function(b){return a("@"+b.properties[0].name.value,b)};if(b instanceof y)return a(b.value,b);if(b instanceof M)return c(b);b=null!=(e=b.objects)?e:[];e=0;for(d=b.length;e<d;e++)f=b[e],f instanceof D&&null==f.context&&(f=f.variable),f instanceof D?(f.value instanceof D&&(f=f.value),this.eachName(a,f.value.unwrap())):f instanceof Q?(f=f.name.unwrap(),a(f.value,f)):
f instanceof M?f.isArray()||f.isObject()?this.eachName(a,f.base):f["this"]?c(f):a(f.base.value,f.base):f instanceof z||f.error("illegal parameter "+f.compile())};return b}(a);f.Splat=Q=function(a){function b(a){this.name=a.compile?a:new y(a)}ma(b,a);b.prototype.children=["name"];b.prototype.isAssignable=ha;b.prototype.assigns=function(a){return this.name.assigns(a)};b.prototype.compileToFragments=function(a){return this.name.compileToFragments(a)};b.prototype.unwrap=function(){return this.name};b.compileSplattedArray=
function(a,c,d){var e,f,g,p,k,m;for(p=-1;(e=c[++p])&&!(e instanceof b););if(p>=c.length)return[];if(1===c.length)return e=c[0],c=e.compileToFragments(a,h),d?c:[].concat(e.makeCode(za("slice",a)+".call("),c,e.makeCode(")"));d=c.slice(p);g=k=0;for(m=d.length;k<m;g=++k)e=d[g],f=e.compileToFragments(a,h),d[g]=e instanceof b?[].concat(e.makeCode(za("slice",a)+".call("),f,e.makeCode(")")):[].concat(e.makeCode("["),f,e.makeCode("]"));if(0===p)return e=c[0],a=e.joinFragmentArrays(d.slice(1),", "),d[0].concat(e.makeCode(".concat("),
a,e.makeCode(")"));k=c.slice(0,p);m=[];f=0;for(g=k.length;f<g;f++)e=k[f],m.push(e.compileToFragments(a,h));e=c[0].joinFragmentArrays(m,", ");a=c[p].joinFragmentArrays(d,", ");d=c[c.length-1];return[].concat(c[0].makeCode("["),e,c[p].makeCode("].concat("),a,d.makeCode(")"))};return b}(a);f.Expansion=z=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.isComplex=P;b.prototype.compileNode=function(a){return this.error("Expansion must be used inside a destructuring assignment or parameter list")};
b.prototype.asReference=function(a){return this};b.prototype.eachName=function(a){};return b}(a);f.While=n=function(a){function b(a,b){this.condition=null!=b&&b.invert?a.invert():a;this.guard=null!=b?b.guard:void 0}ma(b,a);b.prototype.children=["condition","guard","body"];b.prototype.isStatement=ha;b.prototype.makeReturn=function(a){if(a)return b.__super__.makeReturn.apply(this,arguments);this.returns=!this.jumps({loop:!0});return this};b.prototype.addBody=function(a){this.body=a;return this};b.prototype.jumps=
function(){var a,b,c,e;a=this.body.expressions;if(!a.length)return!1;b=0;for(e=a.length;b<e;b++)if(c=a[b],c=c.jumps({loop:!0}))return c;return!1};b.prototype.compileNode=function(a){var b,d,e;a.indent+=ba;e="";b=this.body;b.isEmpty()?b=this.makeCode(""):(this.returns&&(b.makeReturn(d=a.scope.freeVariable("results")),e=""+this.tab+d+" \x3d [];\n"),this.guard&&(1<b.expressions.length?b.expressions.unshift(new E((new B(this.guard)).invert(),new ya("continue"))):this.guard&&(b=c.wrap([new E(this.guard,
b)]))),b=[].concat(this.makeCode("\n"),b.compileToFragments(a,H),this.makeCode("\n"+this.tab)));a=[].concat(this.makeCode(e+this.tab+"while ("),this.condition.compileToFragments(a,O),this.makeCode(") {"),b,this.makeCode("}"));this.returns&&a.push(this.makeCode("\n"+this.tab+"return "+d+";"));return a};return b}(a);f.Op=A=function(a){function b(a,b,f,g){if("in"===a)return new m(b,f);if("do"===a)return this.generateDo(b);if("new"===a){if(b instanceof d&&!b["do"]&&!b.isNew)return b.newInstance();if(b instanceof
l&&b.bound||b["do"])b=new B(b)}this.operator=c[a]||a;this.first=b;this.second=f;this.flip=!!g;return this}var c,f;ma(b,a);c={"\x3d\x3d":"\x3d\x3d\x3d","!\x3d":"!\x3d\x3d",of:"in",yieldfrom:"yield*"};f={"!\x3d\x3d":"\x3d\x3d\x3d","\x3d\x3d\x3d":"!\x3d\x3d"};b.prototype.children=["first","second"];b.prototype.isNumber=function(){var a;return this.isUnary()&&("+"===(a=this.operator)||"-"===a)&&this.first instanceof M&&this.first.isNumber()};b.prototype.isYield=function(){var a;return"yield"===(a=this.operator)||
"yield*"===a};b.prototype.isUnary=function(){return!this.second};b.prototype.isComplex=function(){return!this.isNumber()};b.prototype.isChainable=function(){var a;return"\x3c"===(a=this.operator)||"\x3e"===a||"\x3e\x3d"===a||"\x3c\x3d"===a||"\x3d\x3d\x3d"===a||"!\x3d\x3d"===a};b.prototype.invert=function(){var a,c,d;if(this.isChainable()&&this.first.isChainable()){a=!0;for(c=this;c&&c.operator;)a&&(a=c.operator in f),c=c.first;if(!a)return(new B(this)).invert();for(c=this;c&&c.operator;)c.invert=
!c.invert,c.operator=f[c.operator],c=c.first;return this}return(c=f[this.operator])?(this.operator=c,this.first.unwrap()instanceof b&&this.first.invert(),this):this.second?(new B(this)).invert():"!"===this.operator&&(a=this.first.unwrap())instanceof b&&("!"===(d=a.operator)||"in"===d||"instanceof"===d)?a:new b("!",this)};b.prototype.unfoldSoak=function(a){var b;return("++"===(b=this.operator)||"--"===b||"delete"===b)&&Na(a,this,"first")};b.prototype.generateDo=function(a){var b,c,f,g,p;g=[];p=(a instanceof
D&&(b=a.value.unwrap())instanceof l?b:a).params||[];b=0;for(c=p.length;b<c;b++)f=p[b],f.value?(g.push(f.value),delete f.value):g.push(f);a=new d(a,g);a["do"]=!0;return a};b.prototype.compileNode=function(a){var b,c;b=this.isChainable()&&this.first.isChainable();b||(this.first.front=this.front);"delete"===this.operator&&a.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var");("--"===(c=this.operator)||"++"===c)&&(c=Ga(this.first.unwrapAll().value))&&this.first.error(c);
if(this.isYield())return this.compileYield(a);if(this.isUnary())return this.compileUnary(a);if(b)return this.compileChain(a);switch(this.operator){case "?":return this.compileExistence(a);case "**":return this.compilePower(a);case "//":return this.compileFloorDivision(a);case "%%":return this.compileModulo(a);default:return b=this.first.compileToFragments(a,K),c=this.second.compileToFragments(a,K),b=[].concat(b,this.makeCode(" "+this.operator+" "),c),a.level<=K?b:this.wrapInBraces(b)}};b.prototype.compileChain=
function(a){var b;b=this.first.second.cache(a);this.first.second=b[0];b=b[1];a=this.first.compileToFragments(a,K).concat(this.makeCode(" "+(this.invert?"\x26\x26":"||")+" "),b.compileToFragments(a),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(a,K));return this.wrapInBraces(a)};b.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new x(a.scope.freeVariable("ref")),b=new B(new D(c,this.first))):c=b=this.first;return(new E(new w(b),c,{type:"if"})).addElse(this.second).compileToFragments(a)};
b.prototype.compileUnary=function(a){var c,d,f;d=[];c=this.operator;d.push([this.makeCode(c)]);if("!"===c&&this.first instanceof w)return this.first.negated=!this.first.negated,this.first.compileToFragments(a);if(a.level>=q)return(new B(this)).compileToFragments(a);f="+"===c||"-"===c;("new"===c||"typeof"===c||"delete"===c||f&&this.first instanceof b&&this.first.operator===c)&&d.push([this.makeCode(" ")]);if(f&&this.first instanceof b||"new"===c&&this.first.isStatement(a))this.first=new B(this.first);
d.push(this.first.compileToFragments(a,K));this.flip&&d.reverse();return this.joinFragmentArrays(d,"")};b.prototype.compileYield=function(a){var b,c,d;c=[];b=this.operator;null==a.scope.parent&&this.error("yield can only occur inside functions");0<=Ha.call(Object.keys(this.first),"expression")&&!(this.first instanceof fa)?null!=this.first.expression&&c.push(this.first.expression.compileToFragments(a,K)):(a.level>=O&&c.push([this.makeCode("(")]),c.push([this.makeCode(b)]),""!==(null!=(d=this.first.base)?
d.value:void 0)&&c.push([this.makeCode(" ")]),c.push(this.first.compileToFragments(a,K)),a.level>=O&&c.push([this.makeCode(")")]));return this.joinFragmentArrays(c,"")};b.prototype.compilePower=function(a){var b;b=new M(new x("Math"),[new ta(new N("pow"))]);return(new d(b,[this.first,this.second])).compileToFragments(a)};b.prototype.compileFloorDivision=function(a){var c,f;f=new M(new x("Math"),[new ta(new N("floor"))]);c=new b("/",this.first,this.second);return(new d(f,[c])).compileToFragments(a)};
b.prototype.compileModulo=function(a){var b;b=new M(new y(za("modulo",a)));return(new d(b,[this.first,this.second])).compileToFragments(a)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return b}(a);f.In=m=function(a){function b(a,b){this.object=a;this.array=b}ma(b,a);b.prototype.children=["object","array"];b.prototype.invert=S;b.prototype.compileNode=function(a){var b,c,e,d,f;if(this.array instanceof M&&this.array.isArray()&&this.array.base.objects.length){f=
this.array.base.objects;c=0;for(e=f.length;c<e;c++)if(d=f[c],d instanceof Q){b=!0;break}if(!b)return this.compileOrTest(a)}return this.compileLoopTest(a)};b.prototype.compileOrTest=function(a){var b,c,e,d,f,g,p,h,k,m;b=this.object.cache(a,K);k=b[0];p=b[1];c=this.negated?[" !\x3d\x3d "," \x26\x26 "]:[" \x3d\x3d\x3d "," || "];b=c[0];c=c[1];m=[];h=this.array.base.objects;e=f=0;for(g=h.length;f<g;e=++f)d=h[e],e&&m.push(this.makeCode(c)),m=m.concat(e?p:k,this.makeCode(b),d.compileToFragments(a,q));return a.level<
K?m:this.wrapInBraces(m)};b.prototype.compileLoopTest=function(a){var b,c,e;b=this.object.cache(a,h);e=b[0];c=b[1];b=[].concat(this.makeCode(za("indexOf",a)+".call("),this.array.compileToFragments(a,h),this.makeCode(", "),c,this.makeCode(") "+(this.negated?"\x3c 0":"\x3e\x3d 0")));if(Da(e)===Da(c))return b;b=e.concat(this.makeCode(", "),b);return a.level<h?b:this.wrapInBraces(b)};b.prototype.toString=function(a){return b.__super__.toString.call(this,a,this.constructor.name+(this.negated?"!":""))};
return b}(a);f.Try=function(a){function b(a,b,c,e){this.attempt=a;this.errorVariable=b;this.recovery=c;this.ensure=e}ma(b,a);b.prototype.children=["attempt","recovery","ensure"];b.prototype.isStatement=ha;b.prototype.jumps=function(a){var b;return this.attempt.jumps(a)||(null!=(b=this.recovery)?b.jumps(a):void 0)};b.prototype.makeReturn=function(a){this.attempt&&(this.attempt=this.attempt.makeReturn(a));this.recovery&&(this.recovery=this.recovery.makeReturn(a));return this};b.prototype.compileNode=
function(a){var b,c,e,d,f;a.indent+=ba;f=this.attempt.compileToFragments(a,H);b=this.recovery?(c=a.scope.freeVariable("error",{reserve:!1}),d=new x(c),this.errorVariable?(e=Ga(this.errorVariable.unwrapAll().value),e?this.errorVariable.error(e):void 0,this.recovery.unshift(new D(this.errorVariable,d))):void 0,[].concat(this.makeCode(" catch ("),d.compileToFragments(a),this.makeCode(") {\n"),this.recovery.compileToFragments(a,H),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:(c=a.scope.freeVariable("error",
{reserve:!1}),[this.makeCode(" catch ("+c+") {}")]);a=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(a,H),this.makeCode("\n"+this.tab+"}")):[];return[].concat(this.makeCode(this.tab+"try {\n"),f,this.makeCode("\n"+this.tab+"}"),b,a)};return b}(a);f.Throw=fa=function(a){function b(a){this.expression=a}ma(b,a);b.prototype.children=["expression"];b.prototype.isStatement=ha;b.prototype.jumps=P;b.prototype.makeReturn=da;b.prototype.compileNode=function(a){return[].concat(this.makeCode(this.tab+
"throw "),this.expression.compileToFragments(a),this.makeCode(";"))};return b}(a);f.Existence=w=function(a){function b(a){this.expression=a}ma(b,a);b.prototype.children=["expression"];b.prototype.invert=S;b.prototype.compileNode=function(a){var b,c,e;this.expression.front=this.front;e=this.expression.compile(a,K);this.expression.unwrap()instanceof x&&!a.scope.check(e)?(c=this.negated?["\x3d\x3d\x3d","||"]:["!\x3d\x3d","\x26\x26"],b=c[0],c=c[1],e="typeof "+e+" "+b+' "undefined" '+c+" "+e+" "+b+" null"):
e=e+" "+(this.negated?"\x3d\x3d":"!\x3d")+" null";return[this.makeCode(a.level<=k?e:"("+e+")")]};return b}(a);f.Parens=B=function(a){function b(a){this.body=a}ma(b,a);b.prototype.children=["body"];b.prototype.unwrap=function(){return this.body};b.prototype.isComplex=function(){return this.body.isComplex()};b.prototype.compileNode=function(a){var b,c;b=this.body.unwrap();if(b instanceof M&&b.isAtomic())return b.front=this.front,b.compileToFragments(a);c=b.compileToFragments(a,O);return a.level<K&&
(b instanceof A||b instanceof d||b instanceof I&&b.returns)?c:this.wrapInBraces(c)};return b}(a);f.StringWithInterpolations=Xa=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}ma(b,a);b.prototype.compileNode=function(a){var c,d,e,f,g;if(!a.inTaggedTemplateCall)return b.__super__.compileNode.apply(this,arguments);e=this.body.unwrap();d=[];e.traverseChildren(!1,function(a){if(a instanceof Za)d.push(a);else if(a instanceof B)return d.push(a),!1;return!0});e=[];e.push(this.makeCode("`"));
f=0;for(g=d.length;f<g;f++)c=d[f],c instanceof Za?(c=c.value.slice(1,-1),c=c.replace(/(\\*)(`|\$\{)/g,function(a,b,c){return 0===b.length%2?b+"\\"+c:a}),e.push(this.makeCode(c))):(e.push(this.makeCode("${")),e.push.apply(e,c.compileToFragments(a,O)),e.push(this.makeCode("}")));e.push(this.makeCode("`"));return e};return b}(B);f.For=I=function(a){function b(a,b){this.source=b.source;this.guard=b.guard;this.step=b.step;this.name=b.name;this.index=b.index;this.body=c.wrap([a]);this.own=!!b.own;this.object=
!!b.object;(this.from=!!b.from)&&this.index&&this.index.error("cannot use index with for-from");this.own&&!this.object&&b.ownTag.error("cannot use own with for-"+(this.from?"from":"in"));this.object&&(a=[this.index,this.name],this.name=a[0],this.index=a[1]);this.index instanceof M&&this.index.error("index cannot be a pattern matching expression");this.range=this.source instanceof M&&this.source.base instanceof X&&!this.source.properties.length&&!this.from;this.pattern=this.name instanceof M;this.range&&
this.index&&this.index.error("indexes do not apply to range loops");this.range&&this.pattern&&this.name.error("cannot pattern match over range loops");this.returns=!1}ma(b,a);b.prototype.children=["body","source","guard","step"];b.prototype.compileNode=function(a){var b,d,e,f,g,p,k,m,q,l,r,n,t,v,u,K,A,z,C,w,G;b=c.wrap([this.body]);q=b.expressions;q=q[q.length-1];(null!=q?q.jumps():void 0)instanceof V&&(this.returns=!1);u=this.range?this.source.base:this.source;e=a.scope;this.pattern||(m=this.name&&
this.name.compile(a,h));q=this.index&&this.index.compile(a,h);m&&!this.pattern&&e.find(m);q&&e.find(q);this.returns&&(k=e.freeVariable("results"));this.from?this.pattern&&(r=e.freeVariable("x",{single:!0})):r=this.object&&q||e.freeVariable("i",{single:!0});n=(this.range||this.from)&&m||q||r;t=n!==r?n+" \x3d ":"";this.step&&!this.range&&(q=this.cacheToCodeFragments(this.step.cache(a,h,sa)),g=q[0],C=q[1],this.step.isNumber()&&(z=Number(C)));this.pattern&&(m=r);p=q=G="";l=this.tab+ba;this.range?f=u.compileToFragments(Fa(a,
{index:r,name:m,step:this.step,isComplex:sa})):(w=this.source.compile(a,h),!m&&!this.own||this.source.unwrap()instanceof x||(p+=""+this.tab+(u=e.freeVariable("ref"))+" \x3d "+w+";\n",w=u),!m||this.pattern||this.from||(v=m+" \x3d "+w+"["+n+"]"),this.object||this.from||(g!==C&&(p+=""+this.tab+g+";\n"),m=0>z,this.step&&null!=z&&m||(d=e.freeVariable("len")),f=""+t+r+" \x3d 0, "+d+" \x3d "+w+".length",g=""+t+r+" \x3d "+w+".length - 1",d=r+" \x3c "+d,e=r+" \x3e\x3d 0",this.step?(null!=z?m&&(d=e,f=g):(d=
C+" \x3e 0 ? "+d+" : "+e,f="("+C+" \x3e 0 ? ("+f+") : "+g+")"),r=r+" +\x3d "+C):r=""+(n!==r?"++"+r:r+"++"),f=[this.makeCode(f+"; "+d+"; "+t+r)]));this.returns&&(K=""+this.tab+k+" \x3d [];\n",A="\n"+this.tab+"return "+k+";",b.makeReturn(k));this.guard&&(1<b.expressions.length?b.expressions.unshift(new E((new B(this.guard)).invert(),new ya("continue"))):this.guard&&(b=c.wrap([new E(this.guard,b)])));this.pattern&&b.expressions.unshift(new D(this.name,this.from?new x(n):new y(w+"["+n+"]")));k=[].concat(this.makeCode(p),
this.pluckDirectCall(a,b));v&&(G="\n"+l+v+";");this.object?(f=[this.makeCode(n+" in "+w)],this.own&&(q="\n"+l+"if (!"+za("hasProp",a)+".call("+w+", "+n+")) continue;")):this.from&&(f=[this.makeCode(n+" of "+w)]);(a=b.compileToFragments(Fa(a,{indent:l}),H))&&0<a.length&&(a=[].concat(this.makeCode("\n"),a,this.makeCode("\n")));return[].concat(k,this.makeCode(""+(K||"")+this.tab+"for ("),f,this.makeCode(") {"+q+G),a,this.makeCode(this.tab+"}"+(A||"")))};b.prototype.pluckDirectCall=function(a,b){var c,
e,f,g,h,m,p,k,q,r,n,t,y,v,u;e=[];q=b.expressions;h=m=0;for(p=q.length;m<p;h=++m)if(f=q[h],f=f.unwrapAll(),f instanceof d&&(u=null!=(r=f.variable)?r.unwrapAll():void 0,u instanceof l||u instanceof M&&(null!=(n=u.base)?n.unwrapAll():void 0)instanceof l&&1===u.properties.length&&("call"===(t=null!=(y=u.properties[0].name)?y.value:void 0)||"apply"===t)))g=(null!=(v=u.base)?v.unwrapAll():void 0)||u,k=new x(a.scope.freeVariable("fn")),c=new M(k),u.base&&(c=[c,u],u.base=c[0],c=c[1]),b.expressions[h]=new d(c,
f.args),e=e.concat(this.makeCode(this.tab),(new D(k,g)).compileToFragments(a,H),this.makeCode(";\n"));return e};return b}(n);f.Switch=function(a){function b(a,b,c){this.subject=a;this.cases=b;this.otherwise=c}ma(b,a);b.prototype.children=["subject","cases","otherwise"];b.prototype.isStatement=ha;b.prototype.jumps=function(a){var b,c,e,d,f;null==a&&(a={block:!0});d=this.cases;c=0;for(e=d.length;c<e;c++)if(b=d[c],b=b[1],b=b.jumps(a))return b;return null!=(f=this.otherwise)?f.jumps(a):void 0};b.prototype.makeReturn=
function(a){var b,d,e,f,g;f=this.cases;b=0;for(d=f.length;b<d;b++)e=f[b],e[1].makeReturn(a);a&&(this.otherwise||(this.otherwise=new c([new y("void 0")])));null!=(g=this.otherwise)&&g.makeReturn(a);return this};b.prototype.compileNode=function(a){var b,c,e,d,f,g,h,m,k,p,q,r,l;h=a.indent+ba;m=a.indent=h+ba;g=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(a,O):this.makeCode("false"),this.makeCode(") {\n"));r=this.cases;f=k=0;for(p=r.length;k<p;f=++k){b=r[f];
d=b[0];b=b[1];l=la([d]);d=0;for(q=l.length;d<q;d++)e=l[d],this.subject||(e=e.invert()),g=g.concat(this.makeCode(h+"case "),e.compileToFragments(a,O),this.makeCode(":\n"));0<(c=b.compileToFragments(a,H)).length&&(g=g.concat(c,this.makeCode("\n")));if(f===this.cases.length-1&&!this.otherwise)break;f=this.lastNonComment(b.expressions);f instanceof V||f instanceof y&&f.jumps()&&"debugger"!==f.value||g.push(e.makeCode(m+"break;\n"))}this.otherwise&&this.otherwise.expressions.length&&g.push.apply(g,[this.makeCode(h+
"default:\n")].concat(Aa.call(this.otherwise.compileToFragments(a,H)),[this.makeCode("\n")]));g.push(this.makeCode(this.tab+"}"));return g};return b}(a);f.If=E=function(a){function b(a,b,c){this.body=b;null==c&&(c={});this.condition="unless"===c.type?a.invert():a;this.elseBody=null;this.isChain=!1;this.soak=c.soak}ma(b,a);b.prototype.children=["condition","body","elseBody"];b.prototype.bodyNode=function(){var a;return null!=(a=this.body)?a.unwrap():void 0};b.prototype.elseBodyNode=function(){var a;
return null!=(a=this.elseBody)?a.unwrap():void 0};b.prototype.addElse=function(a){this.isChain?this.elseBodyNode().addElse(a):(this.isChain=a instanceof b,this.elseBody=this.ensureBlock(a),this.elseBody.updateLocationDataIfMissing(a.locationData));return this};b.prototype.isStatement=function(a){var b;return(null!=a?a.level:void 0)===H||this.bodyNode().isStatement(a)||(null!=(b=this.elseBodyNode())?b.isStatement(a):void 0)};b.prototype.jumps=function(a){var b;return this.body.jumps(a)||(null!=(b=
this.elseBody)?b.jumps(a):void 0)};b.prototype.compileNode=function(a){return this.isStatement(a)?this.compileStatement(a):this.compileExpression(a)};b.prototype.makeReturn=function(a){a&&(this.elseBody||(this.elseBody=new c([new y("void 0")])));this.body&&(this.body=new c([this.body.makeReturn(a)]));this.elseBody&&(this.elseBody=new c([this.elseBody.makeReturn(a)]));return this};b.prototype.ensureBlock=function(a){return a instanceof c?a:new c([a])};b.prototype.compileStatement=function(a){var c,
d,e,f;c=na(a,"chainChild");if(na(a,"isExistentialEquals"))return(new b(this.condition.invert(),this.elseBodyNode(),{type:"if"})).compileToFragments(a);f=a.indent+ba;e=this.condition.compileToFragments(a,O);d=this.ensureBlock(this.body).compileToFragments(Fa(a,{indent:f}));d=[].concat(this.makeCode("if ("),e,this.makeCode(") {\n"),d,this.makeCode("\n"+this.tab+"}"));c||d.unshift(this.makeCode(this.tab));if(!this.elseBody)return d;c=d.concat(this.makeCode(" else "));this.isChain?(a.chainChild=!0,c=
c.concat(this.elseBody.unwrap().compileToFragments(a,H))):c=c.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(Fa(a,{indent:f}),H),this.makeCode("\n"+this.tab+"}"));return c};b.prototype.compileExpression=function(a){var b,c,e;e=this.condition.compileToFragments(a,k);c=this.bodyNode().compileToFragments(a,h);b=this.elseBodyNode()?this.elseBodyNode().compileToFragments(a,h):[this.makeCode("void 0")];b=e.concat(this.makeCode(" ? "),c,this.makeCode(" : "),b);return a.level>=k?this.wrapInBraces(b):
b};b.prototype.unfoldSoak=function(){return this.soak&&this};return b}(a);ka={extend:function(a){return"function(child, parent) { for (var key in parent) { if ("+za("hasProp",a)+".call(parent, key)) child[key] \x3d parent[key]; } function ctor() { this.constructor \x3d child; } ctor.prototype \x3d parent.prototype; child.prototype \x3d new ctor(); child.__super__ \x3d parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},
indexOf:function(){return"[].indexOf || function(item) { for (var i \x3d 0, l \x3d this.length; i \x3c l; i++) { if (i in this \x26\x26 this[i] \x3d\x3d\x3d item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b \x3d +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}};H=1;O=2;h=3;k=4;K=5;q=6;ba=" ";U=/^[+-]?\d+$/;za=function(a,b){var c,d;d=b.scope.root;if(a in d.utilities)return d.utilities[a];c=d.freeVariable(a);
d.assign(c,ka[a](b));return d.utilities[a]=c};Pa=function(a,b){a=a.replace(/\n/g,"$\x26"+b);return a.replace(/\s+$/,"")};Ja=function(a){return a instanceof x&&"arguments"===a.value};Ta=function(a){return a instanceof ga||a instanceof l&&a.bound||a instanceof ia};sa=function(a){return a.isComplex()||("function"===typeof a.isAssignable?a.isAssignable():void 0)};Na=function(a,b,c){if(a=b[c].unfoldSoak(a))return b[c]=a.body,a.body=new M(b),a}}).call(this);return f}();t["./sourcemap"]=function(){var f=
{};(function(){var t;t=function(){function f(f){this.line=f;this.columns=[]}f.prototype.add=function(f,a,c){var t;t=a[0];a=a[1];null==c&&(c={});if(!this.columns[f]||!c.noReplace)return this.columns[f]={line:this.line,column:f,sourceLine:t,sourceColumn:a}};f.prototype.sourceLocation=function(f){for(var a;!((a=this.columns[f])||0>=f);)f--;return a&&[a.sourceLine,a.sourceColumn]};return f}();f=function(){function f(){this.lines=[]}f.prototype.add=function(f,a,c){var D,d;null==c&&(c={});d=a[0];a=a[1];
return((D=this.lines)[d]||(D[d]=new t(d))).add(a,f,c)};f.prototype.sourceLocation=function(f){var a,c;a=f[0];for(f=f[1];!((c=this.lines[a])||0>=a);)a--;return c&&c.sourceLocation(f)};f.prototype.generate=function(f,a){var c,t,d,v,l,u,D,w,z,n,G,L,I;null==f&&(f={});null==a&&(a=null);l=u=v=I=0;n=!1;c="";G=this.lines;d=t=0;for(D=G.length;t<D;d=++t)if(d=G[d])for(L=d.columns,d=0,w=L.length;d<w;d++)if(z=L[d]){for(;I<z.line;)v=0,n=!1,c+=";",I++;n&&(c+=",");c+=this.encodeVlq(z.column-v);v=z.column;c+=this.encodeVlq(0);
c+=this.encodeVlq(z.sourceLine-u);u=z.sourceLine;c+=this.encodeVlq(z.sourceColumn-l);l=z.sourceColumn;n=!0}c={version:3,file:f.generatedFile||"",sourceRoot:f.sourceRoot||"",sources:f.sourceFiles||[""],names:[],mappings:c};f.inlineMap&&(c.sourcesContent=[a]);return c};f.prototype.encodeVlq=function(f){var a,c;a="";for(c=(Math.abs(f)<<1)+(0>f?1:0);c||!a;)f=c&31,(c>>=5)&&(f|=32),a+=this.encodeBase64(f);return a};f.prototype.encodeBase64=function(f){var a;if(!(a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[f]))throw Error("Cannot Base64 encode value: "+
f);return a};return f}()}).call(this);return f}();t["./coffee-script"]=function(){var f={};(function(){var pa,xa,D,a,c,Ca,d,v,l,u,F,w,z,n,G,L,I,x,E={}.hasOwnProperty;v=t("fs");x=t("vm");G=t("path");pa=t("./lexer").Lexer;n=t("./parser").parser;u=t("./helpers");xa=t("./sourcemap");f.VERSION="1.12.0";f.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"];f.helpers=u;D=function(a){switch(!1){case "function"!==typeof Buffer:return(new Buffer(a)).toString("base64");case "function"!==typeof btoa:return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,
function(a,c){return String.fromCharCode("0x"+c)}));default:throw Error("Unable to base64 encode inline sourcemap.");}};Ca=function(a){return function(c,d){null==d&&(d={});try{return a.call(this,c,d)}catch(q){if("string"!==typeof c)throw q;throw u.updateSyntaxError(q,c,d.filename);}}};f.compile=a=Ca(function(a,c){var d,f,g,h,m,l,t,x,v,w,G,E;g=u.extend;c=g({},c);(g=c.sourceMap||c.inlineMap)&&(v=new xa);f=z.tokenize(a,c);h=c;x=[];m=0;for(l=f.length;m<l;m++)d=f[m],"IDENTIFIER"===d[0]&&x.push(d[1]);h.referencedVars=
x;if(null==c.bare||!0!==c.bare)for(h=0,m=f.length;h<m;h++)if(d=f[h],"IMPORT"===(t=d[0])||"EXPORT"===t){c.bare=!0;break}m=n.parse(f).compileToFragments(c);f=0;c.header&&(f+=1);c.shiftLine&&(f+=1);d=0;t="";l=0;for(x=m.length;l<x;l++)h=m[l],g&&(h.locationData&&!/^[;\s]*$/.test(h.code)&&v.add([h.locationData.first_line,h.locationData.first_column],[f,d],{noReplace:!0}),w=u.count(h.code,"\n"),f+=w,d=w?h.code.length-(h.code.lastIndexOf("\n")+1):d+h.code.length),t+=h.code;c.header&&(d="Generated by CoffeeScript "+
this.VERSION,t="// "+d+"\n"+t);g&&(E=v.generate(c,a));c.inlineMap&&(a=D(JSON.stringify(E)),g="//# sourceURL\x3d"+(null!=(G=c.filename)?G:"coffeescript"),t=t+"\n"+("//# sourceMappingURL\x3ddata:application/json;base64,"+a)+"\n"+g);return c.sourceMap?{js:t,sourceMap:v,v3SourceMap:JSON.stringify(E,null,2)}:t});f.tokens=Ca(function(a,c){return z.tokenize(a,c)});f.nodes=Ca(function(a,c){return"string"===typeof a?n.parse(z.tokenize(a,c)):n.parse(a)});f.run=function(c,d){var f,g,k;null==d&&(d={});g=t.main;
g.filename=process.argv[1]=d.filename?v.realpathSync(d.filename):".";g.moduleCache&&(g.moduleCache={});f=d.filename?G.dirname(v.realpathSync(d.filename)):v.realpathSync(".");g.paths=t("module")._nodeModulePaths(f);if(!u.isCoffee(g.filename)||t.extensions)c=a(c,d),c=null!=(k=c.js)?k:c;return g._compile(c,g.filename)};f.eval=function(c,d){var f,g,k,h,m,l,n,u,v,w;null==d&&(d={});if(c=c.trim()){h=null!=(m=x.Script.createContext)?m:x.createContext;m=null!=(k=x.isContext)?k:function(a){return d.sandbox instanceof
h().constructor};if(h){if(null!=d.sandbox){if(m(d.sandbox))w=d.sandbox;else for(l in w=h(),m=d.sandbox,m)E.call(m,l)&&(k=m[l],w[l]=k);w.global=w.root=w.GLOBAL=w}else w=global;w.__filename=d.filename||"eval";w.__dirname=G.dirname(w.__filename);if(w===global&&!w.module&&!w.require){f=t("module");w.module=g=new f(d.modulename||"eval");w.require=k=function(a){return f._load(a,g,!0)};g.filename=w.__filename;v=Object.getOwnPropertyNames(t);m=0;for(n=v.length;m<n;m++)u=v[m],"paths"!==u&&"arguments"!==u&&
"caller"!==u&&(k[u]=t[u]);k.paths=g.paths=f._nodeModulePaths(process.cwd());k.resolve=function(a){return f._resolveFilename(a,g)}}}m={};for(l in d)E.call(d,l)&&(k=d[l],m[l]=k);m.bare=!0;c=a(c,m);return w===global?x.runInThisContext(c):x.runInContext(c,w)}};f.register=function(){return t("./register")};if(t.extensions)for(L=this.FILE_EXTENSIONS,Ca=function(a){var c;return null!=(c=t.extensions)[a]?c[a]:c[a]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+
a+" files.");}},F=0,w=L.length;F<w;F++)c=L[F],Ca(c);f._compileFile=function(c,d,f){var g,k;null==d&&(d=!1);null==f&&(f=!1);k=v.readFileSync(c,"utf8");k=65279===k.charCodeAt(0)?k.substring(1):k;try{g=a(k,{filename:c,sourceMap:d,inlineMap:f,sourceFiles:[c],literate:u.isLiterate(c)})}catch(h){throw u.updateSyntaxError(h,k,c);}return g};z=new pa;n.lexer={lex:function(){var a,c;(c=n.tokens[this.pos++])?(a=c[0],this.yytext=c[1],this.yylloc=c[2],n.errorToken=c.origin||c,this.yylineno=this.yylloc.first_line):
a="";return a},setInput:function(a){n.tokens=a;return this.pos=0},upcomingInput:function(){return""}};n.yy=t("./nodes");n.yy.parseError=function(a,c){var d,f,g,h;g=n.errorToken;h=n.tokens;d=g[0];f=g[1];a=g[2];f=function(){switch(!1){case g!==h[h.length-1]:return"end of input";case "INDENT"!==d&&"OUTDENT"!==d:return"indentation";case "IDENTIFIER"!==d&&"NUMBER"!==d&&"INFINITY"!==d&&"STRING"!==d&&"STRING_START"!==d&&"REGEX"!==d&&"REGEX_START"!==d:return d.replace(/_START$/,"").toLowerCase();default:return u.nameWhitespaceCharacter(f)}}();
return u.throwSyntaxError("unexpected "+f,a)};d=function(a,c){var d,f,g,h;a.isNative()?d="native":(a.isEval()?(f=a.getScriptNameOrSourceURL())||a.getEvalOrigin():f=a.getFileName(),f||(f="\x3canonymous\x3e"),g=a.getLineNumber(),d=a.getColumnNumber(),d=(c=c(f,g,d))?f+":"+c[0]+":"+c[1]:f+":"+g+":"+d);f=a.getFunctionName();g=a.isConstructor();if(a.isToplevel()||g)return g?"new "+(f||"\x3canonymous\x3e")+" ("+d+")":f?f+" ("+d+")":d;g=a.getMethodName();h=a.getTypeName();return f?(c=a="",h&&f.indexOf(h)&&
(c=h+"."),g&&f.indexOf("."+g)!==f.length-g.length-1&&(a=" [as "+g+"]"),""+c+f+a+" ("+d+")"):h+"."+(g||"\x3canonymous\x3e")+" ("+d+")"};I={};l=function(a){var d,m,l;if(I[a])return I[a];l=f.FILE_EXTENSIONS;d=0;for(m=l.length;d<m;d++)if(c=l[d],u.ends(a,c))return d=f._compileFile(a,!0),I[a]=d.sourceMap;return null};Error.prepareStackTrace=function(a,c){var g,m,k;k=function(a,c,d){var f;(a=l(a))&&(f=a.sourceLocation([c-1,d-1]));return f?[f[0]+1,f[1]+1]:null};m=function(){var a,m,l;l=[];a=0;for(m=c.length;a<
m;a++){g=c[a];if(g.getFunction()===f.run)break;l.push(" at "+d(g,k))}return l}();return a.toString()+"\n"+m.join("\n")+"\n"}}).call(this);return f}();t["./browser"]=function(){(function(){var f,pa,xa,D=[].indexOf||function(a){for(var c=0,f=this.length;c<f;c++)if(c in this&&this[c]===a)return c;return-1};f=t("./coffee-script");f.require=t;pa=f.compile;f.eval=function(a,c){null==c&&(c={});null==c.bare&&(c.bare=!0);return eval(pa(a,c))};f.run=function(a,c){null==c&&(c={});c.bare=!0;c.shiftLine=!0;return Function(pa(a,
c))()};"undefined"!==typeof window&&null!==window&&("undefined"!==typeof btoa&&null!==btoa&&"undefined"!==typeof JSON&&null!==JSON&&(pa=function(a,c){null==c&&(c={});c.inlineMap=!0;return f.compile(a,c)}),f.load=function(a,c,t,d){var v;null==t&&(t={});null==d&&(d=!1);t.sourceFiles=[a];v=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest;v.open("GET",a,!0);"overrideMimeType"in v&&v.overrideMimeType("text/plain");v.onreadystatechange=function(){var l;if(4===
v.readyState){if(0===(l=v.status)||200===l)l=[v.responseText,t],d||f.run.apply(f,l);else throw Error("Could not load "+a);if(c)return c(l)}};return v.send(null)},xa=function(){var a,c,t,d,v,l,u,F,w,z,n;n=window.document.getElementsByTagName("script");c=["text/coffeescript","text/literate-coffeescript"];a=function(){var a,d,f,l;l=[];a=0;for(d=n.length;a<d;a++)w=n[a],(f=w.type,0<=D.call(c,f))&&l.push(w);return l}();l=0;t=function(){var c;c=a[l];if(c instanceof Array)return f.run.apply(f,c),l++,t()};
d=function(d,l){var n,u;n={literate:d.type===c[1]};if(u=d.src||d.getAttribute("data-src"))return f.load(u,function(c){a[l]=c;return t()},n,!0);n.sourceFiles=["embedded"];return a[l]=[d.innerHTML,n]};v=u=0;for(F=a.length;u<F;v=++u)z=a[v],d(z,v);return t()},window.addEventListener?window.addEventListener("DOMContentLoaded",xa,!1):window.attachEvent("onload",xa))}).call(this);return{}}();return t["./coffee-script"]}();"function"===typeof define&&define.amd?define(function(){return ya}):t.CoffeeScript=
ya})(this);

View File

@@ -304,6 +304,10 @@ div.code {
outline: none;
margin: 5px 0 20px;
color: #def;
-webkit-tab-size: 2;
-moz-tab-size: 2;
-o-tab-size: 2;
tab-size: 2;
}
#repl_results, #repl_source_wrap {
width: auto; height: auto;

View File

Before

Width:  |  Height:  |  Size: 123 B

After

Width:  |  Height:  |  Size: 123 B

View File

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 132 B

View File

Before

Width:  |  Height:  |  Size: 138 B

After

Width:  |  Height:  |  Size: 138 B

View File

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 148 B

View File

Before

Width:  |  Height:  |  Size: 95 B

After

Width:  |  Height:  |  Size: 95 B

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because it is too large Load Diff

9897
docs/v1/test.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
```
function time() {
return `The time is ${new Date().toLocaleTimeString()}`;
}
```

View File

@@ -0,0 +1,3 @@
markdown = `function () {
return \`In Markdown, write code like \\\`this\\\`\`;
}`

View File

@@ -0,0 +1,13 @@
fibonacci = ->
[previous, current] = [1, 1]
loop
[previous, current] = [current, previous + current]
yield current
return
getFibonacciNumbers = (length) ->
results = [1]
for n from fibonacci()
results.push n
break if results.length is length
results

View File

@@ -0,0 +1,5 @@
name = "Michelangelo"
mask = "orange"
weapon = "nunchuks"
turtle = {name, mask, weapon}
output = "#{turtle.name} wears an #{turtle.mask} mask. Watch out for his #{turtle.weapon}!"

View File

@@ -0,0 +1,8 @@
upperCaseExpr = (textParts, expressions...) ->
textParts.reduce (text, textPart, i) ->
text + expressions[i - 1].toUpperCase() + textPart
greet = (name, adjective) ->
upperCaseExpr"""
Hi #{name}. You look #{adjective}!
"""

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +0,0 @@
// Generated by CoffeeScript 1.11.0
var volume, winner;
if (ignition === true) {
launch();
}
if (band !== SpinalTap) {
volume = 10;
}
if (answer !== false) {
letTheWildRumpusBegin();
}
if (car.speed < limit) {
accelerate();
}
if (pick === 47 || pick === 92 || pick === 13) {
winner = true;
}
print(inspect("My name is " + this.name));

Some files were not shown because too many files have changed in this diff Show More