I: pbuilder: network access will be disabled during build I: Current time: Thu May 16 09:59:16 +14 2024 I: pbuilder-time-stamp: 1715803156 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: using eatmydata during job I: Copying source file I: copying [eslint_6.4.0~dfsg+~6.1.9-7.dsc] I: copying [./eslint_6.4.0~dfsg+~6.1.9.orig-Xtypes.tar.xz] I: copying [./eslint_6.4.0~dfsg+~6.1.9.orig.tar.xz] I: copying [./eslint_6.4.0~dfsg+~6.1.9-7.debian.tar.xz] I: Extracting source gpgv: Signature made Fri Jun 10 23:22:25 2022 +14 gpgv: using RSA key 9FE3E9C36691A69FF53CC6842C7C3146C1A00121 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./eslint_6.4.0~dfsg+~6.1.9-7.dsc: no acceptable signature found dpkg-source: info: extracting eslint in eslint-6.4.0~dfsg+~6.1.9 dpkg-source: info: unpacking eslint_6.4.0~dfsg+~6.1.9.orig.tar.xz dpkg-source: info: unpacking eslint_6.4.0~dfsg+~6.1.9.orig-Xtypes.tar.xz dpkg-source: info: unpacking eslint_6.4.0~dfsg+~6.1.9-7.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 020191002~8108f49.patch dpkg-source: info: applying 020191020~2d6e345.patch dpkg-source: info: applying 020191107~9e29e18.patch dpkg-source: info: applying 020191109~90305e0.patch dpkg-source: info: applying 020191201~bc435a9.patch dpkg-source: info: applying 020191220~a258039.patch dpkg-source: info: applying 020200107~2c28fbb.patch dpkg-source: info: applying 020200115~68becbd.patch dpkg-source: info: applying 020200117~9a93d9e.patch dpkg-source: info: applying 020200130~691d19a.patch dpkg-source: info: applying 020200317~7598cf8.patch dpkg-source: info: applying 020200422~e13256e.patch dpkg-source: info: applying 020200519~72a4e10.patch dpkg-source: info: applying 020200802~9124a15.patch dpkg-source: info: applying 020200824~091e52a.patch dpkg-source: info: applying 020210508~6a86e50.patch dpkg-source: info: applying 020210521~52655dd.patch dpkg-source: info: applying 020210702~5f74642.patch dpkg-source: info: applying 020210805~86d31a4.patch dpkg-source: info: applying 020210806~86bb63b.patch dpkg-source: info: applying 020210809~88db3f5.patch dpkg-source: info: applying 020210820~8344675.patch dpkg-source: info: applying 020210821~f3cb320.patch dpkg-source: info: applying 020211105~cf5b6be.patch dpkg-source: info: applying 020220115~19ad061.patch dpkg-source: info: applying 1001_use_regenerate-unicode-properties.patch dpkg-source: info: applying 1002_use_newer_cheerio.patch dpkg-source: info: applying 2005_avoid_cross-spawn.patch dpkg-source: info: applying 2006_avoid_natural-compare.patch dpkg-source: info: applying 2008_avoid_json-stable-stringify-without-jsonify.patch dpkg-source: info: applying 2010_privacy.patch dpkg-source: info: applying 2011_use_newer_eslint-scope.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/90582/tmp/hooks/D01_modify_environment starting debug: Running on ionos6-i386. I: Changing host+domainname to test build reproducibility I: Adding a custom variable just for the fun of it... I: Changing /bin/sh to bash lrwxrwxrwx 1 root root 4 Jan 6 2023 /bin/sh -> dash I: Setting pbuilder2's login shell to /bin/bash I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other I: user script /srv/workspace/pbuilder/90582/tmp/hooks/D01_modify_environment finished I: user script /srv/workspace/pbuilder/90582/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build' BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' BUILDUSERNAME='pbuilder2' BUILD_ARCH='i386' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15' DISTRIBUTION='bookworm' HOME='/root' HOST_ARCH='i386' IFS=' ' INVOCATION_ID='c28febb76bd04a9ea7efa52a18d2913c' LANG='C' LANGUAGE='de_CH:de' LC_ALL='C' LD_LIBRARY_PATH='/usr/lib/libeatmydata' LD_PRELOAD='libeatmydata.so' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='90582' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.arg4sYXn/pbuilderrc_8vLo --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.arg4sYXn/b2 --logfile b2/build.log --extrapackages usrmerge eslint_6.4.0~dfsg+~6.1.9-7.dsc' SUDO_GID='112' SUDO_UID='107' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT-14' USER='root' _='/usr/bin/systemd-run' http_proxy='http://85.184.249.68:3128' I: uname -a Linux i-capture-the-hostname 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux I: ls -l /bin total 6040 -rwxr-xr-x 1 root root 1408088 Feb 13 2023 bash -rwxr-xr-x 3 root root 38404 Sep 19 2022 bunzip2 -rwxr-xr-x 3 root root 38404 Sep 19 2022 bzcat lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep -rwxr-xr-x 3 root root 38404 Sep 19 2022 bzip2 -rwxr-xr-x 1 root root 17892 Sep 19 2022 bzip2recover lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore -rwxr-xr-x 1 root root 42920 Sep 21 2022 cat -rwxr-xr-x 1 root root 79816 Sep 21 2022 chgrp -rwxr-xr-x 1 root root 67496 Sep 21 2022 chmod -rwxr-xr-x 1 root root 79816 Sep 21 2022 chown -rwxr-xr-x 1 root root 162024 Sep 21 2022 cp -rwxr-xr-x 1 root root 136916 Jan 6 2023 dash -rwxr-xr-x 1 root root 137160 Sep 21 2022 date -rwxr-xr-x 1 root root 100364 Sep 21 2022 dd -rwxr-xr-x 1 root root 108940 Sep 21 2022 df -rwxr-xr-x 1 root root 162152 Sep 21 2022 dir -rwxr-xr-x 1 root root 87760 Mar 24 2023 dmesg lrwxrwxrwx 1 root root 8 Dec 20 2022 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Dec 20 2022 domainname -> hostname -rwxr-xr-x 1 root root 38760 Sep 21 2022 echo -rwxr-xr-x 1 root root 41 Jan 25 2023 egrep -rwxr-xr-x 1 root root 34664 Sep 21 2022 false -rwxr-xr-x 1 root root 41 Jan 25 2023 fgrep -rwxr-xr-x 1 root root 84272 Mar 24 2023 findmnt -rwsr-xr-x 1 root root 30240 Mar 23 2023 fusermount -rwxr-xr-x 1 root root 218680 Jan 25 2023 grep -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe -rwxr-xr-x 1 root root 100952 Apr 10 2022 gzip -rwxr-xr-x 1 root root 21916 Dec 20 2022 hostname -rwxr-xr-x 1 root root 75756 Sep 21 2022 ln -rwxr-xr-x 1 root root 55600 Mar 24 2023 login -rwxr-xr-x 1 root root 162152 Sep 21 2022 ls -rwxr-xr-x 1 root root 214568 Mar 24 2023 lsblk -rwxr-xr-x 1 root root 96328 Sep 21 2022 mkdir -rwxr-xr-x 1 root root 84008 Sep 21 2022 mknod -rwxr-xr-x 1 root root 38792 Sep 21 2022 mktemp -rwxr-xr-x 1 root root 63016 Mar 24 2023 more -rwsr-xr-x 1 root root 58912 Mar 24 2023 mount -rwxr-xr-x 1 root root 13856 Mar 24 2023 mountpoint -rwxr-xr-x 1 root root 157932 Sep 21 2022 mv lrwxrwxrwx 1 root root 8 Dec 20 2022 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Dec 19 2022 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 38792 Sep 21 2022 pwd lrwxrwxrwx 1 root root 4 Feb 13 2023 rbash -> bash -rwxr-xr-x 1 root root 51080 Sep 21 2022 readlink -rwxr-xr-x 1 root root 75720 Sep 21 2022 rm -rwxr-xr-x 1 root root 51080 Sep 21 2022 rmdir -rwxr-xr-x 1 root root 22308 Nov 3 2022 run-parts -rwxr-xr-x 1 root root 133224 Jan 6 2023 sed lrwxrwxrwx 1 root root 4 Jan 6 2023 sh -> dash -rwxr-xr-x 1 root root 38760 Sep 21 2022 sleep -rwxr-xr-x 1 root root 87976 Sep 21 2022 stty -rwsr-xr-x 1 root root 83492 Mar 24 2023 su -rwxr-xr-x 1 root root 38792 Sep 21 2022 sync -rwxr-xr-x 1 root root 602584 Feb 17 2021 tar -rwxr-xr-x 1 root root 13860 Nov 3 2022 tempfile -rwxr-xr-x 1 root root 120776 Sep 21 2022 touch -rwxr-xr-x 1 root root 34664 Sep 21 2022 true -rwxr-xr-x 1 root root 17892 Mar 23 2023 ulockmgr_server -rwsr-xr-x 1 root root 30236 Mar 24 2023 umount -rwxr-xr-x 1 root root 38760 Sep 21 2022 uname -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress -rwxr-xr-x 1 root root 162152 Sep 21 2022 vdir -rwxr-xr-x 1 root root 71216 Mar 24 2023 wdctl lrwxrwxrwx 1 root root 8 Dec 20 2022 ypdomainname -> hostname -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew I: user script /srv/workspace/pbuilder/90582/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: i386 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: cmark-gfm, debhelper-compat (= 13), help2man, jq, mocha, node-ajv, node-babel-core (>= 7), node-babel-loader (>= 7), node-babel-preset-env (>= 7), node-chai, node-chalk, node-cheerio, node-concat-stream, node-dateformat, node-debug, node-doctrine, node-ejs, node-eslint-plugin-eslint-plugin, node-eslint-plugin-node (>= 8.0.0~), node-eslint-scope, node-eslint-rule-composer, node-eslint-utils, node-eslint-visitor-keys, node-espree (>= 7.3.0), node-esprima, node-esquery, node-estraverse, node-esutils, node-file-entry-cache, node-functional-red-black-tree, node-glob, node-globals, node-ignore (>= 5.2.0), node-import-fresh, node-imurmurhash, node-inquirer, node-js-yaml, node-json-stable-stringify, node-levn, node-lodash, node-memfs, node-mkdirp, node-optionator, node-path-is-inside, node-progress, node-proxyquire, node-recast, node-regenerate-unicode-properties (>= 10), node-regexpp, node-semver, node-shelljs, node-sinon, node-strip-ansi, node-strip-json-comments, node-text-table, node-temp, node-v8-compile-cache dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19604 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on cmark-gfm; however: Package cmark-gfm is not installed. pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on help2man; however: Package help2man is not installed. pbuilder-satisfydepends-dummy depends on jq; however: Package jq is not installed. pbuilder-satisfydepends-dummy depends on mocha; however: Package mocha is not installed. pbuilder-satisfydepends-dummy depends on node-ajv; however: Package node-ajv is not installed. pbuilder-satisfydepends-dummy depends on node-babel-core (>= 7); however: Package node-babel-core is not installed. pbuilder-satisfydepends-dummy depends on node-babel-loader (>= 7); however: Package node-babel-loader is not installed. pbuilder-satisfydepends-dummy depends on node-babel-preset-env (>= 7); however: Package node-babel-preset-env is not installed. pbuilder-satisfydepends-dummy depends on node-chai; however: Package node-chai is not installed. pbuilder-satisfydepends-dummy depends on node-chalk; however: Package node-chalk is not installed. pbuilder-satisfydepends-dummy depends on node-cheerio; however: Package node-cheerio is not installed. pbuilder-satisfydepends-dummy depends on node-concat-stream; however: Package node-concat-stream is not installed. pbuilder-satisfydepends-dummy depends on node-dateformat; however: Package node-dateformat is not installed. pbuilder-satisfydepends-dummy depends on node-debug; however: Package node-debug is not installed. pbuilder-satisfydepends-dummy depends on node-doctrine; however: Package node-doctrine is not installed. pbuilder-satisfydepends-dummy depends on node-ejs; however: Package node-ejs is not installed. pbuilder-satisfydepends-dummy depends on node-eslint-plugin-eslint-plugin; however: Package node-eslint-plugin-eslint-plugin is not installed. pbuilder-satisfydepends-dummy depends on node-eslint-plugin-node (>= 8.0.0~); however: Package node-eslint-plugin-node is not installed. pbuilder-satisfydepends-dummy depends on node-eslint-scope; however: Package node-eslint-scope is not installed. pbuilder-satisfydepends-dummy depends on node-eslint-rule-composer; however: Package node-eslint-rule-composer is not installed. pbuilder-satisfydepends-dummy depends on node-eslint-utils; however: Package node-eslint-utils is not installed. pbuilder-satisfydepends-dummy depends on node-eslint-visitor-keys; however: Package node-eslint-visitor-keys is not installed. pbuilder-satisfydepends-dummy depends on node-espree (>= 7.3.0); however: Package node-espree is not installed. pbuilder-satisfydepends-dummy depends on node-esprima; however: Package node-esprima is not installed. pbuilder-satisfydepends-dummy depends on node-esquery; however: Package node-esquery is not installed. pbuilder-satisfydepends-dummy depends on node-estraverse; however: Package node-estraverse is not installed. pbuilder-satisfydepends-dummy depends on node-esutils; however: Package node-esutils is not installed. pbuilder-satisfydepends-dummy depends on node-file-entry-cache; however: Package node-file-entry-cache is not installed. pbuilder-satisfydepends-dummy depends on node-functional-red-black-tree; however: Package node-functional-red-black-tree is not installed. pbuilder-satisfydepends-dummy depends on node-glob; however: Package node-glob is not installed. pbuilder-satisfydepends-dummy depends on node-globals; however: Package node-globals is not installed. pbuilder-satisfydepends-dummy depends on node-ignore (>= 5.2.0); however: Package node-ignore is not installed. pbuilder-satisfydepends-dummy depends on node-import-fresh; however: Package node-import-fresh is not installed. pbuilder-satisfydepends-dummy depends on node-imurmurhash; however: Package node-imurmurhash is not installed. pbuilder-satisfydepends-dummy depends on node-inquirer; however: Package node-inquirer is not installed. pbuilder-satisfydepends-dummy depends on node-js-yaml; however: Package node-js-yaml is not installed. pbuilder-satisfydepends-dummy depends on node-json-stable-stringify; however: Package node-json-stable-stringify is not installed. pbuilder-satisfydepends-dummy depends on node-levn; however: Package node-levn is not installed. pbuilder-satisfydepends-dummy depends on node-lodash; however: Package node-lodash is not installed. pbuilder-satisfydepends-dummy depends on node-memfs; however: Package node-memfs is not installed. pbuilder-satisfydepends-dummy depends on node-mkdirp; however: Package node-mkdirp is not installed. pbuilder-satisfydepends-dummy depends on node-optionator; however: Package node-optionator is not installed. pbuilder-satisfydepends-dummy depends on node-path-is-inside; however: Package node-path-is-inside is not installed. pbuilder-satisfydepends-dummy depends on node-progress; however: Package node-progress is not installed. pbuilder-satisfydepends-dummy depends on node-proxyquire; however: Package node-proxyquire is not installed. pbuilder-satisfydepends-dummy depends on node-recast; however: Package node-recast is not installed. pbuilder-satisfydepends-dummy depends on node-regenerate-unicode-properties (>= 10); however: Package node-regenerate-unicode-properties is not installed. pbuilder-satisfydepends-dummy depends on node-regexpp; however: Package node-regexpp is not installed. pbuilder-satisfydepends-dummy depends on node-semver; however: Package node-semver is not installed. pbuilder-satisfydepends-dummy depends on node-shelljs; however: Package node-shelljs is not installed. pbuilder-satisfydepends-dummy depends on node-sinon; however: Package node-sinon is not installed. pbuilder-satisfydepends-dummy depends on node-strip-ansi; however: Package node-strip-ansi is not installed. pbuilder-satisfydepends-dummy depends on node-strip-json-comments; however: Package node-strip-json-comments is not installed. pbuilder-satisfydepends-dummy depends on node-text-table; however: Package node-text-table is not installed. pbuilder-satisfydepends-dummy depends on node-temp; however: Package node-temp is not installed. pbuilder-satisfydepends-dummy depends on node-v8-compile-cache; however: Package node-v8-compile-cache is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} chai{a} cmark-gfm{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} eslint{a} file{a} gettext{a} gettext-base{a} groff-base{a} handlebars{a} help2man{a} intltool-debian{a} isa-support{a} jq{a} libarchive-zip-perl{a} libbrotli1{a} libc-ares2{a} libcmark-gfm-extensions0.29.0.gfm.6{a} libcmark-gfm0.29.0.gfm.6{a} libdebhelper-perl{a} libdeflate0{a} libelf1{a} libfile-stripnondeterminism-perl{a} libgdk-pixbuf-2.0-0{a} libgdk-pixbuf2.0-common{a} libglib2.0-0{a} libicu72{a} libjbig0{a} libjpeg62-turbo{a} libjq1{a} libjs-async{a} libjs-events{a} libjs-inherits{a} libjs-is-typedarray{a} libjs-prettify{a} libjs-psl{a} libjs-regenerate{a} libjs-source-map{a} libjs-sprintf-js{a} libjs-typedarray-to-buffer{a} libjs-util{a} liblerc4{a} liblocale-gettext-perl{a} libmagic-mgc{a} libmagic1{a} libnghttp2-14{a} libnode108{a} libnotify-bin{a} libnotify4{a} libonig5{a} libpipeline1{a} libpng16-16{a} libsub-override-perl{a} libtiff6{a} libtool{a} libuchardet0{a} libuv1{a} libwebp7{a} libxml2{a} m4{a} man-db{a} mocha{a} node-abab{a} node-abbrev{a} node-acorn{a} node-agent-base{a} node-ajv{a} node-ajv-keywords{a} node-ampproject-remapping{a} node-ansi-colors{a} node-ansi-escapes{a} node-ansi-regex{a} node-ansi-styles{a} node-anymatch{a} node-archy{a} node-argparse{a} node-array-from{a} node-arrify{a} node-assert{a} node-assertion-error{a} node-ast-types{a} node-async{a} node-async-each{a} node-asynckit{a} node-babel-helper-define-polyfill-provider{a} node-babel-loader{a} node-babel-plugin-add-module-exports{a} node-babel-plugin-lodash{a} node-babel-plugin-polyfill-corejs2{a} node-babel-plugin-polyfill-corejs3{a} node-babel-plugin-polyfill-regenerator{a} node-babel7{a} node-babel7-runtime{a} node-balanced-match{a} node-binary-extensions{a} node-bl{a} node-boolbase{a} node-brace-expansion{a} node-braces{a} node-browser-stdout{a} node-browserslist{a} node-busboy{a} node-camelcase{a} node-caniuse-lite{a} node-chalk{a} node-check-error{a} node-cheerio{a} node-chokidar{a} node-chrome-trace-event{a} node-ci-info{a} node-cjs-module-lexer{a} node-cli-cursor{a} node-cli-spinners{a} node-cli-width{a} node-cliui{a} node-clone{a} node-clone-deep{a} node-color-convert{a} node-color-name{a} node-combined-stream{a} node-commander{a} node-commondir{a} node-concat-stream{a} node-convert-source-map{a} node-core-js{a} node-core-js-compat{a} node-core-js-pure{a} node-core-util-is{a} node-css-select{a} node-css-what{a} node-cssom{a} node-cssstyle{a} node-d{a} node-dateformat{a} node-debbundle-es-to-primitive{a} node-debug{a} node-decamelize{a} node-deep-eql{a} node-deep-equal{a} node-deep-is{a} node-defaults{a} node-define-properties{a} node-defined{a} node-del{a} node-delayed-stream{a} node-diff{a} node-doctrine{a} node-dom-serializer{a} node-domelementtype{a} node-domhandler{a} node-domutils{a} node-ejs{a} node-electron-to-chromium{a} node-enhanced-resolve{a} node-entities{a} node-errno{a} node-error-ex{a} node-es-abstract{a} node-es-module-lexer{a} node-es5-ext{a} node-es6-error{a} node-es6-iterator{a} node-es6-symbol{a} node-escape-string-regexp{a} node-escodegen{a} node-eslint-plugin-es{a} node-eslint-plugin-eslint-plugin{a} node-eslint-plugin-node{a} node-eslint-scope{a} node-eslint-utils{a} node-eslint-visitor-keys{a} node-espree{a} node-esprima{a} node-esquery{a} node-esrecurse{a} node-estraverse{a} node-esutils{a} node-event-emitter{a} node-events{a} node-external-editor{a} node-fast-deep-equal{a} node-fast-levenshtein{a} node-file-entry-cache{a} node-fill-range{a} node-find-cache-dir{a} node-find-up{a} node-flat-cache{a} node-flatted{a} node-for-in{a} node-for-own{a} node-foreground-child{a} node-form-data{a} node-fs-readdir-recursive{a} node-fs.realpath{a} node-function-bind{a} node-functional-red-black-tree{a} node-get-caller-file{a} node-get-func-name{a} node-glob{a} node-glob-parent{a} node-globals{a} node-globby{a} node-graceful-fs{a} node-growl{a} node-has-flag{a} node-he{a} node-hosted-git-info{a} node-htmlparser2{a} node-https-proxy-agent{a} node-iconv-lite{a} node-ignore{a} node-imurmurhash{a} node-indent-string{a} node-inflight{a} node-inherits{a} node-inquirer{a} node-interpret{a} node-is-arrayish{a} node-is-binary-path{a} node-is-buffer{a} node-is-extendable{a} node-is-extglob{a} node-is-glob{a} node-is-number{a} node-is-object{a} node-is-path-cwd{a} node-is-path-inside{a} node-is-plain-obj{a} node-is-plain-object{a} node-is-stream{a} node-is-typedarray{a} node-is-windows{a} node-isarray{a} node-isexe{a} node-isobject{a} node-istanbul{a} node-jake{a} node-jest-debbundle{a} node-jest-worker{a} node-js-tokens{a} node-js-yaml{a} node-jschardet{a} node-jsdom{a} node-jsesc{a} node-json-parse-better-errors{a} node-json-schema{a} node-json-schema-traverse{a} node-json-stable-stringify{a} node-json5{a} node-jsonify{a} node-kind-of{a} node-levn{a} node-loader-runner{a} node-locate-path{a} node-lodash{a} node-lodash-packages{a} node-lru-cache{a} node-make-dir{a} node-memfs{a} node-memory-fs{a} node-merge-descriptors{a} node-merge-stream{a} node-micromatch{a} node-mime{a} node-mime-types{a} node-minimatch{a} node-minimist{a} node-mkdirp{a} node-ms{a} node-mute-stream{a} node-n3{a} node-neo-async{a} node-nopt{a} node-normalize-package-data{a} node-normalize-path{a} node-npm-run-path{a} node-nth-check{a} node-object-assign{a} node-object-inspect{a} node-once{a} node-optimist{a} node-optionator{a} node-p-limit{a} node-p-locate{a} node-p-map{a} node-parse-json{a} node-parse5{a} node-parse5-htmlparser2-tree-adapter{a} node-path-dirname{a} node-path-exists{a} node-path-is-absolute{a} node-path-is-inside{a} node-path-to-regexp{a} node-path-type{a} node-pathval{a} node-picocolors{a} node-pify{a} node-pkg-dir{a} node-postcss{a} node-prelude-ls{a} node-private{a} node-process-nextick-args{a} node-progress{a} node-proxyquire{a} node-prr{a} node-psl{a} node-punycode{a} node-quick-lru{a} node-randombytes{a} node-read{a} node-read-pkg{a} node-readable-stream{a} node-readdirp{a} node-recast{a} node-rechoir{a} node-regenerate{a} node-regenerate-unicode-properties{a} node-regenerator-runtime{a} node-regenerator-transform{a} node-regexpp{a} node-regexpu-core{a} node-regjsgen{a} node-regjsparser{a} node-repeat-string{a} node-require-directory{a} node-resolve{a} node-resolve-cwd{a} node-resolve-from{a} node-restore-cursor{a} node-resumer{a} node-rimraf{a} node-run-async{a} node-safe-buffer{a} node-schema-utils{a} node-semver{a} node-serialize-javascript{a} node-set-immediate-shim{a} node-shebang-command{a} node-shebang-regex{a} node-shelljs{a} node-signal-exit{a} node-sinon{a} node-slash{a} node-slice-ansi{a} node-source-list-map{a} node-source-map{a} node-source-map-support{a} node-spdx-correct{a} node-spdx-exceptions{a} node-spdx-expression-parse{a} node-spdx-license-ids{a} node-sprintf-js{a} node-string-decoder{a} node-string-width{a} node-strip-ansi{a} node-strip-bom{a} node-strip-json-comments{a} node-supports-color{a} node-tapable{a} node-tape{a} node-temp{a} node-terser{a} node-text-table{a} node-through{a} node-tmp{a} node-to-fast-properties{a} node-to-regex-range{a} node-tough-cookie{a} node-tslib{a} node-type-check{a} node-type-detect{a} node-typedarray{a} node-typedarray-to-buffer{a} node-undici{a} node-unicode-canonical-property-names-ecmascript{a} node-unicode-match-property-ecmascript{a} node-unicode-match-property-value-ecmascript{a} node-unicode-property-aliases-ecmascript{a} node-universalify{a} node-uri-js{a} node-util{a} node-util-deprecate{a} node-uuid{a} node-v8-compile-cache{a} node-v8flags{a} node-validate-npm-package-license{a} node-watchpack{a} node-wcwidth.js{a} node-webassemblyjs{a} node-webidl-conversions{a} node-webpack-sources{a} node-which{a} node-wide-align{a} node-wordwrap{a} node-wrap-ansi{a} node-wrappy{a} node-write{a} node-write-file-atomic{a} node-ws{a} node-xtend{a} node-y18n{a} node-yallist{a} node-yargs{a} node-yargs-parser{a} nodejs{a} po-debconf{a} sensible-utils{a} shared-mime-info{a} sse2-support{a} terser{a} webpack{a} The following packages are RECOMMENDED but will NOT be installed: ca-certificates coffeescript curl javascript-common libarchive-cpio-perl libgdk-pixbuf2.0-bin libglib2.0-data libltdl-dev libmail-sendmail-perl lynx nodejs-doc wget xdg-user-dirs 0 packages upgraded, 418 newly installed, 0 to remove and 0 not upgraded. Need to get 48.3 MB of archives. After unpacking 253 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian bookworm/main i386 liblocale-gettext-perl i386 1.07-5 [15.5 kB] Get: 2 http://deb.debian.org/debian bookworm/main i386 isa-support i386 15 [9692 B] Get: 3 http://deb.debian.org/debian bookworm/main i386 sse2-support i386 15 [3320 B] Get: 4 http://deb.debian.org/debian bookworm/main i386 sensible-utils all 0.0.17+nmu1 [19.0 kB] Get: 5 http://deb.debian.org/debian bookworm/main i386 libmagic-mgc i386 1:5.44-3 [305 kB] Get: 6 http://deb.debian.org/debian bookworm/main i386 libmagic1 i386 1:5.44-3 [114 kB] Get: 7 http://deb.debian.org/debian bookworm/main i386 file i386 1:5.44-3 [42.5 kB] Get: 8 http://deb.debian.org/debian bookworm/main i386 gettext-base i386 0.21-12 [162 kB] Get: 9 http://deb.debian.org/debian bookworm/main i386 libuchardet0 i386 0.0.7-1 [67.9 kB] Get: 10 http://deb.debian.org/debian bookworm/main i386 groff-base i386 1.22.4-10 [932 kB] Get: 11 http://deb.debian.org/debian bookworm/main i386 bsdextrautils i386 2.38.1-5+b1 [90.3 kB] Get: 12 http://deb.debian.org/debian bookworm/main i386 libpipeline1 i386 1.5.7-1 [40.0 kB] Get: 13 http://deb.debian.org/debian bookworm/main i386 man-db i386 2.11.2-2 [1397 kB] Get: 14 http://deb.debian.org/debian bookworm/main i386 m4 i386 1.4.19-3 [294 kB] Get: 15 http://deb.debian.org/debian bookworm/main i386 autoconf all 2.71-3 [332 kB] Get: 16 http://deb.debian.org/debian bookworm/main i386 autotools-dev all 20220109.1 [51.6 kB] Get: 17 http://deb.debian.org/debian bookworm/main i386 automake all 1:1.16.5-1.3 [823 kB] Get: 18 http://deb.debian.org/debian bookworm/main i386 autopoint all 0.21-12 [495 kB] Get: 19 http://deb.debian.org/debian bookworm/main i386 node-assertion-error all 1.1.0-2 [4764 B] Get: 20 http://deb.debian.org/debian bookworm/main i386 libbrotli1 i386 1.0.9-2+b6 [275 kB] Get: 21 http://deb.debian.org/debian bookworm/main i386 libc-ares2 i386 1.18.1-2 [106 kB] Get: 22 http://deb.debian.org/debian bookworm/main i386 libicu72 i386 72.1-3 [9541 kB] Get: 23 http://deb.debian.org/debian bookworm/main i386 libnghttp2-14 i386 1.52.0-1 [79.8 kB] Get: 24 http://deb.debian.org/debian bookworm/main i386 libuv1 i386 1.44.2-1 [147 kB] Get: 25 http://deb.debian.org/debian bookworm/main i386 node-xtend all 4.0.2-3 [3932 B] Get: 26 http://deb.debian.org/debian bookworm/main i386 node-acorn all 8.8.1+ds+~cs25.17.7-2 [128 kB] Get: 27 http://deb.debian.org/debian bookworm/main i386 node-cjs-module-lexer all 1.2.2+dfsg-5 [30.1 kB] Get: 28 http://deb.debian.org/debian bookworm/main i386 node-busboy all 1.6.0+~cs2.6.0-2 [16.9 kB] Get: 29 http://deb.debian.org/debian bookworm/main i386 node-undici all 5.15.0+dfsg1+~cs20.10.9.3-1 [283 kB] Get: 30 http://deb.debian.org/debian bookworm/main i386 libnode108 i386 18.13.0+dfsg1-1 [10.4 MB] Get: 31 http://deb.debian.org/debian bookworm/main i386 nodejs i386 18.13.0+dfsg1-1 [304 kB] Get: 32 http://deb.debian.org/debian bookworm/main i386 node-check-error all 1.0.2-4 [6672 B] Get: 33 http://deb.debian.org/debian bookworm/main i386 node-type-detect all 4.0.8-4 [11.0 kB] Get: 34 http://deb.debian.org/debian bookworm/main i386 node-deep-eql all 4.1.3-1 [12.5 kB] Get: 35 http://deb.debian.org/debian bookworm/main i386 node-get-func-name all 2.0.0+dfsg-2 [5292 B] Get: 36 http://deb.debian.org/debian bookworm/main i386 node-pathval all 1.1.1+~1.1.0-1 [7928 B] Get: 37 http://deb.debian.org/debian bookworm/main i386 chai all 4.3.7~ds1+~cs9.7.21-1 [105 kB] Get: 38 http://deb.debian.org/debian bookworm/main i386 libcmark-gfm0.29.0.gfm.6 i386 0.29.0.gfm.6-6 [123 kB] Get: 39 http://deb.debian.org/debian bookworm/main i386 libcmark-gfm-extensions0.29.0.gfm.6 i386 0.29.0.gfm.6-6 [48.8 kB] Get: 40 http://deb.debian.org/debian bookworm/main i386 cmark-gfm i386 0.29.0.gfm.6-6 [131 kB] Get: 41 http://deb.debian.org/debian bookworm/main i386 libdebhelper-perl all 13.11.4 [81.2 kB] Get: 42 http://deb.debian.org/debian bookworm/main i386 libtool all 2.4.7-5 [517 kB] Get: 43 http://deb.debian.org/debian bookworm/main i386 dh-autoreconf all 20 [17.1 kB] Get: 44 http://deb.debian.org/debian bookworm/main i386 libarchive-zip-perl all 1.68-1 [104 kB] Get: 45 http://deb.debian.org/debian bookworm/main i386 libsub-override-perl all 0.09-4 [9304 B] Get: 46 http://deb.debian.org/debian bookworm/main i386 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 47 http://deb.debian.org/debian bookworm/main i386 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 48 http://deb.debian.org/debian bookworm/main i386 libelf1 i386 0.188-2.1 [179 kB] Get: 49 http://deb.debian.org/debian bookworm/main i386 dwz i386 0.15-1 [118 kB] Get: 50 http://deb.debian.org/debian bookworm/main i386 libxml2 i386 2.9.14+dfsg-1.1+b3 [720 kB] Get: 51 http://deb.debian.org/debian bookworm/main i386 gettext i386 0.21-12 [1311 kB] Get: 52 http://deb.debian.org/debian bookworm/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 53 http://deb.debian.org/debian bookworm/main i386 po-debconf all 1.0.21+nmu1 [248 kB] Get: 54 http://deb.debian.org/debian bookworm/main i386 debhelper all 13.11.4 [942 kB] Get: 55 http://deb.debian.org/debian bookworm/main i386 node-fast-deep-equal all 3.1.3-3 [5768 B] Get: 56 http://deb.debian.org/debian bookworm/main i386 node-json-schema-traverse all 1.0.0-3 [6308 B] Get: 57 http://deb.debian.org/debian bookworm/main i386 node-jsonify all 0.0.1-1 [8704 B] Get: 58 http://deb.debian.org/debian bookworm/main i386 node-json-stable-stringify all 1.0.2+~cs5.2.34-1 [11.3 kB] Get: 59 http://deb.debian.org/debian bookworm/main i386 node-punycode all 2.1.1-6 [9444 B] Get: 60 http://deb.debian.org/debian bookworm/main i386 node-uri-js all 4.4.0+dfsg-8 [47.3 kB] Get: 61 http://deb.debian.org/debian bookworm/main i386 node-ajv all 6.12.6-3 [74.0 kB] Get: 62 http://deb.debian.org/debian bookworm/main i386 libjs-inherits all 2.0.4-6 [3548 B] Get: 63 http://deb.debian.org/debian bookworm/main i386 node-inherits all 2.0.4-6 [4548 B] Get: 64 http://deb.debian.org/debian bookworm/main i386 node-core-util-is all 1.0.3-1 [4072 B] Get: 65 http://deb.debian.org/debian bookworm/main i386 node-safe-buffer all 5.2.1+~cs2.1.2-3 [15.5 kB] Get: 66 http://deb.debian.org/debian bookworm/main i386 node-string-decoder all 1.3.0-6 [7180 B] Get: 67 http://deb.debian.org/debian bookworm/main i386 node-process-nextick-args all 2.0.1-3 [3816 B] Get: 68 http://deb.debian.org/debian bookworm/main i386 node-util-deprecate all 1.0.2-3 [4436 B] Get: 69 http://deb.debian.org/debian bookworm/main i386 node-isarray all 2.0.5-4 [4040 B] Get: 70 http://deb.debian.org/debian bookworm/main i386 node-readable-stream all 3.6.0+~cs3.0.0-4 [32.0 kB] Get: 71 http://deb.debian.org/debian bookworm/main i386 node-typedarray all 0.0.7-1 [11.4 kB] Get: 72 http://deb.debian.org/debian bookworm/main i386 node-concat-stream all 2.0.0+~2.0.0-2 [6388 B] Get: 73 http://deb.debian.org/debian bookworm/main i386 node-ms all 2.1.3+~cs0.7.31-3 [5648 B] Get: 74 http://deb.debian.org/debian bookworm/main i386 node-debug all 4.3.4+~cs4.1.7-1 [18.1 kB] Get: 75 http://deb.debian.org/debian bookworm/main i386 node-esutils all 2.0.3+~2.0.0-1 [12.4 kB] Get: 76 http://deb.debian.org/debian bookworm/main i386 node-doctrine all 3.0.0-4 [19.9 kB] Get: 77 http://deb.debian.org/debian bookworm/main i386 node-eslint-visitor-keys all 3.3.0+~1.0.0-1 [17.1 kB] Get: 78 http://deb.debian.org/debian bookworm/main i386 node-estraverse all 5.3.0+ds+~5.1.1-1 [11.6 kB] Get: 79 http://deb.debian.org/debian bookworm/main i386 node-object-assign all 4.1.1-7 [4684 B] Get: 80 http://deb.debian.org/debian bookworm/main i386 node-esrecurse all 4.3.0-2 [6048 B] Get: 81 http://deb.debian.org/debian bookworm/main i386 node-eslint-scope all 7.1.1+~3.7.4-1 [35.6 kB] Get: 82 http://deb.debian.org/debian bookworm/main i386 node-espree all 9.4.1~dfsg-1 [41.0 kB] Get: 83 http://deb.debian.org/debian bookworm/main i386 node-esquery all 1.4.2~ds-1 [24.9 kB] Get: 84 http://deb.debian.org/debian bookworm/main i386 node-eslint-utils all 3.0.0-3 [15.5 kB] Get: 85 http://deb.debian.org/debian bookworm/main i386 node-flatted all 3.2.7~ds-1 [10.3 kB] Get: 86 http://deb.debian.org/debian bookworm/main i386 node-fs.realpath all 1.0.0-3 [6172 B] Get: 87 http://deb.debian.org/debian bookworm/main i386 node-wrappy all 1.0.2-3 [3776 B] Get: 88 http://deb.debian.org/debian bookworm/main i386 node-once all 1.4.0-7 [4492 B] Get: 89 http://deb.debian.org/debian bookworm/main i386 node-inflight all 1.0.6-2 [3952 B] Get: 90 http://deb.debian.org/debian bookworm/main i386 node-balanced-match all 2.0.0-1 [4872 B] Get: 91 http://deb.debian.org/debian bookworm/main i386 node-brace-expansion all 2.0.1-2 [7320 B] Get: 92 http://deb.debian.org/debian bookworm/main i386 node-minimatch all 5.1.1+~5.1.2-1 [18.6 kB] Get: 93 http://deb.debian.org/debian bookworm/main i386 node-glob all 8.0.3+~cs8.4.15-1 [133 kB] Get: 94 http://deb.debian.org/debian bookworm/main i386 node-rimraf all 3.0.2-2 [11.1 kB] Get: 95 http://deb.debian.org/debian bookworm/main i386 node-write all 2.0.0~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5 [17.8 kB] Get: 96 http://deb.debian.org/debian bookworm/main i386 node-flat-cache all 3.0.4~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5 [20.1 kB] Get: 97 http://deb.debian.org/debian bookworm/main i386 node-file-entry-cache all 6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5 [15.0 kB] Get: 98 http://deb.debian.org/debian bookworm/main i386 node-functional-red-black-tree all 1.0.1+20181105-7 [14.1 kB] Get: 99 http://deb.debian.org/debian bookworm/main i386 node-is-extglob all 2.1.1-5 [4612 B] Get: 100 http://deb.debian.org/debian bookworm/main i386 node-is-glob all 4.0.3-2 [6620 B] Get: 101 http://deb.debian.org/debian bookworm/main i386 node-path-dirname all 1.0.2-2 [4312 B] Get: 102 http://deb.debian.org/debian bookworm/main i386 node-glob-parent all 6.0.2+~5.1.1-2 [8784 B] Get: 103 http://deb.debian.org/debian bookworm/main i386 node-globals all 13.18.0-1 [11.1 kB] Get: 104 http://deb.debian.org/debian bookworm/main i386 node-resolve-from all 5.0.0+~3.1.0+~3.3.0+~2.0.0-1 [7292 B] Get: 105 http://deb.debian.org/debian bookworm/main i386 node-imurmurhash all 0.1.4+dfsg+~0.1.1-2 [8412 B] Get: 106 http://deb.debian.org/debian bookworm/main i386 node-ignore all 5.2.1-1 [26.4 kB] Get: 107 http://deb.debian.org/debian bookworm/main i386 node-prelude-ls all 1.2.1+dfsg-3 [11.3 kB] Get: 108 http://deb.debian.org/debian bookworm/main i386 node-type-check all 0.4.0+dfsg-3 [9184 B] Get: 109 http://deb.debian.org/debian bookworm/main i386 node-levn all 0.4.1+dfsg-2 [10.2 kB] Get: 110 http://deb.debian.org/debian bookworm/main i386 node-lodash all 4.17.21+dfsg+~cs8.31.198.20210220-9 [462 kB] Get: 111 http://deb.debian.org/debian bookworm/main i386 node-memfs all 3.4.12+~cs1.0.3-1 [46.8 kB] Get: 112 http://deb.debian.org/debian bookworm/main i386 node-mkdirp all 1.0.4+~1.0.2-4 [11.6 kB] Get: 113 http://deb.debian.org/debian bookworm/main i386 node-deep-is all 0.1.4-1 [5136 B] Get: 114 http://deb.debian.org/debian bookworm/main i386 node-fast-levenshtein all 2.0.6+ds-3 [6040 B] Get: 115 http://deb.debian.org/debian bookworm/main i386 node-optionator all 0.9.1+dfsg+~cs1.2.3-1 [17.6 kB] Get: 116 http://deb.debian.org/debian bookworm/main i386 node-progress all 2.0.3-2 [8256 B] Get: 117 http://deb.debian.org/debian bookworm/main i386 libjs-regenerate all 1.4.2-3 [14.3 kB] Get: 118 http://deb.debian.org/debian bookworm/main i386 node-regenerate all 1.4.2-3 [7388 B] Get: 119 http://deb.debian.org/debian bookworm/main i386 node-regenerate-unicode-properties all 10.1.0+ds-1 [50.7 kB] Get: 120 http://deb.debian.org/debian bookworm/main i386 node-regexpp all 3.2.0-4 [27.0 kB] Get: 121 http://deb.debian.org/debian bookworm/main i386 node-yallist all 4.0.0+~4.0.1-1 [8172 B] Get: 122 http://deb.debian.org/debian bookworm/main i386 node-lru-cache all 7.14.1-1 [26.3 kB] Get: 123 http://deb.debian.org/debian bookworm/main i386 node-semver all 7.3.5+~7.3.9-2 [42.1 kB] Get: 124 http://deb.debian.org/debian bookworm/main i386 node-strip-json-comments all 4.0.0-4 [5668 B] Get: 125 http://deb.debian.org/debian bookworm/main i386 node-json-schema all 0.4.0+~7.0.11-1 [13.1 kB] Get: 126 http://deb.debian.org/debian bookworm/main i386 node-v8-compile-cache all 2.3.0-3 [8344 B] Get: 127 http://deb.debian.org/debian bookworm/main i386 eslint all 6.4.0~dfsg+~6.1.9-7 [606 kB] Get: 128 http://deb.debian.org/debian bookworm/main i386 node-neo-async all 2.6.2+~cs3.0.0-2 [35.2 kB] Get: 129 http://deb.debian.org/debian bookworm/main i386 node-arrify all 2.0.1-3 [3700 B] Get: 130 http://deb.debian.org/debian bookworm/main i386 node-is-plain-obj all 3.0.0-2 [3972 B] Get: 131 http://deb.debian.org/debian bookworm/main i386 node-is-buffer all 2.0.5-2 [4112 B] Get: 132 http://deb.debian.org/debian bookworm/main i386 node-kind-of all 6.0.3+dfsg-2 [10.2 kB] Get: 133 http://deb.debian.org/debian bookworm/main i386 node-minimist all 1.2.7+~cs5.3.2-2 [14.7 kB] Get: 134 http://deb.debian.org/debian bookworm/main i386 node-wordwrap all 1.0.0-4 [4628 B] Get: 135 http://deb.debian.org/debian bookworm/main i386 node-optimist all 0.6.1+~0.0.30-2 [13.5 kB] Get: 136 http://deb.debian.org/debian bookworm/main i386 libjs-source-map all 0.7.0++dfsg2+really.0.6.1-12 [30.2 kB] Get: 137 http://deb.debian.org/debian bookworm/main i386 node-source-map all 0.7.0++dfsg2+really.0.6.1-12 [41.7 kB] Get: 138 http://deb.debian.org/debian bookworm/main i386 handlebars all 3:4.7.7+~4.1.0-1 [199 kB] Get: 139 http://deb.debian.org/debian bookworm/main i386 help2man i386 1.49.3 [198 kB] Get: 140 http://deb.debian.org/debian bookworm/main i386 libonig5 i386 6.9.8-1 [193 kB] Get: 141 http://deb.debian.org/debian bookworm/main i386 libjq1 i386 1.6-2.1 [165 kB] Get: 142 http://deb.debian.org/debian bookworm/main i386 jq i386 1.6-2.1 [66.1 kB] Get: 143 http://deb.debian.org/debian bookworm/main i386 libdeflate0 i386 1.14-1 [57.5 kB] Get: 144 http://deb.debian.org/debian bookworm/main i386 libgdk-pixbuf2.0-common all 2.42.10+dfsg-1 [306 kB] Get: 145 http://deb.debian.org/debian bookworm/main i386 libglib2.0-0 i386 2.74.6-1 [1467 kB] Get: 146 http://deb.debian.org/debian bookworm/main i386 shared-mime-info i386 2.2-1 [730 kB] Get: 147 http://deb.debian.org/debian bookworm/main i386 libjpeg62-turbo i386 1:2.1.5-2 [169 kB] Get: 148 http://deb.debian.org/debian bookworm/main i386 libpng16-16 i386 1.6.39-2 [283 kB] Get: 149 http://deb.debian.org/debian bookworm/main i386 libjbig0 i386 2.1-6.1 [31.6 kB] Get: 150 http://deb.debian.org/debian bookworm/main i386 liblerc4 i386 4.0.0+ds-2 [181 kB] Get: 151 http://deb.debian.org/debian bookworm/main i386 libwebp7 i386 1.2.4-0.1 [293 kB] Get: 152 http://deb.debian.org/debian bookworm/main i386 libtiff6 i386 4.5.0-5 [332 kB] Get: 153 http://deb.debian.org/debian bookworm/main i386 libgdk-pixbuf-2.0-0 i386 2.42.10+dfsg-1+b1 [147 kB] Get: 154 http://deb.debian.org/debian bookworm/main i386 libjs-async all 0.8.0-6 [24.2 kB] Get: 155 http://deb.debian.org/debian bookworm/main i386 libjs-events all 3.3.0+~3.0.0-3 [11.3 kB] Get: 156 http://deb.debian.org/debian bookworm/main i386 libjs-is-typedarray all 1.0.0-4 [3816 B] Get: 157 http://deb.debian.org/debian bookworm/main i386 libjs-prettify all 2015.12.04+dfsg-1.1 [41.7 kB] Get: 158 http://deb.debian.org/debian bookworm/main i386 libjs-psl all 1.8.0+ds-9 [66.2 kB] Get: 159 http://deb.debian.org/debian bookworm/main i386 libjs-sprintf-js all 1.1.2+ds1+~1.1.2-1 [12.8 kB] Get: 160 http://deb.debian.org/debian bookworm/main i386 libjs-typedarray-to-buffer all 4.0.0-2 [4668 B] Get: 161 http://deb.debian.org/debian bookworm/main i386 node-lodash-packages all 4.17.21+dfsg+~cs8.31.198.20210220-9 [179 kB] Get: 162 http://deb.debian.org/debian bookworm/main i386 node-function-bind all 1.1.1+repacked+~1.0.3-2 [5252 B] Get: 163 http://deb.debian.org/debian bookworm/main i386 node-object-inspect all 1.12.2+~cs1.8.1-1 [20.8 kB] Get: 164 http://deb.debian.org/debian bookworm/main i386 node-es-abstract all 1.20.4+~cs26.27.47-1 [137 kB] Get: 165 http://deb.debian.org/debian bookworm/main i386 node-resolve all 1.22.1+~cs5.31.10-1 [28.1 kB] Get: 166 http://deb.debian.org/debian bookworm/main i386 node-define-properties all 1.1.4+~1.1.3-1 [6828 B] Get: 167 http://deb.debian.org/debian bookworm/main i386 node-debbundle-es-to-primitive all 1.2.1+~cs9.7.25-2 [39.9 kB] Get: 168 http://deb.debian.org/debian bookworm/main i386 node-defined all 1.0.1+~1.0.0-1 [6776 B] Get: 169 http://deb.debian.org/debian bookworm/main i386 node-abbrev all 1.1.1+~1.1.2-1 [5692 B] Get: 170 http://deb.debian.org/debian bookworm/main i386 node-archy all 1.0.0-6 [4556 B] Get: 171 http://deb.debian.org/debian bookworm/main i386 node-async all 0.8.0-6 [3748 B] Get: 172 http://deb.debian.org/debian bookworm/main i386 node-convert-source-map all 1.9.0+~1.5.2-1 [8176 B] Get: 173 http://deb.debian.org/debian bookworm/main i386 node-decamelize all 4.0.0-2 [4080 B] Get: 174 http://deb.debian.org/debian bookworm/main i386 node-es6-error all 4.1.1-5 [6148 B] Get: 175 http://deb.debian.org/debian bookworm/main i386 node-esprima all 4.0.1+ds+~4.0.3-2 [69.3 kB] Get: 176 http://deb.debian.org/debian bookworm/main i386 node-escodegen all 2.0.0+dfsg+~0.0.7-2 [23.0 kB] Get: 177 http://deb.debian.org/debian bookworm/main i386 node-commondir all 1.0.1+~1.0.0-1 [4388 B] Get: 178 http://deb.debian.org/debian bookworm/main i386 node-is-number all 7.0.0-4 [6020 B] Get: 179 http://deb.debian.org/debian bookworm/main i386 node-repeat-string all 1.6.1+repack-1 [5600 B] Get: 180 http://deb.debian.org/debian bookworm/main i386 node-to-regex-range all 5.0.1-4 [10.5 kB] Get: 181 http://deb.debian.org/debian bookworm/main i386 node-fill-range all 7.0.1+~7.0.0-1 [8952 B] Get: 182 http://deb.debian.org/debian bookworm/main i386 node-braces all 3.0.2+~3.0.1-1 [20.8 kB] Get: 183 http://deb.debian.org/debian bookworm/main i386 node-normalize-path all 3.0.0+~3.0.0-1 [6608 B] Get: 184 http://deb.debian.org/debian bookworm/main i386 node-anymatch all 3.1.3+~cs4.6.1-2 [33.4 kB] Get: 185 http://deb.debian.org/debian bookworm/main i386 node-micromatch all 4.0.5+~4.0.2-1 [25.8 kB] Get: 186 http://deb.debian.org/debian bookworm/main i386 node-pify all 5.0.0+~cs5.0.1-1 [7072 B] Get: 187 http://deb.debian.org/debian bookworm/main i386 node-path-type all 4.0.0-3 [3944 B] Get: 188 http://deb.debian.org/debian bookworm/main i386 node-n3 all 1.16.3+~1.2.3+~1.10.4-1 [37.0 kB] Get: 189 http://deb.debian.org/debian bookworm/main i386 node-slash all 4.0.0-3 [4292 B] Get: 190 http://deb.debian.org/debian bookworm/main i386 node-globby all 13.1.3+~cs16.25.40-1 [40.3 kB] Get: 191 http://deb.debian.org/debian bookworm/main i386 node-graceful-fs all 4.2.10-1 [14.4 kB] Get: 192 http://deb.debian.org/debian bookworm/main i386 node-is-path-cwd all 2.2.0-2 [3672 B] Get: 193 http://deb.debian.org/debian bookworm/main i386 node-path-is-inside all 1.0.2+~1.0.0-1 [5072 B] Get: 194 http://deb.debian.org/debian bookworm/main i386 node-is-path-inside all 3.0.3-2 [3980 B] Get: 195 http://deb.debian.org/debian bookworm/main i386 node-escape-string-regexp all 4.0.0-2 [4296 B] Get: 196 http://deb.debian.org/debian bookworm/main i386 node-indent-string all 4.0.0-2 [4144 B] Get: 197 http://deb.debian.org/debian bookworm/main i386 node-p-map all 4.0.0+~3.1.0+~3.0.1-1 [7912 B] Get: 198 http://deb.debian.org/debian bookworm/main i386 node-del all 7.0.0-5 [6804 B] Get: 199 http://deb.debian.org/debian bookworm/main i386 node-make-dir all 3.1.0-3 [6040 B] Get: 200 http://deb.debian.org/debian bookworm/main i386 node-p-limit all 4.0.0+~cs4.0.0-5 [7576 B] Get: 201 http://deb.debian.org/debian bookworm/main i386 node-p-locate all 6.0.0-12 [5752 B] Get: 202 http://deb.debian.org/debian bookworm/main i386 node-locate-path all 7.1.1-2 [5584 B] Get: 203 http://deb.debian.org/debian bookworm/main i386 node-path-exists all 5.0.0-8 [4732 B] Get: 204 http://deb.debian.org/debian bookworm/main i386 node-find-up all 6.3.0-7 [9388 B] Get: 205 http://deb.debian.org/debian bookworm/main i386 node-pkg-dir all 5.0.0-2 [4260 B] Get: 206 http://deb.debian.org/debian bookworm/main i386 node-find-cache-dir all 3.3.2+~3.2.1-1 [6152 B] Get: 207 http://deb.debian.org/debian bookworm/main i386 node-signal-exit all 3.0.7+~3.0.1-1 [7600 B] Get: 208 http://deb.debian.org/debian bookworm/main i386 node-foreground-child all 2.0.0-5 [6384 B] Get: 209 http://deb.debian.org/debian bookworm/main i386 node-is-stream all 3.0.0-4 [5076 B] Get: 210 http://deb.debian.org/debian bookworm/main i386 node-is-windows all 1.0.2+~cs1.0.0-1 [5936 B] Get: 211 http://deb.debian.org/debian bookworm/main i386 node-sprintf-js all 1.1.2+ds1+~1.1.2-1 [4024 B] Get: 212 http://deb.debian.org/debian bookworm/main i386 node-argparse all 2.0.1-2 [34.6 kB] Get: 213 http://deb.debian.org/debian bookworm/main i386 node-js-yaml all 4.1.0+dfsg+~4.0.5-7 [66.6 kB] Get: 214 http://deb.debian.org/debian bookworm/main i386 node-nopt all 5.0.0-4 [12.1 kB] Get: 215 http://deb.debian.org/debian bookworm/main i386 node-npm-run-path all 5.1.0+~4.0.0-7 [6204 B] Get: 216 http://deb.debian.org/debian bookworm/main i386 node-shebang-regex all 3.0.0-2 [3528 B] Get: 217 http://deb.debian.org/debian bookworm/main i386 node-shebang-command all 2.0.0-1 [3500 B] Get: 218 http://deb.debian.org/debian bookworm/main i386 node-strip-bom all 4.0.0-2 [4144 B] Get: 219 http://deb.debian.org/debian bookworm/main i386 node-has-flag all 4.0.0-3 [4304 B] Get: 220 http://deb.debian.org/debian bookworm/main i386 node-supports-color all 8.1.1+~8.1.1-1 [6920 B] Get: 221 http://deb.debian.org/debian bookworm/main i386 node-util all 0.12.5+~1.0.10-1 [5700 B] Get: 222 http://deb.debian.org/debian bookworm/main i386 node-assert all 2.0.0+~cs3.9.8-2 [26.8 kB] Get: 223 http://deb.debian.org/debian bookworm/main i386 node-ampproject-remapping all 2.2.0+~cs5.15.37-1 [59.4 kB] Get: 224 http://deb.debian.org/debian bookworm/main i386 node-babel-plugin-add-module-exports all 1.0.4+dfsg1~cs5.8.0-4 [8672 B] Get: 225 http://deb.debian.org/debian bookworm/main i386 node-regenerator-runtime all 0.15.1+~0.10.8-1 [10.6 kB] Get: 226 http://deb.debian.org/debian bookworm/main i386 node-babel7-runtime all 7.20.15+ds1+~cs214.269.168-2 [116 kB] Get: 227 http://deb.debian.org/debian bookworm/main i386 node-babel-helper-define-polyfill-provider all 0.3.3~0~20220913+ds1-1 [27.4 kB] Get: 228 http://deb.debian.org/debian bookworm/main i386 node-babel-plugin-polyfill-corejs2 all 0.3.3~0~20220913+ds1-1 [17.1 kB] Get: 229 http://deb.debian.org/debian bookworm/main i386 node-caniuse-lite all 1.0.30001436+dfsg+~1.0.1-1 [208 kB] Get: 230 http://deb.debian.org/debian bookworm/main i386 node-electron-to-chromium all 1.4.284-1 [20.6 kB] Get: 231 http://deb.debian.org/debian bookworm/main i386 node-picocolors all 1.0.0-4 [6652 B] Get: 232 http://deb.debian.org/debian bookworm/main i386 node-browserslist all 4.21.4+~cs6.1.17-2 [63.5 kB] Get: 233 http://deb.debian.org/debian bookworm/main i386 node-core-js-compat all 3.26.1-1 [66.0 kB] Get: 234 http://deb.debian.org/debian bookworm/main i386 node-babel-plugin-polyfill-corejs3 all 0.6.0~0~20220913+ds1-1 [29.5 kB] Get: 235 http://deb.debian.org/debian bookworm/main i386 node-babel-plugin-polyfill-regenerator all 0.4.1~0~20220913+ds1-1 [5036 B] Get: 236 http://deb.debian.org/debian bookworm/main i386 node-color-name all 1.1.4+~1.1.1-2 [5920 B] Get: 237 http://deb.debian.org/debian bookworm/main i386 node-color-convert all 2.0.1+~cs2.0.0-2 [13.1 kB] Get: 238 http://deb.debian.org/debian bookworm/main i386 node-ansi-styles all 6.2.1-2 [8640 B] Get: 239 http://deb.debian.org/debian bookworm/main i386 node-chalk all 5.2.0-1 [18.0 kB] Get: 240 http://deb.debian.org/debian bookworm/main i386 node-for-in all 1.0.2-4 [4840 B] Get: 241 http://deb.debian.org/debian bookworm/main i386 node-for-own all 1.0.0-3 [4800 B] Get: 242 http://deb.debian.org/debian bookworm/main i386 node-is-plain-object all 5.0.0-7 [6108 B] Get: 243 http://deb.debian.org/debian bookworm/main i386 node-is-extendable all 1.0.1-3 [5228 B] Get: 244 http://deb.debian.org/debian bookworm/main i386 node-clone-deep all 4.0.1+~cs7.0.2-1 [6720 B] Get: 245 http://deb.debian.org/debian bookworm/main i386 node-commander all 9.4.1-1 [65.3 kB] Get: 246 http://deb.debian.org/debian bookworm/main i386 node-core-js all 3.26.1-1 [268 kB] Get: 247 http://deb.debian.org/debian bookworm/main i386 node-core-js-pure all 3.26.1-1 [250 kB] Get: 248 http://deb.debian.org/debian bookworm/main i386 node-fs-readdir-recursive all 1.1.0+~1.1.0-1 [4540 B] Get: 249 http://deb.debian.org/debian bookworm/main i386 node-js-tokens all 8.0.0-2 [14.9 kB] Get: 250 http://deb.debian.org/debian bookworm/main i386 node-jsesc all 3.0.2+~3.0.1-1 [17.6 kB] Get: 251 http://deb.debian.org/debian bookworm/main i386 node-json5 all 2.2.3+dfsg-1 [25.6 kB] Get: 252 http://deb.debian.org/debian bookworm/main i386 node-quick-lru all 6.1.1-4 [8076 B] Get: 253 http://deb.debian.org/debian bookworm/main i386 node-regenerator-transform all 0.15.1+~0.10.8-1 [24.6 kB] Get: 254 http://deb.debian.org/debian bookworm/main i386 node-regjsgen all 0.7.1+ds-1 [6968 B] Get: 255 http://deb.debian.org/debian bookworm/main i386 node-regjsparser all 0.9.1+ds-2 [22.1 kB] Get: 256 http://deb.debian.org/debian bookworm/main i386 node-unicode-canonical-property-names-ecmascript all 2.0.0-2 [4540 B] Get: 257 http://deb.debian.org/debian bookworm/main i386 node-unicode-property-aliases-ecmascript all 2.1.0+ds-1 [5256 B] Get: 258 http://deb.debian.org/debian bookworm/main i386 node-unicode-match-property-ecmascript all 2.0.0-2 [4440 B] Get: 259 http://deb.debian.org/debian bookworm/main i386 node-unicode-match-property-value-ecmascript all 2.1.0+ds-1 [7272 B] Get: 260 http://deb.debian.org/debian bookworm/main i386 node-regexpu-core all 5.2.2-3 [13.9 kB] Get: 261 http://deb.debian.org/debian bookworm/main i386 node-source-map-support all 0.5.21+ds+~0.5.4-1 [14.5 kB] Get: 262 http://deb.debian.org/debian bookworm/main i386 node-to-fast-properties all 3.0.1-3 [4332 B] Get: 263 http://deb.debian.org/debian bookworm/main i386 node-v8flags all 3.2.0+~3.1.1-1 [7612 B] Get: 264 http://deb.debian.org/debian bookworm/main i386 node-babel7 all 7.20.15+ds1+~cs214.269.168-2 [711 kB] Get: 265 http://deb.debian.org/debian bookworm/main i386 node-is-arrayish all 0.3.2-3 [3960 B] Get: 266 http://deb.debian.org/debian bookworm/main i386 node-error-ex all 1.3.2-4 [5656 B] Get: 267 http://deb.debian.org/debian bookworm/main i386 node-json-parse-better-errors all 1.0.2+~cs3.3.1-2 [7800 B] Get: 268 http://deb.debian.org/debian bookworm/main i386 node-parse-json all 5.2.0+~cs5.1.7-1 [7356 B] Get: 269 http://deb.debian.org/debian bookworm/main i386 node-hosted-git-info all 6.1.1-2 [12.6 kB] Get: 270 http://deb.debian.org/debian bookworm/main i386 node-spdx-license-ids all 3.0.12-1 [6276 B] Get: 271 http://deb.debian.org/debian bookworm/main i386 node-spdx-exceptions all 2.3.0-2 [3992 B] Get: 272 http://deb.debian.org/debian bookworm/main i386 node-spdx-expression-parse all 3.0.1+~3.0.1-1 [7532 B] Get: 273 http://deb.debian.org/debian bookworm/main i386 node-spdx-correct all 3.1.1-2 [5464 B] Get: 274 http://deb.debian.org/debian bookworm/main i386 node-validate-npm-package-license all 3.0.4-2 [4280 B] Get: 275 http://deb.debian.org/debian bookworm/main i386 node-normalize-package-data all 4.0.1+~2.4.1-1 [13.6 kB] Get: 276 http://deb.debian.org/debian bookworm/main i386 node-read-pkg all 5.2.0-2 [24.0 kB] Get: 277 http://deb.debian.org/debian bookworm/main i386 node-uuid all 8.3.2+~8.3.3-3 [44.0 kB] Get: 278 http://deb.debian.org/debian bookworm/main i386 node-isexe all 2.0.0+~2.0.1-5 [6084 B] Get: 279 http://deb.debian.org/debian bookworm/main i386 node-which all 2.0.2+~cs1.3.2-3 [8368 B] Get: 280 http://deb.debian.org/debian bookworm/main i386 node-is-typedarray all 1.0.0-4 [3292 B] Get: 281 http://deb.debian.org/debian bookworm/main i386 node-typedarray-to-buffer all 4.0.0-2 [3380 B] Get: 282 http://deb.debian.org/debian bookworm/main i386 node-write-file-atomic all 4.0.2+~4.0.0-1 [9284 B] Get: 283 http://deb.debian.org/debian bookworm/main i386 node-slice-ansi all 5.0.0+~cs9.0.0-5 [8788 B] Get: 284 http://deb.debian.org/debian bookworm/main i386 node-ansi-regex all 5.0.1-1 [4912 B] Get: 285 http://deb.debian.org/debian bookworm/main i386 node-strip-ansi all 6.0.1-2 [4120 B] Get: 286 http://deb.debian.org/debian bookworm/main i386 node-clone all 2.1.2-4 [8280 B] Get: 287 http://deb.debian.org/debian bookworm/main i386 node-defaults all 1.0.4+~1.0.3-1 [4400 B] Get: 288 http://deb.debian.org/debian bookworm/main i386 node-wcwidth.js all 1.0.2-2 [7088 B] Get: 289 http://deb.debian.org/debian bookworm/main i386 node-string-width all 4.2.3+~cs13.2.3-1 [10.7 kB] Get: 290 http://deb.debian.org/debian bookworm/main i386 node-wrap-ansi all 8.0.1+~8.0.1-3 [11.8 kB] Get: 291 http://deb.debian.org/debian bookworm/main i386 node-cliui all 7.0.4+repack+~cs3.1.0-4 [11.5 kB] Get: 292 http://deb.debian.org/debian bookworm/main i386 node-get-caller-file all 2.0.5+~cs1.1.1-4 [5728 B] Get: 293 http://deb.debian.org/debian bookworm/main i386 node-require-directory all 2.1.1+~2.1.2-1 [7092 B] Get: 294 http://deb.debian.org/debian bookworm/main i386 node-y18n all 5.0.8+~5.0.0-3 [10.2 kB] Get: 295 http://deb.debian.org/debian bookworm/main i386 node-camelcase all 7.0.0-3 [6032 B] Get: 296 http://deb.debian.org/debian bookworm/main i386 node-yargs-parser all 21.1.1+~21.0.0-4 [28.4 kB] Get: 297 http://deb.debian.org/debian bookworm/main i386 node-yargs all 16.2.0+~16.0.4-7 [128 kB] Get: 298 http://deb.debian.org/debian bookworm/main i386 node-istanbul all 0.4.5+repack10+~cs97.25.57-3 [207 kB] Get: 299 http://deb.debian.org/debian bookworm/main i386 node-through all 2.3.8+~cs0.0.30-1 [5452 B] Get: 300 http://deb.debian.org/debian bookworm/main i386 node-resumer all 0.0.0-6 [4144 B] Get: 301 http://deb.debian.org/debian bookworm/main i386 node-tape all 5.6.1+~cs8.20.19-1 [70.9 kB] Get: 302 http://deb.debian.org/debian bookworm/main i386 node-deep-equal all 2.1.0+~cs31.12.80-1 [34.5 kB] Get: 303 http://deb.debian.org/debian bookworm/main i386 libjs-util all 0.12.5+~1.0.10-1 [16.0 kB] Get: 304 http://deb.debian.org/debian bookworm/main i386 libnotify4 i386 0.8.1-1 [30.9 kB] Get: 305 http://deb.debian.org/debian bookworm/main i386 libnotify-bin i386 0.8.1-1 [17.3 kB] Get: 306 http://deb.debian.org/debian bookworm/main i386 node-ansi-colors all 4.1.3-2 [14.8 kB] Get: 307 http://deb.debian.org/debian bookworm/main i386 node-browser-stdout all 1.3.1-7 [3668 B] Get: 308 http://deb.debian.org/debian bookworm/main i386 node-async-each all 1.0.3-3 [4292 B] Get: 309 http://deb.debian.org/debian bookworm/main i386 node-binary-extensions all 2.2.0-2 [4408 B] Get: 310 http://deb.debian.org/debian bookworm/main i386 node-is-binary-path all 2.1.0-5 [3684 B] Get: 311 http://deb.debian.org/debian bookworm/main i386 node-path-is-absolute all 2.0.0-2 [4068 B] Get: 312 http://deb.debian.org/debian bookworm/main i386 node-set-immediate-shim all 2.0.0-2 [3740 B] Get: 313 http://deb.debian.org/debian bookworm/main i386 node-readdirp all 3.6.0-1 [11.5 kB] Get: 314 http://deb.debian.org/debian bookworm/main i386 node-chokidar all 3.5.3-2 [32.3 kB] Get: 315 http://deb.debian.org/debian bookworm/main i386 node-diff all 5.0.0~dfsg+~5.0.1-4 [69.7 kB] Get: 316 http://deb.debian.org/debian bookworm/main i386 node-growl all 1.10.5-4 [7684 B] Get: 317 http://deb.debian.org/debian bookworm/main i386 node-he all 1.2.0-4 [37.2 kB] Get: 318 http://deb.debian.org/debian bookworm/main i386 node-ci-info all 3.6.1+~cs1.1.0-1 [11.7 kB] Get: 319 http://deb.debian.org/debian bookworm/main i386 node-isobject all 4.0.0-2 [5332 B] Get: 320 http://deb.debian.org/debian bookworm/main i386 node-postcss all 8.4.20+~cs8.0.23-1 [180 kB] Get: 321 http://deb.debian.org/debian bookworm/main i386 node-randombytes all 2.1.0+~2.0.0-2 [4852 B] Get: 322 http://deb.debian.org/debian bookworm/main i386 node-serialize-javascript all 6.0.0-2 [12.7 kB] Get: 323 http://deb.debian.org/debian bookworm/main i386 node-wide-align all 1.1.3-4 [4244 B] Get: 324 http://deb.debian.org/debian bookworm/main i386 mocha all 10.1.0+ds1+~cs29.3.1-1 [162 kB] Get: 325 http://deb.debian.org/debian bookworm/main i386 node-abab all 2.0.6-1 [7236 B] Get: 326 http://deb.debian.org/debian bookworm/main i386 node-agent-base all 6.0.2+~cs5.4.2-2 [17.3 kB] Get: 327 http://deb.debian.org/debian bookworm/main i386 node-ajv-keywords all 3.5.2-2 [20.3 kB] Get: 328 http://deb.debian.org/debian bookworm/main i386 node-ansi-escapes all 5.0.0+really.4.3.1-1 [8896 B] Get: 329 http://deb.debian.org/debian bookworm/main i386 node-array-from all 2.1.1-3 [8008 B] Get: 330 http://deb.debian.org/debian bookworm/main i386 node-tslib all 2.4.1-1 [19.5 kB] Get: 331 http://deb.debian.org/debian bookworm/main i386 node-ast-types all 0.15.2-3 [93.1 kB] Get: 332 http://deb.debian.org/debian bookworm/main i386 node-asynckit all 0.4.0-5 [10.3 kB] Get: 333 http://deb.debian.org/debian bookworm/main i386 node-schema-utils all 3.1.1~ds-2 [20.0 kB] Get: 334 http://deb.debian.org/debian bookworm/main i386 node-chrome-trace-event all 1.0.3-2 [6984 B] Get: 335 http://deb.debian.org/debian bookworm/main i386 node-prr all 1.0.1-3 [4352 B] Get: 336 http://deb.debian.org/debian bookworm/main i386 node-errno all 1.0.0-3 [7736 B] Get: 337 http://deb.debian.org/debian bookworm/main i386 node-memory-fs all 0.5.0+~0.3.3-2 [7676 B] Get: 338 http://deb.debian.org/debian bookworm/main i386 node-tapable all 2.2.1-2 [13.6 kB] Get: 339 http://deb.debian.org/debian bookworm/main i386 node-enhanced-resolve all 5.10.0-1 [33.6 kB] Get: 340 http://deb.debian.org/debian bookworm/main i386 node-es-module-lexer all 1.1.0+dfsg-2 [19.7 kB] Get: 341 http://deb.debian.org/debian bookworm/main i386 node-events all 3.3.0+~3.0.0-3 [5888 B] Get: 342 http://deb.debian.org/debian bookworm/main i386 node-babel-plugin-lodash all 3.3.4+~cs2.0.1-6 [11.0 kB] Get: 343 http://deb.debian.org/debian bookworm/main i386 node-resolve-cwd all 3.0.0-2 [4212 B] Get: 344 http://deb.debian.org/debian bookworm/main i386 node-jest-debbundle all 29.3.1~ds1+~cs70.48.25-1 [129 kB] Get: 345 http://deb.debian.org/debian bookworm/main i386 node-interpret all 2.2.0-2 [7532 B] Get: 346 http://deb.debian.org/debian bookworm/main i386 node-merge-stream all 2.0.0+~1.1.2-2 [5124 B] Get: 347 http://deb.debian.org/debian bookworm/main i386 node-jest-worker all 29.3.1~ds1+~cs70.48.25-1 [112 kB] Get: 348 http://deb.debian.org/debian bookworm/main i386 node-loader-runner all 4.3.0-1 [7644 B] Get: 349 http://deb.debian.org/debian bookworm/main i386 node-mime all 3.0.0+dfsg+~cs3.97.1-1 [40.4 kB] Get: 350 http://deb.debian.org/debian bookworm/main i386 node-mime-types all 2.1.35-1 [9456 B] Get: 351 http://deb.debian.org/debian bookworm/main i386 node-rechoir all 0.8.0+~0.6.1-2 [6628 B] Get: 352 http://deb.debian.org/debian bookworm/main i386 node-watchpack all 2.4.0+~cs2.8.1-1 [20.2 kB] Get: 353 http://deb.debian.org/debian bookworm/main i386 node-webassemblyjs all 1.11.4+dfsg+~cs10.11.17-2 [139 kB] Get: 354 http://deb.debian.org/debian bookworm/main i386 node-source-list-map all 2.0.1+dfsg-2 [9348 B] Get: 355 http://deb.debian.org/debian bookworm/main i386 node-webpack-sources all 3.2.3+~3.2.0-2 [23.2 kB] Get: 356 http://deb.debian.org/debian bookworm/main i386 node-terser all 5.16.4-1 [204 kB] Get: 357 http://deb.debian.org/debian bookworm/main i386 terser all 5.16.4-1 [16.4 kB] Get: 358 http://deb.debian.org/debian bookworm/main i386 webpack all 5.75.0+dfsg+~cs17.16.14-1 [756 kB] Get: 359 http://deb.debian.org/debian bookworm/main i386 node-babel-loader all 9.1.0-3 [17.2 kB] Get: 360 http://deb.debian.org/debian bookworm/main i386 node-bl all 5.1.0-1 [13.8 kB] Get: 361 http://deb.debian.org/debian bookworm/main i386 node-boolbase all 1.0.0+~1.0.0-1 [4348 B] Get: 362 http://deb.debian.org/debian bookworm/main i386 node-css-what all 6.1.0-5 [13.8 kB] Get: 363 http://deb.debian.org/debian bookworm/main i386 node-entities all 4.4.0+dfsg-2 [43.8 kB] Get: 364 http://deb.debian.org/debian bookworm/main i386 node-domelementtype all 2.3.0-1 [4984 B] Get: 365 http://deb.debian.org/debian bookworm/main i386 node-domhandler all 5.0.3-3 [14.1 kB] Get: 366 http://deb.debian.org/debian bookworm/main i386 node-dom-serializer all 2.0.0-3 [8280 B] Get: 367 http://deb.debian.org/debian bookworm/main i386 node-domutils all 3.0.1-3 [23.4 kB] Get: 368 http://deb.debian.org/debian bookworm/main i386 node-nth-check all 2.0.1-2 [7096 B] Get: 369 http://deb.debian.org/debian bookworm/main i386 node-css-select all 5.1.0-3 [30.4 kB] Get: 370 http://deb.debian.org/debian bookworm/main i386 node-htmlparser2 all 8.0.1-4 [32.6 kB] Get: 371 http://deb.debian.org/debian bookworm/main i386 node-cssom all 0.4.4-3 [13.8 kB] Get: 372 http://deb.debian.org/debian bookworm/main i386 node-cssstyle all 2.3.0-3 [29.4 kB] Get: 373 http://deb.debian.org/debian bookworm/main i386 node-delayed-stream all 1.0.0-5 [5436 B] Get: 374 http://deb.debian.org/debian bookworm/main i386 node-combined-stream all 1.0.8+~1.0.3-1 [7316 B] Get: 375 http://deb.debian.org/debian bookworm/main i386 node-form-data all 4.0.0-1 [13.2 kB] Get: 376 http://deb.debian.org/debian bookworm/main i386 node-https-proxy-agent all 5.0.1+~cs8.0.0-3 [16.1 kB] Get: 377 http://deb.debian.org/debian bookworm/main i386 node-iconv-lite all 0.6.3-3 [115 kB] Get: 378 http://deb.debian.org/debian bookworm/main i386 node-parse5 all 7.1.2+dfsg-1 [55.0 kB] Get: 379 http://deb.debian.org/debian bookworm/main i386 node-psl all 1.8.0+ds-9 [38.1 kB] Get: 380 http://deb.debian.org/debian bookworm/main i386 node-universalify all 2.0.0-3 [4248 B] Get: 381 http://deb.debian.org/debian bookworm/main i386 node-tough-cookie all 4.0.0-2 [31.7 kB] Get: 382 http://deb.debian.org/debian bookworm/main i386 node-webidl-conversions all 7.0.0~1.1.0+~cs15.1.20180823-2 [26.6 kB] Get: 383 http://deb.debian.org/debian bookworm/main i386 node-mute-stream all 0.0.8+~0.0.1-3 [6232 B] Get: 384 http://deb.debian.org/debian bookworm/main i386 node-read all 1.0.7-5 [5388 B] Get: 385 http://deb.debian.org/debian bookworm/main i386 node-ws all 8.11.0+~cs13.7.3-1 [51.1 kB] Get: 386 http://deb.debian.org/debian bookworm/main i386 node-jsdom all 20.0.3+~cs124.18.21-1 [453 kB] Get: 387 http://deb.debian.org/debian bookworm/main i386 node-parse5-htmlparser2-tree-adapter all 7.1.2+dfsg-1 [5880 B] Get: 388 http://deb.debian.org/debian bookworm/main i386 node-cheerio all 1.0.0~rc~12+~cs2.1.0-3 [73.6 kB] Get: 389 http://deb.debian.org/debian bookworm/main i386 node-restore-cursor all 4.0.0-2 [4352 B] Get: 390 http://deb.debian.org/debian bookworm/main i386 node-cli-cursor all 4.0.0-3 [7880 B] Get: 391 http://deb.debian.org/debian bookworm/main i386 node-cli-spinners all 2.7.0-1 [7144 B] Get: 392 http://deb.debian.org/debian bookworm/main i386 node-cli-width all 3.0.0-2 [5076 B] Get: 393 http://deb.debian.org/debian bookworm/main i386 node-es6-symbol all 3.1.3+~cs3.11.0-2 [20.2 kB] Get: 394 http://deb.debian.org/debian bookworm/main i386 node-es6-iterator all 2.0.3-4 [7996 B] Get: 395 http://deb.debian.org/debian bookworm/main i386 node-es5-ext all 0.10.62+dfsg1+~1.1.0-2 [88.4 kB] Get: 396 http://deb.debian.org/debian bookworm/main i386 node-d all 1.0.1+~1.0.1-2 [7764 B] Get: 397 http://deb.debian.org/debian bookworm/main i386 node-dateformat all 5.0.3-5 [8656 B] Get: 398 http://deb.debian.org/debian bookworm/main i386 node-jake all 10.8.5+~1.0.4-3 [35.1 kB] Get: 399 http://deb.debian.org/debian bookworm/main i386 node-ejs all 3.1.8+~3.1.1-2 [29.6 kB] Get: 400 http://deb.debian.org/debian bookworm/main i386 node-eslint-plugin-es all 4.1.0~ds1-5 [22.1 kB] Get: 401 http://deb.debian.org/debian bookworm/main i386 node-eslint-plugin-eslint-plugin all 2.3.0+~0.3.0-4 [29.2 kB] Get: 402 http://deb.debian.org/debian bookworm/main i386 node-eslint-plugin-node all 11.1.0~ds-5 [46.5 kB] Get: 403 http://deb.debian.org/debian bookworm/main i386 node-event-emitter all 0.3.5-4 [7396 B] Get: 404 http://deb.debian.org/debian bookworm/main i386 node-jschardet all 3.0.0+dfsg+~1.4.0-1 [135 kB] Get: 405 http://deb.debian.org/debian bookworm/main i386 node-tmp all 0.2.2+dfsg+~0.2.3-1 [19.7 kB] Get: 406 http://deb.debian.org/debian bookworm/main i386 node-external-editor all 3.1.0+dfsg-2 [10.5 kB] Get: 407 http://deb.debian.org/debian bookworm/main i386 node-run-async all 2.4.1-2 [5076 B] Get: 408 http://deb.debian.org/debian bookworm/main i386 node-inquirer all 8.2.5+~cs26.8.16-1 [696 kB] Get: 409 http://deb.debian.org/debian bookworm/main i386 node-is-object all 1.0.2+~1.0.2-2 [9164 B] Get: 410 http://deb.debian.org/debian bookworm/main i386 node-merge-descriptors all 1.0.1-3 [4772 B] Get: 411 http://deb.debian.org/debian bookworm/main i386 node-path-to-regexp all 6.2.1-1 [19.8 kB] Get: 412 http://deb.debian.org/debian bookworm/main i386 node-private all 0.1.8-7 [7888 B] Get: 413 http://deb.debian.org/debian bookworm/main i386 node-proxyquire all 2.1.3+~1.0.1+~1.0.2-12 [24.1 kB] Get: 414 http://deb.debian.org/debian bookworm/main i386 node-recast all 0.21.1-1 [65.9 kB] Get: 415 http://deb.debian.org/debian bookworm/main i386 node-shelljs all 0.8.5+~cs0.8.10-1 [62.4 kB] Get: 416 http://deb.debian.org/debian bookworm/main i386 node-sinon all 14.0.2+ds+~cs74.13.25-1 [611 kB] Get: 417 http://deb.debian.org/debian bookworm/main i386 node-temp all 0.9.4+~0.9.1-1 [9776 B] Get: 418 http://deb.debian.org/debian bookworm/main i386 node-text-table all 0.2.0-4 [4736 B] Fetched 48.3 MB in 5s (10.1 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package liblocale-gettext-perl. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19604 files and directories currently installed.) Preparing to unpack .../liblocale-gettext-perl_1.07-5_i386.deb ... Unpacking liblocale-gettext-perl (1.07-5) ... Selecting previously unselected package isa-support:i386. Preparing to unpack .../isa-support_15_i386.deb ... Unpacking isa-support:i386 (15) ... Setting up isa-support:i386 (15) ... Selecting previously unselected package sse2-support. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19636 files and directories currently installed.) Preparing to unpack .../000-sse2-support_15_i386.deb ... Unpacking sse2-support (15) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../001-sensible-utils_0.0.17+nmu1_all.deb ... Unpacking sensible-utils (0.0.17+nmu1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../002-libmagic-mgc_1%3a5.44-3_i386.deb ... Unpacking libmagic-mgc (1:5.44-3) ... Selecting previously unselected package libmagic1:i386. Preparing to unpack .../003-libmagic1_1%3a5.44-3_i386.deb ... Unpacking libmagic1:i386 (1:5.44-3) ... Selecting previously unselected package file. Preparing to unpack .../004-file_1%3a5.44-3_i386.deb ... Unpacking file (1:5.44-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../005-gettext-base_0.21-12_i386.deb ... Unpacking gettext-base (0.21-12) ... Selecting previously unselected package libuchardet0:i386. Preparing to unpack .../006-libuchardet0_0.0.7-1_i386.deb ... Unpacking libuchardet0:i386 (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../007-groff-base_1.22.4-10_i386.deb ... Unpacking groff-base (1.22.4-10) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../008-bsdextrautils_2.38.1-5+b1_i386.deb ... Unpacking bsdextrautils (2.38.1-5+b1) ... Selecting previously unselected package libpipeline1:i386. Preparing to unpack .../009-libpipeline1_1.5.7-1_i386.deb ... Unpacking libpipeline1:i386 (1.5.7-1) ... Selecting previously unselected package man-db. Preparing to unpack .../010-man-db_2.11.2-2_i386.deb ... Unpacking man-db (2.11.2-2) ... Selecting previously unselected package m4. Preparing to unpack .../011-m4_1.4.19-3_i386.deb ... Unpacking m4 (1.4.19-3) ... Selecting previously unselected package autoconf. Preparing to unpack .../012-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../013-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../014-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../015-autopoint_0.21-12_all.deb ... Unpacking autopoint (0.21-12) ... Selecting previously unselected package node-assertion-error. Preparing to unpack .../016-node-assertion-error_1.1.0-2_all.deb ... Unpacking node-assertion-error (1.1.0-2) ... Selecting previously unselected package libbrotli1:i386. Preparing to unpack .../017-libbrotli1_1.0.9-2+b6_i386.deb ... Unpacking libbrotli1:i386 (1.0.9-2+b6) ... Selecting previously unselected package libc-ares2:i386. Preparing to unpack .../018-libc-ares2_1.18.1-2_i386.deb ... Unpacking libc-ares2:i386 (1.18.1-2) ... Selecting previously unselected package libicu72:i386. Preparing to unpack .../019-libicu72_72.1-3_i386.deb ... Unpacking libicu72:i386 (72.1-3) ... Selecting previously unselected package libnghttp2-14:i386. Preparing to unpack .../020-libnghttp2-14_1.52.0-1_i386.deb ... Unpacking libnghttp2-14:i386 (1.52.0-1) ... Selecting previously unselected package libuv1:i386. Preparing to unpack .../021-libuv1_1.44.2-1_i386.deb ... Unpacking libuv1:i386 (1.44.2-1) ... Selecting previously unselected package node-xtend. Preparing to unpack .../022-node-xtend_4.0.2-3_all.deb ... Unpacking node-xtend (4.0.2-3) ... Selecting previously unselected package node-acorn. Preparing to unpack .../023-node-acorn_8.8.1+ds+~cs25.17.7-2_all.deb ... Unpacking node-acorn (8.8.1+ds+~cs25.17.7-2) ... Selecting previously unselected package node-cjs-module-lexer. Preparing to unpack .../024-node-cjs-module-lexer_1.2.2+dfsg-5_all.deb ... Unpacking node-cjs-module-lexer (1.2.2+dfsg-5) ... Selecting previously unselected package node-busboy. Preparing to unpack .../025-node-busboy_1.6.0+~cs2.6.0-2_all.deb ... Unpacking node-busboy (1.6.0+~cs2.6.0-2) ... Selecting previously unselected package node-undici. Preparing to unpack .../026-node-undici_5.15.0+dfsg1+~cs20.10.9.3-1_all.deb ... Unpacking node-undici (5.15.0+dfsg1+~cs20.10.9.3-1) ... Selecting previously unselected package libnode108:i386. Preparing to unpack .../027-libnode108_18.13.0+dfsg1-1_i386.deb ... Unpacking libnode108:i386 (18.13.0+dfsg1-1) ... Selecting previously unselected package nodejs. Preparing to unpack .../028-nodejs_18.13.0+dfsg1-1_i386.deb ... Unpacking nodejs (18.13.0+dfsg1-1) ... Selecting previously unselected package node-check-error. Preparing to unpack .../029-node-check-error_1.0.2-4_all.deb ... Unpacking node-check-error (1.0.2-4) ... Selecting previously unselected package node-type-detect. Preparing to unpack .../030-node-type-detect_4.0.8-4_all.deb ... Unpacking node-type-detect (4.0.8-4) ... Selecting previously unselected package node-deep-eql. Preparing to unpack .../031-node-deep-eql_4.1.3-1_all.deb ... Unpacking node-deep-eql (4.1.3-1) ... Selecting previously unselected package node-get-func-name. Preparing to unpack .../032-node-get-func-name_2.0.0+dfsg-2_all.deb ... Unpacking node-get-func-name (2.0.0+dfsg-2) ... Selecting previously unselected package node-pathval. Preparing to unpack .../033-node-pathval_1.1.1+~1.1.0-1_all.deb ... Unpacking node-pathval (1.1.1+~1.1.0-1) ... Selecting previously unselected package chai. Preparing to unpack .../034-chai_4.3.7~ds1+~cs9.7.21-1_all.deb ... Unpacking chai (4.3.7~ds1+~cs9.7.21-1) ... Selecting previously unselected package libcmark-gfm0.29.0.gfm.6:i386. Preparing to unpack .../035-libcmark-gfm0.29.0.gfm.6_0.29.0.gfm.6-6_i386.deb ... Unpacking libcmark-gfm0.29.0.gfm.6:i386 (0.29.0.gfm.6-6) ... Selecting previously unselected package libcmark-gfm-extensions0.29.0.gfm.6:i386. Preparing to unpack .../036-libcmark-gfm-extensions0.29.0.gfm.6_0.29.0.gfm.6-6_i386.deb ... Unpacking libcmark-gfm-extensions0.29.0.gfm.6:i386 (0.29.0.gfm.6-6) ... Selecting previously unselected package cmark-gfm. Preparing to unpack .../037-cmark-gfm_0.29.0.gfm.6-6_i386.deb ... Unpacking cmark-gfm (0.29.0.gfm.6-6) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../038-libdebhelper-perl_13.11.4_all.deb ... Unpacking libdebhelper-perl (13.11.4) ... Selecting previously unselected package libtool. Preparing to unpack .../039-libtool_2.4.7-5_all.deb ... Unpacking libtool (2.4.7-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../040-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../041-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../042-libsub-override-perl_0.09-4_all.deb ... Unpacking libsub-override-perl (0.09-4) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../043-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../044-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1:i386. Preparing to unpack .../045-libelf1_0.188-2.1_i386.deb ... Unpacking libelf1:i386 (0.188-2.1) ... Selecting previously unselected package dwz. Preparing to unpack .../046-dwz_0.15-1_i386.deb ... Unpacking dwz (0.15-1) ... Selecting previously unselected package libxml2:i386. Preparing to unpack .../047-libxml2_2.9.14+dfsg-1.1+b3_i386.deb ... Unpacking libxml2:i386 (2.9.14+dfsg-1.1+b3) ... Selecting previously unselected package gettext. Preparing to unpack .../048-gettext_0.21-12_i386.deb ... Unpacking gettext (0.21-12) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../049-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../050-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../051-debhelper_13.11.4_all.deb ... Unpacking debhelper (13.11.4) ... Selecting previously unselected package node-fast-deep-equal. Preparing to unpack .../052-node-fast-deep-equal_3.1.3-3_all.deb ... Unpacking node-fast-deep-equal (3.1.3-3) ... Selecting previously unselected package node-json-schema-traverse. Preparing to unpack .../053-node-json-schema-traverse_1.0.0-3_all.deb ... Unpacking node-json-schema-traverse (1.0.0-3) ... Selecting previously unselected package node-jsonify. Preparing to unpack .../054-node-jsonify_0.0.1-1_all.deb ... Unpacking node-jsonify (0.0.1-1) ... Selecting previously unselected package node-json-stable-stringify. Preparing to unpack .../055-node-json-stable-stringify_1.0.2+~cs5.2.34-1_all.deb ... Unpacking node-json-stable-stringify (1.0.2+~cs5.2.34-1) ... Selecting previously unselected package node-punycode. Preparing to unpack .../056-node-punycode_2.1.1-6_all.deb ... Unpacking node-punycode (2.1.1-6) ... Selecting previously unselected package node-uri-js. Preparing to unpack .../057-node-uri-js_4.4.0+dfsg-8_all.deb ... Unpacking node-uri-js (4.4.0+dfsg-8) ... Selecting previously unselected package node-ajv. Preparing to unpack .../058-node-ajv_6.12.6-3_all.deb ... Unpacking node-ajv (6.12.6-3) ... Selecting previously unselected package libjs-inherits. Preparing to unpack .../059-libjs-inherits_2.0.4-6_all.deb ... Unpacking libjs-inherits (2.0.4-6) ... Selecting previously unselected package node-inherits. Preparing to unpack .../060-node-inherits_2.0.4-6_all.deb ... Unpacking node-inherits (2.0.4-6) ... Selecting previously unselected package node-core-util-is. Preparing to unpack .../061-node-core-util-is_1.0.3-1_all.deb ... Unpacking node-core-util-is (1.0.3-1) ... Selecting previously unselected package node-safe-buffer. Preparing to unpack .../062-node-safe-buffer_5.2.1+~cs2.1.2-3_all.deb ... Unpacking node-safe-buffer (5.2.1+~cs2.1.2-3) ... Selecting previously unselected package node-string-decoder. Preparing to unpack .../063-node-string-decoder_1.3.0-6_all.deb ... Unpacking node-string-decoder (1.3.0-6) ... Selecting previously unselected package node-process-nextick-args. Preparing to unpack .../064-node-process-nextick-args_2.0.1-3_all.deb ... Unpacking node-process-nextick-args (2.0.1-3) ... Selecting previously unselected package node-util-deprecate. Preparing to unpack .../065-node-util-deprecate_1.0.2-3_all.deb ... Unpacking node-util-deprecate (1.0.2-3) ... Selecting previously unselected package node-isarray. Preparing to unpack .../066-node-isarray_2.0.5-4_all.deb ... Unpacking node-isarray (2.0.5-4) ... Selecting previously unselected package node-readable-stream. Preparing to unpack .../067-node-readable-stream_3.6.0+~cs3.0.0-4_all.deb ... Unpacking node-readable-stream (3.6.0+~cs3.0.0-4) ... Selecting previously unselected package node-typedarray. Preparing to unpack .../068-node-typedarray_0.0.7-1_all.deb ... Unpacking node-typedarray (0.0.7-1) ... Selecting previously unselected package node-concat-stream. Preparing to unpack .../069-node-concat-stream_2.0.0+~2.0.0-2_all.deb ... Unpacking node-concat-stream (2.0.0+~2.0.0-2) ... Selecting previously unselected package node-ms. Preparing to unpack .../070-node-ms_2.1.3+~cs0.7.31-3_all.deb ... Unpacking node-ms (2.1.3+~cs0.7.31-3) ... Selecting previously unselected package node-debug. Preparing to unpack .../071-node-debug_4.3.4+~cs4.1.7-1_all.deb ... Unpacking node-debug (4.3.4+~cs4.1.7-1) ... Selecting previously unselected package node-esutils. Preparing to unpack .../072-node-esutils_2.0.3+~2.0.0-1_all.deb ... Unpacking node-esutils (2.0.3+~2.0.0-1) ... Selecting previously unselected package node-doctrine. Preparing to unpack .../073-node-doctrine_3.0.0-4_all.deb ... Unpacking node-doctrine (3.0.0-4) ... Selecting previously unselected package node-eslint-visitor-keys. Preparing to unpack .../074-node-eslint-visitor-keys_3.3.0+~1.0.0-1_all.deb ... Unpacking node-eslint-visitor-keys (3.3.0+~1.0.0-1) ... Selecting previously unselected package node-estraverse. Preparing to unpack .../075-node-estraverse_5.3.0+ds+~5.1.1-1_all.deb ... Unpacking node-estraverse (5.3.0+ds+~5.1.1-1) ... Selecting previously unselected package node-object-assign. Preparing to unpack .../076-node-object-assign_4.1.1-7_all.deb ... Unpacking node-object-assign (4.1.1-7) ... Selecting previously unselected package node-esrecurse. Preparing to unpack .../077-node-esrecurse_4.3.0-2_all.deb ... Unpacking node-esrecurse (4.3.0-2) ... Selecting previously unselected package node-eslint-scope. Preparing to unpack .../078-node-eslint-scope_7.1.1+~3.7.4-1_all.deb ... Unpacking node-eslint-scope (7.1.1+~3.7.4-1) ... Selecting previously unselected package node-espree. Preparing to unpack .../079-node-espree_9.4.1~dfsg-1_all.deb ... Unpacking node-espree (9.4.1~dfsg-1) ... Selecting previously unselected package node-esquery. Preparing to unpack .../080-node-esquery_1.4.2~ds-1_all.deb ... Unpacking node-esquery (1.4.2~ds-1) ... Selecting previously unselected package node-eslint-utils. Preparing to unpack .../081-node-eslint-utils_3.0.0-3_all.deb ... Unpacking node-eslint-utils (3.0.0-3) ... Selecting previously unselected package node-flatted. Preparing to unpack .../082-node-flatted_3.2.7~ds-1_all.deb ... Unpacking node-flatted (3.2.7~ds-1) ... Selecting previously unselected package node-fs.realpath. Preparing to unpack .../083-node-fs.realpath_1.0.0-3_all.deb ... Unpacking node-fs.realpath (1.0.0-3) ... Selecting previously unselected package node-wrappy. Preparing to unpack .../084-node-wrappy_1.0.2-3_all.deb ... Unpacking node-wrappy (1.0.2-3) ... Selecting previously unselected package node-once. Preparing to unpack .../085-node-once_1.4.0-7_all.deb ... Unpacking node-once (1.4.0-7) ... Selecting previously unselected package node-inflight. Preparing to unpack .../086-node-inflight_1.0.6-2_all.deb ... Unpacking node-inflight (1.0.6-2) ... Selecting previously unselected package node-balanced-match. Preparing to unpack .../087-node-balanced-match_2.0.0-1_all.deb ... Unpacking node-balanced-match (2.0.0-1) ... Selecting previously unselected package node-brace-expansion. Preparing to unpack .../088-node-brace-expansion_2.0.1-2_all.deb ... Unpacking node-brace-expansion (2.0.1-2) ... Selecting previously unselected package node-minimatch. Preparing to unpack .../089-node-minimatch_5.1.1+~5.1.2-1_all.deb ... Unpacking node-minimatch (5.1.1+~5.1.2-1) ... Selecting previously unselected package node-glob. Preparing to unpack .../090-node-glob_8.0.3+~cs8.4.15-1_all.deb ... Unpacking node-glob (8.0.3+~cs8.4.15-1) ... Selecting previously unselected package node-rimraf. Preparing to unpack .../091-node-rimraf_3.0.2-2_all.deb ... Unpacking node-rimraf (3.0.2-2) ... Selecting previously unselected package node-write. Preparing to unpack .../092-node-write_2.0.0~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5_all.deb ... Unpacking node-write (2.0.0~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5) ... Selecting previously unselected package node-flat-cache. Preparing to unpack .../093-node-flat-cache_3.0.4~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5_all.deb ... Unpacking node-flat-cache (3.0.4~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5) ... Selecting previously unselected package node-file-entry-cache. Preparing to unpack .../094-node-file-entry-cache_6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5_all.deb ... Unpacking node-file-entry-cache (6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5) ... Selecting previously unselected package node-functional-red-black-tree. Preparing to unpack .../095-node-functional-red-black-tree_1.0.1+20181105-7_all.deb ... Unpacking node-functional-red-black-tree (1.0.1+20181105-7) ... Selecting previously unselected package node-is-extglob. Preparing to unpack .../096-node-is-extglob_2.1.1-5_all.deb ... Unpacking node-is-extglob (2.1.1-5) ... Selecting previously unselected package node-is-glob. Preparing to unpack .../097-node-is-glob_4.0.3-2_all.deb ... Unpacking node-is-glob (4.0.3-2) ... Selecting previously unselected package node-path-dirname. Preparing to unpack .../098-node-path-dirname_1.0.2-2_all.deb ... Unpacking node-path-dirname (1.0.2-2) ... Selecting previously unselected package node-glob-parent. Preparing to unpack .../099-node-glob-parent_6.0.2+~5.1.1-2_all.deb ... Unpacking node-glob-parent (6.0.2+~5.1.1-2) ... Selecting previously unselected package node-globals. Preparing to unpack .../100-node-globals_13.18.0-1_all.deb ... Unpacking node-globals (13.18.0-1) ... Selecting previously unselected package node-resolve-from. Preparing to unpack .../101-node-resolve-from_5.0.0+~3.1.0+~3.3.0+~2.0.0-1_all.deb ... Unpacking node-resolve-from (5.0.0+~3.1.0+~3.3.0+~2.0.0-1) ... Selecting previously unselected package node-imurmurhash. Preparing to unpack .../102-node-imurmurhash_0.1.4+dfsg+~0.1.1-2_all.deb ... Unpacking node-imurmurhash (0.1.4+dfsg+~0.1.1-2) ... Selecting previously unselected package node-ignore. Preparing to unpack .../103-node-ignore_5.2.1-1_all.deb ... Unpacking node-ignore (5.2.1-1) ... Selecting previously unselected package node-prelude-ls. Preparing to unpack .../104-node-prelude-ls_1.2.1+dfsg-3_all.deb ... Unpacking node-prelude-ls (1.2.1+dfsg-3) ... Selecting previously unselected package node-type-check. Preparing to unpack .../105-node-type-check_0.4.0+dfsg-3_all.deb ... Unpacking node-type-check (0.4.0+dfsg-3) ... Selecting previously unselected package node-levn. Preparing to unpack .../106-node-levn_0.4.1+dfsg-2_all.deb ... Unpacking node-levn (0.4.1+dfsg-2) ... Selecting previously unselected package node-lodash. Preparing to unpack .../107-node-lodash_4.17.21+dfsg+~cs8.31.198.20210220-9_all.deb ... Unpacking node-lodash (4.17.21+dfsg+~cs8.31.198.20210220-9) ... Selecting previously unselected package node-memfs. Preparing to unpack .../108-node-memfs_3.4.12+~cs1.0.3-1_all.deb ... Unpacking node-memfs (3.4.12+~cs1.0.3-1) ... Selecting previously unselected package node-mkdirp. Preparing to unpack .../109-node-mkdirp_1.0.4+~1.0.2-4_all.deb ... Unpacking node-mkdirp (1.0.4+~1.0.2-4) ... Selecting previously unselected package node-deep-is. Preparing to unpack .../110-node-deep-is_0.1.4-1_all.deb ... Unpacking node-deep-is (0.1.4-1) ... Selecting previously unselected package node-fast-levenshtein. Preparing to unpack .../111-node-fast-levenshtein_2.0.6+ds-3_all.deb ... Unpacking node-fast-levenshtein (2.0.6+ds-3) ... Selecting previously unselected package node-optionator. Preparing to unpack .../112-node-optionator_0.9.1+dfsg+~cs1.2.3-1_all.deb ... Unpacking node-optionator (0.9.1+dfsg+~cs1.2.3-1) ... Selecting previously unselected package node-progress. Preparing to unpack .../113-node-progress_2.0.3-2_all.deb ... Unpacking node-progress (2.0.3-2) ... Selecting previously unselected package libjs-regenerate. Preparing to unpack .../114-libjs-regenerate_1.4.2-3_all.deb ... Unpacking libjs-regenerate (1.4.2-3) ... Selecting previously unselected package node-regenerate. Preparing to unpack .../115-node-regenerate_1.4.2-3_all.deb ... Unpacking node-regenerate (1.4.2-3) ... Selecting previously unselected package node-regenerate-unicode-properties. Preparing to unpack .../116-node-regenerate-unicode-properties_10.1.0+ds-1_all.deb ... Unpacking node-regenerate-unicode-properties (10.1.0+ds-1) ... Selecting previously unselected package node-regexpp. Preparing to unpack .../117-node-regexpp_3.2.0-4_all.deb ... Unpacking node-regexpp (3.2.0-4) ... Selecting previously unselected package node-yallist. Preparing to unpack .../118-node-yallist_4.0.0+~4.0.1-1_all.deb ... Unpacking node-yallist (4.0.0+~4.0.1-1) ... Selecting previously unselected package node-lru-cache. Preparing to unpack .../119-node-lru-cache_7.14.1-1_all.deb ... Unpacking node-lru-cache (7.14.1-1) ... Selecting previously unselected package node-semver. Preparing to unpack .../120-node-semver_7.3.5+~7.3.9-2_all.deb ... Unpacking node-semver (7.3.5+~7.3.9-2) ... Selecting previously unselected package node-strip-json-comments. Preparing to unpack .../121-node-strip-json-comments_4.0.0-4_all.deb ... Unpacking node-strip-json-comments (4.0.0-4) ... Selecting previously unselected package node-json-schema. Preparing to unpack .../122-node-json-schema_0.4.0+~7.0.11-1_all.deb ... Unpacking node-json-schema (0.4.0+~7.0.11-1) ... Selecting previously unselected package node-v8-compile-cache. Preparing to unpack .../123-node-v8-compile-cache_2.3.0-3_all.deb ... Unpacking node-v8-compile-cache (2.3.0-3) ... Selecting previously unselected package eslint. Preparing to unpack .../124-eslint_6.4.0~dfsg+~6.1.9-7_all.deb ... Unpacking eslint (6.4.0~dfsg+~6.1.9-7) ... Selecting previously unselected package node-neo-async. Preparing to unpack .../125-node-neo-async_2.6.2+~cs3.0.0-2_all.deb ... Unpacking node-neo-async (2.6.2+~cs3.0.0-2) ... Selecting previously unselected package node-arrify. Preparing to unpack .../126-node-arrify_2.0.1-3_all.deb ... Unpacking node-arrify (2.0.1-3) ... Selecting previously unselected package node-is-plain-obj. Preparing to unpack .../127-node-is-plain-obj_3.0.0-2_all.deb ... Unpacking node-is-plain-obj (3.0.0-2) ... Selecting previously unselected package node-is-buffer. Preparing to unpack .../128-node-is-buffer_2.0.5-2_all.deb ... Unpacking node-is-buffer (2.0.5-2) ... Selecting previously unselected package node-kind-of. Preparing to unpack .../129-node-kind-of_6.0.3+dfsg-2_all.deb ... Unpacking node-kind-of (6.0.3+dfsg-2) ... Selecting previously unselected package node-minimist. Preparing to unpack .../130-node-minimist_1.2.7+~cs5.3.2-2_all.deb ... Unpacking node-minimist (1.2.7+~cs5.3.2-2) ... Selecting previously unselected package node-wordwrap. Preparing to unpack .../131-node-wordwrap_1.0.0-4_all.deb ... Unpacking node-wordwrap (1.0.0-4) ... Selecting previously unselected package node-optimist. Preparing to unpack .../132-node-optimist_0.6.1+~0.0.30-2_all.deb ... Unpacking node-optimist (0.6.1+~0.0.30-2) ... Selecting previously unselected package libjs-source-map. Preparing to unpack .../133-libjs-source-map_0.7.0++dfsg2+really.0.6.1-12_all.deb ... Unpacking libjs-source-map (0.7.0++dfsg2+really.0.6.1-12) ... Selecting previously unselected package node-source-map. Preparing to unpack .../134-node-source-map_0.7.0++dfsg2+really.0.6.1-12_all.deb ... Unpacking node-source-map (0.7.0++dfsg2+really.0.6.1-12) ... Selecting previously unselected package handlebars. Preparing to unpack .../135-handlebars_3%3a4.7.7+~4.1.0-1_all.deb ... Unpacking handlebars (3:4.7.7+~4.1.0-1) ... Selecting previously unselected package help2man. Preparing to unpack .../136-help2man_1.49.3_i386.deb ... Unpacking help2man (1.49.3) ... Selecting previously unselected package libonig5:i386. Preparing to unpack .../137-libonig5_6.9.8-1_i386.deb ... Unpacking libonig5:i386 (6.9.8-1) ... Selecting previously unselected package libjq1:i386. Preparing to unpack .../138-libjq1_1.6-2.1_i386.deb ... Unpacking libjq1:i386 (1.6-2.1) ... Selecting previously unselected package jq. Preparing to unpack .../139-jq_1.6-2.1_i386.deb ... Unpacking jq (1.6-2.1) ... Selecting previously unselected package libdeflate0:i386. Preparing to unpack .../140-libdeflate0_1.14-1_i386.deb ... Unpacking libdeflate0:i386 (1.14-1) ... Selecting previously unselected package libgdk-pixbuf2.0-common. Preparing to unpack .../141-libgdk-pixbuf2.0-common_2.42.10+dfsg-1_all.deb ... Unpacking libgdk-pixbuf2.0-common (2.42.10+dfsg-1) ... Selecting previously unselected package libglib2.0-0:i386. Preparing to unpack .../142-libglib2.0-0_2.74.6-1_i386.deb ... Unpacking libglib2.0-0:i386 (2.74.6-1) ... Selecting previously unselected package shared-mime-info. Preparing to unpack .../143-shared-mime-info_2.2-1_i386.deb ... Unpacking shared-mime-info (2.2-1) ... Selecting previously unselected package libjpeg62-turbo:i386. Preparing to unpack .../144-libjpeg62-turbo_1%3a2.1.5-2_i386.deb ... Unpacking libjpeg62-turbo:i386 (1:2.1.5-2) ... Selecting previously unselected package libpng16-16:i386. Preparing to unpack .../145-libpng16-16_1.6.39-2_i386.deb ... Unpacking libpng16-16:i386 (1.6.39-2) ... Selecting previously unselected package libjbig0:i386. Preparing to unpack .../146-libjbig0_2.1-6.1_i386.deb ... Unpacking libjbig0:i386 (2.1-6.1) ... Selecting previously unselected package liblerc4:i386. Preparing to unpack .../147-liblerc4_4.0.0+ds-2_i386.deb ... Unpacking liblerc4:i386 (4.0.0+ds-2) ... Selecting previously unselected package libwebp7:i386. Preparing to unpack .../148-libwebp7_1.2.4-0.1_i386.deb ... Unpacking libwebp7:i386 (1.2.4-0.1) ... Selecting previously unselected package libtiff6:i386. Preparing to unpack .../149-libtiff6_4.5.0-5_i386.deb ... Unpacking libtiff6:i386 (4.5.0-5) ... Selecting previously unselected package libgdk-pixbuf-2.0-0:i386. Preparing to unpack .../150-libgdk-pixbuf-2.0-0_2.42.10+dfsg-1+b1_i386.deb ... Unpacking libgdk-pixbuf-2.0-0:i386 (2.42.10+dfsg-1+b1) ... Selecting previously unselected package libjs-async. Preparing to unpack .../151-libjs-async_0.8.0-6_all.deb ... Unpacking libjs-async (0.8.0-6) ... Selecting previously unselected package libjs-events. Preparing to unpack .../152-libjs-events_3.3.0+~3.0.0-3_all.deb ... Unpacking libjs-events (3.3.0+~3.0.0-3) ... Selecting previously unselected package libjs-is-typedarray. Preparing to unpack .../153-libjs-is-typedarray_1.0.0-4_all.deb ... Unpacking libjs-is-typedarray (1.0.0-4) ... Selecting previously unselected package libjs-prettify. Preparing to unpack .../154-libjs-prettify_2015.12.04+dfsg-1.1_all.deb ... Unpacking libjs-prettify (2015.12.04+dfsg-1.1) ... Selecting previously unselected package libjs-psl. Preparing to unpack .../155-libjs-psl_1.8.0+ds-9_all.deb ... Unpacking libjs-psl (1.8.0+ds-9) ... Selecting previously unselected package libjs-sprintf-js. Preparing to unpack .../156-libjs-sprintf-js_1.1.2+ds1+~1.1.2-1_all.deb ... Unpacking libjs-sprintf-js (1.1.2+ds1+~1.1.2-1) ... Selecting previously unselected package libjs-typedarray-to-buffer. Preparing to unpack .../157-libjs-typedarray-to-buffer_4.0.0-2_all.deb ... Unpacking libjs-typedarray-to-buffer (4.0.0-2) ... Selecting previously unselected package node-lodash-packages. Preparing to unpack .../158-node-lodash-packages_4.17.21+dfsg+~cs8.31.198.20210220-9_all.deb ... Unpacking node-lodash-packages (4.17.21+dfsg+~cs8.31.198.20210220-9) ... Selecting previously unselected package node-function-bind. Preparing to unpack .../159-node-function-bind_1.1.1+repacked+~1.0.3-2_all.deb ... Unpacking node-function-bind (1.1.1+repacked+~1.0.3-2) ... Selecting previously unselected package node-object-inspect. Preparing to unpack .../160-node-object-inspect_1.12.2+~cs1.8.1-1_all.deb ... Unpacking node-object-inspect (1.12.2+~cs1.8.1-1) ... Selecting previously unselected package node-es-abstract. Preparing to unpack .../161-node-es-abstract_1.20.4+~cs26.27.47-1_all.deb ... Unpacking node-es-abstract (1.20.4+~cs26.27.47-1) ... Selecting previously unselected package node-resolve. Preparing to unpack .../162-node-resolve_1.22.1+~cs5.31.10-1_all.deb ... Unpacking node-resolve (1.22.1+~cs5.31.10-1) ... Selecting previously unselected package node-define-properties. Preparing to unpack .../163-node-define-properties_1.1.4+~1.1.3-1_all.deb ... Unpacking node-define-properties (1.1.4+~1.1.3-1) ... Selecting previously unselected package node-debbundle-es-to-primitive. Preparing to unpack .../164-node-debbundle-es-to-primitive_1.2.1+~cs9.7.25-2_all.deb ... Unpacking node-debbundle-es-to-primitive (1.2.1+~cs9.7.25-2) ... Selecting previously unselected package node-defined. Preparing to unpack .../165-node-defined_1.0.1+~1.0.0-1_all.deb ... Unpacking node-defined (1.0.1+~1.0.0-1) ... Selecting previously unselected package node-abbrev. Preparing to unpack .../166-node-abbrev_1.1.1+~1.1.2-1_all.deb ... Unpacking node-abbrev (1.1.1+~1.1.2-1) ... Selecting previously unselected package node-archy. Preparing to unpack .../167-node-archy_1.0.0-6_all.deb ... Unpacking node-archy (1.0.0-6) ... Selecting previously unselected package node-async. Preparing to unpack .../168-node-async_0.8.0-6_all.deb ... Unpacking node-async (0.8.0-6) ... Selecting previously unselected package node-convert-source-map. Preparing to unpack .../169-node-convert-source-map_1.9.0+~1.5.2-1_all.deb ... Unpacking node-convert-source-map (1.9.0+~1.5.2-1) ... Selecting previously unselected package node-decamelize. Preparing to unpack .../170-node-decamelize_4.0.0-2_all.deb ... Unpacking node-decamelize (4.0.0-2) ... Selecting previously unselected package node-es6-error. Preparing to unpack .../171-node-es6-error_4.1.1-5_all.deb ... Unpacking node-es6-error (4.1.1-5) ... Selecting previously unselected package node-esprima. Preparing to unpack .../172-node-esprima_4.0.1+ds+~4.0.3-2_all.deb ... Unpacking node-esprima (4.0.1+ds+~4.0.3-2) ... Selecting previously unselected package node-escodegen. Preparing to unpack .../173-node-escodegen_2.0.0+dfsg+~0.0.7-2_all.deb ... Unpacking node-escodegen (2.0.0+dfsg+~0.0.7-2) ... Selecting previously unselected package node-commondir. Preparing to unpack .../174-node-commondir_1.0.1+~1.0.0-1_all.deb ... Unpacking node-commondir (1.0.1+~1.0.0-1) ... Selecting previously unselected package node-is-number. Preparing to unpack .../175-node-is-number_7.0.0-4_all.deb ... Unpacking node-is-number (7.0.0-4) ... Selecting previously unselected package node-repeat-string. Preparing to unpack .../176-node-repeat-string_1.6.1+repack-1_all.deb ... Unpacking node-repeat-string (1.6.1+repack-1) ... Selecting previously unselected package node-to-regex-range. Preparing to unpack .../177-node-to-regex-range_5.0.1-4_all.deb ... Unpacking node-to-regex-range (5.0.1-4) ... Selecting previously unselected package node-fill-range. Preparing to unpack .../178-node-fill-range_7.0.1+~7.0.0-1_all.deb ... Unpacking node-fill-range (7.0.1+~7.0.0-1) ... Selecting previously unselected package node-braces. Preparing to unpack .../179-node-braces_3.0.2+~3.0.1-1_all.deb ... Unpacking node-braces (3.0.2+~3.0.1-1) ... Selecting previously unselected package node-normalize-path. Preparing to unpack .../180-node-normalize-path_3.0.0+~3.0.0-1_all.deb ... Unpacking node-normalize-path (3.0.0+~3.0.0-1) ... Selecting previously unselected package node-anymatch. Preparing to unpack .../181-node-anymatch_3.1.3+~cs4.6.1-2_all.deb ... Unpacking node-anymatch (3.1.3+~cs4.6.1-2) ... Selecting previously unselected package node-micromatch. Preparing to unpack .../182-node-micromatch_4.0.5+~4.0.2-1_all.deb ... Unpacking node-micromatch (4.0.5+~4.0.2-1) ... Selecting previously unselected package node-pify. Preparing to unpack .../183-node-pify_5.0.0+~cs5.0.1-1_all.deb ... Unpacking node-pify (5.0.0+~cs5.0.1-1) ... Selecting previously unselected package node-path-type. Preparing to unpack .../184-node-path-type_4.0.0-3_all.deb ... Unpacking node-path-type (4.0.0-3) ... Selecting previously unselected package node-n3. Preparing to unpack .../185-node-n3_1.16.3+~1.2.3+~1.10.4-1_all.deb ... Unpacking node-n3 (1.16.3+~1.2.3+~1.10.4-1) ... Selecting previously unselected package node-slash. Preparing to unpack .../186-node-slash_4.0.0-3_all.deb ... Unpacking node-slash (4.0.0-3) ... Selecting previously unselected package node-globby. Preparing to unpack .../187-node-globby_13.1.3+~cs16.25.40-1_all.deb ... Unpacking node-globby (13.1.3+~cs16.25.40-1) ... Selecting previously unselected package node-graceful-fs. Preparing to unpack .../188-node-graceful-fs_4.2.10-1_all.deb ... Unpacking node-graceful-fs (4.2.10-1) ... Selecting previously unselected package node-is-path-cwd. Preparing to unpack .../189-node-is-path-cwd_2.2.0-2_all.deb ... Unpacking node-is-path-cwd (2.2.0-2) ... Selecting previously unselected package node-path-is-inside. Preparing to unpack .../190-node-path-is-inside_1.0.2+~1.0.0-1_all.deb ... Unpacking node-path-is-inside (1.0.2+~1.0.0-1) ... Selecting previously unselected package node-is-path-inside. Preparing to unpack .../191-node-is-path-inside_3.0.3-2_all.deb ... Unpacking node-is-path-inside (3.0.3-2) ... Selecting previously unselected package node-escape-string-regexp. Preparing to unpack .../192-node-escape-string-regexp_4.0.0-2_all.deb ... Unpacking node-escape-string-regexp (4.0.0-2) ... Selecting previously unselected package node-indent-string. Preparing to unpack .../193-node-indent-string_4.0.0-2_all.deb ... Unpacking node-indent-string (4.0.0-2) ... Selecting previously unselected package node-p-map. Preparing to unpack .../194-node-p-map_4.0.0+~3.1.0+~3.0.1-1_all.deb ... Unpacking node-p-map (4.0.0+~3.1.0+~3.0.1-1) ... Selecting previously unselected package node-del. Preparing to unpack .../195-node-del_7.0.0-5_all.deb ... Unpacking node-del (7.0.0-5) ... Selecting previously unselected package node-make-dir. Preparing to unpack .../196-node-make-dir_3.1.0-3_all.deb ... Unpacking node-make-dir (3.1.0-3) ... Selecting previously unselected package node-p-limit. Preparing to unpack .../197-node-p-limit_4.0.0+~cs4.0.0-5_all.deb ... Unpacking node-p-limit (4.0.0+~cs4.0.0-5) ... Selecting previously unselected package node-p-locate. Preparing to unpack .../198-node-p-locate_6.0.0-12_all.deb ... Unpacking node-p-locate (6.0.0-12) ... Selecting previously unselected package node-locate-path. Preparing to unpack .../199-node-locate-path_7.1.1-2_all.deb ... Unpacking node-locate-path (7.1.1-2) ... Selecting previously unselected package node-path-exists. Preparing to unpack .../200-node-path-exists_5.0.0-8_all.deb ... Unpacking node-path-exists (5.0.0-8) ... Selecting previously unselected package node-find-up. Preparing to unpack .../201-node-find-up_6.3.0-7_all.deb ... Unpacking node-find-up (6.3.0-7) ... Selecting previously unselected package node-pkg-dir. Preparing to unpack .../202-node-pkg-dir_5.0.0-2_all.deb ... Unpacking node-pkg-dir (5.0.0-2) ... Selecting previously unselected package node-find-cache-dir. Preparing to unpack .../203-node-find-cache-dir_3.3.2+~3.2.1-1_all.deb ... Unpacking node-find-cache-dir (3.3.2+~3.2.1-1) ... Selecting previously unselected package node-signal-exit. Preparing to unpack .../204-node-signal-exit_3.0.7+~3.0.1-1_all.deb ... Unpacking node-signal-exit (3.0.7+~3.0.1-1) ... Selecting previously unselected package node-foreground-child. Preparing to unpack .../205-node-foreground-child_2.0.0-5_all.deb ... Unpacking node-foreground-child (2.0.0-5) ... Selecting previously unselected package node-is-stream. Preparing to unpack .../206-node-is-stream_3.0.0-4_all.deb ... Unpacking node-is-stream (3.0.0-4) ... Selecting previously unselected package node-is-windows. Preparing to unpack .../207-node-is-windows_1.0.2+~cs1.0.0-1_all.deb ... Unpacking node-is-windows (1.0.2+~cs1.0.0-1) ... Selecting previously unselected package node-sprintf-js. Preparing to unpack .../208-node-sprintf-js_1.1.2+ds1+~1.1.2-1_all.deb ... Unpacking node-sprintf-js (1.1.2+ds1+~1.1.2-1) ... Selecting previously unselected package node-argparse. Preparing to unpack .../209-node-argparse_2.0.1-2_all.deb ... Unpacking node-argparse (2.0.1-2) ... Selecting previously unselected package node-js-yaml. Preparing to unpack .../210-node-js-yaml_4.1.0+dfsg+~4.0.5-7_all.deb ... Unpacking node-js-yaml (4.1.0+dfsg+~4.0.5-7) ... Selecting previously unselected package node-nopt. Preparing to unpack .../211-node-nopt_5.0.0-4_all.deb ... Unpacking node-nopt (5.0.0-4) ... Selecting previously unselected package node-npm-run-path. Preparing to unpack .../212-node-npm-run-path_5.1.0+~4.0.0-7_all.deb ... Unpacking node-npm-run-path (5.1.0+~4.0.0-7) ... Selecting previously unselected package node-shebang-regex. Preparing to unpack .../213-node-shebang-regex_3.0.0-2_all.deb ... Unpacking node-shebang-regex (3.0.0-2) ... Selecting previously unselected package node-shebang-command. Preparing to unpack .../214-node-shebang-command_2.0.0-1_all.deb ... Unpacking node-shebang-command (2.0.0-1) ... Selecting previously unselected package node-strip-bom. Preparing to unpack .../215-node-strip-bom_4.0.0-2_all.deb ... Unpacking node-strip-bom (4.0.0-2) ... Selecting previously unselected package node-has-flag. Preparing to unpack .../216-node-has-flag_4.0.0-3_all.deb ... Unpacking node-has-flag (4.0.0-3) ... Selecting previously unselected package node-supports-color. Preparing to unpack .../217-node-supports-color_8.1.1+~8.1.1-1_all.deb ... Unpacking node-supports-color (8.1.1+~8.1.1-1) ... Selecting previously unselected package node-util. Preparing to unpack .../218-node-util_0.12.5+~1.0.10-1_all.deb ... Unpacking node-util (0.12.5+~1.0.10-1) ... Selecting previously unselected package node-assert. Preparing to unpack .../219-node-assert_2.0.0+~cs3.9.8-2_all.deb ... Unpacking node-assert (2.0.0+~cs3.9.8-2) ... Selecting previously unselected package node-ampproject-remapping. Preparing to unpack .../220-node-ampproject-remapping_2.2.0+~cs5.15.37-1_all.deb ... Unpacking node-ampproject-remapping (2.2.0+~cs5.15.37-1) ... Selecting previously unselected package node-babel-plugin-add-module-exports. Preparing to unpack .../221-node-babel-plugin-add-module-exports_1.0.4+dfsg1~cs5.8.0-4_all.deb ... Unpacking node-babel-plugin-add-module-exports (1.0.4+dfsg1~cs5.8.0-4) ... Selecting previously unselected package node-regenerator-runtime. Preparing to unpack .../222-node-regenerator-runtime_0.15.1+~0.10.8-1_all.deb ... Unpacking node-regenerator-runtime (0.15.1+~0.10.8-1) ... Selecting previously unselected package node-babel7-runtime. Preparing to unpack .../223-node-babel7-runtime_7.20.15+ds1+~cs214.269.168-2_all.deb ... Unpacking node-babel7-runtime (7.20.15+ds1+~cs214.269.168-2) ... Selecting previously unselected package node-babel-helper-define-polyfill-provider. Preparing to unpack .../224-node-babel-helper-define-polyfill-provider_0.3.3~0~20220913+ds1-1_all.deb ... Unpacking node-babel-helper-define-polyfill-provider (0.3.3~0~20220913+ds1-1) ... Selecting previously unselected package node-babel-plugin-polyfill-corejs2. Preparing to unpack .../225-node-babel-plugin-polyfill-corejs2_0.3.3~0~20220913+ds1-1_all.deb ... Unpacking node-babel-plugin-polyfill-corejs2 (0.3.3~0~20220913+ds1-1) ... Selecting previously unselected package node-caniuse-lite. Preparing to unpack .../226-node-caniuse-lite_1.0.30001436+dfsg+~1.0.1-1_all.deb ... Unpacking node-caniuse-lite (1.0.30001436+dfsg+~1.0.1-1) ... Selecting previously unselected package node-electron-to-chromium. Preparing to unpack .../227-node-electron-to-chromium_1.4.284-1_all.deb ... Unpacking node-electron-to-chromium (1.4.284-1) ... Selecting previously unselected package node-picocolors. Preparing to unpack .../228-node-picocolors_1.0.0-4_all.deb ... Unpacking node-picocolors (1.0.0-4) ... Selecting previously unselected package node-browserslist. Preparing to unpack .../229-node-browserslist_4.21.4+~cs6.1.17-2_all.deb ... Unpacking node-browserslist (4.21.4+~cs6.1.17-2) ... Selecting previously unselected package node-core-js-compat. Preparing to unpack .../230-node-core-js-compat_3.26.1-1_all.deb ... Unpacking node-core-js-compat (3.26.1-1) ... Selecting previously unselected package node-babel-plugin-polyfill-corejs3. Preparing to unpack .../231-node-babel-plugin-polyfill-corejs3_0.6.0~0~20220913+ds1-1_all.deb ... Unpacking node-babel-plugin-polyfill-corejs3 (0.6.0~0~20220913+ds1-1) ... Selecting previously unselected package node-babel-plugin-polyfill-regenerator. Preparing to unpack .../232-node-babel-plugin-polyfill-regenerator_0.4.1~0~20220913+ds1-1_all.deb ... Unpacking node-babel-plugin-polyfill-regenerator (0.4.1~0~20220913+ds1-1) ... Selecting previously unselected package node-color-name. Preparing to unpack .../233-node-color-name_1.1.4+~1.1.1-2_all.deb ... Unpacking node-color-name (1.1.4+~1.1.1-2) ... Selecting previously unselected package node-color-convert. Preparing to unpack .../234-node-color-convert_2.0.1+~cs2.0.0-2_all.deb ... Unpacking node-color-convert (2.0.1+~cs2.0.0-2) ... Selecting previously unselected package node-ansi-styles. Preparing to unpack .../235-node-ansi-styles_6.2.1-2_all.deb ... Unpacking node-ansi-styles (6.2.1-2) ... Selecting previously unselected package node-chalk. Preparing to unpack .../236-node-chalk_5.2.0-1_all.deb ... Unpacking node-chalk (5.2.0-1) ... Selecting previously unselected package node-for-in. Preparing to unpack .../237-node-for-in_1.0.2-4_all.deb ... Unpacking node-for-in (1.0.2-4) ... Selecting previously unselected package node-for-own. Preparing to unpack .../238-node-for-own_1.0.0-3_all.deb ... Unpacking node-for-own (1.0.0-3) ... Selecting previously unselected package node-is-plain-object. Preparing to unpack .../239-node-is-plain-object_5.0.0-7_all.deb ... Unpacking node-is-plain-object (5.0.0-7) ... Selecting previously unselected package node-is-extendable. Preparing to unpack .../240-node-is-extendable_1.0.1-3_all.deb ... Unpacking node-is-extendable (1.0.1-3) ... Selecting previously unselected package node-clone-deep. Preparing to unpack .../241-node-clone-deep_4.0.1+~cs7.0.2-1_all.deb ... Unpacking node-clone-deep (4.0.1+~cs7.0.2-1) ... Selecting previously unselected package node-commander. Preparing to unpack .../242-node-commander_9.4.1-1_all.deb ... Unpacking node-commander (9.4.1-1) ... Selecting previously unselected package node-core-js. Preparing to unpack .../243-node-core-js_3.26.1-1_all.deb ... Unpacking node-core-js (3.26.1-1) ... Selecting previously unselected package node-core-js-pure. Preparing to unpack .../244-node-core-js-pure_3.26.1-1_all.deb ... Unpacking node-core-js-pure (3.26.1-1) ... Selecting previously unselected package node-fs-readdir-recursive. Preparing to unpack .../245-node-fs-readdir-recursive_1.1.0+~1.1.0-1_all.deb ... Unpacking node-fs-readdir-recursive (1.1.0+~1.1.0-1) ... Selecting previously unselected package node-js-tokens. Preparing to unpack .../246-node-js-tokens_8.0.0-2_all.deb ... Unpacking node-js-tokens (8.0.0-2) ... Selecting previously unselected package node-jsesc. Preparing to unpack .../247-node-jsesc_3.0.2+~3.0.1-1_all.deb ... Unpacking node-jsesc (3.0.2+~3.0.1-1) ... Selecting previously unselected package node-json5. Preparing to unpack .../248-node-json5_2.2.3+dfsg-1_all.deb ... Unpacking node-json5 (2.2.3+dfsg-1) ... Selecting previously unselected package node-quick-lru. Preparing to unpack .../249-node-quick-lru_6.1.1-4_all.deb ... Unpacking node-quick-lru (6.1.1-4) ... Selecting previously unselected package node-regenerator-transform. Preparing to unpack .../250-node-regenerator-transform_0.15.1+~0.10.8-1_all.deb ... Unpacking node-regenerator-transform (0.15.1+~0.10.8-1) ... Selecting previously unselected package node-regjsgen. Preparing to unpack .../251-node-regjsgen_0.7.1+ds-1_all.deb ... Unpacking node-regjsgen (0.7.1+ds-1) ... Selecting previously unselected package node-regjsparser. Preparing to unpack .../252-node-regjsparser_0.9.1+ds-2_all.deb ... Unpacking node-regjsparser (0.9.1+ds-2) ... Selecting previously unselected package node-unicode-canonical-property-names-ecmascript. Preparing to unpack .../253-node-unicode-canonical-property-names-ecmascript_2.0.0-2_all.deb ... Unpacking node-unicode-canonical-property-names-ecmascript (2.0.0-2) ... Selecting previously unselected package node-unicode-property-aliases-ecmascript. Preparing to unpack .../254-node-unicode-property-aliases-ecmascript_2.1.0+ds-1_all.deb ... Unpacking node-unicode-property-aliases-ecmascript (2.1.0+ds-1) ... Selecting previously unselected package node-unicode-match-property-ecmascript. Preparing to unpack .../255-node-unicode-match-property-ecmascript_2.0.0-2_all.deb ... Unpacking node-unicode-match-property-ecmascript (2.0.0-2) ... Selecting previously unselected package node-unicode-match-property-value-ecmascript. Preparing to unpack .../256-node-unicode-match-property-value-ecmascript_2.1.0+ds-1_all.deb ... Unpacking node-unicode-match-property-value-ecmascript (2.1.0+ds-1) ... Selecting previously unselected package node-regexpu-core. Preparing to unpack .../257-node-regexpu-core_5.2.2-3_all.deb ... Unpacking node-regexpu-core (5.2.2-3) ... Selecting previously unselected package node-source-map-support. Preparing to unpack .../258-node-source-map-support_0.5.21+ds+~0.5.4-1_all.deb ... Unpacking node-source-map-support (0.5.21+ds+~0.5.4-1) ... Selecting previously unselected package node-to-fast-properties. Preparing to unpack .../259-node-to-fast-properties_3.0.1-3_all.deb ... Unpacking node-to-fast-properties (3.0.1-3) ... Selecting previously unselected package node-v8flags. Preparing to unpack .../260-node-v8flags_3.2.0+~3.1.1-1_all.deb ... Unpacking node-v8flags (3.2.0+~3.1.1-1) ... Selecting previously unselected package node-babel7. Preparing to unpack .../261-node-babel7_7.20.15+ds1+~cs214.269.168-2_all.deb ... Unpacking node-babel7 (7.20.15+ds1+~cs214.269.168-2) ... Selecting previously unselected package node-is-arrayish. Preparing to unpack .../262-node-is-arrayish_0.3.2-3_all.deb ... Unpacking node-is-arrayish (0.3.2-3) ... Selecting previously unselected package node-error-ex. Preparing to unpack .../263-node-error-ex_1.3.2-4_all.deb ... Unpacking node-error-ex (1.3.2-4) ... Selecting previously unselected package node-json-parse-better-errors. Preparing to unpack .../264-node-json-parse-better-errors_1.0.2+~cs3.3.1-2_all.deb ... Unpacking node-json-parse-better-errors (1.0.2+~cs3.3.1-2) ... Selecting previously unselected package node-parse-json. Preparing to unpack .../265-node-parse-json_5.2.0+~cs5.1.7-1_all.deb ... Unpacking node-parse-json (5.2.0+~cs5.1.7-1) ... Selecting previously unselected package node-hosted-git-info. Preparing to unpack .../266-node-hosted-git-info_6.1.1-2_all.deb ... Unpacking node-hosted-git-info (6.1.1-2) ... Selecting previously unselected package node-spdx-license-ids. Preparing to unpack .../267-node-spdx-license-ids_3.0.12-1_all.deb ... Unpacking node-spdx-license-ids (3.0.12-1) ... Selecting previously unselected package node-spdx-exceptions. Preparing to unpack .../268-node-spdx-exceptions_2.3.0-2_all.deb ... Unpacking node-spdx-exceptions (2.3.0-2) ... Selecting previously unselected package node-spdx-expression-parse. Preparing to unpack .../269-node-spdx-expression-parse_3.0.1+~3.0.1-1_all.deb ... Unpacking node-spdx-expression-parse (3.0.1+~3.0.1-1) ... Selecting previously unselected package node-spdx-correct. Preparing to unpack .../270-node-spdx-correct_3.1.1-2_all.deb ... Unpacking node-spdx-correct (3.1.1-2) ... Selecting previously unselected package node-validate-npm-package-license. Preparing to unpack .../271-node-validate-npm-package-license_3.0.4-2_all.deb ... Unpacking node-validate-npm-package-license (3.0.4-2) ... Selecting previously unselected package node-normalize-package-data. Preparing to unpack .../272-node-normalize-package-data_4.0.1+~2.4.1-1_all.deb ... Unpacking node-normalize-package-data (4.0.1+~2.4.1-1) ... Selecting previously unselected package node-read-pkg. Preparing to unpack .../273-node-read-pkg_5.2.0-2_all.deb ... Unpacking node-read-pkg (5.2.0-2) ... Selecting previously unselected package node-uuid. Preparing to unpack .../274-node-uuid_8.3.2+~8.3.3-3_all.deb ... Unpacking node-uuid (8.3.2+~8.3.3-3) ... Selecting previously unselected package node-isexe. Preparing to unpack .../275-node-isexe_2.0.0+~2.0.1-5_all.deb ... Unpacking node-isexe (2.0.0+~2.0.1-5) ... Selecting previously unselected package node-which. Preparing to unpack .../276-node-which_2.0.2+~cs1.3.2-3_all.deb ... Unpacking node-which (2.0.2+~cs1.3.2-3) ... Selecting previously unselected package node-is-typedarray. Preparing to unpack .../277-node-is-typedarray_1.0.0-4_all.deb ... Unpacking node-is-typedarray (1.0.0-4) ... Selecting previously unselected package node-typedarray-to-buffer. Preparing to unpack .../278-node-typedarray-to-buffer_4.0.0-2_all.deb ... Unpacking node-typedarray-to-buffer (4.0.0-2) ... Selecting previously unselected package node-write-file-atomic. Preparing to unpack .../279-node-write-file-atomic_4.0.2+~4.0.0-1_all.deb ... Unpacking node-write-file-atomic (4.0.2+~4.0.0-1) ... Selecting previously unselected package node-slice-ansi. Preparing to unpack .../280-node-slice-ansi_5.0.0+~cs9.0.0-5_all.deb ... Unpacking node-slice-ansi (5.0.0+~cs9.0.0-5) ... Selecting previously unselected package node-ansi-regex. Preparing to unpack .../281-node-ansi-regex_5.0.1-1_all.deb ... Unpacking node-ansi-regex (5.0.1-1) ... Selecting previously unselected package node-strip-ansi. Preparing to unpack .../282-node-strip-ansi_6.0.1-2_all.deb ... Unpacking node-strip-ansi (6.0.1-2) ... Selecting previously unselected package node-clone. Preparing to unpack .../283-node-clone_2.1.2-4_all.deb ... Unpacking node-clone (2.1.2-4) ... Selecting previously unselected package node-defaults. Preparing to unpack .../284-node-defaults_1.0.4+~1.0.3-1_all.deb ... Unpacking node-defaults (1.0.4+~1.0.3-1) ... Selecting previously unselected package node-wcwidth.js. Preparing to unpack .../285-node-wcwidth.js_1.0.2-2_all.deb ... Unpacking node-wcwidth.js (1.0.2-2) ... Selecting previously unselected package node-string-width. Preparing to unpack .../286-node-string-width_4.2.3+~cs13.2.3-1_all.deb ... Unpacking node-string-width (4.2.3+~cs13.2.3-1) ... Selecting previously unselected package node-wrap-ansi. Preparing to unpack .../287-node-wrap-ansi_8.0.1+~8.0.1-3_all.deb ... Unpacking node-wrap-ansi (8.0.1+~8.0.1-3) ... Selecting previously unselected package node-cliui. Preparing to unpack .../288-node-cliui_7.0.4+repack+~cs3.1.0-4_all.deb ... Unpacking node-cliui (7.0.4+repack+~cs3.1.0-4) ... Selecting previously unselected package node-get-caller-file. Preparing to unpack .../289-node-get-caller-file_2.0.5+~cs1.1.1-4_all.deb ... Unpacking node-get-caller-file (2.0.5+~cs1.1.1-4) ... Selecting previously unselected package node-require-directory. Preparing to unpack .../290-node-require-directory_2.1.1+~2.1.2-1_all.deb ... Unpacking node-require-directory (2.1.1+~2.1.2-1) ... Selecting previously unselected package node-y18n. Preparing to unpack .../291-node-y18n_5.0.8+~5.0.0-3_all.deb ... Unpacking node-y18n (5.0.8+~5.0.0-3) ... Selecting previously unselected package node-camelcase. Preparing to unpack .../292-node-camelcase_7.0.0-3_all.deb ... Unpacking node-camelcase (7.0.0-3) ... Selecting previously unselected package node-yargs-parser. Preparing to unpack .../293-node-yargs-parser_21.1.1+~21.0.0-4_all.deb ... Unpacking node-yargs-parser (21.1.1+~21.0.0-4) ... Selecting previously unselected package node-yargs. Preparing to unpack .../294-node-yargs_16.2.0+~16.0.4-7_all.deb ... Unpacking node-yargs (16.2.0+~16.0.4-7) ... Selecting previously unselected package node-istanbul. Preparing to unpack .../295-node-istanbul_0.4.5+repack10+~cs97.25.57-3_all.deb ... Unpacking node-istanbul (0.4.5+repack10+~cs97.25.57-3) ... Selecting previously unselected package node-through. Preparing to unpack .../296-node-through_2.3.8+~cs0.0.30-1_all.deb ... Unpacking node-through (2.3.8+~cs0.0.30-1) ... Selecting previously unselected package node-resumer. Preparing to unpack .../297-node-resumer_0.0.0-6_all.deb ... Unpacking node-resumer (0.0.0-6) ... Selecting previously unselected package node-tape. Preparing to unpack .../298-node-tape_5.6.1+~cs8.20.19-1_all.deb ... Unpacking node-tape (5.6.1+~cs8.20.19-1) ... Selecting previously unselected package node-deep-equal. Preparing to unpack .../299-node-deep-equal_2.1.0+~cs31.12.80-1_all.deb ... Unpacking node-deep-equal (2.1.0+~cs31.12.80-1) ... Selecting previously unselected package libjs-util. Preparing to unpack .../300-libjs-util_0.12.5+~1.0.10-1_all.deb ... Unpacking libjs-util (0.12.5+~1.0.10-1) ... Selecting previously unselected package libnotify4:i386. Preparing to unpack .../301-libnotify4_0.8.1-1_i386.deb ... Unpacking libnotify4:i386 (0.8.1-1) ... Selecting previously unselected package libnotify-bin. Preparing to unpack .../302-libnotify-bin_0.8.1-1_i386.deb ... Unpacking libnotify-bin (0.8.1-1) ... Selecting previously unselected package node-ansi-colors. Preparing to unpack .../303-node-ansi-colors_4.1.3-2_all.deb ... Unpacking node-ansi-colors (4.1.3-2) ... Selecting previously unselected package node-browser-stdout. Preparing to unpack .../304-node-browser-stdout_1.3.1-7_all.deb ... Unpacking node-browser-stdout (1.3.1-7) ... Selecting previously unselected package node-async-each. Preparing to unpack .../305-node-async-each_1.0.3-3_all.deb ... Unpacking node-async-each (1.0.3-3) ... Selecting previously unselected package node-binary-extensions. Preparing to unpack .../306-node-binary-extensions_2.2.0-2_all.deb ... Unpacking node-binary-extensions (2.2.0-2) ... Selecting previously unselected package node-is-binary-path. Preparing to unpack .../307-node-is-binary-path_2.1.0-5_all.deb ... Unpacking node-is-binary-path (2.1.0-5) ... Selecting previously unselected package node-path-is-absolute. Preparing to unpack .../308-node-path-is-absolute_2.0.0-2_all.deb ... Unpacking node-path-is-absolute (2.0.0-2) ... Selecting previously unselected package node-set-immediate-shim. Preparing to unpack .../309-node-set-immediate-shim_2.0.0-2_all.deb ... Unpacking node-set-immediate-shim (2.0.0-2) ... Selecting previously unselected package node-readdirp. Preparing to unpack .../310-node-readdirp_3.6.0-1_all.deb ... Unpacking node-readdirp (3.6.0-1) ... Selecting previously unselected package node-chokidar. Preparing to unpack .../311-node-chokidar_3.5.3-2_all.deb ... Unpacking node-chokidar (3.5.3-2) ... Selecting previously unselected package node-diff. Preparing to unpack .../312-node-diff_5.0.0~dfsg+~5.0.1-4_all.deb ... Unpacking node-diff (5.0.0~dfsg+~5.0.1-4) ... Selecting previously unselected package node-growl. Preparing to unpack .../313-node-growl_1.10.5-4_all.deb ... Unpacking node-growl (1.10.5-4) ... Selecting previously unselected package node-he. Preparing to unpack .../314-node-he_1.2.0-4_all.deb ... Unpacking node-he (1.2.0-4) ... Selecting previously unselected package node-ci-info. Preparing to unpack .../315-node-ci-info_3.6.1+~cs1.1.0-1_all.deb ... Unpacking node-ci-info (3.6.1+~cs1.1.0-1) ... Selecting previously unselected package node-isobject. Preparing to unpack .../316-node-isobject_4.0.0-2_all.deb ... Unpacking node-isobject (4.0.0-2) ... Selecting previously unselected package node-postcss. Preparing to unpack .../317-node-postcss_8.4.20+~cs8.0.23-1_all.deb ... Unpacking node-postcss (8.4.20+~cs8.0.23-1) ... Selecting previously unselected package node-randombytes. Preparing to unpack .../318-node-randombytes_2.1.0+~2.0.0-2_all.deb ... Unpacking node-randombytes (2.1.0+~2.0.0-2) ... Selecting previously unselected package node-serialize-javascript. Preparing to unpack .../319-node-serialize-javascript_6.0.0-2_all.deb ... Unpacking node-serialize-javascript (6.0.0-2) ... Selecting previously unselected package node-wide-align. Preparing to unpack .../320-node-wide-align_1.1.3-4_all.deb ... Unpacking node-wide-align (1.1.3-4) ... Selecting previously unselected package mocha. Preparing to unpack .../321-mocha_10.1.0+ds1+~cs29.3.1-1_all.deb ... Unpacking mocha (10.1.0+ds1+~cs29.3.1-1) ... Selecting previously unselected package node-abab. Preparing to unpack .../322-node-abab_2.0.6-1_all.deb ... Unpacking node-abab (2.0.6-1) ... Selecting previously unselected package node-agent-base. Preparing to unpack .../323-node-agent-base_6.0.2+~cs5.4.2-2_all.deb ... Unpacking node-agent-base (6.0.2+~cs5.4.2-2) ... Selecting previously unselected package node-ajv-keywords. Preparing to unpack .../324-node-ajv-keywords_3.5.2-2_all.deb ... Unpacking node-ajv-keywords (3.5.2-2) ... Selecting previously unselected package node-ansi-escapes. Preparing to unpack .../325-node-ansi-escapes_5.0.0+really.4.3.1-1_all.deb ... Unpacking node-ansi-escapes (5.0.0+really.4.3.1-1) ... Selecting previously unselected package node-array-from. Preparing to unpack .../326-node-array-from_2.1.1-3_all.deb ... Unpacking node-array-from (2.1.1-3) ... Selecting previously unselected package node-tslib. Preparing to unpack .../327-node-tslib_2.4.1-1_all.deb ... Unpacking node-tslib (2.4.1-1) ... Selecting previously unselected package node-ast-types. Preparing to unpack .../328-node-ast-types_0.15.2-3_all.deb ... Unpacking node-ast-types (0.15.2-3) ... Selecting previously unselected package node-asynckit. Preparing to unpack .../329-node-asynckit_0.4.0-5_all.deb ... Unpacking node-asynckit (0.4.0-5) ... Selecting previously unselected package node-schema-utils. Preparing to unpack .../330-node-schema-utils_3.1.1~ds-2_all.deb ... Unpacking node-schema-utils (3.1.1~ds-2) ... Selecting previously unselected package node-chrome-trace-event. Preparing to unpack .../331-node-chrome-trace-event_1.0.3-2_all.deb ... Unpacking node-chrome-trace-event (1.0.3-2) ... Selecting previously unselected package node-prr. Preparing to unpack .../332-node-prr_1.0.1-3_all.deb ... Unpacking node-prr (1.0.1-3) ... Selecting previously unselected package node-errno. Preparing to unpack .../333-node-errno_1.0.0-3_all.deb ... Unpacking node-errno (1.0.0-3) ... Selecting previously unselected package node-memory-fs. Preparing to unpack .../334-node-memory-fs_0.5.0+~0.3.3-2_all.deb ... Unpacking node-memory-fs (0.5.0+~0.3.3-2) ... Selecting previously unselected package node-tapable. Preparing to unpack .../335-node-tapable_2.2.1-2_all.deb ... Unpacking node-tapable (2.2.1-2) ... Selecting previously unselected package node-enhanced-resolve. Preparing to unpack .../336-node-enhanced-resolve_5.10.0-1_all.deb ... Unpacking node-enhanced-resolve (5.10.0-1) ... Selecting previously unselected package node-es-module-lexer. Preparing to unpack .../337-node-es-module-lexer_1.1.0+dfsg-2_all.deb ... Unpacking node-es-module-lexer (1.1.0+dfsg-2) ... Selecting previously unselected package node-events. Preparing to unpack .../338-node-events_3.3.0+~3.0.0-3_all.deb ... Unpacking node-events (3.3.0+~3.0.0-3) ... Selecting previously unselected package node-babel-plugin-lodash. Preparing to unpack .../339-node-babel-plugin-lodash_3.3.4+~cs2.0.1-6_all.deb ... Unpacking node-babel-plugin-lodash (3.3.4+~cs2.0.1-6) ... Selecting previously unselected package node-resolve-cwd. Preparing to unpack .../340-node-resolve-cwd_3.0.0-2_all.deb ... Unpacking node-resolve-cwd (3.0.0-2) ... Selecting previously unselected package node-jest-debbundle. Preparing to unpack .../341-node-jest-debbundle_29.3.1~ds1+~cs70.48.25-1_all.deb ... Unpacking node-jest-debbundle (29.3.1~ds1+~cs70.48.25-1) ... Selecting previously unselected package node-interpret. Preparing to unpack .../342-node-interpret_2.2.0-2_all.deb ... Unpacking node-interpret (2.2.0-2) ... Selecting previously unselected package node-merge-stream. Preparing to unpack .../343-node-merge-stream_2.0.0+~1.1.2-2_all.deb ... Unpacking node-merge-stream (2.0.0+~1.1.2-2) ... Selecting previously unselected package node-jest-worker. Preparing to unpack .../344-node-jest-worker_29.3.1~ds1+~cs70.48.25-1_all.deb ... Unpacking node-jest-worker (29.3.1~ds1+~cs70.48.25-1) ... Selecting previously unselected package node-loader-runner. Preparing to unpack .../345-node-loader-runner_4.3.0-1_all.deb ... Unpacking node-loader-runner (4.3.0-1) ... Selecting previously unselected package node-mime. Preparing to unpack .../346-node-mime_3.0.0+dfsg+~cs3.97.1-1_all.deb ... Unpacking node-mime (3.0.0+dfsg+~cs3.97.1-1) ... Selecting previously unselected package node-mime-types. Preparing to unpack .../347-node-mime-types_2.1.35-1_all.deb ... Unpacking node-mime-types (2.1.35-1) ... Selecting previously unselected package node-rechoir. Preparing to unpack .../348-node-rechoir_0.8.0+~0.6.1-2_all.deb ... Unpacking node-rechoir (0.8.0+~0.6.1-2) ... Selecting previously unselected package node-watchpack. Preparing to unpack .../349-node-watchpack_2.4.0+~cs2.8.1-1_all.deb ... Unpacking node-watchpack (2.4.0+~cs2.8.1-1) ... Selecting previously unselected package node-webassemblyjs. Preparing to unpack .../350-node-webassemblyjs_1.11.4+dfsg+~cs10.11.17-2_all.deb ... Unpacking node-webassemblyjs (1.11.4+dfsg+~cs10.11.17-2) ... Selecting previously unselected package node-source-list-map. Preparing to unpack .../351-node-source-list-map_2.0.1+dfsg-2_all.deb ... Unpacking node-source-list-map (2.0.1+dfsg-2) ... Selecting previously unselected package node-webpack-sources. Preparing to unpack .../352-node-webpack-sources_3.2.3+~3.2.0-2_all.deb ... Unpacking node-webpack-sources (3.2.3+~3.2.0-2) ... Selecting previously unselected package node-terser. Preparing to unpack .../353-node-terser_5.16.4-1_all.deb ... Unpacking node-terser (5.16.4-1) ... Selecting previously unselected package terser. Preparing to unpack .../354-terser_5.16.4-1_all.deb ... Unpacking terser (5.16.4-1) ... Selecting previously unselected package webpack. Preparing to unpack .../355-webpack_5.75.0+dfsg+~cs17.16.14-1_all.deb ... Unpacking webpack (5.75.0+dfsg+~cs17.16.14-1) ... Selecting previously unselected package node-babel-loader. Preparing to unpack .../356-node-babel-loader_9.1.0-3_all.deb ... Unpacking node-babel-loader (9.1.0-3) ... Selecting previously unselected package node-bl. Preparing to unpack .../357-node-bl_5.1.0-1_all.deb ... Unpacking node-bl (5.1.0-1) ... Selecting previously unselected package node-boolbase. Preparing to unpack .../358-node-boolbase_1.0.0+~1.0.0-1_all.deb ... Unpacking node-boolbase (1.0.0+~1.0.0-1) ... Selecting previously unselected package node-css-what. Preparing to unpack .../359-node-css-what_6.1.0-5_all.deb ... Unpacking node-css-what (6.1.0-5) ... Selecting previously unselected package node-entities. Preparing to unpack .../360-node-entities_4.4.0+dfsg-2_all.deb ... Unpacking node-entities (4.4.0+dfsg-2) ... Selecting previously unselected package node-domelementtype. Preparing to unpack .../361-node-domelementtype_2.3.0-1_all.deb ... Unpacking node-domelementtype (2.3.0-1) ... Selecting previously unselected package node-domhandler. Preparing to unpack .../362-node-domhandler_5.0.3-3_all.deb ... Unpacking node-domhandler (5.0.3-3) ... Selecting previously unselected package node-dom-serializer. Preparing to unpack .../363-node-dom-serializer_2.0.0-3_all.deb ... Unpacking node-dom-serializer (2.0.0-3) ... Selecting previously unselected package node-domutils. Preparing to unpack .../364-node-domutils_3.0.1-3_all.deb ... Unpacking node-domutils (3.0.1-3) ... Selecting previously unselected package node-nth-check. Preparing to unpack .../365-node-nth-check_2.0.1-2_all.deb ... Unpacking node-nth-check (2.0.1-2) ... Selecting previously unselected package node-css-select. Preparing to unpack .../366-node-css-select_5.1.0-3_all.deb ... Unpacking node-css-select (5.1.0-3) ... Selecting previously unselected package node-htmlparser2. Preparing to unpack .../367-node-htmlparser2_8.0.1-4_all.deb ... Unpacking node-htmlparser2 (8.0.1-4) ... Selecting previously unselected package node-cssom. Preparing to unpack .../368-node-cssom_0.4.4-3_all.deb ... Unpacking node-cssom (0.4.4-3) ... Selecting previously unselected package node-cssstyle. Preparing to unpack .../369-node-cssstyle_2.3.0-3_all.deb ... Unpacking node-cssstyle (2.3.0-3) ... Selecting previously unselected package node-delayed-stream. Preparing to unpack .../370-node-delayed-stream_1.0.0-5_all.deb ... Unpacking node-delayed-stream (1.0.0-5) ... Selecting previously unselected package node-combined-stream. Preparing to unpack .../371-node-combined-stream_1.0.8+~1.0.3-1_all.deb ... Unpacking node-combined-stream (1.0.8+~1.0.3-1) ... Selecting previously unselected package node-form-data. Preparing to unpack .../372-node-form-data_4.0.0-1_all.deb ... Unpacking node-form-data (4.0.0-1) ... Selecting previously unselected package node-https-proxy-agent. Preparing to unpack .../373-node-https-proxy-agent_5.0.1+~cs8.0.0-3_all.deb ... Unpacking node-https-proxy-agent (5.0.1+~cs8.0.0-3) ... Selecting previously unselected package node-iconv-lite. Preparing to unpack .../374-node-iconv-lite_0.6.3-3_all.deb ... Unpacking node-iconv-lite (0.6.3-3) ... Selecting previously unselected package node-parse5. Preparing to unpack .../375-node-parse5_7.1.2+dfsg-1_all.deb ... Unpacking node-parse5 (7.1.2+dfsg-1) ... Selecting previously unselected package node-psl. Preparing to unpack .../376-node-psl_1.8.0+ds-9_all.deb ... Unpacking node-psl (1.8.0+ds-9) ... Selecting previously unselected package node-universalify. Preparing to unpack .../377-node-universalify_2.0.0-3_all.deb ... Unpacking node-universalify (2.0.0-3) ... Selecting previously unselected package node-tough-cookie. Preparing to unpack .../378-node-tough-cookie_4.0.0-2_all.deb ... Unpacking node-tough-cookie (4.0.0-2) ... Selecting previously unselected package node-webidl-conversions. Preparing to unpack .../379-node-webidl-conversions_7.0.0~1.1.0+~cs15.1.20180823-2_all.deb ... Unpacking node-webidl-conversions (7.0.0~1.1.0+~cs15.1.20180823-2) ... Selecting previously unselected package node-mute-stream. Preparing to unpack .../380-node-mute-stream_0.0.8+~0.0.1-3_all.deb ... Unpacking node-mute-stream (0.0.8+~0.0.1-3) ... Selecting previously unselected package node-read. Preparing to unpack .../381-node-read_1.0.7-5_all.deb ... Unpacking node-read (1.0.7-5) ... Selecting previously unselected package node-ws. Preparing to unpack .../382-node-ws_8.11.0+~cs13.7.3-1_all.deb ... Unpacking node-ws (8.11.0+~cs13.7.3-1) ... Selecting previously unselected package node-jsdom. Preparing to unpack .../383-node-jsdom_20.0.3+~cs124.18.21-1_all.deb ... Unpacking node-jsdom (20.0.3+~cs124.18.21-1) ... Selecting previously unselected package node-parse5-htmlparser2-tree-adapter. Preparing to unpack .../384-node-parse5-htmlparser2-tree-adapter_7.1.2+dfsg-1_all.deb ... Unpacking node-parse5-htmlparser2-tree-adapter (7.1.2+dfsg-1) ... Selecting previously unselected package node-cheerio. Preparing to unpack .../385-node-cheerio_1.0.0~rc~12+~cs2.1.0-3_all.deb ... Unpacking node-cheerio (1.0.0~rc~12+~cs2.1.0-3) ... Selecting previously unselected package node-restore-cursor. Preparing to unpack .../386-node-restore-cursor_4.0.0-2_all.deb ... Unpacking node-restore-cursor (4.0.0-2) ... Selecting previously unselected package node-cli-cursor. Preparing to unpack .../387-node-cli-cursor_4.0.0-3_all.deb ... Unpacking node-cli-cursor (4.0.0-3) ... Selecting previously unselected package node-cli-spinners. Preparing to unpack .../388-node-cli-spinners_2.7.0-1_all.deb ... Unpacking node-cli-spinners (2.7.0-1) ... Selecting previously unselected package node-cli-width. Preparing to unpack .../389-node-cli-width_3.0.0-2_all.deb ... Unpacking node-cli-width (3.0.0-2) ... Selecting previously unselected package node-es6-symbol. Preparing to unpack .../390-node-es6-symbol_3.1.3+~cs3.11.0-2_all.deb ... Unpacking node-es6-symbol (3.1.3+~cs3.11.0-2) ... Selecting previously unselected package node-es6-iterator. Preparing to unpack .../391-node-es6-iterator_2.0.3-4_all.deb ... Unpacking node-es6-iterator (2.0.3-4) ... Selecting previously unselected package node-es5-ext. Preparing to unpack .../392-node-es5-ext_0.10.62+dfsg1+~1.1.0-2_all.deb ... Unpacking node-es5-ext (0.10.62+dfsg1+~1.1.0-2) ... Selecting previously unselected package node-d. Preparing to unpack .../393-node-d_1.0.1+~1.0.1-2_all.deb ... Unpacking node-d (1.0.1+~1.0.1-2) ... Selecting previously unselected package node-dateformat. Preparing to unpack .../394-node-dateformat_5.0.3-5_all.deb ... Unpacking node-dateformat (5.0.3-5) ... Selecting previously unselected package node-jake. Preparing to unpack .../395-node-jake_10.8.5+~1.0.4-3_all.deb ... Unpacking node-jake (10.8.5+~1.0.4-3) ... Selecting previously unselected package node-ejs. Preparing to unpack .../396-node-ejs_3.1.8+~3.1.1-2_all.deb ... Unpacking node-ejs (3.1.8+~3.1.1-2) ... Selecting previously unselected package node-eslint-plugin-es. Preparing to unpack .../397-node-eslint-plugin-es_4.1.0~ds1-5_all.deb ... Unpacking node-eslint-plugin-es (4.1.0~ds1-5) ... Selecting previously unselected package node-eslint-plugin-eslint-plugin. Preparing to unpack .../398-node-eslint-plugin-eslint-plugin_2.3.0+~0.3.0-4_all.deb ... Unpacking node-eslint-plugin-eslint-plugin (2.3.0+~0.3.0-4) ... Selecting previously unselected package node-eslint-plugin-node. Preparing to unpack .../399-node-eslint-plugin-node_11.1.0~ds-5_all.deb ... Unpacking node-eslint-plugin-node (11.1.0~ds-5) ... Selecting previously unselected package node-event-emitter. Preparing to unpack .../400-node-event-emitter_0.3.5-4_all.deb ... Unpacking node-event-emitter (0.3.5-4) ... Selecting previously unselected package node-jschardet. Preparing to unpack .../401-node-jschardet_3.0.0+dfsg+~1.4.0-1_all.deb ... Unpacking node-jschardet (3.0.0+dfsg+~1.4.0-1) ... Selecting previously unselected package node-tmp. Preparing to unpack .../402-node-tmp_0.2.2+dfsg+~0.2.3-1_all.deb ... Unpacking node-tmp (0.2.2+dfsg+~0.2.3-1) ... Selecting previously unselected package node-external-editor. Preparing to unpack .../403-node-external-editor_3.1.0+dfsg-2_all.deb ... Unpacking node-external-editor (3.1.0+dfsg-2) ... Selecting previously unselected package node-run-async. Preparing to unpack .../404-node-run-async_2.4.1-2_all.deb ... Unpacking node-run-async (2.4.1-2) ... Selecting previously unselected package node-inquirer. Preparing to unpack .../405-node-inquirer_8.2.5+~cs26.8.16-1_all.deb ... Unpacking node-inquirer (8.2.5+~cs26.8.16-1) ... Selecting previously unselected package node-is-object. Preparing to unpack .../406-node-is-object_1.0.2+~1.0.2-2_all.deb ... Unpacking node-is-object (1.0.2+~1.0.2-2) ... Selecting previously unselected package node-merge-descriptors. Preparing to unpack .../407-node-merge-descriptors_1.0.1-3_all.deb ... Unpacking node-merge-descriptors (1.0.1-3) ... Selecting previously unselected package node-path-to-regexp. Preparing to unpack .../408-node-path-to-regexp_6.2.1-1_all.deb ... Unpacking node-path-to-regexp (6.2.1-1) ... Selecting previously unselected package node-private. Preparing to unpack .../409-node-private_0.1.8-7_all.deb ... Unpacking node-private (0.1.8-7) ... Selecting previously unselected package node-proxyquire. Preparing to unpack .../410-node-proxyquire_2.1.3+~1.0.1+~1.0.2-12_all.deb ... Unpacking node-proxyquire (2.1.3+~1.0.1+~1.0.2-12) ... Selecting previously unselected package node-recast. Preparing to unpack .../411-node-recast_0.21.1-1_all.deb ... Unpacking node-recast (0.21.1-1) ... Selecting previously unselected package node-shelljs. Preparing to unpack .../412-node-shelljs_0.8.5+~cs0.8.10-1_all.deb ... Unpacking node-shelljs (0.8.5+~cs0.8.10-1) ... Selecting previously unselected package node-sinon. Preparing to unpack .../413-node-sinon_14.0.2+ds+~cs74.13.25-1_all.deb ... Unpacking node-sinon (14.0.2+ds+~cs74.13.25-1) ... Selecting previously unselected package node-temp. Preparing to unpack .../414-node-temp_0.9.4+~0.9.1-1_all.deb ... Unpacking node-temp (0.9.4+~0.9.1-1) ... Selecting previously unselected package node-text-table. Preparing to unpack .../415-node-text-table_0.2.0-4_all.deb ... Unpacking node-text-table (0.2.0-4) ... Setting up node-ansi-colors (4.1.3-2) ... Setting up node-delayed-stream (1.0.0-5) ... Setting up libpipeline1:i386 (1.5.7-1) ... Setting up node-fs.realpath (1.0.0-3) ... Setting up node-ampproject-remapping (2.2.0+~cs5.15.37-1) ... Setting up node-diff (5.0.0~dfsg+~5.0.1-4) ... Setting up node-abbrev (1.1.1+~1.1.2-1) ... Setting up node-domelementtype (2.3.0-1) ... Setting up node-path-is-inside (1.0.2+~1.0.0-1) ... Setting up libjs-sprintf-js (1.1.2+ds1+~1.1.2-1) ... Setting up libicu72:i386 (72.1-3) ... Setting up node-pify (5.0.0+~cs5.0.1-1) ... Setting up node-p-limit (4.0.0+~cs4.0.0-5) ... Setting up node-yallist (4.0.0+~4.0.1-1) ... Setting up liblerc4:i386 (4.0.0+ds-2) ... Setting up libjs-inherits (2.0.4-6) ... Setting up bsdextrautils (2.38.1-5+b1) ... Setting up node-is-windows (1.0.2+~cs1.0.0-1) ... Setting up node-ansi-regex (5.0.1-1) ... Setting up node-loader-runner (4.3.0-1) ... Setting up node-object-inspect (1.12.2+~cs1.8.1-1) ... Setting up node-slash (4.0.0-3) ... Setting up node-util-deprecate (1.0.2-3) ... Setting up libmagic-mgc (1:5.44-3) ... Setting up node-fs-readdir-recursive (1.1.0+~1.1.0-1) ... Setting up node-v8flags (3.2.0+~3.1.1-1) ... Setting up node-get-caller-file (2.0.5+~cs1.1.1-4) ... Setting up node-arrify (2.0.1-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up node-eslint-visitor-keys (3.3.0+~1.0.0-1) ... Setting up libglib2.0-0:i386 (2.74.6-1) ... No schema files found: doing nothing. Setting up node-caniuse-lite (1.0.30001436+dfsg+~1.0.1-1) ... Setting up node-isobject (4.0.0-2) ... Setting up node-merge-descriptors (1.0.1-3) ... Setting up node-isexe (2.0.0+~2.0.1-5) ... Setting up libdebhelper-perl (13.11.4) ... Setting up libbrotli1:i386 (1.0.9-2+b6) ... Setting up node-core-js-pure (3.26.1-1) ... Setting up node-es-module-lexer (1.1.0+dfsg-2) ... Setting up node-get-func-name (2.0.0+dfsg-2) ... Setting up node-path-exists (5.0.0-8) ... Setting up node-cli-spinners (2.7.0-1) ... Setting up libgdk-pixbuf2.0-common (2.42.10+dfsg-1) ... Setting up node-unicode-match-property-value-ecmascript (2.1.0+ds-1) ... Setting up node-escape-string-regexp (4.0.0-2) ... Setting up node-through (2.3.8+~cs0.0.30-1) ... Setting up libjs-source-map (0.7.0++dfsg2+really.0.6.1-12) ... Setting up node-p-locate (6.0.0-12) ... Setting up node-tslib (2.4.1-1) ... Setting up libnghttp2-14:i386 (1.52.0-1) ... Setting up libmagic1:i386 (1:5.44-3) ... Setting up node-strip-bom (4.0.0-2) ... Setting up libdeflate0:i386 (1.14-1) ... Setting up node-ci-info (3.6.1+~cs1.1.0-1) ... Setting up gettext-base (0.21-12) ... Setting up m4 (1.4.19-3) ... Setting up node-color-name (1.1.4+~1.1.1-2) ... Setting up node-chrome-trace-event (1.0.3-2) ... Setting up node-electron-to-chromium (1.4.284-1) ... Setting up node-cjs-module-lexer (1.2.2+dfsg-5) ... Setting up node-source-list-map (2.0.1+dfsg-2) ... Setting up node-camelcase (7.0.0-3) ... Setting up node-resumer (0.0.0-6) ... Setting up libc-ares2:i386 (1.18.1-2) ... Setting up file (1:5.44-3) ... Setting up node-uuid (8.3.2+~8.3.3-3) ... Setting up node-run-async (2.4.1-2) ... Setting up node-eslint-plugin-eslint-plugin (2.3.0+~0.3.0-4) ... Setting up node-terser (5.16.4-1) ... Setting up libjbig0:i386 (2.1-6.1) ... Setting up node-abab (2.0.6-1) ... Setting up sse2-support (15) ... Setting up node-domhandler (5.0.3-3) ... Setting up node-path-type (4.0.0-3) ... Setting up node-indent-string (4.0.0-2) ... Setting up node-type-detect (4.0.8-4) ... Setting up libcmark-gfm0.29.0.gfm.6:i386 (0.29.0.gfm.6-6) ... Setting up node-typedarray (0.0.7-1) ... Setting up node-function-bind (1.1.1+repacked+~1.0.3-2) ... Setting up node-clone (2.1.2-4) ... Setting up node-p-map (4.0.0+~3.1.0+~3.0.1-1) ... Setting up node-has-flag (4.0.0-3) ... Setting up node-estraverse (5.3.0+ds+~5.1.1-1) ... Setting up node-regjsgen (0.7.1+ds-1) ... Setting up node-lodash-packages (4.17.21+dfsg+~cs8.31.198.20210220-9) ... Setting up libjs-psl (1.8.0+ds-9) ... Setting up node-json-schema-traverse (1.0.0-3) ... Setting up node-inherits (2.0.4-6) ... Setting up node-path-is-absolute (2.0.0-2) ... Setting up node-locate-path (7.1.1-2) ... Setting up node-universalify (2.0.0-3) ... Setting up node-pathval (1.1.1+~1.1.0-1) ... Setting up node-deep-eql (4.1.3-1) ... Setting up autotools-dev (20220109.1) ... Setting up node-safe-buffer (5.2.1+~cs2.1.2-3) ... Setting up libuv1:i386 (1.44.2-1) ... Setting up node-json-parse-better-errors (1.0.2+~cs3.3.1-2) ... Setting up node-assertion-error (1.1.0-2) ... Setting up libjpeg62-turbo:i386 (1:2.1.5-2) ... Setting up node-unicode-canonical-property-names-ecmascript (2.0.0-2) ... Setting up node-sprintf-js (1.1.2+ds1+~1.1.2-1) ... Setting up node-flatted (3.2.7~ds-1) ... Setting up node-y18n (5.0.8+~5.0.0-3) ... Setting up node-fast-deep-equal (3.1.3-3) ... Setting up node-shebang-regex (3.0.0-2) ... Setting up node-resolve-from (5.0.0+~3.1.0+~3.3.0+~2.0.0-1) ... Setting up node-balanced-match (2.0.0-1) ... Setting up node-convert-source-map (1.9.0+~1.5.2-1) ... Setting up node-brace-expansion (2.0.1-2) ... Setting up node-is-object (1.0.2+~1.0.2-2) ... Setting up node-is-stream (3.0.0-4) ... Setting up node-spdx-exceptions (2.3.0-2) ... Setting up node-css-what (6.1.0-5) ... Setting up node-js-tokens (8.0.0-2) ... Setting up node-core-js (3.26.1-1) ... Setting up node-interpret (2.2.0-2) ... Setting up node-prr (1.0.1-3) ... Setting up libpng16-16:i386 (1.6.39-2) ... Setting up node-repeat-string (1.6.1+repack-1) ... Setting up node-globals (13.18.0-1) ... Setting up node-deep-is (0.1.4-1) ... Setting up autopoint (0.21-12) ... Setting up node-signal-exit (3.0.7+~3.0.1-1) ... Setting up node-randombytes (2.1.0+~2.0.0-2) ... Setting up node-source-map (0.7.0++dfsg2+really.0.6.1-12) ... Setting up node-wrappy (1.0.2-3) ... Setting up node-text-table (0.2.0-4) ... Setting up node-asynckit (0.4.0-5) ... Setting up autoconf (2.71-3) ... Setting up node-require-directory (2.1.1+~2.1.2-1) ... Setting up node-quick-lru (6.1.1-4) ... Setting up node-regenerator-runtime (0.15.1+~0.10.8-1) ... Setting up libwebp7:i386 (1.2.4-0.1) ... Setting up node-to-fast-properties (3.0.1-3) ... Setting up node-defaults (1.0.4+~1.0.3-1) ... Setting up node-entities (4.4.0+dfsg-2) ... Setting up node-mute-stream (0.0.8+~0.0.1-3) ... Setting up node-memfs (3.4.12+~cs1.0.3-1) ... Setting up node-commander (9.4.1-1) ... Setting up libjs-typedarray-to-buffer (4.0.0-2) ... Setting up node-dateformat (5.0.3-5) ... Setting up sensible-utils (0.0.17+nmu1) ... Setting up node-graceful-fs (4.2.10-1) ... Setting up node-merge-stream (2.0.0+~1.1.2-2) ... Setting up node-is-path-cwd (2.2.0-2) ... Setting up libtiff6:i386 (4.5.0-5) ... Setting up node-jsonify (0.0.1-1) ... Setting up libuchardet0:i386 (0.0.7-1) ... Setting up node-json-stable-stringify (1.0.2+~cs5.2.34-1) ... Setting up node-fast-levenshtein (2.0.6+ds-3) ... Setting up libjs-regenerate (1.4.2-3) ... Setting up node-unicode-property-aliases-ecmascript (2.1.0+ds-1) ... Setting up node-binary-extensions (2.2.0-2) ... Setting up node-is-plain-object (5.0.0-7) ... Setting up node-eslint-utils (3.0.0-3) ... Setting up node-path-dirname (1.0.2-2) ... Setting up libsub-override-perl (0.09-4) ... Setting up node-spdx-license-ids (3.0.12-1) ... Setting up node-string-decoder (1.3.0-6) ... Setting up node-esutils (2.0.3+~2.0.0-1) ... Setting up node-commondir (1.0.1+~1.0.0-1) ... Setting up libjs-prettify (2015.12.04+dfsg-1.1) ... Setting up libjs-events (3.3.0+~3.0.0-3) ... Setting up node-core-util-is (1.0.3-1) ... Setting up node-json-schema (0.4.0+~7.0.11-1) ... Setting up node-prelude-ls (1.2.1+dfsg-3) ... Setting up node-minimatch (5.1.1+~5.1.2-1) ... Setting up libjs-async (0.8.0-6) ... Setting up node-cli-width (3.0.0-2) ... Setting up node-imurmurhash (0.1.4+dfsg+~0.1.1-2) ... Setting up node-xtend (4.0.2-3) ... Setting up node-set-immediate-shim (2.0.0-2) ... Setting up node-foreground-child (2.0.0-5) ... Setting up node-ast-types (0.15.2-3) ... Setting up node-wordwrap (1.0.0-4) ... Setting up node-read (1.0.7-5) ... Setting up node-regexpp (3.2.0-4) ... Setting up node-is-arrayish (0.3.2-3) ... Setting up libelf1:i386 (0.188-2.1) ... Setting up node-esquery (1.4.2~ds-1) ... Setting up node-npm-run-path (5.1.0+~4.0.0-7) ... Setting up libxml2:i386 (2.9.14+dfsg-1.1+b3) ... Setting up node-path-to-regexp (6.2.1-1) ... Setting up node-is-buffer (2.0.5-2) ... Setting up node-color-convert (2.0.1+~cs2.0.0-2) ... Setting up node-array-from (2.1.1-3) ... Setting up libonig5:i386 (6.9.8-1) ... Setting up liblocale-gettext-perl (1.07-5) ... Setting up node-webidl-conversions (7.0.0~1.1.0+~cs15.1.20180823-2) ... Setting up node-async-each (1.0.3-3) ... Setting up node-isarray (2.0.5-4) ... Setting up node-is-plain-obj (3.0.0-2) ... Setting up node-is-extglob (2.1.1-5) ... Setting up node-tapable (2.2.1-2) ... Setting up node-shebang-command (2.0.0-1) ... Setting up libjs-is-typedarray (1.0.0-4) ... Setting up node-babel-plugin-add-module-exports (1.0.4+dfsg1~cs5.8.0-4) ... Setting up node-process-nextick-args (2.0.1-3) ... Setting up node-busboy (1.6.0+~cs2.6.0-2) ... Setting up node-jschardet (3.0.0+dfsg+~1.4.0-1) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up node-readable-stream (3.6.0+~cs3.0.0-4) ... Setting up node-lru-cache (7.14.1-1) ... Setting up node-eslint-plugin-es (4.1.0~ds1-5) ... Setting up gettext (0.21-12) ... Setting up node-supports-color (8.1.1+~8.1.1-1) ... Setting up node-error-ex (1.3.2-4) ... Setting up libcmark-gfm-extensions0.29.0.gfm.6:i386 (0.29.0.gfm.6-6) ... Setting up node-once (1.4.0-7) ... Setting up node-webpack-sources (3.2.3+~3.2.0-2) ... Setting up node-n3 (1.16.3+~1.2.3+~1.10.4-1) ... Setting up libtool (2.4.7-5) ... Setting up libjq1:i386 (1.6-2.1) ... Setting up node-parse5 (7.1.2+dfsg-1) ... Setting up node-serialize-javascript (6.0.0-2) ... Setting up node-resolve (1.22.1+~cs5.31.10-1) ... Setting up node-find-up (6.3.0-7) ... Setting up cmark-gfm (0.29.0.gfm.6-6) ... Setting up node-kind-of (6.0.3+dfsg-2) ... Setting up node-is-binary-path (2.1.0-5) ... Setting up node-parse5-htmlparser2-tree-adapter (7.1.2+dfsg-1) ... Setting up node-events (3.3.0+~3.0.0-3) ... Setting up node-minimist (1.2.7+~cs5.3.2-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up help2man (1.49.3) ... Setting up node-wcwidth.js (1.0.2-2) ... Setting up dh-autoreconf (20) ... Setting up node-resolve-cwd (3.0.0-2) ... Setting up node-babel7-runtime (7.20.15+ds1+~cs214.269.168-2) ... Setting up node-iconv-lite (0.6.3-3) ... Setting up node-type-check (0.4.0+dfsg-3) ... Setting up node-dom-serializer (2.0.0-3) ... Setting up node-rechoir (0.8.0+~0.6.1-2) ... Setting up node-ansi-styles (6.2.1-2) ... Setting up node-pkg-dir (5.0.0-2) ... Setting up shared-mime-info (2.2-1) ... Setting up node-restore-cursor (4.0.0-2) ... Setting up node-async (0.8.0-6) ... Setting up node-optimist (0.6.1+~0.0.30-2) ... Setting up node-spdx-expression-parse (3.0.1+~3.0.1-1) ... Setting up node-concat-stream (2.0.0+~2.0.0-2) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up node-is-typedarray (1.0.0-4) ... Setting up node-undici (5.15.0+dfsg1+~cs20.10.9.3-1) ... Setting up dwz (0.15-1) ... Setting up groff-base (1.22.4-10) ... Setting up node-inflight (1.0.6-2) ... Setting up jq (1.6-2.1) ... Setting up node-hosted-git-info (6.1.1-2) ... Setting up libgdk-pixbuf-2.0-0:i386 (2.42.10+dfsg-1+b1) ... Setting up node-slice-ansi (5.0.0+~cs9.0.0-5) ... Setting up node-bl (5.1.0-1) ... Setting up node-cli-cursor (4.0.0-3) ... Setting up node-domutils (3.0.1-3) ... Setting up node-regenerator-transform (0.15.1+~0.10.8-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.11.2-2) ... Not building database; man-db/auto-update is not 'true'. Setting up node-levn (0.4.1+dfsg-2) ... Setting up node-spdx-correct (3.1.1-2) ... Setting up node-glob (8.0.3+~cs8.4.15-1) ... Setting up libnotify4:i386 (0.8.1-1) ... Setting up node-typedarray-to-buffer (4.0.0-2) ... Setting up libnotify-bin (0.8.1-1) ... Setting up node-htmlparser2 (8.0.1-4) ... Setting up node-validate-npm-package-license (3.0.4-2) ... Setting up node-optionator (0.9.1+dfsg+~cs1.2.3-1) ... Setting up node-write-file-atomic (4.0.2+~4.0.0-1) ... Setting up node-growl (1.10.5-4) ... Setting up debhelper (13.11.4) ... Setting up node-acorn (8.8.1+ds+~cs25.17.7-2) ... Setting up node-espree (9.4.1~dfsg-1) ... Setting up node-define-properties (1.1.4+~1.1.3-1) ... Setting up libnode108:i386 (18.13.0+dfsg1-1) ... Setting up nodejs (18.13.0+dfsg1-1) ... update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode Setting up node-argparse (2.0.1-2) ... Setting up node-he (1.2.0-4) ... Setting up terser (5.16.4-1) ... Setting up node-mime (3.0.0+dfsg+~cs3.97.1-1) ... Setting up node-source-map-support (0.5.21+ds+~0.5.4-1) ... Setting up node-combined-stream (1.0.8+~1.0.3-1) ... Setting up node-unicode-match-property-ecmascript (2.0.0-2) ... Setting up node-defined (1.0.1+~1.0.0-1) ... Setting up node-mime-types (2.1.35-1) ... Setting up node-ansi-escapes (5.0.0+really.4.3.1-1) ... Setting up node-cssom (0.4.4-3) ... Setting up node-form-data (4.0.0-1) ... Setting up node-strip-ansi (6.0.1-2) ... Setting up node-write (2.0.0~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5) ... Setting up node-ignore (5.2.1-1) ... Setting up node-chalk (5.2.0-1) ... Setting up node-which (2.0.2+~cs1.3.2-3) ... Setting up node-punycode (2.1.1-6) ... Setting up node-esprima (4.0.1+ds+~4.0.3-2) ... Setting up node-is-path-inside (3.0.3-2) ... Setting up node-neo-async (2.6.2+~cs3.0.0-2) ... Setting up node-mkdirp (1.0.4+~1.0.2-4) ... Setting up node-boolbase (1.0.0+~1.0.0-1) ... Setting up node-uri-js (4.4.0+dfsg-8) ... Setting up node-es6-error (4.1.1-5) ... Setting up node-archy (1.0.0-6) ... Setting up node-js-yaml (4.1.0+dfsg+~4.0.5-7) ... Setting up node-nopt (5.0.0-4) ... Setting up node-lodash (4.17.21+dfsg+~cs8.31.198.20210220-9) ... Setting up node-progress (2.0.3-2) ... Setting up node-json5 (2.2.3+dfsg-1) ... Setting up node-debbundle-es-to-primitive (1.2.1+~cs9.7.25-2) ... Setting up node-ms (2.1.3+~cs0.7.31-3) ... Setting up node-rimraf (3.0.2-2) ... Setting up node-string-width (4.2.3+~cs13.2.3-1) ... Setting up node-regenerate (1.4.2-3) ... Setting up node-semver (7.3.5+~7.3.9-2) ... Setting up node-picocolors (1.0.0-4) ... Setting up node-es-abstract (1.20.4+~cs26.27.47-1) ... Setting up node-proxyquire (2.1.3+~1.0.1+~1.0.2-12) ... Setting up node-private (0.1.8-7) ... Setting up node-es6-symbol (3.1.3+~cs3.11.0-2) ... Setting up handlebars (3:4.7.7+~4.1.0-1) ... Setting up node-object-assign (4.1.1-7) ... Setting up node-is-glob (4.0.3-2) ... Setting up node-v8-compile-cache (2.3.0-3) ... Setting up node-flat-cache (3.0.4~6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5) ... Setting up node-is-number (7.0.0-4) ... Setting up node-babel-plugin-polyfill-corejs2 (0.3.3~0~20220913+ds1-1) ... Setting up node-for-in (1.0.2-4) ... Setting up node-webassemblyjs (1.11.4+dfsg+~cs10.11.17-2) ... Setting up node-jake (10.8.5+~1.0.4-3) ... Setting up node-strip-json-comments (4.0.0-4) ... Setting up node-check-error (1.0.2-4) ... Setting up node-browser-stdout (1.3.1-7) ... Setting up node-psl (1.8.0+ds-9) ... Setting up node-es6-iterator (2.0.3-4) ... Setting up node-is-extendable (1.0.1-3) ... Setting up node-tape (5.6.1+~cs8.20.19-1) ... Setting up node-es5-ext (0.10.62+dfsg1+~1.1.0-2) ... Setting up node-doctrine (3.0.0-4) ... Setting up chai (4.3.7~ds1+~cs9.7.21-1) ... Setting up node-recast (0.21.1-1) ... Setting up node-ajv (6.12.6-3) ... Setting up node-tmp (0.2.2+dfsg+~0.2.3-1) ... Setting up node-jsesc (3.0.2+~3.0.1-1) ... Setting up node-regjsparser (0.9.1+ds-2) ... Setting up node-errno (1.0.0-3) ... Setting up node-decamelize (4.0.0-2) ... Setting up node-normalize-path (3.0.0+~3.0.0-1) ... Setting up node-functional-red-black-tree (1.0.1+20181105-7) ... Setting up node-debug (4.3.4+~cs4.1.7-1) ... Setting up node-agent-base (6.0.2+~cs5.4.2-2) ... Setting up node-shelljs (0.8.5+~cs0.8.10-1) ... Setting up node-browserslist (4.21.4+~cs6.1.17-2) ... Setting up node-yargs-parser (21.1.1+~21.0.0-4) ... Setting up node-make-dir (3.1.0-3) ... Setting up node-temp (0.9.4+~0.9.1-1) ... Setting up node-cssstyle (2.3.0-3) ... Setting up node-esrecurse (4.3.0-2) ... Setting up node-file-entry-cache (6.0.0+~3.0.4+~2.0.0+~1.0.0+~2.0.1-5) ... Setting up node-wrap-ansi (8.0.1+~8.0.1-3) ... Setting up node-normalize-package-data (4.0.1+~2.4.1-1) ... Setting up node-for-own (1.0.0-3) ... Setting up node-eslint-scope (7.1.1+~3.7.4-1) ... Setting up node-escodegen (2.0.0+dfsg+~0.0.7-2) ... Setting up node-memory-fs (0.5.0+~0.3.3-2) ... Setting up node-babel-helper-define-polyfill-provider (0.3.3~0~20220913+ds1-1) ... Setting up node-nth-check (2.0.1-2) ... Setting up node-regenerate-unicode-properties (10.1.0+ds-1) ... Setting up node-glob-parent (6.0.2+~5.1.1-2) ... Setting up node-tough-cookie (4.0.0-2) ... Setting up node-enhanced-resolve (5.10.0-1) ... Setting up node-postcss (8.4.20+~cs8.0.23-1) ... Setting up node-wide-align (1.1.3-4) ... Setting up node-anymatch (3.1.3+~cs4.6.1-2) ... Setting up node-eslint-plugin-node (11.1.0~ds-5) ... Setting up node-https-proxy-agent (5.0.1+~cs8.0.0-3) ... Setting up node-cliui (7.0.4+repack+~cs3.1.0-4) ... Setting up node-deep-equal (2.1.0+~cs31.12.80-1) ... Setting up node-ejs (3.1.8+~3.1.1-2) ... Setting up node-external-editor (3.1.0+dfsg-2) ... Setting up node-regexpu-core (5.2.2-3) ... Setting up node-yargs (16.2.0+~16.0.4-7) ... Setting up node-to-regex-range (5.0.1-4) ... Setting up node-ajv-keywords (3.5.2-2) ... Setting up node-d (1.0.1+~1.0.1-2) ... Setting up node-core-js-compat (3.26.1-1) ... Setting up node-event-emitter (0.3.5-4) ... Setting up node-clone-deep (4.0.1+~cs7.0.2-1) ... Setting up eslint (6.4.0~dfsg+~6.1.9-7) ... Setting up libjs-util (0.12.5+~1.0.10-1) ... Setting up node-css-select (5.1.0-3) ... Setting up node-babel-plugin-polyfill-regenerator (0.4.1~0~20220913+ds1-1) ... Setting up node-readdirp (3.6.0-1) ... Setting up node-ws (8.11.0+~cs13.7.3-1) ... Setting up node-schema-utils (3.1.1~ds-2) ... Setting up node-jsdom (20.0.3+~cs124.18.21-1) ... Setting up node-cheerio (1.0.0~rc~12+~cs2.1.0-3) ... Setting up node-jest-worker (29.3.1~ds1+~cs70.48.25-1) ... Setting up node-babel-plugin-polyfill-corejs3 (0.6.0~0~20220913+ds1-1) ... Setting up node-fill-range (7.0.1+~7.0.0-1) ... Setting up node-util (0.12.5+~1.0.10-1) ... Setting up node-assert (2.0.0+~cs3.9.8-2) ... Setting up node-braces (3.0.2+~3.0.1-1) ... Setting up node-sinon (14.0.2+ds+~cs74.13.25-1) ... Setting up node-chokidar (3.5.3-2) ... Setting up node-watchpack (2.4.0+~cs2.8.1-1) ... Setting up node-micromatch (4.0.5+~4.0.2-1) ... Setting up node-globby (13.1.3+~cs16.25.40-1) ... Setting up node-del (7.0.0-5) ... Setting up mocha (10.1.0+ds1+~cs29.3.1-1) ... Setting up node-find-cache-dir (3.3.2+~3.2.1-1) ... Setting up node-inquirer (8.2.5+~cs26.8.16-1) ... Setting up node-babel7 (7.20.15+ds1+~cs214.269.168-2) ... update-alternatives: using /usr/bin/babeljs-7 to provide /usr/bin/babeljs (babeljs) in auto mode update-alternatives: using /usr/bin/babeljs-7-external-helpers to provide /usr/bin/babeljs-external-helpers (babeljs-external-helpers) in auto mode update-alternatives: using /usr/bin/babeljs-7-node to provide /usr/bin/babeljs-node (babeljs-node) in auto mode update-alternatives: using /usr/bin/babeljs-7-parser to provide /usr/bin/babeljs-parser (babeljs-parser) in auto mode Setting up node-babel-plugin-lodash (3.3.4+~cs2.0.1-6) ... Setting up node-jest-debbundle (29.3.1~ds1+~cs70.48.25-1) ... Setting up node-parse-json (5.2.0+~cs5.1.7-1) ... Setting up node-read-pkg (5.2.0-2) ... Setting up node-istanbul (0.4.5+repack10+~cs97.25.57-3) ... Setting up webpack (5.75.0+dfsg+~cs17.16.14-1) ... Setting up node-babel-loader (9.1.0-3) ... Processing triggers for libc-bin (2.36-8) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... usrmerge is already the newest version (35). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: user script /srv/workspace/pbuilder/90582/tmp/hooks/A99_set_merged_usr starting Re-configuring usrmerge... removed '/etc/unsupported-skip-usrmerge-conversion' The system has been successfully converted. I: user script /srv/workspace/pbuilder/90582/tmp/hooks/A99_set_merged_usr finished hostname: Name or service not known I: Running cd /build/eslint-6.4.0~dfsg+~6.1.9/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../eslint_6.4.0~dfsg+~6.1.9-7_source.changes dpkg-buildpackage: info: source package eslint dpkg-buildpackage: info: source version 6.4.0~dfsg+~6.1.9-7 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Jonas Smedegaard dpkg-source --before-build . dpkg-buildpackage: info: host architecture i386 debian/rules clean dh clean debian/rules override_dh_clean make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_clean -- README.html README.txt CHANGELOG.html CHANGELOG.txt make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' debian/rules binary dh binary dh_update_autotools_config dh_autoreconf debian/rules override_dh_auto_build make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' cmark-gfm README.md > README.html cmark-gfm --to plaintext README.md > README.txt cmark-gfm CHANGELOG.md > CHANGELOG.html cmark-gfm --to plaintext CHANGELOG.md > CHANGELOG.txt mkdir --parents debian-man/ cp --force bin/eslint.js debian-man/eslint NODE_PATH=lib help2man --name AST-based --name pattern --name checker --name and --name linting --name utility --name for --name JavaScript --no-info --output debian-man/eslint.1 debian-man/eslint || { NODE_PATH=lib debian-man/eslint --help; false; } dh override_dh_auto_build make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' debian/rules override_dh_auto_test make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' ln --force --symbolic --no-target-directory internal-rules \ tools/eslint-plugin-internal-rules NODE_PATH=packages:tools bin/eslint.js --format tap --report-unused-disable-directives \ \ lib conf bin tests/bin tests/lib tests/tools TAP version 13 1..700 ok 1 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/api.js ok 2 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/cascading-config-array-factory.js ok 3 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/cli-engine.js ok 4 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/config-array/config-array.js ok 5 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/config-array/config-dependency.js ok 6 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/config-array/extracted-config.js ok 7 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/config-array/index.js ok 8 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/config-array/override-tester.js ok 9 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/config-array-factory.js ok 10 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/file-enumerator.js ok 11 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/checkstyle.js ok 12 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/compact.js ok 13 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/html.js ok 14 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/jslint-xml.js ok 15 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/json-with-metadata.js ok 16 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/json.js ok 17 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/junit.js ok 18 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/stylish.js ok 19 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/tap.js ok 20 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/unix.js ok 21 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/formatters/visualstudio.js ok 22 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/hash.js ok 23 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/ignored-paths.js ok 24 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/index.js ok 25 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/lint-result-cache.js ok 26 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/load-rules.js ok 27 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli-engine/xml-escape.js ok 28 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/cli.js ok 29 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/init/autoconfig.js ok 30 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/init/config-file.js ok 31 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/init/config-initializer.js ok 32 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/init/config-rule.js ok 33 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/init/npm-utils.js ok 34 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/init/source-code-utils.js ok 35 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/apply-disable-directives.js ok 36 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/code-path-analyzer.js ok 37 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/code-path-segment.js ok 38 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/code-path-state.js ok 39 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/code-path.js ok 40 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/debug-helpers.js ok 41 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/fork-context.js ok 42 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/code-path-analysis/id-generator.js ok 43 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/config-comment-parser.js ok 44 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/index.js ok 45 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/interpolate.js ok 46 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/linter.js ok 47 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/node-event-generator.js ok 48 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/report-translator.js ok 49 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/rule-fixer.js ok 50 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/rules.js ok 51 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/safe-emitter.js ok 52 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/source-code-fixer.js ok 53 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/timing.js ok 54 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/options.js ok 55 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rule-tester/index.js ok 56 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rule-tester/rule-tester.js ok 57 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/accessor-pairs.js ok 58 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/array-bracket-newline.js ok 59 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/array-bracket-spacing.js ok 60 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/array-callback-return.js ok 61 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/array-element-newline.js ok 62 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/arrow-body-style.js ok 63 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/arrow-parens.js ok 64 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/arrow-spacing.js ok 65 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/block-scoped-var.js ok 66 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/block-spacing.js ok 67 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/brace-style.js ok 68 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/callback-return.js ok 69 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/camelcase.js ok 70 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/capitalized-comments.js ok 71 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/class-methods-use-this.js ok 72 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/comma-dangle.js ok 73 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/comma-spacing.js ok 74 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/comma-style.js ok 75 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/complexity.js ok 76 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/computed-property-spacing.js ok 77 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/consistent-return.js ok 78 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/consistent-this.js ok 79 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/constructor-super.js ok 80 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/curly.js ok 81 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/default-case.js ok 82 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/default-param-last.js ok 83 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/dot-location.js ok 84 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/dot-notation.js ok 85 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/eol-last.js ok 86 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/eqeqeq.js ok 87 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/for-direction.js ok 88 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/func-call-spacing.js ok 89 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/func-name-matching.js ok 90 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/func-names.js ok 91 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/func-style.js ok 92 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/function-call-argument-newline.js ok 93 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/function-paren-newline.js ok 94 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/generator-star-spacing.js ok 95 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/getter-return.js ok 96 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/global-require.js ok 97 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/guard-for-in.js ok 98 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/handle-callback-err.js ok 99 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/id-blacklist.js ok 100 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/id-length.js ok 101 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/id-match.js ok 102 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/implicit-arrow-linebreak.js ok 103 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/indent-legacy.js ok 104 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/indent.js ok 105 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/index.js ok 106 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/init-declarations.js ok 107 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/jsx-quotes.js ok 108 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/key-spacing.js ok 109 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/keyword-spacing.js ok 110 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/line-comment-position.js ok 111 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/linebreak-style.js ok 112 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/lines-around-comment.js ok 113 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/lines-around-directive.js ok 114 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/lines-between-class-members.js ok 115 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-classes-per-file.js ok 116 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-depth.js ok 117 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-len.js ok 118 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-lines-per-function.js ok 119 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-lines.js ok 120 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-nested-callbacks.js ok 121 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-params.js ok 122 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-statements-per-line.js ok 123 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/max-statements.js ok 124 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/multiline-comment-style.js ok 125 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/multiline-ternary.js ok 126 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/new-cap.js ok 127 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/new-parens.js ok 128 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/newline-after-var.js ok 129 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/newline-before-return.js ok 130 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/newline-per-chained-call.js ok 131 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-alert.js ok 132 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-array-constructor.js ok 133 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-async-promise-executor.js ok 134 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-await-in-loop.js ok 135 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-bitwise.js ok 136 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-buffer-constructor.js ok 137 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-caller.js ok 138 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-case-declarations.js ok 139 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-catch-shadow.js ok 140 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-class-assign.js ok 141 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-compare-neg-zero.js ok 142 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-cond-assign.js ok 143 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-confusing-arrow.js ok 144 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-console.js ok 145 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-const-assign.js ok 146 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-constant-condition.js ok 147 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-continue.js ok 148 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-control-regex.js ok 149 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-debugger.js ok 150 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-delete-var.js ok 151 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-div-regex.js ok 152 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-dupe-args.js ok 153 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-dupe-class-members.js ok 154 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-dupe-keys.js ok 155 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-duplicate-case.js ok 156 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-duplicate-imports.js ok 157 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-else-return.js ok 158 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-empty-character-class.js ok 159 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-empty-function.js ok 160 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-empty-pattern.js ok 161 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-empty.js ok 162 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-eq-null.js ok 163 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-eval.js ok 164 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-ex-assign.js ok 165 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-extend-native.js ok 166 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-extra-bind.js ok 167 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-extra-boolean-cast.js ok 168 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-extra-label.js ok 169 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-extra-parens.js ok 170 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-extra-semi.js ok 171 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-fallthrough.js ok 172 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-floating-decimal.js ok 173 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-func-assign.js ok 174 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-global-assign.js ok 175 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-implicit-coercion.js ok 176 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-implicit-globals.js ok 177 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-implied-eval.js ok 178 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-import-assign.js ok 179 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-inline-comments.js ok 180 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-inner-declarations.js ok 181 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-invalid-regexp.js ok 182 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-invalid-this.js ok 183 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-irregular-whitespace.js ok 184 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-iterator.js ok 185 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-label-var.js ok 186 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-labels.js ok 187 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-lone-blocks.js ok 188 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-lonely-if.js ok 189 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-loop-func.js ok 190 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-magic-numbers.js ok 191 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-misleading-character-class.js ok 192 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-mixed-operators.js ok 193 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-mixed-requires.js ok 194 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-mixed-spaces-and-tabs.js ok 195 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-multi-assign.js ok 196 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-multi-spaces.js ok 197 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-multi-str.js ok 198 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-multiple-empty-lines.js ok 199 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-native-reassign.js ok 200 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-negated-condition.js ok 201 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-negated-in-lhs.js ok 202 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-nested-ternary.js ok 203 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-new-func.js ok 204 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-new-object.js ok 205 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-new-require.js ok 206 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-new-symbol.js ok 207 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-new-wrappers.js ok 208 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-new.js ok 209 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-obj-calls.js ok 210 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-octal-escape.js ok 211 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-octal.js ok 212 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-param-reassign.js ok 213 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-path-concat.js ok 214 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-plusplus.js ok 215 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-process-env.js ok 216 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-process-exit.js ok 217 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-proto.js ok 218 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-prototype-builtins.js ok 219 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-redeclare.js ok 220 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-regex-spaces.js ok 221 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-restricted-globals.js ok 222 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-restricted-imports.js ok 223 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-restricted-modules.js ok 224 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-restricted-properties.js ok 225 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-restricted-syntax.js ok 226 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-return-assign.js ok 227 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-return-await.js ok 228 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-script-url.js ok 229 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-self-assign.js ok 230 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-self-compare.js ok 231 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-sequences.js ok 232 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-shadow-restricted-names.js ok 233 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-shadow.js ok 234 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-spaced-func.js ok 235 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-sparse-arrays.js ok 236 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-sync.js ok 237 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-tabs.js ok 238 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-template-curly-in-string.js ok 239 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-ternary.js ok 240 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-this-before-super.js ok 241 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-throw-literal.js ok 242 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-trailing-spaces.js ok 243 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-undef-init.js ok 244 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-undef.js ok 245 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-undefined.js ok 246 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-underscore-dangle.js ok 247 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unexpected-multiline.js ok 248 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unmodified-loop-condition.js ok 249 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unneeded-ternary.js ok 250 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unreachable.js ok 251 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unsafe-finally.js ok 252 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unsafe-negation.js ok 253 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unused-expressions.js ok 254 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unused-labels.js ok 255 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-unused-vars.js ok 256 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-use-before-define.js ok 257 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-call.js ok 258 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-catch.js ok 259 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-computed-key.js ok 260 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-concat.js ok 261 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-constructor.js ok 262 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-escape.js ok 263 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-rename.js ok 264 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-useless-return.js ok 265 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-var.js ok 266 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-void.js ok 267 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-warning-comments.js ok 268 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-whitespace-before-property.js ok 269 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/no-with.js ok 270 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/nonblock-statement-body-position.js ok 271 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/object-curly-newline.js ok 272 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/object-curly-spacing.js ok 273 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/object-property-newline.js ok 274 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/object-shorthand.js ok 275 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/one-var-declaration-per-line.js ok 276 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/one-var.js ok 277 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/operator-assignment.js ok 278 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/operator-linebreak.js ok 279 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/padded-blocks.js ok 280 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/padding-line-between-statements.js ok 281 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-arrow-callback.js ok 282 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-const.js ok 283 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-destructuring.js ok 284 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-named-capture-group.js ok 285 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-numeric-literals.js ok 286 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-object-spread.js ok 287 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-promise-reject-errors.js ok 288 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-reflect.js ok 289 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-regex-literals.js ok 290 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-rest-params.js ok 291 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-spread.js ok 292 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/prefer-template.js ok 293 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/quote-props.js ok 294 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/quotes.js ok 295 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/radix.js ok 296 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/require-atomic-updates.js ok 297 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/require-await.js ok 298 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/require-jsdoc.js ok 299 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/require-unicode-regexp.js ok 300 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/require-yield.js ok 301 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/rest-spread-spacing.js ok 302 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/semi-spacing.js ok 303 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/semi-style.js ok 304 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/semi.js ok 305 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/sort-imports.js ok 306 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/sort-keys.js ok 307 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/sort-vars.js ok 308 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/space-before-blocks.js ok 309 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/space-before-function-paren.js ok 310 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/space-in-parens.js ok 311 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/space-infix-ops.js ok 312 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/space-unary-ops.js ok 313 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/spaced-comment.js ok 314 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/strict.js ok 315 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/switch-colon-spacing.js ok 316 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/symbol-description.js ok 317 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/template-curly-spacing.js ok 318 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/template-tag-spacing.js ok 319 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/unicode-bom.js ok 320 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/use-isnan.js ok 321 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/ast-utils.js ok 322 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/fix-tracker.js ok 323 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/keywords.js ok 324 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/lazy-loading-rule-map.js ok 325 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/unicode/index.js ok 326 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/unicode/is-combining-character.js ok 327 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/unicode/is-emoji-modifier.js ok 328 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/unicode/is-regional-indicator-symbol.js ok 329 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/utils/unicode/is-surrogate-pair.js ok 330 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/valid-jsdoc.js ok 331 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/valid-typeof.js ok 332 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/vars-on-top.js ok 333 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/wrap-iife.js ok 334 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/wrap-regex.js ok 335 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/yield-star-spacing.js ok 336 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/rules/yoda.js ok 337 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/ajv.js ok 338 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/ast-utils.js ok 339 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/config-ops.js ok 340 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/config-validator.js ok 341 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/logging.js ok 342 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/naming.js ok 343 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/relative-module-resolver.js ok 344 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/traverser.js ok 345 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/shared/types.js ok 346 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/index.js ok 347 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/source-code.js ok 348 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/backward-token-comment-cursor.js ok 349 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/backward-token-cursor.js ok 350 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/cursor.js ok 351 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/cursors.js ok 352 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/decorative-cursor.js ok 353 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/filter-cursor.js ok 354 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/forward-token-comment-cursor.js ok 355 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/forward-token-cursor.js ok 356 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/index.js ok 357 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/limit-cursor.js ok 358 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/padded-token-cursor.js ok 359 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/skip-cursor.js ok 360 - /build/eslint-6.4.0~dfsg+~6.1.9/lib/source-code/token-store/utils.js ok 361 - /build/eslint-6.4.0~dfsg+~6.1.9/conf/config-schema.js ok 362 - /build/eslint-6.4.0~dfsg+~6.1.9/conf/default-cli-options.js ok 363 - /build/eslint-6.4.0~dfsg+~6.1.9/conf/environments.js ok 364 - /build/eslint-6.4.0~dfsg+~6.1.9/conf/eslint-all.js ok 365 - /build/eslint-6.4.0~dfsg+~6.1.9/conf/eslint-recommended.js ok 366 - /build/eslint-6.4.0~dfsg+~6.1.9/bin/eslint.js ok 367 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/bin/eslint.js ok 368 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/_utils.js ok 369 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/api.js ok 370 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/_utils.js ok 371 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/cascading-config-array-factory.js ok 372 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/cli-engine.js ok 373 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js ok 374 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-dependency.js ok 375 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/extracted-config.js ok 376 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/override-tester.js ok 377 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array-factory.js ok 378 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/file-enumerator.js ok 379 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/checkstyle.js ok 380 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/compact.js ok 381 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/html.js ok 382 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/jslint-xml.js ok 383 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/json-with-metadata.js ok 384 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/json.js ok 385 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/junit.js ok 386 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/stylish.js ok 387 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/tap.js ok 388 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/unix.js ok 389 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/formatters/visualstudio.js ok 390 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/ignored-paths.js ok 391 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/lint-result-cache.js ok 392 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/load-rules.js ok 393 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli.js ok 394 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/init/autoconfig.js ok 395 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/init/config-file.js ok 396 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/init/config-initializer.js ok 397 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/init/config-rule.js ok 398 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/init/npm-utils.js ok 399 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/init/source-code-utils.js ok 400 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/apply-disable-directives.js ok 401 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/code-path-analysis/code-path-analyzer.js ok 402 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/code-path-analysis/code-path.js ok 403 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/config-comment-parser.js ok 404 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/interpolate.js ok 405 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/linter.js ok 406 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/node-event-generator.js ok 407 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/report-translator.js ok 408 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/rule-fixer.js ok 409 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/rules.js ok 410 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/safe-emitter.js ok 411 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/linter/source-code-fixer.js ok 412 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/options.js ok 413 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rule-tester/no-test-runners.js ok 414 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rule-tester/rule-tester.js ok 415 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/_set-default-parser.js ok 416 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/accessor-pairs.js ok 417 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/array-bracket-newline.js ok 418 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/array-bracket-spacing.js ok 419 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/array-callback-return.js ok 420 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/array-element-newline.js ok 421 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/arrow-body-style.js ok 422 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/arrow-parens.js ok 423 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/arrow-spacing.js ok 424 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/block-scoped-var.js ok 425 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/block-spacing.js ok 426 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/brace-style.js ok 427 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/callback-return.js ok 428 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/camelcase.js ok 429 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/capitalized-comments.js ok 430 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/class-methods-use-this.js ok 431 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/comma-dangle.js ok 432 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/comma-spacing.js ok 433 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/comma-style.js ok 434 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/complexity.js ok 435 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/computed-property-spacing.js ok 436 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/consistent-return.js ok 437 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/consistent-this.js ok 438 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/constructor-super.js ok 439 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/curly.js ok 440 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/default-case.js ok 441 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/default-param-last.js ok 442 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/dot-location.js ok 443 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/dot-notation.js ok 444 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/eol-last.js ok 445 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/eqeqeq.js ok 446 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/for-direction.js ok 447 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/func-call-spacing.js ok 448 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/func-name-matching.js ok 449 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/func-names.js ok 450 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/func-style.js ok 451 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/function-call-argument-newline.js ok 452 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/function-paren-newline.js ok 453 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/generator-star-spacing.js ok 454 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/getter-return.js ok 455 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/global-require.js ok 456 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/guard-for-in.js ok 457 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/handle-callback-err.js ok 458 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/id-blacklist.js ok 459 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/id-length.js ok 460 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/id-match.js ok 461 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/implicit-arrow-linebreak.js ok 462 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/indent-legacy.js ok 463 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/indent.js ok 464 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/init-declarations.js ok 465 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/jsx-quotes.js ok 466 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/key-spacing.js ok 467 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/keyword-spacing.js ok 468 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/line-comment-position.js ok 469 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/linebreak-style.js ok 470 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/lines-around-comment.js ok 471 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/lines-around-directive.js ok 472 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/lines-between-class-members.js ok 473 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-classes-per-file.js ok 474 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-depth.js ok 475 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-len.js ok 476 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-lines-per-function.js ok 477 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-lines.js ok 478 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-nested-callbacks.js ok 479 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-params.js ok 480 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-statements-per-line.js ok 481 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/max-statements.js ok 482 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/multiline-comment-style.js ok 483 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/multiline-ternary.js ok 484 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/new-cap.js ok 485 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/new-parens.js ok 486 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/newline-after-var.js ok 487 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/newline-before-return.js ok 488 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/newline-per-chained-call.js ok 489 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-alert.js ok 490 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-array-constructor.js ok 491 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-async-promise-executor.js ok 492 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-await-in-loop.js ok 493 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-bitwise.js ok 494 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-buffer-constructor.js ok 495 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-caller.js ok 496 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-case-declarations.js ok 497 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-catch-shadow.js ok 498 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-class-assign.js ok 499 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-compare-neg-zero.js ok 500 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-cond-assign.js ok 501 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-confusing-arrow.js ok 502 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-console.js ok 503 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-const-assign.js ok 504 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-constant-condition.js ok 505 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-continue.js ok 506 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-control-regex.js ok 507 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-debugger.js ok 508 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-delete-var.js ok 509 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-div-regex.js ok 510 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-dupe-args.js ok 511 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-dupe-class-members.js ok 512 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-dupe-keys.js ok 513 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-duplicate-case.js ok 514 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-duplicate-imports.js ok 515 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-else-return.js ok 516 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-empty-character-class.js ok 517 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-empty-function.js ok 518 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-empty-pattern.js ok 519 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-empty.js ok 520 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-eq-null.js ok 521 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-eval.js ok 522 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-ex-assign.js ok 523 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-extend-native.js ok 524 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-extra-bind.js ok 525 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-extra-boolean-cast.js ok 526 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-extra-label.js ok 527 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-extra-parens.js ok 528 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-extra-semi.js ok 529 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-fallthrough.js ok 530 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-floating-decimal.js ok 531 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-func-assign.js ok 532 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-global-assign.js ok 533 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-implicit-coercion.js ok 534 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-implicit-globals.js ok 535 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-implied-eval.js ok 536 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-import-assign.js ok 537 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-inline-comments.js ok 538 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-inner-declarations.js ok 539 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-invalid-regexp.js ok 540 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-invalid-this.js ok 541 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-irregular-whitespace.js ok 542 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-iterator.js ok 543 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-label-var.js ok 544 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-labels.js ok 545 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-lone-blocks.js ok 546 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-lonely-if.js ok 547 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-loop-func.js ok 548 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-magic-numbers.js ok 549 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-misleading-character-class.js ok 550 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-mixed-operators.js ok 551 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-mixed-requires.js ok 552 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-mixed-spaces-and-tabs.js ok 553 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-multi-assign.js ok 554 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-multi-spaces.js ok 555 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-multi-str.js ok 556 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-multiple-empty-lines.js ok 557 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-native-reassign.js ok 558 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-negated-condition.js ok 559 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-negated-in-lhs.js ok 560 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-nested-ternary.js ok 561 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-new-func.js ok 562 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-new-object.js ok 563 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-new-require.js ok 564 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-new-symbol.js ok 565 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-new-wrappers.js ok 566 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-new.js ok 567 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-obj-calls.js ok 568 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-octal-escape.js ok 569 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-octal.js ok 570 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-param-reassign.js ok 571 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-path-concat.js ok 572 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-plusplus.js ok 573 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-process-env.js ok 574 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-process-exit.js ok 575 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-proto.js ok 576 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-prototype-builtins.js ok 577 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-redeclare.js ok 578 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-regex-spaces.js ok 579 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-restricted-globals.js ok 580 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-restricted-imports.js ok 581 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-restricted-modules.js ok 582 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-restricted-properties.js ok 583 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-restricted-syntax.js ok 584 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-return-assign.js ok 585 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-return-await.js ok 586 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-script-url.js ok 587 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-self-assign.js ok 588 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-self-compare.js ok 589 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-sequences.js ok 590 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-shadow-restricted-names.js ok 591 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-shadow.js ok 592 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-spaced-func.js ok 593 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-sparse-arrays.js ok 594 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-sync.js ok 595 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-tabs.js ok 596 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-template-curly-in-string.js ok 597 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-ternary.js ok 598 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-this-before-super.js ok 599 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-throw-literal.js ok 600 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-trailing-spaces.js ok 601 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-undef-init.js ok 602 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-undef.js ok 603 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-undefined.js ok 604 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-underscore-dangle.js ok 605 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unexpected-multiline.js ok 606 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unmodified-loop-condition.js ok 607 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unneeded-ternary.js ok 608 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unreachable.js ok 609 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unsafe-finally.js ok 610 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unsafe-negation.js ok 611 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unused-expressions.js ok 612 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unused-labels.js ok 613 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-unused-vars.js ok 614 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-use-before-define.js ok 615 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-call.js ok 616 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-catch.js ok 617 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-computed-key.js ok 618 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-concat.js ok 619 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-constructor.js ok 620 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-escape.js ok 621 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-rename.js ok 622 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-useless-return.js ok 623 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-var.js ok 624 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-void.js ok 625 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-warning-comments.js ok 626 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-whitespace-before-property.js ok 627 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/no-with.js ok 628 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/nonblock-statement-body-position.js ok 629 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/object-curly-newline.js ok 630 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/object-curly-spacing.js ok 631 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/object-property-newline.js ok 632 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/object-shorthand.js ok 633 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/one-var-declaration-per-line.js ok 634 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/one-var.js ok 635 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/operator-assignment.js ok 636 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/operator-linebreak.js ok 637 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/padded-blocks.js ok 638 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/padding-line-between-statements.js ok 639 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-arrow-callback.js ok 640 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-const.js ok 641 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-destructuring.js ok 642 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-named-capture-group.js ok 643 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-numeric-literals.js ok 644 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-object-spread.js ok 645 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-promise-reject-errors.js ok 646 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-reflect.js ok 647 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-regex-literals.js ok 648 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-rest-params.js ok 649 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-spread.js ok 650 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/prefer-template.js ok 651 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/quote-props.js ok 652 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/quotes.js ok 653 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/radix.js ok 654 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/require-atomic-updates.js ok 655 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/require-await.js ok 656 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/require-jsdoc.js ok 657 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/require-unicode-regexp.js ok 658 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/require-yield.js ok 659 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/rest-spread-spacing.js ok 660 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/semi-spacing.js ok 661 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/semi-style.js ok 662 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/semi.js ok 663 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/sort-imports.js ok 664 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/sort-keys.js ok 665 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/sort-vars.js ok 666 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/space-before-blocks.js ok 667 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/space-before-function-paren.js ok 668 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/space-in-parens.js ok 669 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/space-infix-ops.js ok 670 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/space-unary-ops.js ok 671 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/spaced-comment.js ok 672 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/strict.js ok 673 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/switch-colon-spacing.js ok 674 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/symbol-description.js ok 675 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/template-curly-spacing.js ok 676 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/template-tag-spacing.js ok 677 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/unicode-bom.js ok 678 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/use-isnan.js ok 679 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/utils/ast-utils.js ok 680 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/utils/fix-tracker.js ok 681 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/valid-jsdoc.js ok 682 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/valid-typeof.js ok 683 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/vars-on-top.js ok 684 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/wrap-iife.js ok 685 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/wrap-regex.js ok 686 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/yield-star-spacing.js ok 687 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/rules/yoda.js ok 688 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/shared/config-ops.js ok 689 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/shared/config-validator.js ok 690 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/shared/naming.js ok 691 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/shared/traverser.js ok 692 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/source-code/source-code.js ok 693 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/source-code/token-store.js ok 694 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/code-sample-minimizer.js ok 695 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/eslint-fuzzer.js ok 696 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/internal-rules/consistent-docs-description.js ok 697 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/internal-rules/consistent-docs-url.js ok 698 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/internal-rules/consistent-meta-messages.js ok 699 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/internal-rules/multiline-comment-style.js ok 700 - /build/eslint-6.4.0~dfsg+~6.1.9/tests/tools/internal-rules/no-invalid-meta.js NODE_PATH=packages:tools mocha --no-timeout --reporter tap \ --exclude tests/tools/eslint-fuzzer.js --exclude tests/bin/eslint.js --exclude tests/lib/cli.js --exclude tests/lib/cli-engine/cli-engine.js --exclude tests/lib/cli-engine/file-enumerator.js --exclude tests/lib/cli-engine/ignored-paths.js --exclude tests/lib/init/npm-utils.js --exclude tests/lib/init/source-code-utils.js --exclude tests/lib/linter/linter.js --exclude tests/lib/linter/node-event-generator.js --exclude tests/lib/rules/camelcase.js --exclude tests/lib/rules/id-length.js --exclude tests/lib/rules/id-match.js --exclude tests/lib/rules/require-await.js \ 'tests/{bin,lib,tools}/**/*.js' ok 1 api should have RuleTester exposed ok 2 api should have CLIEngine exposed ok 3 api should have linter exposed ok 4 api should have SourceCode exposed ok 5 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' should retrieve the config '.eslintrc.json' if 'lib/one.js' was given. ok 6 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' should retrieve the merged config of '.eslintrc.json' and 'lib/nested/.eslintrc.yml' if 'lib/nested/one.js' was given. ok 7 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' should retrieve the config '.eslintrc.json' if 'lib/non-exist.js' was given. ok 8 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should create config object when using baseConfig with extends ok 9 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return the project config when called in current working directory ok 10 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should not retain configs from previous directories when called multiple times ok 11 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should throw error when a configuration file doesn't exist ok 12 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should throw error when a configuration file is not require-able ok 13 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should cache config when the same directory is passed twice ok 14 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should load the config file when there are JS-style comments in the text ok 15 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should load the config file when a YAML file is used ok 16 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should contain the correct value for parser when a custom parser is specified ok 17 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should correctly merge environment settings ok 18 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return a blank config when using no .eslintrc ok 19 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return a blank config when baseConfig is set to false and no .eslintrc ok 20 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return an empty config when not using .eslintrc ok 21 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return a modified config when baseConfig is set to an object and no .eslintrc ok 22 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return a modified config without plugin rules enabled when baseConfig is set to an object with plugin and no .eslintrc ok 23 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge configs when local .eslintrc overrides parent .eslintrc ok 24 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge configs when local .eslintrc overrides parent and grandparent .eslintrc ok 25 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should not return or traverse configurations in parents of config with root:true ok 26 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should return project config when called with a relative path from a subdir ok 27 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge command line config when config file adds to local .eslintrc ok 28 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge command line config when config file overrides local .eslintrc ok 29 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge command line config when config file adds to local and parent .eslintrc ok 30 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge command line config when config file overrides local and parent .eslintrc ok 31 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge command line config and rule when rule and config file overrides local .eslintrc ok 32 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge command line plugin with local .eslintrc ok 33 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should merge multiple different config file formats ok 34 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should load user config globals ok 35 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should not load disabled environments ok 36 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should gracefully handle empty files ok 37 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should include references to where an `extends` configuration was loaded from ok 38 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files should make the last element in an array take the highest precedence ok 39 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with env in a child configuration file should not overwrite parserOptions of the parent with env of the child ok 40 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files personal config file within home directory should load the personal config if no local config was found ok 41 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files personal config file within home directory should ignore the personal config if a local config was found ok 42 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files personal config file within home directory should ignore the personal config if config is passed through cli ok 43 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files personal config file within home directory should still load the project config if the current working directory is the same as the home folder ok 44 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files when no local or personal config is found should throw an error if no local config and no personal config was found ok 45 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files when no local or personal config is found should throw an error if no local config was found and ~/package.json contains no eslintConfig section ok 46 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files when no local or personal config is found should not throw an error if no local config and no personal config was found but useEslintrc is false ok 47 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files when no local or personal config is found should not throw an error if no local config and no personal config was found but rules are specified ok 48 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files when no local or personal config is found should not throw an error if no local config and no personal config was found but baseConfig is specified ok 49 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should merge override config when the pattern matches the file name ok 50 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should merge override config when the pattern matches the file path relative to the config file ok 51 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should not merge override config when the pattern matches the absolute file path ok 52 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should not merge override config when the pattern traverses up the directory tree ok 53 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should merge all local configs (override and non-override) before non-local configs ok 54 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should apply overrides in parent .eslintrc over non-override rules in child .eslintrc ok 55 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should apply overrides if all glob patterns match ok 56 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should apply overrides even if some glob patterns do not match ok 57 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should not apply overrides if any excluded glob patterns match ok 58 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should apply overrides if all excluded glob patterns fail to match ok 59 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files with overrides should cascade (node:97310) [ESLINT_LEGACY_ECMAFEATURES] DeprecationWarning: The 'ecmaFeatures' config file property is deprecated, and has no effect. (found in "ecma-features/.eslintrc.yml") (Use `node --trace-deprecation ...` to show where the warning was created) ok 60 CascadingConfigArrayFactory 'getConfigArrayForFile(filePath)' method should retrieve the proper configuration. with 'tests/fixtures/config-hierarchy' files deprecation warnings should emit a deprecation warning if 'ecmaFeatures' is given. ok 61 CascadingConfigArrayFactory 'clearCache()' method should clear cache. with a '.eslintrc.js' file should use cached instance. ok 62 CascadingConfigArrayFactory 'clearCache()' method should clear cache. with a '.eslintrc.js' file should not use cached instance if 'clearCache()' method is called after first config is retrieved ok 63 CascadingConfigArrayFactory 'clearCache()' method should clear cache. with a '.eslintrc.js' file should have a loading error in CLI config. ok 64 CascadingConfigArrayFactory 'clearCache()' method should clear cache. with a '.eslintrc.js' file should not have a loading error in CLI config after adding 'test' plugin to the additional plugin pool then calling 'clearCache()'. ok 65 ConfigArrayFactory 'create(configData, options)' method should normalize the config data. should return an empty config array if 'configData' is null. ok 66 ConfigArrayFactory 'create(configData, options)' method should normalize the config data. should throw an error if the config data had invalid properties, ok 67 ConfigArrayFactory 'create(configData, options)' method should normalize the config data. should call '_normalizeConfigData(configData, options)' with given arguments except 'options.parent'. ok 68 ConfigArrayFactory 'create(configData, options)' method should normalize the config data. should return a config array that contains the yielded elements from '_normalizeConfigData(configData, options)'. ok 69 ConfigArrayFactory 'create(configData, options)' method should normalize the config data. should concatenate the elements of `options.parent` and the yielded elements from '_normalizeConfigData(configData, options)'. ok 70 ConfigArrayFactory 'create(configData, options)' method should normalize the config data. should not concatenate the elements of `options.parent` if the yielded elements from '_normalizeConfigData(configData, options)' has 'root:true'. ok 71 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should throw an error if 'filePath' is null. ok 72 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should throw an error if 'filePath' doesn't exist. ok 73 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should throw an error if 'filePath' was 'package.json' and it doesn't have 'eslintConfig' field. ok 74 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should throw an error if the config data had invalid properties, ok 75 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'js/.eslintrc.js' then return a config array what contains that file content. ok 76 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'json/.eslintrc.json' then return a config array what contains that file content. ok 77 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'legacy-json/.eslintrc' then return a config array what contains that file content. ok 78 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'legacy-yml/.eslintrc' then return a config array what contains that file content. ok 79 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'package-json/package.json' then return a config array what contains that file content. ok 80 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'yml/.eslintrc.yml' then return a config array what contains that file content. ok 81 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should load 'yaml/.eslintrc.yaml' then return a config array what contains that file content. ok 82 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should call '_normalizeConfigData(configData, options)' with the loaded config data and given options except 'options.parent'. ok 83 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should return a config array that contains the yielded elements from '_normalizeConfigData(configData, options)'. ok 84 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should concatenate the elements of `options.parent` and the yielded elements from '_normalizeConfigData(configData, options)'. ok 85 ConfigArrayFactory 'loadFile(filePath, options)' method should load a config file. should not concatenate the elements of `options.parent` if the yielded elements from '_normalizeConfigData(configData, options)' has 'root:true'. ok 86 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should throw an error if 'directoryPath' is null. ok 87 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should return an empty config array if the config file of 'directoryPath' doesn't exist. ok 88 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should return an empty config array if the config file of 'directoryPath' was package.json and it didn't have 'eslintConfig' field. ok 89 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should throw an error if the config data had invalid properties, ok 90 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'js' then return a config array what contains the config file of that directory. ok 91 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'json' then return a config array what contains the config file of that directory. ok 92 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'legacy-json' then return a config array what contains the config file of that directory. ok 93 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'legacy-yml' then return a config array what contains the config file of that directory. ok 94 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'package-json' then return a config array what contains the config file of that directory. ok 95 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'yml' then return a config array what contains the config file of that directory. ok 96 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should load 'yaml' then return a config array what contains the config file of that directory. ok 97 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should call '_normalizeConfigData(configData, options)' with the loaded config data and given options except 'options.parent'. ok 98 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should return a config array that contains the yielded elements from '_normalizeConfigData(configData, options)'. ok 99 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should concatenate the elements of `options.parent` and the yielded elements from '_normalizeConfigData(configData, options)'. ok 100 ConfigArrayFactory 'loadInDirectory(directoryPath, options)' method should load the config file of a directory. should not concatenate the elements of `options.parent` if the yielded elements from '_normalizeConfigData(configData, options)' has 'root:true'. ok 101 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data was empty, the returned value should have an element. ok 102 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data was empty, the returned value should have the default values in the element. ok 103 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'env' property, the returned value should have an element. ok 104 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'env' property, the returned value should have the 'env' value in the element. ok 105 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'globals' property, the returned value should have an element. ok 106 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'globals' property, the returned value should have the 'globals' value in the element. ok 107 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'parser' property, the returned value should have an element. ok 108 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'parser' property, the returned value should have the 'parser' value in the element. ok 109 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'parserOptions' property, the returned value should have an element. ok 110 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'parserOptions' property, the returned value should have the 'parserOptions' value in the element. ok 111 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'plugins' property, the returned value should have an element. ok 112 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'plugins' property, the returned value should have the 'plugins' value in the element. ok 113 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'root' property, the returned value should have an element. ok 114 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'root' property, the returned value should have the 'root' value in the element. ok 115 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'rules' property, the returned value should have an element. ok 116 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'rules' property, the returned value should have the 'rules' value in the element. ok 117 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'settings' property, the returned value should have an element. ok 118 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. misc if the config data had 'settings' property, the returned value should have the 'settings' value in the element. ok 119 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was a valid package, the first config array element should have the package ID at 'parser.id' property. ok 120 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was a valid package, the first config array element should have the package object at 'parser.definition' property. ok 121 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was a valid package, the first config array element should have the path to the package at 'parser.filePath' property. ok 122 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was an invalid package, the first config array element should have the package ID at 'parser.id' property. ok 123 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was an invalid package, the first config array element should have the loading error at 'parser.error' property. ok 124 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was a valid relative path, the first config array element should have the given path at 'parser.id' property. ok 125 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was a valid relative path, the first config array element should have the file's object at 'parser.definition' property. ok 126 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was a valid relative path, the first config array element should have the absolute path to the file at 'parser.filePath' property. ok 127 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was an invalid relative path, the first config array element should have the given path at 'parser.id' property. ok 128 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if the 'parser' property was an invalid relative path, the first config array element should have the loading error at 'parser.error' property. ok 129 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'parser' details if 'parser' property was given and 'filePath' option was given, the parser should be resolved relative to the 'filePath' option. ok 130 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details should throw an error if a 'plugins' value is a file path. ok 131 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was a valid package, the first config array element should have 'plugins[id]' property. ok 132 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was a valid package, the first config array element should have the package ID at 'plugins[id].id' property. ok 133 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was a valid package, the first config array element should have the package object at 'plugins[id].definition' property. ok 134 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was a valid package, the first config array element should have the path to the package at 'plugins[id].filePath' property. ok 135 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was an invalid package, the first config array element should have 'plugins[id]' property. ok 136 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was an invalid package, the first config array element should have the package ID at 'plugins[id].id' property. ok 137 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if the 'plugins' property was an invalid package, the first config array element should have the loading error at 'plugins[id].error' property. ok 138 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details even if 'plugins' property was given and 'filePath' option was given, should load the plugin from the project root. ok 139 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value should have three elements. ok 140 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the first element should be named 'processors["ext/.abc"]'. ok 141 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the first element should not have 'plugins' property. ok 142 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the first element should have 'processor' property. ok 143 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the first element should have 'criteria' property which matches '.abc'. ok 144 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the second element should be named 'processors["ext/.xyz"]'. ok 145 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the second element should not have 'plugins' property. ok 146 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the second element should have 'processor' property. ok 147 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the second element should have 'criteria' property which matches '.xyz'. ok 148 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the third element should have 'plugins' property. ok 149 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'plugins' details if 'plugins' property was given and the plugin has two file extension processors, the returned value the third element should not have 'processor' property. ok 150 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details should throw an error when extends config module is not found ok 151 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details should throw an error when an eslint config is not found ok 152 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details should throw an error when a plugin threw while loading. ok 153 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details should throw an error when a plugin extend is a file path. ok 154 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details should throw an error when an eslint config is not found ok 155 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'eslint:all', the returned value should have two elements. ok 156 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'eslint:all', the returned value should have the config data of 'eslint:all' at the first element. ok 157 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'eslint:all', the returned value should have the given config data at the second element. ok 158 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'eslint:recommended', the returned value should have two elements. ok 159 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'eslint:recommended', the returned value should have the config data of 'eslint:recommended' at the first element. ok 160 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'eslint:recommended', the returned value should have the given config data at the second element. ok 161 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'foo', the returned value should have two elements. ok 162 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'foo', the returned value should have the config data of 'eslint-config-foo' at the first element. ok 163 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'foo', the returned value should have the given config data at the second element. ok 164 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'plugin:foo/bar', the returned value should have two elements. ok 165 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'plugin:foo/bar', the returned value should have the config data of 'plugin:foo/bar' at the first element. ok 166 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'plugin:foo/bar', the returned value should have the given config data at the second element. ok 167 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was './base', the returned value should have two elements. ok 168 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was './base', the returned value should have the config data of './base' at the first element. ok 169 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was './base', the returned value should have the given config data at the second element. ok 170 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'one' and the 'one' extends 'two', the returned value should have three elements. ok 171 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'one' and the 'one' extends 'two', the returned value should have the config data of 'eslint-config-two' at the first element. ok 172 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'one' and the 'one' extends 'two', the returned value should have the config data of 'eslint-config-one' at the second element. ok 173 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'one' and the 'one' extends 'two', the returned value should have the given config data at the thrid element. ok 174 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'override' and the 'override' has 'overrides' property, the returned value should have four elements. ok 175 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'override' and the 'override' has 'overrides' property, the returned value should have the config data of 'eslint-config-override' at the first element. ok 176 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'override' and the 'override' has 'overrides' property, the returned value should have the 'overrides[0]' config data of 'eslint-config-override' at the second element. ok 177 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'override' and the 'override' has 'overrides' property, the returned value should have the 'overrides[1]' config data of 'eslint-config-override' at the third element. ok 178 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'extends' details if 'extends' property was 'override' and the 'override' has 'overrides' property, the returned value should have the given config data at the fourth element. ok 179 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if 'overrides' property was given, the returned value should have three elements. ok 180 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if 'overrides' property was given, the returned value should have the given config data at the first element. ok 181 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if 'overrides' property was given, the returned value should have the config data of 'overrides[0]' at the second element. ok 182 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if 'overrides' property was given, the returned value should have the config data of 'overrides[1]' at the third element. ok 183 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property, the returned value should have three elements. ok 184 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property, the returned value should have the given config data at the first element. ok 185 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property, the returned value should have the config data of 'overrides[0] » eslint-config-foo' at the second element. ok 186 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property, the returned value should have the config data of 'overrides[0]' at the third element. ok 187 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property and the shareable config has 'overrides' property, the returned value should have four elements. ok 188 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property and the shareable config has 'overrides' property, the returned value should have the given config data at the first element. ok 189 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property and the shareable config has 'overrides' property, the returned value should have the config data of 'overrides[0] » eslint-config-has-overrides' at the second element. ok 190 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property and the shareable config has 'overrides' property, the returned value should have the config data of 'overrides[0] » eslint-config-has-overridesoverrides[0]' at the third element. ok 191 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'extends' property and the shareable config has 'overrides' property, the returned value should have the config data of 'overrides[0]' at the fourth element. ok 192 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'overrides' property, the returned value should have three elements. ok 193 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'overrides' property, the returned value should have the given config data at the first element. ok 194 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'overrides' property, the returned value should have the config data of 'overrides[0]' at the second element. ok 195 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'overrides' property, the returned value should have the config data of 'overrides[0].overrides[0]' at the third element. ok 196 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'root' property, the returned value should have three elements. ok 197 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'root' property, the returned value should have the given config data at the first element. ok 198 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'root' property, the returned value should have the config data of 'overrides[0] » eslint-config-root' at the second element; it doesn't have 'root' property. ok 199 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. 'overrides' details if a config in 'overrides' property had 'root' property, the returned value should have the config data of 'overrides[0]' at the third element. ok 200 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. additional plugin pool should use the matched plugin in the additional plugin pool; short to short ok 201 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. additional plugin pool should use the matched plugin in the additional plugin pool; long to short ok 202 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. additional plugin pool should use the matched plugin in the additional plugin pool; short to long ok 203 ConfigArrayFactory '_normalizeConfigData(configData, options)' method should normalize the config data. additional plugin pool should use the matched plugin in the additional plugin pool; long to long ok 204 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply extension 'foo' when specified from root directory config ok 205 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply all rules when extends config includes 'eslint:all' ok 206 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should throw an error when extends config module is not found ok 207 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should throw an error when an eslint config is not found ok 208 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should throw an error when a parser in a plugin config is not found ok 209 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should fall back to default parser when a parser called 'espree' is not found ok 210 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should throw an error when a plugin config is not found ok 211 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should throw an error with a message template when a plugin referenced for a plugin config is not found ok 212 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should throw an error with a message template when a plugin in the plugins list is not found ok 213 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply extensions recursively when specified from package ok 214 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply extensions when specified from a JavaScript file ok 215 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply extensions when specified from a YAML file ok 216 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply extensions when specified from a JSON file ok 217 ConfigArrayFactory 'extends' property should handle the content of extended configs properly. should apply extensions when specified from a package.json file in a sibling directory ok 218 ConfigArrayFactory loading config files should work properly. should throw error if file doesnt exist ok 219 ConfigArrayFactory loading config files should work properly. should load information from a legacy file ok 220 ConfigArrayFactory loading config files should work properly. should load information from a JavaScript file ok 221 ConfigArrayFactory loading config files should work properly. should throw error when loading invalid JavaScript file ok 222 ConfigArrayFactory loading config files should work properly. should interpret parser module name when present in a JavaScript file ok 223 ConfigArrayFactory loading config files should work properly. should interpret parser path when present in a JavaScript file ok 224 ConfigArrayFactory loading config files should work properly. should interpret parser module name or path when parser is set to default parser in a JavaScript file ok 225 ConfigArrayFactory loading config files should work properly. should load information from a JSON file ok 226 ConfigArrayFactory loading config files should work properly. should load fresh information from a JSON file ok 227 ConfigArrayFactory loading config files should work properly. should load information from a package.json file ok 228 ConfigArrayFactory loading config files should work properly. should throw error when loading invalid package.json file ok 229 ConfigArrayFactory loading config files should work properly. should load fresh information from a package.json file ok 230 ConfigArrayFactory loading config files should work properly. should load fresh information from a .eslintrc.js file ok 231 ConfigArrayFactory loading config files should work properly. should load information from a YAML file ok 232 ConfigArrayFactory loading config files should work properly. should load information from an empty YAML file ok 233 ConfigArrayFactory loading config files should work properly. should load information from a YML file ok 234 ConfigArrayFactory loading config files should work properly. should load information from a YML file and apply extensions ok 235 ConfigArrayFactory loading config files should work properly. should load information from `extends` chain. ok 236 ConfigArrayFactory loading config files should work properly. should load information from `extends` chain with relative path. ok 237 ConfigArrayFactory loading config files should work properly. should load information from `extends` chain in .eslintrc with relative path. ok 238 ConfigArrayFactory loading config files should work properly. should load information from `parser` in .eslintrc with relative path. ok 239 ConfigArrayFactory loading config files should work properly. throws an error including the config file name if the config file is invalid ok 240 ConfigArrayFactory loading config files should work properly. Plugins should load information from a YML file and load plugins ok 241 ConfigArrayFactory loading config files should work properly. Plugins should load two separate configs from a plugin ok 242 ConfigArrayFactory loading config files should work properly. even if config files have Unicode BOM, should read the JSON config file correctly. ok 243 ConfigArrayFactory loading config files should work properly. even if config files have Unicode BOM, should read the YAML config file correctly. ok 244 ConfigArrayFactory loading config files should work properly. even if config files have Unicode BOM, should read the config in package.json correctly. ok 245 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/.eslintrc when passed .eslintrc ok 246 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/index.js when passed eslint-config-foo ok 247 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/bar.js when passed eslint-config-foo/bar ok 248 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/index.js when passed foo ok 249 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/bar.js when passed foo/bar ok 250 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/eslint-config-eslint-configfoo/index.js when passed eslint-configfoo ok 251 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-config/index.js when passed @foo/eslint-config ok 252 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-config/index.js when passed @foo ok 253 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-config-bar/index.js when passed @foo/bar ok 254 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/eslint-plugin-foo/index.js when passed plugin:foo/bar ok 255 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-plugin/index.js when passed plugin:@foo/bar ok 256 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to CWD should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-plugin-bar/index.js when passed plugin:@foo/bar/baz ok 257 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/foo/bar/.eslintrc when passed .eslintrc ok 258 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/index.js when passed eslint-config-foo ok 259 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/bar.js when passed eslint-config-foo/bar ok 260 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/index.js when passed foo ok 261 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/eslint-config-foo/bar.js when passed foo/bar ok 262 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/eslint-config-eslint-configfoo/index.js when passed eslint-configfoo ok 263 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-config/index.js when passed @foo/eslint-config ok 264 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-config/index.js when passed @foo ok 265 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-config-bar/index.js when passed @foo/bar ok 266 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/eslint-plugin-foo/index.js when passed plugin:foo/bar ok 267 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-plugin/index.js when passed plugin:@foo/bar ok 268 ConfigArrayFactory 'extends' property should resolve the location of configs properly. Relative to config file should return /tmp/eslint/config-array-factory/node_modules/@foo/eslint-plugin-bar/index.js when passed plugin:@foo/bar/baz ok 269 ConfigArrayFactory 'plugins' property should load a correct plugin. should load a plugin when referenced by short name ok 270 ConfigArrayFactory 'plugins' property should load a correct plugin. should load a plugin when referenced by short name, even when using a custom loadPluginsRelativeTo value ok 271 ConfigArrayFactory 'plugins' property should load a correct plugin. should load a plugin when referenced by long name ok 272 ConfigArrayFactory 'plugins' property should load a correct plugin. should throw an error when a plugin has whitespace ok 273 ConfigArrayFactory 'plugins' property should load a correct plugin. should throw an error when a plugin doesn't exist ok 274 ConfigArrayFactory 'plugins' property should load a correct plugin. should rethrow an error that a plugin throws on load ok 275 ConfigArrayFactory 'plugins' property should load a correct plugin. should load a scoped plugin when referenced by short name ok 276 ConfigArrayFactory 'plugins' property should load a correct plugin. should load a scoped plugin when referenced by long name ok 277 ConfigArrayFactory 'plugins' property should load a correct plugin. when referencing a scope plugin and omitting @scope/ should load a scoped plugin when referenced by short name, but should not get the plugin if '@scope/' is omitted ok 278 ConfigArrayFactory 'plugins' property should load a correct plugin. when referencing a scope plugin and omitting @scope/ should load a scoped plugin when referenced by long name, but should not get the plugin if '@scope/' is omitted ok 279 ConfigArrayFactory 'plugins' property should load some correct plugins. should load plugins when passed multiple plugins ok 280 ConfigArray should be a sub class of Array. ok 281 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [] then should have 0 as the length. ok 282 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":1}] then should have 1 as the length. ok 283 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":1}] then should have {"value":1} at configArray[0]. ok 284 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":2},{"value":3}] then should have 2 as the length. ok 285 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":2},{"value":3}] then should have {"value":2} at configArray[0]. ok 286 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":2},{"value":3}] then should have {"value":3} at configArray[1]. ok 287 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":4},{"value":5},{"value":6}] then should have 3 as the length. ok 288 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":4},{"value":5},{"value":6}] then should have {"value":4} at configArray[0]. ok 289 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":4},{"value":5},{"value":6}] then should have {"value":5} at configArray[1]. ok 290 ConfigArray 'constructor(...elements)' should adopt the elements as array elements. if it gave [{"value":4},{"value":5},{"value":6}] then should have {"value":6} at configArray[2]. ok 291 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be false if the elements are []. ok 292 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be false if the elements are [{}]. ok 293 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be false if the elements are [{},{}]. ok 294 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be false if the elements are [{"root":false}]. ok 295 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be true if the elements are [{"root":true}]. ok 296 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be false if the elements are [{"root":true},{"root":false}]. ok 297 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be true if the elements are [{"root":false},{"root":true}]. ok 298 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be true if the elements are [{"root":false},{"root":true},{"rules":{}}]. ok 299 ConfigArray 'isRoot()' method should be the value of the last element which has 'root' property. should be true if the elements are [{"root":true},{"root":1}]. ok 300 ConfigArray 'pluginEnvironments' property should be the environments of all plugins. should return null for built-in env ok 301 ConfigArray 'pluginEnvironments' property should be the environments of all plugins. should return 'aaa/xxx' if it exists. ok 302 ConfigArray 'pluginEnvironments' property should be the environments of all plugins. should return 'bbb/xxx' if it exists. ok 303 ConfigArray 'pluginEnvironments' property should be the environments of all plugins. should throw an error if it tried to mutate. ok 304 ConfigArray 'pluginProcessors' property should be the processors of all plugins. should return 'aaa/.xxx' if it exists. ok 305 ConfigArray 'pluginProcessors' property should be the processors of all plugins. should return 'bbb/.xxx' if it exists. ok 306 ConfigArray 'pluginProcessors' property should be the processors of all plugins. should throw an error if it tried to mutate. ok 307 ConfigArray 'pluginRules' property should be the rules of all plugins. should return null for built-in rules ok 308 ConfigArray 'pluginRules' property should be the rules of all plugins. should return 'aaa/xxx' if it exists. ok 309 ConfigArray 'pluginRules' property should be the rules of all plugins. should return 'bbb/xxx' if it exists. ok 310 ConfigArray 'pluginRules' property should be the rules of all plugins. should throw an error if it tried to mutate. ok 311 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should throw an error if a 'parser' has the loading error. ok 312 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should not throw if the errored 'parser' was not used; overwriten ok 313 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should not throw if the errored 'parser' was not used; not matched ok 314 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should throw an error if a 'plugins' value has the loading error. ok 315 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should not throw if the errored 'plugins' value was not used; not matched ok 316 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should not merge the elements which were not matched. ok 317 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should return the same instance for every the same matching. ok 318 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine two objects when passed two objects with different top-level properties ok 319 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine without blowing up on null values ok 320 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine two objects with parser when passed two objects with different top-level properties ok 321 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs and override rules when passed configs with the same rules ok 322 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs when passed configs with parserOptions ok 323 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should override configs when passed configs with the same ecmaFeatures ok 324 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs and override rules when merging two configs with arrays and int ok 325 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs and override rules options completely ok 326 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs and override rules options without array or object ok 327 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs and override rules options without array or object but special case ok 328 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should combine configs correctly ok 329 ConfigArray 'extractConfig(filePath)' method should retrieve the merged config for a given file. should copy deeply if there is not the destination's property ok 330 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. should return empty array before it called 'extractConfig(filePath)'. ok 331 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. should not contain duplicate values. ok 332 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 1 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js" ], the returned array should have 1 as the length. ok 333 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 1 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js" ], the returned array should contain 'configs[0]'. ok 334 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 2 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts" ], the returned array should have 2 as the length. ok 335 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 2 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts" ], the returned array should contain 'configs[0]'. ok 336 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 2 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts" ], the returned array should contain 'configs[1]'. ok 337 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 3 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/foo.js" ], the returned array should have 3 as the length. ok 338 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 3 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/foo.js" ], the returned array should contain 'configs[0]'. ok 339 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 3 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/foo.js" ], the returned array should contain 'configs[1]'. ok 340 ConfigArray 'getUsedExtractedConfigs(instance)' function should retrieve used extracted configs from the instance's internal cache. after it called 'extractConfig(filePath)' 3 time(s) with [ "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/config-array.js.ts", "/build/eslint-6.4.0~dfsg+~6.1.9/tests/lib/cli-engine/config-array/foo.js" ], the returned array should contain 'configs[2]'. ok 341 ConfigDependency 'constructor(data)' should initialize properties. should set 'data.definition' to 'definition' property. ok 342 ConfigDependency 'constructor(data)' should initialize properties. should set 'data.error' to 'error' property. ok 343 ConfigDependency 'constructor(data)' should initialize properties. should set 'data.filePath' to 'filePath' property. ok 344 ConfigDependency 'constructor(data)' should initialize properties. should set 'data.id' to 'id' property. ok 345 ConfigDependency 'constructor(data)' should initialize properties. should set 'data.importerName' to 'importerName' property. ok 346 ConfigDependency 'constructor(data)' should initialize properties. should set 'data.importerPath' to 'importerPath' property. ok 347 ConfigDependency 'JSON.stringify(...)' should return readable JSON; not include 'definition' property should not print 'definition' property. ok 348 ConfigDependency 'console.log(...)' should print readable string; not include 'defininition' property should not print 'definition' property. ok 349 'ExtractedConfig' class 'constructor()' should create an instance. should have 'env' property. ok 350 'ExtractedConfig' class 'constructor()' should create an instance. should have 'globals' property. ok 351 'ExtractedConfig' class 'constructor()' should create an instance. should have 'parser' property. ok 352 'ExtractedConfig' class 'constructor()' should create an instance. should have 'parserOptions' property. ok 353 'ExtractedConfig' class 'constructor()' should create an instance. should have 'plugins' property. ok 354 'ExtractedConfig' class 'constructor()' should create an instance. should have 'processor' property. ok 355 'ExtractedConfig' class 'constructor()' should create an instance. should have 'rules' property. ok 356 'ExtractedConfig' class 'constructor()' should create an instance. should have 'settings' property. ok 357 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'env' property as is. ok 358 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'globals' as is. ok 359 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'parser.filePath' for 'parser' property. ok 360 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'null' for 'parser' property if 'parser' property is 'null'. ok 361 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'parserOptions' property as is. ok 362 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use the keys of 'plugins' property for 'plugins' property. ok 363 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should not use 'processor' property. ok 364 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'rules' property as is. ok 365 'ExtractedConfig' class 'toCompatibleObjectAsConfigFileContent()' method should return a valid config data. should use 'settings' property as is. ok 366 OverrideTester 'create(files, excludedFiles, basePath)' should create a tester. should return null if {"basePath":"/build/eslint-6.4.0~dfsg+~6.1.9"} was given. ok 367 OverrideTester 'create(files, excludedFiles, basePath)' should create a tester. should return null if {"files":[],"excludedFiles":[],"basePath":"/build/eslint-6.4.0~dfsg+~6.1.9"} was given. ok 368 OverrideTester 'create(files, excludedFiles, basePath)' should create a tester. should return an 'OverrideTester' instance that has given parameters if strings were given. ok 369 OverrideTester 'create(files, excludedFiles, basePath)' should create a tester. should return an 'OverrideTester' instance that has given parameters if arrays were given. ok 370 OverrideTester 'and(a, b)' should return either or create another tester what includes both. should return null if both were null. ok 371 OverrideTester 'and(a, b)' should return either or create another tester what includes both. should return a new tester with the the first one's properties if the second one was null. ok 372 OverrideTester 'and(a, b)' should return either or create another tester what includes both. should return a new tester with the the second one's properties if the first one was null. ok 373 OverrideTester 'and(a, b)' should return either or create another tester what includes both. should return another one what includes both patterns if both are testers. ok 374 OverrideTester 'test(filePath)' method should throw an error if no arguments were given. ok 375 OverrideTester 'test(filePath)' method should throw an error if a non-string value was given. ok 376 OverrideTester 'test(filePath)' method should throw an error if a relative path was given. ok 377 OverrideTester 'test(filePath)' method should return true only when both conditions are matched if the tester was created by 'and' factory function. ok 378 OverrideTester 'test(filePath)' method matches foo.js given 'foo.js' includes and '' excludes ok 379 OverrideTester 'test(filePath)' method matches foo.js given '*' includes and '' excludes ok 380 OverrideTester 'test(filePath)' method matches foo.js given '*.js' includes and '' excludes ok 381 OverrideTester 'test(filePath)' method matches foo.js given '**/*.js' includes and '' excludes ok 382 OverrideTester 'test(filePath)' method matches bar.js given '*.js' includes and 'foo.js' excludes ok 383 OverrideTester 'test(filePath)' method matches foo.js given './foo.js' includes and '' excludes ok 384 OverrideTester 'test(filePath)' method matches foo.js given './*' includes and '' excludes ok 385 OverrideTester 'test(filePath)' method matches foo.js given './**' includes and '' excludes ok 386 OverrideTester 'test(filePath)' method does not match foo.js given '*' includes and 'foo.js' excludes ok 387 OverrideTester 'test(filePath)' method does not match foo.js given '*.js' includes and 'foo.js' excludes ok 388 OverrideTester 'test(filePath)' method does not match foo.js given '**/*.js' includes and 'foo.js' excludes ok 389 OverrideTester 'test(filePath)' method matches subdir/foo.js given 'foo.js' includes and '' excludes ok 390 OverrideTester 'test(filePath)' method matches subdir/foo.js given '*' includes and '' excludes ok 391 OverrideTester 'test(filePath)' method matches subdir/foo.js given '*.js' includes and '' excludes ok 392 OverrideTester 'test(filePath)' method matches subdir/foo.js given '**/*.js' includes and '' excludes ok 393 OverrideTester 'test(filePath)' method matches subdir/foo.js given 'subdir/*.js' includes and '' excludes ok 394 OverrideTester 'test(filePath)' method matches subdir/foo.js given 'subdir/foo.js' includes and '' excludes ok 395 OverrideTester 'test(filePath)' method matches subdir/foo.js given 'subdir/*' includes and '' excludes ok 396 OverrideTester 'test(filePath)' method matches subdir/second/foo.js given 'subdir/**' includes and '' excludes ok 397 OverrideTester 'test(filePath)' method matches subdir/foo.js given './**' includes and '' excludes ok 398 OverrideTester 'test(filePath)' method matches subdir/foo.js given './subdir/**' includes and '' excludes ok 399 OverrideTester 'test(filePath)' method matches subdir/foo.js given './subdir/*' includes and '' excludes ok 400 OverrideTester 'test(filePath)' method does not match subdir/foo.js given './foo.js' includes and '' excludes ok 401 OverrideTester 'test(filePath)' method does not match subdir/foo.js given '*' includes and 'subdir/**' excludes ok 402 OverrideTester 'test(filePath)' method does not match subdir/very/deep/foo.js given '*.js' includes and 'subdir/**' excludes ok 403 OverrideTester 'test(filePath)' method does not match subdir/second/foo.js given 'subdir/*' includes and '' excludes ok 404 OverrideTester 'test(filePath)' method does not match subdir/second/foo.js given 'subdir/**' includes and 'subdir/second/*' excludes ok 405 OverrideTester 'test(filePath)' method emits an error given '/*.js' ok 406 OverrideTester 'test(filePath)' method emits an error given '/foo.js' ok 407 OverrideTester 'test(filePath)' method emits an error given '../**' ok 408 OverrideTester 'JSON.stringify(...)' should return readable JSON; not include 'Minimatch' objects should return an object that has three properties 'includes', 'excludes', and 'basePath' if that 'patterns' property include one object. ok 409 OverrideTester 'JSON.stringify(...)' should return readable JSON; not include 'Minimatch' objects should return an object that has two properties 'AND' and 'basePath' if that 'patterns' property include two or more objects. ok 410 OverrideTester 'console.log(...)' should print readable string; not include 'Minimatch' objects should use 'toJSON()' method. ok 411 formatter:checkstyle when passed a single message should return a string in the format filename: line x, col y, Error - z for errors ok 412 formatter:checkstyle when passed a single message should return a string in the format filename: line x, col y, Warning - z for warnings ok 413 formatter:checkstyle when passed a message with XML control characters should return a string in the format filename: line x, col y, Error - z ok 414 formatter:checkstyle when passed a fatal error message should return a string in the format filename: line x, col y, Error - z ok 415 formatter:checkstyle when passed multiple messages should return a string with multiple entries ok 416 formatter:checkstyle when passed multiple files with 1 message each should return a string with multiple entries ok 417 formatter:checkstyle when passing single message without rule id should return a string in the format filename: line x, col y, Error - z for errors ok 418 formatter:compact when passed no messages should return nothing ok 419 formatter:compact when passed a single message should return a string in the format filename: line x, col y, Error - z for errors ok 420 formatter:compact when passed a single message should return a string in the format filename: line x, col y, Warning - z for warnings ok 421 formatter:compact when passed a fatal error message should return a string in the format filename: line x, col y, Error - z ok 422 formatter:compact when passed multiple messages should return a string with multiple entries ok 423 formatter:compact when passed multiple files with 1 message each should return a string with multiple entries ok 424 formatter:compact when passed one file not found message should return a string without line and column ok 425 formatter:html when passed a single error message should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 426 formatter:html when passed a single error message should not fail if metadata is not available ok 427 formatter:html when passed a single warning message should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 428 formatter:html when passed a single error message should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 429 formatter:html when passed no error/warning messages should return a string in HTML format with 0 issues in 1 file and styled accordingly ok 430 formatter:html when passed multiple messages should return a string in HTML format with 2 issues in 1 file and styled accordingly ok 431 formatter:html when passed multiple files with 1 error & warning message respectively should return a string in HTML format with 2 issues in 2 files and styled accordingly ok 432 formatter:html when passed multiple files with 1 warning message each should return a string in HTML format with 2 issues in 2 files and styled accordingly ok 433 formatter:html when passing a single message with illegal characters should return a string in HTML format with 1 issue in 1 file ok 434 formatter:html when passing a single message with no rule id or message should return a string in HTML format with 1 issue in 1 file ok 435 formatter:html when passed a single message with no line or column should return a string in HTML format with 1 issue in 1 file and styled accordingly ok 436 formatter:jslint-xml when passed a single message should return a string in JSLint XML format with 1 issue in 1 file ok 437 formatter:jslint-xml when passed a fatal error message should return a string in JSLint XML format with 1 issue in 1 file ok 438 formatter:jslint-xml when passed multiple messages should return a string in JSLint XML format with 2 issues in 1 file ok 439 formatter:jslint-xml when passed multiple files with 1 message each should return a string in JSLint XML format with 2 issues in 2 files ok 440 formatter:jslint-xml when passing a single message with illegal characters should return a string in JSLint XML format with 1 issue in 1 file ok 441 formatter:jslint-xml when passing a single message with no source should return a string in JSLint XML format with 1 issue in 1 file ok 442 formatter:jslint-xml when passing a single message without rule id should return a string in JSLint XML format with 1 issue in 1 file ok 443 formatter:json should return passed results and data as a JSON string without any modification ok 444 formatter:json should return passed results as a JSON string without any modification ok 445 formatter:junit when there are no problems should not complain about anything ok 446 formatter:junit when passed a single message should return a single with a message and the line and col number in the body (error) ok 447 formatter:junit when passed a single message should return a single with a message and the line and col number in the body (warning) ok 448 formatter:junit when passed a fatal error message should return a single and an ok 449 formatter:junit when passed a fatal error message with no line or column should return a single and an ok 450 formatter:junit when passed a fatal error message with no line, column, or message text should return a single and an ok 451 formatter:junit when passed multiple messages should return a multiple 's ok 452 formatter:junit when passed special characters should make them go away ok 453 formatter:junit when passed multiple files with 1 message each should return 2 's ok 454 formatter:junit when passed multiple files should print even if no errors should return 2 ok 455 formatter:junit when passed a file with no errors should print a passing ok 456 formatter:stylish when passed no messages should not return message ok 457 formatter:stylish when passed a single error message should return a string in the correct format ok 458 formatter:stylish when passed a single error message when the error is fixable should return a string in the correct format ok 459 formatter:stylish when passed a single warning message should return a string in the correct format ok 460 formatter:stylish when passed a single warning message when the error is fixable should return a string in the correct format ok 461 formatter:stylish when passed a message that ends with ' .' should return a string in the correct format (retaining the ' .') ok 462 formatter:stylish when passed a fatal error message should return a string in the correct format ok 463 formatter:stylish when passed multiple messages should return a string with multiple entries ok 464 formatter:stylish when passed multiple files with 1 message each should return a string with multiple entries ok 465 formatter:stylish when passed multiple files with 1 message each should add errorCount ok 466 formatter:stylish when passed multiple files with 1 message each should add warningCount ok 467 formatter:stylish when passed one file not found message should return a string without line and column ok 468 formatter:stylish fixable problems should not output fixable problems message when no errors or warnings are fixable ok 469 formatter:stylish fixable problems should output the fixable problems message when errors are fixable ok 470 formatter:stylish fixable problems should output fixable problems message when warnings are fixable ok 471 formatter:stylish fixable problems should output the total number of fixable errors and warnings ok 472 formatter:tap when passed no messages should return nothing ok 473 formatter:tap when passed a single message should return a string with YAML severity, line and column ok 474 formatter:tap when passed a single message should return a string with line: x, column: y, severity: warning for warnings ok 475 formatter:tap when passed a fatal error message should return an error string ok 476 formatter:tap when passed a message with a severity of 1 should return a warning string ok 477 formatter:tap when passed multiple messages with a severity of 1 should return a string with multiple entries ok 478 formatter:tap when passed multiple messages with different error severity should return a string with multiple entries ok 479 formatter:tap when passed multiple files with 1 message each should return a string with multiple entries ok 480 formatter:tap when passed one file not found message should return a string without line and column ok 481 formatter:compact when passed no messages should return nothing ok 482 formatter:compact when passed a single message should return a string in the format filename:line:column: error [Error/rule_id] ok 483 formatter:compact when passed a single message should return a string in the format filename:line:column: warning [Warning/rule_id] ok 484 formatter:compact when passed a fatal error message should return a string in the format filename:line:column: error [Error/rule_id] ok 485 formatter:compact when passed multiple messages should return a string with multiple entries ok 486 formatter:compact when passed multiple files with 1 message each should return a string with multiple entries ok 487 formatter:compact when passed one file not found message should return a string without line and column ok 488 formatter:visualstudio when passed no messages should return nothing ok 489 formatter:visualstudio when passed a single message should return a string in the format filename(x,y): error z for errors ok 490 formatter:visualstudio when passed a single message should return a string in the format filename(x,y): warning z for warnings ok 491 formatter:visualstudio when passed a fatal error message should return a string in the format filename(x,y): error z ok 492 formatter:visualstudio when passed multiple messages should return a string with multiple entries ok 493 formatter:visualstudio when passed multiple files with 1 message each should return a string with multiple entries ok 494 formatter:visualstudio when passed one file not found message should return a string without line and column ok 495 LintResultCache constructor should throw an error if cache file path is not provided ok 496 LintResultCache constructor should successfully create an instance if cache file location is provided ok 497 LintResultCache getCachedLintResults When file is changed should return null ok 498 LintResultCache getCachedLintResults When config hash is changed should return null ok 499 LintResultCache getCachedLintResults When file is not found on filesystem should return null ok 500 LintResultCache getCachedLintResults When file is present and unchanged and config is unchanged should return expected results ok 501 LintResultCache setCachedLintResults When lint result has output property does not modify file entry ok 502 LintResultCache setCachedLintResults When file is not found on filesystem does not modify file entry ok 503 LintResultCache setCachedLintResults When file is found on filesystem stores hash of config in file entry ok 504 LintResultCache setCachedLintResults When file is found on filesystem stores results (except source) in file entry ok 505 LintResultCache setCachedLintResults When file is found and empty stores hash of config in file entry ok 506 LintResultCache setCachedLintResults When file is found and empty stores results (except source) in file entry ok 507 LintResultCache reconcile calls reconcile on the underlying cache ok 508 when given an invalid rules directory should throw an error ok 509 when given a valid rules directory should load rules and not throw an error ok 510 autoconfig Registry should set up a registry for rules in a provided rulesConfig ok 511 autoconfig Registry should not have any rules if constructed without a config argument ok 512 autoconfig Registry should create registryItems for each rule with the proper keys ok 513 autoconfig Registry should populate the config property correctly ok 514 autoconfig Registry should assign the correct specificity ok 515 autoconfig Registry should initially leave the errorCount as undefined ok 516 autoconfig Registry populateFromCoreRules() should add core rules to registry ok 517 autoconfig Registry populateFromCoreRules() should not add duplicate rules ok 518 autoconfig Registry buildRuleSets() should create an array of rule configuration sets ok 519 autoconfig Registry buildRuleSets() should include configs for each rule (at least for the first set) ok 520 autoconfig Registry buildRuleSets() should create the first set from default rule configs (severity only) ok 521 autoconfig Registry buildRuleSets() should create as many ruleSets as the highest number of configs in a rule ok 522 autoconfig Registry lintSourceCode() should populate the errorCount of all registryItems ok 523 autoconfig Registry lintSourceCode() should correctly set the error count of configurations ok 524 autoconfig Registry lintSourceCode() should respect inline eslint config comments (and not crash when they make linting errors) ok 525 autoconfig Registry stripFailingConfigs() should remove all registryItems with a non-zero errorCount ok 526 autoconfig Registry getFailingRulesRegistry() should return a registry with no registryItems with an errorCount of zero ok 527 autoconfig Registry createConfig() should create a config with a rules property ok 528 autoconfig Registry createConfig() should add rules which have only one registryItem to the config ok 529 autoconfig Registry createConfig() should set the configuration of the rule to the registryItem's `config` value ok 530 autoconfig Registry createConfig() should not care how many errors the config has ok 531 autoconfig Registry filterBySpecificity() should return a registry where all configs have a desired specificity ok 532 ConfigFile write() should write a file through fs when a JavaScript path is passed ok 533 ConfigFile write() should include a newline character at EOF ok 534 ConfigFile write() should write a file through fs when a JSON path is passed ok 535 ConfigFile write() should include a newline character at EOF ok 536 ConfigFile write() should write a file through fs when a YAML path is passed ok 537 ConfigFile write() should include a newline character at EOF ok 538 ConfigFile write() should write a file through fs when a YML path is passed ok 539 ConfigFile write() should include a newline character at EOF ok 540 ConfigFile write() should make sure js config files match linting rules ok 541 ConfigFile write() should still write a js config file even if linting fails ok 542 ConfigFile write() should throw error if file extension is not valid ok 543 configInitializer processAnswers() prompt should create default config ok 544 configInitializer processAnswers() prompt should disable semi ok 545 configInitializer processAnswers() prompt should enable react plugin ok 546 configInitializer processAnswers() prompt should enable vue plugin ok 547 configInitializer processAnswers() prompt should enable typescript parser and plugin ok 548 configInitializer processAnswers() prompt should enable typescript parser and plugin with vue ok 549 configInitializer processAnswers() prompt should extend eslint:recommended ok 550 configInitializer processAnswers() prompt should not use commonjs by default ok 551 configInitializer processAnswers() prompt should use commonjs when set ok 552 configInitializer processAnswers() guide should support the google style guide ok 553 configInitializer processAnswers() guide should support the airbnb style guide ok 554 configInitializer processAnswers() guide should support the airbnb base style guide ok 555 configInitializer processAnswers() guide should support the standard style guide ok 556 configInitializer processAnswers() guide should install required sharable config ok 557 configInitializer processAnswers() guide should install ESLint if not installed locally ok 558 configInitializer processAnswers() guide should install peerDependencies of the sharable config ok 559 configInitializer processAnswers() guide should support the standard style guide with Vue.js ok 560 configInitializer processAnswers() guide should support custom parser ok 561 configInitializer processAnswers() guide should support custom parser with Vue.js ok 562 configInitializer processAnswers() guide hasESLintVersionConflict (Note: peerDependencies always `eslint: "^3.19.0"` by stubs) if local ESLint is not found, should return false. ok 563 configInitializer processAnswers() guide hasESLintVersionConflict (Note: peerDependencies always `eslint: "^3.19.0"` by stubs) if local ESLint is 3.19.0, should return false. ok 564 configInitializer processAnswers() guide hasESLintVersionConflict (Note: peerDependencies always `eslint: "^3.19.0"` by stubs) if local ESLint is 4.0.0, should return true. ok 565 configInitializer processAnswers() guide hasESLintVersionConflict (Note: peerDependencies always `eslint: "^3.19.0"` by stubs) if local ESLint is 3.18.0, should return true. ok 566 configInitializer processAnswers() auto should create a config ok 567 configInitializer processAnswers() auto should create the config based on examined files ok 568 configInitializer processAnswers() auto should extend and not disable recommended rules ok 569 configInitializer processAnswers() auto should support new ES features if using later ES version ok 570 configInitializer processAnswers() auto should throw on fatal parsing error ok 571 configInitializer processAnswers() auto should throw if no files are matched from patterns ok 572 ConfigRule generateConfigsFromSchema() should create a config with only severity for an empty schema ok 573 ConfigRule generateConfigsFromSchema() should create a config with only severity with no arguments ok 574 ConfigRule generateConfigsFromSchema() for a single enum schema should create an array of configs ok 575 ConfigRule generateConfigsFromSchema() for a single enum schema should include the error severity (2) without options as the first config ok 576 ConfigRule generateConfigsFromSchema() for a single enum schema should set all configs to error severity (2) ok 577 ConfigRule generateConfigsFromSchema() for a single enum schema should return configs with each enumerated value in the schema ok 578 ConfigRule generateConfigsFromSchema() for a object schema with a single enum property should return configs with option objects ok 579 ConfigRule generateConfigsFromSchema() for a object schema with a single enum property should use the object property name from the schema ok 580 ConfigRule generateConfigsFromSchema() for a object schema with a single enum property should have each enum as option object values ok 581 ConfigRule generateConfigsFromSchema() for a object schema with a multiple enum properties should create configs for all properties in each config ok 582 ConfigRule generateConfigsFromSchema() for a object schema with a multiple enum properties should create configs for every possible combination ok 583 ConfigRule generateConfigsFromSchema() for a object schema with a single boolean property should return configs with option objects ok 584 ConfigRule generateConfigsFromSchema() for a object schema with a single boolean property should use the object property name from the schema ok 585 ConfigRule generateConfigsFromSchema() for a object schema with a single boolean property should include both true and false configs ok 586 ConfigRule generateConfigsFromSchema() for a object schema with a multiple bool properties should create configs for all properties in each config ok 587 ConfigRule generateConfigsFromSchema() for a object schema with a multiple bool properties should create configs for every possible combination ok 588 ConfigRule generateConfigsFromSchema() for a schema with an enum and an object should create configs with only the enum values ok 589 ConfigRule generateConfigsFromSchema() for a schema with an enum and an object should create configs with a string and an object ok 590 ConfigRule generateConfigsFromSchema() for a schema with an enum followed by an object with no usable properties should create config only for the enum ok 591 ConfigRule generateConfigsFromSchema() for a schema with an enum preceded by an object with no usable properties should not create a config for the enum ok 592 ConfigRule generateConfigsFromSchema() for a schema with an enum preceded by a string should not create a config for the enum ok 593 ConfigRule generateConfigsFromSchema() for a schema with oneOf should create a set of configs ok 594 ConfigRule generateConfigsFromSchema() for a schema with nested objects should create a set of configs ok 595 ConfigRule createCoreRuleConfigs() should create a rulesConfig containing all core rules ok 596 ConfigRule createCoreRuleConfigs() should allow to ignore deprecated rules ok 597 ConfigRule createCoreRuleConfigs() should create arrays of configs for rules ok 598 ConfigRule createCoreRuleConfigs() should create configs for rules with meta ok 599 apply-disable-directives /* eslint-disable */ comments without rules keeps problems before the comment on the same line ok 600 apply-disable-directives /* eslint-disable */ comments without rules keeps problems on a previous line before the comment ok 601 apply-disable-directives /* eslint-disable */ comments without rules filters problems at the same location as the comment ok 602 apply-disable-directives /* eslint-disable */ comments without rules filters out problems after the comment on the same line ok 603 apply-disable-directives /* eslint-disable */ comments without rules filters out problems on a later line than the comment ok 604 apply-disable-directives /* eslint-disable */ comments with rules filters problems after the comment that have the same ruleId ok 605 apply-disable-directives /* eslint-disable */ comments with rules filters problems in the same location as the comment that have the same ruleId ok 606 apply-disable-directives /* eslint-disable */ comments with rules keeps problems after the comment that have a different ruleId ok 607 apply-disable-directives /* eslint-disable */ comments with rules keeps problems before the comment that have the same ruleId ok 608 apply-disable-directives eslint-enable comments without rules keeps problems after the eslint-enable comment ok 609 apply-disable-directives eslint-enable comments without rules keeps problems in the same location as the eslint-enable comment ok 610 apply-disable-directives eslint-enable comments without rules filters out problems before the eslint-enable comment ok 611 apply-disable-directives eslint-enable comments without rules filter out problems if disable all then enable foo and then disable foo ok 612 apply-disable-directives eslint-enable comments without rules filter out problems if disable all then enable foo and then disable all ok 613 apply-disable-directives eslint-enable comments without rules keeps problems before the eslint-enable comment if there is no corresponding disable comment ok 614 apply-disable-directives eslint-enable comments with rules keeps problems after the comment that have the same ruleId as the eslint-enable comment ok 615 apply-disable-directives eslint-enable comments with rules keeps problems in the same location as the comment that have the same ruleId as the eslint-enable comment ok 616 apply-disable-directives eslint-enable comments with rules filters problems after the comment that have a different ruleId as the eslint-enable comment ok 617 apply-disable-directives eslint-enable comments with rules reenables reporting correctly even when followed by another enable comment ok 618 apply-disable-directives eslint-disable-line comments without rules keeps problems on a previous line ok 619 apply-disable-directives eslint-disable-line comments without rules filters problems before the comment on the same line ok 620 apply-disable-directives eslint-disable-line comments without rules filters problems after the comment on the same line ok 621 apply-disable-directives eslint-disable-line comments without rules keeps problems on a following line ok 622 apply-disable-directives eslint-disable-line comments with rules filters problems on the current line that match the ruleId ok 623 apply-disable-directives eslint-disable-line comments with rules keeps problems on the current line that do not match the ruleId ok 624 apply-disable-directives eslint-disable-line comments with rules filters problems on the current line that do not match the ruleId if preceded by a disable comment ok 625 apply-disable-directives eslint-disable-line comments with rules handles consecutive comments appropriately ok 626 apply-disable-directives eslint-disable-next-line comments without rules filters problems on the next line ok 627 apply-disable-directives eslint-disable-next-line comments without rules keeps problems on the same line ok 628 apply-disable-directives eslint-disable-next-line comments without rules keeps problems after the next line ok 629 apply-disable-directives eslint-disable-next-line comments without rules filters problems on the next line even if there is an eslint-enable comment on the same line ok 630 apply-disable-directives eslint-disable-next-line comments with rules filters problems on the next line that match the ruleId ok 631 apply-disable-directives eslint-disable-next-line comments with rules keeps problems on the next line that do not match the ruleId ok 632 apply-disable-directives unrecognized directive types throws a TypeError when it encounters an unrecognized directive ok 633 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ ok 634 apply-disable-directives unused directives Does not add a problem for /* eslint-disable */ /* (problem) */ ok 635 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ ok 636 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* (problem from another rule) */ ok 637 apply-disable-directives unused directives Adds a problem for /* (problem from foo) */ /* eslint-disable */ /* eslint-enable foo */ ok 638 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-enable */ ok 639 apply-disable-directives unused directives Adds two problems for /* eslint-disable */ /* eslint-disable */ ok 640 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-disable */ /* (problem) */ ok 641 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* eslint-disable */ /* (problem from foo) */ ok 642 apply-disable-directives unused directives Does not add a problem for /* eslint-disable foo */ /* (problem from foo) */ ok 643 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-disable foo */ /* (problem from foo) */ ok 644 apply-disable-directives unused directives Adds a problem for /* eslint-disable */ /* eslint-disable foo */ /* (problem from another rule) */ ok 645 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* eslint-enable foo */ /* (problem from foo) */ ok 646 apply-disable-directives unused directives Adds a problem for /* eslint-disable foo */ /* eslint-enable */ /* (problem from foo) */ ok 647 apply-disable-directives unused directives Adds two problems for /* eslint-disable */ /* eslint-disable foo */ /* eslint-enable foo */ /* (problem from foo) */ ok 648 apply-disable-directives unused directives Adds a problem for // eslint-disable-line ok 649 apply-disable-directives unused directives Does not add a problem for // eslint-disable-line (problem) ok 650 apply-disable-directives unused directives Adds a problem for // eslint-disable-next-line ok 651 apply-disable-directives unused directives Does not add a problem for // eslint-disable-next-line \n (problem) ok 652 apply-disable-directives unused directives adds two problems for /* eslint-disable */ // eslint-disable-line ok 653 apply-disable-directives unused directives Does not add problems when reportUnusedDisableDirectives: "off" is used ok 654 CodePathAnalyzer should implement EventGenerator interface should have `emitter` property. ok 655 CodePathAnalyzer should implement EventGenerator interface should have `enterNode` property. ok 656 CodePathAnalyzer should implement EventGenerator interface should have `leaveNode` property. ok 657 CodePathAnalyzer interface of code paths should have `id` as unique string ok 658 CodePathAnalyzer interface of code paths should have `upper` as CodePath ok 659 CodePathAnalyzer interface of code paths should have `childCodePaths` as CodePath[] ok 660 CodePathAnalyzer interface of code paths should have `initialSegment` as CodePathSegment ok 661 CodePathAnalyzer interface of code paths should have `finalSegments` as CodePathSegment[] ok 662 CodePathAnalyzer interface of code paths should have `returnedSegments` as CodePathSegment[] ok 663 CodePathAnalyzer interface of code paths should have `thrownSegments` as CodePathSegment[] ok 664 CodePathAnalyzer interface of code paths should have `currentSegments` as CodePathSegment[] ok 665 CodePathAnalyzer interface of code path segments should have `id` as unique string ok 666 CodePathAnalyzer interface of code path segments should have `nextSegments` as CodePathSegment[] ok 667 CodePathAnalyzer interface of code path segments should have `allNextSegments` as CodePathSegment[] ok 668 CodePathAnalyzer interface of code path segments should have `prevSegments` as CodePathSegment[] ok 669 CodePathAnalyzer interface of code path segments should have `allPrevSegments` as CodePathSegment[] ok 670 CodePathAnalyzer interface of code path segments should have `reachable` as boolean ok 671 CodePathAnalyzer onCodePathStart should be fired at the head of programs/functions ok 672 CodePathAnalyzer onCodePathEnd should be fired at the end of programs/functions ok 673 CodePathAnalyzer onCodePathSegmentStart should be fired at the head of programs/functions for the initial segment ok 674 CodePathAnalyzer onCodePathSegmentEnd should be fired at the end of programs/functions for the final segment ok 675 CodePathAnalyzer onCodePathSegmentLoop should be fired in `while` loops ok 676 CodePathAnalyzer onCodePathSegmentLoop should be fired in `do-while` loops ok 677 CodePathAnalyzer onCodePathSegmentLoop should be fired in `for` loops ok 678 CodePathAnalyzer onCodePathSegmentLoop should be fired in `for-in` loops ok 679 CodePathAnalyzer onCodePathSegmentLoop should be fired in `for-of` loops ok 680 CodePathAnalyzer completed code paths are correct block-and-break-1.js ok 681 CodePathAnalyzer completed code paths are correct block-and-break-2.js ok 682 CodePathAnalyzer completed code paths are correct block-and-break-3.js ok 683 CodePathAnalyzer completed code paths are correct block-and-break-4.js ok 684 CodePathAnalyzer completed code paths are correct default-params--nest.js ok 685 CodePathAnalyzer completed code paths are correct default-params--simple.js ok 686 CodePathAnalyzer completed code paths are correct do-while--break-always.js ok 687 CodePathAnalyzer completed code paths are correct do-while--break-label.js ok 688 CodePathAnalyzer completed code paths are correct do-while--break-nest.js ok 689 CodePathAnalyzer completed code paths are correct do-while--break-simple.js ok 690 CodePathAnalyzer completed code paths are correct do-while--continue-always.js ok 691 CodePathAnalyzer completed code paths are correct do-while--continue-label.js ok 692 CodePathAnalyzer completed code paths are correct do-while--continue-nest.js ok 693 CodePathAnalyzer completed code paths are correct do-while--continue-simple.js ok 694 CodePathAnalyzer completed code paths are correct do-while--empty.js ok 695 CodePathAnalyzer completed code paths are correct do-while--simple.js ok 696 CodePathAnalyzer completed code paths are correct for--break-always.js ok 697 CodePathAnalyzer completed code paths are correct for--break-label.js ok 698 CodePathAnalyzer completed code paths are correct for--break-nest.js ok 699 CodePathAnalyzer completed code paths are correct for--break-simple-no-test.js ok 700 CodePathAnalyzer completed code paths are correct for--break-simple-no-update.js ok 701 CodePathAnalyzer completed code paths are correct for--break-simple.js ok 702 CodePathAnalyzer completed code paths are correct for--continue-always.js ok 703 CodePathAnalyzer completed code paths are correct for--continue-label.js ok 704 CodePathAnalyzer completed code paths are correct for--continue-nest.js ok 705 CodePathAnalyzer completed code paths are correct for--continue-simple-no-test.js ok 706 CodePathAnalyzer completed code paths are correct for--continue-simple-no-update.js ok 707 CodePathAnalyzer completed code paths are correct for--continue-simple.js ok 708 CodePathAnalyzer completed code paths are correct for--direct-nest.js ok 709 CodePathAnalyzer completed code paths are correct for--empty.js ok 710 CodePathAnalyzer completed code paths are correct for--simple-fork-in-test-update.js ok 711 CodePathAnalyzer completed code paths are correct for--simple-no-test.js ok 712 CodePathAnalyzer completed code paths are correct for--simple-no-update.js ok 713 CodePathAnalyzer completed code paths are correct for--simple-test-true.js ok 714 CodePathAnalyzer completed code paths are correct for--simple.js ok 715 CodePathAnalyzer completed code paths are correct for-in--break-always.js ok 716 CodePathAnalyzer completed code paths are correct for-in--break-label.js ok 717 CodePathAnalyzer completed code paths are correct for-in--break-nest.js ok 718 CodePathAnalyzer completed code paths are correct for-in--break-simple.js ok 719 CodePathAnalyzer completed code paths are correct for-in--continue-always.js ok 720 CodePathAnalyzer completed code paths are correct for-in--continue-label.js ok 721 CodePathAnalyzer completed code paths are correct for-in--continue-nest.js ok 722 CodePathAnalyzer completed code paths are correct for-in--continue-simple.js ok 723 CodePathAnalyzer completed code paths are correct for-in--direct-nest.js ok 724 CodePathAnalyzer completed code paths are correct for-in--empty.js ok 725 CodePathAnalyzer completed code paths are correct for-in--simple.js ok 726 CodePathAnalyzer completed code paths are correct for-of--break-always.js ok 727 CodePathAnalyzer completed code paths are correct for-of--break-label.js ok 728 CodePathAnalyzer completed code paths are correct for-of--break-nest.js ok 729 CodePathAnalyzer completed code paths are correct for-of--break-simple.js ok 730 CodePathAnalyzer completed code paths are correct for-of--continue-always.js ok 731 CodePathAnalyzer completed code paths are correct for-of--continue-label.js ok 732 CodePathAnalyzer completed code paths are correct for-of--continue-nest.js ok 733 CodePathAnalyzer completed code paths are correct for-of--continue-simple.js ok 734 CodePathAnalyzer completed code paths are correct for-of--direct-nest.js ok 735 CodePathAnalyzer completed code paths are correct for-of--empty.js ok 736 CodePathAnalyzer completed code paths are correct for-of--simple.js ok 737 CodePathAnalyzer completed code paths are correct function--in-condition-expr.js ok 738 CodePathAnalyzer completed code paths are correct function--in-logical-right.js ok 739 CodePathAnalyzer completed code paths are correct function--simple.js ok 740 CodePathAnalyzer completed code paths are correct if-1.js ok 741 CodePathAnalyzer completed code paths are correct if-2.js ok 742 CodePathAnalyzer completed code paths are correct if-3.js ok 743 CodePathAnalyzer completed code paths are correct if-4.js ok 744 CodePathAnalyzer completed code paths are correct if-5.js ok 745 CodePathAnalyzer completed code paths are correct if-6.js ok 746 CodePathAnalyzer completed code paths are correct logical--do-while-and-1.js ok 747 CodePathAnalyzer completed code paths are correct logical--do-while-and-2.js ok 748 CodePathAnalyzer completed code paths are correct logical--do-while-mix-1.js ok 749 CodePathAnalyzer completed code paths are correct logical--do-while-mix-2.js ok 750 CodePathAnalyzer completed code paths are correct logical--do-while-or-1.js ok 751 CodePathAnalyzer completed code paths are correct logical--do-while-or-2.js ok 752 CodePathAnalyzer completed code paths are correct logical--for-and-1.js ok 753 CodePathAnalyzer completed code paths are correct logical--for-and-2.js ok 754 CodePathAnalyzer completed code paths are correct logical--for-and-3.js ok 755 CodePathAnalyzer completed code paths are correct logical--for-mix-1.js ok 756 CodePathAnalyzer completed code paths are correct logical--for-mix-2.js ok 757 CodePathAnalyzer completed code paths are correct logical--for-mix-3.js ok 758 CodePathAnalyzer completed code paths are correct logical--for-or-1.js ok 759 CodePathAnalyzer completed code paths are correct logical--for-or-2.js ok 760 CodePathAnalyzer completed code paths are correct logical--for-or-3.js ok 761 CodePathAnalyzer completed code paths are correct logical--if-and-1.js ok 762 CodePathAnalyzer completed code paths are correct logical--if-and-2.js ok 763 CodePathAnalyzer completed code paths are correct logical--if-and-3.js ok 764 CodePathAnalyzer completed code paths are correct logical--if-and-4.js ok 765 CodePathAnalyzer completed code paths are correct logical--if-and-5.js ok 766 CodePathAnalyzer completed code paths are correct logical--if-mix-1.js ok 767 CodePathAnalyzer completed code paths are correct logical--if-mix-2.js ok 768 CodePathAnalyzer completed code paths are correct logical--if-or-1.js ok 769 CodePathAnalyzer completed code paths are correct logical--if-or-2.js ok 770 CodePathAnalyzer completed code paths are correct logical--if-or-3.js ok 771 CodePathAnalyzer completed code paths are correct logical--if-or-4.js ok 772 CodePathAnalyzer completed code paths are correct logical--if-or-5.js ok 773 CodePathAnalyzer completed code paths are correct logical--simple-1.js ok 774 CodePathAnalyzer completed code paths are correct logical--simple-2.js ok 775 CodePathAnalyzer completed code paths are correct logical--while-and-1.js ok 776 CodePathAnalyzer completed code paths are correct logical--while-and-2.js ok 777 CodePathAnalyzer completed code paths are correct logical--while-mix-1.js ok 778 CodePathAnalyzer completed code paths are correct logical--while-mix-2.js ok 779 CodePathAnalyzer completed code paths are correct logical--while-or-1.js ok 780 CodePathAnalyzer completed code paths are correct logical--while-or-2.js ok 781 CodePathAnalyzer completed code paths are correct switch--cases-1.js ok 782 CodePathAnalyzer completed code paths are correct switch--cases-2.js ok 783 CodePathAnalyzer completed code paths are correct switch--cases-and-default-1.js ok 784 CodePathAnalyzer completed code paths are correct switch--cases-and-default-2.js ok 785 CodePathAnalyzer completed code paths are correct switch--cases-and-default-3.js ok 786 CodePathAnalyzer completed code paths are correct switch--default-only-1.js ok 787 CodePathAnalyzer completed code paths are correct switch--default-only-2.js ok 788 CodePathAnalyzer completed code paths are correct switch--empty.js ok 789 CodePathAnalyzer completed code paths are correct switch--precedence.js ok 790 CodePathAnalyzer completed code paths are correct switch--single-case-1.js ok 791 CodePathAnalyzer completed code paths are correct switch--single-case-2.js ok 792 CodePathAnalyzer completed code paths are correct try--try-catch-1.js ok 793 CodePathAnalyzer completed code paths are correct try--try-catch-2.js ok 794 CodePathAnalyzer completed code paths are correct try--try-catch-3.js ok 795 CodePathAnalyzer completed code paths are correct try--try-catch-4.js ok 796 CodePathAnalyzer completed code paths are correct try--try-catch-finally-1.js ok 797 CodePathAnalyzer completed code paths are correct try--try-catch-finally-2.js ok 798 CodePathAnalyzer completed code paths are correct try--try-catch-finally-3.js ok 799 CodePathAnalyzer completed code paths are correct try--try-finally-1.js ok 800 CodePathAnalyzer completed code paths are correct try--try-finally-2.js ok 801 CodePathAnalyzer completed code paths are correct try--try-finally-3.js ok 802 CodePathAnalyzer completed code paths are correct try--try-finally-4.js ok 803 CodePathAnalyzer completed code paths are correct try--try-finally-5.js ok 804 CodePathAnalyzer completed code paths are correct try--try-with-for-inof-1.js ok 805 CodePathAnalyzer completed code paths are correct try--try-with-for-inof-2.js ok 806 CodePathAnalyzer completed code paths are correct unreachable-controls.js ok 807 CodePathAnalyzer completed code paths are correct while--break-always.js ok 808 CodePathAnalyzer completed code paths are correct while--break-label.js ok 809 CodePathAnalyzer completed code paths are correct while--break-nest-2.js ok 810 CodePathAnalyzer completed code paths are correct while--break-nest.js ok 811 CodePathAnalyzer completed code paths are correct while--break-simple.js ok 812 CodePathAnalyzer completed code paths are correct while--continue-always.js ok 813 CodePathAnalyzer completed code paths are correct while--continue-label.js ok 814 CodePathAnalyzer completed code paths are correct while--continue-nest.js ok 815 CodePathAnalyzer completed code paths are correct while--continue-simple.js ok 816 CodePathAnalyzer completed code paths are correct while--direct-nest.js ok 817 CodePathAnalyzer completed code paths are correct while--empty.js ok 818 CodePathAnalyzer completed code paths are correct while--simple.js ok 819 CodePathAnalyzer .traverseSegments() should traverse segments from `options.first` to `options.last`. ok 820 CodePathAnalyzer .traverseSegments() should stop immediately when 'controller.break()' was called. ok 821 CodePathAnalyzer .traverseSegments() should skip the current branch when 'controller.skip()' was called. ok 822 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: simple ok 823 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: if ok 824 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: switch ok 825 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: while ok 826 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: for ok 827 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: for-in ok 828 CodePathAnalyzer .traverseSegments() should traverse segments from the first to the end: try-catch ok 829 ConfigCommentParser parseJsonConfig should parse JSON config with one item ok 830 ConfigCommentParser parseJsonConfig should parse JSON config with two items ok 831 ConfigCommentParser parseJsonConfig should parse JSON config with two comma-separated items ok 832 ConfigCommentParser parseJsonConfig should parse JSON config with two items and a string severity ok 833 ConfigCommentParser parseJsonConfig should parse JSON config with two items and options ok 834 ConfigCommentParser parseJsonConfig should parse JSON config with two items and options from plugins ok 835 ConfigCommentParser parseStringConfig should parse String config with one item ok 836 ConfigCommentParser parseStringConfig should parse String config with one item and no value ok 837 ConfigCommentParser parseStringConfig should parse String config with two items ok 838 ConfigCommentParser parseStringConfig should parse String config with two comma-separated items ok 839 ConfigCommentParser parseStringConfig should parse String config with two comma-separated items and no values ok 840 ConfigCommentParser parseListConfig should parse list config with one item ok 841 ConfigCommentParser parseListConfig should parse list config with two items ok 842 ConfigCommentParser parseListConfig should parse list config with two items and exta whitespace ok 843 interpolate() passes through text without {{ }} ok 844 interpolate() passes through text with {{ }} that don’t match a key ok 845 interpolate() Properly interpolates keys in {{ }} ok 846 createReportTranslator old-style call with location should extract the location correctly ok 847 createReportTranslator old-style call without location should use the start location and end location of the node ok 848 createReportTranslator new-style call with all options should include the new-style options in the report ok 849 createReportTranslator new-style call with all options should translate the messageId into a message ok 850 createReportTranslator new-style call with all options should throw when both messageId and message are provided ok 851 createReportTranslator new-style call with all options should throw when an invalid messageId is provided ok 852 createReportTranslator new-style call with all options should throw when no message is provided ok 853 createReportTranslator combining autofixes should merge fixes to one if 'fix' function returns an array of fixes. ok 854 createReportTranslator combining autofixes should merge fixes to one if 'fix' function returns an iterator of fixes. ok 855 createReportTranslator combining autofixes should pass through fixes if only one is present ok 856 createReportTranslator combining autofixes should handle inserting BOM correctly. ok 857 createReportTranslator combining autofixes should handle removing BOM correctly. ok 858 createReportTranslator combining autofixes should throw an assertion error if ranges are overlapped. ok 859 createReportTranslator combining autofixes should include a fix passed as the last argument when location is passed ok 860 createReportTranslator message interpolation should correctly parse a message when being passed all options in an old-style report ok 861 createReportTranslator message interpolation should correctly parse a message when being passed all options in a new-style report ok 862 createReportTranslator message interpolation should correctly parse a message with object keys as numbers ok 863 createReportTranslator message interpolation should correctly parse a message with array ok 864 createReportTranslator message interpolation should allow template parameter with inner whitespace ok 865 createReportTranslator message interpolation should allow template parameter with non-identifier characters ok 866 createReportTranslator message interpolation should allow template parameter wrapped in braces ok 867 createReportTranslator message interpolation should ignore template parameter with no specified value ok 868 createReportTranslator message interpolation should handle leading whitespace in template parameter ok 869 createReportTranslator message interpolation should handle trailing whitespace in template parameter ok 870 createReportTranslator message interpolation should still allow inner whitespace as well as leading/trailing ok 871 createReportTranslator message interpolation should still allow non-identifier characters as well as leading/trailing whitespace ok 872 createReportTranslator location inference should use the provided location when given in an old-style call ok 873 createReportTranslator location inference should use the provided location when given in an new-style call ok 874 createReportTranslator location inference should extract the start and end locations from a node if no location is provided ok 875 createReportTranslator location inference should have 'endLine' and 'endColumn' when 'loc' property has 'end' property. ok 876 createReportTranslator location inference should not have 'endLine' and 'endColumn' when 'loc' property does not have 'end' property. ok 877 createReportTranslator location inference should infer an 'endLine' and 'endColumn' property when using the object-based context.report API ok 878 createReportTranslator converting old-style calls should include a fix passed as the last argument when location is not passed ok 879 createReportTranslator validation should throw an error if node is not an object ok 880 createReportTranslator validation should not throw an error if location is provided and node is not in an old-style call ok 881 createReportTranslator validation should not throw an error if location is provided and node is not in a new-style call ok 882 createReportTranslator validation should throw an error if neither node nor location is provided ok 883 RuleFixer insertTextBefore should return an object with the correct information when called ok 884 RuleFixer insertTextBeforeRange should return an object with the correct information when called ok 885 RuleFixer insertTextAfter should return an object with the correct information when called ok 886 RuleFixer insertTextAfterRange should return an object with the correct information when called ok 887 RuleFixer removeAfter should return an object with the correct information when called ok 888 RuleFixer removeAfterRange should return an object with the correct information when called ok 889 RuleFixer replaceText should return an object with the correct information when called ok 890 RuleFixer replaceTextRange should return an object with the correct information when called ok 891 rules when a rule has been defined should be able to retrieve the rule ok 892 rules when a rule has been defined should return the rule as an object with a create() method if the rule was defined as a function ok 893 rules when a rule has been defined should return the rule as-is if it was defined as an object with a create() method ok 894 rules when a rule is not found should report a linting error if the rule is unknown ok 895 rules when a rule is not found should report a linting error that lists replacements if a rule is known to have been replaced ok 896 rules when loading all rules should iterate all rules ok 897 safe-emitter emit() and on() allows listeners to be registered calls them when emitted ok 898 safe-emitter emit() and on() calls listeners with no `this` value ok 899 SourceCodeFixer constructor Should not be able to add anything to this ok 900 SourceCodeFixer applyFixes() with no BOM shouldFix parameter Should not perform any fixes if 'shouldFix' is false ok 901 SourceCodeFixer applyFixes() with no BOM shouldFix parameter Should perform fixes if 'shouldFix' is not provided ok 902 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should call a function provided as 'shouldFix' for each message ok 903 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should provide a message object as an argument to 'shouldFix' ok 904 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should not perform fixes if 'shouldFix' function returns false ok 905 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should return original text as output if 'shouldFix' function prevents all fixes ok 906 SourceCodeFixer applyFixes() with no BOM shouldFix parameter should only apply fixes for which the 'shouldFix' function returns true ok 907 SourceCodeFixer applyFixes() with no BOM shouldFix parameter is called without access to internal eslint state ok 908 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text at the end of the code ok 909 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text at the beginning of the code ok 910 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text in the middle of the code ok 911 SourceCodeFixer applyFixes() with no BOM Text Insertion should insert text at the beginning, middle, and end of the code ok 912 SourceCodeFixer applyFixes() with no BOM Text Insertion should ignore reversed ranges ok 913 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text at the end of the code ok 914 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text at the beginning of the code ok 915 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text in the middle of the code ok 916 SourceCodeFixer applyFixes() with no BOM Text Replacement should replace text at the beginning and end of the code ok 917 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text at the start of the code ok 918 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text in the middle of the code ok 919 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text towards the end of the code ok 920 SourceCodeFixer applyFixes() with no BOM Text Removal should remove text at the beginning, middle, and end of the code ok 921 SourceCodeFixer applyFixes() with no BOM Combination should replace text at the beginning, remove text in the middle, and insert text at the end ok 922 SourceCodeFixer applyFixes() with no BOM Combination should only apply one fix when ranges overlap ok 923 SourceCodeFixer applyFixes() with no BOM Combination should apply one fix when the end of one range is the same as the start of a previous range overlap ok 924 SourceCodeFixer applyFixes() with no BOM Combination should only apply one fix when ranges overlap and one message has no fix ok 925 SourceCodeFixer applyFixes() with no BOM Combination should apply the same fix when ranges overlap regardless of order ok 926 SourceCodeFixer applyFixes() with no BOM No Fixes should only apply one fix when ranges overlap and one message has no fix ok 927 SourceCodeFixer applyFixes() with no BOM No Fixes should sort the no fix messages correctly ok 928 SourceCodeFixer applyFixes() with no BOM BOM manipulations should insert BOM with an insertion of '' at 0 ok 929 SourceCodeFixer applyFixes() with no BOM BOM manipulations should insert BOM with an insertion of 'foobar' at 0 ok 930 SourceCodeFixer applyFixes() with no BOM BOM manipulations should remove BOM with a negative range ok 931 SourceCodeFixer applyFixes() with no BOM BOM manipulations should replace BOM with a negative range and 'foobar' ok 932 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text at the end of the code ok 933 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text at the beginning of the code ok 934 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text in the middle of the code ok 935 SourceCodeFixer applyFixes() with BOM Text Insertion should insert text at the beginning, middle, and end of the code ok 936 SourceCodeFixer applyFixes() with BOM Text Insertion should ignore reversed ranges ok 937 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text at the end of the code ok 938 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text at the beginning of the code ok 939 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text in the middle of the code ok 940 SourceCodeFixer applyFixes() with BOM Text Replacement should replace text at the beginning and end of the code ok 941 SourceCodeFixer applyFixes() with BOM Text Removal should remove text at the start of the code ok 942 SourceCodeFixer applyFixes() with BOM Text Removal should remove text in the middle of the code ok 943 SourceCodeFixer applyFixes() with BOM Text Removal should remove text towards the end of the code ok 944 SourceCodeFixer applyFixes() with BOM Text Removal should remove text at the beginning, middle, and end of the code ok 945 SourceCodeFixer applyFixes() with BOM Combination should replace text at the beginning, remove text in the middle, and insert text at the end ok 946 SourceCodeFixer applyFixes() with BOM Combination should only apply one fix when ranges overlap ok 947 SourceCodeFixer applyFixes() with BOM Combination should apply one fix when the end of one range is the same as the start of a previous range overlap ok 948 SourceCodeFixer applyFixes() with BOM Combination should only apply one fix when ranges overlap and one message has no fix ok 949 SourceCodeFixer applyFixes() with BOM Combination should apply the same fix when ranges overlap regardless of order ok 950 SourceCodeFixer applyFixes() with BOM No Fixes should only apply one fix when ranges overlap and one message has no fix ok 951 SourceCodeFixer applyFixes() with BOM BOM manipulations should insert BOM with an insertion of '' at 0 ok 952 SourceCodeFixer applyFixes() with BOM BOM manipulations should insert BOM with an insertion of 'foobar' at 0 ok 953 SourceCodeFixer applyFixes() with BOM BOM manipulations should remove BOM with a negative range ok 954 SourceCodeFixer applyFixes() with BOM BOM manipulations should replace BOM with a negative range and 'foobar' ok 955 options --help should return true for .help when passed ok 956 options -h should return true for .help when passed ok 957 options --config should return a string for .config when passed a string ok 958 options -c should return a string for .config when passed a string ok 959 options --ext should return an array with one item when passed .jsx ok 960 options --ext should return an array with two items when passed .js and .jsx ok 961 options --ext should return an array with two items when passed .jsx,.js ok 962 options --ext should return an array one item when not passed ok 963 options --rulesdir should return a string for .rulesdir when passed a string ok 964 options --format should return a string for .format when passed a string ok 965 options --format should return stylish for .format when not passed ok 966 options -f should return a string for .format when passed a string ok 967 options --version should return true for .version when passed ok 968 options -v should return true for .version when passed ok 969 options when asking for help should return string of help text when called ok 970 options --no-ignore should return false for .ignore when passed ok 971 options --ignore-path should return a string for .ignorePath when passed ok 972 options --ignore-pattern should return a string array for .ignorePattern when passed ok 973 options --ignore-pattern should return a string array for multiple values ok 974 options --ignore-pattern should return a string array of properly parsed values, when those values include commas ok 975 options --color should return true for .color when passed --color ok 976 options --color should return false for .color when passed --no-color ok 977 options --stdin should return true for .stdin when passed ok 978 options --stdin-filename should return a string for .stdinFilename when passed ok 979 options --global should return an array for a single occurrence ok 980 options --global should split variable names using commas ok 981 options --global should not split on colons ok 982 options --global should concatenate successive occurrences ok 983 options --plugin should return an array when passed a single occurrence ok 984 options --plugin should return an array when passed a comma-delimiated string ok 985 options --plugin should return an array when passed multiple times ok 986 options --quiet should return true for .quiet when passed ok 987 options --max-warnings should return correct value for .maxWarnings when passed ok 988 options --max-warnings should return -1 for .maxWarnings when not passed ok 989 options --max-warnings should throw an error when supplied with a non-integer ok 990 options --init should return true for --init when passed ok 991 options --fix should return true for --fix when passed ok 992 options --fix-type should return one value with --fix-type is passed ok 993 options --fix-type should return two values when --fix-type is passed twice ok 994 options --fix-type should return two values when --fix-type is passed a comma-separated value ok 995 options --debug should return true for --debug when passed ok 996 options --inline-config should return false when passed --no-inline-config ok 997 options --inline-config should return true for --inline-config when empty ok 998 options --parser should return a string for --parser when passed ok 999 options --print-config should return file path when passed --print-config ok 1000 RuleTester should not throw an error when everything passes ok 1001 RuleTester should throw an error when valid code is invalid ok 1002 RuleTester should throw an error when valid code is invalid ok 1003 RuleTester should throw an error if invalid code is valid ok 1004 RuleTester should throw an error when the error message is wrong ok 1005 RuleTester should throw an error when the error message regex does not match ok 1006 RuleTester should throw an error when the error is not a supported type ok 1007 RuleTester should throw an error when the error is a string and it does not match error message ok 1008 RuleTester should throw an error when the error is a string and it does not match error message ok 1009 RuleTester should not throw an error when the error is a string and it matches error message ok 1010 RuleTester should not throw an error when the error is a regex and it matches error message ok 1011 RuleTester should not throw an error when the error is a regex in an object and it matches error message ok 1012 RuleTester should throw an error when the expected output doesn't match ok 1013 RuleTester should use strict equality to compare output ok 1014 RuleTester should throw an error when the expected output doesn't match and errors is just a number ok 1015 RuleTester should not throw an error when the expected output is null and no errors produce output ok 1016 RuleTester should throw an error when the expected output is null and problems produce output ok 1017 RuleTester should throw an error when the expected output is null and only some problems produce output ok 1018 RuleTester should throw an error if invalid code specifies wrong type ok 1019 RuleTester should throw an error if invalid code specifies wrong line ok 1020 RuleTester should not skip line assertion if line is a falsy value ok 1021 RuleTester should throw an error if invalid code specifies wrong column ok 1022 RuleTester should not skip column assertion if column is a falsy value ok 1023 RuleTester should throw an error if invalid code specifies wrong endLine ok 1024 RuleTester should throw an error if invalid code specifies wrong endColumn ok 1025 RuleTester should throw an error if invalid code has the wrong number of errors ok 1026 RuleTester should throw an error if invalid code does not have errors ok 1027 RuleTester should throw an error if invalid code has the wrong explicit number of errors ok 1028 RuleTester should throw an error if there's a parsing error and output doesn't match ok 1029 RuleTester should not throw an error if invalid code has at least an expected empty error object ok 1030 RuleTester should pass-through the globals config of valid tests to the to rule ok 1031 RuleTester should pass-through the globals config of invalid tests to the to rule ok 1032 RuleTester should pass-through the settings config to rules ok 1033 RuleTester should pass-through the filename to the rule ok 1034 RuleTester should pass-through the options to the rule ok 1035 RuleTester should throw an error if the options are an object ok 1036 RuleTester should throw an error if the options are a number ok 1037 RuleTester should pass-through the parser to the rule ok 1038 RuleTester should prevent invalid options schemas ok 1039 RuleTester should prevent schema violations in options ok 1040 RuleTester should disallow invalid defaults in rules ok 1041 RuleTester throw an error when an unknown config option is included ok 1042 RuleTester throw an error when an invalid config value is included ok 1043 RuleTester should pass-through the tester config to the rule ok 1044 RuleTester should correctly set the globals configuration ok 1045 RuleTester should correctly reset the global configuration ok 1046 RuleTester should enforce the global configuration to be an object ok 1047 RuleTester should pass-through the globals config to the tester then to the to rule ok 1048 RuleTester should throw an error if AST was modified ok 1049 RuleTester should throw an error if AST was modified (at Program) ok 1050 RuleTester should throw an error if AST was modified (at Program:exit) ok 1051 RuleTester should throw an error if no test scenarios given ok 1052 RuleTester should throw an error if no acceptable test scenario object is given ok 1053 RuleTester should assert match if message provided in both test and result. ok 1054 RuleTester should assert match between messageId if provided in both test and result. ok 1055 RuleTester should assert match between resulting message output if messageId and data provided in both test and result ok 1056 RuleTester should throw if user tests for both message and messageId ok 1057 RuleTester should throw if user tests for messageId but the rule doesn't use the messageId meta syntax. ok 1058 RuleTester should throw if user tests for messageId not listed in the rule's meta syntax. ok 1059 RuleTester should throw if data provided without messageId. ok 1060 RuleTester should fail the case if autofix made a syntax error. ok 1061 RuleTester naming test cases should use the first argument as the name of the test suite ok 1062 RuleTester naming test cases should use the test code as the name of the tests for valid code (string form) ok 1063 RuleTester naming test cases should use the test code as the name of the tests for valid code (object form) ok 1064 RuleTester naming test cases should use the test code as the name of the tests for invalid code ok 1065 RuleTester naming test cases should use the empty string as the name of the test if the test case is an empty string ok 1066 RuleTester SourceCodegetComments() should throw if called from a valid test case ok 1067 RuleTester SourceCodegetComments() should throw if called from an invalid test case ok 1068 accessor-pairs valid var { get: foo } = bar; ({ set: foo } = bar); ok 1069 accessor-pairs valid var { set } = foo; ({ get } = foo); ok 1070 accessor-pairs valid var o = { get a() {} } ok 1071 accessor-pairs valid var o = { get a() {} } ok 1072 accessor-pairs valid var o = {}; ok 1073 accessor-pairs valid var o = { a: 1 }; ok 1074 accessor-pairs valid var o = { a }; ok 1075 accessor-pairs valid var o = { a: get }; ok 1076 accessor-pairs valid var o = { a: set }; ok 1077 accessor-pairs valid var o = { get: function(){} }; ok 1078 accessor-pairs valid var o = { set: function(foo){} }; ok 1079 accessor-pairs valid var o = { get }; ok 1080 accessor-pairs valid var o = { set }; ok 1081 accessor-pairs valid var o = { [get]: function() {} }; ok 1082 accessor-pairs valid var o = { [set]: function(foo) {} }; ok 1083 accessor-pairs valid var o = { get() {} }; ok 1084 accessor-pairs valid var o = { set(foo) {} }; ok 1085 accessor-pairs valid var o = { get a() {} }; ok 1086 accessor-pairs valid var o = { get a() {} }; ok 1087 accessor-pairs valid var o = { set a(foo) {} }; ok 1088 accessor-pairs valid var o = { set a(foo) {} }; ok 1089 accessor-pairs valid var o = { set a(foo) {} }; ok 1090 accessor-pairs valid var o = { get a() {}, set a(foo) {} }; ok 1091 accessor-pairs valid var o = { get a() {}, set a(foo) {} }; ok 1092 accessor-pairs valid var o = { get a() {}, set a(foo) {} }; ok 1093 accessor-pairs valid var o = { set a(foo) {}, get a() {} }; ok 1094 accessor-pairs valid var o = { get 'a'() {}, set 'a'(foo) {} }; ok 1095 accessor-pairs valid var o = { get a() {}, set 'a'(foo) {} }; ok 1096 accessor-pairs valid var o = { get ['abc']() {}, set ['abc'](foo) {} }; ok 1097 accessor-pairs valid var o = { get [1e2]() {}, set 100(foo) {} }; ok 1098 accessor-pairs valid var o = { get abc() {}, set [`abc`](foo) {} }; ok 1099 accessor-pairs valid var o = { get ['123']() {}, set 123(foo) {} }; ok 1100 accessor-pairs valid var o = { get [a]() {}, set [a](foo) {} }; ok 1101 accessor-pairs valid var o = { get [a]() {}, set [(a)](foo) {} }; ok 1102 accessor-pairs valid var o = { get [(a)]() {}, set [a](foo) {} }; ok 1103 accessor-pairs valid var o = { get [a]() {}, set [ a ](foo) {} }; ok 1104 accessor-pairs valid var o = { get [/*comment*/a/*comment*/]() {}, set [a](foo) {} }; ok 1105 accessor-pairs valid var o = { get [f()]() {}, set [f()](foo) {} }; ok 1106 accessor-pairs valid var o = { get [f(a)]() {}, set [f(a)](foo) {} }; ok 1107 accessor-pairs valid var o = { get [a + b]() {}, set [a + b](foo) {} }; ok 1108 accessor-pairs valid var o = { get [`${a}`]() {}, set [`${a}`](foo) {} }; ok 1109 accessor-pairs valid var o = { get a() {}, set a(foo) {}, get b() {}, set b(bar) {} }; ok 1110 accessor-pairs valid var o = { get a() {}, set c(foo) {}, set a(bar) {}, get b() {}, get c() {}, set b(baz) {} }; ok 1111 accessor-pairs valid var o = { get a() {}, set a(foo) {}, b: bar }; ok 1112 accessor-pairs valid var o = { get a() {}, b, set a(foo) {} }; ok 1113 accessor-pairs valid var o = { get a() {}, ...b, set a(foo) {} }; ok 1114 accessor-pairs valid var o = { get a() {}, set a(foo) {}, ...a }; ok 1115 accessor-pairs valid var o = { get a() {}, get a() {}, set a(foo) {}, }; ok 1116 accessor-pairs valid var o = { get a() {}, set a(foo) {}, get a() {} }; ok 1117 accessor-pairs valid var o = { get a() {}, set a(foo) {}, set a(foo) {} }; ok 1118 accessor-pairs valid var o = { set a(bar) {}, get a() {}, set a(foo) {} }; ok 1119 accessor-pairs valid var o = { get a() {}, get a() {} }; ok 1120 accessor-pairs valid var o = { set a(foo) {}, set a(foo) {} }; ok 1121 accessor-pairs valid var o = { get a() {}, set a(foo) {}, a }; ok 1122 accessor-pairs valid var o = { a, get a() {}, set a(foo) {} }; ok 1123 accessor-pairs valid var o = { get a() {}, a:1, set a(foo) {} }; ok 1124 accessor-pairs valid var o = {a: 1};\u000a Object.defineProperty(o, 'b', \u000a{set: function(value) {\u000a val = value; \u000a},\u000a get: function() {\u000a return val; \u000a} \u000a}); ok 1125 accessor-pairs valid var o = {set: function() {}} ok 1126 accessor-pairs valid Object.defineProperties(obj, {set: {value: function() {}}}); ok 1127 accessor-pairs valid Object.create(null, {set: {value: function() {}}}); ok 1128 accessor-pairs valid var o = {get: function() {}} ok 1129 accessor-pairs valid var o = {[set]: function() {}} ok 1130 accessor-pairs valid var set = 'value'; Object.defineProperty(obj, 'foo', {[set]: function(value) {}}); ok 1131 accessor-pairs valid class A { set a(foo) {} } ok 1132 accessor-pairs valid class A { get a() {} set b(foo) {} } ok 1133 accessor-pairs valid class A { get a() {} } ok 1134 accessor-pairs valid class A { get a() {} } ok 1135 accessor-pairs valid class A { set a(foo) {} } ok 1136 accessor-pairs valid class A { static get a() {} } ok 1137 accessor-pairs valid class A { static set a(foo) {} } ok 1138 accessor-pairs valid A = class { get a() {} }; ok 1139 accessor-pairs valid A = class { get a() {} set b(foo) {} }; ok 1140 accessor-pairs valid class A { set a(foo) {} } ok 1141 accessor-pairs valid class A { get a() {} set b(foo) {} static get c() {} static set d(bar) {} } ok 1142 accessor-pairs valid (class A { get a() {} set b(foo) {} static get c() {} static set d(bar) {} }); ok 1143 accessor-pairs valid class A { get a() {} } ok 1144 accessor-pairs valid class A { set a(foo) {} } ok 1145 accessor-pairs valid class A { static get a() {} } ok 1146 accessor-pairs valid class A { static set a(foo) {} } ok 1147 accessor-pairs valid A = class { set a(foo) {} }; ok 1148 accessor-pairs valid class A { get a() {} set b(foo) {} static get c() {} static set d(bar) {} } ok 1149 accessor-pairs valid class A {} ok 1150 accessor-pairs valid (class {}) ok 1151 accessor-pairs valid class A { constructor () {} } ok 1152 accessor-pairs valid class A { a() {} } ok 1153 accessor-pairs valid class A { static a() {} 'b'() {} } ok 1154 accessor-pairs valid class A { [a]() {} } ok 1155 accessor-pairs valid A = class { a() {} static a() {} b() {} static c() {} } ok 1156 accessor-pairs valid class A { get a() {} set a(foo) {} } ok 1157 accessor-pairs valid class A { set a(foo) {} get a() {} } ok 1158 accessor-pairs valid class A { static get a() {} static set a(foo) {} } ok 1159 accessor-pairs valid class A { static set a(foo) {} static get a() {} } ok 1160 accessor-pairs valid (class { set a(foo) {} get a() {} }); ok 1161 accessor-pairs valid class A { get 'a'() {} set ['a'](foo) {} } ok 1162 accessor-pairs valid class A { set [`a`](foo) {} get a() {} } ok 1163 accessor-pairs valid class A { get 'a'() {} set a(foo) {} } ok 1164 accessor-pairs valid A = class { static get 1e2() {} static set [100](foo) {} }; ok 1165 accessor-pairs valid class A { get [a]() {} set [a](foo) {} } ok 1166 accessor-pairs valid A = class { set [(f())](foo) {} get [(f())]() {} }; ok 1167 accessor-pairs valid class A { static set [f(a)](foo) {} static get [f(a)]() {} } ok 1168 accessor-pairs valid class A { get a() {} set b(foo) {} set a(bar) {} get b() {} } ok 1169 accessor-pairs valid class A { get a() {} set a(bar) {} b() {} set c(foo) {} get c() {} } ok 1170 accessor-pairs valid (class { get a() {} static set a(foo) {} set a(bar) {} static get a() {} }); ok 1171 accessor-pairs valid class A { get a() {} b() {} set a(foo) {} } ok 1172 accessor-pairs valid class A { set a(foo) {} get a() {} b() {} } ok 1173 accessor-pairs valid class A { a() {} get b() {} c() {} set b(foo) {} d() {} } ok 1174 accessor-pairs valid class A { get a() {} set a(foo) {} static a() {} } ok 1175 accessor-pairs valid A = class { static get a() {} static b() {} static set a(foo) {} }; ok 1176 accessor-pairs valid A = class { static set a(foo) {} static get a() {} a() {} }; ok 1177 accessor-pairs valid class A { get a() {} get a() {} set a(foo) {} } ok 1178 accessor-pairs valid class A { get [a]() {} set [a](foo) {} set [a](foo) {} } ok 1179 accessor-pairs valid class A { get a() {} set 'a'(foo) {} get [`a`]() {} } ok 1180 accessor-pairs valid A = class { get a() {} set a(foo) {} a() {} } ok 1181 accessor-pairs valid A = class { a() {} get a() {} set a(foo) {} } ok 1182 accessor-pairs valid class A { static set a(foo) {} static set a(foo) {} static get a() {} } ok 1183 accessor-pairs valid class A { static get a() {} static set a(foo) {} static get a() {} } ok 1184 accessor-pairs valid class A { static set a(foo) {} static get a() {} static a() {} } ok 1185 accessor-pairs valid class A { get a() {} a() {} set a(foo) {} } ok 1186 accessor-pairs valid class A { static set a(foo) {} static a() {} static get a() {} } ok 1187 accessor-pairs invalid var o = { set a(value) {} }; ok 1188 accessor-pairs invalid var o = { set a(value) {} }; ok 1189 accessor-pairs invalid var o = { set a(value) {} }; ok 1190 accessor-pairs invalid var o = { set a(value) {} }; ok 1191 accessor-pairs invalid var o = { get a() {} }; ok 1192 accessor-pairs invalid var o = { get a() {} }; ok 1193 accessor-pairs invalid var o = { get a() {} }; ok 1194 accessor-pairs invalid var o = { get abc() {} }; ok 1195 accessor-pairs invalid var o = { get 'abc'() {} }; ok 1196 accessor-pairs invalid var o = { get 123() {} }; ok 1197 accessor-pairs invalid var o = { get 1e2() {} }; ok 1198 accessor-pairs invalid var o = { get ['abc']() {} }; ok 1199 accessor-pairs invalid var o = { get [`abc`]() {} }; ok 1200 accessor-pairs invalid var o = { get [123]() {} }; ok 1201 accessor-pairs invalid var o = { get [abc]() {} }; ok 1202 accessor-pairs invalid var o = { get [f(abc)]() {} }; ok 1203 accessor-pairs invalid var o = { get [a + b]() {} }; ok 1204 accessor-pairs invalid var o = { set abc(foo) {} }; ok 1205 accessor-pairs invalid var o = { set 'abc'(foo) {} }; ok 1206 accessor-pairs invalid var o = { set 123(foo) {} }; ok 1207 accessor-pairs invalid var o = { set 1e2(foo) {} }; ok 1208 accessor-pairs invalid var o = { set ['abc'](foo) {} }; ok 1209 accessor-pairs invalid var o = { set [`abc`](foo) {} }; ok 1210 accessor-pairs invalid var o = { set [123](foo) {} }; ok 1211 accessor-pairs invalid var o = { set [abc](foo) {} }; ok 1212 accessor-pairs invalid var o = { set [f(abc)](foo) {} }; ok 1213 accessor-pairs invalid var o = { set [a + b](foo) {} }; ok 1214 accessor-pairs invalid var o = { get a() {}, set b(foo) {} }; ok 1215 accessor-pairs invalid var o = { set a(foo) {}, get b() {} }; ok 1216 accessor-pairs invalid var o = { get 1() {}, set b(foo) {} }; ok 1217 accessor-pairs invalid var o = { get a() {}, set 1(foo) {} }; ok 1218 accessor-pairs invalid var o = { get a() {}, set 'a '(foo) {} }; ok 1219 accessor-pairs invalid var o = { get ' a'() {}, set 'a'(foo) {} }; ok 1220 accessor-pairs invalid var o = { get ''() {}, set ' '(foo) {} }; ok 1221 accessor-pairs invalid var o = { get ''() {}, set null(foo) {} }; ok 1222 accessor-pairs invalid var o = { get [`a`]() {}, set b(foo) {} }; ok 1223 accessor-pairs invalid var o = { get [a]() {}, set [b](foo) {} }; ok 1224 accessor-pairs invalid var o = { get [a]() {}, set a(foo) {} }; ok 1225 accessor-pairs invalid var o = { get a() {}, set [a](foo) {} }; ok 1226 accessor-pairs invalid var o = { get [a + b]() {}, set [a - b](foo) {} }; ok 1227 accessor-pairs invalid var o = { get [`${0} `]() {}, set [`${0}`](foo) {} }; ok 1228 accessor-pairs invalid var o = { get a() {}, get b() {} }; ok 1229 accessor-pairs invalid var o = { set a(foo) {}, set b(bar) {} }; ok 1230 accessor-pairs invalid var o = { get a() {}, set b(foo) {}, set c(foo) {}, get d() {} }; ok 1231 accessor-pairs invalid var o1 = { get a() {} }, o2 = { set a(foo) {} }; ok 1232 accessor-pairs invalid var o1 = { set a(foo) {} }, o2 = { get a() {} }; ok 1233 accessor-pairs invalid var o = { get a() {}, get b() {}, set b(foo) {} }; ok 1234 accessor-pairs invalid var o = { get b() {}, get a() {}, set b(foo) {} }; ok 1235 accessor-pairs invalid var o = { get b() {}, set b(foo) {}, get a() {} }; ok 1236 accessor-pairs invalid var o = { set a(foo) {}, get b() {}, set b(bar) {} }; ok 1237 accessor-pairs invalid var o = { get b() {}, set a(foo) {}, set b(bar) {} }; ok 1238 accessor-pairs invalid var o = { get b() {}, set b(bar) {}, set a(foo) {} }; ok 1239 accessor-pairs invalid var o = { get v1() {}, set i1(foo) {}, get v2() {}, set v2(bar) {}, get i2() {}, set v1(baz) {} }; ok 1240 accessor-pairs invalid var o = { get a() {}, get a() {} }; ok 1241 accessor-pairs invalid var o = { set a(foo) {}, set a(foo) {} }; ok 1242 accessor-pairs invalid var o = { a, get b() {}, c }; ok 1243 accessor-pairs invalid var o = { a, get b() {}, c, set d(foo) {} }; ok 1244 accessor-pairs invalid var o = { get a() {}, a:1 }; ok 1245 accessor-pairs invalid var o = { a, get a() {} }; ok 1246 accessor-pairs invalid var o = { set a(foo) {}, a:1 }; ok 1247 accessor-pairs invalid var o = { a, set a(foo) {} }; ok 1248 accessor-pairs invalid var o = { get a() {}, ...b }; ok 1249 accessor-pairs invalid var o = { get a() {}, ...a }; ok 1250 accessor-pairs invalid var o = { set a(foo) {}, ...a }; ok 1251 accessor-pairs invalid var o = { get a() {} }; ok 1252 accessor-pairs invalid var o = {\u000a set [\u000a a](foo) {} }; ok 1253 accessor-pairs invalid var o = {d: 1};\u000a Object.defineProperty(o, 'c', \u000a{set: function(value) {\u000a val = value; \u000a} \u000a}); ok 1254 accessor-pairs invalid Reflect.defineProperty(obj, 'foo', {set: function(value) {}}); ok 1255 accessor-pairs invalid Object.defineProperties(obj, {foo: {set: function(value) {}}}); ok 1256 accessor-pairs invalid Object.create(null, {foo: {set: function(value) {}}}); ok 1257 accessor-pairs invalid class A { set a(value) {} } ok 1258 accessor-pairs invalid class A { static set a(value) {} } ok 1259 accessor-pairs invalid A = class { set a(value) {} }; ok 1260 accessor-pairs invalid (class A { static set a(value) {} }); ok 1261 accessor-pairs invalid class A { set a(value) {} } ok 1262 accessor-pairs invalid A = class { static set a(value) {} }; ok 1263 accessor-pairs invalid let foo = class A { get a() {} }; ok 1264 accessor-pairs invalid class A { static get a() {} }; ok 1265 accessor-pairs invalid (class { get a() {} }); ok 1266 accessor-pairs invalid class A { get abc() {} } ok 1267 accessor-pairs invalid A = class { static set 'abc'(foo) {} }; ok 1268 accessor-pairs invalid (class { get 123() {} }); ok 1269 accessor-pairs invalid class A { static get 1e2() {} } ok 1270 accessor-pairs invalid A = class { get ['abc']() {} }; ok 1271 accessor-pairs invalid class A { set [`abc`](foo) {} } ok 1272 accessor-pairs invalid class A { static get [123]() {} } ok 1273 accessor-pairs invalid class A { get [abc]() {} } ok 1274 accessor-pairs invalid class A { static get [f(abc)]() {} } ok 1275 accessor-pairs invalid A = class { set [a + b](foo) {} }; ok 1276 accessor-pairs invalid class A { get ['constructor']() {} } ok 1277 accessor-pairs invalid class A { get a() {} set b(foo) {} } ok 1278 accessor-pairs invalid A = class { set a(foo) {} get b() {} } ok 1279 accessor-pairs invalid A = class { static get a() {} static set b(foo) {} } ok 1280 accessor-pairs invalid class A { get a() {} set b(foo) {} } ok 1281 accessor-pairs invalid class A { get a() {} set b(foo) {} } ok 1282 accessor-pairs invalid class A { get 'a '() {} set 'a'(foo) {} } ok 1283 accessor-pairs invalid class A { get 'a'() {} set 1(foo) {} } ok 1284 accessor-pairs invalid class A { get 1() {} set 2(foo) {} } ok 1285 accessor-pairs invalid class A { get ''() {} set null(foo) {} } ok 1286 accessor-pairs invalid class A { get a() {} set [a](foo) {} } ok 1287 accessor-pairs invalid class A { get [a]() {} set [b](foo) {} } ok 1288 accessor-pairs invalid class A { get [a]() {} set [a++](foo) {} } ok 1289 accessor-pairs invalid class A { get [a + b]() {} set [a - b](foo) {} } ok 1290 accessor-pairs invalid class A { get a() {} static set a(foo) {} } ok 1291 accessor-pairs invalid A = class { static get a() {} set a(foo) {} }; ok 1292 accessor-pairs invalid class A { set [a](foo) {} static get [a]() {} } ok 1293 accessor-pairs invalid class A { static set [a](foo) {} get [a]() {} } ok 1294 accessor-pairs invalid class A { get a() {} get b() {} } ok 1295 accessor-pairs invalid A = class { get a() {} get [b]() {} } ok 1296 accessor-pairs invalid class A { get [a]() {} get [b]() {} } ok 1297 accessor-pairs invalid A = class { set a(foo) {} set b(bar) {} }; ok 1298 accessor-pairs invalid class A { static get a() {} static get b() {} } ok 1299 accessor-pairs invalid A = class { static set a(foo) {} static set b(bar) {} } ok 1300 accessor-pairs invalid class A { static get a() {} set b(foo) {} static set c(bar) {} get d() {} } ok 1301 accessor-pairs invalid class A { get a() {} } class B { set a(foo) {} } ok 1302 accessor-pairs invalid A = class { set a(foo) {} }, class { get a() {} }; ok 1303 accessor-pairs invalid A = class { get a() {} }, { set a(foo) {} } ok 1304 accessor-pairs invalid A = { get a() {} }, class { set a(foo) {} } ok 1305 accessor-pairs invalid class A { get a() {} get b() {} set b(foo) {} } ok 1306 accessor-pairs invalid A = class { get b() {} get a() {} set b(foo) {} }; ok 1307 accessor-pairs invalid class A { set b(foo) {} get b() {} set a(bar) {} } ok 1308 accessor-pairs invalid A = class { static get b() {} set a(foo) {} static set b(bar) {} }; ok 1309 accessor-pairs invalid class A { static set a(foo) {} get b() {} set b(bar) {} } ok 1310 accessor-pairs invalid class A { get b() {} static get a() {} set b(bar) {} } ok 1311 accessor-pairs invalid class A { static set b(foo) {} static get a() {} static get b() {} } ok 1312 accessor-pairs invalid class A { get [v1](){} static set i1(foo){} static set v2(bar){} get [i2](){} static get i3(){} set [v1](baz){} static get v2(){} set i4(quux){} } ok 1313 accessor-pairs invalid class A { get a() {} get a() {} } ok 1314 accessor-pairs invalid A = class { set a(foo) {} set a(foo) {} }; ok 1315 accessor-pairs invalid A = class { static get a() {} static get a() {} }; ok 1316 accessor-pairs invalid class A { set a(foo) {} set a(foo) {} } ok 1317 accessor-pairs invalid class A { a() {} get b() {} c() {} } ok 1318 accessor-pairs invalid A = class { a() {} get b() {} c() {} set d(foo) {} }; ok 1319 accessor-pairs invalid class A { static a() {} get b() {} static c() {} } ok 1320 accessor-pairs invalid class A { a() {} get a() {} } ok 1321 accessor-pairs invalid A = class { static a() {} set a(foo) {} }; ok 1322 accessor-pairs invalid class A { a() {} static get b() {} c() {} } ok 1323 accessor-pairs invalid A = class { static a() {} static set b(foo) {} static c() {} d() {} }; ok 1324 accessor-pairs invalid class A { a() {} static get a() {} a() {} } ok 1325 accessor-pairs invalid class A { static set a(foo) {} static a() {} } ok 1326 accessor-pairs invalid class A { get a() {} }; ok 1327 accessor-pairs invalid A = class {\u000a set [\u000a a](foo) {} }; ok 1328 accessor-pairs invalid class A { static get a() {} }; ok 1329 array-bracket-newline valid var foo = []; ok 1330 array-bracket-newline valid var foo = [1]; ok 1331 array-bracket-newline valid var foo = /* any comment */[1]; ok 1332 array-bracket-newline valid var foo = /* any comment */\u000a[1]; ok 1333 array-bracket-newline valid var foo = [1, 2]; ok 1334 array-bracket-newline valid var foo = [ // any comment\u000a1, 2\u000a]; ok 1335 array-bracket-newline valid var foo = [\u000a// any comment\u000a1, 2\u000a]; ok 1336 array-bracket-newline valid var foo = [\u000a1, 2\u000a// any comment\u000a]; ok 1337 array-bracket-newline valid var foo = [\u000a1,\u000a2\u000a]; ok 1338 array-bracket-newline valid var foo = [\u000afunction foo() {\u000areturn dosomething();\u000a}\u000a]; ok 1339 array-bracket-newline valid var foo = [/* \u000aany comment\u000a */]; ok 1340 array-bracket-newline valid var foo = [/* single line multiline comment for no real reason */]; ok 1341 array-bracket-newline valid var foo = [\u000a]; ok 1342 array-bracket-newline valid var foo = [\u000a1\u000a]; ok 1343 array-bracket-newline valid var foo = [\u000a// any\u000a1\u000a]; ok 1344 array-bracket-newline valid var foo = [\u000a/* any */\u000a1\u000a]; ok 1345 array-bracket-newline valid var foo = [\u000a1, 2\u000a]; ok 1346 array-bracket-newline valid var foo = [\u000a1, 2 // any comment\u000a]; ok 1347 array-bracket-newline valid var foo = [\u000a1, 2 /* any comment */\u000a]; ok 1348 array-bracket-newline valid var foo = [\u000a1,\u000a2\u000a]; ok 1349 array-bracket-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1350 array-bracket-newline valid var foo = []; ok 1351 array-bracket-newline valid var foo = [1]; ok 1352 array-bracket-newline valid var foo = [/* any comment */1]; ok 1353 array-bracket-newline valid var foo = [1, 2]; ok 1354 array-bracket-newline valid var foo = [1,\u000a2]; ok 1355 array-bracket-newline valid var foo = [1,\u000a/* any comment */\u000a2]; ok 1356 array-bracket-newline valid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1357 array-bracket-newline valid var a = [] ok 1358 array-bracket-newline valid var a = [\u000a] ok 1359 array-bracket-newline valid var a = [1] ok 1360 array-bracket-newline valid var a = [\u000a1\u000a] ok 1361 array-bracket-newline valid var foo = []; ok 1362 array-bracket-newline valid var foo = [1]; ok 1363 array-bracket-newline valid var foo = /* any comment */[1]; ok 1364 array-bracket-newline valid var foo = /* any comment */\u000a[1]; ok 1365 array-bracket-newline valid var foo = [1, 2]; ok 1366 array-bracket-newline valid var foo = [ // any comment\u000a1, 2\u000a]; ok 1367 array-bracket-newline valid var foo = [\u000a// any comment\u000a1, 2\u000a]; ok 1368 array-bracket-newline valid var foo = [\u000a1, 2\u000a// any comment\u000a]; ok 1369 array-bracket-newline valid var foo = [\u000a1,\u000a2\u000a]; ok 1370 array-bracket-newline valid var foo = [\u000afunction foo() {\u000areturn dosomething();\u000a}\u000a]; ok 1371 array-bracket-newline valid var foo = [/* \u000aany comment\u000a */]; ok 1372 array-bracket-newline valid var foo = []; ok 1373 array-bracket-newline valid var foo = [1]; ok 1374 array-bracket-newline valid var foo = [1]/* any comment*/; ok 1375 array-bracket-newline valid var foo = [1]\u000a/* any comment*/\u000a; ok 1376 array-bracket-newline valid var foo = [1, 2]; ok 1377 array-bracket-newline valid var foo = [1,\u000a2]; ok 1378 array-bracket-newline valid var foo = [function foo() {\u000areturn dosomething();\u000a}]; ok 1379 array-bracket-newline valid var foo = []; ok 1380 array-bracket-newline valid var foo = [1]; ok 1381 array-bracket-newline valid var foo = [\u000a1, 2\u000a]; ok 1382 array-bracket-newline valid var foo = [\u000a1,\u000a2\u000a]; ok 1383 array-bracket-newline valid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1384 array-bracket-newline valid var foo = [\u000a]; ok 1385 array-bracket-newline valid var foo = [\u000a1\u000a]; ok 1386 array-bracket-newline valid var foo = [\u000a1, 2\u000a]; ok 1387 array-bracket-newline valid var foo = [\u000a1,\u000a2\u000a]; ok 1388 array-bracket-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1389 array-bracket-newline valid var foo = []; ok 1390 array-bracket-newline valid var foo = [1]; ok 1391 array-bracket-newline valid var foo = [1, 2]; ok 1392 array-bracket-newline valid var foo = [1,\u000a2]; ok 1393 array-bracket-newline valid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1394 array-bracket-newline valid var foo = []; ok 1395 array-bracket-newline valid var foo = [1]; ok 1396 array-bracket-newline valid var foo = [1, 2]; ok 1397 array-bracket-newline valid var foo = [\u000a1,\u000a2\u000a]; ok 1398 array-bracket-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1399 array-bracket-newline valid var a = []; ok 1400 array-bracket-newline valid var b = [1]; ok 1401 array-bracket-newline valid var b = [ // any comment\u000a1\u000a]; ok 1402 array-bracket-newline valid var b = [ /* any comment */ 1]; ok 1403 array-bracket-newline valid var c = [\u000a1, 2\u000a]; ok 1404 array-bracket-newline valid var c = [\u000a/* any comment */1, 2\u000a]; ok 1405 array-bracket-newline valid var c = [\u000a1, /* any comment */ 2\u000a]; ok 1406 array-bracket-newline valid var d = [\u000a1,\u000a2\u000a]; ok 1407 array-bracket-newline valid var e = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1408 array-bracket-newline valid var [] = foo ok 1409 array-bracket-newline valid var [a] = foo; ok 1410 array-bracket-newline valid var /* any comment */[a] = foo; ok 1411 array-bracket-newline valid var /* any comment */\u000a[a] = foo; ok 1412 array-bracket-newline valid var [a, b] = foo; ok 1413 array-bracket-newline valid var [ // any comment\u000aa, b\u000a] = foo; ok 1414 array-bracket-newline valid var [\u000a// any comment\u000aa, b\u000a] = foo; ok 1415 array-bracket-newline valid var [\u000aa, b\u000a// any comment\u000a] = foo; ok 1416 array-bracket-newline valid var [\u000aa,\u000ab\u000a] = foo; ok 1417 array-bracket-newline valid var [\u000a] = foo; ok 1418 array-bracket-newline valid var [\u000aa\u000a] = foo; ok 1419 array-bracket-newline valid var [\u000a// any\u000aa\u000a] = foo; ok 1420 array-bracket-newline valid var [\u000a/* any */\u000aa\u000a] = foo; ok 1421 array-bracket-newline valid var [\u000aa, b\u000a] = foo; ok 1422 array-bracket-newline valid var [\u000aa, b // any comment\u000a] = foo; ok 1423 array-bracket-newline valid var [\u000aa, b /* any comment */\u000a] = foo; ok 1424 array-bracket-newline valid var [\u000aa,\u000ab\u000a] = foo; ok 1425 array-bracket-newline valid var [] = foo ok 1426 array-bracket-newline valid var [\u000a] = foo ok 1427 array-bracket-newline valid var [a] = foo ok 1428 array-bracket-newline valid var [\u000aa\u000a] = foo ok 1429 array-bracket-newline valid var [] = foo; ok 1430 array-bracket-newline valid var [a] = foo; ok 1431 array-bracket-newline valid var /* any comment */[a] = foo; ok 1432 array-bracket-newline valid var /* any comment */\u000a[a] = foo; ok 1433 array-bracket-newline valid var [a, b] = foo; ok 1434 array-bracket-newline valid var [ // any comment\u000aa, b\u000a] = foo; ok 1435 array-bracket-newline valid var [\u000a// any comment\u000aa, b\u000a] = foo; ok 1436 array-bracket-newline valid var [\u000aa, b\u000a// any comment\u000a] = foo; ok 1437 array-bracket-newline valid var [\u000aa,\u000ab\u000a] = foo; ok 1438 array-bracket-newline invalid var foo = []; ok 1439 array-bracket-newline invalid var foo = [1]; ok 1440 array-bracket-newline invalid var foo = [ // any comment\u000a1]; ok 1441 array-bracket-newline invalid var foo = [ /* any comment */\u000a1]; ok 1442 array-bracket-newline invalid var foo = [1, 2]; ok 1443 array-bracket-newline invalid var foo = [1, 2 // any comment\u000a]; ok 1444 array-bracket-newline invalid var foo = [1, 2 /* any comment */]; ok 1445 array-bracket-newline invalid var foo = [1,\u000a2]; ok 1446 array-bracket-newline invalid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1447 array-bracket-newline invalid var foo = [\u000a]; ok 1448 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1449 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1450 array-bracket-newline invalid var foo = [ /* any comment */\u000a1, 2\u000a]; ok 1451 array-bracket-newline invalid var foo = [\u000a1, 2\u000a/* any comment */]; ok 1452 array-bracket-newline invalid var foo = [ // any comment\u000a1, 2\u000a]; ok 1453 array-bracket-newline invalid var foo = [\u000a1,\u000a2\u000a]; ok 1454 array-bracket-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1455 array-bracket-newline invalid var foo = [\u000a1] ok 1456 array-bracket-newline invalid var foo = [1\u000a] ok 1457 array-bracket-newline invalid var foo = [\u000a]; ok 1458 array-bracket-newline invalid var foo = [\u000a// any comment\u000a]; ok 1459 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1460 array-bracket-newline invalid var foo = [\u000a1, 2\u000a]; ok 1461 array-bracket-newline invalid var foo = [1,\u000a2]; ok 1462 array-bracket-newline invalid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1463 array-bracket-newline invalid var foo = [\u000a]; ok 1464 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1465 array-bracket-newline invalid var foo = [1, 2]; ok 1466 array-bracket-newline invalid var foo = [1,\u000a2]; ok 1467 array-bracket-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1468 array-bracket-newline invalid var foo = []; ok 1469 array-bracket-newline invalid var foo = [1]; ok 1470 array-bracket-newline invalid var foo = [1, 2]; ok 1471 array-bracket-newline invalid var foo = [1,\u000a2]; ok 1472 array-bracket-newline invalid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1473 array-bracket-newline invalid var foo = [\u000a]; ok 1474 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1475 array-bracket-newline invalid var foo = [\u000a1, 2\u000a]; ok 1476 array-bracket-newline invalid var foo = [\u000a1,\u000a2\u000a]; ok 1477 array-bracket-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1478 array-bracket-newline invalid var foo = [\u000a]; ok 1479 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1480 array-bracket-newline invalid var foo = [\u000a1, 2\u000a]; ok 1481 array-bracket-newline invalid var foo = [1,\u000a2]; ok 1482 array-bracket-newline invalid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1483 array-bracket-newline invalid var foo = [\u000a]; ok 1484 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1485 array-bracket-newline invalid var foo = [1, 2]; ok 1486 array-bracket-newline invalid var foo = [1,\u000a2]; ok 1487 array-bracket-newline invalid var foo = [function foo() {\u000adosomething();\u000a}]; ok 1488 array-bracket-newline invalid var foo = [\u000a1, 2]; ok 1489 array-bracket-newline invalid var foo = [\u00091, 2]; ok 1490 array-bracket-newline invalid var foo = [1,\u000a2\u000a]; ok 1491 array-bracket-newline invalid var foo = [\u000a]; ok 1492 array-bracket-newline invalid var foo = [\u000a1\u000a]; ok 1493 array-bracket-newline invalid var foo = [\u000a1, 2\u000a]; ok 1494 array-bracket-newline invalid var foo = [\u000a1,\u000a2\u000a]; ok 1495 array-bracket-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}\u000a]; ok 1496 array-bracket-newline invalid var [] = foo; ok 1497 array-bracket-newline invalid var [a] = foo; ok 1498 array-bracket-newline invalid var [ // any comment\u000aa] = foo; ok 1499 array-bracket-newline invalid var [ /* any comment */\u000aa] = foo; ok 1500 array-bracket-newline invalid var [a, b] = foo; ok 1501 array-bracket-newline invalid var [a, b // any comment\u000a] = foo; ok 1502 array-bracket-newline invalid var [a, b /* any comment */] = foo; ok 1503 array-bracket-newline invalid var [a,\u000ab] = foo; ok 1504 array-bracket-newline invalid var [\u000aa] = foo ok 1505 array-bracket-newline invalid var [a\u000a] = foo ok 1506 array-bracket-newline invalid var [\u000a] = foo; ok 1507 array-bracket-newline invalid var [\u000aa\u000a] = foo; ok 1508 array-bracket-newline invalid var [a, b] = foo; ok 1509 array-bracket-newline invalid var [a,\u000ab] = foo; ok 1510 array-bracket-spacing valid var foo = obj[ 1 ] ok 1511 array-bracket-spacing valid var foo = obj[ 'foo' ]; ok 1512 array-bracket-spacing valid var foo = obj[ [ 1, 1 ] ]; ok 1513 array-bracket-spacing valid var foo = ['foo'] ok 1514 array-bracket-spacing valid var foo = [2] ok 1515 array-bracket-spacing valid var foo = [[ 1, 1 ]] ok 1516 array-bracket-spacing valid var foo = [{ 'foo': 'bar' }] ok 1517 array-bracket-spacing valid var foo = [bar] ok 1518 array-bracket-spacing valid var foo = [{ 'bar': 'baz' }, 1, 5 ]; ok 1519 array-bracket-spacing valid var foo = [ 1, 5, { 'bar': 'baz' }]; ok 1520 array-bracket-spacing valid var foo = [{\u000a'bar': 'baz', \u000a'qux': [{ 'bar': 'baz' }], \u000a'quxx': 1 \u000a}] ok 1521 array-bracket-spacing valid var foo = [{ 'bar': 'baz' }] ok 1522 array-bracket-spacing valid var foo = [{ 'bar': 'baz' }, 1, { 'bar': 'baz' }]; ok 1523 array-bracket-spacing valid var foo = [ 1, { 'bar': 'baz' }, 5 ]; ok 1524 array-bracket-spacing valid var foo = [ 1, { 'bar': 'baz' }, [{ 'bar': 'baz' }] ]; ok 1525 array-bracket-spacing valid var foo = [ function(){} ]; ok 1526 array-bracket-spacing valid var arr = [[ 1, 2 ], 2, 3, 4 ]; ok 1527 array-bracket-spacing valid var arr = [[ 1, 2 ], [[[ 1 ]]], 3, 4 ]; ok 1528 array-bracket-spacing valid var foo = [ arr[i], arr[j] ]; ok 1529 array-bracket-spacing valid var arr = [[ 1, 2 ], 2, 3, { 'foo': 'bar' }]; ok 1530 array-bracket-spacing valid var arr = [[ 1, 2 ], [2], 3, { 'foo': 'bar' }]; ok 1531 array-bracket-spacing valid obj[ foo ] ok 1532 array-bracket-spacing valid obj[\u000afoo\u000a] ok 1533 array-bracket-spacing valid obj[ 'foo' ] ok 1534 array-bracket-spacing valid obj[ 'foo' + 'bar' ] ok 1535 array-bracket-spacing valid obj[ obj2[ foo ] ] ok 1536 array-bracket-spacing valid obj.map(function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 1537 array-bracket-spacing valid obj[ 'map' ](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 1538 array-bracket-spacing valid obj[ 'for' + 'Each' ](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 1539 array-bracket-spacing valid var arr = [ 1, 2, 3, 4 ]; ok 1540 array-bracket-spacing valid var arr = [ [ 1, 2 ], 2, 3, 4 ]; ok 1541 array-bracket-spacing valid var arr = [\u000a1, 2, 3, 4\u000a]; ok 1542 array-bracket-spacing valid var foo = []; ok 1543 array-bracket-spacing valid this.db.mappings.insert([\u000a { alias: 'a', url: 'http://www.amazon.de' },\u000a { alias: 'g', url: 'http://www.google.de' }\u000a], function() {}); ok 1544 array-bracket-spacing valid var [ x, y ] = z ok 1545 array-bracket-spacing valid var [ x,y ] = z ok 1546 array-bracket-spacing valid var [ x, y\u000a] = z ok 1547 array-bracket-spacing valid var [\u000ax, y ] = z ok 1548 array-bracket-spacing valid var [\u000ax, y\u000a] = z ok 1549 array-bracket-spacing valid var [\u000ax,,,\u000a] = z ok 1550 array-bracket-spacing valid var [ ,x, ] = z ok 1551 array-bracket-spacing valid var [\u000ax, ...y\u000a] = z ok 1552 array-bracket-spacing valid var [\u000ax, ...y ] = z ok 1553 array-bracket-spacing valid var [[ x, y ], z ] = arr; ok 1554 array-bracket-spacing valid var [ x, [ y, z ]] = arr; ok 1555 array-bracket-spacing valid [{ x, y }, z ] = arr; ok 1556 array-bracket-spacing valid [ x, { y, z }] = arr; ok 1557 array-bracket-spacing valid obj[foo] ok 1558 array-bracket-spacing valid obj['foo'] ok 1559 array-bracket-spacing valid obj['foo' + 'bar'] ok 1560 array-bracket-spacing valid obj['foo'+'bar'] ok 1561 array-bracket-spacing valid obj[obj2[foo]] ok 1562 array-bracket-spacing valid obj.map(function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 1563 array-bracket-spacing valid obj['map'](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 1564 array-bracket-spacing valid obj['for' + 'Each'](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 1565 array-bracket-spacing valid var arr = [1, 2, 3, 4]; ok 1566 array-bracket-spacing valid var arr = [[1, 2], 2, 3, 4]; ok 1567 array-bracket-spacing valid var arr = [\u000a1, 2, 3, 4\u000a]; ok 1568 array-bracket-spacing valid obj[\u000afoo] ok 1569 array-bracket-spacing valid obj[foo\u000a] ok 1570 array-bracket-spacing valid var arr = [1,\u000a2,\u000a3,\u000a4\u000a]; ok 1571 array-bracket-spacing valid var arr = [\u000a1,\u000a2,\u000a3,\u000a4]; ok 1572 array-bracket-spacing valid var [x, y] = z ok 1573 array-bracket-spacing valid var [x,y] = z ok 1574 array-bracket-spacing valid var [x, y\u000a] = z ok 1575 array-bracket-spacing valid var [\u000ax, y] = z ok 1576 array-bracket-spacing valid var [\u000ax, y\u000a] = z ok 1577 array-bracket-spacing valid var [\u000ax,,,\u000a] = z ok 1578 array-bracket-spacing valid var [,x,] = z ok 1579 array-bracket-spacing valid var [\u000ax, ...y\u000a] = z ok 1580 array-bracket-spacing valid var [\u000ax, ...y] = z ok 1581 array-bracket-spacing valid var [ [x, y], z] = arr; ok 1582 array-bracket-spacing valid var [x, [y, z] ] = arr; ok 1583 array-bracket-spacing valid [ { x, y }, z] = arr; ok 1584 array-bracket-spacing valid [x, { y, z } ] = arr; ok 1585 array-bracket-spacing valid var foo = [ 'foo' ] ok 1586 array-bracket-spacing valid var foo = [ 2 ] ok 1587 array-bracket-spacing valid var foo = [ [1, 1] ] ok 1588 array-bracket-spacing valid var foo = [ {'foo': 'bar'} ] ok 1589 array-bracket-spacing valid var foo = [ bar ] ok 1590 array-bracket-spacing valid var foo = [ {'bar': 'baz'}, 1, 5]; ok 1591 array-bracket-spacing valid var foo = [1, 5, {'bar': 'baz'} ]; ok 1592 array-bracket-spacing valid var foo = [ {\u000a'bar': 'baz', \u000a'qux': [ {'bar': 'baz'} ], \u000a'quxx': 1 \u000a} ] ok 1593 array-bracket-spacing valid var foo = [ {'bar': 'baz'} ] ok 1594 array-bracket-spacing valid var foo = [ {'bar': 'baz'}, 1, {'bar': 'baz'} ]; ok 1595 array-bracket-spacing valid var foo = [1, {'bar': 'baz'} , 5]; ok 1596 array-bracket-spacing valid var foo = [1, {'bar': 'baz'}, [ {'bar': 'baz'} ]]; ok 1597 array-bracket-spacing valid var foo = [function(){}]; ok 1598 array-bracket-spacing valid var foo = []; ok 1599 array-bracket-spacing valid var arr = [ [1, 2], 2, 3, 4]; ok 1600 array-bracket-spacing valid var foo = [arr[i], arr[j]]; ok 1601 array-bracket-spacing valid var foo = []; ok 1602 array-bracket-spacing valid var arr = [ [1, 2], [ [ [ 1 ] ] ], 3, 4]; ok 1603 array-bracket-spacing valid var arr = [ [1, 2], 2, 3, {'foo': 'bar'} ]; ok 1604 array-bracket-spacing valid var foo = {}; ok 1605 array-bracket-spacing valid var foo = []; ok 1606 array-bracket-spacing valid var foo = [{'bar':'baz'}, 1, {'bar': 'baz'}]; ok 1607 array-bracket-spacing valid var foo = [{'bar': 'baz'}]; ok 1608 array-bracket-spacing valid var foo = [{\u000a'bar': 'baz', \u000a'qux': [{'bar': 'baz'}], \u000a'quxx': 1 \u000a}] ok 1609 array-bracket-spacing valid var foo = [1, {'bar': 'baz'}, 5]; ok 1610 array-bracket-spacing valid var foo = [{'bar': 'baz'}, 1, 5]; ok 1611 array-bracket-spacing valid var foo = [1, 5, {'bar': 'baz'}]; ok 1612 array-bracket-spacing valid var obj = {'foo': [1, 2]} ok 1613 array-bracket-spacing valid ([ a, b ]: Array) => {} ok 1614 array-bracket-spacing valid ([a, b]: Array< any >) => {} ok 1615 array-bracket-spacing invalid var foo = [ ] ok 1616 array-bracket-spacing invalid var foo = [ { 'bar': 'baz' }, 1, 5]; ok 1617 array-bracket-spacing invalid var foo = [1, 5, { 'bar': 'baz' } ]; ok 1618 array-bracket-spacing invalid var foo = [ { 'bar':'baz' }, 1, { 'bar': 'baz' } ]; ok 1619 array-bracket-spacing invalid var obj = [ 'foo' ]; ok 1620 array-bracket-spacing invalid var obj = ['foo' ]; ok 1621 array-bracket-spacing invalid var obj = ['foo']; ok 1622 array-bracket-spacing invalid var arr = [ [ 1, 2 ], 2, 3, 4 ]; ok 1623 array-bracket-spacing invalid var arr = [ 1, 2, 2, [ 3, 4 ] ]; ok 1624 array-bracket-spacing invalid var arr = [[ 1, 2 ], 2, [ 3, 4 ] ]; ok 1625 array-bracket-spacing invalid var arr = [ [ 1, 2 ], 2, [ 3, 4 ]]; ok 1626 array-bracket-spacing invalid var arr = [ [ 1, 2 ], 2, [ 3, 4 ] ]; ok 1627 array-bracket-spacing invalid var [x,y] = y ok 1628 array-bracket-spacing invalid var [x,y ] = y ok 1629 array-bracket-spacing invalid var [,,,x,,] = y ok 1630 array-bracket-spacing invalid var [ ,,,x,,] = y ok 1631 array-bracket-spacing invalid var [...horse] = y ok 1632 array-bracket-spacing invalid var [...horse ] = y ok 1633 array-bracket-spacing invalid var [ [ x, y ], z ] = arr; ok 1634 array-bracket-spacing invalid [ { x, y }, z ] = arr; ok 1635 array-bracket-spacing invalid [ x, { y, z } ] = arr; ok 1636 array-bracket-spacing invalid var arr = [[1, 2], 2, [3, 4]]; ok 1637 array-bracket-spacing invalid var arr = [ ]; ok 1638 array-bracket-spacing invalid var arr = [ ]; ok 1639 array-bracket-spacing invalid var arr = [1, 2, 3, 4]; ok 1640 array-bracket-spacing invalid var arr = [1, 2, 3, 4 ]; ok 1641 array-bracket-spacing invalid var arr = [ 1, 2, 3, 4]; ok 1642 array-bracket-spacing invalid var arr = [ 1, 2, 3, 4 ]; ok 1643 array-bracket-spacing invalid var arr = [1, 2, 3, 4 ]; ok 1644 array-bracket-spacing invalid var arr = [ 1, 2, 3, 4]; ok 1645 array-bracket-spacing invalid var arr = [ [ 1], 2, 3, 4]; ok 1646 array-bracket-spacing invalid var arr = [[1 ], 2, 3, 4 ]; ok 1647 array-bracket-spacing invalid ([ a, b ]: Array) => {} ok 1648 array-bracket-spacing invalid ([a, b]: Array< any >) => {} ok 1649 array-callback-return valid Array.from(x, function() { return true; }) ok 1650 array-callback-return valid Int32Array.from(x, function() { return true; }) ok 1651 array-callback-return valid Array.from(x, function() { return true; }) ok 1652 array-callback-return valid Int32Array.from(x, function() { return true; }) ok 1653 array-callback-return valid Array.from(x, function() { return; }) ok 1654 array-callback-return valid Int32Array.from(x, function() { return; }) ok 1655 array-callback-return valid Arrow.from(x, function() {}) ok 1656 array-callback-return valid foo.every(function() { return true; }) ok 1657 array-callback-return valid foo.filter(function() { return true; }) ok 1658 array-callback-return valid foo.find(function() { return true; }) ok 1659 array-callback-return valid foo.findIndex(function() { return true; }) ok 1660 array-callback-return valid foo.map(function() { return true; }) ok 1661 array-callback-return valid foo.reduce(function() { return true; }) ok 1662 array-callback-return valid foo.reduceRight(function() { return true; }) ok 1663 array-callback-return valid foo.some(function() { return true; }) ok 1664 array-callback-return valid foo.sort(function() { return 0; }) ok 1665 array-callback-return valid foo.every(function() { return; }) ok 1666 array-callback-return valid foo.filter(function() { return; }) ok 1667 array-callback-return valid foo.find(function() { return; }) ok 1668 array-callback-return valid foo.findIndex(function() { return; }) ok 1669 array-callback-return valid foo.map(function() { return; }) ok 1670 array-callback-return valid foo.reduce(function() { return; }) ok 1671 array-callback-return valid foo.reduceRight(function() { return; }) ok 1672 array-callback-return valid foo.some(function() { return; }) ok 1673 array-callback-return valid foo.sort(function() { return; }) ok 1674 array-callback-return valid foo.abc(function() {}) ok 1675 array-callback-return valid every(function() {}) ok 1676 array-callback-return valid foo[every](function() {}) ok 1677 array-callback-return valid var every = function() {} ok 1678 array-callback-return valid foo[`${every}`](function() {}) ok 1679 array-callback-return valid foo.every(() => true) ok 1680 array-callback-return valid foo.every(() => { return true; }) ok 1681 array-callback-return valid foo.every(function() { if (a) return true; else return false; }) ok 1682 array-callback-return valid foo.every(function() { switch (a) { case 0: bar(); default: return true; } }) ok 1683 array-callback-return valid foo.every(function() { try { bar(); return true; } catch (err) { return false; } }) ok 1684 array-callback-return valid foo.every(function() { try { bar(); } finally { return true; } }) ok 1685 array-callback-return valid foo.every(() => { return; }) ok 1686 array-callback-return valid foo.every(function() { if (a) return; else return a; }) ok 1687 array-callback-return valid foo.every(function() { switch (a) { case 0: bar(); default: return; } }) ok 1688 array-callback-return valid foo.every(function() { try { bar(); return; } catch (err) { return; } }) ok 1689 array-callback-return valid foo.every(function() { try { bar(); } finally { return; } }) ok 1690 array-callback-return valid foo.every(function(){}()) ok 1691 array-callback-return valid foo.every(function(){ return function() { return true; }; }()) ok 1692 array-callback-return valid foo.every(function(){ return function() { return; }; }) ok 1693 array-callback-return valid foo.map(async function(){}) ok 1694 array-callback-return valid foo.map(async () => {}) ok 1695 array-callback-return valid foo.map(function* () {}) ok 1696 array-callback-return invalid Array.from(x, function() {}) ok 1697 array-callback-return invalid Array.from(x, function foo() {}) ok 1698 array-callback-return invalid Int32Array.from(x, function() {}) ok 1699 array-callback-return invalid Int32Array.from(x, function foo() {}) ok 1700 array-callback-return invalid foo.every(function() {}) ok 1701 array-callback-return invalid foo.every(function foo() {}) ok 1702 array-callback-return invalid foo.filter(function() {}) ok 1703 array-callback-return invalid foo.filter(function foo() {}) ok 1704 array-callback-return invalid foo.find(function() {}) ok 1705 array-callback-return invalid foo.find(function foo() {}) ok 1706 array-callback-return invalid foo.findIndex(function() {}) ok 1707 array-callback-return invalid foo.findIndex(function foo() {}) ok 1708 array-callback-return invalid foo.map(function() {}) ok 1709 array-callback-return invalid foo.map(function foo() {}) ok 1710 array-callback-return invalid foo.reduce(function() {}) ok 1711 array-callback-return invalid foo.reduce(function foo() {}) ok 1712 array-callback-return invalid foo.reduceRight(function() {}) ok 1713 array-callback-return invalid foo.reduceRight(function foo() {}) ok 1714 array-callback-return invalid foo.some(function() {}) ok 1715 array-callback-return invalid foo.some(function foo() {}) ok 1716 array-callback-return invalid foo.sort(function() {}) ok 1717 array-callback-return invalid foo.sort(function foo() {}) ok 1718 array-callback-return invalid foo.bar.baz.every(function() {}) ok 1719 array-callback-return invalid foo.bar.baz.every(function foo() {}) ok 1720 array-callback-return invalid foo["every"](function() {}) ok 1721 array-callback-return invalid foo["every"](function foo() {}) ok 1722 array-callback-return invalid foo[`every`](function() {}) ok 1723 array-callback-return invalid foo[`every`](function foo() {}) ok 1724 array-callback-return invalid foo.every(() => {}) ok 1725 array-callback-return invalid foo.every(function() { if (a) return true; }) ok 1726 array-callback-return invalid foo.every(function cb() { if (a) return true; }) ok 1727 array-callback-return invalid foo.every(function() { switch (a) { case 0: break; default: return true; } }) ok 1728 array-callback-return invalid foo.every(function foo() { switch (a) { case 0: break; default: return true; } }) ok 1729 array-callback-return invalid foo.every(function() { try { bar(); } catch (err) { return true; } }) ok 1730 array-callback-return invalid foo.every(function foo() { try { bar(); } catch (err) { return true; } }) ok 1731 array-callback-return invalid foo.every(function() { return; }) ok 1732 array-callback-return invalid foo.every(function foo() { return; }) ok 1733 array-callback-return invalid foo.every(function() { if (a) return; }) ok 1734 array-callback-return invalid foo.every(function foo() { if (a) return; }) ok 1735 array-callback-return invalid foo.every(function() { if (a) return; else return; }) ok 1736 array-callback-return invalid foo.every(function foo() { if (a) return; else return; }) ok 1737 array-callback-return invalid foo.every(cb || function() {}) ok 1738 array-callback-return invalid foo.every(cb || function foo() {}) ok 1739 array-callback-return invalid foo.every(a ? function() {} : function() {}) ok 1740 array-callback-return invalid foo.every(a ? function foo() {} : function bar() {}) ok 1741 array-callback-return invalid foo.every(function(){ return function() {}; }()) ok 1742 array-callback-return invalid foo.every(function(){ return function foo() {}; }()) ok 1743 array-callback-return invalid foo.every(() => {}) ok 1744 array-callback-return invalid foo.every(() => {}) ok 1745 array-element-newline valid var foo = []; ok 1746 array-element-newline valid var foo = [1]; ok 1747 array-element-newline valid var foo = [1,\u000a2]; ok 1748 array-element-newline valid var foo = [1, // any comment\u000a2]; ok 1749 array-element-newline valid var foo = [// any comment \u000a1,\u000a2]; ok 1750 array-element-newline valid var foo = [1,\u000a2 // any comment\u000a]; ok 1751 array-element-newline valid var foo = [1,\u000a2,\u000a3]; ok 1752 array-element-newline valid var foo = [1\u000a, (2\u000a, 3)]; ok 1753 array-element-newline valid var foo = [1,\u000a( 2 ),\u000a3]; ok 1754 array-element-newline valid var foo = [1,\u000a((((2)))),\u000a3]; ok 1755 array-element-newline valid var foo = [1,\u000a(\u000a2\u000a),\u000a3]; ok 1756 array-element-newline valid var foo = [1,\u000a(2),\u000a3]; ok 1757 array-element-newline valid var foo = [1,\u000a(2)\u000a, 3]; ok 1758 array-element-newline valid var foo = [1\u000a, 2\u000a, 3]; ok 1759 array-element-newline valid var foo = [1,\u000a2,\u000a,\u000a3]; ok 1760 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000aosomething();\u000a}\u000a]; ok 1761 array-element-newline valid var foo = []; ok 1762 array-element-newline valid var foo = [1]; ok 1763 array-element-newline valid var foo = [1,\u000a2]; ok 1764 array-element-newline valid var foo = [1,\u000a(2)]; ok 1765 array-element-newline valid var foo = [1\u000a, (2)]; ok 1766 array-element-newline valid var foo = [1, // any comment\u000a2]; ok 1767 array-element-newline valid var foo = [// any comment \u000a1,\u000a2]; ok 1768 array-element-newline valid var foo = [1,\u000a2 // any comment\u000a]; ok 1769 array-element-newline valid var foo = [1,\u000a2,\u000a3]; ok 1770 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1771 array-element-newline valid var foo = []; ok 1772 array-element-newline valid var foo = [1]; ok 1773 array-element-newline valid var foo = [1, 2]; ok 1774 array-element-newline valid var foo = [1, /* any comment */ 2]; ok 1775 array-element-newline valid var foo = [/* any comment */ 1, 2]; ok 1776 array-element-newline valid var foo = /* any comment */ [1, 2]; ok 1777 array-element-newline valid var foo = [1, 2, 3]; ok 1778 array-element-newline valid var foo = [1, (\u000a2\u000a), 3]; ok 1779 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1780 array-element-newline valid var foo = []; ok 1781 array-element-newline valid var foo = [1]; ok 1782 array-element-newline valid var foo = [1, 2]; ok 1783 array-element-newline valid var foo = [1,\u000a2]; ok 1784 array-element-newline valid var foo = [1, 2, 3]; ok 1785 array-element-newline valid var foo = [1,\u000a2,\u000a3]; ok 1786 array-element-newline valid var foo = [1,\u000a2,\u000a,\u000a3]; ok 1787 array-element-newline valid var foo = [1, // any comment\u000a2]; ok 1788 array-element-newline valid var foo = [/* any comment */ 1, 2]; ok 1789 array-element-newline valid var foo = [1, (\u000a2\u000a), 3]; ok 1790 array-element-newline valid var foo = [1,\u000a(2)\u000a, 3]; ok 1791 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1792 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1793 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}]; ok 1794 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}]; ok 1795 array-element-newline valid var foo = []; ok 1796 array-element-newline valid var foo = [1]; ok 1797 array-element-newline valid var foo = [1, 2]; ok 1798 array-element-newline valid var foo = [1, 2, 3]; ok 1799 array-element-newline valid var f = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1800 array-element-newline valid var foo = []; ok 1801 array-element-newline valid var foo = [1]; ok 1802 array-element-newline valid var foo = [1, 2]; ok 1803 array-element-newline valid var foo = [1, 2, 3]; ok 1804 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1805 array-element-newline valid var foo = []; ok 1806 array-element-newline valid var foo = [1]; ok 1807 array-element-newline valid var foo = [1,\u000a2]; ok 1808 array-element-newline valid var foo = [1,\u000a2,\u000a3]; ok 1809 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1810 array-element-newline valid var foo = []; ok 1811 array-element-newline valid var foo = [1]; ok 1812 array-element-newline valid var foo = [1, 2]; ok 1813 array-element-newline valid var foo = [1,\u000a2,\u000a3]; ok 1814 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1815 array-element-newline valid var foo = []; ok 1816 array-element-newline valid var foo = [1]; ok 1817 array-element-newline valid var foo = [1, 2]; ok 1818 array-element-newline valid var foo = [1, // any comment\u000a2,\u000a, 3]; ok 1819 array-element-newline valid var foo = [1,\u000a2,\u000a// any comment\u000a, 3]; ok 1820 array-element-newline valid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1821 array-element-newline valid var [] = foo; ok 1822 array-element-newline valid var [a] = foo; ok 1823 array-element-newline valid var [a,\u000ab] = foo; ok 1824 array-element-newline valid var [a, // any comment\u000ab] = foo; ok 1825 array-element-newline valid var [// any comment \u000aa,\u000ab] = foo; ok 1826 array-element-newline valid var [a,\u000ab // any comment\u000a] = foo; ok 1827 array-element-newline valid var [a,\u000ab,\u000ab] = foo; ok 1828 array-element-newline valid var [] = foo; ok 1829 array-element-newline valid var [a] = foo; ok 1830 array-element-newline valid var [a, b] = foo; ok 1831 array-element-newline valid var [a,\u000ab,\u000ac] = foo; ok 1832 array-element-newline invalid var foo = [1, 2]; ok 1833 array-element-newline invalid var foo = [1, 2, 3]; ok 1834 array-element-newline invalid var foo = [1,2, 3]; ok 1835 array-element-newline invalid var foo = [1, (2), 3]; ok 1836 array-element-newline invalid var foo = [1,(\u000a2\u000a), 3]; ok 1837 array-element-newline invalid var foo = [1, \u0009 (\u000a2\u000a),\u000a3]; ok 1838 array-element-newline invalid var foo = [1, ((((2)))), 3]; ok 1839 array-element-newline invalid var foo = [1,/* any comment */(2), 3]; ok 1840 array-element-newline invalid var foo = [1,( 2), 3]; ok 1841 array-element-newline invalid var foo = [1, [2], 3]; ok 1842 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1843 array-element-newline invalid var foo = [\u000a(function foo() {\u000adosomething();\u000a}), function bar() {\u000adosomething();\u000a}\u000a]; ok 1844 array-element-newline invalid var foo = [\u000a1,\u000a2\u000a]; ok 1845 array-element-newline invalid var foo = [\u000a1\u000a, 2\u000a]; ok 1846 array-element-newline invalid var foo = [\u000a1 // any comment\u000a, 2\u000a]; ok 1847 array-element-newline invalid var foo = [\u000a1, // any comment\u000a2\u000a]; ok 1848 array-element-newline invalid var foo = [\u000a1,\u000a2 // any comment\u000a]; ok 1849 array-element-newline invalid var foo = [\u000a1,\u000a2,\u000a3\u000a]; ok 1850 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1851 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, /* any comment */\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1852 array-element-newline invalid var foo = [1,\u000a2, 3]; ok 1853 array-element-newline invalid var foo = [1, 2,\u000a3]; ok 1854 array-element-newline invalid var foo = [1,\u000a(\u000a2), 3]; ok 1855 array-element-newline invalid var foo = [1, \u0009 (\u000a2\u000a),\u000a3]; ok 1856 array-element-newline invalid var foo = [1, /* any comment */(2),\u000a3]; ok 1857 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a},function bar() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}]; ok 1858 array-element-newline invalid var foo = [1,\u000a2, 3]; ok 1859 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1860 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, /* any comment */ function bar() {\u000adosomething();\u000a}\u000a]; ok 1861 array-element-newline invalid var foo = [1,\u000a2]; ok 1862 array-element-newline invalid var foo = [1,\u000a2,\u000a3]; ok 1863 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1864 array-element-newline invalid var foo = [1, 2]; ok 1865 array-element-newline invalid var foo = [1, 2, 3]; ok 1866 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1867 array-element-newline invalid var foo = [1,\u000a2]; ok 1868 array-element-newline invalid var foo = [1, 2, 3]; ok 1869 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a},\u000afunction bar() {\u000adosomething();\u000a}\u000a]; ok 1870 array-element-newline invalid var foo = [1, 2, 3]; ok 1871 array-element-newline invalid var foo = [1,\u000a2]; ok 1872 array-element-newline invalid var foo = [\u000afunction foo() {\u000adosomething();\u000a}, function bar() {\u000adosomething();\u000a}\u000a]; ok 1873 array-element-newline invalid var [a, b] = foo; ok 1874 array-element-newline invalid var [a, b, c] = foo; ok 1875 array-element-newline invalid var [a,\u000ab] = foo; ok 1876 array-element-newline invalid var [a, b, c] = foo; ok 1877 arrow-body-style valid var foo = () => {}; ok 1878 arrow-body-style valid var foo = () => 0; ok 1879 arrow-body-style valid var addToB = (a) => { b = b + a }; ok 1880 arrow-body-style valid var foo = () => { /* do nothing */ }; ok 1881 arrow-body-style valid var foo = () => {\u000a /* do nothing */ \u000a}; ok 1882 arrow-body-style valid var foo = (retv, name) => {\u000aretv[name] = true;\u000areturn retv;\u000a}; ok 1883 arrow-body-style valid var foo = () => ({}); ok 1884 arrow-body-style valid var foo = () => bar(); ok 1885 arrow-body-style valid var foo = () => { bar(); }; ok 1886 arrow-body-style valid var foo = () => { b = a }; ok 1887 arrow-body-style valid var foo = () => { bar: 1 }; ok 1888 arrow-body-style valid var foo = () => { return 0; }; ok 1889 arrow-body-style valid var foo = () => { return bar(); }; ok 1890 arrow-body-style valid var foo = () => 0; ok 1891 arrow-body-style valid var foo = () => ({ foo: 0 }); ok 1892 arrow-body-style valid var foo = () => {}; ok 1893 arrow-body-style valid var foo = () => 0; ok 1894 arrow-body-style valid var addToB = (a) => { b = b + a }; ok 1895 arrow-body-style valid var foo = () => { /* do nothing */ }; ok 1896 arrow-body-style valid var foo = () => {\u000a /* do nothing */ \u000a}; ok 1897 arrow-body-style valid var foo = (retv, name) => {\u000aretv[name] = true;\u000areturn retv;\u000a}; ok 1898 arrow-body-style valid var foo = () => bar(); ok 1899 arrow-body-style valid var foo = () => { bar(); }; ok 1900 arrow-body-style valid var foo = () => { return { bar: 0 }; }; ok 1901 arrow-body-style invalid var foo = () => 0; ok 1902 arrow-body-style invalid var foo = () => ({}); ok 1903 arrow-body-style invalid var foo = () => { return 0; }; ok 1904 arrow-body-style invalid var foo = () => { return 0 }; ok 1905 arrow-body-style invalid var foo = () => { return bar(); }; ok 1906 arrow-body-style invalid var foo = () => {}; ok 1907 arrow-body-style invalid var foo = () => {\u000areturn 0;\u000a}; ok 1908 arrow-body-style invalid var foo = () => { return { bar: 0 }; }; ok 1909 arrow-body-style invalid var foo = () => { return ({ bar: 0 }); }; ok 1910 arrow-body-style invalid var foo = () => { return a, b } ok 1911 arrow-body-style invalid var foo = () => { return }; ok 1912 arrow-body-style invalid var foo = () => { return; }; ok 1913 arrow-body-style invalid var foo = () => { return ( /* a */ {ok: true} /* b */ ) }; ok 1914 arrow-body-style invalid var foo = () => { return '{' }; ok 1915 arrow-body-style invalid var foo = () => { return { bar: 0 }.bar; }; ok 1916 arrow-body-style invalid var foo = (retv, name) => {\u000aretv[name] = true;\u000areturn retv;\u000a}; ok 1917 arrow-body-style invalid var foo = () => { return 0; }; ok 1918 arrow-body-style invalid var foo = () => { return bar(); }; ok 1919 arrow-body-style invalid var foo = () => ({}); ok 1920 arrow-body-style invalid var foo = () => ({ bar: 0 }); ok 1921 arrow-body-style invalid var foo = () => (((((((5))))))); ok 1922 arrow-body-style invalid var foo = () => { return bar }\u000a[1, 2, 3].map(foo) ok 1923 arrow-body-style invalid var foo = () => { return bar }\u000a(1).toString(); ok 1924 arrow-body-style invalid var foo = () => { return bar };\u000a[1, 2, 3].map(foo) ok 1925 arrow-body-style invalid var foo = /* a */ ( /* b */ ) /* c */ => /* d */ { /* e */ return /* f */ 5 /* g */ ; /* h */ } /* i */ ; ok 1926 arrow-body-style invalid var foo = /* a */ ( /* b */ ) /* c */ => /* d */ ( /* e */ 5 /* f */ ) /* g */ ; ok 1927 arrow-body-style invalid var foo = () => {\u000areturn bar;\u000a}; ok 1928 arrow-body-style invalid var foo = () => {\u000areturn bar;}; ok 1929 arrow-body-style invalid var foo = () => {return bar;\u000a}; ok 1930 arrow-body-style invalid \u000a var foo = () => {\u000a return foo\u000a .bar;\u000a };\u000a ok 1931 arrow-body-style invalid \u000a var foo = () => {\u000a return {\u000a bar: 1,\u000a baz: 2\u000a };\u000a };\u000a ok 1932 arrow-body-style invalid var foo = () => ({foo: 1}).foo(); ok 1933 arrow-body-style invalid var foo = () => ({foo: 1}.foo()); ok 1934 arrow-parens valid () => {} ok 1935 arrow-parens valid (a) => {} ok 1936 arrow-parens valid (a) => a ok 1937 arrow-parens valid (a) => {\u000a} ok 1938 arrow-parens valid a.then((foo) => {}); ok 1939 arrow-parens valid a.then((foo) => { if (true) {}; }); ok 1940 arrow-parens valid a.then(async (foo) => { if (true) {}; }); ok 1941 arrow-parens valid () => {} ok 1942 arrow-parens valid (a) => {} ok 1943 arrow-parens valid (a) => a ok 1944 arrow-parens valid (a) => {\u000a} ok 1945 arrow-parens valid a.then((foo) => {}); ok 1946 arrow-parens valid a.then((foo) => { if (true) {}; }); ok 1947 arrow-parens valid a.then(async (foo) => { if (true) {}; }); ok 1948 arrow-parens valid () => {} ok 1949 arrow-parens valid a => {} ok 1950 arrow-parens valid a => a ok 1951 arrow-parens valid ([a, b]) => {} ok 1952 arrow-parens valid ({ a, b }) => {} ok 1953 arrow-parens valid (a = 10) => {} ok 1954 arrow-parens valid (...a) => a[0] ok 1955 arrow-parens valid (a, b) => {} ok 1956 arrow-parens valid async ([a, b]) => {} ok 1957 arrow-parens valid async (a, b) => {} ok 1958 arrow-parens valid (a: T) => a ok 1959 arrow-parens valid (a): T => a ok 1960 arrow-parens valid () => {} ok 1961 arrow-parens valid a => a ok 1962 arrow-parens valid ([a, b]) => {} ok 1963 arrow-parens valid ([a, b]) => a ok 1964 arrow-parens valid ({ a, b }) => {} ok 1965 arrow-parens valid ({ a, b }) => a + b ok 1966 arrow-parens valid (a = 10) => {} ok 1967 arrow-parens valid (...a) => a[0] ok 1968 arrow-parens valid (a, b) => {} ok 1969 arrow-parens valid a => ({}) ok 1970 arrow-parens valid async a => ({}) ok 1971 arrow-parens valid async a => a ok 1972 arrow-parens valid (a: T) => a ok 1973 arrow-parens valid (a): T => a ok 1974 arrow-parens invalid a => {} ok 1975 arrow-parens invalid a => a ok 1976 arrow-parens invalid a => {\u000a} ok 1977 arrow-parens invalid a.then(foo => {}); ok 1978 arrow-parens invalid a.then(foo => a); ok 1979 arrow-parens invalid a(foo => { if (true) {}; }); ok 1980 arrow-parens invalid a(async foo => { if (true) {}; }); ok 1981 arrow-parens invalid (a) => a ok 1982 arrow-parens invalid (a,) => a ok 1983 arrow-parens invalid async (a) => a ok 1984 arrow-parens invalid async(a) => a ok 1985 arrow-parens invalid a => {} ok 1986 arrow-parens invalid (a) => a ok 1987 arrow-parens invalid async a => {} ok 1988 arrow-parens invalid async (a) => a ok 1989 arrow-parens invalid async(a) => a ok 1990 arrow-spacing valid a => a ok 1991 arrow-spacing valid () => {} ok 1992 arrow-spacing valid (a) => {} ok 1993 arrow-spacing valid a=> a ok 1994 arrow-spacing valid ()=> {} ok 1995 arrow-spacing valid (a)=> {} ok 1996 arrow-spacing valid a =>a ok 1997 arrow-spacing valid () =>{} ok 1998 arrow-spacing valid (a) =>{} ok 1999 arrow-spacing valid a=>a ok 2000 arrow-spacing valid ()=>{} ok 2001 arrow-spacing valid (a)=>{} ok 2002 arrow-spacing valid a => a ok 2003 arrow-spacing valid () => {} ok 2004 arrow-spacing valid (a) => {} ok 2005 arrow-spacing valid (a) =>\u000a{} ok 2006 arrow-spacing valid (a) =>\u000d\u000a{} ok 2007 arrow-spacing valid (a) =>\u000a 0 ok 2008 arrow-spacing invalid a=>a ok 2009 arrow-spacing invalid ()=>{} ok 2010 arrow-spacing invalid (a)=>{} ok 2011 arrow-spacing invalid a=> a ok 2012 arrow-spacing invalid ()=> {} ok 2013 arrow-spacing invalid (a)=> {} ok 2014 arrow-spacing invalid a=> a ok 2015 arrow-spacing invalid ()=> {} ok 2016 arrow-spacing invalid (a)=> {} ok 2017 arrow-spacing invalid a =>a ok 2018 arrow-spacing invalid () =>{} ok 2019 arrow-spacing invalid (a) =>{} ok 2020 arrow-spacing invalid a =>a ok 2021 arrow-spacing invalid () =>{} ok 2022 arrow-spacing invalid (a) =>{} ok 2023 arrow-spacing invalid a => a ok 2024 arrow-spacing invalid () => {} ok 2025 arrow-spacing invalid (a) => {} ok 2026 arrow-spacing invalid a => a ok 2027 arrow-spacing invalid () => {} ok 2028 arrow-spacing invalid (a) => {} ok 2029 arrow-spacing invalid (a) =>\u000a{} ok 2030 arrow-spacing invalid (a = ()=>0)=>1 ok 2031 arrow-spacing invalid (a = ()=>0)=>(1) ok 2032 block-scoped-var valid function f() { } f(); var exports = { f: f }; ok 2033 block-scoped-var valid var f = () => {}; f(); var exports = { f: f }; ok 2034 block-scoped-var valid !function f(){ f; } ok 2035 block-scoped-var valid function f() { } f(); var exports = { f: f }; ok 2036 block-scoped-var valid function f() { var a, b; { a = true; } b = a; } ok 2037 block-scoped-var valid var a; function f() { var b = a; } ok 2038 block-scoped-var valid function f(a) { } ok 2039 block-scoped-var valid !function(a) { }; ok 2040 block-scoped-var valid !function f(a) { }; ok 2041 block-scoped-var valid function f(a) { var b = a; } ok 2042 block-scoped-var valid !function f(a) { var b = a; }; ok 2043 block-scoped-var valid function f() { var g = f; } ok 2044 block-scoped-var valid function f() { } function g() { var f = g; } ok 2045 block-scoped-var valid function f() { var hasOwnProperty; { hasOwnProperty; } } ok 2046 block-scoped-var valid function f(){ a; b; var a, b; } ok 2047 block-scoped-var valid function f(){ g(); function g(){} } ok 2048 block-scoped-var valid if (true) { var a = 1; a; } ok 2049 block-scoped-var valid var a; if (true) { a; } ok 2050 block-scoped-var valid for (var i = 0; i < 10; i++) { i; } ok 2051 block-scoped-var valid var i; for(i; i; i) { i; } ok 2052 block-scoped-var valid function myFunc(foo) { "use strict"; var { bar } = foo; bar.hello();} ok 2053 block-scoped-var valid function myFunc(foo) { "use strict"; var [ bar ] = foo; bar.hello();} ok 2054 block-scoped-var valid function myFunc(...foo) { return foo;} ok 2055 block-scoped-var valid var f = () => { var g = f; } ok 2056 block-scoped-var valid class Foo {}\u000aexport default Foo; ok 2057 block-scoped-var valid new Date ok 2058 block-scoped-var valid new Date ok 2059 block-scoped-var valid var eslint = require('eslint'); ok 2060 block-scoped-var valid var fun = function({x}) {return x;}; ok 2061 block-scoped-var valid var fun = function([,x]) {return x;}; ok 2062 block-scoped-var valid function f(a) { return a.b; } ok 2063 block-scoped-var valid var a = { "foo": 3 }; ok 2064 block-scoped-var valid var a = { foo: 3 }; ok 2065 block-scoped-var valid var a = { foo: 3, bar: 5 }; ok 2066 block-scoped-var valid var a = { set foo(a){}, get bar(){} }; ok 2067 block-scoped-var valid function f(a) { return arguments[0]; } ok 2068 block-scoped-var valid function f() { }; var a = f; ok 2069 block-scoped-var valid var a = f; function f() { }; ok 2070 block-scoped-var valid function f(){ for(var i; i; i) i; } ok 2071 block-scoped-var valid function f(){ for(var a=0, b=1; a; b) a, b; } ok 2072 block-scoped-var valid function f(){ for(var a in {}) a; } ok 2073 block-scoped-var valid function f(){ switch(2) { case 1: var b = 2; b; break; default: b; break;} } ok 2074 block-scoped-var valid a:; ok 2075 block-scoped-var valid foo: while (true) { bar: for (var i = 0; i < 13; ++i) {if (i === 7) break foo; } } ok 2076 block-scoped-var valid foo: while (true) { bar: for (var i = 0; i < 13; ++i) {if (i === 7) continue foo; } } ok 2077 block-scoped-var valid const React = require("react/addons");const cx = React.addons.classSet; ok 2078 block-scoped-var valid var v = 1; function x() { return v; }; ok 2079 block-scoped-var valid import * as y from "./other.js"; y(); ok 2080 block-scoped-var valid import y from "./other.js"; y(); ok 2081 block-scoped-var valid import {x as y} from "./other.js"; y(); ok 2082 block-scoped-var valid var x; export {x}; ok 2083 block-scoped-var valid var x; export {x as v}; ok 2084 block-scoped-var valid export {x} from "./other.js"; ok 2085 block-scoped-var valid export {x as v} from "./other.js"; ok 2086 block-scoped-var valid class Test { myFunction() { return true; }} ok 2087 block-scoped-var valid class Test { get flag() { return true; }} ok 2088 block-scoped-var valid var Test = class { myFunction() { return true; }} ok 2089 block-scoped-var valid var doStuff; let {x: y} = {x: 1}; doStuff(y); ok 2090 block-scoped-var valid function foo({x: y}) { return y; } ok 2091 block-scoped-var valid !function f(){}; f ok 2092 block-scoped-var valid var f = function foo() { }; foo(); var exports = { f: foo }; ok 2093 block-scoped-var valid var f = () => { x; } ok 2094 block-scoped-var valid function f(){ x; } ok 2095 block-scoped-var valid var eslint = require('eslint'); ok 2096 block-scoped-var valid function f(a) { return a[b]; } ok 2097 block-scoped-var valid function f() { return b.a; } ok 2098 block-scoped-var valid var a = { foo: bar }; ok 2099 block-scoped-var valid var a = { foo: foo }; ok 2100 block-scoped-var valid var a = { bar: 7, foo: bar }; ok 2101 block-scoped-var valid var a = arguments; ok 2102 block-scoped-var valid function x(){}; var a = arguments; ok 2103 block-scoped-var valid function z(b){}; var a = b; ok 2104 block-scoped-var valid function z(){var b;}; var a = b; ok 2105 block-scoped-var valid function f(){ try{}catch(e){} e } ok 2106 block-scoped-var valid a:b; ok 2107 block-scoped-var valid /*global React*/ let {PropTypes, addons: {PureRenderMixin}} = React; let Test = React.createClass({mixins: [PureRenderMixin]}); ok 2108 block-scoped-var valid /*global prevState*/ const { virtualSize: prevVirtualSize = 0 } = prevState; ok 2109 block-scoped-var valid const { dummy: { data, isLoading }, auth: { isLoggedIn } } = this.props; ok 2110 block-scoped-var valid function a(n) { return n > 0 ? b(n - 1) : "a"; } function b(n) { return n > 0 ? a(n - 1) : "b"; } ok 2111 block-scoped-var valid (function () { foo(); })(); function foo() {} ok 2112 block-scoped-var valid (function () { foo(); })(); function foo() {} ok 2113 block-scoped-var invalid function f(){ x; { var x; } } ok 2114 block-scoped-var invalid function f(){ { var x; } x; } ok 2115 block-scoped-var invalid function f() { var a; { var b = 0; } a = b; } ok 2116 block-scoped-var invalid function f() { try { var a = 0; } catch (e) { var b = a; } } ok 2117 block-scoped-var invalid function a() { for(var b in {}) { var c = b; } c; } ok 2118 block-scoped-var invalid function a() { for(var b of {}) { var c = b; } c; } ok 2119 block-scoped-var invalid function f(){ switch(2) { case 1: var b = 2; b; break; default: b; break;} b; } ok 2120 block-scoped-var invalid for (var a = 0;;) {} a; ok 2121 block-scoped-var invalid for (var a in []) {} a; ok 2122 block-scoped-var invalid for (var a of []) {} a; ok 2123 block-scoped-var invalid { var a = 0; } a; ok 2124 block-scoped-var invalid if (true) { var a; } a; ok 2125 block-scoped-var invalid if (true) { var a = 1; } else { var a = 2; } ok 2126 block-scoped-var invalid for (var i = 0;;) {} for(var i = 0;;) {} ok 2127 block-spacing valid { foo(); } ok 2128 block-spacing valid { foo(); } ok 2129 block-spacing valid { foo();\u000a} ok 2130 block-spacing valid {\u000afoo(); } ok 2131 block-spacing valid {\u000d\u000afoo();\u000d\u000a} ok 2132 block-spacing valid if (a) { foo(); } ok 2133 block-spacing valid if (a) {} else { foo(); } ok 2134 block-spacing valid switch (a) {} ok 2135 block-spacing valid switch (a) { case 0: foo(); } ok 2136 block-spacing valid while (a) { foo(); } ok 2137 block-spacing valid do { foo(); } while (a); ok 2138 block-spacing valid for (;;) { foo(); } ok 2139 block-spacing valid for (var a in b) { foo(); } ok 2140 block-spacing valid for (var a of b) { foo(); } ok 2141 block-spacing valid try { foo(); } catch (e) { foo(); } ok 2142 block-spacing valid function foo() { bar(); } ok 2143 block-spacing valid (function() { bar(); }); ok 2144 block-spacing valid (() => { bar(); }); ok 2145 block-spacing valid if (a) { /* comment */ foo(); /* comment */ } ok 2146 block-spacing valid if (a) { //comment\u000a foo(); } ok 2147 block-spacing valid {foo();} ok 2148 block-spacing valid {foo();\u000a} ok 2149 block-spacing valid {\u000afoo();} ok 2150 block-spacing valid {\u000d\u000afoo();\u000d\u000a} ok 2151 block-spacing valid if (a) {foo();} ok 2152 block-spacing valid if (a) {} else {foo();} ok 2153 block-spacing valid switch (a) {} ok 2154 block-spacing valid switch (a) {case 0: foo();} ok 2155 block-spacing valid while (a) {foo();} ok 2156 block-spacing valid do {foo();} while (a); ok 2157 block-spacing valid for (;;) {foo();} ok 2158 block-spacing valid for (var a in b) {foo();} ok 2159 block-spacing valid for (var a of b) {foo();} ok 2160 block-spacing valid try {foo();} catch (e) {foo();} ok 2161 block-spacing valid function foo() {bar();} ok 2162 block-spacing valid (function() {bar();}); ok 2163 block-spacing valid (() => {bar();}); ok 2164 block-spacing valid if (a) {/* comment */ foo(); /* comment */} ok 2165 block-spacing valid if (a) { //comment\u000a foo();} ok 2166 block-spacing invalid {foo();} ok 2167 block-spacing invalid {foo();} ok 2168 block-spacing invalid { foo();} ok 2169 block-spacing invalid {foo(); } ok 2170 block-spacing invalid {\u000afoo();} ok 2171 block-spacing invalid {foo();\u000a} ok 2172 block-spacing invalid if (a) {foo();} ok 2173 block-spacing invalid if (a) {} else {foo();} ok 2174 block-spacing invalid switch (a) {case 0: foo();} ok 2175 block-spacing invalid while (a) {foo();} ok 2176 block-spacing invalid do {foo();} while (a); ok 2177 block-spacing invalid for (;;) {foo();} ok 2178 block-spacing invalid for (var a in b) {foo();} ok 2179 block-spacing invalid for (var a of b) {foo();} ok 2180 block-spacing invalid try {foo();} catch (e) {foo();} finally {foo();} ok 2181 block-spacing invalid function foo() {bar();} ok 2182 block-spacing invalid (function() {bar();}); ok 2183 block-spacing invalid (() => {bar();}); ok 2184 block-spacing invalid if (a) {/* comment */ foo(); /* comment */} ok 2185 block-spacing invalid if (a) {//comment\u000a foo(); } ok 2186 block-spacing invalid { foo(); } ok 2187 block-spacing invalid { foo();} ok 2188 block-spacing invalid {foo(); } ok 2189 block-spacing invalid {\u000afoo(); } ok 2190 block-spacing invalid { foo();\u000a} ok 2191 block-spacing invalid if (a) { foo(); } ok 2192 block-spacing invalid if (a) {} else { foo(); } ok 2193 block-spacing invalid switch (a) { case 0: foo(); } ok 2194 block-spacing invalid while (a) { foo(); } ok 2195 block-spacing invalid do { foo(); } while (a); ok 2196 block-spacing invalid for (;;) { foo(); } ok 2197 block-spacing invalid for (var a in b) { foo(); } ok 2198 block-spacing invalid for (var a of b) { foo(); } ok 2199 block-spacing invalid try { foo(); } catch (e) { foo(); } finally { foo(); } ok 2200 block-spacing invalid function foo() { bar(); } ok 2201 block-spacing invalid (function() { bar(); }); ok 2202 block-spacing invalid (() => { bar(); }); ok 2203 block-spacing invalid if (a) { /* comment */ foo(); /* comment */ } ok 2204 brace-style valid function f() {\u000a if (true)\u000a return {x: 1}\u000a else {\u000a var y = 2\u000a return y\u000a }\u000a} ok 2205 brace-style valid if (tag === 1) glyph.id = pbf.readVarint();\u000aelse if (tag === 2) glyph.bitmap = pbf.readBytes(); ok 2206 brace-style valid function foo () { \u000areturn; \u000a} ok 2207 brace-style valid function a(b,\u000ac,\u000ad) { } ok 2208 brace-style valid !function foo () { \u000areturn;\u000a } ok 2209 brace-style valid !function a(b,\u000ac,\u000ad) { } ok 2210 brace-style valid if (foo) { \u000a bar(); \u000a} ok 2211 brace-style valid if (a) { \u000ab();\u000a } else { \u000ac();\u000a } ok 2212 brace-style valid while (foo) { \u000a bar();\u000a } ok 2213 brace-style valid for (;;) { \u000a bar(); \u000a} ok 2214 brace-style valid with (foo) { \u000a bar(); \u000a} ok 2215 brace-style valid switch (foo) { \u000a case "bar": break;\u000a } ok 2216 brace-style valid try { \u000a bar();\u000a } catch (e) {\u000a baz(); \u000a } ok 2217 brace-style valid do { \u000a bar();\u000a } while (true) ok 2218 brace-style valid for (foo in bar) { \u000a baz(); \u000a } ok 2219 brace-style valid if (a &&\u000a b &&\u000a c) { \u000a } ok 2220 brace-style valid switch(0) {\u000a} ok 2221 brace-style valid class Foo {\u000a} ok 2222 brace-style valid (class {\u000a}) ok 2223 brace-style valid class\u000aFoo {\u000a} ok 2224 brace-style valid \u000a class Foo {\u000a bar() {\u000a\u000a }\u000a }\u000a ok 2225 brace-style valid if (foo) {\u000a}\u000aelse {\u000a} ok 2226 brace-style valid if (foo)\u000a{\u000a}\u000aelse\u000a{\u000a} ok 2227 brace-style valid try { \u000a bar();\u000a }\u000acatch (e) {\u000a baz(); \u000a } ok 2228 brace-style valid try\u000a{\u000a bar();\u000a}\u000acatch (e)\u000a{\u000a baz(); \u000a} ok 2229 brace-style valid function foo () { return; } ok 2230 brace-style valid function foo () { a(); b(); return; } ok 2231 brace-style valid function a(b,c,d) { } ok 2232 brace-style valid !function foo () { return; } ok 2233 brace-style valid !function a(b,c,d) { } ok 2234 brace-style valid if (foo) { bar(); } ok 2235 brace-style valid if (a) { b(); } else { c(); } ok 2236 brace-style valid while (foo) { bar(); } ok 2237 brace-style valid for (;;) { bar(); } ok 2238 brace-style valid with (foo) { bar(); } ok 2239 brace-style valid switch (foo) { case "bar": break; } ok 2240 brace-style valid try { bar(); } catch (e) { baz(); } ok 2241 brace-style valid do { bar(); } while (true) ok 2242 brace-style valid for (foo in bar) { baz(); } ok 2243 brace-style valid if (a && b && c) { } ok 2244 brace-style valid switch(0) {} ok 2245 brace-style valid if (foo) {}\u000aelse {} ok 2246 brace-style valid try { bar(); }\u000acatch (e) { baz(); } ok 2247 brace-style valid var foo = () => { return; } ok 2248 brace-style valid if (foo) {}\u000aelse {} ok 2249 brace-style valid try { bar(); }\u000acatch (e) { baz(); } ok 2250 brace-style valid var foo = () => { return; } ok 2251 brace-style valid if (tag === 1) fontstack.name = pbf.readString(); \u000aelse if (tag === 2) fontstack.range = pbf.readString(); \u000aelse if (tag === 3) {\u000a var glyph = pbf.readMessage(readGlyph, {});\u000a fontstack.glyphs[glyph.id] = glyph; \u000a} ok 2252 brace-style valid if (tag === 1) fontstack.name = pbf.readString(); \u000aelse if (tag === 2) fontstack.range = pbf.readString(); \u000aelse if (tag === 3) {\u000a var glyph = pbf.readMessage(readGlyph, {});\u000a fontstack.glyphs[glyph.id] = glyph; \u000a} ok 2253 brace-style valid switch(x) \u000a{ \u000a case 1: \u000abar(); \u000a }\u000a ok 2254 brace-style valid switch(x) {} ok 2255 brace-style valid class Foo {\u000a} ok 2256 brace-style valid (class {\u000a}) ok 2257 brace-style valid class Foo\u000a{\u000a} ok 2258 brace-style valid (class\u000a{\u000a}) ok 2259 brace-style valid class\u000aFoo\u000a{\u000a} ok 2260 brace-style valid class Foo {} ok 2261 brace-style valid class Foo {} ok 2262 brace-style valid (class {}) ok 2263 brace-style valid (class {}) ok 2264 brace-style valid {} ok 2265 brace-style valid \u000a if (foo) {\u000a\u000a }\u000a\u000a {\u000a\u000a }\u000a ok 2266 brace-style valid \u000a switch (foo) {\u000a case bar:\u000a baz();\u000a {\u000a qux();\u000a }\u000a }\u000a ok 2267 brace-style valid \u000a {\u000a }\u000a ok 2268 brace-style valid \u000a {\u000a {\u000a }\u000a }\u000a ok 2269 brace-style valid \u000a class Ball {\u000a throw() {}\u000a catch() {}\u000a }\u000a ok 2270 brace-style valid \u000a ({\u000a and() {},\u000a finally() {}\u000a })\u000a ok 2271 brace-style valid \u000a (class {\u000a or() {}\u000a else() {}\u000a })\u000a ok 2272 brace-style valid \u000a if (foo) bar = function() {}\u000a else baz()\u000a ok 2273 brace-style invalid if (f) {\u000abar;\u000a}\u000aelse\u000abaz; ok 2274 brace-style invalid var foo = () => { return; } ok 2275 brace-style invalid function foo() { return; } ok 2276 brace-style invalid function foo() \u000a { \u000a return; } ok 2277 brace-style invalid !function foo() \u000a { \u000a return; } ok 2278 brace-style invalid if (foo) \u000a { \u000a bar(); } ok 2279 brace-style invalid if (a) { \u000ab();\u000a } else \u000a { c(); } ok 2280 brace-style invalid while (foo) \u000a { \u000a bar(); } ok 2281 brace-style invalid for (;;) \u000a { \u000a bar(); } ok 2282 brace-style invalid with (foo) \u000a { \u000a bar(); } ok 2283 brace-style invalid switch (foo) \u000a { \u000a case "bar": break; } ok 2284 brace-style invalid switch (foo) \u000a { } ok 2285 brace-style invalid try \u000a { \u000a bar(); \u000a } catch (e) {} ok 2286 brace-style invalid try { \u000a bar(); \u000a } catch (e) \u000a {} ok 2287 brace-style invalid do \u000a { \u000a bar(); \u000a} while (true) ok 2288 brace-style invalid for (foo in bar) \u000a { \u000a baz(); \u000a } ok 2289 brace-style invalid for (foo of bar) \u000a { \u000a baz(); \u000a } ok 2290 brace-style invalid try { \u000a bar(); \u000a }\u000acatch (e) {\u000a} ok 2291 brace-style invalid try { \u000a bar(); \u000a } catch (e) {\u000a}\u000a finally {\u000a} ok 2292 brace-style invalid if (a) { \u000ab();\u000a } \u000a else { \u000ac();\u000a } ok 2293 brace-style invalid try { \u000a bar(); \u000a }\u000acatch (e) {\u000a} finally {\u000a} ok 2294 brace-style invalid try { \u000a bar(); \u000a } catch (e) {\u000a}\u000a finally {\u000a} ok 2295 brace-style invalid if (a) { \u000ab();\u000a } else { \u000ac();\u000a } ok 2296 brace-style invalid if (foo) {\u000abaz();\u000a} else if (bar) {\u000abaz();\u000a}\u000aelse {\u000aqux();\u000a} ok 2297 brace-style invalid if (foo) {\u000apoop();\u000a} \u000aelse if (bar) {\u000abaz();\u000a} else if (thing) {\u000aboom();\u000a}\u000aelse {\u000aqux();\u000a} ok 2298 brace-style invalid try { \u000a bar(); \u000a }\u000a catch (e) {\u000a}\u000a finally {\u000a} ok 2299 brace-style invalid switch(x) { case 1: \u000abar(); }\u000a ok 2300 brace-style invalid if (a) { \u000ab();\u000a } else { \u000ac();\u000a } ok 2301 brace-style invalid if (foo) {\u000abaz();\u000a} else if (bar) {\u000abaz();\u000a}\u000aelse {\u000aqux();\u000a} ok 2302 brace-style invalid if (foo)\u000a{ poop();\u000a} \u000aelse if (bar) {\u000abaz();\u000a} else if (thing) {\u000aboom();\u000a}\u000aelse {\u000aqux();\u000a} ok 2303 brace-style invalid if (foo)\u000a{\u000a bar(); } ok 2304 brace-style invalid try\u000a{\u000a somethingRisky();\u000a} catch (e)\u000a{\u000a handleError()\u000a} ok 2305 brace-style invalid function foo() { return; \u000a} ok 2306 brace-style invalid function foo() { a(); b(); return; \u000a} ok 2307 brace-style invalid function foo() { \u000a return; } ok 2308 brace-style invalid function foo() {\u000aa();\u000ab();\u000areturn; } ok 2309 brace-style invalid !function foo() { \u000a return; } ok 2310 brace-style invalid if (a) { b();\u000a } else { c(); } ok 2311 brace-style invalid if (a) { b(); }\u000aelse { c(); } ok 2312 brace-style invalid while (foo) { \u000a bar(); } ok 2313 brace-style invalid for (;;) { bar(); \u000a } ok 2314 brace-style invalid with (foo) { bar(); \u000a } ok 2315 brace-style invalid switch (foo) \u000a { \u000a case "bar": break; } ok 2316 brace-style invalid switch (foo) \u000a { } ok 2317 brace-style invalid try { bar(); }\u000acatch (e) { baz(); } ok 2318 brace-style invalid try \u000a { \u000a bar(); \u000a } catch (e) {} ok 2319 brace-style invalid try { \u000a bar(); \u000a } catch (e) \u000a {} ok 2320 brace-style invalid do \u000a { \u000a bar(); \u000a} while (true) ok 2321 brace-style invalid for (foo in bar) \u000a { \u000a baz(); \u000a } ok 2322 brace-style invalid try { \u000a bar(); \u000a }\u000acatch (e) {\u000a} ok 2323 brace-style invalid try { \u000a bar(); \u000a } catch (e) {\u000a}\u000a finally {\u000a} ok 2324 brace-style invalid if (a) { \u000ab();\u000a } \u000a else { \u000ac();\u000a } ok 2325 brace-style invalid try { \u000a bar(); \u000a }\u000acatch (e) {\u000a} finally {\u000a} ok 2326 brace-style invalid try { \u000a bar(); \u000a } catch (e) {\u000a}\u000a finally {\u000a} ok 2327 brace-style invalid if (a) { \u000ab();\u000a } else { \u000ac();\u000a } ok 2328 brace-style invalid if (foo)\u000a{ poop();\u000a} \u000aelse if (bar) {\u000abaz();\u000a} else if (thing) {\u000aboom();\u000a}\u000aelse {\u000aqux();\u000a} ok 2329 brace-style invalid if (foo) // comment \u000a{\u000abar();\u000a} ok 2330 brace-style invalid if (foo) {\u000a bar\u000a.baz } ok 2331 brace-style invalid if (foo)\u000a{\u000a bar\u000a.baz } ok 2332 brace-style invalid if (foo) { bar\u000a.baz } ok 2333 brace-style invalid if (foo) { bar\u000a.baz } ok 2334 brace-style invalid switch (x) {\u000a case 1: foo() } ok 2335 brace-style invalid class Foo\u000a{\u000a} ok 2336 brace-style invalid (class\u000a{\u000a}) ok 2337 brace-style invalid class Foo{\u000a} ok 2338 brace-style invalid (class {\u000a}) ok 2339 brace-style invalid class Foo {\u000abar() {\u000a}} ok 2340 brace-style invalid (class Foo {\u000abar() {\u000a}}) ok 2341 brace-style invalid class\u000aFoo{} ok 2342 brace-style invalid \u000a if (foo)\u000a {\u000a bar\u000a }\u000a else {\u000a baz\u000a }\u000a ok 2343 callback-return valid function a(err) { if (err) return callback (err); } ok 2344 callback-return valid function a(err) { if (err) return callback (err); callback(); } ok 2345 callback-return valid function a(err) { if (err) { return callback (err); } callback(); } ok 2346 callback-return valid function a(err) { if (err) { return /* confusing comment */ callback (err); } callback(); } ok 2347 callback-return valid function x(err) { if (err) { callback(); return; } } ok 2348 callback-return valid function x(err) { if (err) { \u000a log();\u000a callback(); return; } } ok 2349 callback-return valid function x(err) { if (err) { callback(); return; } return callback(); } ok 2350 callback-return valid function x(err) { if (err) { return callback(); } else { return callback(); } } ok 2351 callback-return valid function x(err) { if (err) { return callback(); } else if (x) { return callback(); } } ok 2352 callback-return valid function x(err) { if (err) return callback(); else return callback(); } ok 2353 callback-return valid function x(cb) { cb && cb(); } ok 2354 callback-return valid function x(next) { typeof next !== 'undefined' && next(); } ok 2355 callback-return valid function x(next) { if (typeof next === 'function') { return next() } } ok 2356 callback-return valid function x() { switch(x) { case 'a': return next(); } } ok 2357 callback-return valid function x() { for(x = 0; x < 10; x++) { return next(); } } ok 2358 callback-return valid function x() { while(x) { return next(); } } ok 2359 callback-return valid function a(err) { if (err) { obj.method (err); } } ok 2360 callback-return valid callback() ok 2361 callback-return valid callback(); callback(); ok 2362 callback-return valid while(x) { move(); } ok 2363 callback-return valid for (var i = 0; i < 10; i++) { move(); } ok 2364 callback-return valid for (var i = 0; i < 10; i++) move(); ok 2365 callback-return valid if (x) callback(); ok 2366 callback-return valid if (x) { callback(); } ok 2367 callback-return valid var x = err => { if (err) { callback(); return; } } ok 2368 callback-return valid var x = err => callback(err) ok 2369 callback-return valid var x = err => { setTimeout( () => { callback(); }); } ok 2370 callback-return valid class x { horse() { callback(); } } ok 2371 callback-return valid class x { horse() { if (err) { return callback(); } callback(); } } ok 2372 callback-return valid function a(err) { if (err) { callback(err) } } ok 2373 callback-return valid function a(err) { if (err) { callback(err) } next(); } ok 2374 callback-return valid function a(err) { if (err) { return next(err) } else { callback(); } } ok 2375 callback-return valid function a(err) { if (err) { return obj.method(err); } } ok 2376 callback-return valid function a(err) { if (err) { return obj.prop.method(err); } } ok 2377 callback-return valid function a(err) { if (err) { return obj.prop.method(err); } otherObj.prop.method() } ok 2378 callback-return valid function a(err) { if (err) { callback(err); } } ok 2379 callback-return valid function a(err) { if (err) { otherObj.method(err); } } ok 2380 callback-return valid function a(err) { if (err) { //comment\u000areturn obj.method(err); } } ok 2381 callback-return valid function a(err) { if (err) { /*comment*/return obj.method(err); } } ok 2382 callback-return valid function a(err) { if (err) { return obj.method(err); //comment\u000a } } ok 2383 callback-return valid function a(err) { if (err) { return obj.method(err); /*comment*/ } } ok 2384 callback-return valid function a(err) { if (err) { obj().method(err); } } ok 2385 callback-return valid function a(err) { if (err) { obj.prop().method(err); } } ok 2386 callback-return valid function a(err) { if (err) { obj().prop.method(err); } } ok 2387 callback-return valid function a(err) { if (err) { obj().method(err); } } ok 2388 callback-return valid function a(err) { if (err) { obj().method(err); } obj.method(); } ok 2389 callback-return valid function x(err) { if (err) { setTimeout(callback, 0); } callback(); } ok 2390 callback-return valid function x(err) { if (err) { process.nextTick(function(err) { callback(); }); } callback(); } ok 2391 callback-return invalid function a(err) { if (err) { callback (err); } } ok 2392 callback-return invalid function a(callback) { if (typeof callback !== 'undefined') { callback(); } } ok 2393 callback-return invalid function a(callback) { if (typeof callback !== 'undefined') callback(); } ok 2394 callback-return invalid function a(callback) { if (err) { callback(); horse && horse(); } } ok 2395 callback-return invalid var x = (err) => { if (err) { callback (err); } } ok 2396 callback-return invalid var x = { x(err) { if (err) { callback (err); } } } ok 2397 callback-return invalid function x(err) { if (err) {\u000a log();\u000a callback(err); } } ok 2398 callback-return invalid var x = { x(err) { if (err) { callback && callback (err); } } } ok 2399 callback-return invalid function a(err) { callback (err); callback(); } ok 2400 callback-return invalid function a(err) { callback (err); horse(); } ok 2401 callback-return invalid function a(err) { if (err) { callback (err); horse(); return; } } ok 2402 callback-return invalid var a = (err) => { callback (err); callback(); } ok 2403 callback-return invalid function a(err) { if (err) { callback (err); } else if (x) { callback(err); return; } } ok 2404 callback-return invalid function x(err) { if (err) { return callback(); }\u000aelse if (abc) {\u000acallback(); }\u000aelse {\u000areturn callback(); } } ok 2405 callback-return invalid class x { horse() { if (err) { callback(); } callback(); } } ok 2406 callback-return invalid function x(err) { if (err) { callback() } else { callback() } } ok 2407 callback-return invalid function x(err) { if (err) return callback(); else callback(); } ok 2408 callback-return invalid () => { if (x) { callback(); } } ok 2409 callback-return invalid function b() { switch(x) { case 'horse': callback(); } } ok 2410 callback-return invalid function a() { switch(x) { case 'horse': move(); } } ok 2411 callback-return invalid var x = function() { while(x) { move(); } } ok 2412 callback-return invalid function x() { for (var i = 0; i < 10; i++) { move(); } } ok 2413 callback-return invalid var x = function() { for (var i = 0; i < 10; i++) move(); } ok 2414 callback-return invalid function a(err) { if (err) { obj.method(err); } } ok 2415 callback-return invalid function a(err) { if (err) { obj.prop.method(err); } } ok 2416 callback-return invalid function a(err) { if (err) { obj.prop.method(err); } otherObj.prop.method() } ok 2417 callback-return invalid function a(err) { if (err) { /*comment*/obj.method(err); } } ok 2418 callback-return invalid function a(err) { if (err) { //comment\u000aobj.method(err); } } ok 2419 callback-return invalid function a(err) { if (err) { obj.method(err); /*comment*/ } } ok 2420 callback-return invalid function a(err) { if (err) { obj.method(err); //comment\u000a } } ok 2421 capitalized-comments valid //Uppercase ok 2422 capitalized-comments valid // Uppercase ok 2423 capitalized-comments valid /*Uppercase */ ok 2424 capitalized-comments valid /* Uppercase */ ok 2425 capitalized-comments valid /*\u000aUppercase */ ok 2426 capitalized-comments valid /** Uppercase */ ok 2427 capitalized-comments valid /**\u000aUppercase */ ok 2428 capitalized-comments valid //Über ok 2429 capitalized-comments valid //Π ok 2430 capitalized-comments valid /* Uppercase\u000asecond line need not be uppercase */ ok 2431 capitalized-comments valid // ok 2432 capitalized-comments valid //\u0009 ok 2433 capitalized-comments valid /* */ ok 2434 capitalized-comments valid /*\u0009*/ ok 2435 capitalized-comments valid /*\u000a*/ ok 2436 capitalized-comments valid /*\u000d*/ ok 2437 capitalized-comments valid /*\u000d\u000a*/ ok 2438 capitalized-comments valid /*
*/ ok 2439 capitalized-comments valid /*
*/ ok 2440 capitalized-comments valid //123 ok 2441 capitalized-comments valid // 123 ok 2442 capitalized-comments valid /*123*/ ok 2443 capitalized-comments valid /* 123 */ ok 2444 capitalized-comments valid /**123 */ ok 2445 capitalized-comments valid /** 123 */ ok 2446 capitalized-comments valid /**\u000a123 */ ok 2447 capitalized-comments valid /*\u000a123 */ ok 2448 capitalized-comments valid /*123\u000asecond line need not be uppercase */ ok 2449 capitalized-comments valid /**\u000a * @fileoverview This is a file */ ok 2450 capitalized-comments valid // jscs: enable ok 2451 capitalized-comments valid // jscs:disable ok 2452 capitalized-comments valid // eslint-disable-line ok 2453 capitalized-comments valid // eslint-disable-next-line ok 2454 capitalized-comments valid /* eslint semi:off */ ok 2455 capitalized-comments valid /* eslint-env node */ ok 2456 capitalized-comments valid /* istanbul ignore next */ ok 2457 capitalized-comments valid /* jshint asi:true */ ok 2458 capitalized-comments valid /* jscs: enable */ ok 2459 capitalized-comments valid /* global var1, var2 */ ok 2460 capitalized-comments valid /* global var1:true, var2 */ ok 2461 capitalized-comments valid /* globals var1, var2 */ ok 2462 capitalized-comments valid /* globals var1:true, var2 */ ok 2463 capitalized-comments valid /* exported myVar */ ok 2464 capitalized-comments valid !foo ok 2465 capitalized-comments valid !foo ok 2466 capitalized-comments valid !Foo ok 2467 capitalized-comments valid !/usr/bin/env node ok 2468 capitalized-comments valid !/usr/bin/env node ok 2469 capitalized-comments valid !/usr/bin/env node ok 2470 capitalized-comments valid //Uppercase ok 2471 capitalized-comments valid // Uppercase ok 2472 capitalized-comments valid /*Uppercase */ ok 2473 capitalized-comments valid /* Uppercase */ ok 2474 capitalized-comments valid /*\u000aUppercase */ ok 2475 capitalized-comments valid /** Uppercase */ ok 2476 capitalized-comments valid /**\u000aUppercase */ ok 2477 capitalized-comments valid //Über ok 2478 capitalized-comments valid //Π ok 2479 capitalized-comments valid /* Uppercase\u000asecond line need not be uppercase */ ok 2480 capitalized-comments valid //123 ok 2481 capitalized-comments valid // 123 ok 2482 capitalized-comments valid /*123*/ ok 2483 capitalized-comments valid /**123*/ ok 2484 capitalized-comments valid /* 123 */ ok 2485 capitalized-comments valid /** 123*/ ok 2486 capitalized-comments valid /**\u000a123*/ ok 2487 capitalized-comments valid /*\u000a123 */ ok 2488 capitalized-comments valid /*123\u000asecond line need not be uppercase */ ok 2489 capitalized-comments valid /**\u000a @todo: foobar\u000a */ ok 2490 capitalized-comments valid /**\u000a * @fileoverview This is a file */ ok 2491 capitalized-comments valid // jscs: enable ok 2492 capitalized-comments valid // jscs:disable ok 2493 capitalized-comments valid // eslint-disable-line ok 2494 capitalized-comments valid // eslint-disable-next-line ok 2495 capitalized-comments valid /* eslint semi:off */ ok 2496 capitalized-comments valid /* eslint-env node */ ok 2497 capitalized-comments valid /* istanbul ignore next */ ok 2498 capitalized-comments valid /* jshint asi:true */ ok 2499 capitalized-comments valid /* jscs: enable */ ok 2500 capitalized-comments valid /* global var1, var2 */ ok 2501 capitalized-comments valid /* global var1:true, var2 */ ok 2502 capitalized-comments valid /* globals var1, var2 */ ok 2503 capitalized-comments valid /* globals var1:true, var2 */ ok 2504 capitalized-comments valid /* exported myVar */ ok 2505 capitalized-comments valid //lowercase ok 2506 capitalized-comments valid // lowercase ok 2507 capitalized-comments valid /*lowercase */ ok 2508 capitalized-comments valid /* lowercase */ ok 2509 capitalized-comments valid /*\u000alowercase */ ok 2510 capitalized-comments valid //über ok 2511 capitalized-comments valid //π ok 2512 capitalized-comments valid /* lowercase\u000aSecond line need not be lowercase */ ok 2513 capitalized-comments valid //123 ok 2514 capitalized-comments valid // 123 ok 2515 capitalized-comments valid /*123*/ ok 2516 capitalized-comments valid /* 123 */ ok 2517 capitalized-comments valid /*\u000a123 */ ok 2518 capitalized-comments valid /*123\u000asecond line need not be uppercase */ ok 2519 capitalized-comments valid /**\u000a @TODO: foobar\u000a */ ok 2520 capitalized-comments valid /**\u000a * @Fileoverview This is a file */ ok 2521 capitalized-comments valid // matching ok 2522 capitalized-comments valid // Matching ok 2523 capitalized-comments valid // bar ok 2524 capitalized-comments valid // Bar ok 2525 capitalized-comments valid foo(/* ignored */ a); ok 2526 capitalized-comments valid foo(/* Ignored */ a); ok 2527 capitalized-comments valid foo(/*\u000aignored */ a); ok 2528 capitalized-comments valid foo(/*\u000aIgnored */ a); ok 2529 capitalized-comments valid // This comment is valid since it is capitalized,\u000a// and this one is valid since it follows a valid one,\u000a// and same with this one. ok 2530 capitalized-comments valid /* This comment is valid since it is capitalized, */\u000a/* and this one is valid since it follows a valid one, */\u000a/* and same with this one. */ ok 2531 capitalized-comments valid /*\u000a * This comment is valid since it is capitalized,\u000a */\u000a/* and this one is valid since it follows a valid one, */\u000a/*\u000a * and same with this one.\u000a */ ok 2532 capitalized-comments valid // This comment is valid since it is capitalized,\u000a// and this one is valid since it follows a valid one,\u000afoo();\u000a// This comment now has to be capitalized. ok 2533 capitalized-comments valid // https://github.com ok 2534 capitalized-comments valid // HTTPS://GITHUB.COM ok 2535 capitalized-comments valid // Valid capitalized line comment\u000a/* Valid capitalized block comment */\u000a// lineCommentIgnorePattern\u000a/* blockCommentIgnorePattern */ ok 2536 capitalized-comments invalid //lowercase ok 2537 capitalized-comments invalid // lowercase ok 2538 capitalized-comments invalid /*lowercase */ ok 2539 capitalized-comments invalid /* lowercase */ ok 2540 capitalized-comments invalid /** lowercase */ ok 2541 capitalized-comments invalid /*\u000alowercase */ ok 2542 capitalized-comments invalid /**\u000alowercase */ ok 2543 capitalized-comments invalid //über ok 2544 capitalized-comments invalid //π ok 2545 capitalized-comments invalid /* lowercase\u000aSecond line need not be lowercase */ ok 2546 capitalized-comments invalid //lowercase ok 2547 capitalized-comments invalid // lowercase ok 2548 capitalized-comments invalid /*lowercase */ ok 2549 capitalized-comments invalid /* lowercase */ ok 2550 capitalized-comments invalid /** lowercase */ ok 2551 capitalized-comments invalid /**\u000alowercase */ ok 2552 capitalized-comments invalid //über ok 2553 capitalized-comments invalid //π ok 2554 capitalized-comments invalid /* lowercase\u000aSecond line need not be lowercase */ ok 2555 capitalized-comments invalid //Uppercase ok 2556 capitalized-comments invalid // Uppercase ok 2557 capitalized-comments invalid /*Uppercase */ ok 2558 capitalized-comments invalid /* Uppercase */ ok 2559 capitalized-comments invalid /*\u000aUppercase */ ok 2560 capitalized-comments invalid //Über ok 2561 capitalized-comments invalid //Π ok 2562 capitalized-comments invalid /* Uppercase\u000asecond line need not be uppercase */ ok 2563 capitalized-comments invalid //* jscs: enable ok 2564 capitalized-comments invalid //* jscs:disable ok 2565 capitalized-comments invalid //* eslint-disable-line ok 2566 capitalized-comments invalid //* eslint-disable-next-line ok 2567 capitalized-comments invalid /*\u000a * eslint semi:off */ ok 2568 capitalized-comments invalid /*\u000a * eslint-env node */ ok 2569 capitalized-comments invalid /*\u000a * istanbul ignore next */ ok 2570 capitalized-comments invalid /*\u000a * jshint asi:true */ ok 2571 capitalized-comments invalid /*\u000a * jscs: enable */ ok 2572 capitalized-comments invalid /*\u000a * global var1, var2 */ ok 2573 capitalized-comments invalid /*\u000a * global var1:true, var2 */ ok 2574 capitalized-comments invalid /*\u000a * globals var1, var2 */ ok 2575 capitalized-comments invalid /*\u000a * globals var1:true, var2 */ ok 2576 capitalized-comments invalid /*\u000a * exported myVar */ ok 2577 capitalized-comments invalid foo(/* invalid */a); ok 2578 capitalized-comments invalid foo(/* invalid */a); ok 2579 capitalized-comments invalid foo(a, // not an inline comment\u000ab); ok 2580 capitalized-comments invalid foo(a, /* not an inline comment */\u000ab); ok 2581 capitalized-comments invalid foo(a,\u000a/* not an inline comment */b); ok 2582 capitalized-comments invalid foo(a,\u000a/* not an inline comment */\u000ab); ok 2583 capitalized-comments invalid foo(a, // Not an inline comment\u000ab); ok 2584 capitalized-comments invalid foo(a, /* Not an inline comment */\u000ab); ok 2585 capitalized-comments invalid foo(a,\u000a/* Not an inline comment */b); ok 2586 capitalized-comments invalid foo(a,\u000a/* Not an inline comment */\u000ab); ok 2587 capitalized-comments invalid // not matching ok 2588 capitalized-comments invalid // Not matching ok 2589 capitalized-comments invalid // This comment is valid since it is capitalized,\u000a// and this one is valid since it follows a valid one,\u000afoo();\u000a// this comment is now invalid. ok 2590 capitalized-comments invalid // this comment is invalid since it is not capitalized,\u000a// but this one is ignored since it is consecutive. ok 2591 capitalized-comments invalid // This comment is invalid since it is not capitalized,\u000a// But this one is ignored since it is consecutive. ok 2592 capitalized-comments invalid // This comment is valid since it is capitalized,\u000a// but this one is invalid even if it follows a valid one. ok 2593 capitalized-comments invalid // should fail. https://github.com ok 2594 capitalized-comments invalid // Should fail. https://github.com ok 2595 class-methods-use-this valid class A { constructor() {} } ok 2596 class-methods-use-this valid class A { foo() {this} } ok 2597 class-methods-use-this valid class A { foo() {this.bar = 'bar';} } ok 2598 class-methods-use-this valid class A { foo() {bar(this);} } ok 2599 class-methods-use-this valid class A extends B { foo() {super.foo();} } ok 2600 class-methods-use-this valid class A { foo() { if(true) { return this; } } } ok 2601 class-methods-use-this valid class A { static foo() {} } ok 2602 class-methods-use-this valid ({ a(){} }); ok 2603 class-methods-use-this valid class A { foo() { () => this; } } ok 2604 class-methods-use-this valid ({ a: function () {} }); ok 2605 class-methods-use-this valid class A { foo() {this} bar() {} } ok 2606 class-methods-use-this invalid class A { foo() {} } ok 2607 class-methods-use-this invalid class A { foo() {/**this**/} } ok 2608 class-methods-use-this invalid class A { foo() {var a = function () {this};} } ok 2609 class-methods-use-this invalid class A { foo() {var a = function () {var b = function(){this}};} } ok 2610 class-methods-use-this invalid class A { foo() {window.this} } ok 2611 class-methods-use-this invalid class A { foo() {that.this = 'this';} } ok 2612 class-methods-use-this invalid class A { foo() { () => undefined; } } ok 2613 class-methods-use-this invalid class A { foo() {} bar() {} } ok 2614 class-methods-use-this invalid class A { foo() {} hasOwnProperty() {} } ok 2615 class-methods-use-this invalid class A { [foo]() {} } ok 2616 class-methods-use-this invalid class A { foo(){} 'bar'(){} 123(){} [`baz`](){} [a](){} [f(a)](){} get quux(){} set[a](b){} *quuux(){} } ok 2617 comma-dangle valid var foo = { bar: 'baz' } ok 2618 comma-dangle valid var foo = {\u000abar: 'baz'\u000a} ok 2619 comma-dangle valid var foo = [ 'baz' ] ok 2620 comma-dangle valid var foo = [\u000a'baz'\u000a] ok 2621 comma-dangle valid [,,] ok 2622 comma-dangle valid [\u000a,\u000a,\u000a] ok 2623 comma-dangle valid [,] ok 2624 comma-dangle valid [\u000a,\u000a] ok 2625 comma-dangle valid [] ok 2626 comma-dangle valid [\u000a] ok 2627 comma-dangle valid var foo = [\u000a (bar ? baz : qux),\u000a ]; ok 2628 comma-dangle valid var foo = { bar: 'baz' } ok 2629 comma-dangle valid var foo = {\u000abar: 'baz'\u000a} ok 2630 comma-dangle valid var foo = [ 'baz' ] ok 2631 comma-dangle valid var { a, b } = foo; ok 2632 comma-dangle valid var [ a, b ] = foo; ok 2633 comma-dangle valid var { a,\u000a b, \u000a} = foo; ok 2634 comma-dangle valid var [ a,\u000a b, \u000a] = foo; ok 2635 comma-dangle valid [(1),] ok 2636 comma-dangle valid var x = { foo: (1),}; ok 2637 comma-dangle valid var foo = { bar: 'baz', } ok 2638 comma-dangle valid var foo = {\u000abar: 'baz',\u000a} ok 2639 comma-dangle valid var foo = {\u000abar: 'baz'\u000a,} ok 2640 comma-dangle valid var foo = [ 'baz', ] ok 2641 comma-dangle valid var foo = [\u000a'baz',\u000a] ok 2642 comma-dangle valid var foo = [\u000a'baz'\u000a,] ok 2643 comma-dangle valid [,,] ok 2644 comma-dangle valid [\u000a,\u000a,\u000a] ok 2645 comma-dangle valid [,] ok 2646 comma-dangle valid [\u000a,\u000a] ok 2647 comma-dangle valid [] ok 2648 comma-dangle valid [\u000a] ok 2649 comma-dangle valid var foo = { bar: 'baz' } ok 2650 comma-dangle valid var foo = { bar: 'baz' } ok 2651 comma-dangle valid var foo = {\u000abar: 'baz',\u000a} ok 2652 comma-dangle valid var foo = {\u000abar: 'baz',\u000a} ok 2653 comma-dangle valid var foo = [ 'baz' ] ok 2654 comma-dangle valid var foo = [ 'baz' ] ok 2655 comma-dangle valid var foo = [\u000a'baz',\u000a] ok 2656 comma-dangle valid var foo = [\u000a'baz',\u000a] ok 2657 comma-dangle valid var foo = { bar:\u000a\u000a'bar' } ok 2658 comma-dangle valid var foo = { bar:\u000a\u000a'bar' } ok 2659 comma-dangle valid var foo = {a: 1, b: 2, c: 3, d: 4} ok 2660 comma-dangle valid var foo = {a: 1, b: 2, c: 3, d: 4} ok 2661 comma-dangle valid var foo = {a: 1, b: 2,\u000a c: 3, d: 4} ok 2662 comma-dangle valid var foo = {a: 1, b: 2,\u000a c: 3, d: 4} ok 2663 comma-dangle valid var foo = {x: {\u000afoo: 'bar',\u000a}} ok 2664 comma-dangle valid var foo = {x: {\u000afoo: 'bar',\u000a}} ok 2665 comma-dangle valid var foo = new Map([\u000a[key, {\u000aa: 1,\u000ab: 2,\u000ac: 3,\u000a}],\u000a]) ok 2666 comma-dangle valid var foo = new Map([\u000a[key, {\u000aa: 1,\u000ab: 2,\u000ac: 3,\u000a}],\u000a]) ok 2667 comma-dangle valid var [a, ...rest] = []; ok 2668 comma-dangle valid var [\u000a a,\u000a ...rest\u000a] = []; ok 2669 comma-dangle valid var [\u000a a,\u000a ...rest\u000a] = []; ok 2670 comma-dangle valid var [\u000a a,\u000a ...rest\u000a] = []; ok 2671 comma-dangle valid [a, ...rest] = []; ok 2672 comma-dangle valid for ([a, ...rest] of []); ok 2673 comma-dangle valid var a = [b, ...spread,]; ok 2674 comma-dangle valid var {foo, ...bar} = baz ok 2675 comma-dangle valid import {foo,} from 'foo'; ok 2676 comma-dangle valid import foo from 'foo'; ok 2677 comma-dangle valid import foo, {abc,} from 'foo'; ok 2678 comma-dangle valid import * as foo from 'foo'; ok 2679 comma-dangle valid export {foo,} from 'foo'; ok 2680 comma-dangle valid import {foo} from 'foo'; ok 2681 comma-dangle valid import foo from 'foo'; ok 2682 comma-dangle valid import foo, {abc} from 'foo'; ok 2683 comma-dangle valid import * as foo from 'foo'; ok 2684 comma-dangle valid export {foo} from 'foo'; ok 2685 comma-dangle valid import {foo} from 'foo'; ok 2686 comma-dangle valid import {foo} from 'foo'; ok 2687 comma-dangle valid export {foo} from 'foo'; ok 2688 comma-dangle valid export {foo} from 'foo'; ok 2689 comma-dangle valid import {\u000a foo,\u000a} from 'foo'; ok 2690 comma-dangle valid import {\u000a foo,\u000a} from 'foo'; ok 2691 comma-dangle valid export {\u000a foo,\u000a} from 'foo'; ok 2692 comma-dangle valid export {\u000a foo,\u000a} from 'foo'; ok 2693 comma-dangle valid import {foo} from \u000a'foo'; ok 2694 comma-dangle valid import {foo} from \u000a'foo'; ok 2695 comma-dangle valid function foo(a,) {} ok 2696 comma-dangle valid foo(a,) ok 2697 comma-dangle valid function foo(a) {} ok 2698 comma-dangle valid foo(a) ok 2699 comma-dangle valid function foo(\u000aa,\u000ab\u000a) {} ok 2700 comma-dangle valid foo(\u000aa,b) ok 2701 comma-dangle valid function foo(a,b,) {} ok 2702 comma-dangle valid foo(a,b,) ok 2703 comma-dangle valid function foo(a,b,) {} ok 2704 comma-dangle valid foo(a,b,) ok 2705 comma-dangle valid function foo(a) {} ok 2706 comma-dangle valid foo(a) ok 2707 comma-dangle valid function foo(a,) {} ok 2708 comma-dangle valid function bar(a, ...b) {} ok 2709 comma-dangle valid foo(a,) ok 2710 comma-dangle valid bar(...a,) ok 2711 comma-dangle valid function foo(a) {} ok 2712 comma-dangle valid foo(a) ok 2713 comma-dangle valid function foo(\u000aa,\u000ab,\u000a) {} ok 2714 comma-dangle valid function foo(\u000aa,\u000a...b\u000a) {} ok 2715 comma-dangle valid foo(\u000aa,\u000ab,\u000a) ok 2716 comma-dangle valid foo(\u000aa,\u000a...b,\u000a) ok 2717 comma-dangle valid function foo(a) {} ok 2718 comma-dangle valid foo(a) ok 2719 comma-dangle valid function foo(\u000aa,\u000ab,\u000a) {} ok 2720 comma-dangle valid foo(\u000aa,\u000ab,\u000a) ok 2721 comma-dangle valid function foo(\u000aa,\u000ab\u000a) {} ok 2722 comma-dangle valid foo(\u000aa,\u000ab\u000a) ok 2723 comma-dangle valid function foo({a}: {a: string,}) {} ok 2724 comma-dangle valid function foo({a,}: {a: string}) {} ok 2725 comma-dangle valid function foo(a): {b: boolean,} {} ok 2726 comma-dangle valid function foo(a,): {b: boolean} {} ok 2727 comma-dangle invalid var foo = { bar: 'baz', } ok 2728 comma-dangle invalid var foo = {\u000abar: 'baz',\u000a} ok 2729 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 2730 comma-dangle invalid foo({\u000abar: 'baz',\u000aqux: 'quux',\u000a}); ok 2731 comma-dangle invalid var foo = [ 'baz', ] ok 2732 comma-dangle invalid var foo = [ 'baz',\u000a] ok 2733 comma-dangle invalid var foo = { bar: 'bar'\u000a\u000a, } ok 2734 comma-dangle invalid var foo = { bar: 'baz', } ok 2735 comma-dangle invalid var foo = { bar: 'baz', } ok 2736 comma-dangle invalid var foo = {\u000abar: 'baz',\u000a} ok 2737 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 2738 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 2739 comma-dangle invalid var foo = { bar: 'baz' } ok 2740 comma-dangle invalid var foo = {\u000abar: 'baz'\u000a} ok 2741 comma-dangle invalid foo({ bar: 'baz', qux: 'quux' }); ok 2742 comma-dangle invalid foo({\u000abar: 'baz',\u000aqux: 'quux'\u000a}); ok 2743 comma-dangle invalid var foo = [ 'baz' ] ok 2744 comma-dangle invalid var foo = [ 'baz'\u000a] ok 2745 comma-dangle invalid var foo = { bar:\u000a\u000a'bar' } ok 2746 comma-dangle invalid var foo = {\u000abar: 'baz'\u000a} ok 2747 comma-dangle invalid var foo = [\u000a bar,\u000a (\u000a baz\u000a )\u000a]; ok 2748 comma-dangle invalid var foo = {\u000a foo: 'bar',\u000a baz: (\u000a qux\u000a )\u000a}; ok 2749 comma-dangle invalid var foo = [\u000a (bar\u000a ? baz\u000a : qux\u000a )\u000a]; ok 2750 comma-dangle invalid var foo = { bar: 'baz', } ok 2751 comma-dangle invalid foo({\u000abar: 'baz',\u000aqux: 'quux'\u000a}); ok 2752 comma-dangle invalid foo({ bar: 'baz', qux: 'quux', }); ok 2753 comma-dangle invalid var foo = [\u000a'baz'\u000a] ok 2754 comma-dangle invalid var foo = ['baz',] ok 2755 comma-dangle invalid var foo = ['baz',] ok 2756 comma-dangle invalid var foo = {x: {\u000afoo: 'bar',\u000a},} ok 2757 comma-dangle invalid var foo = {a: 1, b: 2,\u000ac: 3, d: 4,} ok 2758 comma-dangle invalid var foo = {a: 1, b: 2,\u000ac: 3, d: 4,} ok 2759 comma-dangle invalid var foo = [{\u000aa: 1,\u000ab: 2,\u000ac: 3,\u000ad: 4,\u000a},] ok 2760 comma-dangle invalid var { a, b, } = foo; ok 2761 comma-dangle invalid var { a, b, } = foo; ok 2762 comma-dangle invalid var [ a, b, ] = foo; ok 2763 comma-dangle invalid var [ a, b, ] = foo; ok 2764 comma-dangle invalid [(1),] ok 2765 comma-dangle invalid [(1),] ok 2766 comma-dangle invalid var x = { foo: (1),}; ok 2767 comma-dangle invalid var x = { foo: (1),}; ok 2768 comma-dangle invalid import {foo} from 'foo'; ok 2769 comma-dangle invalid import foo, {abc} from 'foo'; ok 2770 comma-dangle invalid export {foo} from 'foo'; ok 2771 comma-dangle invalid import {foo,} from 'foo'; ok 2772 comma-dangle invalid import {foo,} from 'foo'; ok 2773 comma-dangle invalid import foo, {abc,} from 'foo'; ok 2774 comma-dangle invalid import foo, {abc,} from 'foo'; ok 2775 comma-dangle invalid export {foo,} from 'foo'; ok 2776 comma-dangle invalid export {foo,} from 'foo'; ok 2777 comma-dangle invalid import {foo,} from 'foo'; ok 2778 comma-dangle invalid export {foo,} from 'foo'; ok 2779 comma-dangle invalid import {\u000a foo\u000a} from 'foo'; ok 2780 comma-dangle invalid export {\u000a foo\u000a} from 'foo'; ok 2781 comma-dangle invalid var foo = {a: (1)} ok 2782 comma-dangle invalid var foo = [(1)] ok 2783 comma-dangle invalid var foo = [\u000a1,\u000a(2)\u000a] ok 2784 comma-dangle invalid function foo(a,) {} ok 2785 comma-dangle invalid (function foo(a,) {}) ok 2786 comma-dangle invalid (a,) => a ok 2787 comma-dangle invalid (a,) => (a) ok 2788 comma-dangle invalid ({foo(a,) {}}) ok 2789 comma-dangle invalid class A {foo(a,) {}} ok 2790 comma-dangle invalid foo(a,) ok 2791 comma-dangle invalid foo(...a,) ok 2792 comma-dangle invalid function foo(a) {} ok 2793 comma-dangle invalid (function foo(a) {}) ok 2794 comma-dangle invalid (a) => a ok 2795 comma-dangle invalid (a) => (a) ok 2796 comma-dangle invalid ({foo(a) {}}) ok 2797 comma-dangle invalid class A {foo(a) {}} ok 2798 comma-dangle invalid foo(a) ok 2799 comma-dangle invalid foo(...a) ok 2800 comma-dangle invalid function foo(a,) {} ok 2801 comma-dangle invalid (function foo(a,) {}) ok 2802 comma-dangle invalid foo(a,) ok 2803 comma-dangle invalid foo(...a,) ok 2804 comma-dangle invalid function foo(\u000aa,\u000ab\u000a) {} ok 2805 comma-dangle invalid foo(\u000aa,\u000ab\u000a) ok 2806 comma-dangle invalid foo(\u000a...a,\u000a...b\u000a) ok 2807 comma-dangle invalid function foo(a,) {} ok 2808 comma-dangle invalid (function foo(a,) {}) ok 2809 comma-dangle invalid foo(a,) ok 2810 comma-dangle invalid foo(...a,) ok 2811 comma-dangle invalid let {a,} = {a: 1,};\u000alet [b,] = [1,];\u000aimport {c,} from "foo";\u000alet d = 0;export {d,};\u000a(function foo(e,) {})(f,); ok 2812 comma-dangle invalid let {a,} = {a: 1,};\u000alet [b,] = [1,];\u000aimport {c,} from "foo";\u000alet d = 0;export {d,};\u000a(function foo(e,) {})(f,); ok 2813 comma-dangle invalid let {a,} = {a: 1,};\u000alet [b,] = [1,];\u000aimport {c,} from "foo";\u000alet d = 0;export {d,};\u000a(function foo(e,) {})(f,); ok 2814 comma-dangle invalid let {a,} = {a: 1,};\u000alet [b,] = [1,];\u000aimport {c,} from "foo";\u000alet d = 0;export {d,};\u000a(function foo(e,) {})(f,); ok 2815 comma-dangle invalid let {a,} = {a: 1,};\u000alet [b,] = [1,];\u000aimport {c,} from "foo";\u000alet d = 0;export {d,};\u000a(function foo(e,) {})(f,); ok 2816 comma-dangle invalid function foo({a}: {a: string,}) {} ok 2817 comma-dangle invalid function foo({a,}: {a: string}) {} ok 2818 comma-dangle invalid function foo(a): {b: boolean,} {} ok 2819 comma-dangle invalid function foo(a,): {b: boolean} {} ok 2820 comma-dangle invalid foo(a,) ok 2821 comma-spacing valid myfunc(404, true/* bla bla bla */, 'hello'); ok 2822 comma-spacing valid myfunc(404, true /* bla bla bla */, 'hello'); ok 2823 comma-spacing valid myfunc(404, true/* bla bla bla *//* hi */, 'hello'); ok 2824 comma-spacing valid myfunc(404, true/* bla bla bla */ /* hi */, 'hello'); ok 2825 comma-spacing valid myfunc(404, true, /* bla bla bla */ 'hello'); ok 2826 comma-spacing valid myfunc(404, // comment\u000a true, /* bla bla bla */ 'hello'); ok 2827 comma-spacing valid myfunc(404, // comment\u000a true,/* bla bla bla */ 'hello'); ok 2828 comma-spacing valid var a = 1, b = 2; ok 2829 comma-spacing valid var arr = [, ]; ok 2830 comma-spacing valid var arr = [1, ]; ok 2831 comma-spacing valid var arr = [, 2]; ok 2832 comma-spacing valid var arr = [1, 2]; ok 2833 comma-spacing valid var arr = [, , ]; ok 2834 comma-spacing valid var arr = [1, , ]; ok 2835 comma-spacing valid var arr = [, 2, ]; ok 2836 comma-spacing valid var arr = [, , 3]; ok 2837 comma-spacing valid var arr = [1, 2, ]; ok 2838 comma-spacing valid var arr = [, 2, 3]; ok 2839 comma-spacing valid var arr = [1, , 3]; ok 2840 comma-spacing valid var arr = [1, 2, 3]; ok 2841 comma-spacing valid var obj = {'foo':'bar', 'baz':'qur'}; ok 2842 comma-spacing valid var obj = {'foo':'bar', 'baz':\u000a'qur'}; ok 2843 comma-spacing valid var obj = {'foo':\u000a'bar', 'baz':\u000a'qur'}; ok 2844 comma-spacing valid function foo(a, b){} ok 2845 comma-spacing valid function foo(a, b = 1){} ok 2846 comma-spacing valid function foo(a = 1, b, c){} ok 2847 comma-spacing valid var foo = (a, b) => {} ok 2848 comma-spacing valid var foo = (a=1, b) => {} ok 2849 comma-spacing valid var foo = a => a + 2 ok 2850 comma-spacing valid a, b ok 2851 comma-spacing valid var a = (1 + 2, 2); ok 2852 comma-spacing valid a(b, c) ok 2853 comma-spacing valid new A(b, c) ok 2854 comma-spacing valid foo((a), b) ok 2855 comma-spacing valid var b = ((1 + 2), 2); ok 2856 comma-spacing valid parseInt((a + b), 10) ok 2857 comma-spacing valid go.boom((a + b), 10) ok 2858 comma-spacing valid go.boom((a + b), 10, (4)) ok 2859 comma-spacing valid var x = [ (a + c), (b + b) ] ok 2860 comma-spacing valid [' , '] ok 2861 comma-spacing valid [` , `] ok 2862 comma-spacing valid `${[1, 2]}` ok 2863 comma-spacing valid fn(a, b,) ok 2864 comma-spacing valid const fn = (a, b,) => {} ok 2865 comma-spacing valid const fn = function (a, b,) {} ok 2866 comma-spacing valid function fn(a, b,) {} ok 2867 comma-spacing valid foo(/,/, 'a') ok 2868 comma-spacing valid var x = ',,,,,'; ok 2869 comma-spacing valid var code = 'var foo = 1, bar = 3;' ok 2870 comma-spacing valid ['apples', \u000a 'oranges']; ok 2871 comma-spacing valid {x: 'var x,y,z'} ok 2872 comma-spacing valid var obj = {'foo':\u000a'bar' ,'baz':\u000a'qur'}; ok 2873 comma-spacing valid var a = 1 ,b = 2; ok 2874 comma-spacing valid function foo(a ,b){} ok 2875 comma-spacing valid var arr = [,]; ok 2876 comma-spacing valid var arr = [1 ,]; ok 2877 comma-spacing valid var arr = [ ,2]; ok 2878 comma-spacing valid var arr = [1 ,2]; ok 2879 comma-spacing valid var arr = [,,]; ok 2880 comma-spacing valid var arr = [1 , ,]; ok 2881 comma-spacing valid var arr = [ ,2 ,]; ok 2882 comma-spacing valid var arr = [ , ,3]; ok 2883 comma-spacing valid var arr = [1 ,2 ,]; ok 2884 comma-spacing valid var arr = [ ,2 ,3]; ok 2885 comma-spacing valid var arr = [1 , ,3]; ok 2886 comma-spacing valid var arr = [1 ,2 ,3]; ok 2887 comma-spacing valid var obj = {'foo':'bar' , 'baz':'qur'}; ok 2888 comma-spacing valid var a = 1 , b = 2; ok 2889 comma-spacing valid var arr = [, ]; ok 2890 comma-spacing valid var arr = [1 , ]; ok 2891 comma-spacing valid var arr = [ , 2]; ok 2892 comma-spacing valid var arr = [1 , 2]; ok 2893 comma-spacing valid var arr = [, , ]; ok 2894 comma-spacing valid var arr = [1 , , ]; ok 2895 comma-spacing valid var arr = [ , 2 , ]; ok 2896 comma-spacing valid var arr = [ , , 3]; ok 2897 comma-spacing valid var arr = [1 , 2 , ]; ok 2898 comma-spacing valid var arr = [, 2 , 3]; ok 2899 comma-spacing valid var arr = [1 , , 3]; ok 2900 comma-spacing valid var arr = [1 , 2 , 3]; ok 2901 comma-spacing valid a , b ok 2902 comma-spacing valid var arr = [,]; ok 2903 comma-spacing valid var arr = [ ,]; ok 2904 comma-spacing valid var arr = [1,]; ok 2905 comma-spacing valid var arr = [,2]; ok 2906 comma-spacing valid var arr = [ ,2]; ok 2907 comma-spacing valid var arr = [1,2]; ok 2908 comma-spacing valid var arr = [,,]; ok 2909 comma-spacing valid var arr = [ ,,]; ok 2910 comma-spacing valid var arr = [1,,]; ok 2911 comma-spacing valid var arr = [,2,]; ok 2912 comma-spacing valid var arr = [ ,2,]; ok 2913 comma-spacing valid var arr = [,,3]; ok 2914 comma-spacing valid var arr = [1,2,]; ok 2915 comma-spacing valid var arr = [,2,3]; ok 2916 comma-spacing valid var arr = [1,,3]; ok 2917 comma-spacing valid var arr = [1,2,3]; ok 2918 comma-spacing valid var a = (1 + 2,2) ok 2919 comma-spacing valid var a; console.log(`${a}`, "a"); ok 2920 comma-spacing valid var [a, b] = [1, 2]; ok 2921 comma-spacing valid var [a, b, ] = [1, 2]; ok 2922 comma-spacing valid var [a, , b] = [1, 2, 3]; ok 2923 comma-spacing valid var [ , b] = a; ok 2924 comma-spacing valid var [, b] = a; ok 2925 comma-spacing valid , ok 2926 comma-spacing valid , ok 2927 comma-spacing valid Hello, world ok 2928 comma-spacing invalid a(b,c) ok 2929 comma-spacing invalid new A(b,c) ok 2930 comma-spacing invalid var a = 1 ,b = 2; ok 2931 comma-spacing invalid var arr = [1 , 2]; ok 2932 comma-spacing invalid var arr = [1 , ]; ok 2933 comma-spacing invalid var arr = [1 , ]; ok 2934 comma-spacing invalid var arr = [1 ,2]; ok 2935 comma-spacing invalid var arr = [(1) , 2]; ok 2936 comma-spacing invalid var arr = [1, 2]; ok 2937 comma-spacing invalid var arr = [1\u000a , 2]; ok 2938 comma-spacing invalid var arr = [1,\u000a 2]; ok 2939 comma-spacing invalid var obj = {'foo':\u000a'bar', 'baz':\u000a'qur'}; ok 2940 comma-spacing invalid var obj = {a: 1\u000a ,b: 2}; ok 2941 comma-spacing invalid var obj = {a: 1 ,\u000a b: 2}; ok 2942 comma-spacing invalid var arr = [1 ,2]; ok 2943 comma-spacing invalid var arr = [1,2]; ok 2944 comma-spacing invalid var obj = {'foo':\u000a'bar','baz':\u000a'qur'}; ok 2945 comma-spacing invalid var arr = [1 , 2]; ok 2946 comma-spacing invalid a ,b ok 2947 comma-spacing invalid function foo(a,b){} ok 2948 comma-spacing invalid var foo = (a,b) => {} ok 2949 comma-spacing invalid var foo = (a = 1,b) => {} ok 2950 comma-spacing invalid function foo(a = 1 ,b = 2) {} ok 2951 comma-spacing invalid {foo(1 ,2)} ok 2952 comma-spacing invalid myfunc(404, true/* bla bla bla */ , 'hello'); ok 2953 comma-spacing invalid myfunc(404, true,/* bla bla bla */ 'hello'); ok 2954 comma-spacing invalid myfunc(404,// comment\u000a true, 'hello'); ok 2955 comma-style valid var foo = 1, bar = 3; ok 2956 comma-style valid var foo = {'a': 1, 'b': 2}; ok 2957 comma-style valid var foo = [1, 2]; ok 2958 comma-style valid var foo = [, 2]; ok 2959 comma-style valid var foo = [1, ]; ok 2960 comma-style valid var foo = ['apples', \u000a 'oranges']; ok 2961 comma-style valid var foo = {'a': 1, \u000a 'b': 2, \u000a'c': 3}; ok 2962 comma-style valid var foo = {'a': 1, \u000a 'b': 2, 'c':\u000a 3}; ok 2963 comma-style valid var foo = {'a': 1, \u000a 'b': 2, 'c': [{'d': 1}, \u000a {'e': 2}, \u000a {'f': 3}]}; ok 2964 comma-style valid var foo = [1, \u000a2, \u000a3]; ok 2965 comma-style valid function foo(){var a=[1,\u000a 2]} ok 2966 comma-style valid function foo(){return {'a': 1,\u000a'b': 2}} ok 2967 comma-style valid var foo = \u000a1, \u000abar = \u000a2; ok 2968 comma-style valid var foo = [\u000a(bar),\u000abaz\u000a]; ok 2969 comma-style valid var foo = [\u000a(bar\u000a),\u000abaz\u000a]; ok 2970 comma-style valid var foo = [\u000a(\u000abar\u000a),\u000abaz\u000a]; ok 2971 comma-style valid new Foo(a\u000a,b); ok 2972 comma-style valid var foo = [\u000a(bar\u000a)\u000a,baz\u000a]; ok 2973 comma-style valid var foo = \u000a1, \u000abar = [1,\u000a2,\u000a3] ok 2974 comma-style valid var foo = ['apples'\u000a,'oranges']; ok 2975 comma-style valid var foo = 1, bar = 2; ok 2976 comma-style valid var foo = 1 \u000a ,bar = 2; ok 2977 comma-style valid var foo = {'a': 1 \u000a ,'b': 2 \u000a,'c': 3}; ok 2978 comma-style valid var foo = [1 \u000a ,2 \u000a, 3]; ok 2979 comma-style valid function foo(){return {'a': 1\u000a,'b': 2}} ok 2980 comma-style valid function foo(){var a=[1\u000a, 2]} ok 2981 comma-style valid new Foo(a,\u000ab); ok 2982 comma-style valid f(1\u000a, 2); ok 2983 comma-style valid function foo(a\u000a, b) { return a + b; } ok 2984 comma-style valid var a = 'a',\u000ao = 'o'; ok 2985 comma-style valid var arr = ['a',\u000a'o']; ok 2986 comma-style valid var obj = {a: 'a',\u000ab: 'b'}; ok 2987 comma-style valid var a = 'a',\u000ao = 'o',\u000aarr = [1,\u000a2]; ok 2988 comma-style valid var ar ={fst:1,\u000asnd: [1,\u000a2]}; ok 2989 comma-style valid var a = 'a',\u000aar ={fst:1,\u000asnd: [1,\u000a2]}; ok 2990 comma-style valid const foo = (a\u000a, b) => { return a + b; } ok 2991 comma-style valid function foo([a\u000a, b]) { return a + b; } ok 2992 comma-style valid const foo = ([a\u000a, b]) => { return a + b; } ok 2993 comma-style valid import { a\u000a, b } from './source'; ok 2994 comma-style valid const foo = function (a\u000a, b) { return a + b; } ok 2995 comma-style valid var {foo\u000a, bar} = {foo:'apples', bar:'oranges'}; ok 2996 comma-style valid var {foo\u000a, bar} = {foo:'apples', bar:'oranges'}; ok 2997 comma-style valid new Foo(a,\u000ab); ok 2998 comma-style valid f(1\u000a, 2); ok 2999 comma-style valid function foo(a\u000a, b) { return a + b; } ok 3000 comma-style valid const foo = function (a\u000a, b) { return a + b; } ok 3001 comma-style valid function foo([a\u000a, b]) { return a + b; } ok 3002 comma-style valid const foo = (a\u000a, b) => { return a + b; } ok 3003 comma-style valid const foo = ([a\u000a, b]) => { return a + b; } ok 3004 comma-style valid import { a\u000a, b } from './source'; ok 3005 comma-style valid var {foo\u000a, bar} = {foo:'apples', bar:'oranges'}; ok 3006 comma-style valid new Foo(a,\u000ab); ok 3007 comma-style valid new Foo(a\u000a,b); ok 3008 comma-style invalid var foo = { a: 1. //comment \u000a, b: 2\u000a} ok 3009 comma-style invalid var foo = { a: 1. //comment \u000a //comment1 \u000a //comment2 \u000a, b: 2\u000a} ok 3010 comma-style invalid var foo = 1\u000a,\u000abar = 2; ok 3011 comma-style invalid var foo = 1 //comment\u000a,\u000abar = 2; ok 3012 comma-style invalid var foo = 1 //comment\u000a, // comment 2\u000abar = 2; ok 3013 comma-style invalid new Foo(a\u000a,\u000ab); ok 3014 comma-style invalid var foo = 1\u000a,bar = 2; ok 3015 comma-style invalid f([1,2\u000a,3]); ok 3016 comma-style invalid f([1,2\u000a,]); ok 3017 comma-style invalid f([,2\u000a,3]); ok 3018 comma-style invalid var foo = ['apples'\u000a, 'oranges']; ok 3019 comma-style invalid var [foo\u000a, bar] = ['apples', 'oranges']; ok 3020 comma-style invalid f(1\u000a, 2); ok 3021 comma-style invalid function foo(a\u000a, b) { return a + b; } ok 3022 comma-style invalid const foo = function (a\u000a, b) { return a + b; } ok 3023 comma-style invalid function foo([a\u000a, b]) { return a + b; } ok 3024 comma-style invalid const foo = (a\u000a, b) => { return a + b; } ok 3025 comma-style invalid const foo = ([a\u000a, b]) => { return a + b; } ok 3026 comma-style invalid import { a\u000a, b } from './source'; ok 3027 comma-style invalid var {foo\u000a, bar} = {foo:'apples', bar:'oranges'}; ok 3028 comma-style invalid var foo = 1,\u000abar = 2; ok 3029 comma-style invalid f([1,\u000a2,3]); ok 3030 comma-style invalid var foo = ['apples', \u000a 'oranges']; ok 3031 comma-style invalid var foo = {'a': 1, \u000a 'b': 2\u000a ,'c': 3}; ok 3032 comma-style invalid var a = 'a',\u000ao = 'o',\u000aarr = [1,\u000a2]; ok 3033 comma-style invalid var a = 'a',\u000aobj = {a: 'a',\u000ab: 'b'}; ok 3034 comma-style invalid var a = 'a',\u000aobj = {a: 'a',\u000ab: 'b'}; ok 3035 comma-style invalid var a = 'a',\u000aarr = [1,\u000a2]; ok 3036 comma-style invalid var ar =[1,\u000a{a: 'a',\u000ab: 'b'}]; ok 3037 comma-style invalid var ar =[1,\u000a{a: 'a',\u000ab: 'b'}]; ok 3038 comma-style invalid var ar ={fst:1,\u000asnd: [1,\u000a2]}; ok 3039 comma-style invalid var ar ={fst:1,\u000asnd: [1,\u000a2]}; ok 3040 comma-style invalid new Foo(a,\u000ab); ok 3041 comma-style invalid var foo = [\u000a(bar\u000a)\u000a,\u000abaz\u000a]; ok 3042 comma-style invalid [(foo),\u000a,\u000abar] ok 3043 comma-style invalid new Foo(a\u000a,b); ok 3044 comma-style invalid [\u000a[foo(3)],\u000a,\u000abar\u000a]; ok 3045 comma-style invalid [foo//\u000a,/*block\u000acomment*/]; ok 3046 complexity valid function a(x) {} ok 3047 complexity valid function b(x) {} ok 3048 complexity valid function a(x) {if (true) {return x;}} ok 3049 complexity valid function a(x) {if (true) {return x;} else {return x+1;}} ok 3050 complexity valid function a(x) {if (true) {return x;} else if (false) {return x+1;} else {return 4;}} ok 3051 complexity valid function a(x) {for(var i = 0; i < 5; i ++) {x ++;} return x;} ok 3052 complexity valid function a(obj) {for(var i in obj) {obj[i] = 3;}} ok 3053 complexity valid function a(x) {for(var i = 0; i < 5; i ++) {if(i % 2 === 0) {x ++;}} return x;} ok 3054 complexity valid function a(obj) {if(obj){ for(var x in obj) {try {x.getThis();} catch (e) {x.getThat();}}} else {return false;}} ok 3055 complexity valid function a(x) {try {x.getThis();} catch (e) {x.getThat();}} ok 3056 complexity valid function a(x) {return x === 4 ? 3 : 5;} ok 3057 complexity valid function a(x) {return x === 4 ? 3 : (x === 3 ? 2 : 1);} ok 3058 complexity valid function a(x) {return x || 4;} ok 3059 complexity valid function a(x) {x && 4;} ok 3060 complexity valid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: 3;}} ok 3061 complexity valid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: if(x == 'foo') {5;};}} ok 3062 complexity valid function a(x) {while(true) {'foo';}} ok 3063 complexity valid function a(x) {do {'foo';} while (true)} ok 3064 complexity valid if (foo) { bar(); } ok 3065 complexity valid var a = (x) => {do {'foo';} while (true)} ok 3066 complexity valid function b(x) {} ok 3067 complexity invalid function a(x) {} ok 3068 complexity invalid var func = function () {} ok 3069 complexity invalid var obj = { a(x) {} } ok 3070 complexity invalid class Test { a(x) {} } ok 3071 complexity invalid var a = (x) => {if (true) {return x;}} ok 3072 complexity invalid function a(x) {if (true) {return x;}} ok 3073 complexity invalid function a(x) {if (true) {return x;} else {return x+1;}} ok 3074 complexity invalid function a(x) {if (true) {return x;} else if (false) {return x+1;} else {return 4;}} ok 3075 complexity invalid function a(x) {for(var i = 0; i < 5; i ++) {x ++;} return x;} ok 3076 complexity invalid function a(obj) {for(var i in obj) {obj[i] = 3;}} ok 3077 complexity invalid function a(obj) {for(var i of obj) {obj[i] = 3;}} ok 3078 complexity invalid function a(x) {for(var i = 0; i < 5; i ++) {if(i % 2 === 0) {x ++;}} return x;} ok 3079 complexity invalid function a(obj) {if(obj){ for(var x in obj) {try {x.getThis();} catch (e) {x.getThat();}}} else {return false;}} ok 3080 complexity invalid function a(x) {try {x.getThis();} catch (e) {x.getThat();}} ok 3081 complexity invalid function a(x) {return x === 4 ? 3 : 5;} ok 3082 complexity invalid function a(x) {return x === 4 ? 3 : (x === 3 ? 2 : 1);} ok 3083 complexity invalid function a(x) {return x || 4;} ok 3084 complexity invalid function a(x) {x && 4;} ok 3085 complexity invalid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: 3;}} ok 3086 complexity invalid function a(x) {switch(x){case 1: 1; break; case 2: 2; break; default: if(x == 'foo') {5;};}} ok 3087 complexity invalid function a(x) {while(true) {'foo';}} ok 3088 complexity invalid function a(x) {do {'foo';} while (true)} ok 3089 complexity invalid function a(x) {(function() {while(true){'foo';}})(); (function() {while(true){'bar';}})();} ok 3090 complexity invalid function a(x) {(function() {while(true){'foo';}})(); (function() {'bar';})();} ok 3091 complexity invalid var obj = { a(x) { return x ? 0 : 1; } }; ok 3092 complexity invalid var obj = { a: function b(x) { return x ? 0 : 1; } }; ok 3093 complexity invalid function test (a) { if (a === 1) {} else if (a === 2) {} else if (a === 3) {} else if (a === 4) {} else if (a === 5) {} else if (a === 6) {} else if (a === 7) {} else if (a === 8) {} else if (a === 9) {} else if (a === 10) {} else if (a === 11) {} else if (a === 12) {} else if (a === 13) {} else if (a === 14) {} else if (a === 15) {} else if (a === 16) {} else if (a === 17) {} else if (a === 18) {} else if (a === 19) {} else if (a === 20) {} }; ok 3094 complexity invalid function test (a) { if (a === 1) {} else if (a === 2) {} else if (a === 3) {} else if (a === 4) {} else if (a === 5) {} else if (a === 6) {} else if (a === 7) {} else if (a === 8) {} else if (a === 9) {} else if (a === 10) {} else if (a === 11) {} else if (a === 12) {} else if (a === 13) {} else if (a === 14) {} else if (a === 15) {} else if (a === 16) {} else if (a === 17) {} else if (a === 18) {} else if (a === 19) {} else if (a === 20) {} }; ok 3095 complexity invalid function a(x) {} ok 3096 computed-property-spacing valid obj[foo] ok 3097 computed-property-spacing valid obj['foo'] ok 3098 computed-property-spacing valid var x = {[b]: a} ok 3099 computed-property-spacing valid obj[ foo ] ok 3100 computed-property-spacing valid obj[\u000afoo\u000a] ok 3101 computed-property-spacing valid obj[ 'foo' ] ok 3102 computed-property-spacing valid obj[ 'foo' + 'bar' ] ok 3103 computed-property-spacing valid obj[ obj2[ foo ] ] ok 3104 computed-property-spacing valid obj.map(function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 3105 computed-property-spacing valid obj[ 'map' ](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 3106 computed-property-spacing valid obj[ 'for' + 'Each' ](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 3107 computed-property-spacing valid var foo = obj[ 1 ] ok 3108 computed-property-spacing valid var foo = obj[ 'foo' ]; ok 3109 computed-property-spacing valid var foo = obj[ [1, 1] ]; ok 3110 computed-property-spacing valid var x = {[ "a" ]: a} ok 3111 computed-property-spacing valid var y = {[ x ]: a} ok 3112 computed-property-spacing valid var x = {[ "a" ]() {}} ok 3113 computed-property-spacing valid var y = {[ x ]() {}} ok 3114 computed-property-spacing valid var foo = {}; ok 3115 computed-property-spacing valid var foo = []; ok 3116 computed-property-spacing valid obj[foo] ok 3117 computed-property-spacing valid obj['foo'] ok 3118 computed-property-spacing valid obj['foo' + 'bar'] ok 3119 computed-property-spacing valid obj['foo'+'bar'] ok 3120 computed-property-spacing valid obj[obj2[foo]] ok 3121 computed-property-spacing valid obj.map(function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 3122 computed-property-spacing valid obj['map'](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 3123 computed-property-spacing valid obj['for' + 'Each'](function(item) { return [\u000a1,\u000a2,\u000a3,\u000a4\u000a]; }) ok 3124 computed-property-spacing valid obj[\u000afoo] ok 3125 computed-property-spacing valid obj[foo\u000a] ok 3126 computed-property-spacing valid var foo = obj[1] ok 3127 computed-property-spacing valid var foo = obj['foo']; ok 3128 computed-property-spacing valid var foo = obj[[ 1, 1 ]]; ok 3129 computed-property-spacing valid var x = {["a"]: a} ok 3130 computed-property-spacing valid var y = {[x]: a} ok 3131 computed-property-spacing valid var x = {["a"]() {}} ok 3132 computed-property-spacing valid var y = {[x]() {}} ok 3133 computed-property-spacing valid var foo = {}; ok 3134 computed-property-spacing valid var foo = []; ok 3135 computed-property-spacing valid class A { [ a ](){} } ok 3136 computed-property-spacing valid class A { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} } ok 3137 computed-property-spacing valid A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} } ok 3138 computed-property-spacing valid A = class { [a](){} } ok 3139 computed-property-spacing valid A = class { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} } ok 3140 computed-property-spacing valid class A { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} } ok 3141 computed-property-spacing valid class A { [ a ](){} } ok 3142 computed-property-spacing valid A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} } ok 3143 computed-property-spacing valid A = class { [a](){} } ok 3144 computed-property-spacing valid class A { [a](){} get [b](){} set [b](foo){} static [c](){} static get [d](){} static set [d](bar){} } ok 3145 computed-property-spacing valid A = class { [a](){} } ok 3146 computed-property-spacing valid class A { [a] ( ) { } } ok 3147 computed-property-spacing valid A = class { [ \u000a a \u000a ](){} } ok 3148 computed-property-spacing valid class A { [a](){} get [b](){} set [b](foo){} static [c](){} static get [d](){} static set [d](bar){} } ok 3149 computed-property-spacing valid class A { [ a ](){} } ok 3150 computed-property-spacing valid class A { [ a ](){}[ b ](){} } ok 3151 computed-property-spacing valid A = class { [\u000aa\u000a](){} } ok 3152 computed-property-spacing valid A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} } ok 3153 computed-property-spacing valid class A { a ( ) { } get b(){} set b ( foo ){} static c (){} static get d() {} static set d( bar ) {} } ok 3154 computed-property-spacing valid A = class {a(){}get b(){}set b(foo){}static c(){}static get d(){}static set d(bar){}} ok 3155 computed-property-spacing invalid var foo = obj[ 1]; ok 3156 computed-property-spacing invalid var foo = obj[1 ]; ok 3157 computed-property-spacing invalid var foo = obj[ 1]; ok 3158 computed-property-spacing invalid var foo = obj[1 ]; ok 3159 computed-property-spacing invalid obj[ foo ] ok 3160 computed-property-spacing invalid obj[foo ] ok 3161 computed-property-spacing invalid obj[ foo] ok 3162 computed-property-spacing invalid var foo = obj[1] ok 3163 computed-property-spacing invalid var x = {[a]: b} ok 3164 computed-property-spacing invalid var x = {[a ]: b} ok 3165 computed-property-spacing invalid var x = {[ a]: b} ok 3166 computed-property-spacing invalid var x = {[ a ]: b} ok 3167 computed-property-spacing invalid var x = {[a ]: b} ok 3168 computed-property-spacing invalid var x = {[ a]: b} ok 3169 computed-property-spacing invalid var x = {[ a\u000a]: b} ok 3170 computed-property-spacing invalid class A { [ a](){} } ok 3171 computed-property-spacing invalid A = class { [a](){} b(){} static [c ](){} static [d](){}} ok 3172 computed-property-spacing invalid class A { get [a ](){} set [ a](foo){} get b(){} static set b(bar){} static get [ a](){} static set [a ](baz){} } ok 3173 computed-property-spacing invalid A = class { [ a ](){} get [ b ](){} set [ c ](foo){} static [ d ](){} static get [ e ](){} static set [ f ](bar){} } ok 3174 computed-property-spacing invalid class A { [ a](){} } ok 3175 computed-property-spacing invalid A = class { [ a ](){} b(){} static [c ](){} static [ d ](){}} ok 3176 computed-property-spacing invalid class A { get [a ](){} set [ a](foo){} get b(){} static set b(bar){} static get [ a](){} static set [a ](baz){} } ok 3177 computed-property-spacing invalid A = class { [a](){} get [b](){} set [c](foo){} static [d](){} static get [e](){} static set [f](bar){} } ok 3178 consistent-return valid function foo() { return; } ok 3179 consistent-return valid function foo() { if (true) return; } ok 3180 consistent-return valid function foo() { if (true) return; else return; } ok 3181 consistent-return valid function foo() { if (true) return true; else return false; } ok 3182 consistent-return valid f(function() { return; }) ok 3183 consistent-return valid f(function() { if (true) return; }) ok 3184 consistent-return valid f(function() { if (true) return; else return; }) ok 3185 consistent-return valid f(function() { if (true) return true; else return false; }) ok 3186 consistent-return valid function foo() { function bar() { return true; } return; } ok 3187 consistent-return valid function foo() { function bar() { return; } return false; } ok 3188 consistent-return valid function Foo() { if (!(this instanceof Foo)) return new Foo(); } ok 3189 consistent-return valid function foo() { if (true) return; else return undefined; } ok 3190 consistent-return valid function foo() { if (true) return; else return void 0; } ok 3191 consistent-return valid function foo() { if (true) return undefined; else return; } ok 3192 consistent-return valid function foo() { if (true) return undefined; else return void 0; } ok 3193 consistent-return valid function foo() { if (true) return void 0; else return; } ok 3194 consistent-return valid function foo() { if (true) return void 0; else return undefined; } ok 3195 consistent-return valid var x = () => { return {}; }; ok 3196 consistent-return valid if (true) { return 1; } return 0; ok 3197 consistent-return valid class Foo { constructor() { if (true) return foo; } } ok 3198 consistent-return valid var Foo = class { constructor() { if (true) return foo; } } ok 3199 consistent-return invalid function foo() { if (true) return true; else return; } ok 3200 consistent-return invalid var foo = () => { if (true) return true; else return; } ok 3201 consistent-return invalid function foo() { if (true) return; else return false; } ok 3202 consistent-return invalid f(function() { if (true) return true; else return; }) ok 3203 consistent-return invalid f(function() { if (true) return; else return false; }) ok 3204 consistent-return invalid f(a => { if (true) return; else return false; }) ok 3205 consistent-return invalid function foo() { if (true) return true; return undefined; } ok 3206 consistent-return invalid function foo() { if (true) return true; return void 0; } ok 3207 consistent-return invalid function foo() { if (true) return undefined; return true; } ok 3208 consistent-return invalid function foo() { if (true) return void 0; return true; } ok 3209 consistent-return invalid if (true) { return 1; } return; ok 3210 consistent-return invalid function foo() { if (a) return true; } ok 3211 consistent-return invalid function _foo() { if (a) return true; } ok 3212 consistent-return invalid f(function foo() { if (a) return true; }); ok 3213 consistent-return invalid f(function() { if (a) return true; }); ok 3214 consistent-return invalid f(() => { if (a) return true; }); ok 3215 consistent-return invalid var obj = {foo() { if (a) return true; }}; ok 3216 consistent-return invalid class A {foo() { if (a) return true; }}; ok 3217 consistent-return invalid if (a) return true; ok 3218 consistent-return invalid class A { CapitalizedFunction() { if (a) return true; } } ok 3219 consistent-return invalid ({ constructor() { if (a) return true; } }); ok 3220 consistent-this valid var foo = 42, that = this ok 3221 consistent-this valid var foo = 42, self = this ok 3222 consistent-this valid var self = 42 ok 3223 consistent-this valid var self ok 3224 consistent-this valid var self; self = this ok 3225 consistent-this valid var foo, self; self = this ok 3226 consistent-this valid var foo, self; foo = 42; self = this ok 3227 consistent-this valid self = 42 ok 3228 consistent-this valid var foo = {}; foo.bar = this ok 3229 consistent-this valid var self = this; var vm = this; ok 3230 consistent-this valid var {foo, bar} = this ok 3231 consistent-this valid ({foo, bar} = this) ok 3232 consistent-this valid var [foo, bar] = this ok 3233 consistent-this valid [foo, bar] = this ok 3234 consistent-this invalid var context = this ok 3235 consistent-this invalid var that = this ok 3236 consistent-this invalid var foo = 42, self = this ok 3237 consistent-this invalid var self = 42 ok 3238 consistent-this invalid var self ok 3239 consistent-this invalid var self; self = 42 ok 3240 consistent-this invalid context = this ok 3241 consistent-this invalid that = this ok 3242 consistent-this invalid self = this ok 3243 consistent-this invalid self += this ok 3244 consistent-this invalid var self; (function() { self = this; }()) ok 3245 constructor-super valid class A { } ok 3246 constructor-super valid class A { constructor() { } } ok 3247 constructor-super valid class A extends null { } ok 3248 constructor-super valid class A extends B { } ok 3249 constructor-super valid class A extends B { constructor() { super(); } } ok 3250 constructor-super valid class A extends B { constructor() { if (true) { super(); } else { super(); } } } ok 3251 constructor-super valid class A extends (class B {}) { constructor() { super(); } } ok 3252 constructor-super valid class A extends (B = C) { constructor() { super(); } } ok 3253 constructor-super valid class A extends (B || C) { constructor() { super(); } } ok 3254 constructor-super valid class A extends (a ? B : C) { constructor() { super(); } } ok 3255 constructor-super valid class A extends (B, C) { constructor() { super(); } } ok 3256 constructor-super valid class A { constructor() { class B extends C { constructor() { super(); } } } } ok 3257 constructor-super valid class A extends B { constructor() { super(); class C extends D { constructor() { super(); } } } } ok 3258 constructor-super valid class A extends B { constructor() { super(); class C { constructor() { } } } } ok 3259 constructor-super valid class A extends B { constructor() { a ? super() : super(); } } ok 3260 constructor-super valid class A extends B { constructor() { if (a) super(); else super(); } } ok 3261 constructor-super valid class A extends B { constructor() { switch (a) { case 0: super(); break; default: super(); } } } ok 3262 constructor-super valid class A extends B { constructor() { try {} finally { super(); } } } ok 3263 constructor-super valid class A extends B { constructor() { if (a) throw Error(); super(); } } ok 3264 constructor-super valid class A extends B { constructor() { if (true) return a; super(); } } ok 3265 constructor-super valid class A extends null { constructor() { return a; } } ok 3266 constructor-super valid class A { constructor() { return a; } } ok 3267 constructor-super valid class A extends B { constructor(a) { super(); for (const b of a) { this.a(); } } } ok 3268 constructor-super valid class Foo extends Object { constructor(method) { super(); this.method = method || function() {}; } } ok 3269 constructor-super valid class A extends Object {\u000a constructor() {\u000a super();\u000a for (let i = 0; i < 0; i++);\u000a }\u000a} ok 3270 constructor-super valid \u000a class A extends B {\u000a constructor(props) {\u000a super(props);\u000a\u000a try {\u000a let arr = [];\u000a for (let a of arr) {\u000a }\u000a } catch (err) {\u000a }\u000a }\u000a }\u000a ok 3271 constructor-super invalid class A extends null { constructor() { super(); } } ok 3272 constructor-super invalid class A extends null { constructor() { } } ok 3273 constructor-super invalid class A extends 100 { constructor() { super(); } } ok 3274 constructor-super invalid class A extends 'test' { constructor() { super(); } } ok 3275 constructor-super invalid class A extends B { constructor() { } } ok 3276 constructor-super invalid class A extends B { constructor() { for (var a of b) super.foo(); } } ok 3277 constructor-super invalid class A extends B { constructor() { class C extends D { constructor() { super(); } } } } ok 3278 constructor-super invalid class A extends B { constructor() { var c = class extends D { constructor() { super(); } } } } ok 3279 constructor-super invalid class A extends B { constructor() { var c = () => super(); } } ok 3280 constructor-super invalid class A extends B { constructor() { class C extends D { constructor() { super(); } } } } ok 3281 constructor-super invalid class A extends B { constructor() { var C = class extends D { constructor() { super(); } } } } ok 3282 constructor-super invalid class A extends B { constructor() { super(); class C extends D { constructor() { } } } } ok 3283 constructor-super invalid class A extends B { constructor() { super(); var C = class extends D { constructor() { } } } } ok 3284 constructor-super invalid class A extends B { constructor() { if (a) super(); } } ok 3285 constructor-super invalid class A extends B { constructor() { if (a); else super(); } } ok 3286 constructor-super invalid class A extends B { constructor() { a && super(); } } ok 3287 constructor-super invalid class A extends B { constructor() { switch (a) { case 0: super(); } } } ok 3288 constructor-super invalid class A extends B { constructor() { switch (a) { case 0: break; default: super(); } } } ok 3289 constructor-super invalid class A extends B { constructor() { try { super(); } catch (err) {} } } ok 3290 constructor-super invalid class A extends B { constructor() { try { a; } catch (err) { super(); } } } ok 3291 constructor-super invalid class A extends B { constructor() { if (a) return; super(); } } ok 3292 constructor-super invalid class A extends B { constructor() { super(); super(); } } ok 3293 constructor-super invalid class A extends B { constructor() { super() || super(); } } ok 3294 constructor-super invalid class A extends B { constructor() { if (a) super(); super(); } } ok 3295 constructor-super invalid class A extends B { constructor() { switch (a) { case 0: super(); default: super(); } } } ok 3296 constructor-super invalid class A extends B { constructor(a) { while (a) super(); } } ok 3297 constructor-super invalid class A extends B { constructor() { return; super(); } } ok 3298 constructor-super invalid class Foo extends Bar {\u000a constructor() {\u000a for (a in b) for (c in d);\u000a }\u000a } ok 3299 curly valid if (foo) { bar() } ok 3300 curly valid if (foo) { bar() } else if (foo2) { baz() } ok 3301 curly valid while (foo) { bar() } ok 3302 curly valid do { bar(); } while (foo) ok 3303 curly valid for (;foo;) { bar() } ok 3304 curly valid for (var foo in bar) { console.log(foo) } ok 3305 curly valid for (var foo of bar) { console.log(foo) } ok 3306 curly valid for (;foo;) bar() ok 3307 curly valid if (foo) bar() ok 3308 curly valid if (a) { b; c; } ok 3309 curly valid for (var foo in bar) console.log(foo) ok 3310 curly valid for (var foo in bar) { console.log(1); console.log(2) } ok 3311 curly valid for (var foo of bar) console.log(foo) ok 3312 curly valid for (var foo of bar) { console.log(1); console.log(2) } ok 3313 curly valid if (foo) bar() ok 3314 curly valid if (foo) bar() \u000a ok 3315 curly valid if (foo) bar(); else baz() ok 3316 curly valid if (foo) bar(); \u000a else baz() ok 3317 curly valid if (foo) bar() \u000a else if (foo) bar() \u000a else baz() ok 3318 curly valid do baz(); while (foo) ok 3319 curly valid if (foo) { bar() } ok 3320 curly valid for (var foo in bar) console.log(foo) ok 3321 curly valid for (var foo in bar) { \u000a console.log(1); \u000a console.log(2); \u000a } ok 3322 curly valid for (var foo of bar) console.log(foo) ok 3323 curly valid for (var foo of bar) { \u000a console.log(1); \u000a console.log(2); \u000a } ok 3324 curly valid if (foo) { \u000a bar(); \u000a baz(); \u000a } ok 3325 curly valid do bar() \u000a while (foo) ok 3326 curly valid if (foo) { \u000a quz = { \u000a bar: baz, \u000a qux: foo \u000a }; \u000a } ok 3327 curly valid while (true) { \u000a if (foo) \u000a doSomething(); \u000a else \u000a doSomethingElse(); \u000a } ok 3328 curly valid if (foo) \u000a quz = true; ok 3329 curly valid if (foo) { \u000a // line of comment \u000a quz = true; \u000a } ok 3330 curly valid // line of comment \u000a if (foo) \u000a quz = true; \u000a ok 3331 curly valid while (true) \u000a doSomething(); ok 3332 curly valid for (var i = 0; foo; i++) \u000a doSomething(); ok 3333 curly valid if (foo) { \u000a if(bar) \u000a doSomething(); \u000a } else \u000a doSomethingElse(); ok 3334 curly valid for (var foo in bar) \u000a console.log(foo) ok 3335 curly valid for (var foo in bar) { \u000a if (foo) console.log(1); \u000a else console.log(2) \u000a } ok 3336 curly valid for (var foo of bar) \u000a console.log(foo) ok 3337 curly valid for (var foo of bar) { \u000a if (foo) console.log(1); \u000a else console.log(2) \u000a } ok 3338 curly valid if (foo) { \u000a const bar = 'baz'; \u000a } ok 3339 curly valid if (foo) { \u000a let bar = 'baz'; \u000a } ok 3340 curly valid if (foo) { \u000a function bar() {} \u000a } ok 3341 curly valid if (foo) { \u000a class bar {} \u000a } ok 3342 curly valid if (true) { if (false) console.log(1) } else console.log(2) ok 3343 curly valid if (a) { if (b) console.log(1); else if (c) console.log(2) } else console.log(3) ok 3344 curly valid if (true) { while(false) if (true); } else; ok 3345 curly valid if (true) { label: if (false); } else; ok 3346 curly valid if (true) { with(0) if (false); } else; ok 3347 curly valid if (true) { while(a) if(b) while(c) if (d); else; } else; ok 3348 curly valid if (true) foo(); else { bar(); baz(); } ok 3349 curly valid if (true) { foo(); } else { bar(); baz(); } ok 3350 curly valid if (true) { foo(); } else if (true) { faa(); } else { bar(); baz(); } ok 3351 curly valid if (true) { foo(); faa(); } else { bar(); } ok 3352 curly valid if (true) foo()\u000a;[1, 2, 3].bar() ok 3353 curly invalid if (foo) bar() ok 3354 curly invalid if (foo) { bar() } else baz() ok 3355 curly invalid if (foo) { bar() } else if (faa) baz() ok 3356 curly invalid while (foo) bar() ok 3357 curly invalid do bar(); while (foo) ok 3358 curly invalid for (;foo;) bar() ok 3359 curly invalid for (var foo in bar) console.log(foo) ok 3360 curly invalid for (var foo of bar) console.log(foo) ok 3361 curly invalid for (;foo;) { bar() } ok 3362 curly invalid if (foo) { bar() } ok 3363 curly invalid while (foo) { bar() } ok 3364 curly invalid if (foo) baz(); else { bar() } ok 3365 curly invalid if (true) { if (false) console.log(1) } ok 3366 curly invalid if (a) { if (b) console.log(1); else console.log(2) } else console.log(3) ok 3367 curly invalid if (0)\u000a console.log(0)\u000aelse if (1) {\u000a console.log(1)\u000a console.log(1)\u000a} else {\u000a if (2)\u000a console.log(2)\u000a else\u000a console.log(3)\u000a} ok 3368 curly invalid for (var foo in bar) { console.log(foo) } ok 3369 curly invalid for (var foo of bar) { console.log(foo) } ok 3370 curly invalid if (foo) \u000a baz() ok 3371 curly invalid while (foo) \u000a baz() ok 3372 curly invalid for (;foo;) \u000a bar() ok 3373 curly invalid while (bar && \u000a baz) \u000a foo() ok 3374 curly invalid if (foo) bar(baz, \u000a baz) ok 3375 curly invalid do \u000a foo(); \u000a while (bar) ok 3376 curly invalid for (var foo in bar) \u000a console.log(foo) ok 3377 curly invalid for (var foo in bar) \u000a console.log(1); \u000a console.log(2) ok 3378 curly invalid for (var foo of bar) \u000a console.log(foo) ok 3379 curly invalid for (var foo of bar) \u000a console.log(1); \u000a console.log(2) ok 3380 curly invalid if (foo) \u000a quz = { \u000a bar: baz, \u000a qux: foo \u000a }; ok 3381 curly invalid while (true) \u000a if (foo) \u000a doSomething(); \u000a else \u000a doSomethingElse(); \u000a ok 3382 curly invalid if (foo) { \u000a quz = true; \u000a } ok 3383 curly invalid if (foo) { \u000a var bar = 'baz'; \u000a } ok 3384 curly invalid while (true) { \u000a doSomething(); \u000a } ok 3385 curly invalid for (var i = 0; foo; i++) { \u000a doSomething(); \u000a } ok 3386 curly invalid for (var foo in bar) \u000a if (foo) console.log(1); \u000a else console.log(2); ok 3387 curly invalid for (var foo in bar) { if (foo) console.log(1) } ok 3388 curly invalid for (var foo of bar) \u000a if (foo) console.log(1); \u000a else console.log(2); ok 3389 curly invalid for (var foo of bar) { if (foo) console.log(1) } ok 3390 curly invalid if (true) foo(); \u000a else { \u000a bar(); \u000a baz(); \u000a } ok 3391 curly invalid if (true) { foo(); faa(); }\u000a else bar(); ok 3392 curly invalid if (true) foo(); else { baz(); } ok 3393 curly invalid if (true) foo(); else if (true) faa(); else { bar(); baz(); } ok 3394 curly invalid do{foo();} while (bar) ok 3395 curly invalid do{[1, 2, 3].map(bar);} while (bar) ok 3396 curly invalid if (foo) {bar()} baz() ok 3397 curly invalid do {foo();} while (bar) ok 3398 curly invalid if (foo) { bar }\u000a++baz; ok 3399 curly invalid if (foo) { bar; }\u000a++baz; ok 3400 curly invalid if (foo) { bar++ }\u000abaz; ok 3401 curly invalid if (foo) { bar }\u000a[1, 2, 3].map(foo); ok 3402 curly invalid if (foo) { bar }\u000a(1).toString(); ok 3403 curly invalid if (foo) { bar }\u000a/regex/.test('foo'); ok 3404 curly invalid if (foo) { bar }\u000aBaz(); ok 3405 curly invalid if (a) {\u000a while (b) {\u000a c();\u000a d();\u000a }\u000a} else e(); ok 3406 curly invalid if (foo) { while (bar) {} } else {} ok 3407 curly invalid if (foo) { var foo = () => {} } else {} ok 3408 curly invalid if (foo) { var foo = function() {} } else {} ok 3409 curly invalid if (foo) { var foo = function*() {} } else {} ok 3410 curly invalid if (true)\u000afoo()\u000a;[1, 2, 3].bar() ok 3411 default-case valid switch (a) { case 1: break; default: break; } ok 3412 default-case valid switch (a) { case 1: break; case 2: default: break; } ok 3413 default-case valid switch (a) { case 1: break; default: break; \u000a //no default \u000a } ok 3414 default-case valid switch (a) { \u000a case 1: break; \u000a\u000a//oh-oh \u000a // no default\u000a } ok 3415 default-case valid switch (a) { \u000a case 1: \u000a\u000a// no default\u000a } ok 3416 default-case valid switch (a) { \u000a case 1: \u000a\u000a// No default\u000a } ok 3417 default-case valid switch (a) { \u000a case 1: \u000a\u000a// no deFAUlt\u000a } ok 3418 default-case valid switch (a) { \u000a case 1: \u000a\u000a// NO DEFAULT\u000a } ok 3419 default-case valid switch (a) { \u000a case 1: a = 4; \u000a\u000a// no default\u000a } ok 3420 default-case valid switch (a) { \u000a case 1: a = 4; \u000a\u000a/* no default */\u000a } ok 3421 default-case valid switch (a) { \u000a case 1: a = 4; break; break; \u000a\u000a// no default\u000a } ok 3422 default-case valid switch (a) { // no default\u000a } ok 3423 default-case valid switch (a) { } ok 3424 default-case valid switch (a) { case 1: break; default: break; } ok 3425 default-case valid switch (a) { case 1: break; \u000a // skip default case \u000a } ok 3426 default-case valid switch (a) { case 1: break; \u000a /*\u000aTODO:\u000a throw error in default case\u000a*/ \u000a } ok 3427 default-case valid switch (a) { case 1: break; \u000a// \u000a } ok 3428 default-case invalid switch (a) { case 1: break; } ok 3429 default-case invalid switch (a) { \u000a // no default \u000a case 1: break; } ok 3430 default-case invalid switch (a) { case 1: break; \u000a // no default \u000a // nope \u000a } ok 3431 default-case invalid switch (a) { case 1: break; \u000a // no default \u000a } ok 3432 default-case invalid switch (a) {\u000acase 1: break; \u000a// default omitted intentionally \u000a// TODO: add default case \u000a} ok 3433 default-case invalid switch (a) {\u000acase 1: break;\u000a} ok 3434 default-param-last valid function f() {} ok 3435 default-param-last valid function f(a) {} ok 3436 default-param-last valid function f(a = 5) {} ok 3437 default-param-last valid function f(a, b) {} ok 3438 default-param-last valid function f(a, b = 5) {} ok 3439 default-param-last valid function f(a, b = 5, c = 5) {} ok 3440 default-param-last valid function f(a, b = 5, ...c) {} ok 3441 default-param-last valid const f = () => {} ok 3442 default-param-last valid const f = (a) => {} ok 3443 default-param-last valid const f = (a = 5) => {} ok 3444 default-param-last valid const f = function f() {} ok 3445 default-param-last valid const f = function f(a) {} ok 3446 default-param-last valid const f = function f(a = 5) {} ok 3447 default-param-last invalid function f(a = 5, b) {} ok 3448 default-param-last invalid function f(a = 5, b = 6, c) {} ok 3449 default-param-last invalid function f (a = 5, b, c = 6, d) {} ok 3450 default-param-last invalid function f(a = 5, b, c = 5) {} ok 3451 default-param-last invalid const f = (a = 5, b, ...c) => {} ok 3452 default-param-last invalid const f = function f (a, b = 5, c) {} ok 3453 default-param-last invalid const f = (a = 5, { b }) => {} ok 3454 default-param-last invalid const f = ({ a } = {}, b) => {} ok 3455 default-param-last invalid const f = ({ a, b } = { a: 1, b: 2 }, c) => {} ok 3456 default-param-last invalid const f = ([a] = [], b) => {} ok 3457 default-param-last invalid const f = ([a, b] = [1, 2], c) => {} ok 3458 dot-location valid obj.\u000aprop ok 3459 dot-location valid obj. \u000aprop ok 3460 dot-location valid obj.\u000a prop ok 3461 dot-location valid (obj).\u000aprop ok 3462 dot-location valid obj\u000a['prop'] ok 3463 dot-location valid obj['prop'] ok 3464 dot-location valid obj.\u000aprop ok 3465 dot-location valid obj\u000a.prop ok 3466 dot-location valid (obj)\u000a.prop ok 3467 dot-location valid obj . prop ok 3468 dot-location valid obj /* a */ . prop ok 3469 dot-location valid obj . \u000aprop ok 3470 dot-location valid obj . prop ok 3471 dot-location valid obj . /* a */ prop ok 3472 dot-location valid obj\u000a. prop ok 3473 dot-location valid f(a\u000a).prop ok 3474 dot-location valid `\u000a`.prop ok 3475 dot-location valid obj[prop] ok 3476 dot-location valid obj\u000a[prop] ok 3477 dot-location valid obj[\u000aprop] ok 3478 dot-location valid obj\u000a[\u000aprop\u000a] ok 3479 dot-location valid obj[prop] ok 3480 dot-location valid obj\u000a[prop] ok 3481 dot-location valid obj[\u000aprop] ok 3482 dot-location valid obj\u000a[\u000aprop\u000a] ok 3483 dot-location valid (obj).prop ok 3484 dot-location valid (obj).\u000aprop ok 3485 dot-location valid (obj\u000a).\u000aprop ok 3486 dot-location valid (\u000aobj\u000a).\u000aprop ok 3487 dot-location valid ((obj\u000a)).\u000aprop ok 3488 dot-location valid (f(a)\u000a).\u000aprop ok 3489 dot-location valid ((obj\u000a)\u000a).\u000aprop ok 3490 dot-location valid (\u000aa &&\u000ab()\u000a).toString() ok 3491 dot-location invalid obj\u000a.property ok 3492 dot-location invalid obj.\u000aproperty ok 3493 dot-location invalid (obj).\u000aproperty ok 3494 dot-location invalid 5\u000a.toExponential() ok 3495 dot-location invalid -5\u000a.toExponential() ok 3496 dot-location invalid foo /* a */ . /* b */ \u000a /* c */ bar ok 3497 dot-location invalid foo /* a */ \u000a /* b */ . /* c */ bar ok 3498 dot-location invalid f(a\u000a)\u000a.prop ok 3499 dot-location invalid `\u000a`\u000a.prop ok 3500 dot-location invalid (a\u000a)\u000a.prop ok 3501 dot-location invalid (a\u000a)\u000a.\u000aprop ok 3502 dot-location invalid (f(a)\u000a)\u000a.prop ok 3503 dot-location invalid (f(a\u000a)\u000a)\u000a.prop ok 3504 dot-location invalid ((obj\u000a))\u000a.prop ok 3505 dot-location invalid ((obj\u000a)\u000a)\u000a.prop ok 3506 dot-location invalid (a\u000a) /* a */ \u000a.prop ok 3507 dot-location invalid (a\u000a)\u000a/* a */\u000a.prop ok 3508 dot-location invalid (a\u000a)\u000a/* a */.prop ok 3509 dot-location invalid (5)\u000a.toExponential() ok 3510 dot-notation valid a.b; ok 3511 dot-notation valid a.b.c; ok 3512 dot-notation valid a['12']; ok 3513 dot-notation valid a[b]; ok 3514 dot-notation valid a[0]; ok 3515 dot-notation valid a.b.c; ok 3516 dot-notation valid a.arguments; ok 3517 dot-notation valid a.let; ok 3518 dot-notation valid a.yield; ok 3519 dot-notation valid a.eval; ok 3520 dot-notation valid a[0]; ok 3521 dot-notation valid a['while']; ok 3522 dot-notation valid a['true']; ok 3523 dot-notation valid a['null']; ok 3524 dot-notation valid a[true]; ok 3525 dot-notation valid a[null]; ok 3526 dot-notation valid a.true; ok 3527 dot-notation valid a.null; ok 3528 dot-notation valid a['snake_case']; ok 3529 dot-notation valid a['lots_of_snake_case']; ok 3530 dot-notation valid a[`time${range}`]; ok 3531 dot-notation valid a[`while`]; ok 3532 dot-notation valid a[`time range`]; ok 3533 dot-notation valid a.true; ok 3534 dot-notation valid a.null; ok 3535 dot-notation valid a[undefined]; ok 3536 dot-notation valid a[void 0]; ok 3537 dot-notation valid a[b()]; ok 3538 dot-notation valid a[/(?0)/]; ok 3539 dot-notation invalid a.true; ok 3540 dot-notation invalid a['true']; ok 3541 dot-notation invalid a[`time`]; ok 3542 dot-notation invalid a[null]; ok 3543 dot-notation invalid a[true]; ok 3544 dot-notation invalid a[false]; ok 3545 dot-notation invalid a['b']; ok 3546 dot-notation invalid a.b['c']; ok 3547 dot-notation invalid a['_dangle']; ok 3548 dot-notation invalid a['SHOUT_CASE']; ok 3549 dot-notation invalid a\u000a ['SHOUT_CASE']; ok 3550 dot-notation invalid getResource()\u000a .then(function(){})\u000a ["catch"](function(){})\u000a .then(function(){})\u000a ["catch"](function(){}); ok 3551 dot-notation invalid foo\u000a .while; ok 3552 dot-notation invalid foo[ /* comment */ 'bar' ] ok 3553 dot-notation invalid foo[ 'bar' /* comment */ ] ok 3554 dot-notation invalid foo[ 'bar' ]; ok 3555 dot-notation invalid foo. /* comment */ while ok 3556 dot-notation invalid foo[('bar')] ok 3557 dot-notation invalid foo[(null)] ok 3558 dot-notation invalid (foo)['bar'] ok 3559 dot-notation invalid 1['toString'] ok 3560 dot-notation invalid foo['bar']instanceof baz ok 3561 dot-notation invalid let.if() ok 3562 eol-last valid ok 3563 eol-last valid \u000a ok 3564 eol-last valid var a = 123;\u000a ok 3565 eol-last valid var a = 123;\u000a\u000a ok 3566 eol-last valid var a = 123;\u000a \u000a ok 3567 eol-last valid \u000d\u000a ok 3568 eol-last valid var a = 123;\u000d\u000a ok 3569 eol-last valid var a = 123;\u000d\u000a\u000d\u000a ok 3570 eol-last valid var a = 123;\u000d\u000a \u000d\u000a ok 3571 eol-last valid var a = 123; ok 3572 eol-last valid var a = 123;\u000avar b = 456; ok 3573 eol-last valid var a = 123;\u000d\u000avar b = 456; ok 3574 eol-last valid ok 3575 eol-last valid \u000a ok 3576 eol-last valid var a = 123;\u000a ok 3577 eol-last valid var a = 123;\u000a\u000a ok 3578 eol-last valid var a = 123;\u000a \u000a ok 3579 eol-last valid ok 3580 eol-last valid \u000a ok 3581 eol-last valid \u000d\u000a ok 3582 eol-last valid var a = 123;\u000d\u000a ok 3583 eol-last valid var a = 123;\u000d\u000a\u000d\u000a ok 3584 eol-last valid var a = 123;\u000d\u000a \u000d\u000a ok 3585 eol-last invalid var a = 123; ok 3586 eol-last invalid var a = 123;\u000a ok 3587 eol-last invalid var a = 123;\u000a ok 3588 eol-last invalid var a = 123;\u000d\u000a ok 3589 eol-last invalid var a = 123;\u000d\u000a\u000d\u000a ok 3590 eol-last invalid var a = 123;\u000avar b = 456;\u000a ok 3591 eol-last invalid var a = 123;\u000d\u000avar b = 456;\u000d\u000a ok 3592 eol-last invalid var a = 123;\u000a\u000a ok 3593 eol-last invalid var a = 123; ok 3594 eol-last invalid var a = 123;\u000a ok 3595 eol-last invalid var a = 123; ok 3596 eol-last invalid var a = 123;\u000d\u000a ok 3597 eqeqeq valid a === b ok 3598 eqeqeq valid a !== b ok 3599 eqeqeq valid a === b ok 3600 eqeqeq valid typeof a == 'number' ok 3601 eqeqeq valid 'string' != typeof a ok 3602 eqeqeq valid 'hello' != 'world' ok 3603 eqeqeq valid 2 == 3 ok 3604 eqeqeq valid true == true ok 3605 eqeqeq valid null == a ok 3606 eqeqeq valid a == null ok 3607 eqeqeq valid null == a ok 3608 eqeqeq valid a == null ok 3609 eqeqeq valid a == null ok 3610 eqeqeq valid a != null ok 3611 eqeqeq valid a !== null ok 3612 eqeqeq valid a === null ok 3613 eqeqeq valid a !== null ok 3614 eqeqeq valid null === null ok 3615 eqeqeq valid null !== null ok 3616 eqeqeq valid a == null ok 3617 eqeqeq valid a != null ok 3618 eqeqeq valid null == null ok 3619 eqeqeq valid null != null ok 3620 eqeqeq valid foo === /abc/u ok 3621 eqeqeq valid foo === 1n ok 3622 eqeqeq invalid a == b ok 3623 eqeqeq invalid a != b ok 3624 eqeqeq invalid typeof a == 'number' ok 3625 eqeqeq invalid typeof a == 'number' ok 3626 eqeqeq invalid 'string' != typeof a ok 3627 eqeqeq invalid true == true ok 3628 eqeqeq invalid 2 == 3 ok 3629 eqeqeq invalid 2 == 3 ok 3630 eqeqeq invalid 'hello' != 'world' ok 3631 eqeqeq invalid 'hello' != 'world' ok 3632 eqeqeq invalid a == null ok 3633 eqeqeq invalid a == null ok 3634 eqeqeq invalid null != a ok 3635 eqeqeq invalid true == 1 ok 3636 eqeqeq invalid 0 != '1' ok 3637 eqeqeq invalid 'wee' == /wee/ ok 3638 eqeqeq invalid typeof a == 'number' ok 3639 eqeqeq invalid 'string' != typeof a ok 3640 eqeqeq invalid 'hello' != 'world' ok 3641 eqeqeq invalid 2 == 3 ok 3642 eqeqeq invalid true == true ok 3643 eqeqeq invalid true == null ok 3644 eqeqeq invalid true != null ok 3645 eqeqeq invalid null == null ok 3646 eqeqeq invalid null != null ok 3647 eqeqeq invalid true === null ok 3648 eqeqeq invalid true !== null ok 3649 eqeqeq invalid null === null ok 3650 eqeqeq invalid null !== null ok 3651 eqeqeq invalid a\u000a==\u000ab ok 3652 eqeqeq invalid (a) == b ok 3653 eqeqeq invalid (a) != b ok 3654 eqeqeq invalid a == (b) ok 3655 eqeqeq invalid a != (b) ok 3656 eqeqeq invalid (a) == (b) ok 3657 eqeqeq invalid (a) != (b) ok 3658 eqeqeq invalid (a == b) == (c) ok 3659 eqeqeq invalid (a != b) != (c) ok 3660 eqeqeq invalid a == b; ok 3661 eqeqeq invalid a!=b; ok 3662 eqeqeq invalid (a + b) == c; ok 3663 eqeqeq invalid (a + b) != c; ok 3664 eqeqeq invalid ((1) ) == (2); ok 3665 for-direction valid for(var i = 0; i < 10; i++){} ok 3666 for-direction valid for(var i = 0; i <= 10; i++){} ok 3667 for-direction valid for(var i = 10; i > 0; i--){} ok 3668 for-direction valid for(var i = 10; i >= 0; i--){} ok 3669 for-direction valid for(var i = 0; i < 10; i+=1){} ok 3670 for-direction valid for(var i = 0; i <= 10; i+=1){} ok 3671 for-direction valid for(var i = 0; i < 10; i-=-1){} ok 3672 for-direction valid for(var i = 0; i <= 10; i-=-1){} ok 3673 for-direction valid for(var i = 10; i > 0; i-=1){} ok 3674 for-direction valid for(var i = 10; i >= 0; i-=1){} ok 3675 for-direction valid for(var i = 10; i > 0; i+=-1){} ok 3676 for-direction valid for(var i = 10; i >= 0; i+=-1){} ok 3677 for-direction valid for(var i = 10; i > 0;){} ok 3678 for-direction valid for(var i = 10; i >= 0;){} ok 3679 for-direction valid for(var i = 10; i < 0;){} ok 3680 for-direction valid for(var i = 10; i <= 0;){} ok 3681 for-direction valid for(var i = 10; i <= 0; j++){} ok 3682 for-direction valid for(var i = 10; i <= 0; j--){} ok 3683 for-direction valid for(var i = 10; i >= 0; j++){} ok 3684 for-direction valid for(var i = 10; i >= 0; j--){} ok 3685 for-direction valid for(var i = 10; i >= 0; j += 2){} ok 3686 for-direction valid for(var i = 10; i >= 0; j -= 2){} ok 3687 for-direction valid for(var i = 10; i >= 0; i |= 2){} ok 3688 for-direction valid for(var i = 10; i >= 0; i %= 2){} ok 3689 for-direction valid for(var i = 0; i < MAX; i += STEP_SIZE); ok 3690 for-direction valid for(var i = 0; i < MAX; i -= STEP_SIZE); ok 3691 for-direction valid for(var i = 10; i > 0; i += STEP_SIZE); ok 3692 for-direction invalid for(var i = 0; i < 10; i--){} ok 3693 for-direction invalid for(var i = 0; i <= 10; i--){} ok 3694 for-direction invalid for(var i = 10; i > 10; i++){} ok 3695 for-direction invalid for(var i = 10; i >= 0; i++){} ok 3696 for-direction invalid for(var i = 0; i < 10; i-=1){} ok 3697 for-direction invalid for(var i = 0; i <= 10; i-=1){} ok 3698 for-direction invalid for(var i = 10; i > 10; i+=1){} ok 3699 for-direction invalid for(var i = 10; i >= 0; i+=1){} ok 3700 for-direction invalid for(var i = 0; i < 10; i+=-1){} ok 3701 for-direction invalid for(var i = 0; i <= 10; i+=-1){} ok 3702 for-direction invalid for(var i = 10; i > 10; i-=-1){} ok 3703 for-direction invalid for(var i = 10; i >= 0; i-=-1){} ok 3704 func-call-spacing valid f(); ok 3705 func-call-spacing valid f(a, b); ok 3706 func-call-spacing valid f.b(); ok 3707 func-call-spacing valid f.b().c(); ok 3708 func-call-spacing valid f()() ok 3709 func-call-spacing valid (function() {}()) ok 3710 func-call-spacing valid var f = new Foo() ok 3711 func-call-spacing valid var f = new Foo ok 3712 func-call-spacing valid f( (0) ) ok 3713 func-call-spacing valid ( f )( 0 ) ok 3714 func-call-spacing valid ( (f) )( (0) ) ok 3715 func-call-spacing valid ( f()() )(0) ok 3716 func-call-spacing valid (function(){ if (foo) { bar(); } }()); ok 3717 func-call-spacing valid f(0, (1)) ok 3718 func-call-spacing valid describe/**/('foo', function () {}); ok 3719 func-call-spacing valid new (foo()) ok 3720 func-call-spacing valid import(source) ok 3721 func-call-spacing valid f(); ok 3722 func-call-spacing valid f(a, b); ok 3723 func-call-spacing valid f.b(); ok 3724 func-call-spacing valid f.b().c(); ok 3725 func-call-spacing valid f()() ok 3726 func-call-spacing valid (function() {}()) ok 3727 func-call-spacing valid var f = new Foo() ok 3728 func-call-spacing valid var f = new Foo ok 3729 func-call-spacing valid f( (0) ) ok 3730 func-call-spacing valid ( f )( 0 ) ok 3731 func-call-spacing valid ( (f) )( (0) ) ok 3732 func-call-spacing valid ( f()() )(0) ok 3733 func-call-spacing valid (function(){ if (foo) { bar(); } }()); ok 3734 func-call-spacing valid f(0, (1)) ok 3735 func-call-spacing valid describe/**/('foo', function () {}); ok 3736 func-call-spacing valid new (foo()) ok 3737 func-call-spacing valid import(source) ok 3738 func-call-spacing valid f (); ok 3739 func-call-spacing valid f (a, b); ok 3740 func-call-spacing valid f.b (); ok 3741 func-call-spacing valid f.b ().c (); ok 3742 func-call-spacing valid f () () ok 3743 func-call-spacing valid (function() {} ()) ok 3744 func-call-spacing valid var f = new Foo () ok 3745 func-call-spacing valid var f = new Foo ok 3746 func-call-spacing valid f ( (0) ) ok 3747 func-call-spacing valid f (0) (1) ok 3748 func-call-spacing valid (f) (0) ok 3749 func-call-spacing valid f ();\u000a t (); ok 3750 func-call-spacing valid import (source) ok 3751 func-call-spacing valid f\u000a(); ok 3752 func-call-spacing valid f.b \u000a (); ok 3753 func-call-spacing valid f\u000a() ().b \u000a()\u000a () ok 3754 func-call-spacing valid var f = new Foo\u000a(); ok 3755 func-call-spacing valid f// comment\u000a() ok 3756 func-call-spacing valid f // comment\u000a () ok 3757 func-call-spacing valid f\u000a/*\u000a*/\u000a() ok 3758 func-call-spacing valid f\u000d(); ok 3759 func-call-spacing valid f
(); ok 3760 func-call-spacing valid f
(); ok 3761 func-call-spacing valid f\u000d\u000a(); ok 3762 func-call-spacing valid import\u000a(source) ok 3763 func-call-spacing invalid f (); ok 3764 func-call-spacing invalid f (a, b); ok 3765 func-call-spacing invalid f.b (); ok 3766 func-call-spacing invalid f.b().c (); ok 3767 func-call-spacing invalid f() () ok 3768 func-call-spacing invalid (function() {} ()) ok 3769 func-call-spacing invalid var f = new Foo () ok 3770 func-call-spacing invalid f ( (0) ) ok 3771 func-call-spacing invalid f(0) (1) ok 3772 func-call-spacing invalid (f) (0) ok 3773 func-call-spacing invalid f ();\u000a t (); ok 3774 func-call-spacing invalid import (source); ok 3775 func-call-spacing invalid f\u000a(); ok 3776 func-call-spacing invalid f\u000d(); ok 3777 func-call-spacing invalid f
(); ok 3778 func-call-spacing invalid f
(); ok 3779 func-call-spacing invalid f\u000d\u000a(); ok 3780 func-call-spacing invalid import\u000a(source); ok 3781 func-call-spacing invalid f (); ok 3782 func-call-spacing invalid f (a, b); ok 3783 func-call-spacing invalid f.b (); ok 3784 func-call-spacing invalid f.b().c (); ok 3785 func-call-spacing invalid f() () ok 3786 func-call-spacing invalid (function() {} ()) ok 3787 func-call-spacing invalid var f = new Foo () ok 3788 func-call-spacing invalid f ( (0) ) ok 3789 func-call-spacing invalid f(0) (1) ok 3790 func-call-spacing invalid (f) (0) ok 3791 func-call-spacing invalid f ();\u000a t (); ok 3792 func-call-spacing invalid import (source); ok 3793 func-call-spacing invalid f\u000a(); ok 3794 func-call-spacing invalid this.cancelled.add(request)\u000athis.decrement(request)\u000a(0, request.reject)(new api.Cancel()) ok 3795 func-call-spacing invalid var a = foo\u000a(function(global) {}(this)); ok 3796 func-call-spacing invalid var a = foo\u000a(0, baz()) ok 3797 func-call-spacing invalid f\u000d(); ok 3798 func-call-spacing invalid f
(); ok 3799 func-call-spacing invalid f
(); ok 3800 func-call-spacing invalid f\u000d\u000a(); ok 3801 func-call-spacing invalid f(); ok 3802 func-call-spacing invalid f\u000a(); ok 3803 func-call-spacing invalid f(a, b); ok 3804 func-call-spacing invalid f\u000a(a, b); ok 3805 func-call-spacing invalid f.b(); ok 3806 func-call-spacing invalid f.b\u000a(); ok 3807 func-call-spacing invalid f.b().c (); ok 3808 func-call-spacing invalid f.b\u000a().c (); ok 3809 func-call-spacing invalid f() () ok 3810 func-call-spacing invalid f\u000a() () ok 3811 func-call-spacing invalid f\u000a()() ok 3812 func-call-spacing invalid (function() {}()) ok 3813 func-call-spacing invalid var f = new Foo() ok 3814 func-call-spacing invalid f( (0) ) ok 3815 func-call-spacing invalid f(0) (1) ok 3816 func-call-spacing invalid (f)(0) ok 3817 func-call-spacing invalid import(source); ok 3818 func-call-spacing invalid f();\u000a t(); ok 3819 func-call-spacing invalid f\u000d(); ok 3820 func-call-spacing invalid f
(); ok 3821 func-call-spacing invalid f
(); ok 3822 func-call-spacing invalid f\u000d\u000a(); ok 3823 func-call-spacing invalid f(); ok 3824 func-call-spacing invalid f(a, b); ok 3825 func-call-spacing invalid f.b(); ok 3826 func-call-spacing invalid f.b().c (); ok 3827 func-call-spacing invalid f() () ok 3828 func-call-spacing invalid (function() {}()) ok 3829 func-call-spacing invalid var f = new Foo() ok 3830 func-call-spacing invalid f( (0) ) ok 3831 func-call-spacing invalid f(0) (1) ok 3832 func-call-spacing invalid (f)(0) ok 3833 func-call-spacing invalid f();\u000a t(); ok 3834 func-name-matching valid var foo; ok 3835 func-name-matching valid var foo = function foo() {}; ok 3836 func-name-matching valid var foo = function foo() {}; ok 3837 func-name-matching valid var foo = function bar() {}; ok 3838 func-name-matching valid var foo = function() {} ok 3839 func-name-matching valid var foo = () => {} ok 3840 func-name-matching valid foo = function foo() {}; ok 3841 func-name-matching valid foo = function foo() {}; ok 3842 func-name-matching valid foo = function bar() {}; ok 3843 func-name-matching valid obj.foo = function foo() {}; ok 3844 func-name-matching valid obj.foo = function foo() {}; ok 3845 func-name-matching valid obj.foo = function bar() {}; ok 3846 func-name-matching valid obj.foo = function() {}; ok 3847 func-name-matching valid obj.foo = function() {}; ok 3848 func-name-matching valid obj.foo = function() {}; ok 3849 func-name-matching valid obj.bar.foo = function foo() {}; ok 3850 func-name-matching valid obj.bar.foo = function foo() {}; ok 3851 func-name-matching valid obj.bar.foo = function baz() {}; ok 3852 func-name-matching valid obj['foo'] = function foo() {}; ok 3853 func-name-matching valid obj['foo'] = function foo() {}; ok 3854 func-name-matching valid obj['foo'] = function bar() {}; ok 3855 func-name-matching valid obj['foo//bar'] = function foo() {}; ok 3856 func-name-matching valid obj['foo//bar'] = function foo() {}; ok 3857 func-name-matching valid obj['foo//bar'] = function foo() {}; ok 3858 func-name-matching valid obj[foo] = function bar() {}; ok 3859 func-name-matching valid obj[foo] = function bar() {}; ok 3860 func-name-matching valid obj[foo] = function bar() {}; ok 3861 func-name-matching valid var obj = {foo: function foo() {}}; ok 3862 func-name-matching valid var obj = {foo: function foo() {}}; ok 3863 func-name-matching valid var obj = {foo: function bar() {}}; ok 3864 func-name-matching valid var obj = {'foo': function foo() {}}; ok 3865 func-name-matching valid var obj = {'foo': function foo() {}}; ok 3866 func-name-matching valid var obj = {'foo': function bar() {}}; ok 3867 func-name-matching valid var obj = {'foo//bar': function foo() {}}; ok 3868 func-name-matching valid var obj = {'foo//bar': function foo() {}}; ok 3869 func-name-matching valid var obj = {'foo//bar': function foo() {}}; ok 3870 func-name-matching valid var obj = {foo: function() {}}; ok 3871 func-name-matching valid var obj = {foo: function() {}}; ok 3872 func-name-matching valid var obj = {foo: function() {}}; ok 3873 func-name-matching valid var obj = {[foo]: function bar() {}} ok 3874 func-name-matching valid var obj = {['x' + 2]: function bar(){}}; ok 3875 func-name-matching valid obj['x' + 2] = function bar(){}; ok 3876 func-name-matching valid var [ bar ] = [ function bar(){} ]; ok 3877 func-name-matching valid function a(foo = function bar() {}) {} ok 3878 func-name-matching valid module.exports = function foo(name) {}; ok 3879 func-name-matching valid module['exports'] = function foo(name) {}; ok 3880 func-name-matching valid module.exports = function foo(name) {}; ok 3881 func-name-matching valid module.exports = function foo(name) {}; ok 3882 func-name-matching valid module.exports = function foo(name) {}; ok 3883 func-name-matching valid module['exports'] = function foo(name) {}; ok 3884 func-name-matching valid module['exports'] = function foo(name) {}; ok 3885 func-name-matching valid module['exports'] = function foo(name) {}; ok 3886 func-name-matching valid ({['foo']: function foo() {}}) ok 3887 func-name-matching valid ({['foo']: function foo() {}}) ok 3888 func-name-matching valid ({['foo']: function bar() {}}) ok 3889 func-name-matching valid ({['❤']: function foo() {}}) ok 3890 func-name-matching valid ({[foo]: function bar() {}}) ok 3891 func-name-matching valid ({[null]: function foo() {}}) ok 3892 func-name-matching valid ({[1]: function foo() {}}) ok 3893 func-name-matching valid ({[true]: function foo() {}}) ok 3894 func-name-matching valid ({[`x`]: function foo() {}}) ok 3895 func-name-matching valid ({[/abc/]: function foo() {}}) ok 3896 func-name-matching valid ({[[1, 2, 3]]: function foo() {}}) ok 3897 func-name-matching valid ({[{x: 1}]: function foo() {}}) ok 3898 func-name-matching valid [] = function foo() {} ok 3899 func-name-matching valid ({} = function foo() {}) ok 3900 func-name-matching valid [a] = function foo() {} ok 3901 func-name-matching valid ({a} = function foo() {}) ok 3902 func-name-matching valid var [] = function foo() {} ok 3903 func-name-matching valid var {} = function foo() {} ok 3904 func-name-matching valid var [a] = function foo() {} ok 3905 func-name-matching valid var {a} = function foo() {} ok 3906 func-name-matching valid ({ value: function value() {} }) ok 3907 func-name-matching valid obj.foo = function foo() {}; ok 3908 func-name-matching valid obj.bar.foo = function foo() {}; ok 3909 func-name-matching valid var obj = {foo: function foo() {}}; ok 3910 func-name-matching valid var obj = {foo: function() {}}; ok 3911 func-name-matching valid var obj = { value: function value() {} } ok 3912 func-name-matching valid Object.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3913 func-name-matching valid Object.defineProperties(foo, { bar: { value: function bar() {} } }) ok 3914 func-name-matching valid Object.create(proto, { bar: { value: function bar() {} } }) ok 3915 func-name-matching valid Object.defineProperty(foo, 'b' + 'ar', { value: function bar() {} }) ok 3916 func-name-matching valid Object.defineProperties(foo, { ['bar']: { value: function bar() {} } }) ok 3917 func-name-matching valid Object.create(proto, { ['bar']: { value: function bar() {} } }) ok 3918 func-name-matching valid Object.defineProperty(foo, 'bar', { value() {} }) ok 3919 func-name-matching valid Object.defineProperties(foo, { bar: { value() {} } }) ok 3920 func-name-matching valid Object.create(proto, { bar: { value() {} } }) ok 3921 func-name-matching valid Reflect.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3922 func-name-matching valid Reflect.defineProperty(foo, 'b' + 'ar', { value: function baz() {} }) ok 3923 func-name-matching valid Reflect.defineProperty(foo, 'bar', { value() {} }) ok 3924 func-name-matching valid foo({ value: function value() {} }) ok 3925 func-name-matching invalid let foo = function bar() {}; ok 3926 func-name-matching invalid let foo = function bar() {}; ok 3927 func-name-matching invalid foo = function bar() {}; ok 3928 func-name-matching invalid obj.foo = function bar() {}; ok 3929 func-name-matching invalid obj.bar.foo = function bar() {}; ok 3930 func-name-matching invalid obj['foo'] = function bar() {}; ok 3931 func-name-matching invalid let obj = {foo: function bar() {}}; ok 3932 func-name-matching invalid let obj = {'foo': function bar() {}}; ok 3933 func-name-matching invalid ({['foo']: function bar() {}}) ok 3934 func-name-matching invalid module.exports = function foo(name) {}; ok 3935 func-name-matching invalid module.exports = function foo(name) {}; ok 3936 func-name-matching invalid module.exports = function exports(name) {}; ok 3937 func-name-matching invalid module['exports'] = function foo(name) {}; ok 3938 func-name-matching invalid module['exports'] = function foo(name) {}; ok 3939 func-name-matching invalid module['exports'] = function exports(name) {}; ok 3940 func-name-matching invalid var foo = function foo(name) {}; ok 3941 func-name-matching invalid obj.foo = function foo(name) {}; ok 3942 func-name-matching invalid Object.defineProperty(foo, 'bar', { value: function baz() {} }) ok 3943 func-name-matching invalid Object.defineProperties(foo, { bar: { value: function baz() {} } }) ok 3944 func-name-matching invalid Object.create(proto, { bar: { value: function baz() {} } }) ok 3945 func-name-matching invalid var obj = { value: function foo(name) {} } ok 3946 func-name-matching invalid Object.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3947 func-name-matching invalid Object.defineProperties(foo, { bar: { value: function bar() {} } }) ok 3948 func-name-matching invalid Object.create(proto, { bar: { value: function bar() {} } }) ok 3949 func-name-matching invalid Reflect.defineProperty(foo, 'bar', { value: function baz() {} }) ok 3950 func-name-matching invalid Reflect.defineProperty(foo, 'bar', { value: function bar() {} }) ok 3951 func-name-matching invalid foo({ value: function bar() {} }) ok 3952 func-names valid Foo.prototype.bar = function bar(){}; ok 3953 func-names valid Foo.prototype.bar = () => {} ok 3954 func-names valid function foo(){} ok 3955 func-names valid function test(d, e, f) {} ok 3956 func-names valid new function bar(){} ok 3957 func-names valid exports = { get foo() { return 1; }, set bar(val) { return val; } }; ok 3958 func-names valid ({ foo() { return 1; } }); ok 3959 func-names valid class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}} ok 3960 func-names valid function foo() {} ok 3961 func-names valid var a = function foo() {}; ok 3962 func-names valid class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}} ok 3963 func-names valid ({ foo() {} }); ok 3964 func-names valid var foo = function(){}; ok 3965 func-names valid ({foo: function(){}}); ok 3966 func-names valid (foo = function(){}); ok 3967 func-names valid export default (function(){}); ok 3968 func-names valid ({foo = function(){}} = {}); ok 3969 func-names valid ({key: foo = function(){}} = {}); ok 3970 func-names valid [foo = function(){}] = []; ok 3971 func-names valid function fn(foo = function(){}) {} ok 3972 func-names valid function foo() {} ok 3973 func-names valid var a = function() {}; ok 3974 func-names valid var a = function foo() { foo(); }; ok 3975 func-names valid var foo = {bar: function() {}}; ok 3976 func-names valid $('foo').click(function() {}); ok 3977 func-names valid Foo.prototype.bar = function() {}; ok 3978 func-names valid class A { constructor(){} foo(){} get bar(){} set baz(value){} static qux(){}} ok 3979 func-names valid ({ foo() {} }); ok 3980 func-names valid var foo = bar(function *baz() {}); ok 3981 func-names valid var foo = bar(function *baz() {}); ok 3982 func-names valid var foo = bar(function *baz() {}); ok 3983 func-names valid var foo = function*() {}; ok 3984 func-names valid var foo = bar(function *baz() {}); ok 3985 func-names valid var foo = function*() {}; ok 3986 func-names valid var foo = bar(function *baz() {}); ok 3987 func-names valid var foo = bar(function *baz() {}); ok 3988 func-names valid var foo = function*() {}; ok 3989 func-names valid var foo = bar(function *baz() {}); ok 3990 func-names valid var foo = bar(function *baz() {}); ok 3991 func-names valid var foo = function*() {}; ok 3992 func-names valid var foo = bar(function *() {}); ok 3993 func-names valid var foo = function*() {}; ok 3994 func-names valid (function*() {}()) ok 3995 func-names valid var foo = bar(function *() {}); ok 3996 func-names valid var foo = function*() {}; ok 3997 func-names valid (function*() {}()) ok 3998 func-names valid var foo = bar(function *() {}); ok 3999 func-names valid var foo = function*() {}; ok 4000 func-names valid (function*() {}()) ok 4001 func-names valid var foo = bar(function *() {}); ok 4002 func-names valid var foo = function*() {}; ok 4003 func-names valid (function*() {}()) ok 4004 func-names invalid Foo.prototype.bar = function() {}; ok 4005 func-names invalid (function(){}()) ok 4006 func-names invalid f(function(){}) ok 4007 func-names invalid var a = new Date(function() {}); ok 4008 func-names invalid var test = function(d, e, f) {}; ok 4009 func-names invalid new function() {} ok 4010 func-names invalid Foo.prototype.bar = function() {}; ok 4011 func-names invalid (function(){}()) ok 4012 func-names invalid f(function(){}) ok 4013 func-names invalid var a = new Date(function() {}); ok 4014 func-names invalid new function() {} ok 4015 func-names invalid var {foo} = function(){}; ok 4016 func-names invalid var x = function foo() {}; ok 4017 func-names invalid Foo.prototype.bar = function foo() {}; ok 4018 func-names invalid ({foo: function foo() {}}) ok 4019 func-names invalid var foo = bar(function *() {}); ok 4020 func-names invalid var foo = function*() {}; ok 4021 func-names invalid (function*() {}()) ok 4022 func-names invalid var foo = bar(function *() {}); ok 4023 func-names invalid var foo = function*() {}; ok 4024 func-names invalid (function*() {}()) ok 4025 func-names invalid var foo = bar(function *() {}); ok 4026 func-names invalid (function*() {}()) ok 4027 func-names invalid var foo = bar(function *() {}); ok 4028 func-names invalid (function*() {}()) ok 4029 func-names invalid var foo = bar(function *() {}); ok 4030 func-names invalid var foo = function*() {}; ok 4031 func-names invalid (function*() {}()) ok 4032 func-names invalid var foo = bar(function *() {}); ok 4033 func-names invalid (function*() {}()) ok 4034 func-names invalid var foo = bar(function *() {}); ok 4035 func-names invalid var foo = function*() {}; ok 4036 func-names invalid (function*() {}()) ok 4037 func-names invalid var foo = bar(function *() {}); ok 4038 func-names invalid (function*() {}()) ok 4039 func-names invalid var foo = bar(function *baz() {}); ok 4040 func-names invalid var foo = bar(function *baz() {}); ok 4041 func-names invalid var foo = bar(function *baz() {}); ok 4042 func-names invalid var foo = bar(function *baz() {}); ok 4043 func-style valid function foo(){}\u000a function bar(){} ok 4044 func-style valid foo.bar = function(){}; ok 4045 func-style valid (function() { /* code */ }()); ok 4046 func-style valid var module = (function() { return {}; }()); ok 4047 func-style valid var object = { foo: function(){} }; ok 4048 func-style valid Array.prototype.foo = function(){}; ok 4049 func-style valid foo.bar = function(){}; ok 4050 func-style valid var foo = function(){};\u000a var bar = function(){}; ok 4051 func-style valid var foo = () => {};\u000a var bar = () => {} ok 4052 func-style valid var foo = function() { this; }.bind(this); ok 4053 func-style valid var foo = () => { this; }; ok 4054 func-style valid export default function () {}; ok 4055 func-style valid var foo = () => {}; ok 4056 func-style valid var foo = () => { function foo() { this; } }; ok 4057 func-style invalid var foo = function(){}; ok 4058 func-style invalid var foo = () => {}; ok 4059 func-style invalid var foo = () => { function foo() { this; } }; ok 4060 func-style invalid function foo(){} ok 4061 function-call-argument-newline valid fn() ok 4062 function-call-argument-newline valid fn(a) ok 4063 function-call-argument-newline valid new Foo() ok 4064 function-call-argument-newline valid new Foo(b) ok 4065 function-call-argument-newline valid fn(a,\u000a\u0009b) ok 4066 function-call-argument-newline valid fn(a,\u000a\u0009b) ok 4067 function-call-argument-newline valid fn(\u000a\u0009a,\u000a\u0009b\u000a) ok 4068 function-call-argument-newline valid fn(\u000a\u0009a,\u000a\u0009b,\u000a\u0009c\u000a) ok 4069 function-call-argument-newline valid fn(\u000a\u0009a,\u000a\u0009b,\u000a\u0009[\u000a\u0009\u00091,\u000a\u0009\u00092\u000a\u0009]\u000a) ok 4070 function-call-argument-newline valid fn(\u000a\u0009a,\u000a\u0009b,\u000a\u0009{\u000a\u0009\u0009a: 1,\u000a\u0009\u0009b: 2\u000a\u0009}\u000a) ok 4071 function-call-argument-newline valid fn(\u000a\u0009a,\u000a\u0009b,\u000a\u0009function (x) {\u000a\u0009\u0009x()\u000a\u0009}\u000a) ok 4072 function-call-argument-newline valid fn(\u000a\u0009a,\u000a\u0009b,\u000a\u0009x => {\u000a\u0009\u0009x()\u000a\u0009}\u000a) ok 4073 function-call-argument-newline valid fn(a, b) ok 4074 function-call-argument-newline valid fn(\u000a\u0009a, b\u000a) ok 4075 function-call-argument-newline valid fn(a, b, c) ok 4076 function-call-argument-newline valid fn(a, b, [\u000a\u00091,\u000a\u00092\u000a]) ok 4077 function-call-argument-newline valid fn(a, b, {\u000a\u0009a: 1,\u000a\u0009b: 2\u000a}) ok 4078 function-call-argument-newline valid fn(a, b, function (x) {\u000a\u0009x()\u000a}) ok 4079 function-call-argument-newline valid fn(a, b, x => {\u000a\u0009x()\u000a}) ok 4080 function-call-argument-newline valid fn(a, b, c) ok 4081 function-call-argument-newline valid fn(a,\u000a\u0009b,\u000a\u0009c) ok 4082 function-call-argument-newline invalid fn(a, b) ok 4083 function-call-argument-newline invalid fn(a, b) ok 4084 function-call-argument-newline invalid fn(a, b, c) ok 4085 function-call-argument-newline invalid fn(a, b, [\u000a\u00091,\u000a\u00092\u000a]) ok 4086 function-call-argument-newline invalid fn(a, b, {\u000a\u0009a: 1,\u000a\u0009b: 2\u000a}) ok 4087 function-call-argument-newline invalid fn(a, b, function (x) {\u000a\u0009x()\u000a}) ok 4088 function-call-argument-newline invalid fn(a, b, x => {\u000a\u0009x()\u000a}) ok 4089 function-call-argument-newline invalid fn(a,\u000a\u0009b) ok 4090 function-call-argument-newline invalid fn(a,\u000a\u0009b,\u000a\u0009c) ok 4091 function-call-argument-newline invalid fn(a,\u000a\u0009b,\u000a\u0009[\u000a\u0009\u00091,\u000a\u0009\u00092\u000a]) ok 4092 function-call-argument-newline invalid fn(a,\u000a\u0009b,\u000a\u0009{\u000a\u0009\u0009a: 1,\u000a\u0009\u0009b: 2\u000a}) ok 4093 function-call-argument-newline invalid fn(a,\u000a\u0009b,\u000a\u0009function (x) {\u000a\u0009\u0009x()\u000a}) ok 4094 function-call-argument-newline invalid fn(a,\u000a\u0009b,\u000a\u0009x => {\u000a\u0009\u0009x()\u000a}) ok 4095 function-call-argument-newline invalid fn(a, b,\u000a\u0009c) ok 4096 function-call-argument-newline invalid fn(a,\u000a\u0009b, c) ok 4097 function-call-argument-newline invalid fn(a,\u000a\u0009b /* comment */, c) ok 4098 function-call-argument-newline invalid fn(a,\u000a\u0009b, /* comment */ c) ok 4099 function-paren-newline valid function baz(foo, bar) {} ok 4100 function-paren-newline valid (function(foo, bar) {}); ok 4101 function-paren-newline valid (function baz(foo, bar) {}); ok 4102 function-paren-newline valid (foo, bar) => {}; ok 4103 function-paren-newline valid foo => {}; ok 4104 function-paren-newline valid baz(foo, bar); ok 4105 function-paren-newline valid function baz() {} ok 4106 function-paren-newline valid \u000a function baz(\u000a foo,\u000a bar\u000a ) {}\u000a ok 4107 function-paren-newline valid \u000a (function(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4108 function-paren-newline valid \u000a (function baz(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4109 function-paren-newline valid \u000a (\u000a foo,\u000a bar\u000a ) => {};\u000a ok 4110 function-paren-newline valid \u000a baz(\u000a foo,\u000a bar\u000a );\u000a ok 4111 function-paren-newline valid \u000a baz(`foo\u000a bar`)\u000a ok 4112 function-paren-newline valid new Foo(bar, baz) ok 4113 function-paren-newline valid new Foo ok 4114 function-paren-newline valid new (Foo) ok 4115 function-paren-newline valid \u000a (foo)\u000a (bar)\u000a ok 4116 function-paren-newline valid \u000a foo.map(value => {\u000a return value;\u000a })\u000a ok 4117 function-paren-newline valid function baz(foo, bar) {} ok 4118 function-paren-newline valid import(source) ok 4119 function-paren-newline valid import(source\u000a + ext) ok 4120 function-paren-newline valid function baz(foo, bar) {} ok 4121 function-paren-newline valid function baz(foo) {} ok 4122 function-paren-newline valid (function(foo, bar) {}); ok 4123 function-paren-newline valid (function(foo) {}); ok 4124 function-paren-newline valid (function baz(foo, bar) {}); ok 4125 function-paren-newline valid (function baz(foo) {}); ok 4126 function-paren-newline valid (foo, bar) => {}; ok 4127 function-paren-newline valid foo => {}; ok 4128 function-paren-newline valid baz(foo, bar); ok 4129 function-paren-newline valid baz(foo); ok 4130 function-paren-newline valid function baz() {} ok 4131 function-paren-newline valid \u000a function baz(\u000a foo,\u000a bar\u000a ) {}\u000a ok 4132 function-paren-newline valid \u000a function baz(\u000a foo\u000a ) {}\u000a ok 4133 function-paren-newline valid \u000a (function(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4134 function-paren-newline valid \u000a (function(\u000a foo\u000a ) {});\u000a ok 4135 function-paren-newline valid \u000a (function baz(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4136 function-paren-newline valid \u000a (function baz(\u000a foo\u000a ) {});\u000a ok 4137 function-paren-newline valid \u000a (\u000a foo,\u000a bar\u000a ) => {};\u000a ok 4138 function-paren-newline valid \u000a (\u000a foo\u000a ) => {};\u000a ok 4139 function-paren-newline valid \u000a baz(\u000a foo,\u000a bar\u000a );\u000a ok 4140 function-paren-newline valid \u000a baz(\u000a foo\u000a );\u000a ok 4141 function-paren-newline valid \u000a baz(`foo\u000a bar`)\u000a ok 4142 function-paren-newline valid new Foo(bar, baz) ok 4143 function-paren-newline valid new Foo(bar) ok 4144 function-paren-newline valid new Foo ok 4145 function-paren-newline valid new (Foo) ok 4146 function-paren-newline valid import(source) ok 4147 function-paren-newline valid import(source\u000a + ext) ok 4148 function-paren-newline valid \u000a (foo)\u000a (bar)\u000a ok 4149 function-paren-newline valid \u000a foo.map(value => {\u000a return value;\u000a })\u000a ok 4150 function-paren-newline valid \u000a function baz(\u000a foo,\u000a bar\u000a ) {}\u000a ok 4151 function-paren-newline valid \u000a (function(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4152 function-paren-newline valid \u000a (function baz(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4153 function-paren-newline valid \u000a (\u000a foo,\u000a bar\u000a ) => {};\u000a ok 4154 function-paren-newline valid \u000a baz(\u000a foo,\u000a bar\u000a );\u000a ok 4155 function-paren-newline valid \u000a function baz(\u000a ) {}\u000a ok 4156 function-paren-newline valid import(\u000a source\u000a) ok 4157 function-paren-newline valid function baz(foo, bar) {} ok 4158 function-paren-newline valid (function(foo, bar) {}); ok 4159 function-paren-newline valid (function baz(foo, bar) {}); ok 4160 function-paren-newline valid (foo, bar) => {}; ok 4161 function-paren-newline valid baz(foo, bar); ok 4162 function-paren-newline valid function baz() {} ok 4163 function-paren-newline valid import(source) ok 4164 function-paren-newline valid function baz(foo, bar) {} ok 4165 function-paren-newline valid \u000a function baz(\u000a foo, bar, qux\u000a ) {}\u000a ok 4166 function-paren-newline valid \u000a baz(\u000a foo, bar, qux\u000a );\u000a ok 4167 function-paren-newline valid baz(foo, bar); ok 4168 function-paren-newline valid import(source) ok 4169 function-paren-newline valid import(\u000a source\u000a) ok 4170 function-paren-newline valid foo(bar, baz) ok 4171 function-paren-newline valid \u000a foo(bar,\u000a baz)\u000a ok 4172 function-paren-newline valid \u000a foo(\u000a bar, baz\u000a )\u000a ok 4173 function-paren-newline valid \u000a foo(\u000a bar,\u000a baz\u000a )\u000a ok 4174 function-paren-newline valid import(source) ok 4175 function-paren-newline valid import(\u000a source\u000a) ok 4176 function-paren-newline invalid \u000a function baz(foo,\u000a bar\u000a ) {}\u000a ok 4177 function-paren-newline invalid \u000a (function(\u000a foo,\u000a bar) {})\u000a ok 4178 function-paren-newline invalid \u000a (function baz(foo,\u000a bar) {})\u000a ok 4179 function-paren-newline invalid \u000a baz(\u000a foo, bar);\u000a ok 4180 function-paren-newline invalid \u000a (foo, bar\u000a ) => {};\u000a ok 4181 function-paren-newline invalid \u000a function baz(\u000a foo, bar\u000a ) {}\u000a ok 4182 function-paren-newline invalid \u000a function baz(\u000a foo =\u000a 1\u000a ) {}\u000a ok 4183 function-paren-newline invalid \u000a function baz(\u000a ) {}\u000a ok 4184 function-paren-newline invalid \u000a new Foo(bar,\u000a baz);\u000a ok 4185 function-paren-newline invalid \u000a function baz(/* not fixed due to comment */\u000a foo) {}\u000a ok 4186 function-paren-newline invalid \u000a function baz(foo\u000a /* not fixed due to comment */) {}\u000a ok 4187 function-paren-newline invalid import(\u000a source\u000a) ok 4188 function-paren-newline invalid \u000a function baz(foo,\u000a bar\u000a ) {}\u000a ok 4189 function-paren-newline invalid \u000a (function(\u000a foo,\u000a bar) {})\u000a ok 4190 function-paren-newline invalid \u000a (function baz(foo,\u000a bar) {})\u000a ok 4191 function-paren-newline invalid \u000a baz(\u000a foo, bar);\u000a ok 4192 function-paren-newline invalid \u000a (foo, bar\u000a ) => {};\u000a ok 4193 function-paren-newline invalid \u000a function baz(\u000a foo, bar\u000a ) {}\u000a ok 4194 function-paren-newline invalid \u000a function baz(\u000a ) {}\u000a ok 4195 function-paren-newline invalid \u000a new Foo(bar,\u000a baz);\u000a ok 4196 function-paren-newline invalid \u000a function baz(/* not fixed due to comment */\u000a foo) {}\u000a ok 4197 function-paren-newline invalid \u000a function baz(foo\u000a /* not fixed due to comment */) {}\u000a ok 4198 function-paren-newline invalid \u000a function baz(\u000a qwe,\u000a foo, bar\u000a ) {}\u000a ok 4199 function-paren-newline invalid \u000a function baz(\u000a qwe, foo,\u000a bar\u000a ) {}\u000a ok 4200 function-paren-newline invalid \u000a function baz(qwe, foo,\u000a bar) {}\u000a ok 4201 function-paren-newline invalid \u000a baz(\u000a foo);\u000a ok 4202 function-paren-newline invalid \u000a baz(foo\u000a );\u000a ok 4203 function-paren-newline invalid import(source\u000a) ok 4204 function-paren-newline invalid import(\u000a source) ok 4205 function-paren-newline invalid \u000a function baz(foo,\u000a bar\u000a ) {}\u000a ok 4206 function-paren-newline invalid \u000a (function(\u000a foo,\u000a bar) {})\u000a ok 4207 function-paren-newline invalid \u000a (function baz(foo,\u000a bar) {})\u000a ok 4208 function-paren-newline invalid function baz(foo, bar) {} ok 4209 function-paren-newline invalid (function(foo, bar) {}); ok 4210 function-paren-newline invalid (function baz(foo, bar) {}); ok 4211 function-paren-newline invalid (foo, bar) => {}; ok 4212 function-paren-newline invalid baz(foo, bar); ok 4213 function-paren-newline invalid function baz() {} ok 4214 function-paren-newline invalid import(source) ok 4215 function-paren-newline invalid \u000a function baz(foo,\u000a bar\u000a ) {}\u000a ok 4216 function-paren-newline invalid \u000a (function(\u000a foo,\u000a bar) {})\u000a ok 4217 function-paren-newline invalid \u000a function baz(\u000a foo,\u000a bar\u000a ) {}\u000a ok 4218 function-paren-newline invalid \u000a (function(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4219 function-paren-newline invalid \u000a (function baz(\u000a foo,\u000a bar\u000a ) {});\u000a ok 4220 function-paren-newline invalid \u000a (\u000a foo,\u000a bar\u000a ) => {};\u000a ok 4221 function-paren-newline invalid \u000a baz(\u000a foo,\u000a bar\u000a );\u000a ok 4222 function-paren-newline invalid \u000a function baz(\u000a ) {}\u000a ok 4223 function-paren-newline invalid import(\u000a source\u000a) ok 4224 function-paren-newline invalid function baz(foo, bar, qux) {} ok 4225 function-paren-newline invalid \u000a function baz(\u000a foo, bar\u000a ) {}\u000a ok 4226 function-paren-newline invalid baz(foo, bar, qux); ok 4227 function-paren-newline invalid \u000a baz(\u000a foo,\u000a bar\u000a );\u000a ok 4228 function-paren-newline invalid import(\u000a source\u000a) ok 4229 function-paren-newline invalid import(source) ok 4230 function-paren-newline invalid \u000a foo(\u000a bar,\u000a baz)\u000a ok 4231 function-paren-newline invalid \u000a foo(bar,\u000a baz\u000a )\u000a ok 4232 function-paren-newline invalid import(source\u000a) ok 4233 function-paren-newline invalid import(\u000a source) ok 4234 generator-star-spacing valid function foo(){} ok 4235 generator-star-spacing valid function *foo(){} ok 4236 generator-star-spacing valid function *foo(arg1, arg2){} ok 4237 generator-star-spacing valid var foo = function *foo(){}; ok 4238 generator-star-spacing valid var foo = function *(){}; ok 4239 generator-star-spacing valid var foo = { *foo(){} }; ok 4240 generator-star-spacing valid var foo = {*foo(){} }; ok 4241 generator-star-spacing valid class Foo { *foo(){} } ok 4242 generator-star-spacing valid class Foo {*foo(){} } ok 4243 generator-star-spacing valid class Foo { static *foo(){} } ok 4244 generator-star-spacing valid var foo = {*[ foo ](){} }; ok 4245 generator-star-spacing valid class Foo {*[ foo ](){} } ok 4246 generator-star-spacing valid function foo(){} ok 4247 generator-star-spacing valid function *foo(){} ok 4248 generator-star-spacing valid function *foo(arg1, arg2){} ok 4249 generator-star-spacing valid var foo = function *foo(){}; ok 4250 generator-star-spacing valid var foo = function *(){}; ok 4251 generator-star-spacing valid var foo = { *foo(){} }; ok 4252 generator-star-spacing valid var foo = {*foo(){} }; ok 4253 generator-star-spacing valid class Foo { *foo(){} } ok 4254 generator-star-spacing valid class Foo {*foo(){} } ok 4255 generator-star-spacing valid class Foo { static *foo(){} } ok 4256 generator-star-spacing valid class Foo {*[ foo ](){} } ok 4257 generator-star-spacing valid var foo = {*[ foo ](){} }; ok 4258 generator-star-spacing valid function foo(){} ok 4259 generator-star-spacing valid function* foo(){} ok 4260 generator-star-spacing valid function* foo(arg1, arg2){} ok 4261 generator-star-spacing valid var foo = function* foo(){}; ok 4262 generator-star-spacing valid var foo = function* (){}; ok 4263 generator-star-spacing valid var foo = {* foo(){} }; ok 4264 generator-star-spacing valid var foo = { * foo(){} }; ok 4265 generator-star-spacing valid class Foo {* foo(){} } ok 4266 generator-star-spacing valid class Foo { * foo(){} } ok 4267 generator-star-spacing valid class Foo { static* foo(){} } ok 4268 generator-star-spacing valid var foo = {* [foo](){} }; ok 4269 generator-star-spacing valid class Foo {* [foo](){} } ok 4270 generator-star-spacing valid function foo(){} ok 4271 generator-star-spacing valid function * foo(){} ok 4272 generator-star-spacing valid function * foo(arg1, arg2){} ok 4273 generator-star-spacing valid var foo = function * foo(){}; ok 4274 generator-star-spacing valid var foo = function * (){}; ok 4275 generator-star-spacing valid var foo = { * foo(){} }; ok 4276 generator-star-spacing valid var foo = {* foo(){} }; ok 4277 generator-star-spacing valid class Foo { * foo(){} } ok 4278 generator-star-spacing valid class Foo {* foo(){} } ok 4279 generator-star-spacing valid class Foo { static * foo(){} } ok 4280 generator-star-spacing valid var foo = {* [foo](){} }; ok 4281 generator-star-spacing valid class Foo {* [foo](){} } ok 4282 generator-star-spacing valid function foo(){} ok 4283 generator-star-spacing valid function*foo(){} ok 4284 generator-star-spacing valid function*foo(arg1, arg2){} ok 4285 generator-star-spacing valid var foo = function*foo(){}; ok 4286 generator-star-spacing valid var foo = function*(){}; ok 4287 generator-star-spacing valid var foo = {*foo(){} }; ok 4288 generator-star-spacing valid var foo = { *foo(){} }; ok 4289 generator-star-spacing valid class Foo {*foo(){} } ok 4290 generator-star-spacing valid class Foo { *foo(){} } ok 4291 generator-star-spacing valid class Foo { static*foo(){} } ok 4292 generator-star-spacing valid var foo = {*[ foo ](){} }; ok 4293 generator-star-spacing valid class Foo {*[ foo ](){} } ok 4294 generator-star-spacing valid function foo(){} ok 4295 generator-star-spacing valid function *foo(){} ok 4296 generator-star-spacing valid function *foo(arg1, arg2){} ok 4297 generator-star-spacing valid var foo = function *foo(){}; ok 4298 generator-star-spacing valid var foo = function *(){}; ok 4299 generator-star-spacing valid var foo = { *foo(){} }; ok 4300 generator-star-spacing valid var foo = {*foo(){} }; ok 4301 generator-star-spacing valid class Foo { *foo(){} } ok 4302 generator-star-spacing valid class Foo {*foo(){} } ok 4303 generator-star-spacing valid class Foo { static *foo(){} } ok 4304 generator-star-spacing valid function foo(){} ok 4305 generator-star-spacing valid function* foo(){} ok 4306 generator-star-spacing valid function* foo(arg1, arg2){} ok 4307 generator-star-spacing valid var foo = function* foo(){}; ok 4308 generator-star-spacing valid var foo = function* (){}; ok 4309 generator-star-spacing valid var foo = {* foo(){} }; ok 4310 generator-star-spacing valid var foo = { * foo(){} }; ok 4311 generator-star-spacing valid class Foo {* foo(){} } ok 4312 generator-star-spacing valid class Foo { * foo(){} } ok 4313 generator-star-spacing valid class Foo { static* foo(){} } ok 4314 generator-star-spacing valid function foo(){} ok 4315 generator-star-spacing valid function * foo(){} ok 4316 generator-star-spacing valid function * foo(arg1, arg2){} ok 4317 generator-star-spacing valid var foo = function * foo(){}; ok 4318 generator-star-spacing valid var foo = function * (){}; ok 4319 generator-star-spacing valid var foo = { * foo(){} }; ok 4320 generator-star-spacing valid var foo = {* foo(){} }; ok 4321 generator-star-spacing valid class Foo { * foo(){} } ok 4322 generator-star-spacing valid class Foo {* foo(){} } ok 4323 generator-star-spacing valid class Foo { static * foo(){} } ok 4324 generator-star-spacing valid function foo(){} ok 4325 generator-star-spacing valid function*foo(){} ok 4326 generator-star-spacing valid function*foo(arg1, arg2){} ok 4327 generator-star-spacing valid var foo = function*foo(){}; ok 4328 generator-star-spacing valid var foo = function*(){}; ok 4329 generator-star-spacing valid var foo = {*foo(){} }; ok 4330 generator-star-spacing valid var foo = { *foo(){} }; ok 4331 generator-star-spacing valid class Foo {*foo(){} } ok 4332 generator-star-spacing valid class Foo { *foo(){} } ok 4333 generator-star-spacing valid class Foo { static*foo(){} } ok 4334 generator-star-spacing valid function * foo(){} ok 4335 generator-star-spacing valid var foo = function * (){}; ok 4336 generator-star-spacing valid class Foo { * foo(){} } ok 4337 generator-star-spacing valid var foo = { * foo(){} } ok 4338 generator-star-spacing valid var foo = { bar: function * () {} } ok 4339 generator-star-spacing valid class Foo { static * foo(){} } ok 4340 generator-star-spacing valid function *foo(){} ok 4341 generator-star-spacing valid function*foo(){} ok 4342 generator-star-spacing valid function * foo(){} ok 4343 generator-star-spacing valid function *foo(){} ok 4344 generator-star-spacing valid async function foo() { } ok 4345 generator-star-spacing valid (async function() { }) ok 4346 generator-star-spacing valid async () => { } ok 4347 generator-star-spacing valid ({async foo() { }}) ok 4348 generator-star-spacing valid class A {async foo() { }} ok 4349 generator-star-spacing valid (class {async foo() { }}) ok 4350 generator-star-spacing invalid function*foo(){} ok 4351 generator-star-spacing invalid function* foo(arg1, arg2){} ok 4352 generator-star-spacing invalid var foo = function*foo(){}; ok 4353 generator-star-spacing invalid var foo = function* (){}; ok 4354 generator-star-spacing invalid var foo = {* foo(){} }; ok 4355 generator-star-spacing invalid class Foo {* foo(){} } ok 4356 generator-star-spacing invalid class Foo { static* foo(){} } ok 4357 generator-star-spacing invalid function*foo(){} ok 4358 generator-star-spacing invalid function* foo(arg1, arg2){} ok 4359 generator-star-spacing invalid var foo = function*foo(){}; ok 4360 generator-star-spacing invalid var foo = function* (){}; ok 4361 generator-star-spacing invalid var foo = {* foo(){} }; ok 4362 generator-star-spacing invalid class Foo {* foo(){} } ok 4363 generator-star-spacing invalid var foo = {* [ foo ](){} }; ok 4364 generator-star-spacing invalid class Foo {* [ foo ](){} } ok 4365 generator-star-spacing invalid function*foo(){} ok 4366 generator-star-spacing invalid function *foo(arg1, arg2){} ok 4367 generator-star-spacing invalid var foo = function *foo(){}; ok 4368 generator-star-spacing invalid var foo = function *(){}; ok 4369 generator-star-spacing invalid var foo = { *foo(){} }; ok 4370 generator-star-spacing invalid class Foo { *foo(){} } ok 4371 generator-star-spacing invalid class Foo { static *foo(){} } ok 4372 generator-star-spacing invalid var foo = { *[foo](){} }; ok 4373 generator-star-spacing invalid class Foo { *[foo](){} } ok 4374 generator-star-spacing invalid function*foo(){} ok 4375 generator-star-spacing invalid function*foo(arg1, arg2){} ok 4376 generator-star-spacing invalid var foo = function*foo(){}; ok 4377 generator-star-spacing invalid var foo = function*(){}; ok 4378 generator-star-spacing invalid var foo = {*foo(){} }; ok 4379 generator-star-spacing invalid class Foo {*foo(){} } ok 4380 generator-star-spacing invalid class Foo { static*foo(){} } ok 4381 generator-star-spacing invalid var foo = {*[foo](){} }; ok 4382 generator-star-spacing invalid class Foo {*[foo](){} } ok 4383 generator-star-spacing invalid function * foo(){} ok 4384 generator-star-spacing invalid function * foo(arg1, arg2){} ok 4385 generator-star-spacing invalid var foo = function * foo(){}; ok 4386 generator-star-spacing invalid var foo = function * (){}; ok 4387 generator-star-spacing invalid var foo = { * foo(){} }; ok 4388 generator-star-spacing invalid class Foo { * foo(){} } ok 4389 generator-star-spacing invalid class Foo { static * foo(){} } ok 4390 generator-star-spacing invalid var foo = { * [ foo ](){} }; ok 4391 generator-star-spacing invalid class Foo { * [ foo ](){} } ok 4392 generator-star-spacing invalid function*foo(){} ok 4393 generator-star-spacing invalid function* foo(arg1, arg2){} ok 4394 generator-star-spacing invalid var foo = function*foo(){}; ok 4395 generator-star-spacing invalid var foo = function* (){}; ok 4396 generator-star-spacing invalid var foo = {* foo(){} }; ok 4397 generator-star-spacing invalid class Foo {* foo(){} } ok 4398 generator-star-spacing invalid function*foo(){} ok 4399 generator-star-spacing invalid function *foo(arg1, arg2){} ok 4400 generator-star-spacing invalid var foo = function *foo(){}; ok 4401 generator-star-spacing invalid var foo = function *(){}; ok 4402 generator-star-spacing invalid var foo = { *foo(){} }; ok 4403 generator-star-spacing invalid class Foo { *foo(){} } ok 4404 generator-star-spacing invalid class Foo { static *foo(){} } ok 4405 generator-star-spacing invalid function*foo(){} ok 4406 generator-star-spacing invalid function*foo(arg1, arg2){} ok 4407 generator-star-spacing invalid var foo = function*foo(){}; ok 4408 generator-star-spacing invalid var foo = function*(){}; ok 4409 generator-star-spacing invalid var foo = {*foo(){} }; ok 4410 generator-star-spacing invalid class Foo {*foo(){} } ok 4411 generator-star-spacing invalid class Foo { static*foo(){} } ok 4412 generator-star-spacing invalid function * foo(){} ok 4413 generator-star-spacing invalid function * foo(arg1, arg2){} ok 4414 generator-star-spacing invalid var foo = function * foo(){}; ok 4415 generator-star-spacing invalid var foo = function * (){}; ok 4416 generator-star-spacing invalid var foo = { * foo(){} }; ok 4417 generator-star-spacing invalid class Foo { * foo(){} } ok 4418 generator-star-spacing invalid class Foo { static * foo(){} } ok 4419 generator-star-spacing invalid function*foo(){} ok 4420 generator-star-spacing invalid var foo = function*(){}; ok 4421 generator-star-spacing invalid class Foo { *foo(){} } ok 4422 generator-star-spacing invalid var foo = { *foo(){} } ok 4423 generator-star-spacing invalid var foo = { bar: function*() {} } ok 4424 generator-star-spacing invalid class Foo { static*foo(){} } ok 4425 generator-star-spacing invalid function*foo(){} ok 4426 generator-star-spacing invalid function * foo(){} ok 4427 generator-star-spacing invalid function*foo(){} ok 4428 generator-star-spacing invalid function*foo(){} ok 4429 generator-star-spacing invalid ({ async * foo(){} }) ok 4430 generator-star-spacing invalid ({ async*foo(){} }) ok 4431 generator-star-spacing invalid class Foo { async * foo(){} } ok 4432 generator-star-spacing invalid class Foo { async*foo(){} } ok 4433 generator-star-spacing invalid class Foo { static async * foo(){} } ok 4434 generator-star-spacing invalid class Foo { static async*foo(){} } ok 4435 getter-return valid var foo = { get bar(){return true;} }; ok 4436 getter-return valid var foo = { get bar() {return;} }; ok 4437 getter-return valid var foo = { get bar(){return true;} }; ok 4438 getter-return valid var foo = { get bar(){if(bar) {return;} return true;} }; ok 4439 getter-return valid class foo { get bar(){return true;} } ok 4440 getter-return valid class foo { get bar(){if(baz){return true;} else {return false;} } } ok 4441 getter-return valid class foo { get(){return true;} } ok 4442 getter-return valid class foo { get bar(){return true;} } ok 4443 getter-return valid class foo { get bar(){return;} } ok 4444 getter-return valid Object.defineProperty(foo, "bar", { get: function () {return true;}}); ok 4445 getter-return valid Object.defineProperty(foo, "bar", { get: function () { ~function (){ return true; }();return true;}}); ok 4446 getter-return valid Object.defineProperties(foo, { bar: { get: function () {return true;}} }); ok 4447 getter-return valid Object.defineProperties(foo, { bar: { get: function () { ~function (){ return true; }(); return true;}} }); ok 4448 getter-return valid Object.defineProperty(foo, "bar", { get: function () {return true;}}); ok 4449 getter-return valid Object.defineProperty(foo, "bar", { get: function (){return;}}); ok 4450 getter-return valid Object.defineProperties(foo, { bar: { get: function () {return true;}} }); ok 4451 getter-return valid Object.defineProperties(foo, { bar: { get: function () {return;}} }); ok 4452 getter-return valid var get = function(){}; ok 4453 getter-return valid var get = function(){ return true; }; ok 4454 getter-return valid var foo = { bar(){} }; ok 4455 getter-return valid var foo = { bar(){ return true; } }; ok 4456 getter-return valid var foo = { bar: function(){} }; ok 4457 getter-return valid var foo = { bar: function(){return;} }; ok 4458 getter-return valid var foo = { bar: function(){return true;} }; ok 4459 getter-return valid var foo = { get: function () {} } ok 4460 getter-return valid var foo = { get: () => {}}; ok 4461 getter-return invalid var foo = { get bar() {} }; ok 4462 getter-return invalid var foo = { get bar(){if(baz) {return true;}} }; ok 4463 getter-return invalid var foo = { get bar() { ~function () {return true;}} }; ok 4464 getter-return invalid var foo = { get bar() {} }; ok 4465 getter-return invalid var foo = { get bar() {if (baz) {return;}} }; ok 4466 getter-return invalid class foo { get bar(){} } ok 4467 getter-return invalid class foo { get bar(){ if (baz) { return true; }}} ok 4468 getter-return invalid class foo { get bar(){ ~function () { return true; }()}} ok 4469 getter-return invalid class foo { get bar(){} } ok 4470 getter-return invalid class foo { get bar(){if (baz) {return true;} } } ok 4471 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){}}); ok 4472 getter-return invalid Object.defineProperty(foo, "bar", { get: () => {}}); ok 4473 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){if(bar) {return true;}}}); ok 4474 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){ ~function () { return true; }()}}); ok 4475 getter-return invalid Object.defineProperties(foo, { bar: { get: function () {}} }); ok 4476 getter-return invalid Object.defineProperties(foo, { bar: { get: function (){if(bar) {return true;}}}}); ok 4477 getter-return invalid Object.defineProperties(foo, { bar: { get: function () {~function () { return true; }()}} }); ok 4478 getter-return invalid Object.defineProperty(foo, "bar", { get: function (){}}); ok 4479 global-require valid var x = require('y'); ok 4480 global-require valid if (x) { x.require('y'); } ok 4481 global-require valid var x;\u000ax = require('y'); ok 4482 global-require valid var x = 1, y = require('y'); ok 4483 global-require valid var x = require('y'), y = require('y'), z = require('z'); ok 4484 global-require valid var x = require('y').foo; ok 4485 global-require valid require('y').foo(); ok 4486 global-require valid require('y'); ok 4487 global-require valid function x(){}\u000a\u000a\u000ax();\u000a\u000a\u000aif (x > y) {\u000a\u0009doSomething()\u000a\u000a}\u000a\u000avar x = require('y').foo; ok 4488 global-require valid var logger = require(DEBUG ? 'dev-logger' : 'logger'); ok 4489 global-require valid var logger = DEBUG ? require('dev-logger') : require('logger'); ok 4490 global-require valid function localScopedRequire(require) { require('y'); } ok 4491 global-require valid var someFunc = require('./someFunc'); someFunc(function(require) { return('bananas'); }); ok 4492 global-require invalid if (process.env.NODE_ENV === 'DEVELOPMENT') {\u000a\u0009require('debug');\u000a} ok 4493 global-require invalid var x; if (y) { x = require('debug'); } ok 4494 global-require invalid var x; if (y) { x = require('debug').baz; } ok 4495 global-require invalid function x() { require('y') } ok 4496 global-require invalid try { require('x'); } catch (e) { console.log(e); } ok 4497 global-require invalid var getModule = x => require(x); ok 4498 global-require invalid var x = (x => require(x))('weird') ok 4499 global-require invalid switch(x) { case '1': require('1'); break; } ok 4500 guard-for-in valid for (var x in o); ok 4501 guard-for-in valid for (var x in o) {} ok 4502 guard-for-in valid for (var x in o) if (x) f(); ok 4503 guard-for-in valid for (var x in o) { if (x) { f(); } } ok 4504 guard-for-in valid for (var x in o) { if (x) continue; f(); } ok 4505 guard-for-in valid for (var x in o) { if (x) { continue; } f(); } ok 4506 guard-for-in invalid for (var x in o) { if (x) { f(); continue; } g(); } ok 4507 guard-for-in invalid for (var x in o) { if (x) { continue; f(); } g(); } ok 4508 guard-for-in invalid for (var x in o) { if (x) { f(); } g(); } ok 4509 guard-for-in invalid for (var x in o) { if (x) f(); g(); } ok 4510 guard-for-in invalid for (var x in o) { foo() } ok 4511 guard-for-in invalid for (var x in o) foo(); ok 4512 handle-callback-err valid function test(error) {} ok 4513 handle-callback-err valid function test(err) {console.log(err);} ok 4514 handle-callback-err valid function test(err, data) {if(err){ data = 'ERROR';}} ok 4515 handle-callback-err valid var test = function(err) {console.log(err);}; ok 4516 handle-callback-err valid var test = function(err) {if(err){/* do nothing */}}; ok 4517 handle-callback-err valid var test = function(err) {if(!err){doSomethingHere();}else{};} ok 4518 handle-callback-err valid var test = function(err, data) {if(!err) { good(); } else { bad(); }} ok 4519 handle-callback-err valid try { } catch(err) {} ok 4520 handle-callback-err valid getData(function(err, data) {if (err) {}getMoreDataWith(data, function(err, moreData) {if (err) {}getEvenMoreDataWith(moreData, function(err, allOfTheThings) {if (err) {}});});}); ok 4521 handle-callback-err valid var test = function(err) {if(! err){doSomethingHere();}}; ok 4522 handle-callback-err valid function test(err, data) {if (data) {doSomething(function(err) {console.error(err);});} else if (err) {console.log(err);}} ok 4523 handle-callback-err valid function handler(err, data) {if (data) {doSomethingWith(data);} else if (err) {console.log(err);}} ok 4524 handle-callback-err valid function handler(err) {logThisAction(function(err) {if (err) {}}); console.log(err);} ok 4525 handle-callback-err valid function userHandler(err) {process.nextTick(function() {if (err) {}})} ok 4526 handle-callback-err valid function help() { function userHandler(err) {function tester() { err; process.nextTick(function() { err; }); } } } ok 4527 handle-callback-err valid function help(done) { var err = new Error('error'); done(); } ok 4528 handle-callback-err valid var test = err => err; ok 4529 handle-callback-err valid var test = err => !err; ok 4530 handle-callback-err valid var test = err => err.message; ok 4531 handle-callback-err valid var test = function(error) {if(error){/* do nothing */}}; ok 4532 handle-callback-err valid var test = (error) => {if(error){/* do nothing */}}; ok 4533 handle-callback-err valid var test = function(error) {if(! error){doSomethingHere();}}; ok 4534 handle-callback-err valid var test = function(err) { console.log(err); }; ok 4535 handle-callback-err valid var test = function(error) { console.log(error); }; ok 4536 handle-callback-err valid var test = function(anyError) { console.log(anyError); }; ok 4537 handle-callback-err valid var test = function(any_error) { console.log(anyError); }; ok 4538 handle-callback-err valid var test = function(any_error) { console.log(any_error); }; ok 4539 handle-callback-err invalid function test(err) {} ok 4540 handle-callback-err invalid function test(err, data) {} ok 4541 handle-callback-err invalid function test(err) {errorLookingWord();} ok 4542 handle-callback-err invalid function test(err) {try{} catch(err) {}} ok 4543 handle-callback-err invalid function test(err, callback) { foo(function(err, callback) {}); } ok 4544 handle-callback-err invalid var test = (err) => {}; ok 4545 handle-callback-err invalid var test = function(err) {}; ok 4546 handle-callback-err invalid var test = function test(err, data) {}; ok 4547 handle-callback-err invalid var test = function test(err) {/* if(err){} */}; ok 4548 handle-callback-err invalid function test(err) {doSomethingHere(function(err){console.log(err);})} ok 4549 handle-callback-err invalid function test(error) {} ok 4550 handle-callback-err invalid getData(function(err, data) {getMoreDataWith(data, function(err, moreData) {if (err) {}getEvenMoreDataWith(moreData, function(err, allOfTheThings) {if (err) {}});}); }); ok 4551 handle-callback-err invalid getData(function(err, data) {getMoreDataWith(data, function(err, moreData) {getEvenMoreDataWith(moreData, function(err, allOfTheThings) {if (err) {}});}); }); ok 4552 handle-callback-err invalid function userHandler(err) {logThisAction(function(err) {if (err) { console.log(err); } })} ok 4553 handle-callback-err invalid function help() { function userHandler(err) {function tester(err) { err; process.nextTick(function() { err; }); } } } ok 4554 handle-callback-err invalid var test = function(anyError) { console.log(otherError); }; ok 4555 handle-callback-err invalid var test = function(anyError) { }; ok 4556 handle-callback-err invalid var test = function(err) { console.log(error); }; ok 4557 id-blacklist valid foo = "bar" ok 4558 id-blacklist valid bar = "bar" ok 4559 id-blacklist valid foo = "bar" ok 4560 id-blacklist valid function foo(){} ok 4561 id-blacklist valid foo() ok 4562 id-blacklist valid foo.bar() ok 4563 id-blacklist valid var foo = bar.baz; ok 4564 id-blacklist valid var foo = bar.baz.bing; ok 4565 id-blacklist valid foo.bar.baz = bing.bong.bash; ok 4566 id-blacklist valid if (foo.bar) {} ok 4567 id-blacklist valid var obj = { key: foo.bar }; ok 4568 id-blacklist valid var arr = [foo.bar]; ok 4569 id-blacklist valid [foo.bar] ok 4570 id-blacklist valid [foo.bar.nesting] ok 4571 id-blacklist valid if (foo.bar === bar.baz) { [foo.bar] } ok 4572 id-blacklist valid var myArray = new Array(); var myDate = new Date(); ok 4573 id-blacklist valid foo() ok 4574 id-blacklist valid foo.bar() ok 4575 id-blacklist valid foo.bar ok 4576 id-blacklist invalid foo = "bar" ok 4577 id-blacklist invalid bar = "bar" ok 4578 id-blacklist invalid foo = "bar" ok 4579 id-blacklist invalid function foo(){} ok 4580 id-blacklist invalid foo.bar() ok 4581 id-blacklist invalid var foo = bar.baz; ok 4582 id-blacklist invalid var foo = bar.baz; ok 4583 id-blacklist invalid if (foo.bar) {} ok 4584 id-blacklist invalid var obj = { key: foo.bar }; ok 4585 id-blacklist invalid var obj = { key: foo.bar }; ok 4586 id-blacklist invalid var obj = { key: foo.bar }; ok 4587 id-blacklist invalid var arr = [foo.bar]; ok 4588 id-blacklist invalid var arr = [foo.bar]; ok 4589 id-blacklist invalid [foo.bar] ok 4590 id-blacklist invalid if (foo.bar === bar.baz) { [bing.baz] } ok 4591 id-blacklist invalid if (foo.bar === bar.baz) { [foo.bar] } ok 4592 id-blacklist invalid var myArray = new Array(); var myDate = new Date(); ok 4593 id-blacklist invalid var myArray = new Array(); var myDate = new Date(); ok 4594 id-blacklist invalid foo.bar = 1 ok 4595 id-blacklist invalid foo.bar.baz = 1 ok 4596 implicit-arrow-linebreak valid (foo) => {\u000a bar\u000a } ok 4597 implicit-arrow-linebreak valid () => bar; ok 4598 implicit-arrow-linebreak valid () => (bar); ok 4599 implicit-arrow-linebreak valid () => bar => baz; ok 4600 implicit-arrow-linebreak valid () => ((((bar)))); ok 4601 implicit-arrow-linebreak valid (foo) => (\u000a bar\u000a ) ok 4602 implicit-arrow-linebreak valid (foo) => bar(); ok 4603 implicit-arrow-linebreak valid \u000a //comment\u000a foo => bar;\u000a ok 4604 implicit-arrow-linebreak valid \u000a foo => (\u000a // comment\u000a bar => (\u000a // another comment\u000a baz\u000a )\u000a )\u000a ok 4605 implicit-arrow-linebreak valid \u000a foo => (\u000a // comment\u000a bar => baz\u000a )\u000a ok 4606 implicit-arrow-linebreak valid \u000a /* text */\u000a () => bar;\u000a ok 4607 implicit-arrow-linebreak valid \u000a /* foo */\u000a const bar = () => baz;\u000a ok 4608 implicit-arrow-linebreak valid \u000a (foo) => (\u000a //comment\u000a bar\u000a )\u000a ok 4609 implicit-arrow-linebreak valid \u000a [ // comment\u000a foo => 'bar'\u000a ]\u000a ok 4610 implicit-arrow-linebreak valid \u000a /*\u000a One two three four\u000a Five six seven nine.\u000a */\u000a (foo) => bar\u000a ok 4611 implicit-arrow-linebreak valid \u000a const foo = {\u000a id: 'bar',\u000a // comment\u000a prop: (foo1) => 'returning this string',\u000a }\u000a ok 4612 implicit-arrow-linebreak valid \u000a // comment\u000a "foo".split('').map((char) => char\u000a )\u000a ok 4613 implicit-arrow-linebreak valid \u000a async foo => () => bar;\u000a ok 4614 implicit-arrow-linebreak valid \u000a // comment\u000a async foo => 'string'\u000a ok 4615 implicit-arrow-linebreak valid \u000a (foo) =>\u000a (\u000a bar\u000a )\u000a ok 4616 implicit-arrow-linebreak valid \u000a () =>\u000a ((((bar))));\u000a ok 4617 implicit-arrow-linebreak valid \u000a () =>\u000a bar();\u000a ok 4618 implicit-arrow-linebreak valid \u000a () =>\u000a (bar);\u000a ok 4619 implicit-arrow-linebreak valid \u000a () =>\u000a bar =>\u000a baz;\u000a ok 4620 implicit-arrow-linebreak invalid \u000a (foo) =>\u000a bar();\u000a ok 4621 implicit-arrow-linebreak invalid \u000a () =>\u000a (bar);\u000a ok 4622 implicit-arrow-linebreak invalid \u000a () =>\u000a bar =>\u000a baz;\u000a ok 4623 implicit-arrow-linebreak invalid \u000a () =>\u000a ((((bar))));\u000a ok 4624 implicit-arrow-linebreak invalid \u000a (foo) =>\u000a (\u000a bar\u000a )\u000a ok 4625 implicit-arrow-linebreak invalid (foo) =>\u000a // test comment\u000a bar ok 4626 implicit-arrow-linebreak invalid const foo = () =>\u000a// comment\u000a[] ok 4627 implicit-arrow-linebreak invalid \u000a (foo) =>\u000a (\u000a //comment\u000a bar\u000a )\u000a ok 4628 implicit-arrow-linebreak invalid \u000a (foo) =>\u000a (\u000a bar\u000a //comment\u000a )\u000a\u000a ok 4629 implicit-arrow-linebreak invalid (foo) =>\u000a // comment\u000a // another comment\u000a bar ok 4630 implicit-arrow-linebreak invalid (foo) =>\u000a// comment\u000a(\u000a// another comment\u000abar\u000a) ok 4631 implicit-arrow-linebreak invalid () => // comment \u000a bar ok 4632 implicit-arrow-linebreak invalid (foo) => //comment \u000a bar ok 4633 implicit-arrow-linebreak invalid (foo) =>\u000a /* test comment */\u000a bar ok 4634 implicit-arrow-linebreak invalid (foo) =>\u000a // hi\u000a bar =>\u000a // there\u000a baz; ok 4635 implicit-arrow-linebreak invalid (foo) =>\u000a // hi\u000a bar => (\u000a // there\u000a baz\u000a ) ok 4636 implicit-arrow-linebreak invalid const foo = {\u000a id: 'bar',\u000a prop: (foo1) =>\u000a // comment\u000a 'returning this string',\u000a} ok 4637 implicit-arrow-linebreak invalid [ foo =>\u000a // comment\u000a 'bar'\u000a] ok 4638 implicit-arrow-linebreak invalid "foo".split('').map((char) =>\u000a// comment\u000achar\u000a) ok 4639 implicit-arrow-linebreak invalid new Promise((resolve, reject) =>\u000a // comment\u000a resolve()\u000a) ok 4640 implicit-arrow-linebreak invalid () =>\u000a/*\u000asuccinct\u000aexplanation\u000aof code\u000a*/\u000abar ok 4641 implicit-arrow-linebreak invalid stepOne =>\u000a /*\u000a here is\u000a what is\u000a happening\u000a */\u000a stepTwo =>\u000a // then this happens\u000a stepThree ok 4642 implicit-arrow-linebreak invalid () =>\u000a /*\u000a multi\u000a line\u000a */\u000a bar =>\u000a /*\u000a many\u000a lines\u000a */\u000a baz ok 4643 implicit-arrow-linebreak invalid foo('', boo =>\u000a // comment\u000a bar\u000a) ok 4644 implicit-arrow-linebreak invalid async foo =>\u000a // comment\u000a 'string' ok 4645 implicit-arrow-linebreak invalid async foo =>\u000a // comment\u000a // another\u000a bar; ok 4646 implicit-arrow-linebreak invalid async (foo) =>\u000a // comment\u000a 'string' ok 4647 implicit-arrow-linebreak invalid const foo = 1,\u000a bar = 2,\u000a baz = () => // comment\u000a qux ok 4648 implicit-arrow-linebreak invalid const foo = () =>\u000a //comment\u000a qux,\u000a bar = 2,\u000a baz = 3 ok 4649 implicit-arrow-linebreak invalid const foo = () =>\u000a //two\u000a 1,\u000a boo = () =>\u000a //comment\u000a 2,\u000a bop = "what" ok 4650 implicit-arrow-linebreak invalid start()\u000a .then(() =>\u000a /* If I put a comment here, eslint --fix breaks badly */\u000a process && typeof process.send === 'function' && process.send('ready')\u000a )\u000a .catch(err => {\u000a /* catch seems to be needed here */\u000a console.log('Error: ', err)\u000a }) ok 4651 implicit-arrow-linebreak invalid hello(response =>\u000a // comment\u000a response, param => param) ok 4652 implicit-arrow-linebreak invalid start(\u000a arr =>\u000a // cometh\u000a bod => {\u000a // soon\u000a yyyy\u000a }\u000a) ok 4653 implicit-arrow-linebreak invalid (foo) => bar(); ok 4654 implicit-arrow-linebreak invalid (foo) => bar => baz; ok 4655 implicit-arrow-linebreak invalid (foo) => (bar); ok 4656 implicit-arrow-linebreak invalid (foo) => (((bar))); ok 4657 implicit-arrow-linebreak invalid \u000a (foo) => (\u000a bar\u000a )\u000a ok 4658 indent-legacy valid bridge.callHandler(\u000a 'getAppVersion', 'test23', function(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a }\u000a);\u000a ok 4659 indent-legacy valid var a = [\u000a , /*{\u000a }, */{\u000a name: 'foo',\u000a }\u000a];\u000a ok 4660 indent-legacy valid bridge.callHandler(\u000a 'getAppVersion', 'test23', function(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a });\u000a ok 4661 indent-legacy valid bridge.callHandler(\u000a 'getAppVersion',\u000a null,\u000a function responseCallback(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a }\u000a);\u000a ok 4662 indent-legacy valid bridge.callHandler(\u000a 'getAppVersion',\u000a null,\u000a function responseCallback(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a });\u000a ok 4663 indent-legacy valid function doStuff(keys) {\u000a _.forEach(\u000a keys,\u000a key => {\u000a doSomething(key);\u000a }\u000a );\u000a}\u000a ok 4664 indent-legacy valid example(\u000a function () {\u000a console.log('example');\u000a }\u000a);\u000a ok 4665 indent-legacy valid let foo = somethingList\u000a .filter(x => {\u000a return x;\u000a })\u000a .map(x => {\u000a return 100 * x;\u000a });\u000a ok 4666 indent-legacy valid var x = 0 &&\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4667 indent-legacy valid var x = 0 &&\u000a\u0009{\u000a\u0009\u0009a: 1,\u000a\u0009\u0009b: 2\u000a\u0009}; ok 4668 indent-legacy valid var x = 0 &&\u000a {\u000a a: 1,\u000a b: 2\u000a }||\u000a {\u000a c: 3,\u000a d: 4\u000a }; ok 4669 indent-legacy valid var x = [\u000a 'a',\u000a 'b',\u000a 'c'\u000a]; ok 4670 indent-legacy valid var x = ['a',\u000a 'b',\u000a 'c',\u000a]; ok 4671 indent-legacy valid var x = 0 && 1; ok 4672 indent-legacy valid var x = 0 && { a: 1, b: 2 }; ok 4673 indent-legacy valid var x = 0 &&\u000a (\u000a 1\u000a ); ok 4674 indent-legacy valid require('http').request({hostname: 'localhost',\u000a port: 80}, function(res) {\u000a res.end();\u000a});\u000a ok 4675 indent-legacy valid function test() {\u000a return client.signUp(email, PASSWORD, { preVerified: true })\u000a .then(function (result) {\u000a // hi\u000a })\u000a .then(function () {\u000a return FunctionalHelpers.clearBrowserState(self, {\u000a contentServer: true,\u000a contentServer1: true\u000a });\u000a });\u000a} ok 4676 indent-legacy valid it('should... some lengthy test description that is forced to be' +\u000a 'wrapped into two lines since the line length limit is set', () => {\u000a expect(true).toBe(true);\u000a});\u000a ok 4677 indent-legacy valid function test() {\u000a return client.signUp(email, PASSWORD, { preVerified: true })\u000a .then(function (result) {\u000a var x = 1;\u000a var y = 1;\u000a }, function(err){\u000a var o = 1 - 2;\u000a var y = 1 - 2;\u000a return true;\u000a })\u000a} ok 4678 indent-legacy valid function test() {\u000a return client.signUp(email, PASSWORD, { preVerified: true })\u000a .then(function (result) {\u000a var x = 1;\u000a var y = 1;\u000a }, function(err){\u000a var o = 1 - 2;\u000a var y = 1 - 2;\u000a return true;\u000a });\u000a} ok 4679 indent-legacy valid // hi ok 4680 indent-legacy valid var Command = function() {\u000a var fileList = [],\u000a files = []\u000a\u000a files.concat(fileList)\u000a};\u000a ok 4681 indent-legacy valid ok 4682 indent-legacy valid if(data) {\u000a console.log('hi');\u000a b = true;}; ok 4683 indent-legacy valid foo = () => {\u000a console.log('hi');\u000a return true;}; ok 4684 indent-legacy valid function test(data) {\u000a console.log('hi');\u000a return true;}; ok 4685 indent-legacy valid var test = function(data) {\u000a console.log('hi');\u000a}; ok 4686 indent-legacy valid arr.forEach(function(data) {\u000a otherdata.forEach(function(zero) {\u000a console.log('hi');\u000a }) }); ok 4687 indent-legacy valid a = [\u000a ,3\u000a] ok 4688 indent-legacy valid [\u000a ['gzip', 'gunzip'],\u000a ['gzip', 'unzip'],\u000a ['deflate', 'inflate'],\u000a ['deflateRaw', 'inflateRaw'],\u000a].forEach(function(method) {\u000a console.log(method);\u000a});\u000a ok 4689 indent-legacy valid test(123, {\u000a bye: {\u000a hi: [1,\u000a {\u000a b: 2\u000a }\u000a ]\u000a }\u000a}); ok 4690 indent-legacy valid var xyz = 2,\u000a lmn = [\u000a {\u000a a: 1\u000a }\u000a ]; ok 4691 indent-legacy valid lmn = [{\u000a a: 1\u000a},\u000a{\u000a b: 2\u000a},{\u000a x: 2\u000a}]; ok 4692 indent-legacy valid abc({\u000a test: [\u000a [\u000a c,\u000a xyz,\u000a 2\u000a ].join(',')\u000a ]\u000a}); ok 4693 indent-legacy valid abc = {\u000a test: [\u000a [\u000a c,\u000a xyz,\u000a 2\u000a ]\u000a ]\u000a}; ok 4694 indent-legacy valid abc(\u000a {\u000a a: 1,\u000a b: 2\u000a }\u000a); ok 4695 indent-legacy valid abc({\u000a a: 1,\u000a b: 2\u000a}); ok 4696 indent-legacy valid var abc = \u000a [\u000a c,\u000a xyz,\u000a {\u000a a: 1,\u000a b: 2\u000a }\u000a ]; ok 4697 indent-legacy valid var abc = [\u000a c,\u000a xyz,\u000a {\u000a a: 1,\u000a b: 2\u000a }\u000a]; ok 4698 indent-legacy valid var abc = 5,\u000a c = 2,\u000a xyz = \u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4699 indent-legacy valid var abc = \u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4700 indent-legacy valid var a = new abc({\u000a a: 1,\u000a b: 2\u000a }),\u000a b = 2; ok 4701 indent-legacy valid var a = 2,\u000a c = {\u000a a: 1,\u000a b: 2\u000a },\u000a b = 2; ok 4702 indent-legacy valid var x = 2,\u000a y = {\u000a a: 1,\u000a b: 2\u000a },\u000a b = 2; ok 4703 indent-legacy valid var e = {\u000a a: 1,\u000a b: 2\u000a },\u000a b = 2; ok 4704 indent-legacy valid var a = {\u000a a: 1,\u000a b: 2\u000a}; ok 4705 indent-legacy valid function test() {\u000a if (true ||\u000a false){\u000a console.log(val);\u000a }\u000a} ok 4706 indent-legacy valid for (var val in obj)\u000a if (true)\u000a console.log(val); ok 4707 indent-legacy valid if(true)\u000a if (true)\u000a if (true)\u000a console.log(val); ok 4708 indent-legacy valid function hi(){ var a = 1;\u000a y++; x++;\u000a} ok 4709 indent-legacy valid for(;length > index; index++)if(NO_HOLES || index in self){\u000a x++;\u000a} ok 4710 indent-legacy valid function test(){\u000a switch(length){\u000a case 1: return function(a){\u000a return fn.call(that, a);\u000a };\u000a }\u000a} ok 4711 indent-legacy valid var geometry = 2,\u000arotate = 2; ok 4712 indent-legacy valid var geometry,\u000a rotate; ok 4713 indent-legacy valid var geometry,\u000a\u0009rotate; ok 4714 indent-legacy valid var geometry,\u000a rotate; ok 4715 indent-legacy valid var geometry,\u000a rotate; ok 4716 indent-legacy valid let geometry,\u000a rotate; ok 4717 indent-legacy valid const geometry = 2,\u000a rotate = 3; ok 4718 indent-legacy valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth,\u000a height, rotate; ok 4719 indent-legacy valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth; ok 4720 indent-legacy valid if (1 < 2){\u000a//hi sd \u000a} ok 4721 indent-legacy valid while (1 < 2){\u000a //hi sd \u000a} ok 4722 indent-legacy valid while (1 < 2) console.log('hi'); ok 4723 indent-legacy valid [a, b,\u000a c].forEach((index) => {\u000a index;\u000a });\u000a ok 4724 indent-legacy valid [a, b, c].forEach((index) => {\u000a index;\u000a});\u000a ok 4725 indent-legacy valid [a, b, c].forEach(function(index){\u000a return index;\u000a});\u000a ok 4726 indent-legacy valid switch (x) {\u000a case "foo":\u000a a();\u000a break;\u000a case "bar":\u000a switch (y) {\u000a case "1":\u000a break;\u000a case "2":\u000a a = 6;\u000a break;\u000a }\u000a case "test":\u000a break;\u000a} ok 4727 indent-legacy valid switch (x) {\u000a case "foo":\u000a a();\u000a break;\u000a case "bar":\u000a switch (y) {\u000a case "1":\u000a break;\u000a case "2":\u000a a = 6;\u000a break;\u000a }\u000a case "test":\u000a break;\u000a} ok 4728 indent-legacy valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a switch(x){\u000a case '1':\u000a break;\u000a case '2':\u000a a = 6;\u000a break;\u000a }\u000a} ok 4729 indent-legacy valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a if(x){\u000a a = 2;\u000a }\u000a else{\u000a a = 6;\u000a }\u000a} ok 4730 indent-legacy valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a if(x){\u000a a = 2;\u000a }\u000a else\u000a a = 6;\u000a} ok 4731 indent-legacy valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a a(); break;\u000acase "baz":\u000a a(); break;\u000a} ok 4732 indent-legacy valid switch (0) {\u000a} ok 4733 indent-legacy valid function foo() {\u000a var a = "a";\u000a switch(a) {\u000a case "a":\u000a return "A";\u000a case "b":\u000a return "B";\u000a }\u000a}\u000afoo(); ok 4734 indent-legacy valid switch(value){\u000a case "1":\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a a();\u000a break;\u000a}\u000aswitch(value){\u000a case "1":\u000a a();\u000a break;\u000a case "2":\u000a break;\u000a default:\u000a break;\u000a} ok 4735 indent-legacy valid var obj = {foo: 1, bar: 2};\u000awith (obj) {\u000a console.log(foo + bar);\u000a}\u000a ok 4736 indent-legacy valid if (a) {\u000a (1 + 2 + 3);\u000a} ok 4737 indent-legacy valid switch(value){ default: a(); break; }\u000a ok 4738 indent-legacy valid import {addons} from 'react/addons'\u000aimport React from 'react' ok 4739 indent-legacy valid var a = 1,\u000a b = 2,\u000a c = 3;\u000a ok 4740 indent-legacy valid var a = 1\u000a ,b = 2\u000a ,c = 3;\u000a ok 4741 indent-legacy valid while (1 < 2) console.log('hi')\u000a ok 4742 indent-legacy valid function salutation () {\u000a switch (1) {\u000a case 0: return console.log('hi')\u000a case 1: return console.log('hey')\u000a }\u000a}\u000a ok 4743 indent-legacy valid var items = [\u000a {\u000a foo: 'bar'\u000a }\u000a];\u000a ok 4744 indent-legacy valid const a = 1,\u000a b = 2;\u000aconst items1 = [\u000a {\u000a foo: 'bar'\u000a }\u000a];\u000aconst items2 = Items(\u000a {\u000a foo: 'bar'\u000a }\u000a);\u000a ok 4745 indent-legacy valid const geometry = 2,\u000a rotate = 3;\u000avar a = 1,\u000a b = 2;\u000alet light = true,\u000a shadow = false; ok 4746 indent-legacy valid const abc = 5,\u000a c = 2,\u000a xyz = \u000a {\u000a a: 1,\u000a b: 2\u000a };\u000alet abc2 = 5,\u000a c2 = 2,\u000a xyz2 = \u000a {\u000a a: 1,\u000a b: 2\u000a };\u000avar abc3 = 5,\u000a c3 = 2,\u000a xyz3 = \u000a {\u000a a: 1,\u000a b: 2\u000a };\u000a ok 4747 indent-legacy valid module.exports =\u000a{\u000a 'Unit tests':\u000a {\u000a rootPath: './',\u000a environment: 'node',\u000a tests:\u000a [\u000a 'test/test-*.js'\u000a ],\u000a sources:\u000a [\u000a '*.js',\u000a 'test/**.js'\u000a ]\u000a }\u000a}; ok 4748 indent-legacy valid var path = require('path')\u000a , crypto = require('crypto')\u000a ;\u000a ok 4749 indent-legacy valid var a = 1\u000a ,b = 2\u000a ; ok 4750 indent-legacy valid export function create (some,\u000a argument) {\u000a return Object.create({\u000a a: some,\u000a b: argument\u000a });\u000a}; ok 4751 indent-legacy valid export function create (id, xfilter, rawType,\u000a width=defaultWidth, height=defaultHeight,\u000a footerHeight=defaultFooterHeight,\u000a padding=defaultPadding) {\u000a // ... function body, indented two spaces\u000a}\u000a ok 4752 indent-legacy valid var obj = {\u000a foo: function () {\u000a return new p()\u000a .then(function (ok) {\u000a return ok;\u000a }, function () {\u000a // ignore things\u000a });\u000a }\u000a};\u000a ok 4753 indent-legacy valid a.b()\u000a .c(function(){\u000a var a;\u000a }).d.e;\u000a ok 4754 indent-legacy valid const YO = 'bah',\u000a TE = 'mah'\u000a\u000avar res,\u000a a = 5,\u000a b = 4\u000a ok 4755 indent-legacy valid const YO = 'bah',\u000a TE = 'mah'\u000a\u000avar res,\u000a a = 5,\u000a b = 4\u000a\u000aif (YO) console.log(TE) ok 4756 indent-legacy valid var foo = 'foo',\u000a bar = 'bar',\u000a baz = function() {\u000a \u000a }\u000a\u000afunction hello () {\u000a \u000a}\u000a ok 4757 indent-legacy valid var obj = {\u000a send: function () {\u000a return P.resolve({\u000a type: 'POST'\u000a })\u000a .then(function () {\u000a return true;\u000a }, function () {\u000a return false;\u000a });\u000a }\u000a};\u000a ok 4758 indent-legacy valid var obj = {\u000a send: function () {\u000a return P.resolve({\u000a type: 'POST'\u000a })\u000a .then(function () {\u000a return true;\u000a }, function () {\u000a return false;\u000a });\u000a }\u000a};\u000a ok 4759 indent-legacy valid const someOtherFunction = argument => {\u000a console.log(argument);\u000a },\u000a someOtherValue = 'someOtherValue';\u000a ok 4760 indent-legacy valid [\u000a 'a',\u000a 'b'\u000a].sort().should.deepEqual([\u000a 'x',\u000a 'y'\u000a]);\u000a ok 4761 indent-legacy valid var a = 1,\u000a B = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a }; ok 4762 indent-legacy valid var a = 1,\u000a B = \u000a class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a },\u000a c = 3; ok 4763 indent-legacy valid class A{\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a} ok 4764 indent-legacy valid var A = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a} ok 4765 indent-legacy valid var a = {\u000a some: 1\u000a, name: 2\u000a};\u000a ok 4766 indent-legacy valid a.c = {\u000a aa: function() {\u000a 'test1';\u000a return 'aa';\u000a }\u000a , bb: function() {\u000a return this.bb();\u000a }\u000a};\u000a ok 4767 indent-legacy valid var a =\u000a{\u000a actions:\u000a [\u000a {\u000a name: 'compile'\u000a }\u000a ]\u000a};\u000a ok 4768 indent-legacy valid var a =\u000a[\u000a {\u000a name: 'compile'\u000a }\u000a];\u000a ok 4769 indent-legacy valid const func = function (opts) {\u000a return Promise.resolve()\u000a .then(() => {\u000a [\u000a 'ONE', 'TWO'\u000a ].forEach(command => { doSomething(); });\u000a });\u000a}; ok 4770 indent-legacy valid const func = function (opts) {\u000a return Promise.resolve()\u000a .then(() => {\u000a [\u000a 'ONE', 'TWO'\u000a ].forEach(command => { doSomething(); });\u000a });\u000a}; ok 4771 indent-legacy valid var haveFun = function () {\u000a SillyFunction(\u000a {\u000a value: true,\u000a },\u000a {\u000a _id: true,\u000a }\u000a );\u000a}; ok 4772 indent-legacy valid var haveFun = function () {\u000a new SillyFunction(\u000a {\u000a value: true,\u000a },\u000a {\u000a _id: true,\u000a }\u000a );\u000a}; ok 4773 indent-legacy valid let object1 = {\u000a doThing() {\u000a return _.chain([])\u000a .map(v => (\u000a {\u000a value: true,\u000a }\u000a ))\u000a .value();\u000a }\u000a}; ok 4774 indent-legacy valid class Foo\u000a extends Bar {\u000a baz() {}\u000a} ok 4775 indent-legacy valid class Foo extends\u000a Bar {\u000a baz() {}\u000a} ok 4776 indent-legacy valid fs.readdirSync(path.join(__dirname, '../rules')).forEach(name => {\u000a files[name] = foo;\u000a}); ok 4777 indent-legacy valid (function(){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(); ok 4778 indent-legacy valid (function(){\u000a function foo(x) {\u000a return x + 1;\u000a }\u000a})(); ok 4779 indent-legacy valid (function(x, y){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(1, 2); ok 4780 indent-legacy valid (function(){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a}()); ok 4781 indent-legacy valid !function(){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a}(); ok 4782 indent-legacy valid !function(){\u000a\u0009\u0009\u0009function foo(x) {\u000a\u0009\u0009\u0009\u0009return x + 1;\u000a\u0009\u0009\u0009}\u000a}(); ok 4783 indent-legacy valid var out = function(){\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}; ok 4784 indent-legacy valid var ns = function(){\u000afunction fooVar(x) {\u000a return x + 1;\u000a}\u000a}(); ok 4785 indent-legacy valid ns = function(){\u000afunction fooVar(x) {\u000a return x + 1;\u000a}\u000a}(); ok 4786 indent-legacy valid var ns = (function(){\u000afunction fooVar(x) {\u000a return x + 1;\u000a}\u000a}(x)); ok 4787 indent-legacy valid var ns = (function(){\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}(x)); ok 4788 indent-legacy valid var obj = {\u000a foo: function() {\u000a return true;\u000a }\u000a}; ok 4789 indent-legacy valid while (\u000a function() {\u000a return true;\u000a }()) {\u000a\u000a x = x + 1;\u000a}; ok 4790 indent-legacy valid (() => {\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(); ok 4791 indent-legacy valid function foo() {\u000a} ok 4792 indent-legacy valid ;(() => {\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(); ok 4793 indent-legacy valid if(data) {\u000a console.log('hi');\u000a} ok 4794 indent-legacy valid Buffer.length ok 4795 indent-legacy valid Buffer\u000a .indexOf('a')\u000a .toString() ok 4796 indent-legacy valid Buffer.\u000a length ok 4797 indent-legacy valid Buffer\u000a .foo\u000a .bar ok 4798 indent-legacy valid Buffer\u000a\u0009.foo\u000a\u0009.bar ok 4799 indent-legacy valid Buffer\u000a .foo\u000a .bar ok 4800 indent-legacy valid MemberExpression\u000a.is .off .by .default(); ok 4801 indent-legacy valid foo = bar.baz()\u000a .bip(); ok 4802 indent-legacy valid if (foo) {\u000a bar();\u000a} else if (baz) {\u000a foobar();\u000a} else if (qux) {\u000a qux();\u000a} ok 4803 indent-legacy valid function foo(aaa,\u000a bbb, ccc, ddd) {\u000a bar();\u000a} ok 4804 indent-legacy valid function foo(aaa, bbb,\u000a ccc, ddd) {\u000a bar();\u000a} ok 4805 indent-legacy valid function foo(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 4806 indent-legacy valid function foo(aaa,\u000a bbb, ccc,\u000a ddd, eee, fff) {\u000a bar();\u000a} ok 4807 indent-legacy valid function foo(aaa, bbb)\u000a{\u000a bar();\u000a} ok 4808 indent-legacy valid function foo(\u000a aaa,\u000a bbb) {\u000a bar();\u000a} ok 4809 indent-legacy valid var foo = function(aaa,\u000a bbb,\u000a ccc,\u000a ddd) {\u000abar();\u000a} ok 4810 indent-legacy valid var foo = function(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 4811 indent-legacy valid var foo = function(aaa,\u000a bbb, ccc, ddd,\u000a eee, fff) {\u000a bar();\u000a} ok 4812 indent-legacy valid var foo = function(\u000a aaa, bbb, ccc,\u000a ddd, eee) {\u000a bar();\u000a} ok 4813 indent-legacy valid function foo() {\u000a bar();\u000a \u0009baz();\u000a\u0009 \u0009\u0009\u0009 \u0009\u0009\u0009 \u0009 \u0009qux();\u000a} ok 4814 indent-legacy valid function foo() {\u000a function bar() {\u000a baz();\u000a }\u000a} ok 4815 indent-legacy valid function foo() {\u000a bar();\u000a \u0009\u0009} ok 4816 indent-legacy valid function foo() {\u000a function bar(baz,\u000a qux) {\u000a foobar();\u000a }\u000a} ok 4817 indent-legacy valid function foo() {\u000a var bar = function(baz,\u000a qux) {\u000a foobar();\u000a };\u000a} ok 4818 indent-legacy valid function foo() {\u000a return (bar === 1 || bar === 2 &&\u000a (/Function/.test(grandparent.type))) &&\u000a directives(parent).indexOf(node) >= 0;\u000a} ok 4819 indent-legacy valid function foo() {\u000a return (bar === 1 || bar === 2) &&\u000a (z === 3 || z === 4);\u000a} ok 4820 indent-legacy valid function foo() {\u000a return ((bar === 1 || bar === 2) &&\u000a (z === 3 || z === 4)\u000a );\u000a} ok 4821 indent-legacy valid function foo() {\u000a return ((bar === 1 || bar === 2) &&\u000a (z === 3 || z === 4));\u000a} ok 4822 indent-legacy valid foo(\u000a bar,\u000a baz,\u000a qux\u000a); ok 4823 indent-legacy valid foo(\u000a\u0009bar,\u000a\u0009baz,\u000a\u0009qux\u000a); ok 4824 indent-legacy valid foo(bar,\u000a baz,\u000a qux); ok 4825 indent-legacy valid foo(\u000abar,\u000abaz,\u000aqux\u000a); ok 4826 indent-legacy valid foo(bar,\u000a baz,\u000a qux\u000a); ok 4827 indent-legacy valid foo(bar, baz,\u000a qux, barbaz,\u000a barqux, bazqux); ok 4828 indent-legacy valid foo(\u000a bar, baz,\u000a qux); ok 4829 indent-legacy valid foo(bar,\u000a 1 + 2,\u000a !baz,\u000a new Car('!')\u000a); ok 4830 indent-legacy valid var foo = function() {\u000a return bar(\u000a [{\u000a }].concat(baz)\u000a );\u000a}; ok 4831 indent-legacy valid return (\u000a foo\u000a); ok 4832 indent-legacy valid return (\u000a foo\u000a) ok 4833 indent-legacy valid var foo = [\u000a bar,\u000a baz\u000a] ok 4834 indent-legacy valid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 4835 indent-legacy valid var foo = [bar,\u000abaz,\u000aqux\u000a] ok 4836 indent-legacy valid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 4837 indent-legacy valid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 4838 indent-legacy valid var foo = [bar,\u000a baz, qux\u000a] ok 4839 indent-legacy valid var foo = [\u000a { bar: 1,\u000a baz: 2 },\u000a { bar: 3,\u000a qux: 4 }\u000a] ok 4840 indent-legacy valid var foo = {\u000abar: 1,\u000abaz: 2\u000a}; ok 4841 indent-legacy valid var foo = { foo: 1, bar: 2,\u000a baz: 3 } ok 4842 indent-legacy valid var foo = [\u000a {\u000a foo: 1\u000a }\u000a] ok 4843 indent-legacy valid function foo() {\u000a [\u000a foo\u000a ]\u000a} ok 4844 indent-legacy valid [\u000a] ok 4845 indent-legacy valid [\u000a] ok 4846 indent-legacy valid {\u000a} ok 4847 indent-legacy valid {\u000a} ok 4848 indent-legacy valid var foo = [\u000a [\u000a 1\u000a ]\u000a] ok 4849 indent-legacy valid var foo = [ 1,\u000a [\u000a 2\u000a ]\u000a]; ok 4850 indent-legacy valid var foo = bar(1,\u000a [ 2,\u000a 3\u000a ]\u000a); ok 4851 indent-legacy valid var foo =\u000a [\u000a ]() ok 4852 indent-legacy valid const lambda = foo => {\u000a Object.assign({},\u000a filterName,\u000a {\u000a display\u000a }\u000a );} ok 4853 indent-legacy valid const lambda = foo => {\u000a Object.assign({},\u000a filterName,\u000a {\u000a display\u000a }\u000a );} ok 4854 indent-legacy valid var foo = function() {\u000a\u0009window.foo('foo',\u000a\u0009\u0009{\u000a\u0009\u0009\u0009foo: 'bar',\u0009\u0009\u0009bar: {\u000a\u0009\u0009\u0009\u0009foo: 'bar'\u000a\u0009\u0009\u0009}\u000a\u0009\u0009}\u000a\u0009);\u000a} ok 4855 indent-legacy valid echo = spawn('cmd.exe',\u000a ['foo', 'bar',\u000a 'baz']); ok 4856 indent-legacy invalid var a = b;\u000aif (a) {\u000ab();\u000a}\u000a ok 4857 indent-legacy invalid require('http').request({hostname: 'localhost',\u000a port: 80}, function(res) {\u000a res.end();\u000a});\u000a ok 4858 indent-legacy invalid if (array.some(function(){\u000a return true;\u000a})) {\u000aa++; // ->\u000a b++;\u000a c++; // <-\u000a}\u000a ok 4859 indent-legacy invalid if (a){\u000a\u0009b=c;\u000a\u0009\u0009c=d;\u000ae=f;\u000a} ok 4860 indent-legacy invalid if (a){\u000a b=c;\u000a c=d;\u000a e=f;\u000a} ok 4861 indent-legacy invalid if (a) {\u000a var b = c;\u000a var d = e\u000a * f;\u000a var e = f; // <-\u000a// NO ERROR: DON'T VALIDATE EMPTY OR COMMENT ONLY LINES\u000a function g() {\u000a if (h) {\u000a var i = j;\u000a } // <-\u000a } // <-\u000a\u000a while (k) l++;\u000a while (m) {\u000a n--; // ->\u000a } // <-\u000a\u000a do {\u000a o = p +\u000a q; // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a o = p +\u000a q;\u000a } while(r); // <-\u000a\u000a for (var s in t) {\u000a u++;\u000a }\u000a\u000a for (;;) { // <- Fix this when issue 3737 gets resolved\u000a v++; // <-\u000a }\u000a\u000a if ( w ) {\u000a x++;\u000a } else if (y) {\u000a z++; // <-\u000a aa++;\u000a } else { // <-\u000a bb++; // ->\u000a} // ->\u000a}\u000a\u000a/**/var b; // NO ERROR: single line multi-line comments followed by code is OK\u000a/*\u000a *\u000a */ var b; // ERROR: multi-line comments followed by code is not OK\u000a\u000avar arr = [\u000a a,\u000a b,\u000a c,\u000a function (){\u000a d\u000a }, // <-\u000a {},\u000a {\u000a a: b,\u000a c: d,\u000a d: e\u000a },\u000a [\u000a f,\u000a g,\u000a h,\u000a i\u000a ],\u000a [j]\u000a];\u000a\u000avar obj = {\u000a a: {\u000a b: {\u000a c: d,\u000a e: f,\u000a g: h +\u000a i // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a }\u000a },\u000a g: [\u000a h,\u000a i,\u000a j,\u000a k\u000a ]\u000a};\u000a\u000avar arrObject = {a:[\u000a a,\u000a b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c\u000a]};\u000a\u000avar objArray = [{\u000a a: b,\u000a b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c: d\u000a}];\u000a\u000avar arrArray = [[\u000a a,\u000a b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c\u000a]];\u000a\u000avar objObject = {a:{\u000a a: b,\u000a b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c: d\u000a}};\u000a\u000a\u000aswitch (a) {\u000a case 'a':\u000a var a = 'b'; // ->\u000a break;\u000a case 'b':\u000a var a = 'b';\u000a break;\u000a case 'c':\u000a var a = 'b'; // <-\u000a break;\u000a case 'd':\u000a var a = 'b';\u000a break; // ->\u000a case 'f':\u000a var a = 'b';\u000a break;\u000a case 'g': {\u000a var a = 'b';\u000a break;\u000a }\u000a case 'z':\u000a default:\u000a break; // <-\u000a}\u000a\u000aa.b('hi')\u000a .c(a.b()) // <-\u000a .d(); // <-\u000a\u000aif ( a ) {\u000a if ( b ) {\u000ad.e(f) // ->\u000a .g() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a .h(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a\u000a i.j(m)\u000a .k() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a .l(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a\u000a n.o(p) // <-\u000a .q() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a .r(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a }\u000a}\u000a\u000avar a = b,\u000a c = function () {\u000a h = i; // ->\u000a j = k;\u000a l = m; // <-\u000a },\u000a e = {\u000a f: g,\u000a n: o,\u000a p: q\u000a },\u000a r = [\u000a s,\u000a t,\u000a u\u000a ];\u000a\u000avar a = function () {\u000ab = c; // ->\u000a d = e;\u000a f = g; // <-\u000a};\u000a\u000afunction c(a, b) {\u000a if (a || (a &&\u000a b)) { // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a return d;\u000a }\u000a}\u000a\u000aif ( a\u000a || b ) {\u000avar x; // ->\u000a var c,\u000a d = function(a,\u000a b) {\u000a a; // ->\u000a b;\u000a c; // <-\u000a }\u000a}\u000a\u000a\u000aa({\u000a d: 1\u000a});\u000a\u000aa(\u000a1\u000a);\u000a\u000aa(\u000a b({\u000a d: 1\u000a })\u000a);\u000a\u000aa(\u000a b(\u000a c({\u000a d: 1,\u000a e: 1,\u000a f: 1\u000a })\u000a )\u000a);\u000a\u000aa({ d: 1 });\u000a\u000aaa(\u000a b({ // NO ERROR: aligned with previous opening paren\u000a c: d,\u000a e: f,\u000a f: g\u000a })\u000a);\u000a\u000aaaaaaa(\u000a b,\u000a c,\u000a {\u000a d: a\u000a }\u000a);\u000a\u000aa(b, c,\u000a d, e,\u000a f, g // NO ERROR: alignment of arguments of callExpression not checked\u000a ); // NO ERROR: this has nothing to do with indentation, this is CallExpression spacing\u000a\u000aa(\u000a ); // NO ERROR: this has nothing to do with indentation, this is CallExpression spacing\u000a\u000aaaaaaa(\u000a b,\u000a c, {\u000a d: a\u000a }, {\u000a e: f\u000a }\u000a);\u000a\u000aa.b()\u000a .c(function(){\u000a var a;\u000a }).d.e;\u000a\u000aif (a == 'b') {\u000a if (c && d) e = f\u000a else g('h').i('j')\u000a}\u000a\u000aa = function (b, c) {\u000a return a(function () {\u000a var d = e\u000a var f = g\u000a var h = i\u000a\u000a if (!j) k('l', (m = n))\u000a if (o) p\u000a else if (q) r\u000a })\u000a}\u000a\u000avar a = function() {\u000a "b"\u000a .replace(/a/, "a")\u000a .replace(/bc?/, function(e) {\u000a return "b" + (e.f === 2 ? "c" : "f");\u000a })\u000a .replace(/d/, "d");\u000a};\u000a\u000a$(b)\u000a .on('a', 'b', function() { $(c).e('f'); })\u000a .on('g', 'h', function() { $(i).j('k'); });\u000a\u000aa\u000a .b('c',\u000a 'd'); // NO ERROR: this has nothing to do with indentation, this is CallExpression spacing\u000a\u000aa\u000a .b('c', [ 'd', function(e) {\u000a e++;\u000a }]);\u000a\u000avar a = function() {\u000a a++;\u000a b++; // <-\u000a c++; // <-\u000a },\u000a b;\u000a\u000avar b = [\u000a a,\u000a b,\u000a c\u000a ],\u000a c;\u000a\u000avar c = {\u000a a: 1,\u000a b: 2,\u000a c: 3\u000a },\u000a d;\u000a\u000a// holes in arrays indentation\u000ax = [\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1\u000a];\u000a\u000atry {\u000a a++;\u000a b++; // <-\u000ac++; // ->\u000a} catch (d) {\u000a e++;\u000a f++; // <-\u000ag++; // ->\u000a} finally {\u000a h++;\u000a i++; // <-\u000aj++; // ->\u000a}\u000a\u000aif (array.some(function(){\u000a return true;\u000a})) {\u000aa++; // ->\u000a b++;\u000a c++; // <-\u000a}\u000a\u000avar a = b.c(function() {\u000a d++;\u000a }),\u000a e;\u000a\u000aswitch (true) {\u000a case (a\u000a && b):\u000acase (c // ->\u000a&& d):\u000a case (e // <-\u000a && f):\u000a case (g\u000a&& h):\u000a var i = j; // <-\u000a var k = l;\u000a var m = n; // ->\u000a}\u000a\u000aif (a) {\u000a b();\u000a}\u000aelse {\u000ac(); // ->\u000a d();\u000a e(); // <-\u000a}\u000a\u000aif (a) b();\u000aelse {\u000ac(); // ->\u000a d();\u000a e(); // <-\u000a}\u000a\u000aif (a) {\u000a b();\u000a} else c();\u000a\u000aif (a) {\u000a b();\u000a}\u000aelse c();\u000a\u000aa();\u000a\u000aif( "very very long multi line" +\u000a "with weird indentation" ) {\u000a b();\u000aa(); // ->\u000a c(); // <-\u000a}\u000a\u000aa( "very very long multi line" +\u000a "with weird indentation", function() {\u000a b();\u000aa(); // ->\u000a c(); // <-\u000a});\u000a\u000aa = function(content, dom) {\u000a b();\u000a c(); // <-\u000ad(); // ->\u000a};\u000a\u000aa = function(content, dom) {\u000a b();\u000a c(); // <-\u000a d(); // ->\u000a };\u000a\u000aa = function(content, dom) {\u000a b(); // ->\u000a };\u000a\u000aa = function(content, dom) {\u000ab(); // ->\u000a };\u000a\u000aa('This is a terribly long description youll ' +\u000a 'have to read', function () {\u000a b();\u000a c();\u000a});\u000a\u000aif (\u000a array.some(function(){\u000a return true;\u000a })\u000a) {\u000aa++; // ->\u000a b++;\u000a c++; // <-\u000a}\u000a\u000afunction c(d) {\u000a return {\u000a e: function(f, g) {\u000a }\u000a };\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1:\u000a if (foo) {\u000a return 5;\u000a }\u000a }\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1:\u000a c;\u000a }\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1: c;\u000a }\u000a}\u000a\u000afunction test() {\u000a var a = 1;\u000a {\u000a a();\u000a }\u000a}\u000a\u000a{\u000a a();\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1:\u000a {\u000a a();\u000a }\u000a break;\u000a default:\u000a {\u000a b();\u000a }\u000a }\u000a}\u000a\u000aswitch (a) {\u000a default:\u000a if (b)\u000a c();\u000a}\u000a\u000afunction test(x) {\u000a switch (x) {\u000a case 1:\u000a return function() {\u000a var a = 5;\u000a return a;\u000a };\u000a }\u000a}\u000a\u000aswitch (a) {\u000a default:\u000a if (b)\u000a c();\u000a}\u000a ok 4862 indent-legacy invalid switch(value){\u000a case "1":\u000a a();\u000a break;\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a a();\u000a break;\u000a} ok 4863 indent-legacy invalid var x = 0 &&\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4864 indent-legacy invalid switch(value){\u000a case "1":\u000a a();\u000a break;\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a break;\u000a} ok 4865 indent-legacy invalid switch(value){\u000a case "1":\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a break;\u000a}\u000aswitch(value){\u000a case "1":\u000a break;\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a a();\u000a break;\u000a} ok 4866 indent-legacy invalid switch(value){\u000acase "1":\u000a a();\u000a break;\u000a case "2":\u000a break;\u000a default:\u000a break;\u000a} ok 4867 indent-legacy invalid var obj = {foo: 1, bar: 2};\u000awith (obj) {\u000aconsole.log(foo + bar);\u000a}\u000a ok 4868 indent-legacy invalid switch (a) {\u000acase '1':\u000ab();\u000abreak;\u000adefault:\u000ac();\u000abreak;\u000a}\u000a ok 4869 indent-legacy invalid var foo = function(){\u000a foo\u000a .bar\u000a} ok 4870 indent-legacy invalid var foo = function(){\u000a foo\u000a .bar\u000a} ok 4871 indent-legacy invalid var foo = () => {\u000a foo\u000a .bar\u000a} ok 4872 indent-legacy invalid TestClass.prototype.method = function () {\u000a return Promise.resolve(3)\u000a .then(function (x) {\u000a return x;\u000a });\u000a}; ok 4873 indent-legacy invalid while (a) \u000ab(); ok 4874 indent-legacy invalid for (;;) \u000ab(); ok 4875 indent-legacy invalid for (a in x) \u000ab(); ok 4876 indent-legacy invalid do \u000ab();\u000awhile(true) ok 4877 indent-legacy invalid if(true) \u000ab(); ok 4878 indent-legacy invalid var test = {\u000a a: 1,\u000a b: 2\u000a };\u000a ok 4879 indent-legacy invalid var a = function() {\u000a a++;\u000a b++;\u000a c++;\u000a },\u000a b;\u000a ok 4880 indent-legacy invalid var a = 1,\u000ab = 2,\u000ac = 3;\u000a ok 4881 indent-legacy invalid [a, b, \u000ac].forEach((index) => {\u000a index;\u000a});\u000a ok 4882 indent-legacy invalid [a, b, \u000ac].forEach(function(index){\u000a return index;\u000a});\u000a ok 4883 indent-legacy invalid [a, b, \u000ac].forEach(function(index){\u000a return index;\u000a});\u000a ok 4884 indent-legacy invalid [a, b, c].forEach((index) => {\u000a index;\u000a});\u000a ok 4885 indent-legacy invalid [a, b, c].forEach(function(index){\u000a return index;\u000a});\u000a ok 4886 indent-legacy invalid var x = ['a',\u000a 'b',\u000a 'c'\u000a]; ok 4887 indent-legacy invalid var x = [\u000a 'a',\u000a 'b',\u000a 'c'\u000a]; ok 4888 indent-legacy invalid var x = [\u000a 'a',\u000a 'b',\u000a 'c',\u000a'd']; ok 4889 indent-legacy invalid var x = [\u000a 'a',\u000a 'b',\u000a 'c'\u000a ]; ok 4890 indent-legacy invalid while (1 < 2)\u000aconsole.log('foo')\u000a console.log('bar') ok 4891 indent-legacy invalid function salutation () {\u000a switch (1) {\u000a case 0: return console.log('hi')\u000a case 1: return console.log('hey')\u000a }\u000a}\u000a ok 4892 indent-legacy invalid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth,\u000aheight, rotate; ok 4893 indent-legacy invalid switch (a) {\u000acase '1':\u000ab();\u000abreak;\u000adefault:\u000ac();\u000abreak;\u000a}\u000a ok 4894 indent-legacy invalid var geometry,\u000arotate; ok 4895 indent-legacy invalid var geometry,\u000a rotate; ok 4896 indent-legacy invalid var geometry,\u000a\u0009rotate; ok 4897 indent-legacy invalid let geometry,\u000a rotate; ok 4898 indent-legacy invalid if(true)\u000a if (true)\u000a if (true)\u000a console.log(val); ok 4899 indent-legacy invalid var a = {\u000a a: 1,\u000a b: 2\u000a} ok 4900 indent-legacy invalid var a = [\u000a a,\u000a b\u000a] ok 4901 indent-legacy invalid let a = [\u000a a,\u000a b\u000a] ok 4902 indent-legacy invalid var a = new Test({\u000a a: 1\u000a }),\u000a b = 4;\u000a ok 4903 indent-legacy invalid var a = new Test({\u000a a: 1\u000a }),\u000a b = 4;\u000aconst c = new Test({\u000a a: 1\u000a }),\u000a d = 4;\u000a ok 4904 indent-legacy invalid var abc = 5,\u000a c = 2,\u000a xyz = \u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4905 indent-legacy invalid var abc = \u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4906 indent-legacy invalid var path = require('path')\u000a , crypto = require('crypto')\u000a;\u000a ok 4907 indent-legacy invalid var a = 1\u000a ,b = 2\u000a; ok 4908 indent-legacy invalid class A{\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a} ok 4909 indent-legacy invalid var A = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a}; ok 4910 indent-legacy invalid var a = 1,\u000a B = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a }; ok 4911 indent-legacy invalid {\u000a if(a){\u000a foo();\u000a }\u000a else{\u000a bar();\u000a }\u000a}\u000a ok 4912 indent-legacy invalid {\u000a if(a){\u000a foo();\u000a }\u000a else\u000a bar();\u000a \u000a}\u000a ok 4913 indent-legacy invalid {\u000a if(a)\u000a foo();\u000a else\u000a bar();\u000a}\u000a ok 4914 indent-legacy invalid (function(){\u000a function foo(x) {\u000a return x + 1;\u000a }\u000a})(); ok 4915 indent-legacy invalid (function(){\u000a function foo(x) {\u000a return x + 1;\u000a }\u000a})(); ok 4916 indent-legacy invalid if(data) {\u000aconsole.log('hi');\u000a} ok 4917 indent-legacy invalid var ns = function(){\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}(x); ok 4918 indent-legacy invalid var obj = {\u000a foo: function() {\u000a return true;\u000a }()\u000a};\u000a ok 4919 indent-legacy invalid typeof function() {\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}(); ok 4920 indent-legacy invalid {\u000a\u0009!function(x) {\u000a\u0009\u0009\u0009\u0009return x + 1;\u000a\u0009}()\u000a}; ok 4921 indent-legacy invalid Buffer\u000a.toString() ok 4922 indent-legacy invalid Buffer\u000a .indexOf('a')\u000a.toString() ok 4923 indent-legacy invalid Buffer.\u000alength ok 4924 indent-legacy invalid Buffer.\u000a\u0009\u0009length ok 4925 indent-legacy invalid Buffer\u000a .foo\u000a .bar ok 4926 indent-legacy invalid if (foo) bar();\u000aelse if (baz) foobar();\u000a else if (qux) qux(); ok 4927 indent-legacy invalid if (foo) bar();\u000aelse if (baz) foobar();\u000a else qux(); ok 4928 indent-legacy invalid foo();\u000a if (baz) foobar();\u000a else qux(); ok 4929 indent-legacy invalid if (foo) bar();\u000aelse if (baz) foobar();\u000a else if (bip) {\u000a qux();\u000a } ok 4930 indent-legacy invalid if (foo) bar();\u000aelse if (baz) {\u000a foobar();\u000a } else if (boop) {\u000a qux();\u000a } ok 4931 indent-legacy invalid function foo(aaa,\u000a bbb, ccc, ddd) {\u000a bar();\u000a} ok 4932 indent-legacy invalid function foo(aaa, bbb,\u000a ccc, ddd) {\u000abar();\u000a} ok 4933 indent-legacy invalid function foo(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 4934 indent-legacy invalid function foo(aaa,\u000a bbb, ccc,\u000a ddd, eee, fff) {\u000a bar();\u000a} ok 4935 indent-legacy invalid function foo(aaa, bbb)\u000a{\u000abar();\u000a} ok 4936 indent-legacy invalid function foo(\u000aaaa,\u000a bbb) {\u000abar();\u000a} ok 4937 indent-legacy invalid var foo = function(aaa,\u000a bbb,\u000a ccc,\u000a ddd) {\u000a bar();\u000a} ok 4938 indent-legacy invalid var foo = function(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 4939 indent-legacy invalid var foo = function(aaa,\u000a bbb, ccc, ddd,\u000a eee, fff) {\u000a bar();\u000a} ok 4940 indent-legacy invalid var foo = function(\u000aaaa, bbb, ccc,\u000a ddd, eee) {\u000a bar();\u000a} ok 4941 indent-legacy invalid var foo = bar;\u000a\u0009\u0009\u0009var baz = qux; ok 4942 indent-legacy invalid function foo() {\u000a\u0009bar();\u000a baz();\u000a qux();\u000a} ok 4943 indent-legacy invalid function foo() {\u000a bar();\u000a\u0009\u0009} ok 4944 indent-legacy invalid function foo() {\u000a function bar() {\u000a baz();\u000a }\u000a} ok 4945 indent-legacy invalid function foo() {\u000a function bar(baz,\u000a qux) {\u000a foobar();\u000a }\u000a} ok 4946 indent-legacy invalid function foo() {\u000a var bar = function(baz,\u000a qux) {\u000a foobar();\u000a };\u000a} ok 4947 indent-legacy invalid {\u000a try {\u000a }\u000acatch (err) {\u000a }\u000afinally {\u000a }\u000a} ok 4948 indent-legacy invalid {\u000a do {\u000a }\u000awhile (true)\u000a} ok 4949 indent-legacy invalid function foo() {\u000a return (\u000a 1\u000a )\u000a} ok 4950 indent-legacy invalid function foo() {\u000a return (\u000a 1\u000a );\u000a} ok 4951 indent-legacy invalid function test(){\u000a switch(length){\u000a case 1: return function(a){\u000a return fn.call(that, a);\u000a };\u000a }\u000a} ok 4952 indent-legacy invalid function foo() {\u000a return 1\u000a} ok 4953 indent-legacy invalid function foo() {\u000a return 1;\u000a} ok 4954 indent-legacy invalid foo(\u000abar,\u000a baz,\u000a qux); ok 4955 indent-legacy invalid foo(\u000a\u0009bar,\u000a\u0009baz); ok 4956 indent-legacy invalid foo(bar,\u000a\u0009\u0009baz,\u000a\u0009\u0009qux); ok 4957 indent-legacy invalid foo(bar, baz,\u000a qux); ok 4958 indent-legacy invalid foo(\u000a bar,\u000a baz); ok 4959 indent-legacy invalid foo(bar,\u000a 1 + 2,\u000a !baz,\u000a new Car('!')\u000a); ok 4960 indent-legacy invalid return (\u000a foo\u000a ); ok 4961 indent-legacy invalid return (\u000a foo\u000a ) ok 4962 indent-legacy invalid if (foo) {\u000a /* comment */bar();\u000a} ok 4963 indent-legacy invalid foo('bar',\u000a /** comment */{\u000a ok: true }); ok 4964 indent-legacy invalid var foo = [\u000a bar,\u000a baz\u000a ] ok 4965 indent-legacy invalid var foo = [bar,\u000abaz,\u000a qux\u000a] ok 4966 indent-legacy invalid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 4967 indent-legacy invalid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 4968 indent-legacy invalid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 4969 indent-legacy invalid var foo = [bar,\u000a baz, qux\u000a] ok 4970 indent-legacy invalid var foo = [\u000a { bar: 1,\u000a baz: 2 },\u000a { bar: 3,\u000a qux: 4 }\u000a] ok 4971 indent-legacy invalid var foo = {\u000a bar: 1,\u000a baz: 2\u000a}; ok 4972 indent-legacy invalid var quux = { foo: 1, bar: 2,\u000abaz: 3 } ok 4973 indent-legacy invalid function foo() {\u000a [\u000a foo\u000a ]\u000a} ok 4974 indent-legacy invalid echo = spawn('cmd.exe',\u000a ['foo', 'bar',\u000a 'baz']); ok 4975 indent valid bridge.callHandler(\u000a 'getAppVersion', 'test23', function(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a }\u000a); ok 4976 indent valid bridge.callHandler(\u000a 'getAppVersion', 'test23', function(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a }); ok 4977 indent valid bridge.callHandler(\u000a 'getAppVersion',\u000a null,\u000a function responseCallback(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a }\u000a); ok 4978 indent valid bridge.callHandler(\u000a 'getAppVersion',\u000a null,\u000a function responseCallback(responseData) {\u000a window.ah.mobileAppVersion = responseData;\u000a }); ok 4979 indent valid function doStuff(keys) {\u000a _.forEach(\u000a keys,\u000a key => {\u000a doSomething(key);\u000a }\u000a );\u000a} ok 4980 indent valid example(\u000a function () {\u000a console.log('example');\u000a }\u000a); ok 4981 indent valid let foo = somethingList\u000a .filter(x => {\u000a return x;\u000a })\u000a .map(x => {\u000a return 100 * x;\u000a }); ok 4982 indent valid var x = 0 &&\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 4983 indent valid var x = 0 &&\u000a\u0009{\u000a\u0009\u0009a: 1,\u000a\u0009\u0009b: 2\u000a\u0009}; ok 4984 indent valid var x = 0 &&\u000a {\u000a a: 1,\u000a b: 2\u000a }||\u000a {\u000a c: 3,\u000a d: 4\u000a }; ok 4985 indent valid var x = [\u000a 'a',\u000a 'b',\u000a 'c'\u000a]; ok 4986 indent valid var x = ['a',\u000a 'b',\u000a 'c',\u000a]; ok 4987 indent valid var x = 0 && 1; ok 4988 indent valid var x = 0 && { a: 1, b: 2 }; ok 4989 indent valid var x = 0 &&\u000a (\u000a 1\u000a ); ok 4990 indent valid require('http').request({hostname: 'localhost',\u000a port: 80}, function(res) {\u000a res.end();\u000a}); ok 4991 indent valid function test() {\u000a return client.signUp(email, PASSWORD, { preVerified: true })\u000a .then(function (result) {\u000a // hi\u000a })\u000a .then(function () {\u000a return FunctionalHelpers.clearBrowserState(self, {\u000a contentServer: true,\u000a contentServer1: true\u000a });\u000a });\u000a} ok 4992 indent valid it('should... some lengthy test description that is forced to be' +\u000a 'wrapped into two lines since the line length limit is set', () => {\u000a expect(true).toBe(true);\u000a}); ok 4993 indent valid function test() {\u000a return client.signUp(email, PASSWORD, { preVerified: true })\u000a .then(function (result) {\u000a var x = 1;\u000a var y = 1;\u000a }, function(err){\u000a var o = 1 - 2;\u000a var y = 1 - 2;\u000a return true;\u000a })\u000a} ok 4994 indent valid import foo from "foo"\u000a\u000a;(() => {})() ok 4995 indent valid function test() {\u000a return client.signUp(email, PASSWORD, { preVerified: true })\u000a .then(function (result) {\u000a var x = 1;\u000a var y = 1;\u000a }, function(err){\u000a var o = 1 - 2;\u000a var y = 1 - 2;\u000a return true;\u000a });\u000a} ok 4996 indent valid // hi ok 4997 indent valid var Command = function() {\u000a var fileList = [],\u000a files = []\u000a\u000a files.concat(fileList)\u000a}; ok 4998 indent valid ok 4999 indent valid if(data) {\u000a console.log('hi');\u000a b = true;}; ok 5000 indent valid foo = () => {\u000a console.log('hi');\u000a return true;}; ok 5001 indent valid function test(data) {\u000a console.log('hi');\u000a return true;}; ok 5002 indent valid var test = function(data) {\u000a console.log('hi');\u000a}; ok 5003 indent valid arr.forEach(function(data) {\u000a otherdata.forEach(function(zero) {\u000a console.log('hi');\u000a }) }); ok 5004 indent valid a = [\u000a ,3\u000a] ok 5005 indent valid [\u000a ['gzip', 'gunzip'],\u000a ['gzip', 'unzip'],\u000a ['deflate', 'inflate'],\u000a ['deflateRaw', 'inflateRaw'],\u000a].forEach(function(method) {\u000a console.log(method);\u000a}); ok 5006 indent valid test(123, {\u000a bye: {\u000a hi: [1,\u000a {\u000a b: 2\u000a }\u000a ]\u000a }\u000a}); ok 5007 indent valid var xyz = 2,\u000a lmn = [\u000a {\u000a a: 1\u000a }\u000a ]; ok 5008 indent valid lmnn = [{\u000a a: 1\u000a},\u000a{\u000a b: 2\u000a}, {\u000a x: 2\u000a}]; ok 5009 indent valid [{\u000a foo: 1\u000a}, {\u000a foo: 2\u000a}, {\u000a foo: 3\u000a}] ok 5010 indent valid foo([\u000a bar\u000a], [\u000a baz\u000a], [\u000a qux\u000a]); ok 5011 indent valid abc({\u000a test: [\u000a [\u000a c,\u000a xyz,\u000a 2\u000a ].join(',')\u000a ]\u000a}); ok 5012 indent valid abc = {\u000a test: [\u000a [\u000a c,\u000a xyz,\u000a 2\u000a ]\u000a ]\u000a}; ok 5013 indent valid abc(\u000a {\u000a a: 1,\u000a b: 2\u000a }\u000a); ok 5014 indent valid abc({\u000a a: 1,\u000a b: 2\u000a}); ok 5015 indent valid var abc =\u000a [\u000a c,\u000a xyz,\u000a {\u000a a: 1,\u000a b: 2\u000a }\u000a ]; ok 5016 indent valid var abc = [\u000a c,\u000a xyz,\u000a {\u000a a: 1,\u000a b: 2\u000a }\u000a]; ok 5017 indent valid var abc = 5,\u000a c = 2,\u000a xyz =\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 5018 indent valid var\u000a x = {\u000a a: 1,\u000a },\u000a y = {\u000a b: 2\u000a } ok 5019 indent valid const\u000a x = {\u000a a: 1,\u000a },\u000a y = {\u000a b: 2\u000a } ok 5020 indent valid let\u000a x = {\u000a a: 1,\u000a },\u000a y = {\u000a b: 2\u000a } ok 5021 indent valid var foo = { a: 1 }, bar = {\u000a b: 2\u000a}; ok 5022 indent valid var foo = { a: 1 }, bar = {\u000a b: 2\u000a },\u000a baz = {\u000a c: 3\u000a } ok 5023 indent valid const {\u000a foo\u000a } = 1,\u000a bar = 2 ok 5024 indent valid var foo = 1,\u000a bar =\u000a 2 ok 5025 indent valid var foo = 1,\u000a bar\u000a = 2 ok 5026 indent valid var foo\u000a = 1,\u000a bar\u000a = 2 ok 5027 indent valid var foo\u000a =\u000a 1,\u000a bar\u000a =\u000a 2 ok 5028 indent valid var foo\u000a = (1),\u000a bar\u000a = (2) ok 5029 indent valid let foo = 'foo',\u000a bar = bar;\u000aconst a = 'a',\u000a b = 'b'; ok 5030 indent valid let foo = 'foo',\u000a bar = bar // <-- no semicolon here\u000aconst a = 'a',\u000a b = 'b' // <-- no semicolon here ok 5031 indent valid var foo = 1,\u000a bar = 2,\u000a baz = 3\u000a; ok 5032 indent valid var foo = 1,\u000a bar = 2,\u000a baz = 3\u000a ; ok 5033 indent valid var foo = 'foo',\u000a bar = bar; ok 5034 indent valid var foo = 'foo',\u000a bar = 'bar' // <-- no semicolon here ok 5035 indent valid let foo = 1,\u000a bar = 2,\u000a baz ok 5036 indent valid let\u000a foo ok 5037 indent valid let foo = 1,\u000a bar =\u000a 2 ok 5038 indent valid var abc =\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 5039 indent valid var a = new abc({\u000a a: 1,\u000a b: 2\u000a }),\u000a b = 2; ok 5040 indent valid var a = 2,\u000a c = {\u000a a: 1,\u000a b: 2\u000a },\u000a b = 2; ok 5041 indent valid var x = 2,\u000a y = {\u000a a: 1,\u000a b: 2\u000a },\u000a b = 2; ok 5042 indent valid var e = {\u000a a: 1,\u000a b: 2\u000a },\u000a b = 2; ok 5043 indent valid var a = {\u000a a: 1,\u000a b: 2\u000a}; ok 5044 indent valid function test() {\u000a if (true ||\u000a false){\u000a console.log(val);\u000a }\u000a} ok 5045 indent valid var foo = bar ||\u000a !(\u000a baz\u000a ); ok 5046 indent valid for (var foo = 1;\u000a foo < 10;\u000a foo++) {} ok 5047 indent valid for (\u000a var foo = 1;\u000a foo < 10;\u000a foo++\u000a) {} ok 5048 indent valid for (var val in obj)\u000a if (true)\u000a console.log(val); ok 5049 indent valid if(true)\u000a if (true)\u000a if (true)\u000a console.log(val); ok 5050 indent valid function hi(){ var a = 1;\u000a y++; x++;\u000a} ok 5051 indent valid for(;length > index; index++)if(NO_HOLES || index in self){\u000a x++;\u000a} ok 5052 indent valid function test(){\u000a switch(length){\u000a case 1: return function(a){\u000a return fn.call(that, a);\u000a };\u000a }\u000a} ok 5053 indent valid var geometry = 2,\u000arotate = 2; ok 5054 indent valid var geometry,\u000a rotate; ok 5055 indent valid var geometry,\u000a\u0009rotate; ok 5056 indent valid var geometry,\u000a rotate; ok 5057 indent valid var geometry,\u000a rotate; ok 5058 indent valid let geometry,\u000a rotate; ok 5059 indent valid const geometry = 2,\u000a rotate = 3; ok 5060 indent valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth,\u000a height, rotate; ok 5061 indent valid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth; ok 5062 indent valid if (1 < 2){\u000a//hi sd\u000a} ok 5063 indent valid while (1 < 2){\u000a //hi sd\u000a} ok 5064 indent valid while (1 < 2) console.log('hi'); ok 5065 indent valid [a, boop,\u000a c].forEach((index) => {\u000a index;\u000a}); ok 5066 indent valid [a, b,\u000a c].forEach(function(index){\u000a return index;\u000a}); ok 5067 indent valid [a, b, c].forEach((index) => {\u000a index;\u000a}); ok 5068 indent valid [a, b, c].forEach(function(index){\u000a return index;\u000a}); ok 5069 indent valid (foo)\u000a .bar([\u000a baz\u000a ]); ok 5070 indent valid switch (x) {\u000a case "foo":\u000a a();\u000a break;\u000a case "bar":\u000a switch (y) {\u000a case "1":\u000a break;\u000a case "2":\u000a a = 6;\u000a break;\u000a }\u000a case "test":\u000a break;\u000a} ok 5071 indent valid switch (x) {\u000a case "foo":\u000a a();\u000a break;\u000a case "bar":\u000a switch (y) {\u000a case "1":\u000a break;\u000a case "2":\u000a a = 6;\u000a break;\u000a }\u000a case "test":\u000a break;\u000a} ok 5072 indent valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a switch(x){\u000a case '1':\u000a break;\u000a case '2':\u000a a = 6;\u000a break;\u000a }\u000a} ok 5073 indent valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a if(x){\u000a a = 2;\u000a }\u000a else{\u000a a = 6;\u000a }\u000a} ok 5074 indent valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a if(x){\u000a a = 2;\u000a }\u000a else\u000a a = 6;\u000a} ok 5075 indent valid switch (a) {\u000acase "foo":\u000a a();\u000a break;\u000acase "bar":\u000a a(); break;\u000acase "baz":\u000a a(); break;\u000a} ok 5076 indent valid switch (0) {\u000a} ok 5077 indent valid function foo() {\u000a var a = "a";\u000a switch(a) {\u000a case "a":\u000a return "A";\u000a case "b":\u000a return "B";\u000a }\u000a}\u000afoo(); ok 5078 indent valid switch(value){\u000a case "1":\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a a();\u000a break;\u000a}\u000aswitch(value){\u000a case "1":\u000a a();\u000a break;\u000a case "2":\u000a break;\u000a default:\u000a break;\u000a} ok 5079 indent valid var obj = {foo: 1, bar: 2};\u000awith (obj) {\u000a console.log(foo + bar);\u000a} ok 5080 indent valid if (a) {\u000a (1 + 2 + 3); // no error on this line\u000a} ok 5081 indent valid switch(value){ default: a(); break; } ok 5082 indent valid import {addons} from 'react/addons'\u000aimport React from 'react' ok 5083 indent valid import {\u000a foo,\u000a bar,\u000a baz\u000a} from 'qux'; ok 5084 indent valid var foo = 0, bar = 0; baz = 0;\u000aexport {\u000a foo,\u000a bar,\u000a baz\u000a} from 'qux'; ok 5085 indent valid var a = 1,\u000a b = 2,\u000a c = 3; ok 5086 indent valid var a = 1\u000a ,b = 2\u000a ,c = 3; ok 5087 indent valid while (1 < 2) console.log('hi') ok 5088 indent valid function salutation () {\u000a switch (1) {\u000a case 0: return console.log('hi')\u000a case 1: return console.log('hey')\u000a }\u000a} ok 5089 indent valid var items = [\u000a {\u000a foo: 'bar'\u000a }\u000a]; ok 5090 indent valid const a = 1,\u000a b = 2;\u000aconst items1 = [\u000a {\u000a foo: 'bar'\u000a }\u000a];\u000aconst items2 = Items(\u000a {\u000a foo: 'bar'\u000a }\u000a); ok 5091 indent valid const geometry = 2,\u000a rotate = 3;\u000avar a = 1,\u000a b = 2;\u000alet light = true,\u000a shadow = false; ok 5092 indent valid const abc = 5,\u000a c = 2,\u000a xyz =\u000a {\u000a a: 1,\u000a b: 2\u000a };\u000alet abc2 = 5,\u000a c2 = 2,\u000a xyz2 =\u000a {\u000a a: 1,\u000a b: 2\u000a };\u000avar abc3 = 5,\u000a c3 = 2,\u000a xyz3 =\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 5093 indent valid module.exports = {\u000a 'Unit tests':\u000a {\u000a rootPath: './',\u000a environment: 'node',\u000a tests:\u000a [\u000a 'test/test-*.js'\u000a ],\u000a sources:\u000a [\u000a '*.js',\u000a 'test/**.js'\u000a ]\u000a }\u000a}; ok 5094 indent valid foo =\u000a bar; ok 5095 indent valid foo = (\u000a bar\u000a); ok 5096 indent valid var path = require('path')\u000a , crypto = require('crypto')\u000a ; ok 5097 indent valid var a = 1\u000a ,b = 2\u000a ; ok 5098 indent valid export function create (some,\u000a argument) {\u000a return Object.create({\u000a a: some,\u000a b: argument\u000a });\u000a}; ok 5099 indent valid export function create (id, xfilter, rawType,\u000a width=defaultWidth, height=defaultHeight,\u000a footerHeight=defaultFooterHeight,\u000a padding=defaultPadding) {\u000a // ... function body, indented two spaces\u000a} ok 5100 indent valid var obj = {\u000a foo: function () {\u000a return new p()\u000a .then(function (ok) {\u000a return ok;\u000a }, function () {\u000a // ignore things\u000a });\u000a }\u000a}; ok 5101 indent valid a.b()\u000a .c(function(){\u000a var a;\u000a }).d.e; ok 5102 indent valid const YO = 'bah',\u000a TE = 'mah'\u000a\u000avar res,\u000a a = 5,\u000a b = 4 ok 5103 indent valid const YO = 'bah',\u000a TE = 'mah'\u000a\u000avar res,\u000a a = 5,\u000a b = 4\u000a\u000aif (YO) console.log(TE) ok 5104 indent valid var foo = 'foo',\u000a bar = 'bar',\u000a baz = function() {\u000a\u000a }\u000a\u000afunction hello () {\u000a\u000a} ok 5105 indent valid var obj = {\u000a send: function () {\u000a return P.resolve({\u000a type: 'POST'\u000a })\u000a .then(function () {\u000a return true;\u000a }, function () {\u000a return false;\u000a });\u000a }\u000a}; ok 5106 indent valid var obj = {\u000a send: function () {\u000a return P.resolve({\u000a type: 'POST'\u000a })\u000a .then(function () {\u000a return true;\u000a }, function () {\u000a return false;\u000a });\u000a }\u000a}; ok 5107 indent valid const someOtherFunction = argument => {\u000a console.log(argument);\u000a },\u000a someOtherValue = 'someOtherValue'; ok 5108 indent valid [\u000a 'a',\u000a 'b'\u000a].sort().should.deepEqual([\u000a 'x',\u000a 'y'\u000a]); ok 5109 indent valid var a = 1,\u000a B = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a }; ok 5110 indent valid var a = 1,\u000a B =\u000a class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a },\u000a c = 3; ok 5111 indent valid class A{\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a} ok 5112 indent valid var A = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a} ok 5113 indent valid var a = {\u000a some: 1\u000a , name: 2\u000a}; ok 5114 indent valid a.c = {\u000a aa: function() {\u000a 'test1';\u000a return 'aa';\u000a }\u000a , bb: function() {\u000a return this.bb();\u000a }\u000a}; ok 5115 indent valid var a =\u000a{\u000a actions:\u000a [\u000a {\u000a name: 'compile'\u000a }\u000a ]\u000a}; ok 5116 indent valid var a =\u000a[\u000a {\u000a name: 'compile'\u000a }\u000a]; ok 5117 indent valid [[\u000a], function(\u000a foo\u000a) {}\u000a] ok 5118 indent valid define([\u000a 'foo'\u000a], function(\u000a bar\u000a) {\u000a baz;\u000a}\u000a) ok 5119 indent valid const func = function (opts) {\u000a return Promise.resolve()\u000a .then(() => {\u000a [\u000a 'ONE', 'TWO'\u000a ].forEach(command => { doSomething(); });\u000a });\u000a}; ok 5120 indent valid const func = function (opts) {\u000a return Promise.resolve()\u000a .then(() => {\u000a [\u000a 'ONE', 'TWO'\u000a ].forEach(command => { doSomething(); });\u000a });\u000a}; ok 5121 indent valid var haveFun = function () {\u000a SillyFunction(\u000a {\u000a value: true,\u000a },\u000a {\u000a _id: true,\u000a }\u000a );\u000a}; ok 5122 indent valid var haveFun = function () {\u000a new SillyFunction(\u000a {\u000a value: true,\u000a },\u000a {\u000a _id: true,\u000a }\u000a );\u000a}; ok 5123 indent valid let object1 = {\u000a doThing() {\u000a return _.chain([])\u000a .map(v => (\u000a {\u000a value: true,\u000a }\u000a ))\u000a .value();\u000a }\u000a}; ok 5124 indent valid var foo = {\u000a bar: 1,\u000a baz: {\u000a qux: 2\u000a }\u000a },\u000a bar = 1; ok 5125 indent valid class Foo\u000a extends Bar {\u000a baz() {}\u000a} ok 5126 indent valid class Foo extends\u000a Bar {\u000a baz() {}\u000a} ok 5127 indent valid class Foo extends\u000a (\u000a Bar\u000a ) {\u000a baz() {}\u000a} ok 5128 indent valid fs.readdirSync(path.join(__dirname, '../rules')).forEach(name => {\u000a files[name] = foo;\u000a}); ok 5129 indent valid (function(){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(); ok 5130 indent valid (function(){\u000a function foo(x) {\u000a return x + 1;\u000a }\u000a})(); ok 5131 indent valid (function(x, y){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(1, 2); ok 5132 indent valid (function(){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a}()); ok 5133 indent valid !function(){\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a}(); ok 5134 indent valid !function(){\u000a\u0009\u0009\u0009function foo(x) {\u000a\u0009\u0009\u0009\u0009return x + 1;\u000a\u0009\u0009\u0009}\u000a}(); ok 5135 indent valid var out = function(){\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}; ok 5136 indent valid var ns = function(){\u000afunction fooVar(x) {\u000a return x + 1;\u000a}\u000a}(); ok 5137 indent valid ns = function(){\u000afunction fooVar(x) {\u000a return x + 1;\u000a}\u000a}(); ok 5138 indent valid var ns = (function(){\u000afunction fooVar(x) {\u000a return x + 1;\u000a}\u000a}(x)); ok 5139 indent valid var ns = (function(){\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}(x)); ok 5140 indent valid var obj = {\u000a foo: function() {\u000a return true;\u000a }\u000a}; ok 5141 indent valid while (\u000a function() {\u000a return true;\u000a }()) {\u000a\u000a x = x + 1;\u000a}; ok 5142 indent valid (() => {\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(); ok 5143 indent valid function foo() {\u000a} ok 5144 indent valid ;(() => {\u000afunction foo(x) {\u000a return x + 1;\u000a}\u000a})(); ok 5145 indent valid if(data) {\u000a console.log('hi');\u000a} ok 5146 indent valid Buffer.length ok 5147 indent valid Buffer\u000a .indexOf('a')\u000a .toString() ok 5148 indent valid Buffer.\u000a length ok 5149 indent valid Buffer\u000a .foo\u000a .bar ok 5150 indent valid Buffer\u000a\u0009.foo\u000a\u0009.bar ok 5151 indent valid Buffer\u000a .foo\u000a .bar ok 5152 indent valid (\u000a foo\u000a .bar\u000a) ok 5153 indent valid (\u000a (\u000a foo\u000a .bar\u000a )\u000a) ok 5154 indent valid (\u000a foo\u000a)\u000a .bar ok 5155 indent valid (\u000a (\u000a foo\u000a )\u000a .bar\u000a) ok 5156 indent valid (\u000a (\u000a foo\u000a )\u000a [\u000a (\u000a bar\u000a )\u000a ]\u000a) ok 5157 indent valid (\u000a foo[bar]\u000a)\u000a .baz ok 5158 indent valid (\u000a (foo.bar)\u000a)\u000a .baz ok 5159 indent valid MemberExpression\u000a.can\u000a .be\u000a .turned\u000a .off(); ok 5160 indent valid foo = bar.baz()\u000a .bip(); ok 5161 indent valid function foo() {\u000a new\u000a .target\u000a} ok 5162 indent valid function foo() {\u000a new.\u000a target\u000a} ok 5163 indent valid if (foo) {\u000a bar();\u000a} else if (baz) {\u000a foobar();\u000a} else if (qux) {\u000a qux();\u000a} ok 5164 indent valid function foo(aaa,\u000a bbb, ccc, ddd) {\u000a bar();\u000a} ok 5165 indent valid function foo(aaa, bbb,\u000a ccc, ddd) {\u000a bar();\u000a} ok 5166 indent valid function foo(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 5167 indent valid function foo(aaa,\u000a bbb, ccc,\u000a ddd, eee, fff) {\u000a bar();\u000a} ok 5168 indent valid function foo(aaa, bbb)\u000a{\u000a bar();\u000a} ok 5169 indent valid function foo(\u000a aaa,\u000a bbb) {\u000a bar();\u000a} ok 5170 indent valid var foo = function(aaa,\u000a bbb,\u000a ccc,\u000a ddd) {\u000abar();\u000a} ok 5171 indent valid var foo = function(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 5172 indent valid var foo = function(aaa,\u000a bbb, ccc, ddd,\u000a eee, fff) {\u000a bar();\u000a} ok 5173 indent valid var foo = function(\u000a aaa, bbb, ccc,\u000a ddd, eee) {\u000a bar();\u000a} ok 5174 indent valid foo.bar(\u000a baz, qux, function() {\u000a qux;\u000a }\u000a); ok 5175 indent valid function foo() {\u000a bar();\u000a \u0009baz();\u000a\u0009 \u0009\u0009\u0009 \u0009\u0009\u0009 \u0009 \u0009qux();\u000a} ok 5176 indent valid function foo() {\u000a function bar() {\u000a baz();\u000a }\u000a} ok 5177 indent valid function foo() {\u000a bar();\u000a \u0009\u0009} ok 5178 indent valid function foo() {\u000a function bar(baz,\u000a qux) {\u000a foobar();\u000a }\u000a} ok 5179 indent valid ((\u000a foo\u000a)) ok 5180 indent valid foo\u000a ? bar\u000a : baz ok 5181 indent valid foo = (bar ?\u000a baz :\u000a qux\u000a); ok 5182 indent valid [\u000a foo ?\u000a bar :\u000a baz,\u000a qux\u000a]; ok 5183 indent valid foo();\u000a// Line\u000a/* multiline\u000a Line */\u000abar();\u000a// trailing comment ok 5184 indent valid switch (foo) {\u000a case bar:\u000a baz();\u000a // call the baz function\u000a} ok 5185 indent valid switch (foo) {\u000a case bar:\u000a baz();\u000a // no default\u000a} ok 5186 indent valid [\u000a // no elements\u000a] ok 5187 indent valid var {\u000a foo,\u000a bar,\u000a baz: qux,\u000a foobar: baz = foobar\u000a} = qux; ok 5188 indent valid var [\u000a foo,\u000a bar,\u000a baz,\u000a foobar = baz\u000a] = qux; ok 5189 indent valid const {\u000a a\u000a}\u000a=\u000a{\u000a a: 1\u000a} ok 5190 indent valid const {\u000a a\u000a} = {\u000a a: 1\u000a} ok 5191 indent valid const\u000a {\u000a a\u000a } = {\u000a a: 1\u000a }; ok 5192 indent valid const\u000a foo = {\u000a bar: 1\u000a } ok 5193 indent valid const [\u000a a\u000a] = [\u000a 1\u000a] ok 5194 indent valid var folder = filePath\u000a .foo()\u000a .bar; ok 5195 indent valid for (const foo of bar)\u000a baz(); ok 5196 indent valid var x = () =>\u000a 5; ok 5197 indent valid (\u000a foo\u000a)(\u000a bar\u000a) ok 5198 indent valid (() =>\u000a foo\u000a)(\u000a bar\u000a) ok 5199 indent valid (() => {\u000a foo();\u000a})(\u000a bar\u000a) ok 5200 indent valid ({code:\u000a "foo.bar();"}) ok 5201 indent valid ({code:\u000a"foo.bar();"}) ok 5202 indent valid ({\u000a foo:\u000a bar\u000a}) ok 5203 indent valid ({\u000a [foo]:\u000a bar\u000a}) ok 5204 indent valid switch (foo) {\u000a // comment\u000a case study:\u000a // comment\u000a bar();\u000a case closed:\u000a /* multiline comment\u000a */\u000a} ok 5205 indent valid switch (foo) {\u000a // comment\u000a case study:\u000a // the comment can also be here\u000a case closed:\u000a} ok 5206 indent valid foo && (\u000a bar\u000a) ok 5207 indent valid foo && ((\u000a bar\u000a)) ok 5208 indent valid foo &&\u000a (\u000a bar\u000a ) ok 5209 indent valid foo &&\u000a !bar(\u000a ) ok 5210 indent valid foo &&\u000a ![].map(() => {\u000a bar();\u000a }) ok 5211 indent valid foo =\u000a bar; ok 5212 indent valid function foo() {\u000a var bar = function(baz,\u000a qux) {\u000a foobar();\u000a };\u000a} ok 5213 indent valid function foo() {\u000a return (bar === 1 || bar === 2 &&\u000a (/Function/.test(grandparent.type))) &&\u000a directives(parent).indexOf(node) >= 0;\u000a} ok 5214 indent valid function foo() {\u000a return (foo === bar || (\u000a baz === qux && (\u000a foo === foo ||\u000a bar === bar ||\u000a baz === baz\u000a )\u000a ))\u000a} ok 5215 indent valid if (\u000a foo === 1 ||\u000a bar === 1 ||\u000a // comment\u000a (baz === 1 && qux === 1)\u000a) {} ok 5216 indent valid foo =\u000a (bar + baz); ok 5217 indent valid function foo() {\u000a return (bar === 1 || bar === 2) &&\u000a (z === 3 || z === 4);\u000a} ok 5218 indent valid /* comment */ if (foo) {\u000a bar();\u000a} ok 5219 indent valid if (foo) {\u000a bar();\u000a// Otherwise, if foo is false, do baz.\u000a// baz is very important.\u000a} else {\u000a baz();\u000a} ok 5220 indent valid function foo() {\u000a return ((bar === 1 || bar === 2) &&\u000a (z === 3 || z === 4));\u000a} ok 5221 indent valid foo(\u000a bar,\u000a baz,\u000a qux\u000a); ok 5222 indent valid foo(\u000a\u0009bar,\u000a\u0009baz,\u000a\u0009qux\u000a); ok 5223 indent valid foo(bar,\u000a baz,\u000a qux); ok 5224 indent valid foo(\u000abar,\u000abaz,\u000aqux\u000a); ok 5225 indent valid foo(bar,\u000a baz,\u000a qux\u000a); ok 5226 indent valid foo(bar, baz,\u000a qux, barbaz,\u000a barqux, bazqux); ok 5227 indent valid foo(bar,\u000a 1 + 2,\u000a !baz,\u000a new Car('!')\u000a); ok 5228 indent valid foo(\u000a (bar)\u000a); ok 5229 indent valid foo(\u000a (bar)\u000a); ok 5230 indent valid var foo = function() {\u000a return bar(\u000a [{\u000a }].concat(baz)\u000a );\u000a}; ok 5231 indent valid return (\u000a foo\u000a); ok 5232 indent valid return (\u000a foo\u000a) ok 5233 indent valid var foo = [\u000a bar,\u000a baz\u000a] ok 5234 indent valid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 5235 indent valid var foo = [bar,\u000abaz,\u000aqux\u000a] ok 5236 indent valid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 5237 indent valid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 5238 indent valid var foo = [bar,\u000a baz, qux\u000a] ok 5239 indent valid var foo = [\u000a { bar: 1,\u000a baz: 2 },\u000a { bar: 3,\u000a baz: 4 }\u000a] ok 5240 indent valid var foo = {\u000abar: 1,\u000abaz: 2\u000a}; ok 5241 indent valid var foo = { foo: 1, bar: 2,\u000a baz: 3 } ok 5242 indent valid var foo = [\u000a {\u000a foo: 1\u000a }\u000a] ok 5243 indent valid function foo() {\u000a [\u000a foo\u000a ]\u000a} ok 5244 indent valid [\u000a] ok 5245 indent valid [\u000a] ok 5246 indent valid {\u000a} ok 5247 indent valid {\u000a} ok 5248 indent valid var foo = [\u000a [\u000a 1\u000a ]\u000a] ok 5249 indent valid var foo = [ 1,\u000a [\u000a 2\u000a ]\u000a]; ok 5250 indent valid var foo = bar(1,\u000a [ 2,\u000a 3\u000a ]\u000a); ok 5251 indent valid var foo =\u000a [\u000a ]() ok 5252 indent valid const lambda = foo => {\u000a Object.assign({},\u000a filterName,\u000a {\u000a display\u000a }\u000a );\u000a} ok 5253 indent valid const lambda = foo => {\u000a Object.assign({},\u000a filterName,\u000a {\u000a display\u000a }\u000a );\u000a} ok 5254 indent valid var foo = function() {\u000a\u0009window.foo('foo',\u000a\u0009\u0009{\u000a\u0009\u0009\u0009foo: 'bar',\u000a\u0009\u0009\u0009bar: {\u000a\u0009\u0009\u0009\u0009foo: 'bar'\u000a\u0009\u0009\u0009}\u000a\u0009\u0009}\u000a\u0009);\u000a} ok 5255 indent valid echo = spawn('cmd.exe',\u000a ['foo', 'bar',\u000a 'baz']); ok 5256 indent valid if (foo)\u000a bar();\u000a// Otherwise, if foo is false, do baz.\u000a// baz is very important.\u000aelse {\u000a baz();\u000a} ok 5257 indent valid if (\u000a foo && bar ||\u000a baz && qux // This line is ignored because BinaryExpressions are not checked.\u000a) {\u000a qux();\u000a} ok 5258 indent valid [\u000a] || [\u000a] ok 5259 indent valid (\u000a [\u000a ] || [\u000a ]\u000a) ok 5260 indent valid 1\u000a+ (\u000a 1\u000a) ok 5261 indent valid (\u000a foo && (\u000a bar ||\u000a baz\u000a )\u000a) ok 5262 indent valid foo\u000a || (\u000a bar\u000a ) ok 5263 indent valid foo\u000a || (\u000a bar\u000a ) ok 5264 indent valid var foo =\u000a 1; ok 5265 indent valid var foo = 1,\u000a bar =\u000a 2; ok 5266 indent valid switch (foo) {\u000a case bar:\u000a {\u000a baz();\u000a }\u000a} ok 5267 indent valid `foo${\u000a bar}` ok 5268 indent valid `foo${\u000a `bar${\u000a baz}`}` ok 5269 indent valid `foo${\u000a `bar${\u000a baz\u000a }`\u000a}` ok 5270 indent valid `foo${\u000a (\u000a bar\u000a )\u000a}` ok 5271 indent valid foo(`\u000a bar\u000a`, {\u000a baz: 1\u000a}); ok 5272 indent valid function foo() {\u000a `foo${bar}baz${\u000a qux}foo${\u000a bar}baz`\u000a} ok 5273 indent valid JSON\u000a .stringify(\u000a {\u000a ok: true\u000a }\u000a ); ok 5274 indent valid foo =\u000a bar =\u000a baz; ok 5275 indent valid foo =\u000abar =\u000a baz; ok 5276 indent valid function foo() {\u000a const template = `this indentation is not checked\u000abecause it's part of a template literal.`;\u000a} ok 5277 indent valid function foo() {\u000a const template = `the indentation of a ${\u000a node.type\u000a } node is checked.`;\u000a} ok 5278 indent valid JSON\u000a .stringify(\u000a {\u000a test: 'test'\u000a }\u000a ); ok 5279 indent valid [\u000a foo,\u000a // comment\u000a // another comment\u000a bar\u000a] ok 5280 indent valid if (foo) {\u000a /* comment */ bar();\u000a} ok 5281 indent valid function foo() {\u000a return (\u000a 1\u000a );\u000a} ok 5282 indent valid function foo() {\u000a return (\u000a 1\u000a )\u000a} ok 5283 indent valid if (\u000a foo &&\u000a !(\u000a bar\u000a )\u000a) {} ok 5284 indent valid var abc = [\u000a (\u000a ''\u000a ),\u000a def,\u000a] ok 5285 indent valid var abc = [\u000a (\u000a ''\u000a ),\u000a (\u000a 'bar'\u000a )\u000a] ok 5286 indent valid function f() {\u000a return asyncCall()\u000a .then(\u000a 'some string',\u000a [\u000a 1,\u000a 2,\u000a 3\u000a ]\u000a );\u000a} ok 5287 indent valid function f() {\u000a return asyncCall()\u000a .then(\u000a 'some string',\u000a [\u000a 1,\u000a 2,\u000a 3\u000a ]\u000a );\u000a} ok 5288 indent valid var x = [\u000a [1],\u000a [2]\u000a] ok 5289 indent valid var y = [\u000a {a: 1},\u000a {b: 2}\u000a] ok 5290 indent valid foo(\u000a) ok 5291 indent valid foo(\u000a bar,\u000a {\u000a baz: 1\u000a }\u000a) ok 5292 indent valid new Foo ok 5293 indent valid new (Foo) ok 5294 indent valid if (Foo) {\u000a new Foo\u000a} ok 5295 indent valid var foo = 0, bar = 0, baz = 0;\u000aexport {\u000a foo,\u000a bar,\u000a baz\u000a} ok 5296 indent valid foo\u000a ? bar\u000a : baz ok 5297 indent valid foo ?\u000a bar :\u000a baz ok 5298 indent valid foo ?\u000a bar\u000a : baz ok 5299 indent valid foo\u000a ? bar :\u000a baz ok 5300 indent valid foo\u000a ? bar\u000a : baz\u000a ? qux\u000a : foobar\u000a ? boop\u000a : beep ok 5301 indent valid foo ?\u000a bar :\u000a baz ?\u000a qux :\u000a foobar ?\u000a boop :\u000a beep ok 5302 indent valid var a =\u000a foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a /*else*/ beep ok 5303 indent valid var a = foo\u000a ? bar\u000a : baz ok 5304 indent valid var a =\u000a foo\u000a ? bar\u000a : baz ok 5305 indent valid a =\u000a foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a /*else*/ beep ok 5306 indent valid a = foo\u000a ? bar\u000a : baz ok 5307 indent valid a =\u000a foo\u000a ? bar\u000a : baz ok 5308 indent valid foo(\u000a foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a /*else*/ beep\u000a) ok 5309 indent valid function wrap() {\u000a return (\u000a foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a /*else*/ beep\u000a )\u000a} ok 5310 indent valid function wrap() {\u000a return foo\u000a ? bar\u000a : baz\u000a} ok 5311 indent valid function wrap() {\u000a return (\u000a foo\u000a ? bar\u000a : baz\u000a )\u000a} ok 5312 indent valid foo(\u000a foo\u000a ? bar\u000a : baz\u000a) ok 5313 indent valid foo(foo\u000a ? bar\u000a : baz\u000a) ok 5314 indent valid foo\u000a ? bar\u000a : baz\u000a ? qux\u000a : foobar\u000a ? boop\u000a : beep ok 5315 indent valid foo ?\u000a bar :\u000a baz ?\u000a qux :\u000a foobar ?\u000a boop :\u000a beep ok 5316 indent valid [,] ok 5317 indent valid [,] ok 5318 indent valid [\u000a ,\u000a foo\u000a] ok 5319 indent valid [sparse, , array]; ok 5320 indent valid foo.bar('baz', function(err) {\u000a qux;\u000a}); ok 5321 indent valid foo.bar(function() {\u000a cookies;\u000a}).baz(function() {\u000a cookies;\u000a}); ok 5322 indent valid foo.bar().baz(function() {\u000a cookies;\u000a}).qux(function() {\u000a cookies;\u000a}); ok 5323 indent valid (\u000a {\u000a foo: 1,\u000a baz: 2\u000a }\u000a); ok 5324 indent valid foo(() => {\u000a bar;\u000a}, () => {\u000a baz;\u000a}) ok 5325 indent valid [ foo,\u000a bar ].forEach(function() {\u000a baz;\u000a}) ok 5326 indent valid foo = bar[\u000a baz\u000a]; ok 5327 indent valid foo[\u000a bar\u000a]; ok 5328 indent valid foo[\u000a (\u000a bar\u000a )\u000a]; ok 5329 indent valid if (foo)\u000a bar;\u000aelse if (baz)\u000a qux; ok 5330 indent valid if (foo) bar()\u000a\u000a; [1, 2, 3].map(baz) ok 5331 indent valid if (foo)\u000a ; ok 5332 indent valid x => {} ok 5333 indent valid import {foo}\u000a from 'bar'; ok 5334 indent valid import 'foo' ok 5335 indent valid import { foo,\u000a bar,\u000a baz,\u000a} from 'qux'; ok 5336 indent valid import {\u000a foo,\u000a bar,\u000a baz,\u000a} from 'qux'; ok 5337 indent valid import { apple as a,\u000a banana as b } from 'fruits';\u000aimport { cat } from 'animals'; ok 5338 indent valid import { declaration,\u000a can,\u000a be,\u000a turned } from 'off'; ok 5339 indent valid (\u000a a\u000a) => b => {\u000a c\u000a} ok 5340 indent valid (\u000a a\u000a) => b => c => d => {\u000a e\u000a} ok 5341 indent valid (\u000a a\u000a) =>\u000a (\u000a b\u000a ) => {\u000a c\u000a } ok 5342 indent valid if (\u000a foo\u000a) bar(\u000a baz\u000a); ok 5343 indent valid if (foo)\u000a{\u000a bar();\u000a} ok 5344 indent valid function foo(bar)\u000a{\u000a baz();\u000a} ok 5345 indent valid () =>\u000a ({}) ok 5346 indent valid () =>\u000a (({})) ok 5347 indent valid (\u000a () =>\u000a ({})\u000a) ok 5348 indent valid var x = function foop(bar)\u000a{\u000a baz();\u000a} ok 5349 indent valid var x = (bar) =>\u000a{\u000a baz();\u000a} ok 5350 indent valid class Foo\u000a{\u000a constructor()\u000a {\u000a foo();\u000a }\u000a\u000a bar()\u000a {\u000a baz();\u000a }\u000a} ok 5351 indent valid class Foo\u000a extends Bar\u000a{\u000a constructor()\u000a {\u000a foo();\u000a }\u000a\u000a bar()\u000a {\u000a baz();\u000a }\u000a} ok 5352 indent valid (\u000a class Foo\u000a {\u000a constructor()\u000a {\u000a foo();\u000a }\u000a\u000a bar()\u000a {\u000a baz();\u000a }\u000a }\u000a) ok 5353 indent valid switch (foo)\u000a{\u000a case 1:\u000a bar();\u000a} ok 5354 indent valid foo\u000a .bar(function() {\u000a baz\u000a }) ok 5355 indent valid foo\u000a .bar(function() {\u000a baz\u000a }) ok 5356 indent valid foo\u000a [bar](function() {\u000a baz\u000a }) ok 5357 indent valid foo.\u000a bar.\u000a baz ok 5358 indent valid foo\u000a .bar(function() {\u000a baz\u000a }) ok 5359 indent valid foo\u000a .bar(function() {\u000a baz\u000a }) ok 5360 indent valid foo\u000a [bar](function() {\u000a baz\u000a }) ok 5361 indent valid foo.\u000a bar.\u000a baz ok 5362 indent valid foo = bar(\u000a).baz(\u000a) ok 5363 indent valid foo[\u000a bar ? baz :\u000a qux\u000a] ok 5364 indent valid function foo() {\u000a return foo ? bar :\u000a baz\u000a} ok 5365 indent valid throw foo ? bar :\u000a baz ok 5366 indent valid foo(\u000a bar\u000a) ? baz :\u000a qux ok 5367 indent valid foo\u000a [\u000a bar\u000a ]\u000a .baz(function() {\u000a quz();\u000a }) ok 5368 indent valid [\u000a foo\u000a][\u000a "map"](function() {\u000a qux();\u000a}) ok 5369 indent valid (\u000a a.b(function() {\u000a c;\u000a })\u000a) ok 5370 indent valid (\u000a foo\u000a).bar(function() {\u000a baz();\u000a}) ok 5371 indent valid new Foo(\u000a bar\u000a .baz\u000a .qux\u000a) ok 5372 indent valid const foo = a.b(),\u000a longName =\u000a (baz(\u000a 'bar',\u000a 'bar'\u000a )); ok 5373 indent valid const foo = a.b(),\u000a longName =\u000a (baz(\u000a 'bar',\u000a 'bar'\u000a )); ok 5374 indent valid const foo = a.b(),\u000a longName =\u000a baz(\u000a 'bar',\u000a 'bar'\u000a ); ok 5375 indent valid const foo = a.b(),\u000a longName =\u000a baz(\u000a 'bar',\u000a 'bar'\u000a ); ok 5376 indent valid const foo = a.b(),\u000a longName\u000a = baz(\u000a 'bar',\u000a 'bar'\u000a ); ok 5377 indent valid const foo = a.b(),\u000a longName\u000a = baz(\u000a 'bar',\u000a 'bar'\u000a ); ok 5378 indent valid const foo = a.b(),\u000a longName =\u000a ('fff'); ok 5379 indent valid const foo = a.b(),\u000a longName =\u000a ('fff'); ok 5380 indent valid const foo = a.b(),\u000a longName\u000a = ('fff'); ok 5381 indent valid const foo = a.b(),\u000a longName\u000a = ('fff'); ok 5382 indent valid const foo = a.b(),\u000a longName =\u000a (\u000a 'fff'\u000a ); ok 5383 indent valid const foo = a.b(),\u000a longName =\u000a (\u000a 'fff'\u000a ); ok 5384 indent valid const foo = a.b(),\u000a longName\u000a =(\u000a 'fff'\u000a ); ok 5385 indent valid const foo = a.b(),\u000a longName\u000a =(\u000a 'fff'\u000a ); ok 5386 indent valid interface Foo {\u000a bar: string;\u000a baz: number;\u000a} ok 5387 indent valid namespace Foo {\u000a const bar = 3,\u000a baz = 2;\u000a\u000a if (true) {\u000a const bax = 3;\u000a }\u000a} ok 5388 indent valid abstract class Foo {\u000a public bar() {\u000a let aaa = 4,\u000a boo;\u000a\u000a if (true) {\u000a boo = 3;\u000a }\u000a\u000a boo = 3 + 2;\u000a }\u000a} ok 5389 indent valid function foo() {\u000a function bar() {\u000a abstract class X {\u000a public baz() {\u000a if (true) {\u000a qux();\u000a }\u000a }\u000a }\u000a }\u000a} ok 5390 indent valid namespace Unknown {\u000a function foo() {\u000a function bar() {\u000a abstract class X {\u000a public baz() {\u000a if (true) {\u000a qux();\u000a }\u000a }\u000a }\u000a }\u000a }\u000a} ok 5391 indent valid type httpMethod = 'GET'\u000a | 'POST'\u000a | 'PUT'; ok 5392 indent valid type httpMethod = 'GET'\u000a| 'POST'\u000a| 'PUT'; ok 5393 indent valid foo(`foo\u000a `, {\u000a ok: true\u000a},\u000a{\u000a ok: false\u000a}) ok 5394 indent valid foo(tag`foo\u000a `, {\u000a ok: true\u000a},\u000a{\u000a ok: false\u000a}\u000a) ok 5395 indent valid async function test() {\u000a const {\u000a foo,\u000a bar,\u000a } = await doSomethingAsync(\u000a 1,\u000a 2,\u000a 3,\u000a );\u000a} ok 5396 indent valid function* test() {\u000a const {\u000a foo,\u000a bar,\u000a } = yield doSomethingAsync(\u000a 1,\u000a 2,\u000a 3,\u000a );\u000a} ok 5397 indent valid ({\u000a a: b\u000a} = +foo(\u000a bar\u000a)); ok 5398 indent valid const {\u000a foo,\u000a bar,\u000a} = typeof foo(\u000a 1,\u000a 2,\u000a 3,\u000a); ok 5399 indent valid const {\u000a foo,\u000a bar,\u000a} = +(\u000a foo\u000a); ok 5400 indent valid ; ok 5401 indent valid ; ok 5402 indent valid var foo = ; ok 5403 indent valid var foo = ; ok 5404 indent valid var foo = (); ok 5405 indent valid var foo = (\u000a \u000a); ok 5406 indent valid <\u000a Foo\u000a a="b"\u000a c="d"\u000a/>; ok 5407 indent valid ; ok 5408 indent valid <\u000a Foo\u000a a="b"\u000a c="d"/>; ok 5409 indent valid bar; ok 5410 indent valid \u000a bar\u000a; ok 5411 indent valid \u000a bar\u000a; ok 5412 indent valid \u000a bar\u000a; ok 5413 indent valid <\u000a a\u000a href="foo">\u000a bar\u000a; ok 5414 indent valid \u000a bar\u000a; ok 5415 indent valid \u000a bar\u000a; ok 5416 indent valid var foo = \u000a baz\u000a; ok 5417 indent valid var foo = \u000a baz\u000a; ok 5418 indent valid var foo = \u000a baz\u000a; ok 5419 indent valid var foo = <\u000a a\u000a href="bar">\u000a baz\u000a; ok 5420 indent valid var foo = \u000a baz\u000a; ok 5421 indent valid var foo = \u000a baz\u000a ok 5422 indent valid var foo = (\u000a baz\u000a); ok 5423 indent valid var foo = (\u000a baz\u000a); ok 5424 indent valid var foo = (\u000a \u000a baz\u000a \u000a); ok 5425 indent valid var foo = (\u000a \u000a baz\u000a \u000a); ok 5426 indent valid var foo = baz; ok 5427 indent valid \u000a {\u000a }\u000a ok 5428 indent valid \u000a {\u000a foo\u000a }\u000a ok 5429 indent valid function foo() {\u000a return (\u000a \u000a {\u000a b.forEach(() => {\u000a // comment\u000a a = c\u000a .d()\u000a .e();\u000a })\u000a }\u000a \u000a );\u000a} ok 5430 indent valid ok 5431 indent valid \u000a ok 5432 indent valid \u000a \u000a ok 5433 indent valid \u000a\u000a ok 5434 indent valid \u000a\u0009\u000a ok 5435 indent valid function App() {\u000a return \u000a \u000a ;\u000a} ok 5436 indent valid function App() {\u000a return (\u000a \u000a );\u000a} ok 5437 indent valid function App() {\u000a return (\u000a \u000a \u000a \u000a );\u000a} ok 5438 indent valid it(\u000a (\u000a
\u000a \u000a
\u000a )\u000a) ok 5439 indent valid it(\u000a (
\u000a \u000a \u000a \u000a
)\u000a) ok 5440 indent valid (\u000a
\u000a \u000a
\u000a) ok 5441 indent valid {\u000a head.title &&\u000a

\u000a {head.title}\u000a

\u000a} ok 5442 indent valid {\u000a head.title &&\u000a

\u000a {head.title}\u000a

\u000a} ok 5443 indent valid {\u000a head.title && (\u000a

\u000a {head.title}\u000a

)\u000a} ok 5444 indent valid {\u000a head.title && (\u000a

\u000a {head.title}\u000a

\u000a )\u000a} ok 5445 indent valid [\u000a
,\u000a
\u000a] ok 5446 indent valid
\u000a {\u000a [\u000a ,\u000a \u000a ]\u000a }\u000a
ok 5447 indent valid
\u000a {foo &&\u000a [\u000a ,\u000a \u000a ]\u000a }\u000a
ok 5448 indent valid
\u000abar
\u000a bar\u000a bar {foo}\u000abar
\u000a
ok 5449 indent valid foo ?\u000a :\u000a ok 5450 indent valid foo ?\u000a \u000a : ok 5451 indent valid foo ?\u000a \u000a :\u000a ok 5452 indent valid
\u000a {!foo ?\u000a \u000a :\u000a \u000a }\u000a
ok 5453 indent valid \u000a {condition ?\u000a :\u000a \u000a }\u000a ok 5454 indent valid \u000a {condition ?\u000a :\u000a \u000a }\u000a ok 5455 indent valid function foo() {\u000a \u000a {condition ?\u000a :\u000a \u000a }\u000a \u000a} ok 5456 indent valid ok 5457 indent valid ok 5458 indent valid ok 5459 indent valid ok 5460 indent valid ok 5461 indent valid ok 5462 indent valid ok 5463 indent valid ok 5464 indent valid var x = function() {\u000a return \u000a} ok 5465 indent valid var x = ok 5466 indent valid \u000a \u000a ok 5467 indent valid \u000a {baz && }\u000a ok 5468 indent valid ok 5469 indent valid ok 5470 indent valid ok 5471 indent valid var x = ok 5472 indent valid ok 5473 indent valid
\u000a unrelated{\u000a foo\u000a }\u000a
ok 5474 indent valid
unrelated{\u000a foo\u000a}\u000a
ok 5475 indent valid <\u000a foo\u000a .bar\u000a .baz\u000a>\u000a foo\u000a ok 5476 indent valid <\u000a input\u000a type=\u000a "number"\u000a/> ok 5477 indent valid <\u000a input\u000a type=\u000a {'number'}\u000a/> ok 5478 indent valid <\u000a input\u000a type\u000a ="number"\u000a/> ok 5479 indent valid foo ? (\u000a bar\u000a) : (\u000a baz\u000a) ok 5480 indent valid foo ? (\u000a
\u000a
\u000a) : (\u000a \u000a \u000a) ok 5481 indent valid
\u000a {\u000a /* foo */\u000a }\u000a
ok 5482 indent valid
\u000a {\u000a (\u000a 1\u000a )\u000a }\u000a
ok 5483 indent valid function A() {\u000a return (\u000a
\u000a {\u000a b && (\u000a
\u000a
\u000a )\u000a }\u000a
\u000a );\u000a} ok 5484 indent valid
foo\u000a
bar
\u000a
ok 5485 indent valid Foo bar \u000a baz qux.\u000a ok 5486 indent valid a(b\u000a , c\u000a) ok 5487 indent valid a(\u000a new B({\u000a c,\u000a })\u000a); ok 5488 indent valid foo\u000a? bar\u000a : baz ok 5489 indent valid class Foo {\u000afoo() {\u000a bar();\u000a}\u000a} ok 5490 indent valid class Foo {\u000afoo() {\u000abar();\u000a}\u000a} ok 5491 indent valid foo({\u000a bar: 1\u000a },\u000a {\u000a baz: 2\u000a },\u000a {\u000a qux: 3\u000a}) ok 5492 indent valid foo\u000a .bar ok 5493 indent valid $(function() {\u000a\u000afoo();\u000abar();\u000a\u000a}); ok 5494 indent valid ok 5495 indent valid foo &&\u000a\u000a
ok 5496 indent valid (function($) {\u000a$(function() {\u000a foo;\u000a});\u000a}()) ok 5497 indent valid const value = (\u000a condition ?\u000a valueIfTrue :\u000a valueIfFalse\u000a); ok 5498 indent valid var a = 0, b = 0, c = 0;\u000aexport default foo(\u000a a,\u000a b, {\u000a c\u000a }\u000a) ok 5499 indent valid foobar = baz\u000a ? qux\u000a : boop ok 5500 indent valid `\u000a SELECT\u000a ${\u000a foo\u000a } FROM THE_DATABASE\u000a` ok 5501 indent valid \u000a Text\u000a
ok 5502 indent valid {\u000a\u0009var x = 1,\u000a\u0009 y = 2;\u000a} ok 5503 indent valid var x = 1,\u000a y = 2;\u000avar z; ok 5504 indent valid [\u000a foo(),\u000a bar\u000a] ok 5505 indent valid if (foo) {\u000a doSomething();\u000a\u000a// Intentionally unindented comment\u000a doSomethingElse();\u000a} ok 5506 indent valid if (foo) {\u000a doSomething();\u000a\u000a/* Intentionally unindented comment */\u000a doSomethingElse();\u000a} ok 5507 indent valid const obj = {\u000a foo () {\u000a return condition ? // comment\u000a 1 :\u000a 2\u000a }\u000a} ok 5508 indent valid if (foo) {\u000a// Comment can align with code immediately above even if "incorrect" alignment\u000a doSomething();\u000a} ok 5509 indent valid if (foo) {\u000a doSomething();\u000a// Comment can align with code immediately below even if "incorrect" alignment\u000a} ok 5510 indent valid if (foo) {\u000a // Comment can be in correct alignment even if not aligned with code above/below\u000a} ok 5511 indent valid if (foo) {\u000a\u000a // Comment can be in correct alignment even if gaps between (and not aligned with) code above/below\u000a\u000a} ok 5512 indent valid [{\u000a foo\u000a},\u000a\u000a// Comment between nodes\u000a\u000a{\u000a bar\u000a}]; ok 5513 indent valid [{\u000a foo\u000a},\u000a\u000a// Comment between nodes\u000a\u000a{ // comment\u000a bar\u000a}]; ok 5514 indent valid let foo\u000a\u000a// comment\u000a\u000a;(async () => {})() ok 5515 indent valid let foo\u000a// comment\u000a\u000a;(async () => {})() ok 5516 indent valid let foo\u000a\u000a// comment\u000a;(async () => {})() ok 5517 indent valid let foo\u000a// comment\u000a;(async () => {})() ok 5518 indent valid let foo\u000a\u000a /* comment */;\u000a\u000a(async () => {})() ok 5519 indent valid let foo\u000a /* comment */;\u000a\u000a(async () => {})() ok 5520 indent valid let foo\u000a\u000a /* comment */;\u000a(async () => {})() ok 5521 indent valid let foo\u000a /* comment */;\u000a(async () => {})() ok 5522 indent valid let foo\u000a/* comment */;\u000a\u000a(async () => {})() ok 5523 indent valid let foo\u000a/* comment */;\u000a(async () => {})() ok 5524 indent valid // comment\u000a\u000a;(async () => {})() ok 5525 indent valid // comment\u000a;(async () => {})() ok 5526 indent valid {\u000a let foo\u000a\u000a // comment\u000a\u000a ;(async () => {})()\u000a} ok 5527 indent valid {\u000a let foo\u000a // comment\u000a ;(async () => {})()\u000a} ok 5528 indent valid {\u000a // comment\u000a\u000a ;(async () => {})()\u000a} ok 5529 indent valid {\u000a // comment\u000a ;(async () => {})()\u000a} ok 5530 indent valid const foo = 1\u000aconst bar = foo\u000a\u000a/* comment */\u000a\u000a;[1, 2, 3].forEach(() => {}) ok 5531 indent valid const foo = 1\u000aconst bar = foo\u000a/* comment */\u000a\u000a;[1, 2, 3].forEach(() => {}) ok 5532 indent valid const foo = 1\u000aconst bar = foo\u000a\u000a/* comment */\u000a;[1, 2, 3].forEach(() => {}) ok 5533 indent valid const foo = 1\u000aconst bar = foo\u000a/* comment */\u000a;[1, 2, 3].forEach(() => {}) ok 5534 indent valid const foo = 1\u000aconst bar = foo\u000a\u000a /* comment */;\u000a\u000a[1, 2, 3].forEach(() => {}) ok 5535 indent valid const foo = 1\u000aconst bar = foo\u000a /* comment */;\u000a\u000a[1, 2, 3].forEach(() => {}) ok 5536 indent valid const foo = 1\u000aconst bar = foo\u000a\u000a /* comment */;\u000a[1, 2, 3].forEach(() => {}) ok 5537 indent valid const foo = 1\u000aconst bar = foo\u000a /* comment */;\u000a[1, 2, 3].forEach(() => {}) ok 5538 indent valid const foo = 1\u000aconst bar = foo\u000a/* comment */;\u000a\u000a[1, 2, 3].forEach(() => {}) ok 5539 indent valid const foo = 1\u000aconst bar = foo\u000a/* comment */;\u000a[1, 2, 3].forEach(() => {}) ok 5540 indent valid /* comment */\u000a\u000a;[1, 2, 3].forEach(() => {}) ok 5541 indent valid /* comment */\u000a;[1, 2, 3].forEach(() => {}) ok 5542 indent valid {\u000a const foo = 1\u000a const bar = foo\u000a\u000a /* comment */\u000a\u000a ;[1, 2, 3].forEach(() => {})\u000a} ok 5543 indent valid {\u000a const foo = 1\u000a const bar = foo\u000a /* comment */\u000a ;[1, 2, 3].forEach(() => {})\u000a} ok 5544 indent valid {\u000a /* comment */\u000a\u000a ;[1, 2, 3].forEach(() => {})\u000a} ok 5545 indent valid {\u000a /* comment */\u000a ;[1, 2, 3].forEach(() => {})\u000a} ok 5546 indent valid import(\u000a // before\u000a source\u000a // after\u000a) ok 5547 indent invalid var a = b;\u000aif (a) {\u000ab();\u000a} ok 5548 indent invalid require('http').request({hostname: 'localhost',\u000a port: 80}, function(res) {\u000a res.end();\u000a }); ok 5549 indent invalid if (array.some(function(){\u000a return true;\u000a})) {\u000aa++; // ->\u000a b++;\u000a c++; // <-\u000a} ok 5550 indent invalid if (a){\u000a\u0009b=c;\u000a\u0009\u0009c=d;\u000ae=f;\u000a} ok 5551 indent invalid if (a){\u000a b=c;\u000a c=d;\u000a e=f;\u000a} ok 5552 indent invalid if (a) {\u000a var b = c;\u000a var d = e\u000a * f;\u000a var e = f; // <-\u000a// ->\u000a function g() {\u000a if (h) {\u000a var i = j;\u000a } // <-\u000a } // <-\u000a\u000a while (k) l++;\u000a while (m) {\u000a n--; // ->\u000a } // <-\u000a\u000a do {\u000a o = p +\u000a q; // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a o = p +\u000a q;\u000a } while(r); // <-\u000a\u000a for (var s in t) {\u000a u++;\u000a }\u000a\u000a for (;;) {\u000a v++; // <-\u000a }\u000a\u000a if ( w ) {\u000a x++;\u000a } else if (y) {\u000a z++; // <-\u000a aa++;\u000a } else { // <-\u000a bb++; // ->\u000a} // ->\u000a}\u000a\u000a/**/var b; // NO ERROR: single line multi-line comments followed by code is OK\u000a/*\u000a *\u000a */ var b; // NO ERROR: multi-line comments followed by code is OK\u000a\u000avar arr = [\u000a a,\u000a b,\u000a c,\u000a function (){\u000a d\u000a }, // <-\u000a {},\u000a {\u000a a: b,\u000a c: d,\u000a d: e\u000a },\u000a [\u000a f,\u000a g,\u000a h,\u000a i\u000a ],\u000a [j]\u000a];\u000a\u000avar obj = {\u000a a: {\u000a b: {\u000a c: d,\u000a e: f,\u000a g: h +\u000a i // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a }\u000a },\u000a g: [\u000a h,\u000a i,\u000a j,\u000a k\u000a ]\u000a};\u000a\u000avar arrObject = {a:[\u000a a,\u000a b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c\u000a]};\u000a\u000avar objArray = [{\u000a a: b,\u000a b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c: d\u000a}];\u000a\u000avar arrArray = [[\u000a a,\u000a b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c\u000a]];\u000a\u000avar objObject = {a:{\u000a a: b,\u000a b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE\u000a c: d\u000a}};\u000a\u000a\u000aswitch (a) {\u000a case 'a':\u000a var a = 'b'; // ->\u000a break;\u000a case 'b':\u000a var a = 'b';\u000a break;\u000a case 'c':\u000a var a = 'b'; // <-\u000a break;\u000a case 'd':\u000a var a = 'b';\u000a break; // ->\u000a case 'f':\u000a var a = 'b';\u000a break;\u000a case 'g': {\u000a var a = 'b';\u000a break;\u000a }\u000a case 'z':\u000a default:\u000a break; // <-\u000a}\u000a\u000aa.b('hi')\u000a .c(a.b()) // <-\u000a .d(); // <-\u000a\u000aif ( a ) {\u000a if ( b ) {\u000ad.e(f) // ->\u000a .g() // ->\u000a .h(); // ->\u000a\u000a i.j(m)\u000a .k() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a .l(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a\u000a n.o(p) // <-\u000a .q() // <-\u000a .r(); // <-\u000a }\u000a}\u000a\u000avar a = b,\u000a c = function () {\u000a h = i; // ->\u000a j = k;\u000a l = m; // <-\u000a },\u000a e = {\u000a f: g,\u000a n: o,\u000a p: q\u000a },\u000a r = [\u000a s,\u000a t,\u000a u\u000a ];\u000a\u000avar a = function () {\u000ab = c; // ->\u000a d = e;\u000a f = g; // <-\u000a};\u000a\u000afunction c(a, b) {\u000a if (a || (a &&\u000a b)) { // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS\u000a return d;\u000a }\u000a}\u000a\u000aif ( a\u000a || b ) {\u000avar x; // ->\u000a var c,\u000a d = function(a,\u000a b) { // <-\u000a a; // ->\u000a b;\u000a c; // <-\u000a }\u000a}\u000a\u000a\u000aa({\u000a d: 1\u000a});\u000a\u000aa(\u000a1\u000a);\u000a\u000aa(\u000a b({\u000a d: 1\u000a })\u000a);\u000a\u000aa(\u000a b(\u000a c({\u000a d: 1,\u000a e: 1,\u000a f: 1\u000a })\u000a )\u000a);\u000a\u000aa({ d: 1 });\u000a\u000aaa(\u000a b({ // NO ERROR: CallExpression args not linted by default\u000a c: d, // ->\u000a e: f,\u000a f: g\u000a }) // ->\u000a);\u000a\u000aaaaaaa(\u000a b,\u000a c,\u000a {\u000a d: a\u000a }\u000a);\u000a\u000aa(b, c,\u000a d, e,\u000a f, g // NO ERROR: alignment of arguments of callExpression not checked\u000a ); // <-\u000a\u000aa(\u000a ); // <-\u000a\u000aaaaaaa(\u000a b,\u000a c, {\u000a d: a\u000a }, {\u000a e: f\u000a }\u000a);\u000a\u000aa.b()\u000a .c(function(){\u000a var a;\u000a }).d.e;\u000a\u000aif (a == 'b') {\u000a if (c && d) e = f\u000a else g('h').i('j')\u000a}\u000a\u000aa = function (b, c) {\u000a return a(function () {\u000a var d = e\u000a var f = g\u000a var h = i\u000a\u000a if (!j) k('l', (m = n))\u000a if (o) p\u000a else if (q) r\u000a })\u000a}\u000a\u000avar a = function() {\u000a "b"\u000a .replace(/a/, "a")\u000a .replace(/bc?/, function(e) {\u000a return "b" + (e.f === 2 ? "c" : "f");\u000a })\u000a .replace(/d/, "d");\u000a};\u000a\u000a$(b)\u000a .on('a', 'b', function() { $(c).e('f'); })\u000a .on('g', 'h', function() { $(i).j('k'); });\u000a\u000aa\u000a .b('c',\u000a 'd'); // NO ERROR: CallExpression args not linted by default\u000a\u000aa\u000a .b('c', [ 'd', function(e) {\u000a e++;\u000a }]);\u000a\u000avar a = function() {\u000a a++;\u000a b++; // <-\u000a c++; // <-\u000a },\u000a b;\u000a\u000avar b = [\u000a a,\u000a b,\u000a c\u000a ],\u000a c;\u000a\u000avar c = {\u000a a: 1,\u000a b: 2,\u000a c: 3\u000a },\u000a d;\u000a\u000a// holes in arrays indentation\u000ax = [\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1,\u000a 1\u000a];\u000a\u000atry {\u000a a++;\u000a b++; // <-\u000ac++; // ->\u000a} catch (d) {\u000a e++;\u000a f++; // <-\u000ag++; // ->\u000a} finally {\u000a h++;\u000a i++; // <-\u000aj++; // ->\u000a}\u000a\u000aif (array.some(function(){\u000a return true;\u000a})) {\u000aa++; // ->\u000a b++;\u000a c++; // <-\u000a}\u000a\u000avar a = b.c(function() {\u000a d++;\u000a }),\u000a e;\u000a\u000aswitch (true) {\u000a case (a\u000a && b):\u000acase (c // ->\u000a&& d):\u000a case (e // <-\u000a && f):\u000a case (g\u000a&& h):\u000a var i = j; // <-\u000a var k = l;\u000a var m = n; // ->\u000a}\u000a\u000aif (a) {\u000a b();\u000a}\u000aelse {\u000ac(); // ->\u000a d();\u000a e(); // <-\u000a}\u000a\u000aif (a) b();\u000aelse {\u000ac(); // ->\u000a d();\u000a e(); // <-\u000a}\u000a\u000aif (a) {\u000a b();\u000a} else c();\u000a\u000aif (a) {\u000a b();\u000a}\u000aelse c();\u000a\u000aa();\u000a\u000aif( "very very long multi line" +\u000a "with weird indentation" ) {\u000a b();\u000aa(); // ->\u000a c(); // <-\u000a}\u000a\u000aa( "very very long multi line" +\u000a "with weird indentation", function() {\u000a b();\u000aa(); // ->\u000a c(); // <-\u000a }); // <-\u000a\u000aa = function(content, dom) {\u000a b();\u000a c(); // <-\u000ad(); // ->\u000a};\u000a\u000aa = function(content, dom) {\u000a b();\u000a c(); // <-\u000a d(); // ->\u000a };\u000a\u000aa = function(content, dom) {\u000a b(); // ->\u000a };\u000a\u000aa = function(content, dom) {\u000ab(); // ->\u000a };\u000a\u000aa('This is a terribly long description youll ' +\u000a 'have to read', function () {\u000a b(); // <-\u000a c(); // <-\u000a }); // <-\u000a\u000aif (\u000a array.some(function(){\u000a return true;\u000a })\u000a) {\u000aa++; // ->\u000a b++;\u000a c++; // <-\u000a}\u000a\u000afunction c(d) {\u000a return {\u000a e: function(f, g) {\u000a }\u000a };\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1:\u000a if (foo) {\u000a return 5;\u000a }\u000a }\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1:\u000a c;\u000a }\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1: c;\u000a }\u000a}\u000a\u000afunction test() {\u000a var a = 1;\u000a {\u000a a();\u000a }\u000a}\u000a\u000a{\u000a a();\u000a}\u000a\u000afunction a(b) {\u000a switch(x) {\u000a case 1:\u000a { // <-\u000a a(); // ->\u000a }\u000a break;\u000a default:\u000a {\u000a b();\u000a }\u000a }\u000a}\u000a\u000aswitch (a) {\u000a default:\u000a if (b)\u000a c();\u000a}\u000a\u000afunction test(x) {\u000a switch (x) {\u000a case 1:\u000a return function() {\u000a var a = 5;\u000a return a;\u000a };\u000a }\u000a}\u000a\u000aswitch (a) {\u000a default:\u000a if (b)\u000a c();\u000a}\u000a ok 5553 indent invalid switch(value){\u000a case "1":\u000a a();\u000a break;\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a a();\u000a break;\u000a} ok 5554 indent invalid var x = 0 &&\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 5555 indent invalid switch(value){\u000a case "1":\u000a a();\u000a break;\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a break;\u000a} ok 5556 indent invalid switch(value){\u000a case "1":\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a break;\u000a}\u000aswitch(value){\u000a case "1":\u000a break;\u000a case "2":\u000a a();\u000a break;\u000a default:\u000a a();\u000a break;\u000a} ok 5557 indent invalid switch(value){\u000acase "1":\u000a a();\u000a break;\u000a case "2":\u000a break;\u000a default:\u000a break;\u000a} ok 5558 indent invalid var obj = {foo: 1, bar: 2};\u000awith (obj) {\u000aconsole.log(foo + bar);\u000a} ok 5559 indent invalid switch (a) {\u000acase '1':\u000ab();\u000abreak;\u000adefault:\u000ac();\u000abreak;\u000a} ok 5560 indent invalid var foo = function(){\u000a foo\u000a .bar\u000a} ok 5561 indent invalid (\u000a foo\u000a .bar\u000a) ok 5562 indent invalid var foo = function(){\u000a foo\u000a .bar\u000a} ok 5563 indent invalid var foo = () => {\u000a foo\u000a .bar\u000a} ok 5564 indent invalid TestClass.prototype.method = function () {\u000a return Promise.resolve(3)\u000a .then(function (x) {\u000a return x;\u000a });\u000a}; ok 5565 indent invalid while (a)\u000ab(); ok 5566 indent invalid lmn = [{\u000a a: 1\u000a },\u000a {\u000a b: 2\u000a },\u000a {\u000a x: 2\u000a}]; ok 5567 indent invalid for (var foo = 1;\u000afoo < 10;\u000afoo++) {} ok 5568 indent invalid for (\u000avar foo = 1;\u000afoo < 10;\u000afoo++\u000a ) {} ok 5569 indent invalid for (;;)\u000ab(); ok 5570 indent invalid for (a in x)\u000ab(); ok 5571 indent invalid do\u000ab();\u000awhile(true) ok 5572 indent invalid if(true)\u000ab(); ok 5573 indent invalid var test = {\u000a a: 1,\u000a b: 2\u000a }; ok 5574 indent invalid var a = function() {\u000a a++;\u000a b++;\u000a c++;\u000a },\u000a b; ok 5575 indent invalid var a = 1,\u000ab = 2,\u000ac = 3; ok 5576 indent invalid [a, b,\u000a c].forEach((index) => {\u000a index;\u000a }); ok 5577 indent invalid [a, b,\u000ac].forEach(function(index){\u000a return index;\u000a}); ok 5578 indent invalid [a, b, c].forEach(function(index){\u000a return index;\u000a}); ok 5579 indent invalid (foo)\u000a .bar([\u000a baz\u000a]); ok 5580 indent invalid var x = ['a',\u000a 'b',\u000a 'c'\u000a]; ok 5581 indent invalid var x = [\u000a 'a',\u000a 'b',\u000a 'c'\u000a]; ok 5582 indent invalid var x = [\u000a 'a',\u000a 'b',\u000a 'c',\u000a'd']; ok 5583 indent invalid var x = [\u000a 'a',\u000a 'b',\u000a 'c'\u000a ]; ok 5584 indent invalid [[\u000a], function(\u000a foo\u000a ) {}\u000a] ok 5585 indent invalid define([\u000a 'foo'\u000a], function(\u000a bar\u000a ) {\u000a baz;\u000a}\u000a) ok 5586 indent invalid while (1 < 2)\u000aconsole.log('foo')\u000a console.log('bar') ok 5587 indent invalid function salutation () {\u000a switch (1) {\u000a case 0: return console.log('hi')\u000a case 1: return console.log('hey')\u000a }\u000a} ok 5588 indent invalid var geometry, box, face1, face2, colorT, colorB, sprite, padding, maxWidth,\u000aheight, rotate; ok 5589 indent invalid switch (a) {\u000acase '1':\u000ab();\u000abreak;\u000adefault:\u000ac();\u000abreak;\u000a} ok 5590 indent invalid var geometry,\u000arotate; ok 5591 indent invalid var geometry,\u000a rotate; ok 5592 indent invalid var geometry,\u000a\u0009rotate; ok 5593 indent invalid let geometry,\u000a rotate; ok 5594 indent invalid let foo = 'foo',\u000a bar = bar;\u000aconst a = 'a',\u000a b = 'b'; ok 5595 indent invalid var foo = 'foo',\u000a bar = bar; ok 5596 indent invalid if(true)\u000a if (true)\u000a if (true)\u000a console.log(val); ok 5597 indent invalid var a = {\u000a a: 1,\u000a b: 2\u000a} ok 5598 indent invalid var a = [\u000a a,\u000a b\u000a] ok 5599 indent invalid let a = [\u000a a,\u000a b\u000a] ok 5600 indent invalid var a = new Test({\u000a a: 1\u000a }),\u000a b = 4; ok 5601 indent invalid var a = new Test({\u000a a: 1\u000a }),\u000a b = 4;\u000aconst c = new Test({\u000a a: 1\u000a }),\u000a d = 4; ok 5602 indent invalid var abc = 5,\u000a c = 2,\u000a xyz =\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 5603 indent invalid var abc =\u000a {\u000a a: 1,\u000a b: 2\u000a }; ok 5604 indent invalid var foo = {\u000a bar: 1,\u000a baz: {\u000a qux: 2\u000a }\u000a },\u000a bar = 1; ok 5605 indent invalid var path = require('path')\u000a , crypto = require('crypto')\u000a; ok 5606 indent invalid var a = 1\u000a ,b = 2\u000a; ok 5607 indent invalid class A{\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a} ok 5608 indent invalid var A = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a}; ok 5609 indent invalid var a = 1,\u000a B = class {\u000a constructor(){}\u000a a(){}\u000a get b(){}\u000a }; ok 5610 indent invalid {\u000a if(a){\u000a foo();\u000a }\u000a else{\u000a bar();\u000a }\u000a} ok 5611 indent invalid {\u000a if(a){\u000a foo();\u000a }\u000a else\u000a bar();\u000a\u000a} ok 5612 indent invalid {\u000a if(a)\u000a foo();\u000a else\u000a bar();\u000a} ok 5613 indent invalid (function(){\u000a function foo(x) {\u000a return x + 1;\u000a }\u000a})(); ok 5614 indent invalid (function(){\u000a function foo(x) {\u000a return x + 1;\u000a }\u000a})(); ok 5615 indent invalid if(data) {\u000aconsole.log('hi');\u000a} ok 5616 indent invalid var ns = function(){\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}(x); ok 5617 indent invalid var obj = {\u000a foo: function() {\u000a return true;\u000a }()\u000a}; ok 5618 indent invalid typeof function() {\u000a function fooVar(x) {\u000a return x + 1;\u000a }\u000a}(); ok 5619 indent invalid {\u000a\u0009!function(x) {\u000a\u0009\u0009\u0009\u0009return x + 1;\u000a\u0009}()\u000a}; ok 5620 indent invalid Buffer\u000a.toString() ok 5621 indent invalid Buffer\u000a .indexOf('a')\u000a.toString() ok 5622 indent invalid Buffer.\u000alength ok 5623 indent invalid Buffer.\u000a\u0009\u0009length ok 5624 indent invalid Buffer\u000a .foo\u000a .bar ok 5625 indent invalid function foo() {\u000a new\u000a .target\u000a} ok 5626 indent invalid function foo() {\u000a new.\u000a target\u000a} ok 5627 indent invalid if (foo) bar();\u000aelse if (baz) foobar();\u000a else if (qux) qux(); ok 5628 indent invalid if (foo) bar();\u000aelse if (baz) foobar();\u000a else qux(); ok 5629 indent invalid foo();\u000a if (baz) foobar();\u000a else qux(); ok 5630 indent invalid if (foo) bar();\u000aelse if (baz) foobar();\u000a else if (bip) {\u000a qux();\u000a } ok 5631 indent invalid if (foo) bar();\u000aelse if (baz) {\u000a foobar();\u000a } else if (boop) {\u000a qux();\u000a } ok 5632 indent invalid function foo(aaa,\u000a bbb, ccc, ddd) {\u000a bar();\u000a} ok 5633 indent invalid function foo(aaa, bbb,\u000a ccc, ddd) {\u000abar();\u000a} ok 5634 indent invalid function foo(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 5635 indent invalid function foo(aaa,\u000a bbb, ccc,\u000a ddd, eee, fff) {\u000a bar();\u000a} ok 5636 indent invalid function foo(aaa, bbb)\u000a{\u000abar();\u000a} ok 5637 indent invalid function foo(\u000aaaa,\u000a bbb) {\u000abar();\u000a} ok 5638 indent invalid var foo = function(aaa,\u000a bbb,\u000a ccc,\u000a ddd) {\u000a bar();\u000a} ok 5639 indent invalid var foo = function(aaa,\u000a bbb,\u000a ccc) {\u000a bar();\u000a} ok 5640 indent invalid var foo = function(aaa,\u000a bbb, ccc, ddd,\u000a eee, fff) {\u000a bar();\u000a} ok 5641 indent invalid var foo = function(\u000aaaa, bbb, ccc,\u000a ddd, eee) {\u000a bar();\u000a} ok 5642 indent invalid var foo = bar;\u000a\u0009\u0009\u0009var baz = qux; ok 5643 indent invalid function foo() {\u000a\u0009bar();\u000a baz();\u000a qux();\u000a} ok 5644 indent invalid function foo() {\u000a bar();\u000a\u0009\u0009} ok 5645 indent invalid function foo() {\u000a function bar() {\u000a baz();\u000a }\u000a} ok 5646 indent invalid function foo() {\u000a function bar(baz,\u000a qux) {\u000a foobar();\u000a }\u000a} ok 5647 indent invalid function foo() {\u000a var bar = function(baz,\u000a qux) {\u000a foobar();\u000a };\u000a} ok 5648 indent invalid foo.bar(\u000a baz, qux, function() {\u000a qux;\u000a }\u000a); ok 5649 indent invalid {\u000a try {\u000a }\u000acatch (err) {\u000a }\u000afinally {\u000a }\u000a} ok 5650 indent invalid {\u000a do {\u000a }\u000awhile (true)\u000a} ok 5651 indent invalid function foo() {\u000a return (\u000a 1\u000a )\u000a} ok 5652 indent invalid function foo() {\u000a return (\u000a 1\u000a );\u000a} ok 5653 indent invalid function test(){\u000a switch(length){\u000a case 1: return function(a){\u000a return fn.call(that, a);\u000a };\u000a }\u000a} ok 5654 indent invalid function foo() {\u000a return 1\u000a} ok 5655 indent invalid foo(\u000abar,\u000a baz,\u000a qux); ok 5656 indent invalid foo(\u000a\u0009bar,\u000a\u0009baz); ok 5657 indent invalid foo(bar,\u000a\u0009\u0009baz,\u000a\u0009\u0009qux); ok 5658 indent invalid foo(bar, baz,\u000a qux); ok 5659 indent invalid foo(\u000a bar,\u000a baz); ok 5660 indent invalid foo(bar,\u000a 1 + 2,\u000a !baz,\u000a new Car('!')\u000a); ok 5661 indent invalid return (\u000a foo\u000a ); ok 5662 indent invalid return (\u000a foo\u000a ) ok 5663 indent invalid if (foo) {\u000a /* comment */bar();\u000a} ok 5664 indent invalid foo('bar',\u000a /** comment */{\u000a ok: true\u000a }); ok 5665 indent invalid foo(\u000a(bar)\u000a); ok 5666 indent invalid ((\u000afoo\u000a)) ok 5667 indent invalid foo\u000a? bar\u000a : baz ok 5668 indent invalid [\u000a foo ?\u000a bar :\u000a baz,\u000a qux\u000a] ok 5669 indent invalid foo();\u000a // comment\u000a /* multiline\u000a comment */\u000abar();\u000a // trailing comment ok 5670 indent invalid // comment ok 5671 indent invalid foo\u000a // comment ok 5672 indent invalid // comment\u000afoo ok 5673 indent invalid [\u000a // no elements\u000a] ok 5674 indent invalid var {\u000afoo,\u000a bar,\u000a baz: qux,\u000a foobar: baz = foobar\u000a } = qux; ok 5675 indent invalid const {\u000a a\u000a} = {\u000a a: 1\u000a } ok 5676 indent invalid var foo = [\u000a bar,\u000a baz\u000a ] ok 5677 indent invalid var foo = [bar,\u000abaz,\u000a qux\u000a] ok 5678 indent invalid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 5679 indent invalid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 5680 indent invalid var foo = [bar,\u000a baz,\u000a qux\u000a] ok 5681 indent invalid var foo = [bar,\u000a baz, qux\u000a] ok 5682 indent invalid var foo = [\u000a { bar: 1,\u000a baz: 2 },\u000a { bar: 3,\u000a qux: 4 }\u000a] ok 5683 indent invalid var foo = {\u000a bar: 1,\u000a baz: 2\u000a}; ok 5684 indent invalid var quux = { foo: 1, bar: 2,\u000abaz: 3 } ok 5685 indent invalid function foo() {\u000a [\u000a foo\u000a ]\u000a} ok 5686 indent invalid var [\u000afoo,\u000a bar,\u000a baz,\u000a foobar = baz\u000a ] = qux; ok 5687 indent invalid import {\u000afoo,\u000a bar,\u000a baz\u000a} from 'qux'; ok 5688 indent invalid import { foo,\u000a bar,\u000a baz,\u000a} from 'qux'; ok 5689 indent invalid import { foo,\u000a bar,\u000a baz,\u000a} from 'qux'; ok 5690 indent invalid var foo = 0, bar = 0, baz = 0;\u000aexport {\u000afoo,\u000a bar,\u000a baz\u000a}; ok 5691 indent invalid var foo = 0, bar = 0, baz = 0;\u000aexport {\u000afoo,\u000a bar,\u000a baz\u000a} from 'qux'; ok 5692 indent invalid var folder = filePath\u000a .foo()\u000a .bar; ok 5693 indent invalid for (const foo of bar)\u000a baz(); ok 5694 indent invalid var x = () =>\u000a 5; ok 5695 indent invalid foo && (\u000a bar\u000a) ok 5696 indent invalid foo &&\u000a !bar(\u000a) ok 5697 indent invalid foo &&\u000a ![].map(() => {\u000a bar();\u000a}) ok 5698 indent invalid [\u000a] || [\u000a ] ok 5699 indent invalid foo\u000a || (\u000a bar\u000a ) ok 5700 indent invalid 1\u000a+ (\u000a 1\u000a ) ok 5701 indent invalid `foo${\u000abar}` ok 5702 indent invalid `foo${\u000a `bar${\u000abaz}`}` ok 5703 indent invalid `foo${\u000a `bar${\u000a baz\u000a }`\u000a }` ok 5704 indent invalid `foo${\u000a(\u000a bar\u000a)\u000a}` ok 5705 indent invalid function foo() {\u000a `foo${bar}baz${\u000aqux}foo${\u000a bar}baz`\u000a} ok 5706 indent invalid function foo() {\u000a const template = `the indentation of\u000aa curly element in a ${\u000a node.type\u000a } node is checked.`;\u000a} ok 5707 indent invalid function foo() {\u000a const template = `this time the\u000aclosing curly is at the end of the line ${\u000a foo}\u000a so the spaces before this line aren't removed.`;\u000a} ok 5708 indent invalid if (true) {\u000a a = (\u000a1 +\u000a 2);\u000a} ok 5709 indent invalid if (true) {\u000a for (;;) {\u000a b();\u000a }\u000a} ok 5710 indent invalid function f() {\u000a return asyncCall()\u000a .then(\u000a 'some string',\u000a [\u000a 1,\u000a 2,\u000a 3\u000a ]\u000a);\u000a } ok 5711 indent invalid var x = [\u000a [1],\u000a [2]\u000a] ok 5712 indent invalid var y = [\u000a {a: 1},\u000a {b: 2}\u000a] ok 5713 indent invalid echo = spawn('cmd.exe',\u000a ['foo', 'bar',\u000a 'baz']); ok 5714 indent invalid foo(\u000a ) ok 5715 indent invalid foo(\u000a bar,\u000a {\u000a baz: 1\u000a }\u000a) ok 5716 indent invalid new Foo ok 5717 indent invalid var foo = 0, bar = 0, baz = 0;\u000aexport {\u000afoo,\u000a bar,\u000a baz\u000a} ok 5718 indent invalid foo\u000a ? bar\u000a: baz ok 5719 indent invalid foo ?\u000a bar :\u000abaz ok 5720 indent invalid foo ?\u000a bar\u000a : baz ok 5721 indent invalid foo\u000a ? bar :\u000abaz ok 5722 indent invalid foo ? bar\u000a : baz ? qux\u000a : foobar ? boop\u000a : beep ok 5723 indent invalid foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a beep ok 5724 indent invalid var a =\u000a foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a /*else*/ beep ok 5725 indent invalid var a =\u000a foo\u000a ? bar\u000a : baz ok 5726 indent invalid foo ? bar\u000a : baz ? qux\u000a : foobar ? boop\u000a : beep ok 5727 indent invalid foo ? bar :\u000a baz ? qux :\u000a foobar ? boop :\u000a beep ok 5728 indent invalid foo\u000a ? bar\u000a : baz\u000a ? qux\u000a : foobar\u000a ? boop\u000a : beep ok 5729 indent invalid foo ?\u000a bar :\u000a baz ?\u000a qux :\u000a foobar ?\u000a boop :\u000a beep ok 5730 indent invalid foo.bar('baz', function(err) {\u000a qux;\u000a}); ok 5731 indent invalid foo.bar(function() {\u000a cookies;\u000a}).baz(function() {\u000a cookies;\u000a }); ok 5732 indent invalid foo.bar().baz(function() {\u000a cookies;\u000a}).qux(function() {\u000a cookies;\u000a }); ok 5733 indent invalid [ foo,\u000a bar ].forEach(function() {\u000a baz;\u000a }) ok 5734 indent invalid foo[\u000a bar\u000a ]; ok 5735 indent invalid foo({\u000abar: 1,\u000abaz: 2\u000a}) ok 5736 indent invalid foo(\u000a bar, baz,\u000a qux); ok 5737 indent invalid if (foo) bar()\u000a\u000a ; [1, 2, 3].map(baz) ok 5738 indent invalid if (foo)\u000a; ok 5739 indent invalid import {foo}\u000afrom 'bar'; ok 5740 indent invalid export {foo}\u000afrom 'bar'; ok 5741 indent invalid (\u000a a\u000a) => b => {\u000a c\u000a } ok 5742 indent invalid (\u000a a\u000a) => b => c => d => {\u000a e\u000a } ok 5743 indent invalid if (\u000a foo\u000a) bar(\u000a baz\u000a ); ok 5744 indent invalid (\u000a foo\u000a)(\u000a bar\u000a ) ok 5745 indent invalid (() =>\u000a foo\u000a)(\u000a bar\u000a ) ok 5746 indent invalid (() => {\u000a foo();\u000a})(\u000a bar\u000a ) ok 5747 indent invalid foo.\u000a bar.\u000a baz ok 5748 indent invalid const foo = a.b(),\u000a longName\u000a = (baz(\u000a 'bar',\u000a 'bar'\u000a )); ok 5749 indent invalid const foo = a.b(),\u000a longName =\u000a (baz(\u000a 'bar',\u000a 'bar'\u000a )); ok 5750 indent invalid const foo = a.b(),\u000a longName\u000a =baz(\u000a 'bar',\u000a 'bar'\u000a ); ok 5751 indent invalid const foo = a.b(),\u000a longName\u000a =(\u000a 'fff'\u000a ); ok 5752 indent invalid namespace Foo {\u000a const bar = 3,\u000a baz = 2;\u000a\u000a if (true) {\u000a const bax = 3;\u000a }\u000a} ok 5753 indent invalid abstract class Foo {\u000a public bar() {\u000a let aaa = 4,\u000a boo;\u000a\u000a if (true) {\u000a boo = 3;\u000a }\u000a\u000a boo = 3 + 2;\u000a }\u000a} ok 5754 indent invalid function foo() {\u000a function bar() {\u000a abstract class X {\u000a public baz() {\u000a if (true) {\u000a qux();\u000a }\u000a }\u000a }\u000a }\u000a} ok 5755 indent invalid namespace Unknown {\u000a function foo() {\u000a function bar() {\u000a abstract class X {\u000a public baz() {\u000a if (true) {\u000a qux();\u000a }\u000a }\u000a }\u000a }\u000a }\u000a} ok 5756 indent invalid \u000a \u000a ok 5757 indent invalid \u000a \u000a ok 5758 indent invalid \u000a \u000a ok 5759 indent invalid function App() {\u000a return \u000a \u000a ;\u000a} ok 5760 indent invalid function App() {\u000a return (\u000a \u000a );\u000a} ok 5761 indent invalid function App() {\u000a return (\u000a\u000a \u000a\u000a );\u000a} ok 5762 indent invalid \u000a {test}\u000a ok 5763 indent invalid \u000a {options.map((option, index) => (\u000a \u000a ))}\u000a ok 5764 indent invalid [\u000a
,\u000a
\u000a] ok 5765 indent invalid \u000a\u000a \u000a\u000a ok 5766 indent invalid foo ?\u000a :\u000a ok 5767 indent invalid foo ?\u000a \u000a:\u000a ok 5768 indent invalid foo ? (\u000a \u000a) :\u000a ok 5769 indent invalid ok 5770 indent invalid ok 5771 indent invalid ok 5772 indent invalid const Button = function(props) {\u000a return (\u000a \u000a Button Text\u000a \u000a );\u000a}; ok 5773 indent invalid var x = function() {\u000a return \u000a} ok 5774 indent invalid var x = ok 5775 indent invalid var x = (\u000a \u000a) ok 5776 indent invalid ok 5777 indent invalid ok 5778 indent invalid <\u000a foo\u000a .bar\u000a .baz\u000a>\u000a foo\u000a ok 5779 indent invalid <\u000a input\u000a type=\u000a "number"\u000a/> ok 5780 indent invalid <\u000a input\u000a type=\u000a {'number'}\u000a/> ok 5781 indent invalid <\u000a input\u000a type\u000a ="number"\u000a/> ok 5782 indent invalid foo ? (\u000a bar\u000a) : (\u000a baz\u000a ) ok 5783 indent invalid foo ? (\u000a
\u000a
\u000a) : (\u000a \u000a \u000a ) ok 5784 indent invalid
\u000a {\u000a (\u000a 1\u000a )\u000a }\u000a
ok 5785 indent invalid
\u000a {\u000a /* foo */\u000a }\u000a
ok 5786 indent invalid
foo\u000a
bar
\u000a
ok 5787 indent invalid Foo bar \u000abaz qux.\u000a ok 5788 indent invalid ({\u000a foo\u000a }: bar) => baz ok 5789 indent invalid ([\u000a foo\u000a ]: bar) => baz ok 5790 indent invalid ({\u000a foo\u000a }: {}) => baz ok 5791 indent invalid class Foo {\u000afoo() {\u000abar();\u000a}\u000a} ok 5792 indent invalid $(function() {\u000a\u000afoo();\u000abar();\u000a\u000afoo(function() {\u000abaz();\u000a});\u000a\u000a}); ok 5793 indent invalid (function($) {\u000a$(function() {\u000afoo;\u000a});\u000a})() ok 5794 indent invalid if (foo) {\u000a doSomething();\u000a\u000a// Intentionally unindented comment\u000a doSomethingElse();\u000a} ok 5795 indent invalid if (foo) {\u000a doSomething();\u000a\u000a/* Intentionally unindented comment */\u000a doSomethingElse();\u000a} ok 5796 indent invalid const obj = {\u000a foo () {\u000a return condition ? // comment\u000a 1 :\u000a 2\u000a }\u000a} ok 5797 indent invalid if (foo) {\u000a\u000a// Comment cannot align with code immediately above if there is a whitespace gap\u000a doSomething();\u000a} ok 5798 indent invalid if (foo) {\u000a foo(\u000a bar);\u000a// Comment cannot align with code immediately below if there is a whitespace gap\u000a\u000a} ok 5799 indent invalid [{\u000a foo\u000a},\u000a\u000a // Comment between nodes\u000a\u000a{\u000a bar\u000a}]; ok 5800 indent invalid let foo\u000a\u000a // comment\u000a\u000a;(async () => {})() ok 5801 indent invalid let foo\u000a // comment\u000a;(async () => {})() ok 5802 indent invalid let foo\u000a\u000a/* comment */;\u000a\u000a(async () => {})() ok 5803 indent invalid // comment\u000a\u000a;(async () => {})() ok 5804 indent invalid // comment\u000a;(async () => {})() ok 5805 indent invalid {\u000a let foo\u000a\u000a // comment\u000a\u000a ;(async () => {})()\u000a\u000a} ok 5806 indent invalid {\u000a let foo\u000a // comment\u000a ;(async () => {})()\u000a\u000a} ok 5807 indent invalid {\u000a let foo\u000a\u000a /* comment */;\u000a\u000a (async () => {})()\u000a\u000a} ok 5808 indent invalid const foo = 1\u000aconst bar = foo\u000a\u000a /* comment */\u000a\u000a;[1, 2, 3].forEach(() => {}) ok 5809 indent invalid const foo = 1\u000aconst bar = foo\u000a /* comment */\u000a;[1, 2, 3].forEach(() => {}) ok 5810 indent invalid const foo = 1\u000aconst bar = foo\u000a\u000a/* comment */;\u000a\u000a[1, 2, 3].forEach(() => {}) ok 5811 indent invalid /* comment */\u000a\u000a;[1, 2, 3].forEach(() => {}) ok 5812 indent invalid /* comment */\u000a;[1, 2, 3].forEach(() => {}) ok 5813 indent invalid {\u000a const foo = 1\u000a const bar = foo\u000a\u000a /* comment */\u000a\u000a ;[1, 2, 3].forEach(() => {})\u000a\u000a} ok 5814 indent invalid {\u000a const foo = 1\u000a const bar = foo\u000a /* comment */\u000a ;[1, 2, 3].forEach(() => {})\u000a\u000a} ok 5815 indent invalid {\u000a const foo = 1\u000a const bar = foo\u000a\u000a /* comment */;\u000a\u000a [1, 2, 3].forEach(() => {})\u000a\u000a} ok 5816 indent invalid import(\u000asource\u000a ) ok 5817 init-declarations valid var foo = null; ok 5818 init-declarations valid foo = true; ok 5819 init-declarations valid var foo = 1, bar = false, baz = {}; ok 5820 init-declarations valid function foo() { var foo = 0; var bar = []; } ok 5821 init-declarations valid var fn = function() {}; ok 5822 init-declarations valid var foo = bar = 2; ok 5823 init-declarations valid for (var i = 0; i < 1; i++) {} ok 5824 init-declarations valid for (var foo in []) {} ok 5825 init-declarations valid for (var foo of []) {} ok 5826 init-declarations valid let a = true; ok 5827 init-declarations valid const a = {}; ok 5828 init-declarations valid function foo() { let a = 1, b = false; if (a) { let c = 3, d = null; } } ok 5829 init-declarations valid function foo() { const a = 1, b = true; if (a) { const c = 3, d = null; } } ok 5830 init-declarations valid function foo() { let a = 1; const b = false; var c = true; } ok 5831 init-declarations valid var foo; ok 5832 init-declarations valid var foo, bar, baz; ok 5833 init-declarations valid function foo() { var foo; var bar; } ok 5834 init-declarations valid let a; ok 5835 init-declarations valid const a = 1; ok 5836 init-declarations valid function foo() { let a, b; if (a) { let c, d; } } ok 5837 init-declarations valid function foo() { const a = 1, b = true; if (a) { const c = 3, d = null; } } ok 5838 init-declarations valid function foo() { let a; const b = false; var c; } ok 5839 init-declarations valid for(var i = 0; i < 1; i++){} ok 5840 init-declarations valid for (var foo in []) {} ok 5841 init-declarations valid for (var foo of []) {} ok 5842 init-declarations invalid var foo; ok 5843 init-declarations invalid for (var a in []) var foo; ok 5844 init-declarations invalid var foo, bar = false, baz; ok 5845 init-declarations invalid function foo() { var foo = 0; var bar; } ok 5846 init-declarations invalid function foo() { var foo; var bar = foo; } ok 5847 init-declarations invalid let a; ok 5848 init-declarations invalid function foo() { let a = 1, b; if (a) { let c = 3, d = null; } } ok 5849 init-declarations invalid function foo() { let a; const b = false; var c; } ok 5850 init-declarations invalid var foo = bar = 2; ok 5851 init-declarations invalid var foo = true; ok 5852 init-declarations invalid var foo, bar = 5, baz = 3; ok 5853 init-declarations invalid function foo() { var foo; var bar = foo; } ok 5854 init-declarations invalid let a = 1; ok 5855 init-declarations invalid function foo() { let a = 'foo', b; if (a) { let c, d; } } ok 5856 init-declarations invalid function foo() { let a; const b = false; var c = 1; } ok 5857 init-declarations invalid for(var i = 0; i < 1; i++){} ok 5858 init-declarations invalid for (var foo in []) {} ok 5859 init-declarations invalid for (var foo of []) {} ok 5860 jsx-quotes valid ok 5861 jsx-quotes valid ok 5862 jsx-quotes valid ok 5863 jsx-quotes valid ok 5864 jsx-quotes valid " ok 5865 jsx-quotes valid ' ok 5866 jsx-quotes valid ok 5867 jsx-quotes valid ok 5868 jsx-quotes valid ok 5869 jsx-quotes valid ok 5870 jsx-quotes valid ok 5871 jsx-quotes valid ok 5872 jsx-quotes valid ok 5873 jsx-quotes valid ok 5874 jsx-quotes invalid ok 5875 jsx-quotes invalid ok 5876 jsx-quotes invalid ok 5877 jsx-quotes invalid ok 5878 key-spacing valid ({\u000a}) ok 5879 key-spacing valid ({\u000aa: b\u000a}) ok 5880 key-spacing valid ({\u000a}) ok 5881 key-spacing valid ({\u000aa: b\u000a}) ok 5882 key-spacing valid var obj = { key: value }; ok 5883 key-spacing valid var obj = { [(a + b)]: value }; ok 5884 key-spacing valid var foo = { a:bar }; ok 5885 key-spacing valid var foo = { a: bar }; ok 5886 key-spacing valid foo({ 'default': function(){}}); ok 5887 key-spacing valid function foo() { return {\u000a key: (foo === 4)\u000a}; } ok 5888 key-spacing valid var obj = {'key' :42 }; ok 5889 key-spacing valid ({a : foo, b : bar})['a']; ok 5890 key-spacing valid var obj = {\u000a 'a' : (42 - 12),\u000a foobar : 'value',\u000a [(expr)]: val\u000a}; ok 5891 key-spacing valid callExpr(arg, {\u000a key :val,\u000a 'another' :false,\u000a [compute] :'value'\u000a}); ok 5892 key-spacing valid var obj = {\u000a a: (42 - 12),\u000a 'foobar': 'value',\u000a bat: function() {\u000a return this.a;\u000a },\u000a baz: 42\u000a}; ok 5893 key-spacing valid callExpr(arg, {\u000a 'asdf' :val,\u000a foobar :false,\u000a key : value\u000a}); ok 5894 key-spacing valid ({\u000a a : 0,\u000a // same group\u000a bcd: 0, /*\u000a end of group */\u000a\u000a // different group\u000a e: 0,\u000a /* group b */\u000a f: 0\u000a}) ok 5895 key-spacing valid obj = { key \u000a : \u000a longName }; ok 5896 key-spacing valid obj = { key \u000a :longName }; ok 5897 key-spacing valid obj = { key :longName }; ok 5898 key-spacing valid var obj = { get fn() { return 42; } }; ok 5899 key-spacing valid ({ get fn() {} }) ok 5900 key-spacing valid var obj = {foo: 'fee', bar: 'bam'}; ok 5901 key-spacing valid var obj = {a: 'foo', bar: 'bam'}; ok 5902 key-spacing valid var x = {\u000a foo: 10\u000a , b : 20\u000a}; ok 5903 key-spacing valid var x = {\u000a foo : 10\u000a , b : 20\u000a}; ok 5904 key-spacing valid var x = {\u000a foo: 10,\u000a /*lol*/b : 20\u000a}; ok 5905 key-spacing valid var a = 'a';\u000avar b = 'b';\u000a\u000aexport default {\u000a a,\u000a b\u000a}; ok 5906 key-spacing valid var test = {\u000a prop: 123,\u000a a,\u000a b\u000a}; ok 5907 key-spacing valid var test = {\u000a prop: 456,\u000a c,\u000a d\u000a}; ok 5908 key-spacing valid var obj = {\u000a foobar: 123,\u000a prop,\u000a baz: 456\u000a}; ok 5909 key-spacing valid var test = {\u000a prop: 123,\u000a a() { }\u000a}; ok 5910 key-spacing valid var test = {\u000a prop: 123,\u000a a() { },\u000a b() { }\u000a}; ok 5911 key-spacing valid var obj = {\u000a foobar: 123,\u000a method() { },\u000a baz: 456\u000a}; ok 5912 key-spacing valid var obj = {\u000a foobar: 123,\u000a method() {\u000a return 42;\u000a },\u000a baz: 456\u000a}; ok 5913 key-spacing valid var obj = {\u000a foo : foo\u000a , bar : bar\u000a , cats: cats\u000a}; ok 5914 key-spacing valid var obj = { foo : foo\u000a , bar : bar\u000a , cats: cats\u000a}; ok 5915 key-spacing valid var obj = {\u000a foo : foo\u000a , bar : bar\u000a , cats : cats\u000a}; ok 5916 key-spacing valid ({a : foo, ...x, b : bar})['a']; ok 5917 key-spacing valid var obj = {\u000a 'a' : (42 - 12),\u000a ...x,\u000a foobar : 'value',\u000a [(expr)]: val\u000a}; ok 5918 key-spacing valid callExpr(arg, {\u000a key :val,\u000a ...x,\u000a ...y,\u000a 'another' :false,\u000a [compute] :'value'\u000a}); ok 5919 key-spacing valid var obj = {\u000a a: (42 - 12),\u000a ...x,\u000a 'foobar': 'value',\u000a bat: function() {\u000a return this.a;\u000a },\u000a baz: 42\u000a}; ok 5920 key-spacing valid ({\u000a ...x,\u000a a : 0,\u000a // same group\u000a bcd: 0, /*\u000a end of group */\u000a\u000a // different group\u000a e: 0,\u000a ...y,\u000a /* group b */\u000a f: 0\u000a}) ok 5921 key-spacing valid ({\u000a a: 42,\u000a get b() { return 42; }\u000a}) ok 5922 key-spacing valid ({\u000a set a(b) { b; },\u000a c: 42\u000a}) ok 5923 key-spacing valid ({\u000a a : 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def: 42\u000a}) ok 5924 key-spacing valid ({\u000a a : 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def: 42\u000a}) ok 5925 key-spacing valid ({\u000a a : 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def : 42,\u000a obj : {a: 1, b: 2, c: 3}\u000a}) ok 5926 key-spacing valid ({\u000a a : 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def : 42,\u000a def : {a: 1, b: 2, c: 3}\u000a}) ok 5927 key-spacing valid var obj = {\u000a foobar: 42,\u000a bat: 2\u000a}; ok 5928 key-spacing valid ({...object}) ok 5929 key-spacing valid ({\u000a longName: 1,\u000a small : 2,\u000a f : function() {\u000a },\u000a xs :3\u000a}) ok 5930 key-spacing valid ({\u000a longName: 1,\u000a small: 2,\u000a f: function() {\u000a },\u000a xs :3\u000a}) ok 5931 key-spacing valid ({\u000a longName : 1,\u000a small : 2,\u000a xs : 3\u000a}) ok 5932 key-spacing valid ({\u000a longName :1,\u000a small :2,\u000a xs :3\u000a}) ok 5933 key-spacing valid ({\u000a longName: 1,\u000a small : 2,\u000a xs : 3\u000a}) ok 5934 key-spacing valid ({\u000a longName: 1,\u000a small : 2,\u000a xs : 3\u000a}) ok 5935 key-spacing valid ({\u000a func: function() {\u000a var test = true;\u000a },\u000a longName : 1,\u000a small : 2,\u000a xs : 3,\u000a func2 : function() {\u000a var test2 = true;\u000a },\u000a internalGroup: {\u000a internal : true,\u000a ext : false\u000a }\u000a}) ok 5936 key-spacing valid ({\u000a func: function() {\u000a var test = true;\u000a },\u000a longName: 1,\u000a small: 2,\u000a xs: 3,\u000a func2: function() {\u000a var test2 = true;\u000a },\u000a final: 10\u000a}) ok 5937 key-spacing valid ({\u000a f:function() {\u000a var test = true;\u000a },\u000a stateName : 'NY',\u000a borough : 'Brooklyn',\u000a zip : 11201,\u000a f2 : function() {\u000a var test2 = true;\u000a },\u000a final:10\u000a}) ok 5938 key-spacing valid var obj = {\u000a key1: 1,\u000a\u000a key2: 2,\u000a key3: 3,\u000a\u000a key4: 4\u000a} ok 5939 key-spacing valid var obj = {\u000a key1: 1,\u000a\u000a key2: 2,\u000a key3: 3,\u000a\u000a key4: 4\u000a} ok 5940 key-spacing invalid var bat = function() { return { foo:bar, 'key': value }; }; ok 5941 key-spacing invalid var obj = { [ (a + b) ]:value }; ok 5942 key-spacing invalid fn({ foo:bar, 'key' :value }); ok 5943 key-spacing invalid var obj = {prop :(42)}; ok 5944 key-spacing invalid ({'a' : foo, b: bar() }).b(); ok 5945 key-spacing invalid ({'a' :foo(), b: bar() }).b(); ok 5946 key-spacing invalid bar = { key:value }; ok 5947 key-spacing invalid obj = {\u000a key: value,\u000a foobar:fn(),\u000a 'a' : (2 * 2)\u000a}; ok 5948 key-spacing invalid ({\u000a 'a' : val,\u000a foo:fn(),\u000a b :[42],\u000a c :call()\u000a}).a(); ok 5949 key-spacing invalid var obj = {\u000a a: fn(),\u000a 'b' : 42,\u000a foo:(bar),\u000a bat: 'valid',\u000a [a] : value\u000a}; ok 5950 key-spacing invalid foo = {\u000a a: value,\u000a b : 42,\u000a foo :['a'],\u000a bar : call()\u000a}; ok 5951 key-spacing invalid ({\u000a a : 0,\u000a bcd: 0,\u000a\u000a e: 0,\u000a fg:0\u000a}) ok 5952 key-spacing invalid foo = {\u000a key:\u000a longValueName,\u000a key2\u000a :anotherLongValue\u000a}; ok 5953 key-spacing invalid foo = {\u000a key1: 42,\u000a // still the same group\u000a key12: '42', /*\u000a\u000a */\u000a key123: 'forty two'\u000a}; ok 5954 key-spacing invalid foo = { key:(1+2) }; ok 5955 key-spacing invalid foo = { key:( ( (1+2) ) ) }; ok 5956 key-spacing invalid var obj = {a : 'foo', bar: 'bam'}; ok 5957 key-spacing invalid var x = {\u000a foo: 10\u000a , b : 20\u000a}; ok 5958 key-spacing invalid var x = {\u000a foo : 10,\u000a /*lol*/ b : 20\u000a}; ok 5959 key-spacing invalid obj = { key \u000a : longName }; ok 5960 key-spacing invalid var obj = {\u000a foobar: 123,\u000a prop,\u000a baz: 456\u000a}; ok 5961 key-spacing invalid var obj = {\u000a foobar: 123,\u000a prop,\u000a baz: 456\u000a}; ok 5962 key-spacing invalid var obj = {\u000a foobar: 123,\u000a method() { },\u000a baz: 456\u000a}; ok 5963 key-spacing invalid var obj = {\u000a foobar: 123,\u000a method() { },\u000a baz: 456\u000a}; ok 5964 key-spacing invalid var obj = {\u000a foobar: 123,\u000a method() {\u000a return 42;\u000a },\u000a baz: 456\u000a}; ok 5965 key-spacing invalid var obj = {\u000a foo: foo\u000a , cats: cats\u000a}; ok 5966 key-spacing invalid var obj = {\u000a foo : foo\u000a , cats: cats\u000a}; ok 5967 key-spacing invalid var obj = { foo: foo\u000a , cats: cats\u000a}; ok 5968 key-spacing invalid var obj = { foo : foo\u000a , cats: cats\u000a}; ok 5969 key-spacing invalid var obj = { foo :foo\u000a , cats: cats\u000a}; ok 5970 key-spacing invalid var obj = { foo : foo\u000a , cats: cats\u000a}; ok 5971 key-spacing invalid var obj = { foo : foo\u000a , cats: cats\u000a}; ok 5972 key-spacing invalid ({\u000a ...x,\u000a a : 0,\u000a // same group\u000a bcd: 0, /*\u000a end of group */\u000a\u000a // different group\u000a e: 0,\u000a ...y,\u000a /* group b */\u000a f : 0\u000a}) ok 5973 key-spacing invalid ({\u000a a : 42,\u000a get b() { return 42; }\u000a}) ok 5974 key-spacing invalid ({\u000a set a(b) { b; },\u000a c : 42\u000a}) ok 5975 key-spacing invalid ({\u000a a: 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def: 42\u000a}) ok 5976 key-spacing invalid ({\u000a a : 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def : 42,\u000a def2 : {a1: 1, b1:2, c1:3}\u000a}) ok 5977 key-spacing invalid ({\u000a a : 42,\u000a get b() { return 42; },\u000a set c(v) { v; },\u000a def: 42,\u000a de1: {a2: 1, b2 : 2, c2 : 3}\u000a}) ok 5978 key-spacing invalid obj = {\u000a get fx() { return 'f'; },\u000a get gx() { return 'g'; },\u000a ex:e\u000a}; ok 5979 key-spacing invalid obj = {\u000a get fx() { return 'f'; },\u000a get gx() { return 'g'; },\u000a ex : e\u000a}; ok 5980 key-spacing invalid ({\u000a aInv :43,\u000a get b() { return 43; },\u000a set c(v) { v; },\u000a defInv: 43\u000a}) ok 5981 key-spacing invalid ({ a:b, ...object, c : d }) ok 5982 key-spacing invalid ({\u000a longName:1,\u000a small :2,\u000a xs : 3\u000a}) ok 5983 key-spacing invalid ({\u000a func:function() {\u000a var test = true;\u000a },\u000a longName: 1,\u000a small: 2,\u000a xs : 3,\u000a func2 : function() {\u000a var test2 = true;\u000a },\u000a singleLine : 10\u000a}) ok 5984 key-spacing invalid ({\u000a func:function() {\u000a var test = false;\u000a },\u000a longName :1,\u000a small :2,\u000a xs : 3,\u000a func2 : function() {\u000a var test2 = true;\u000a },\u000a singleLine : 10\u000a}) ok 5985 key-spacing invalid var obj = {\u000a key1: 1,\u000a\u000a key2: 2,\u000a key3: 3,\u000a\u000a key4: 4\u000a} ok 5986 key-spacing invalid var obj = {\u000a key1: 1,\u000a\u000a key2: 2,\u000a key3: 3,\u000a\u000a key4: 4\u000a} ok 5987 key-spacing invalid ({ foo/* comment */ : bar }) ok 5988 key-spacing invalid ({ foo: /* comment */bar }) ok 5989 key-spacing invalid ({ foo/*comment*/:/*comment*/bar }) ok 5990 keyword-spacing valid import * as a from "foo" ok 5991 keyword-spacing valid import*as a from"foo" ok 5992 keyword-spacing valid import* as a from"foo" ok 5993 keyword-spacing valid import *as a from "foo" ok 5994 keyword-spacing valid {} async function foo() {} ok 5995 keyword-spacing valid {}async function foo() {} ok 5996 keyword-spacing valid {} async function foo() {} ok 5997 keyword-spacing valid {}async function foo() {} ok 5998 keyword-spacing valid {} async () => {} ok 5999 keyword-spacing valid {}async () => {} ok 6000 keyword-spacing valid {} async () => {} ok 6001 keyword-spacing valid {}async () => {} ok 6002 keyword-spacing valid ({async [b]() {}}) ok 6003 keyword-spacing valid ({async[b]() {}}) ok 6004 keyword-spacing valid ({async [b]() {}}) ok 6005 keyword-spacing valid ({async[b]() {}}) ok 6006 keyword-spacing valid class A {a(){} async [b]() {}} ok 6007 keyword-spacing valid class A {a(){}async[b]() {}} ok 6008 keyword-spacing valid class A {a(){} async [b]() {}} ok 6009 keyword-spacing valid class A {a(){}async[b]() {}} ok 6010 keyword-spacing valid [async function foo() {}] ok 6011 keyword-spacing valid [ async function foo() {}] ok 6012 keyword-spacing valid () =>async function foo() {} ok 6013 keyword-spacing valid () => async function foo() {} ok 6014 keyword-spacing valid {async function foo() {} } ok 6015 keyword-spacing valid { async function foo() {} } ok 6016 keyword-spacing valid (0,async function foo() {}) ok 6017 keyword-spacing valid (0, async function foo() {}) ok 6018 keyword-spacing valid a[async function foo() {}] ok 6019 keyword-spacing valid ({[async function foo() {}]: 0}) ok 6020 keyword-spacing valid a[ async function foo() {}] ok 6021 keyword-spacing valid ({[ async function foo() {}]: 0}) ok 6022 keyword-spacing valid ({ async* foo() {} }) ok 6023 keyword-spacing valid ({ async *foo() {} }) ok 6024 keyword-spacing valid ({a:async function foo() {} }) ok 6025 keyword-spacing valid ({a: async function foo() {} }) ok 6026 keyword-spacing valid ;async function foo() {}; ok 6027 keyword-spacing valid ; async function foo() {} ; ok 6028 keyword-spacing valid async() => {} ok 6029 keyword-spacing valid async () => {} ok 6030 keyword-spacing valid (async function foo() {}) ok 6031 keyword-spacing valid ( async function foo() {}) ok 6032 keyword-spacing valid a =async function foo() {} ok 6033 keyword-spacing valid a = async function foo() {} ok 6034 keyword-spacing valid !async function foo() {} ok 6035 keyword-spacing valid ! async function foo() {} ok 6036 keyword-spacing valid `${async function foo() {}}` ok 6037 keyword-spacing valid `${ async function foo() {}}` ok 6038 keyword-spacing valid ok 6039 keyword-spacing valid ok 6040 keyword-spacing valid async function wrap() { {} await +1 } ok 6041 keyword-spacing valid async function wrap() { {}await +1 } ok 6042 keyword-spacing valid async function wrap() { {} await +1 } ok 6043 keyword-spacing valid async function wrap() { {}await +1 } ok 6044 keyword-spacing valid async function wrap() { [await a] } ok 6045 keyword-spacing valid async function wrap() { [ await a] } ok 6046 keyword-spacing valid async () =>await a ok 6047 keyword-spacing valid async () => await a ok 6048 keyword-spacing valid async function wrap() { {await a } } ok 6049 keyword-spacing valid async function wrap() { { await a } } ok 6050 keyword-spacing valid async function wrap() { (0,await a) } ok 6051 keyword-spacing valid async function wrap() { (0, await a) } ok 6052 keyword-spacing valid async function wrap() { a[await a] } ok 6053 keyword-spacing valid async function wrap() { ({[await a]: 0}) } ok 6054 keyword-spacing valid async function wrap() { a[ await a] } ok 6055 keyword-spacing valid async function wrap() { ({[ await a]: 0}) } ok 6056 keyword-spacing valid async function wrap() { ({a:await a }) } ok 6057 keyword-spacing valid async function wrap() { ({a: await a }) } ok 6058 keyword-spacing valid async function wrap() { ;await a; } ok 6059 keyword-spacing valid async function wrap() { ; await a ; } ok 6060 keyword-spacing valid async function wrap() { (await a) } ok 6061 keyword-spacing valid async function wrap() { ( await a) } ok 6062 keyword-spacing valid async function wrap() { a =await a } ok 6063 keyword-spacing valid async function wrap() { a = await a } ok 6064 keyword-spacing valid async function wrap() { !await'a' } ok 6065 keyword-spacing valid async function wrap() { ! await 'a' } ok 6066 keyword-spacing valid async function wrap() { `${await a}` } ok 6067 keyword-spacing valid async function wrap() { `${ await a}` } ok 6068 keyword-spacing valid async function wrap() { } ok 6069 keyword-spacing valid async function wrap() { } ok 6070 keyword-spacing valid A: for (;;) { {} break A; } ok 6071 keyword-spacing valid A: for(;;) { {}break A; } ok 6072 keyword-spacing valid A: for(;;) { {} break A; } ok 6073 keyword-spacing valid A: for (;;) { {}break A; } ok 6074 keyword-spacing valid for (;;) {break} ok 6075 keyword-spacing valid for(;;) { break } ok 6076 keyword-spacing valid for (;;) { ;break; } ok 6077 keyword-spacing valid for(;;) { ; break ; } ok 6078 keyword-spacing valid switch (a) { case 0: {} case +1: } ok 6079 keyword-spacing valid switch (a) { case 0: {} case (1): } ok 6080 keyword-spacing valid switch(a) { case 0: {}case+1: } ok 6081 keyword-spacing valid switch(a) { case 0: {}case(1): } ok 6082 keyword-spacing valid switch(a) { case 0: {} case +1: } ok 6083 keyword-spacing valid switch (a) { case 0: {}case+1: } ok 6084 keyword-spacing valid switch (a) {case 0: } ok 6085 keyword-spacing valid switch(a) { case 0: } ok 6086 keyword-spacing valid switch (a) { case 0: ;case 1: } ok 6087 keyword-spacing valid switch(a) { case 0: ; case 1: } ok 6088 keyword-spacing valid try {} catch (e) {} ok 6089 keyword-spacing valid try{}catch(e) {} ok 6090 keyword-spacing valid try{} catch (e) {} ok 6091 keyword-spacing valid try {}catch(e) {} ok 6092 keyword-spacing valid try {}\u000acatch (e) {} ok 6093 keyword-spacing valid try{}\u000acatch(e) {} ok 6094 keyword-spacing valid {} class Bar {} ok 6095 keyword-spacing valid (class {}) ok 6096 keyword-spacing valid {}class Bar {} ok 6097 keyword-spacing valid (class{}) ok 6098 keyword-spacing valid {} class Bar {} ok 6099 keyword-spacing valid {}class Bar {} ok 6100 keyword-spacing valid [class {}] ok 6101 keyword-spacing valid [ class{}] ok 6102 keyword-spacing valid () =>class {} ok 6103 keyword-spacing valid () => class{} ok 6104 keyword-spacing valid {class Bar {} } ok 6105 keyword-spacing valid { class Bar {} } ok 6106 keyword-spacing valid (0,class {}) ok 6107 keyword-spacing valid (0, class{}) ok 6108 keyword-spacing valid a[class {}] ok 6109 keyword-spacing valid ({[class {}]: 0}) ok 6110 keyword-spacing valid a[ class{}] ok 6111 keyword-spacing valid ({[ class{}]: 0}) ok 6112 keyword-spacing valid ({a:class {} }) ok 6113 keyword-spacing valid ({a: class{} }) ok 6114 keyword-spacing valid ;class Bar {}; ok 6115 keyword-spacing valid ; class Bar {} ; ok 6116 keyword-spacing valid ( class{}) ok 6117 keyword-spacing valid a =class {} ok 6118 keyword-spacing valid a = class{} ok 6119 keyword-spacing valid !class {} ok 6120 keyword-spacing valid ! class{} ok 6121 keyword-spacing valid `${class {}}` ok 6122 keyword-spacing valid `${ class{}}` ok 6123 keyword-spacing valid ok 6124 keyword-spacing valid ok 6125 keyword-spacing valid {} const [a] = b ok 6126 keyword-spacing valid {} const {a} = b ok 6127 keyword-spacing valid {}const[a] = b ok 6128 keyword-spacing valid {}const{a} = b ok 6129 keyword-spacing valid {} const [a] = b ok 6130 keyword-spacing valid {} const {a} = b ok 6131 keyword-spacing valid {}const[a] = b ok 6132 keyword-spacing valid {}const{a} = b ok 6133 keyword-spacing valid {const a = b} ok 6134 keyword-spacing valid { const a = b} ok 6135 keyword-spacing valid ;const a = b; ok 6136 keyword-spacing valid ; const a = b ; ok 6137 keyword-spacing valid A: for (;;) { {} continue A; } ok 6138 keyword-spacing valid A: for(;;) { {}continue A; } ok 6139 keyword-spacing valid A: for(;;) { {} continue A; } ok 6140 keyword-spacing valid A: for (;;) { {}continue A; } ok 6141 keyword-spacing valid for (;;) {continue} ok 6142 keyword-spacing valid for(;;) { continue } ok 6143 keyword-spacing valid for (;;) { ;continue; } ok 6144 keyword-spacing valid for(;;) { ; continue ; } ok 6145 keyword-spacing valid {} debugger ok 6146 keyword-spacing valid {}debugger ok 6147 keyword-spacing valid {} debugger ok 6148 keyword-spacing valid {}debugger ok 6149 keyword-spacing valid {debugger} ok 6150 keyword-spacing valid { debugger } ok 6151 keyword-spacing valid ;debugger; ok 6152 keyword-spacing valid ; debugger ; ok 6153 keyword-spacing valid switch (a) { case 0: {} default: } ok 6154 keyword-spacing valid switch(a) { case 0: {}default: } ok 6155 keyword-spacing valid switch(a) { case 0: {} default: } ok 6156 keyword-spacing valid switch (a) { case 0: {}default: } ok 6157 keyword-spacing valid switch (a) {default:} ok 6158 keyword-spacing valid switch(a) { default: } ok 6159 keyword-spacing valid switch (a) { case 0: ;default: } ok 6160 keyword-spacing valid switch(a) { case 0: ; default: } ok 6161 keyword-spacing valid {} delete foo.a ok 6162 keyword-spacing valid {}delete foo.a ok 6163 keyword-spacing valid {} delete foo.a ok 6164 keyword-spacing valid {}delete foo.a ok 6165 keyword-spacing valid [delete foo.a] ok 6166 keyword-spacing valid [ delete foo.a] ok 6167 keyword-spacing valid (() =>delete foo.a) ok 6168 keyword-spacing valid (() => delete foo.a) ok 6169 keyword-spacing valid {delete foo.a } ok 6170 keyword-spacing valid { delete foo.a } ok 6171 keyword-spacing valid (0,delete foo.a) ok 6172 keyword-spacing valid (0, delete foo.a) ok 6173 keyword-spacing valid a[delete foo.a] ok 6174 keyword-spacing valid ({[delete foo.a]: 0}) ok 6175 keyword-spacing valid a[ delete foo.a] ok 6176 keyword-spacing valid ({[ delete foo.a]: 0}) ok 6177 keyword-spacing valid ({a:delete foo.a }) ok 6178 keyword-spacing valid ({a: delete foo.a }) ok 6179 keyword-spacing valid ;delete foo.a ok 6180 keyword-spacing valid ; delete foo.a ok 6181 keyword-spacing valid (delete foo.a) ok 6182 keyword-spacing valid ( delete foo.a) ok 6183 keyword-spacing valid a =delete foo.a ok 6184 keyword-spacing valid a = delete foo.a ok 6185 keyword-spacing valid !delete(foo.a) ok 6186 keyword-spacing valid ! delete (foo.a) ok 6187 keyword-spacing valid `${delete foo.a}` ok 6188 keyword-spacing valid `${ delete foo.a}` ok 6189 keyword-spacing valid ok 6190 keyword-spacing valid ok 6191 keyword-spacing valid {} do {} while (true) ok 6192 keyword-spacing valid {}do{}while(true) ok 6193 keyword-spacing valid {} do {}while(true) ok 6194 keyword-spacing valid {}do{} while (true) ok 6195 keyword-spacing valid {}\u000ado\u000a{} while (true) ok 6196 keyword-spacing valid {}\u000ado\u000a{}while(true) ok 6197 keyword-spacing valid {do {} while (true)} ok 6198 keyword-spacing valid { do{}while(true) } ok 6199 keyword-spacing valid ;do; while (true) ok 6200 keyword-spacing valid ; do ;while(true) ok 6201 keyword-spacing valid if (a) {} else {} ok 6202 keyword-spacing valid if (a) {} else if (b) {} ok 6203 keyword-spacing valid if (a) {} else (0) ok 6204 keyword-spacing valid if (a) {} else [] ok 6205 keyword-spacing valid if (a) {} else +1 ok 6206 keyword-spacing valid if (a) {} else "a" ok 6207 keyword-spacing valid if(a){}else{} ok 6208 keyword-spacing valid if(a){}else if(b) {} ok 6209 keyword-spacing valid if(a) {}else(0) ok 6210 keyword-spacing valid if(a) {}else[] ok 6211 keyword-spacing valid if(a) {}else+1 ok 6212 keyword-spacing valid if(a) {}else"a" ok 6213 keyword-spacing valid if(a) {} else {} ok 6214 keyword-spacing valid if (a) {}else{} ok 6215 keyword-spacing valid if (a) {}\u000aelse\u000a{} ok 6216 keyword-spacing valid if(a) {}\u000aelse\u000a{} ok 6217 keyword-spacing valid if (a);else; ok 6218 keyword-spacing valid if(a); else ; ok 6219 keyword-spacing valid var a = 0; {} export {a} ok 6220 keyword-spacing valid {} export default a ok 6221 keyword-spacing valid {} export * from "a" ok 6222 keyword-spacing valid var a = 0; {}export{a} ok 6223 keyword-spacing valid var a = 0; {} export {a} ok 6224 keyword-spacing valid var a = 0; {}export{a} ok 6225 keyword-spacing valid var a = 0;\u000a;export {a} ok 6226 keyword-spacing valid var a = 0;\u000a; export{a} ok 6227 keyword-spacing valid class Bar extends [] {} ok 6228 keyword-spacing valid class Bar extends[] {} ok 6229 keyword-spacing valid class Bar extends [] {} ok 6230 keyword-spacing valid class Bar extends[] {} ok 6231 keyword-spacing valid try {} finally {} ok 6232 keyword-spacing valid try{}finally{} ok 6233 keyword-spacing valid try{} finally {} ok 6234 keyword-spacing valid try {}finally{} ok 6235 keyword-spacing valid try {}\u000afinally\u000a{} ok 6236 keyword-spacing valid try{}\u000afinally\u000a{} ok 6237 keyword-spacing valid {} for (;;) {} ok 6238 keyword-spacing valid {} for (var foo in obj) {} ok 6239 keyword-spacing valid {} for (var foo of list) {} ok 6240 keyword-spacing valid {}for(;;) {} ok 6241 keyword-spacing valid {}for(var foo in obj) {} ok 6242 keyword-spacing valid {}for(var foo of list) {} ok 6243 keyword-spacing valid {} for (;;) {} ok 6244 keyword-spacing valid {} for (var foo in obj) {} ok 6245 keyword-spacing valid {} for (var foo of list) {} ok 6246 keyword-spacing valid {}for(;;) {} ok 6247 keyword-spacing valid {}for(var foo in obj) {} ok 6248 keyword-spacing valid {}for(var foo of list) {} ok 6249 keyword-spacing valid {for (;;) {} } ok 6250 keyword-spacing valid {for (var foo in obj) {} } ok 6251 keyword-spacing valid {for (var foo of list) {} } ok 6252 keyword-spacing valid { for(;;) {} } ok 6253 keyword-spacing valid { for(var foo in obj) {} } ok 6254 keyword-spacing valid { for(var foo of list) {} } ok 6255 keyword-spacing valid ;for (;;) {} ok 6256 keyword-spacing valid ;for (var foo in obj) {} ok 6257 keyword-spacing valid ;for (var foo of list) {} ok 6258 keyword-spacing valid ; for(;;) {} ok 6259 keyword-spacing valid ; for(var foo in obj) {} ok 6260 keyword-spacing valid ; for(var foo of list) {} ok 6261 keyword-spacing valid import {foo} from "foo" ok 6262 keyword-spacing valid export {foo} from "foo" ok 6263 keyword-spacing valid export * from "foo" ok 6264 keyword-spacing valid import{foo}from"foo" ok 6265 keyword-spacing valid export{foo}from"foo" ok 6266 keyword-spacing valid export*from"foo" ok 6267 keyword-spacing valid import{foo} from "foo" ok 6268 keyword-spacing valid export{foo} from "foo" ok 6269 keyword-spacing valid export* from "foo" ok 6270 keyword-spacing valid import {foo}from"foo" ok 6271 keyword-spacing valid export {foo}from"foo" ok 6272 keyword-spacing valid export *from"foo" ok 6273 keyword-spacing valid {} function foo() {} ok 6274 keyword-spacing valid {}function foo() {} ok 6275 keyword-spacing valid {} function foo() {} ok 6276 keyword-spacing valid {}function foo() {} ok 6277 keyword-spacing valid [function() {}] ok 6278 keyword-spacing valid [ function() {}] ok 6279 keyword-spacing valid (() =>function() {}) ok 6280 keyword-spacing valid (() => function() {}) ok 6281 keyword-spacing valid {function foo() {} } ok 6282 keyword-spacing valid { function foo() {} } ok 6283 keyword-spacing valid (0,function() {}) ok 6284 keyword-spacing valid (0, function() {}) ok 6285 keyword-spacing valid a[function() {}] ok 6286 keyword-spacing valid ({[function() {}]: 0}) ok 6287 keyword-spacing valid a[ function() {}] ok 6288 keyword-spacing valid ({[ function(){}]: 0}) ok 6289 keyword-spacing valid function* foo() {} ok 6290 keyword-spacing valid function *foo() {} ok 6291 keyword-spacing valid ({a:function() {} }) ok 6292 keyword-spacing valid ({a: function() {} }) ok 6293 keyword-spacing valid ;function foo() {}; ok 6294 keyword-spacing valid ; function foo() {} ; ok 6295 keyword-spacing valid (function() {}) ok 6296 keyword-spacing valid ( function () {}) ok 6297 keyword-spacing valid a =function() {} ok 6298 keyword-spacing valid a = function() {} ok 6299 keyword-spacing valid !function() {} ok 6300 keyword-spacing valid ! function() {} ok 6301 keyword-spacing valid `${function() {}}` ok 6302 keyword-spacing valid `${ function() {}}` ok 6303 keyword-spacing valid ok 6304 keyword-spacing valid ok 6305 keyword-spacing valid ({ get [b]() {} }) ok 6306 keyword-spacing valid class A { a() {} get [b]() {} } ok 6307 keyword-spacing valid class A { a() {} static get [b]() {} } ok 6308 keyword-spacing valid ({ get[b]() {} }) ok 6309 keyword-spacing valid class A { a() {}get[b]() {} } ok 6310 keyword-spacing valid class A { a() {}static get[b]() {} } ok 6311 keyword-spacing valid ({ get [b]() {} }) ok 6312 keyword-spacing valid class A { a() {} get [b]() {} } ok 6313 keyword-spacing valid ({ get[b]() {} }) ok 6314 keyword-spacing valid class A { a() {}get[b]() {} } ok 6315 keyword-spacing valid ({ a,get [b]() {} }) ok 6316 keyword-spacing valid ({ a, get[b]() {} }) ok 6317 keyword-spacing valid {} if (a) {} ok 6318 keyword-spacing valid if (a) {} else if (a) {} ok 6319 keyword-spacing valid {}if(a) {} ok 6320 keyword-spacing valid if(a) {}else if(a) {} ok 6321 keyword-spacing valid {} if (a) {} ok 6322 keyword-spacing valid if (a) {}else if (a) {} ok 6323 keyword-spacing valid {}if(a) {} ok 6324 keyword-spacing valid if(a) {} else if(a) {} ok 6325 keyword-spacing valid {if (a) {} } ok 6326 keyword-spacing valid { if(a) {} } ok 6327 keyword-spacing valid ;if (a) {} ok 6328 keyword-spacing valid ; if(a) {} ok 6329 keyword-spacing valid {} import {a} from "foo" ok 6330 keyword-spacing valid {} import a from "foo" ok 6331 keyword-spacing valid {} import * as a from "a" ok 6332 keyword-spacing valid {}import{a}from"foo" ok 6333 keyword-spacing valid {}import*as a from"foo" ok 6334 keyword-spacing valid {} import {a}from"foo" ok 6335 keyword-spacing valid {} import *as a from"foo" ok 6336 keyword-spacing valid {}import{a} from "foo" ok 6337 keyword-spacing valid {}import* as a from "foo" ok 6338 keyword-spacing valid ;import {a} from "foo" ok 6339 keyword-spacing valid ; import{a}from"foo" ok 6340 keyword-spacing valid for ([foo] in {foo: 0}) {} ok 6341 keyword-spacing valid for([foo]in{foo: 0}) {} ok 6342 keyword-spacing valid for([foo] in {foo: 0}) {} ok 6343 keyword-spacing valid for ([foo]in{foo: 0}) {} ok 6344 keyword-spacing valid for ([foo] in ({foo: 0})) {} ok 6345 keyword-spacing valid if ("foo"in{foo: 0}) {} ok 6346 keyword-spacing valid if("foo" in {foo: 0}) {} ok 6347 keyword-spacing valid if ("foo"instanceof{foo: 0}) {} ok 6348 keyword-spacing valid if("foo" instanceof {foo: 0}) {} ok 6349 keyword-spacing valid {} let [a] = b ok 6350 keyword-spacing valid {}let[a] = b ok 6351 keyword-spacing valid {} let [a] = b ok 6352 keyword-spacing valid {}let[a] = b ok 6353 keyword-spacing valid {let [a] = b } ok 6354 keyword-spacing valid { let[a] = b } ok 6355 keyword-spacing valid ;let [a] = b ok 6356 keyword-spacing valid ; let[a] = b ok 6357 keyword-spacing valid {} new foo() ok 6358 keyword-spacing valid {}new foo() ok 6359 keyword-spacing valid {} new foo() ok 6360 keyword-spacing valid {}new foo() ok 6361 keyword-spacing valid [new foo()] ok 6362 keyword-spacing valid [ new foo()] ok 6363 keyword-spacing valid (() =>new foo()) ok 6364 keyword-spacing valid (() => new foo()) ok 6365 keyword-spacing valid {new foo() } ok 6366 keyword-spacing valid { new foo() } ok 6367 keyword-spacing valid (0,new foo()) ok 6368 keyword-spacing valid (0, new foo()) ok 6369 keyword-spacing valid a[new foo()] ok 6370 keyword-spacing valid ({[new foo()]: 0}) ok 6371 keyword-spacing valid a[ new foo()] ok 6372 keyword-spacing valid ({[ new foo()]: 0}) ok 6373 keyword-spacing valid ({a:new foo() }) ok 6374 keyword-spacing valid ({a: new foo() }) ok 6375 keyword-spacing valid ;new foo() ok 6376 keyword-spacing valid ; new foo() ok 6377 keyword-spacing valid (new foo()) ok 6378 keyword-spacing valid ( new foo()) ok 6379 keyword-spacing valid a =new foo() ok 6380 keyword-spacing valid a = new foo() ok 6381 keyword-spacing valid !new(foo)() ok 6382 keyword-spacing valid ! new (foo)() ok 6383 keyword-spacing valid `${new foo()}` ok 6384 keyword-spacing valid `${ new foo()}` ok 6385 keyword-spacing valid ok 6386 keyword-spacing valid ok 6387 keyword-spacing valid for ([foo] of {foo: 0}) {} ok 6388 keyword-spacing valid for([foo]of{foo: 0}) {} ok 6389 keyword-spacing valid for([foo] of {foo: 0}) {} ok 6390 keyword-spacing valid for ([foo]of{foo: 0}) {} ok 6391 keyword-spacing valid for ([foo] of ({foo: 0})) {} ok 6392 keyword-spacing valid function foo() { {} return +a } ok 6393 keyword-spacing valid function foo() { {}return+a } ok 6394 keyword-spacing valid function foo() { {} return +a } ok 6395 keyword-spacing valid function foo() { {}return+a } ok 6396 keyword-spacing valid function foo() {\u000areturn\u000a} ok 6397 keyword-spacing valid function foo() {\u000areturn\u000a} ok 6398 keyword-spacing valid function foo() {return} ok 6399 keyword-spacing valid function foo() { return } ok 6400 keyword-spacing valid function foo() { ;return; } ok 6401 keyword-spacing valid function foo() { ; return ; } ok 6402 keyword-spacing valid ({ set [b](value) {} }) ok 6403 keyword-spacing valid class A { a() {} set [b](value) {} } ok 6404 keyword-spacing valid class A { a() {} static set [b](value) {} } ok 6405 keyword-spacing valid ({ set[b](value) {} }) ok 6406 keyword-spacing valid class A { a() {}set[b](value) {} } ok 6407 keyword-spacing valid ({ set [b](value) {} }) ok 6408 keyword-spacing valid class A { a() {} set [b](value) {} } ok 6409 keyword-spacing valid ({ set[b](value) {} }) ok 6410 keyword-spacing valid class A { a() {}set[b](value) {} } ok 6411 keyword-spacing valid ({ a,set [b](value) {} }) ok 6412 keyword-spacing valid ({ a, set[b](value) {} }) ok 6413 keyword-spacing valid class A { a() {} static [b]() {} } ok 6414 keyword-spacing valid class A { a() {}static[b]() {} } ok 6415 keyword-spacing valid class A { a() {} static [b]() {} } ok 6416 keyword-spacing valid class A { a() {}static[b]() {} } ok 6417 keyword-spacing valid class A { static* [a]() {} } ok 6418 keyword-spacing valid class A { static *[a]() {} } ok 6419 keyword-spacing valid class A { ;static a() {} } ok 6420 keyword-spacing valid class A { ; static a() {} } ok 6421 keyword-spacing valid class A extends B { a() { {} super[b](); } } ok 6422 keyword-spacing valid class A extends B { a() { {}super[b](); } } ok 6423 keyword-spacing valid class A extends B { a() { {} super[b](); } } ok 6424 keyword-spacing valid class A extends B { a() { {}super[b](); } } ok 6425 keyword-spacing valid class A extends B { constructor() { [super()]; } } ok 6426 keyword-spacing valid class A extends B { constructor() { [ super() ]; } } ok 6427 keyword-spacing valid class A extends B { constructor() { () =>super(); } } ok 6428 keyword-spacing valid class A extends B { constructor() { () => super(); } } ok 6429 keyword-spacing valid class A extends B { constructor() {super()} } ok 6430 keyword-spacing valid class A extends B { constructor() { super() } } ok 6431 keyword-spacing valid class A extends B { constructor() { (0,super()) } } ok 6432 keyword-spacing valid class A extends B { constructor() { (0, super()) } } ok 6433 keyword-spacing valid class A extends B { constructor() { ({[super()]: 0}) } } ok 6434 keyword-spacing valid class A extends B { constructor() { ({[ super() ]: 0}) } } ok 6435 keyword-spacing valid class A extends B { constructor() { ({a:super() }) } } ok 6436 keyword-spacing valid class A extends B { constructor() { ({a: super() }) } } ok 6437 keyword-spacing valid class A extends B { constructor() { super(); } } ok 6438 keyword-spacing valid class A extends B { constructor() { super (); } } ok 6439 keyword-spacing valid class A extends B { constructor() { ;super(); } } ok 6440 keyword-spacing valid class A extends B { constructor() { ; super() ; } } ok 6441 keyword-spacing valid class A extends B { constructor() { (super()) } } ok 6442 keyword-spacing valid class A extends B { constructor() { ( super() ) } } ok 6443 keyword-spacing valid class A extends B { constructor() { b =super() } } ok 6444 keyword-spacing valid class A extends B { constructor() { b = super() } } ok 6445 keyword-spacing valid class A extends B { constructor() { !super() } } ok 6446 keyword-spacing valid class A extends B { constructor() { ! super() } } ok 6447 keyword-spacing valid class A extends B { constructor() { `${super()}` } } ok 6448 keyword-spacing valid class A extends B { constructor() { `${ super() }` } } ok 6449 keyword-spacing valid class A extends B { constructor() { } } ok 6450 keyword-spacing valid class A extends B { constructor() { } } ok 6451 keyword-spacing valid {} switch (a) {} ok 6452 keyword-spacing valid {}switch(a) {} ok 6453 keyword-spacing valid {} switch (a) {} ok 6454 keyword-spacing valid {}switch(a) {} ok 6455 keyword-spacing valid {switch (a) {} } ok 6456 keyword-spacing valid { switch(a) {} } ok 6457 keyword-spacing valid ;switch (a) {} ok 6458 keyword-spacing valid ; switch(a) {} ok 6459 keyword-spacing valid {} this[a] ok 6460 keyword-spacing valid {}this[a] ok 6461 keyword-spacing valid {} this[a] ok 6462 keyword-spacing valid {}this[a] ok 6463 keyword-spacing valid [this] ok 6464 keyword-spacing valid [ this ] ok 6465 keyword-spacing valid (() =>this) ok 6466 keyword-spacing valid (() => this) ok 6467 keyword-spacing valid {this} ok 6468 keyword-spacing valid { this } ok 6469 keyword-spacing valid (0,this) ok 6470 keyword-spacing valid (0, this) ok 6471 keyword-spacing valid a[this] ok 6472 keyword-spacing valid ({[this]: 0}) ok 6473 keyword-spacing valid a[ this ] ok 6474 keyword-spacing valid ({[ this ]: 0}) ok 6475 keyword-spacing valid ({a:this }) ok 6476 keyword-spacing valid ({a: this }) ok 6477 keyword-spacing valid ;this ok 6478 keyword-spacing valid ; this ok 6479 keyword-spacing valid (this) ok 6480 keyword-spacing valid ( this ) ok 6481 keyword-spacing valid a =this ok 6482 keyword-spacing valid a = this ok 6483 keyword-spacing valid !this ok 6484 keyword-spacing valid ! this ok 6485 keyword-spacing valid `${this}` ok 6486 keyword-spacing valid `${ this }` ok 6487 keyword-spacing valid ok 6488 keyword-spacing valid ok 6489 keyword-spacing valid function foo() { {} throw +a } ok 6490 keyword-spacing valid function foo() { {}throw+a } ok 6491 keyword-spacing valid function foo() { {} throw +a } ok 6492 keyword-spacing valid function foo() { {}throw+a } ok 6493 keyword-spacing valid function foo() {\u000athrow a\u000a} ok 6494 keyword-spacing valid function foo() {\u000athrow a\u000a} ok 6495 keyword-spacing valid function foo() {throw a } ok 6496 keyword-spacing valid function foo() { throw a } ok 6497 keyword-spacing valid function foo() { ;throw a } ok 6498 keyword-spacing valid function foo() { ; throw a } ok 6499 keyword-spacing valid {} try {} finally {} ok 6500 keyword-spacing valid {}try{}finally{} ok 6501 keyword-spacing valid {} try {}finally{} ok 6502 keyword-spacing valid {}try{} finally {} ok 6503 keyword-spacing valid {try {} finally {}} ok 6504 keyword-spacing valid { try{}finally{}} ok 6505 keyword-spacing valid ;try {} finally {} ok 6506 keyword-spacing valid ; try{}finally{} ok 6507 keyword-spacing valid {} typeof foo ok 6508 keyword-spacing valid {}typeof foo ok 6509 keyword-spacing valid {} typeof foo ok 6510 keyword-spacing valid {}typeof foo ok 6511 keyword-spacing valid [typeof foo] ok 6512 keyword-spacing valid [ typeof foo] ok 6513 keyword-spacing valid (() =>typeof foo) ok 6514 keyword-spacing valid (() => typeof foo) ok 6515 keyword-spacing valid {typeof foo } ok 6516 keyword-spacing valid { typeof foo } ok 6517 keyword-spacing valid (0,typeof foo) ok 6518 keyword-spacing valid (0, typeof foo) ok 6519 keyword-spacing valid a[typeof foo] ok 6520 keyword-spacing valid ({[typeof foo]: 0}) ok 6521 keyword-spacing valid a[ typeof foo] ok 6522 keyword-spacing valid ({[ typeof foo]: 0}) ok 6523 keyword-spacing valid ({a:typeof foo }) ok 6524 keyword-spacing valid ({a: typeof foo }) ok 6525 keyword-spacing valid ;typeof foo ok 6526 keyword-spacing valid ; typeof foo ok 6527 keyword-spacing valid (typeof foo) ok 6528 keyword-spacing valid ( typeof foo) ok 6529 keyword-spacing valid a =typeof foo ok 6530 keyword-spacing valid a = typeof foo ok 6531 keyword-spacing valid !typeof+foo ok 6532 keyword-spacing valid ! typeof +foo ok 6533 keyword-spacing valid `${typeof foo}` ok 6534 keyword-spacing valid `${ typeof foo}` ok 6535 keyword-spacing valid ok 6536 keyword-spacing valid ok 6537 keyword-spacing valid {} var [a] = b ok 6538 keyword-spacing valid {}var[a] = b ok 6539 keyword-spacing valid {} var [a] = b ok 6540 keyword-spacing valid {}var[a] = b ok 6541 keyword-spacing valid for (var foo in [1, 2, 3]) {} ok 6542 keyword-spacing valid {var a = b } ok 6543 keyword-spacing valid { var a = b } ok 6544 keyword-spacing valid ;var a = b ok 6545 keyword-spacing valid ; var a = b ok 6546 keyword-spacing valid {} void foo ok 6547 keyword-spacing valid {}void foo ok 6548 keyword-spacing valid {} void foo ok 6549 keyword-spacing valid {}void foo ok 6550 keyword-spacing valid [void foo] ok 6551 keyword-spacing valid [ void foo] ok 6552 keyword-spacing valid (() =>void foo) ok 6553 keyword-spacing valid (() => void foo) ok 6554 keyword-spacing valid {void foo } ok 6555 keyword-spacing valid { void foo } ok 6556 keyword-spacing valid (0,void foo) ok 6557 keyword-spacing valid (0, void foo) ok 6558 keyword-spacing valid a[void foo] ok 6559 keyword-spacing valid ({[void foo]: 0}) ok 6560 keyword-spacing valid a[ void foo] ok 6561 keyword-spacing valid ({[ void foo]: 0}) ok 6562 keyword-spacing valid ({a:void foo }) ok 6563 keyword-spacing valid ({a: void foo }) ok 6564 keyword-spacing valid ;void foo ok 6565 keyword-spacing valid ; void foo ok 6566 keyword-spacing valid (void foo) ok 6567 keyword-spacing valid ( void foo) ok 6568 keyword-spacing valid a =void foo ok 6569 keyword-spacing valid a = void foo ok 6570 keyword-spacing valid !void+foo ok 6571 keyword-spacing valid ! void +foo ok 6572 keyword-spacing valid `${void foo}` ok 6573 keyword-spacing valid `${ void foo}` ok 6574 keyword-spacing valid ok 6575 keyword-spacing valid ok 6576 keyword-spacing valid {} while (a) {} ok 6577 keyword-spacing valid do {} while (a) ok 6578 keyword-spacing valid {}while(a) {} ok 6579 keyword-spacing valid do{}while(a) ok 6580 keyword-spacing valid {} while (a) {} ok 6581 keyword-spacing valid do{} while (a) ok 6582 keyword-spacing valid {}while(a) {} ok 6583 keyword-spacing valid do {}while(a) ok 6584 keyword-spacing valid do {}\u000awhile (a) ok 6585 keyword-spacing valid do{}\u000awhile(a) ok 6586 keyword-spacing valid {while (a) {}} ok 6587 keyword-spacing valid { while(a) {}} ok 6588 keyword-spacing valid ;while (a); ok 6589 keyword-spacing valid do;while (a); ok 6590 keyword-spacing valid ; while(a) ; ok 6591 keyword-spacing valid do ; while(a) ; ok 6592 keyword-spacing valid {} with (obj) {} ok 6593 keyword-spacing valid {}with(obj) {} ok 6594 keyword-spacing valid {} with (obj) {} ok 6595 keyword-spacing valid {}with(obj) {} ok 6596 keyword-spacing valid {with (obj) {}} ok 6597 keyword-spacing valid { with(obj) {}} ok 6598 keyword-spacing valid ;with (obj) {} ok 6599 keyword-spacing valid ; with(obj) {} ok 6600 keyword-spacing valid function* foo() { {} yield foo } ok 6601 keyword-spacing valid function* foo() { {}yield foo } ok 6602 keyword-spacing valid function* foo() { {} yield foo } ok 6603 keyword-spacing valid function* foo() { {}yield foo } ok 6604 keyword-spacing valid function* foo() { [yield] } ok 6605 keyword-spacing valid function* foo() { [ yield ] } ok 6606 keyword-spacing valid function* foo() {yield} ok 6607 keyword-spacing valid function* foo() { yield } ok 6608 keyword-spacing valid function* foo() { (0,yield foo) } ok 6609 keyword-spacing valid function* foo() { (0, yield foo) } ok 6610 keyword-spacing valid function* foo() { a[yield] } ok 6611 keyword-spacing valid function* foo() { ({[yield]: 0}) } ok 6612 keyword-spacing valid function* foo() { a[ yield ] } ok 6613 keyword-spacing valid function* foo() { ({[ yield ]: 0}) } ok 6614 keyword-spacing valid function* foo() { ({a:yield foo }) } ok 6615 keyword-spacing valid function* foo() { ({a: yield foo }) } ok 6616 keyword-spacing valid function* foo() { ;yield; } ok 6617 keyword-spacing valid function* foo() { ; yield ; } ok 6618 keyword-spacing valid function* foo() { (yield) } ok 6619 keyword-spacing valid function* foo() { ( yield ) } ok 6620 keyword-spacing valid function* foo() { a =yield foo } ok 6621 keyword-spacing valid function* foo() { a = yield foo } ok 6622 keyword-spacing valid function* foo() { yield+foo } ok 6623 keyword-spacing valid function* foo() { yield +foo } ok 6624 keyword-spacing valid `${yield}` ok 6625 keyword-spacing valid `${ yield}` ok 6626 keyword-spacing valid function* foo() { } ok 6627 keyword-spacing valid function* foo() { } ok 6628 keyword-spacing valid @dec class Foo {} ok 6629 keyword-spacing valid class Foo { @dec get bar() {} @dec set baz() {} @dec async baw() {} } ok 6630 keyword-spacing valid class Foo { @dec static qux() {} @dec static get bar() {} @dec static set baz() {} @dec static async baw() {} } ok 6631 keyword-spacing valid symbol => 4; ok 6632 keyword-spacing invalid import *as a from "foo" ok 6633 keyword-spacing invalid import* as a from"foo" ok 6634 keyword-spacing invalid import*as a from"foo" ok 6635 keyword-spacing invalid import * as a from "foo" ok 6636 keyword-spacing invalid {}async function foo() {} ok 6637 keyword-spacing invalid {} async function foo() {} ok 6638 keyword-spacing invalid {}async function foo() {} ok 6639 keyword-spacing invalid {} async function foo() {} ok 6640 keyword-spacing invalid {}async () => {} ok 6641 keyword-spacing invalid {} async () => {} ok 6642 keyword-spacing invalid {}async () => {} ok 6643 keyword-spacing invalid {} async () => {} ok 6644 keyword-spacing invalid ({async[b]() {}}) ok 6645 keyword-spacing invalid ({async [b]() {}}) ok 6646 keyword-spacing invalid ({async[b]() {}}) ok 6647 keyword-spacing invalid ({async [b]() {}}) ok 6648 keyword-spacing invalid class A {a(){}async[b]() {}} ok 6649 keyword-spacing invalid class A {a(){} async [b]() {}} ok 6650 keyword-spacing invalid class A {a(){}async[b]() {}} ok 6651 keyword-spacing invalid class A {a(){} async [b]() {}} ok 6652 keyword-spacing invalid async function wrap() { {}await a } ok 6653 keyword-spacing invalid async function wrap() { {} await a } ok 6654 keyword-spacing invalid async function wrap() { {}await a } ok 6655 keyword-spacing invalid async function wrap() { {} await a } ok 6656 keyword-spacing invalid async function wrap() { for await(x of xs); } ok 6657 keyword-spacing invalid async function wrap() { for await (x of xs); } ok 6658 keyword-spacing invalid async function wrap() { for await(x of xs); } ok 6659 keyword-spacing invalid async function wrap() { for await (x of xs); } ok 6660 keyword-spacing invalid A: for (;;) { {}break A; } ok 6661 keyword-spacing invalid A: for(;;) { {} break A; } ok 6662 keyword-spacing invalid A: for(;;) { {}break A; } ok 6663 keyword-spacing invalid A: for (;;) { {} break A; } ok 6664 keyword-spacing invalid switch (a) { case 0: {}case+1: } ok 6665 keyword-spacing invalid switch (a) { case 0: {}case(1): } ok 6666 keyword-spacing invalid switch(a) { case 0: {} case +1: } ok 6667 keyword-spacing invalid switch(a) { case 0: {} case (1): } ok 6668 keyword-spacing invalid switch(a) { case 0: {}case+1: } ok 6669 keyword-spacing invalid switch (a) { case 0: {} case +1: } ok 6670 keyword-spacing invalid try {}catch(e) {} ok 6671 keyword-spacing invalid try{} catch (e) {} ok 6672 keyword-spacing invalid try{}catch(e) {} ok 6673 keyword-spacing invalid try {} catch (e) {} ok 6674 keyword-spacing invalid {}class Bar {} ok 6675 keyword-spacing invalid (class{}) ok 6676 keyword-spacing invalid {} class Bar {} ok 6677 keyword-spacing invalid (class {}) ok 6678 keyword-spacing invalid {}class Bar {} ok 6679 keyword-spacing invalid {} class Bar {} ok 6680 keyword-spacing invalid {}const[a] = b ok 6681 keyword-spacing invalid {}const{a} = b ok 6682 keyword-spacing invalid {} const [a] = b ok 6683 keyword-spacing invalid {} const {a} = b ok 6684 keyword-spacing invalid {}const[a] = b ok 6685 keyword-spacing invalid {}const{a} = b ok 6686 keyword-spacing invalid {} const [a] = b ok 6687 keyword-spacing invalid {} const {a} = b ok 6688 keyword-spacing invalid A: for (;;) { {}continue A; } ok 6689 keyword-spacing invalid A: for(;;) { {} continue A; } ok 6690 keyword-spacing invalid A: for(;;) { {}continue A; } ok 6691 keyword-spacing invalid A: for (;;) { {} continue A; } ok 6692 keyword-spacing invalid {}debugger ok 6693 keyword-spacing invalid {} debugger ok 6694 keyword-spacing invalid {}debugger ok 6695 keyword-spacing invalid {} debugger ok 6696 keyword-spacing invalid switch (a) { case 0: {}default: } ok 6697 keyword-spacing invalid switch(a) { case 0: {} default: } ok 6698 keyword-spacing invalid switch(a) { case 0: {}default: } ok 6699 keyword-spacing invalid switch (a) { case 0: {} default: } ok 6700 keyword-spacing invalid {}delete foo.a ok 6701 keyword-spacing invalid {} delete foo.a ok 6702 keyword-spacing invalid {}delete foo.a ok 6703 keyword-spacing invalid {} delete foo.a ok 6704 keyword-spacing invalid {}do{} while (true) ok 6705 keyword-spacing invalid {} do {}while(true) ok 6706 keyword-spacing invalid {}do{}while(true) ok 6707 keyword-spacing invalid {} do {} while (true) ok 6708 keyword-spacing invalid if (a) {}else{} ok 6709 keyword-spacing invalid if (a) {}else if (b) {} ok 6710 keyword-spacing invalid if (a) {}else(0) ok 6711 keyword-spacing invalid if (a) {}else[] ok 6712 keyword-spacing invalid if (a) {}else+1 ok 6713 keyword-spacing invalid if (a) {}else"a" ok 6714 keyword-spacing invalid if(a){} else {} ok 6715 keyword-spacing invalid if(a){} else if(b) {} ok 6716 keyword-spacing invalid if(a) {} else (0) ok 6717 keyword-spacing invalid if(a) {} else [] ok 6718 keyword-spacing invalid if(a) {} else +1 ok 6719 keyword-spacing invalid if(a) {} else "a" ok 6720 keyword-spacing invalid if(a) {}else{} ok 6721 keyword-spacing invalid if (a) {} else {} ok 6722 keyword-spacing invalid if (a) {}else {} ok 6723 keyword-spacing invalid if (a) {} else{} ok 6724 keyword-spacing invalid if(a) {} else{} ok 6725 keyword-spacing invalid if(a) {}else {} ok 6726 keyword-spacing invalid var a = 0; {}export{a} ok 6727 keyword-spacing invalid var a = 0; {}export default a ok 6728 keyword-spacing invalid var a = 0; export default{a} ok 6729 keyword-spacing invalid {}export* from "a" ok 6730 keyword-spacing invalid var a = 0; {} export {a} ok 6731 keyword-spacing invalid var a = 0; {}export{a} ok 6732 keyword-spacing invalid var a = 0; {} export {a} ok 6733 keyword-spacing invalid class Bar extends[] {} ok 6734 keyword-spacing invalid (class extends[] {}) ok 6735 keyword-spacing invalid class Bar extends [] {} ok 6736 keyword-spacing invalid (class extends [] {}) ok 6737 keyword-spacing invalid class Bar extends[] {} ok 6738 keyword-spacing invalid class Bar extends [] {} ok 6739 keyword-spacing invalid class Bar extends`}` {} ok 6740 keyword-spacing invalid try {}finally{} ok 6741 keyword-spacing invalid try{} finally {} ok 6742 keyword-spacing invalid try{}finally{} ok 6743 keyword-spacing invalid try {} finally {} ok 6744 keyword-spacing invalid {}for(;;) {} ok 6745 keyword-spacing invalid {}for(var foo in obj) {} ok 6746 keyword-spacing invalid {}for(var foo of list) {} ok 6747 keyword-spacing invalid {} for (;;) {} ok 6748 keyword-spacing invalid {} for (var foo in obj) {} ok 6749 keyword-spacing invalid {} for (var foo of list) {} ok 6750 keyword-spacing invalid {}for(;;) {} ok 6751 keyword-spacing invalid {}for(var foo in obj) {} ok 6752 keyword-spacing invalid {}for(var foo of list) {} ok 6753 keyword-spacing invalid {} for (;;) {} ok 6754 keyword-spacing invalid {} for (var foo in obj) {} ok 6755 keyword-spacing invalid {} for (var foo of list) {} ok 6756 keyword-spacing invalid import {foo}from"foo" ok 6757 keyword-spacing invalid export {foo}from"foo" ok 6758 keyword-spacing invalid export *from"foo" ok 6759 keyword-spacing invalid import{foo} from "foo" ok 6760 keyword-spacing invalid export{foo} from "foo" ok 6761 keyword-spacing invalid export* from "foo" ok 6762 keyword-spacing invalid import{foo}from"foo" ok 6763 keyword-spacing invalid export{foo}from"foo" ok 6764 keyword-spacing invalid export*from"foo" ok 6765 keyword-spacing invalid import {foo} from "foo" ok 6766 keyword-spacing invalid export {foo} from "foo" ok 6767 keyword-spacing invalid export * from "foo" ok 6768 keyword-spacing invalid {}function foo() {} ok 6769 keyword-spacing invalid {} function foo() {} ok 6770 keyword-spacing invalid {}function foo() {} ok 6771 keyword-spacing invalid {} function foo() {} ok 6772 keyword-spacing invalid ({ get[b]() {} }) ok 6773 keyword-spacing invalid class A { a() {}get[b]() {} } ok 6774 keyword-spacing invalid class A { a() {} static get[b]() {} } ok 6775 keyword-spacing invalid ({ get [b]() {} }) ok 6776 keyword-spacing invalid class A { a() {} get [b]() {} } ok 6777 keyword-spacing invalid class A { a() {}static get [b]() {} } ok 6778 keyword-spacing invalid ({ get[b]() {} }) ok 6779 keyword-spacing invalid class A { a() {}get[b]() {} } ok 6780 keyword-spacing invalid ({ get [b]() {} }) ok 6781 keyword-spacing invalid class A { a() {} get [b]() {} } ok 6782 keyword-spacing invalid {}if(a) {} ok 6783 keyword-spacing invalid if (a) {} else if(b) {} ok 6784 keyword-spacing invalid {} if (a) {} ok 6785 keyword-spacing invalid if(a) {}else if (b) {} ok 6786 keyword-spacing invalid {}if(a) {} ok 6787 keyword-spacing invalid if (a) {}else if(b) {} ok 6788 keyword-spacing invalid {} if (a) {} ok 6789 keyword-spacing invalid if(a) {} else if (b) {} ok 6790 keyword-spacing invalid {}import{a} from "foo" ok 6791 keyword-spacing invalid {}import a from "foo" ok 6792 keyword-spacing invalid {}import* as a from "a" ok 6793 keyword-spacing invalid {} import {a}from"foo" ok 6794 keyword-spacing invalid {} import *as a from"foo" ok 6795 keyword-spacing invalid {}import{a}from"foo" ok 6796 keyword-spacing invalid {}import*as a from"foo" ok 6797 keyword-spacing invalid {} import {a} from "foo" ok 6798 keyword-spacing invalid {} import * as a from "foo" ok 6799 keyword-spacing invalid for ([foo]in{foo: 0}) {} ok 6800 keyword-spacing invalid for([foo] in {foo: 0}) {} ok 6801 keyword-spacing invalid for([foo]in{foo: 0}) {} ok 6802 keyword-spacing invalid for ([foo] in {foo: 0}) {} ok 6803 keyword-spacing invalid {}let[a] = b ok 6804 keyword-spacing invalid {} let [a] = b ok 6805 keyword-spacing invalid {}let[a] = b ok 6806 keyword-spacing invalid {} let [a] = b ok 6807 keyword-spacing invalid {}new foo() ok 6808 keyword-spacing invalid {} new foo() ok 6809 keyword-spacing invalid {}new foo() ok 6810 keyword-spacing invalid {} new foo() ok 6811 keyword-spacing invalid for ([foo]of{foo: 0}) {} ok 6812 keyword-spacing invalid for([foo] of {foo: 0}) {} ok 6813 keyword-spacing invalid for([foo]of{foo: 0}) {} ok 6814 keyword-spacing invalid for ([foo] of {foo: 0}) {} ok 6815 keyword-spacing invalid function foo() { {}return+a } ok 6816 keyword-spacing invalid function foo() { {} return +a } ok 6817 keyword-spacing invalid function foo() { {}return+a } ok 6818 keyword-spacing invalid function foo() { {} return +a } ok 6819 keyword-spacing invalid ({ set[b](value) {} }) ok 6820 keyword-spacing invalid class A { a() {}set[b](value) {} } ok 6821 keyword-spacing invalid class A { a() {} static set[b](value) {} } ok 6822 keyword-spacing invalid ({ set [b](value) {} }) ok 6823 keyword-spacing invalid class A { a() {} set [b](value) {} } ok 6824 keyword-spacing invalid ({ set[b](value) {} }) ok 6825 keyword-spacing invalid class A { a() {}set[b](value) {} } ok 6826 keyword-spacing invalid ({ set [b](value) {} }) ok 6827 keyword-spacing invalid class A { a() {} set [b](value) {} } ok 6828 keyword-spacing invalid class A { a() {}static[b]() {} } ok 6829 keyword-spacing invalid class A { a() {}static get [b]() {} } ok 6830 keyword-spacing invalid class A { a() {} static [b]() {} } ok 6831 keyword-spacing invalid class A { a() {} static get[b]() {} } ok 6832 keyword-spacing invalid class A { a() {}static[b]() {} } ok 6833 keyword-spacing invalid class A { a() {} static [b]() {} } ok 6834 keyword-spacing invalid class A { a() { {}super[b]; } } ok 6835 keyword-spacing invalid class A { a() { {} super[b]; } } ok 6836 keyword-spacing invalid class A { a() { {}super[b]; } } ok 6837 keyword-spacing invalid class A { a() { {} super[b]; } } ok 6838 keyword-spacing invalid {}switch(a) {} ok 6839 keyword-spacing invalid {} switch (a) {} ok 6840 keyword-spacing invalid {}switch(a) {} ok 6841 keyword-spacing invalid {} switch (a) {} ok 6842 keyword-spacing invalid {}this[a] ok 6843 keyword-spacing invalid {} this[a] ok 6844 keyword-spacing invalid {}this[a] ok 6845 keyword-spacing invalid {} this[a] ok 6846 keyword-spacing invalid function foo() { {}throw+a } ok 6847 keyword-spacing invalid function foo() { {} throw +a } ok 6848 keyword-spacing invalid function foo() { {}throw+a } ok 6849 keyword-spacing invalid function foo() { {} throw +a } ok 6850 keyword-spacing invalid {}try{} finally {} ok 6851 keyword-spacing invalid {} try {}finally{} ok 6852 keyword-spacing invalid {}try{}finally{} ok 6853 keyword-spacing invalid {} try {} finally {} ok 6854 keyword-spacing invalid {}typeof foo ok 6855 keyword-spacing invalid {} typeof foo ok 6856 keyword-spacing invalid {}typeof foo ok 6857 keyword-spacing invalid {} typeof foo ok 6858 keyword-spacing invalid {}var[a] = b ok 6859 keyword-spacing invalid {} var [a] = b ok 6860 keyword-spacing invalid {}var[a] = b ok 6861 keyword-spacing invalid {} var [a] = b ok 6862 keyword-spacing invalid {}void foo ok 6863 keyword-spacing invalid {} void foo ok 6864 keyword-spacing invalid {}void foo ok 6865 keyword-spacing invalid {} void foo ok 6866 keyword-spacing invalid {}while(a) {} ok 6867 keyword-spacing invalid do {}while(a) ok 6868 keyword-spacing invalid {} while (a) {} ok 6869 keyword-spacing invalid do{} while (a) ok 6870 keyword-spacing invalid {}while(a) {} ok 6871 keyword-spacing invalid do{}while(a) ok 6872 keyword-spacing invalid {} while (a) {} ok 6873 keyword-spacing invalid do {} while (a) ok 6874 keyword-spacing invalid {}with(obj) {} ok 6875 keyword-spacing invalid {} with (obj) {} ok 6876 keyword-spacing invalid {}with(obj) {} ok 6877 keyword-spacing invalid {} with (obj) {} ok 6878 keyword-spacing invalid function* foo() { {}yield foo } ok 6879 keyword-spacing invalid function* foo() { {} yield foo } ok 6880 keyword-spacing invalid function* foo() { {}yield foo } ok 6881 keyword-spacing invalid function* foo() { {} yield foo } ok 6882 keyword-spacing invalid class Foo { @desc({set a(value) {}, get a() {}, async c() {}}) async[foo]() {} } ok 6883 line-comment-position valid // valid comment\u000a1 + 1; ok 6884 line-comment-position valid /* block comments are skipped */\u000a1 + 1; ok 6885 line-comment-position valid 1 + 1; /* block comments are skipped */ ok 6886 line-comment-position valid 1 + 1; /* eslint eqeqeq: 'error' */ ok 6887 line-comment-position valid 1 + 1; /* eslint-disable */ ok 6888 line-comment-position valid 1 + 1; /* eslint-enable */ ok 6889 line-comment-position valid 1 + 1; // eslint-disable-line ok 6890 line-comment-position valid // eslint-disable-next-line\u000a1 + 1; ok 6891 line-comment-position valid 1 + 1; // global MY_GLOBAL, ANOTHER ok 6892 line-comment-position valid 1 + 1; // globals MY_GLOBAL: true ok 6893 line-comment-position valid 1 + 1; // exported MY_GLOBAL, ANOTHER ok 6894 line-comment-position valid 1 + 1; // fallthrough ok 6895 line-comment-position valid 1 + 1; // fall through ok 6896 line-comment-position valid 1 + 1; // falls through ok 6897 line-comment-position valid 1 + 1; // jslint vars: true ok 6898 line-comment-position valid 1 + 1; // jshint ignore:line ok 6899 line-comment-position valid 1 + 1; // istanbul ignore next ok 6900 line-comment-position valid 1 + 1; // linter excepted comment ok 6901 line-comment-position valid // Meep\u000aconsole.log('Meep'); ok 6902 line-comment-position valid 1 + 1; // valid comment ok 6903 line-comment-position valid // jscs: disable\u000a1 + 1; ok 6904 line-comment-position valid // jscs: enable\u000a1 + 1; ok 6905 line-comment-position valid /* block comments are skipped */\u000a1 + 1; ok 6906 line-comment-position valid /*block comment*/\u000a/*block comment*/\u000a1 + 1; ok 6907 line-comment-position valid 1 + 1; /* block comment are skipped */ ok 6908 line-comment-position valid 1 + 1; // jshint strict: true ok 6909 line-comment-position valid // pragma valid comment\u000a1 + 1; ok 6910 line-comment-position valid // above\u000a1 + 1; // ignored ok 6911 line-comment-position valid foo; // eslint-disable-line no-alert ok 6912 line-comment-position invalid 1 + 1; // invalid comment ok 6913 line-comment-position invalid 1 + 1; // globalization is a word ok 6914 line-comment-position invalid // jscs: disable\u000a1 + 1; ok 6915 line-comment-position invalid // jscs: disable\u000a1 + 1; ok 6916 line-comment-position invalid // jscs: disable\u000a1 + 1; ok 6917 line-comment-position invalid 1 + 1; // mentioning falls through ok 6918 line-comment-position invalid // invalid comment\u000a1 + 1; ok 6919 line-comment-position invalid // pragma\u000a// invalid\u000a1 + 1; ok 6920 line-comment-position invalid 1 + 1; // linter\u000a2 + 2; // invalid comment ok 6921 linebreak-style valid var a = 'a',\u000a b = 'b';\u000a\u000a function foo(params) {\u000a /* do stuff */ \u000a }\u000a ok 6922 linebreak-style valid var a = 'a',\u000a b = 'b';\u000a\u000a function foo(params) {\u000a /* do stuff */ \u000a }\u000a ok 6923 linebreak-style valid var a = 'a',\u000d\u000a b = 'b';\u000d\u000a\u000d\u000a function foo(params) {\u000d\u000a /* do stuff */ \u000d\u000a }\u000d\u000a ok 6924 linebreak-style valid var b = 'b'; ok 6925 linebreak-style valid var b = 'b'; ok 6926 linebreak-style invalid var a = 'a';\u000d\u000a ok 6927 linebreak-style invalid var a = 'a';\u000d\u000a ok 6928 linebreak-style invalid var a = 'a';\u000a ok 6929 linebreak-style invalid var a = 'a',\u000a b = 'b';\u000a\u000a function foo(params) {\u000d\u000a /* do stuff */ \u000a }\u000d\u000a ok 6930 linebreak-style invalid var a = 'a',\u000d\u000a b = 'b';\u000d\u000a\u000a function foo(params) {\u000d\u000a\u000a /* do stuff */ \u000a }\u000d\u000a ok 6931 lines-around-comment valid bar()\u000a\u000a/** block block block\u000a * block \u000a */\u000a\u000avar a = 1; ok 6932 lines-around-comment valid bar()\u000a\u000a/** block block block\u000a * block \u000a */\u000avar a = 1; ok 6933 lines-around-comment valid bar()\u000a// line line line \u000avar a = 1; ok 6934 lines-around-comment valid bar()\u000a\u000a// line line line\u000avar a = 1; ok 6935 lines-around-comment valid bar()\u000a// line line line\u000a\u000avar a = 1; ok 6936 lines-around-comment valid bar()\u000a// line line line\u000a\u000avar a = 1; ok 6937 lines-around-comment valid foo()\u000a\u000a// line line line\u000avar a = 1; ok 6938 lines-around-comment valid foo()\u000a\u000a// line line line\u000a\u000avar a = 1; ok 6939 lines-around-comment valid foo()\u000a\u000a// line line line\u000a// line line\u000a\u000avar a = 1; ok 6940 lines-around-comment valid // line line line\u000a// line line ok 6941 lines-around-comment valid bar()\u000a\u000a/** A Block comment with a an empty line after\u000a *\u000a */\u000avar a = 1; ok 6942 lines-around-comment valid bar()\u000a\u000a/** block block block\u000a * block \u000a */\u000avar a = 1; ok 6943 lines-around-comment valid /** \u000ablock \u000ablock block\u000a */\u000a/* block \u000a block \u000a */ ok 6944 lines-around-comment valid bar()\u000a\u000a/** block block block\u000a * block \u000a */\u000a\u000avar a = 1; ok 6945 lines-around-comment valid foo() // An inline comment with a an empty line after\u000avar a = 1; ok 6946 lines-around-comment valid foo();\u000abar() /* An inline block comment with a an empty line after\u000a *\u000a */\u000avar a = 1; ok 6947 lines-around-comment valid bar()\u000a\u000a/** block block block\u000a * block \u000a */\u000a//line line line\u000avar a = 1; ok 6948 lines-around-comment valid bar()\u000a\u000a/** block block block\u000a * block \u000a */\u000a//line line line\u000avar a = 1; ok 6949 lines-around-comment valid var a,\u000a\u000a// line\u000ab; ok 6950 lines-around-comment valid function foo(){ \u000a// line at block start\u000avar g = 1;\u000a} ok 6951 lines-around-comment valid function foo(){// line at block start\u000avar g = 1;\u000a} ok 6952 lines-around-comment valid var foo = function(){\u000a// line at block start\u000avar g = 1;\u000a} ok 6953 lines-around-comment valid var foo = function(){\u000a// line at block start\u000a} ok 6954 lines-around-comment valid if(true){\u000a// line at block start\u000avar g = 1;\u000a} ok 6955 lines-around-comment valid if(true){\u000a\u000a// line at block start\u000avar g = 1;\u000a} ok 6956 lines-around-comment valid if(true){\u000a// line at block start\u000a} ok 6957 lines-around-comment valid if(true){ bar(); } else {\u000a// line at block start\u000a} ok 6958 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000a// line at switch case start\u000abreak;\u000a} ok 6959 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000a\u000a// line at switch case start\u000abreak;\u000a} ok 6960 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000a// line at switch case start\u000abreak;\u000a} ok 6961 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000a\u000a// line at switch case start\u000abreak;\u000a} ok 6962 lines-around-comment valid function foo(){ \u000a/* block comment at block start */\u000avar g = 1;\u000a} ok 6963 lines-around-comment valid function foo(){/* block comment at block start */\u000avar g = 1;\u000a} ok 6964 lines-around-comment valid var foo = function(){\u000a/* block comment at block start */\u000avar g = 1;\u000a} ok 6965 lines-around-comment valid if(true){\u000a/* block comment at block start */\u000avar g = 1;\u000a} ok 6966 lines-around-comment valid if(true){\u000a\u000a/* block comment at block start */\u000avar g = 1;\u000a} ok 6967 lines-around-comment valid while(true){\u000a\u000a/* \u000ablock comment at block start\u000a */\u000avar g = 1;\u000a} ok 6968 lines-around-comment valid class A {\u000a/**\u000a* hi\u000a */\u000aconstructor() {}\u000a} ok 6969 lines-around-comment valid class A {\u000a/**\u000a* hi\u000a */\u000aconstructor() {}\u000a} ok 6970 lines-around-comment valid class A {\u000a/**\u000a* hi\u000a */\u000aconstructor() {}\u000a} ok 6971 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000a/* block comment at switch case start */\u000abreak;\u000a} ok 6972 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000a\u000a/* block comment at switch case start */\u000abreak;\u000a} ok 6973 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000a/* block comment at switch case start */\u000abreak;\u000a} ok 6974 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000a\u000a/* block comment at switch case start */\u000abreak;\u000a} ok 6975 lines-around-comment valid var a,\u000a// line\u000a\u000ab; ok 6976 lines-around-comment valid function foo(){\u000avar g = 91;\u000a// line at block end\u000a} ok 6977 lines-around-comment valid function foo(){\u000avar g = 61;\u000a\u000a\u000a// line at block end\u000a} ok 6978 lines-around-comment valid var foo = function(){\u000avar g = 1;\u000a\u000a\u000a// line at block end\u000a} ok 6979 lines-around-comment valid if(true){\u000avar g = 1;\u000a// line at block end\u000a} ok 6980 lines-around-comment valid if(true){\u000avar g = 1;\u000a\u000a// line at block end\u000a} ok 6981 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000avar g = 1;\u000a\u000a// line at switch case end\u000a} ok 6982 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000avar g = 1;\u000a\u000a// line at switch case end\u000a\u000a} ok 6983 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000avar g = 1;\u000a\u000a// line at switch case end\u000a} ok 6984 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000avar g = 1;\u000a\u000a// line at switch case end\u000a\u000a} ok 6985 lines-around-comment valid while(true){\u000a// line at block start and end\u000a} ok 6986 lines-around-comment valid while(true){\u000a// line at block start and end\u000a} ok 6987 lines-around-comment valid while(true){\u000a// line at block start and end\u000a} ok 6988 lines-around-comment valid while(true){\u000a// line at block start and end\u000a} ok 6989 lines-around-comment valid while(true){\u000a// line at block start and end\u000a} ok 6990 lines-around-comment valid function foo(){ \u000avar g = 1;\u000a/* block comment at block end */\u000a} ok 6991 lines-around-comment valid function foo(){\u000avar g = 1;\u000a/* block comment at block end */} ok 6992 lines-around-comment valid var foo = function(){\u000avar g = 1;\u000a/* block comment at block end */\u000a} ok 6993 lines-around-comment valid if(true){\u000avar g = 1;\u000a/* block comment at block end */\u000a} ok 6994 lines-around-comment valid if(true){\u000avar g = 1;\u000a\u000a/* block comment at block end */\u000a} ok 6995 lines-around-comment valid while(true){\u000a\u000avar g = 1;\u000a\u000a/* \u000ablock comment at block end\u000a */} ok 6996 lines-around-comment valid class B {\u000aconstructor() {}\u000a\u000a/**\u000a* hi\u000a */\u000a} ok 6997 lines-around-comment valid class B {\u000aconstructor() {}\u000a\u000a/**\u000a* hi\u000a */\u000a} ok 6998 lines-around-comment valid class B {\u000aconstructor() {}\u000a\u000a/**\u000a* hi\u000a */\u000a} ok 6999 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000avar g = 1;\u000a\u000a/* block comment at switch case end */\u000a} ok 7000 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000avar g = 1;\u000a\u000a/* block comment at switch case end */\u000a\u000a} ok 7001 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000avar g = 1;\u000a\u000a/* block comment at switch case end */\u000a} ok 7002 lines-around-comment valid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000avar g = 1;\u000a\u000a/* block comment at switch case end */\u000a\u000a} ok 7003 lines-around-comment valid var a,\u000a\u000a// line\u000ab; ok 7004 lines-around-comment valid var obj = {\u000a // line at object start\u000a g: 1\u000a}; ok 7005 lines-around-comment valid function hi() {\u000a return {\u000a // hi\u000a test: function() {\u000a }\u000a }\u000a} ok 7006 lines-around-comment valid var obj = {\u000a /* block comment at object start*/\u000a g: 1\u000a}; ok 7007 lines-around-comment valid function hi() {\u000a return {\u000a /**\u000a * hi\u000a */\u000a test: function() {\u000a }\u000a }\u000a} ok 7008 lines-around-comment valid const {\u000a // line at object start\u000a g: a\u000a} = {}; ok 7009 lines-around-comment valid const {\u000a // line at object start\u000a g\u000a} = {}; ok 7010 lines-around-comment valid const {\u000a /* block comment at object-like start*/\u000a g: a\u000a} = {}; ok 7011 lines-around-comment valid const {\u000a /* block comment at object-like start*/\u000a g\u000a} = {}; ok 7012 lines-around-comment valid var a,\u000a// line\u000a\u000ab; ok 7013 lines-around-comment valid var obj = {\u000a g: 1\u000a // line at object end\u000a}; ok 7014 lines-around-comment valid function hi() {\u000a return {\u000a test: function() {\u000a }\u000a // hi\u000a }\u000a} ok 7015 lines-around-comment valid var obj = {\u000a g: 1\u000a \u000a /* block comment at object end*/\u000a}; ok 7016 lines-around-comment valid function hi() {\u000a return {\u000a test: function() {\u000a }\u000a \u000a /**\u000a * hi\u000a */\u000a }\u000a} ok 7017 lines-around-comment valid const {\u000a g: a\u000a // line at object end\u000a} = {}; ok 7018 lines-around-comment valid const {\u000a g\u000a // line at object end\u000a} = {}; ok 7019 lines-around-comment valid const {\u000a g: a\u000a \u000a /* block comment at object-like end*/\u000a} = {}; ok 7020 lines-around-comment valid const {\u000a g\u000a \u000a /* block comment at object-like end*/\u000a} = {}; ok 7021 lines-around-comment valid var a,\u000a\u000a// line\u000ab; ok 7022 lines-around-comment valid var arr = [\u000a // line at array start\u000a 1\u000a]; ok 7023 lines-around-comment valid var arr = [\u000a /* block comment at array start*/\u000a 1\u000a]; ok 7024 lines-around-comment valid const [\u000a // line at array start\u000a a\u000a] = []; ok 7025 lines-around-comment valid const [\u000a /* block comment at array start*/\u000a a\u000a] = []; ok 7026 lines-around-comment valid var a,\u000a// line\u000a\u000ab; ok 7027 lines-around-comment valid var arr = [\u000a 1\u000a // line at array end\u000a]; ok 7028 lines-around-comment valid var arr = [\u000a 1\u000a \u000a /* block comment at array end*/\u000a]; ok 7029 lines-around-comment valid const [\u000a a\u000a // line at array end\u000a] = []; ok 7030 lines-around-comment valid const [\u000a a\u000a \u000a /* block comment at array end*/\u000a] = []; ok 7031 lines-around-comment valid foo;\u000a\u000a/* eslint-disable no-underscore-dangle */\u000a\u000athis._values = values;\u000athis._values2 = true;\u000a/* eslint-enable no-underscore-dangle */\u000abar ok 7032 lines-around-comment valid foo;\u000a/* eslint */ ok 7033 lines-around-comment valid foo;\u000a/* jshint */ ok 7034 lines-around-comment valid foo;\u000a/* jslint */ ok 7035 lines-around-comment valid foo;\u000a/* istanbul */ ok 7036 lines-around-comment valid foo;\u000a/* global */ ok 7037 lines-around-comment valid foo;\u000a/* globals */ ok 7038 lines-around-comment valid foo;\u000a/* exported */ ok 7039 lines-around-comment valid foo;\u000a/* jscs */ ok 7040 lines-around-comment valid foo\u000a/* this is pragmatic */ ok 7041 lines-around-comment valid foo\u000a/* this is pragmatic */ ok 7042 lines-around-comment invalid bar()\u000a/** block block block\u000a * block \u000a */\u000avar a = 1; ok 7043 lines-around-comment invalid baz()\u000a// A line comment with no empty line after\u000avar a = 1; ok 7044 lines-around-comment invalid baz()\u000a// A line comment with no empty line after\u000avar a = 1; ok 7045 lines-around-comment invalid // A line comment with no empty line after\u000avar a = 1; ok 7046 lines-around-comment invalid baz()\u000a// A line comment with no empty line after\u000avar a = 1; ok 7047 lines-around-comment invalid bar()\u000a/**\u000a * block block block\u000a */\u000avar a = 1; ok 7048 lines-around-comment invalid bar()\u000a/* first block comment */ /* second block comment */\u000avar a = 1; ok 7049 lines-around-comment invalid bar()\u000a/* first block comment */ /* second block\u000a comment */\u000avar a = 1; ok 7050 lines-around-comment invalid bar()\u000a/**\u000a * block block block\u000a */\u000avar a = 1; ok 7051 lines-around-comment invalid bar()\u000a/**\u000a * block block block\u000a */\u000avar a = 1; ok 7052 lines-around-comment invalid var a,\u000a// line\u000ab; ok 7053 lines-around-comment invalid function foo(){\u000avar a = 1;\u000a// line at block start\u000avar g = 1;\u000a} ok 7054 lines-around-comment invalid var a,\u000a// line\u000ab; ok 7055 lines-around-comment invalid function foo(){\u000avar a = 1;\u000a\u000a// line at block start\u000avar g = 1;\u000a} ok 7056 lines-around-comment invalid switch ('foo'){\u000acase 'foo':\u000a// line at switch case start\u000abreak;\u000a} ok 7057 lines-around-comment invalid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000a// line at switch case start\u000abreak;\u000a} ok 7058 lines-around-comment invalid while(true){\u000a// line at block start and end\u000a} ok 7059 lines-around-comment invalid while(true){\u000a// line at block start and end\u000a} ok 7060 lines-around-comment invalid class A {\u000a// line at class start\u000aconstructor() {}\u000a} ok 7061 lines-around-comment invalid class A {\u000a// line at class start\u000aconstructor() {}\u000a} ok 7062 lines-around-comment invalid class B {\u000aconstructor() {}\u000a\u000a// line at class end\u000a} ok 7063 lines-around-comment invalid class B {\u000aconstructor() {}\u000a\u000a// line at class end\u000a} ok 7064 lines-around-comment invalid switch ('foo'){\u000acase 'foo':\u000avar g = 1;\u000a\u000a// line at switch case end\u000a} ok 7065 lines-around-comment invalid switch ('foo'){\u000acase 'foo':\u000abreak;\u000a\u000adefault:\u000avar g = 1;\u000a\u000a// line at switch case end\u000a} ok 7066 lines-around-comment invalid var obj = {\u000a // line at object start\u000a g: 1\u000a}; ok 7067 lines-around-comment invalid function hi() {\u000a return {\u000a // hi\u000a test: function() {\u000a }\u000a }\u000a} ok 7068 lines-around-comment invalid var obj = {\u000a /* block comment at object start*/\u000a g: 1\u000a}; ok 7069 lines-around-comment invalid function hi() {\u000a return {\u000a /**\u000a * hi\u000a */\u000a test: function() {\u000a }\u000a }\u000a} ok 7070 lines-around-comment invalid const {\u000a // line at object start\u000a g: a\u000a} = {}; ok 7071 lines-around-comment invalid const {\u000a // line at object start\u000a g\u000a} = {}; ok 7072 lines-around-comment invalid const {\u000a /* block comment at object-like start*/\u000a g: a\u000a} = {}; ok 7073 lines-around-comment invalid const {\u000a /* block comment at object-like start*/\u000a g\u000a} = {}; ok 7074 lines-around-comment invalid var obj = {\u000a g: 1\u000a // line at object end\u000a}; ok 7075 lines-around-comment invalid function hi() {\u000a return {\u000a test: function() {\u000a }\u000a // hi\u000a }\u000a} ok 7076 lines-around-comment invalid var obj = {\u000a g: 1\u000a \u000a /* block comment at object end*/\u000a}; ok 7077 lines-around-comment invalid function hi() {\u000a return {\u000a test: function() {\u000a }\u000a \u000a /**\u000a * hi\u000a */\u000a }\u000a} ok 7078 lines-around-comment invalid const {\u000a g: a\u000a // line at object end\u000a} = {}; ok 7079 lines-around-comment invalid const {\u000a g\u000a // line at object end\u000a} = {}; ok 7080 lines-around-comment invalid const {\u000a g: a\u000a \u000a /* block comment at object-like end*/\u000a} = {}; ok 7081 lines-around-comment invalid const {\u000a g\u000a \u000a /* block comment at object-like end*/\u000a} = {}; ok 7082 lines-around-comment invalid var arr = [\u000a // line at array start\u000a 1\u000a]; ok 7083 lines-around-comment invalid var arr = [\u000a /* block comment at array start*/\u000a 1\u000a]; ok 7084 lines-around-comment invalid const [\u000a // line at array start\u000a a\u000a] = []; ok 7085 lines-around-comment invalid const [\u000a /* block comment at array start*/\u000a a\u000a] = []; ok 7086 lines-around-comment invalid var arr = [\u000a 1\u000a // line at array end\u000a]; ok 7087 lines-around-comment invalid var arr = [\u000a 1\u000a \u000a /* block comment at array end*/\u000a]; ok 7088 lines-around-comment invalid const [\u000a a\u000a // line at array end\u000a] = []; ok 7089 lines-around-comment invalid const [\u000a a\u000a \u000a /* block comment at array end*/\u000a] = []; ok 7090 lines-around-comment invalid foo;\u000a\u000a/* eslint-disable no-underscore-dangle */\u000a\u000athis._values = values;\u000athis._values2 = true;\u000a/* eslint-enable no-underscore-dangle */\u000abar ok 7091 lines-around-comment invalid foo;\u000a/* eslint */ ok 7092 lines-around-comment invalid foo;\u000a/* jshint */ ok 7093 lines-around-comment invalid foo;\u000a/* jslint */ ok 7094 lines-around-comment invalid foo;\u000a/* istanbul */ ok 7095 lines-around-comment invalid foo;\u000a/* global */ ok 7096 lines-around-comment invalid foo;\u000a/* globals */ ok 7097 lines-around-comment invalid foo;\u000a/* exported */ ok 7098 lines-around-comment invalid foo;\u000a/* jscs */ ok 7099 lines-around-comment invalid foo\u000a/* something else */ ok 7100 lines-around-comment invalid foo\u000a/* eslint */ ok 7101 lines-around-comment invalid foo;\u000a/* fallthrough */ ok 7102 lines-around-directive valid //comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7103 lines-around-directive valid 'use strict';\u000a\u000avar foo; ok 7104 lines-around-directive valid \u000a'use strict';\u000a\u000avar foo; ok 7105 lines-around-directive valid 'use strict';\u000a\u000a//comment\u000avar foo; ok 7106 lines-around-directive valid 'use strict';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7107 lines-around-directive valid 'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7108 lines-around-directive valid \u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7109 lines-around-directive valid 'use strict';\u000a'use asm';\u000a\u000a//comment\u000avar foo; ok 7110 lines-around-directive valid 'use strict';\u000a'use asm';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7111 lines-around-directive valid !/usr/bin/env node\u000a\u000a'use strict';\u000a\u000avar foo; ok 7112 lines-around-directive valid !/usr/bin/env node\u000a//comment\u000a\u000a'use strict';\u000a\u000avar foo; ok 7113 lines-around-directive valid //comment\u000a\u000a'use strict';\u000a\u000avar foo; ok 7114 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a\u000avar foo; ok 7115 lines-around-directive valid !/usr/bin/env node\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7116 lines-around-directive valid !/usr/bin/env node\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7117 lines-around-directive valid //comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7118 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7119 lines-around-directive valid function foo() {\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7120 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7121 lines-around-directive valid () => {\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7122 lines-around-directive valid () => {\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7123 lines-around-directive valid function foo() {\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7124 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7125 lines-around-directive valid () => {\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7126 lines-around-directive valid () => {\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7127 lines-around-directive valid function foo() {\u000a//comment\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7128 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7129 lines-around-directive valid () => {\u000a//comment\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7130 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7131 lines-around-directive valid function foo() {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7132 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7133 lines-around-directive valid () => {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7134 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7135 lines-around-directive valid /*\u000a * JSDoc comment\u000a */\u000afunction foo() {\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7136 lines-around-directive valid function foo() {\u000a'use strict';\u000a} ok 7137 lines-around-directive valid 'use strict';\u000avar foo; ok 7138 lines-around-directive valid 'use strict';\u000a//comment\u000avar foo; ok 7139 lines-around-directive valid 'use strict';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7140 lines-around-directive valid 'use strict';\u000a'use asm';\u000avar foo; ok 7141 lines-around-directive valid 'use strict';\u000a'use asm';\u000a//comment\u000avar foo; ok 7142 lines-around-directive valid 'use strict';\u000a'use asm';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7143 lines-around-directive valid !/usr/bin/env node\u000a'use strict';\u000avar foo; ok 7144 lines-around-directive valid !/usr/bin/env node\u000a//comment\u000a'use strict';\u000avar foo; ok 7145 lines-around-directive valid //comment\u000a'use strict';\u000avar foo; ok 7146 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000avar foo; ok 7147 lines-around-directive valid !/usr/bin/env node\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7148 lines-around-directive valid !/usr/bin/env node\u000a//comment\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7149 lines-around-directive valid //comment\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7150 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7151 lines-around-directive valid function foo() {\u000a'use strict';\u000avar bar;\u000a} ok 7152 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7153 lines-around-directive valid () => {\u000a'use strict';\u000avar foo;\u000a} ok 7154 lines-around-directive valid () => {\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7155 lines-around-directive valid function foo() {\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7156 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7157 lines-around-directive valid () => {\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7158 lines-around-directive valid () => {\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7159 lines-around-directive valid function foo() {\u000a//comment\u000a'use strict';\u000avar bar;\u000a} ok 7160 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000avar bar;\u000a} ok 7161 lines-around-directive valid () => {\u000a//comment\u000a'use strict';\u000avar foo;\u000a} ok 7162 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000avar foo;\u000a} ok 7163 lines-around-directive valid function foo() {\u000a//comment\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7164 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7165 lines-around-directive valid () => {\u000a//comment\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7166 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7167 lines-around-directive valid //comment\u000a'use strict';\u000a\u000a'use asm';\u000avar foo; ok 7168 lines-around-directive valid /*\u000a * JSDoc comment\u000a */\u000afunction foo() {\u000a'use strict';\u000avar bar;\u000a} ok 7169 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a\u000a} ok 7170 lines-around-directive valid 'use strict';\u000a\u000avar foo; ok 7171 lines-around-directive valid 'use strict';\u000a\u000a//comment\u000avar foo; ok 7172 lines-around-directive valid 'use strict';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7173 lines-around-directive valid 'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7174 lines-around-directive valid 'use strict';\u000a'use asm';\u000a\u000a//comment\u000avar foo; ok 7175 lines-around-directive valid 'use strict';\u000a'use asm';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7176 lines-around-directive valid !/usr/bin/env node\u000a'use strict';\u000a\u000avar foo; ok 7177 lines-around-directive valid //comment\u000a'use strict';\u000a\u000avar foo; ok 7178 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000a\u000avar foo; ok 7179 lines-around-directive valid !/usr/bin/env node\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7180 lines-around-directive valid //comment\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7181 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7182 lines-around-directive valid function foo() {\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7183 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7184 lines-around-directive valid () => {\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7185 lines-around-directive valid () => {\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7186 lines-around-directive valid function foo() {\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7187 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7188 lines-around-directive valid () => {\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7189 lines-around-directive valid () => {\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7190 lines-around-directive valid function foo() {\u000a//comment\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7191 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7192 lines-around-directive valid () => {\u000a//comment\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7193 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7194 lines-around-directive valid function foo() {\u000a//comment\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7195 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7196 lines-around-directive valid () => {\u000a//comment\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7197 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7198 lines-around-directive valid 'use strict';\u000avar foo; ok 7199 lines-around-directive valid \u000a'use strict';\u000avar foo; ok 7200 lines-around-directive valid 'use strict';\u000a//comment\u000avar foo; ok 7201 lines-around-directive valid 'use strict';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7202 lines-around-directive valid 'use strict';\u000a'use asm';\u000avar foo; ok 7203 lines-around-directive valid \u000a'use strict';\u000a'use asm';\u000avar foo; ok 7204 lines-around-directive valid 'use strict';\u000a'use asm';\u000a//comment\u000avar foo; ok 7205 lines-around-directive valid 'use strict';\u000a'use asm';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7206 lines-around-directive valid !/usr/bin/env node\u000a\u000a'use strict';\u000avar foo; ok 7207 lines-around-directive valid //comment\u000a\u000a'use strict';\u000avar foo; ok 7208 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000avar foo; ok 7209 lines-around-directive valid !/usr/bin/env node\u000a\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7210 lines-around-directive valid //comment\u000a\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7211 lines-around-directive valid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7212 lines-around-directive valid function foo() {\u000a'use strict';\u000avar bar;\u000a} ok 7213 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7214 lines-around-directive valid () => {\u000a'use strict';\u000avar foo;\u000a} ok 7215 lines-around-directive valid () => {\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7216 lines-around-directive valid function foo() {\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7217 lines-around-directive valid function foo() {\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7218 lines-around-directive valid () => {\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7219 lines-around-directive valid () => {\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7220 lines-around-directive valid function foo() {\u000a//comment\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7221 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7222 lines-around-directive valid () => {\u000a//comment\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7223 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7224 lines-around-directive valid function foo() {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7225 lines-around-directive valid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7226 lines-around-directive valid () => {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7227 lines-around-directive valid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7228 lines-around-directive valid 'use strict'\u000a\u000a;foo(); ok 7229 lines-around-directive valid 'use strict'\u000a;foo(); ok 7230 lines-around-directive invalid 'use strict';\u000avar foo; ok 7231 lines-around-directive invalid 'use strict';\u000a//comment\u000avar foo; ok 7232 lines-around-directive invalid 'use strict';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7233 lines-around-directive invalid 'use strict';\u000a'use asm';\u000avar foo; ok 7234 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a//comment\u000avar foo; ok 7235 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7236 lines-around-directive invalid !/usr/bin/env node\u000a'use strict';\u000avar foo; ok 7237 lines-around-directive invalid !/usr/bin/env node\u000a//comment\u000a'use strict';\u000avar foo; ok 7238 lines-around-directive invalid //comment\u000a'use strict';\u000avar foo; ok 7239 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000avar foo; ok 7240 lines-around-directive invalid !/usr/bin/env node\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7241 lines-around-directive invalid !/usr/bin/env node\u000a//comment\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7242 lines-around-directive invalid //comment\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7243 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7244 lines-around-directive invalid function foo() {\u000a'use strict';\u000avar bar;\u000a} ok 7245 lines-around-directive invalid () => {\u000a'use strict';\u000avar foo;\u000a} ok 7246 lines-around-directive invalid function foo() {\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7247 lines-around-directive invalid () => {\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7248 lines-around-directive invalid function foo() {\u000a//comment\u000a'use strict';\u000avar bar;\u000a} ok 7249 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000avar bar;\u000a} ok 7250 lines-around-directive invalid () => {\u000a//comment\u000a'use strict';\u000avar foo;\u000a} ok 7251 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000avar foo;\u000a} ok 7252 lines-around-directive invalid function foo() {\u000a//comment\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7253 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7254 lines-around-directive invalid () => {\u000a//comment\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7255 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7256 lines-around-directive invalid 'use strict';\u000a\u000avar foo; ok 7257 lines-around-directive invalid 'use strict';\u000a\u000a//comment\u000avar foo; ok 7258 lines-around-directive invalid 'use strict';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7259 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7260 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a\u000a//comment\u000avar foo; ok 7261 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7262 lines-around-directive invalid !/usr/bin/env node\u000a\u000a'use strict';\u000a\u000avar foo; ok 7263 lines-around-directive invalid !/usr/bin/env node\u000a//comment\u000a\u000a'use strict';\u000a\u000avar foo; ok 7264 lines-around-directive invalid //comment\u000a\u000a'use strict';\u000a\u000avar foo; ok 7265 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a\u000avar foo; ok 7266 lines-around-directive invalid !/usr/bin/env node\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7267 lines-around-directive invalid !/usr/bin/env node\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7268 lines-around-directive invalid //comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7269 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7270 lines-around-directive invalid function foo() {\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7271 lines-around-directive invalid () => {\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7272 lines-around-directive invalid function foo() {\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7273 lines-around-directive invalid () => {\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7274 lines-around-directive invalid function foo() {\u000a//comment\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7275 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7276 lines-around-directive invalid () => {\u000a//comment\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7277 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7278 lines-around-directive invalid function foo() {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7279 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7280 lines-around-directive invalid () => {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7281 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7282 lines-around-directive invalid 'use strict';\u000avar foo; ok 7283 lines-around-directive invalid 'use strict';\u000a//comment\u000avar foo; ok 7284 lines-around-directive invalid 'use strict';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7285 lines-around-directive invalid 'use strict';\u000a'use asm';\u000avar foo; ok 7286 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a//comment\u000avar foo; ok 7287 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7288 lines-around-directive invalid !/usr/bin/env node\u000a\u000a'use strict';\u000avar foo; ok 7289 lines-around-directive invalid //comment\u000a\u000a'use strict';\u000avar foo; ok 7290 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000avar foo; ok 7291 lines-around-directive invalid !/usr/bin/env node\u000a\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7292 lines-around-directive invalid //comment\u000a\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7293 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000avar foo; ok 7294 lines-around-directive invalid function foo() {\u000a'use strict';\u000avar bar;\u000a} ok 7295 lines-around-directive invalid function foo() {\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7296 lines-around-directive invalid () => {\u000a'use strict';\u000avar foo;\u000a} ok 7297 lines-around-directive invalid () => {\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7298 lines-around-directive invalid function foo() {\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7299 lines-around-directive invalid function foo() {\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7300 lines-around-directive invalid () => {\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7301 lines-around-directive invalid () => {\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7302 lines-around-directive invalid function foo() {\u000a//comment\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7303 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000avar bar;\u000a} ok 7304 lines-around-directive invalid () => {\u000a//comment\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7305 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000avar foo;\u000a} ok 7306 lines-around-directive invalid function foo() {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7307 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000avar bar;\u000a} ok 7308 lines-around-directive invalid () => {\u000a//comment\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7309 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a\u000a'use strict';\u000a'use asm';\u000avar foo;\u000a} ok 7310 lines-around-directive invalid 'use strict';\u000a\u000avar foo; ok 7311 lines-around-directive invalid 'use strict';\u000a\u000a//comment\u000avar foo; ok 7312 lines-around-directive invalid 'use strict';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7313 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7314 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a\u000a//comment\u000avar foo; ok 7315 lines-around-directive invalid 'use strict';\u000a'use asm';\u000a\u000a/*\u000amultiline comment\u000a*/\u000avar foo; ok 7316 lines-around-directive invalid !/usr/bin/env node\u000a'use strict';\u000a\u000avar foo; ok 7317 lines-around-directive invalid //comment\u000a'use strict';\u000a\u000avar foo; ok 7318 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000a\u000avar foo; ok 7319 lines-around-directive invalid !/usr/bin/env node\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7320 lines-around-directive invalid //comment\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7321 lines-around-directive invalid /*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000a\u000avar foo; ok 7322 lines-around-directive invalid function foo() {\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7323 lines-around-directive invalid function foo() {\u000a\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7324 lines-around-directive invalid () => {\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7325 lines-around-directive invalid () => {\u000a\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7326 lines-around-directive invalid function foo() {\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7327 lines-around-directive invalid function foo() {\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7328 lines-around-directive invalid () => {\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7329 lines-around-directive invalid () => {\u000a\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7330 lines-around-directive invalid function foo() {\u000a//comment\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7331 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a\u000avar bar;\u000a} ok 7332 lines-around-directive invalid () => {\u000a//comment\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7333 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a\u000avar foo;\u000a} ok 7334 lines-around-directive invalid function foo() {\u000a//comment\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7335 lines-around-directive invalid function foo() {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000a\u000avar bar;\u000a} ok 7336 lines-around-directive invalid () => {\u000a//comment\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7337 lines-around-directive invalid () => {\u000a/*\u000amultiline comment\u000a*/\u000a'use strict';\u000a'use asm';\u000a\u000avar foo;\u000a} ok 7338 lines-around-directive invalid 'use strict'\u000a\u000a;foo(); ok 7339 lines-around-directive invalid 'use strict'\u000a;foo(); ok 7340 lines-around-directive invalid 'use strict'\u000a;\u000afoo(); ok 7341 lines-between-class-members valid class foo{} ok 7342 lines-between-class-members valid class foo{;;} ok 7343 lines-between-class-members valid class foo{\u000a\u000a} ok 7344 lines-between-class-members valid class foo{constructor(){}\u000a} ok 7345 lines-between-class-members valid class foo{\u000aconstructor(){}} ok 7346 lines-between-class-members valid class foo{ bar(){}\u000a\u000abaz(){}} ok 7347 lines-between-class-members valid class foo{ bar(){}\u000a\u000a/*comments*/baz(){}} ok 7348 lines-between-class-members valid class foo{ bar(){}\u000a\u000a//comments\u000abaz(){}} ok 7349 lines-between-class-members valid class foo{ bar(){}\u000a//comments\u000a\u000abaz(){}} ok 7350 lines-between-class-members valid class A{ foo() {} // a comment\u000a\u000abar() {}} ok 7351 lines-between-class-members valid class A{ foo() {}\u000a/* a */ /* b */\u000a\u000abar() {}} ok 7352 lines-between-class-members valid class A{ foo() {}/* a */ \u000a\u000a /* b */bar() {}} ok 7353 lines-between-class-members valid class foo{ bar(){}\u000a\u000a;;baz(){}} ok 7354 lines-between-class-members valid class foo{ bar(){};\u000a\u000abaz(){}} ok 7355 lines-between-class-members valid class foo{ bar(){}\u000abaz(){}} ok 7356 lines-between-class-members valid class foo{ bar(){}\u000a/*comments*/baz(){}} ok 7357 lines-between-class-members valid class foo{ bar(){}\u000a//comments\u000abaz(){}} ok 7358 lines-between-class-members valid class foo{ bar(){}/* comments\u000a\u000a*/baz(){}} ok 7359 lines-between-class-members valid class foo{ bar(){}/* \u000acomments\u000a*/baz(){}} ok 7360 lines-between-class-members valid class foo{ bar(){}\u000a/* \u000acomments\u000a*/\u000abaz(){}} ok 7361 lines-between-class-members valid class foo{ bar(){}\u000a\u000abaz(){}} ok 7362 lines-between-class-members valid class foo{ bar(){}\u000a\u000a/*comments*/baz(){}} ok 7363 lines-between-class-members valid class foo{ bar(){}\u000a\u000a//comments\u000abaz(){}} ok 7364 lines-between-class-members valid class foo{ bar(){}\u000abaz(){}} ok 7365 lines-between-class-members valid class foo{ bar(){\u000a}\u000a\u000abaz(){}} ok 7366 lines-between-class-members invalid class foo{ bar(){}\u000abaz(){}} ok 7367 lines-between-class-members invalid class foo{ bar(){}\u000a\u000abaz(){}} ok 7368 lines-between-class-members invalid class foo{ bar(){\u000a}\u000abaz(){}} ok 7369 max-classes-per-file valid class Foo {} ok 7370 max-classes-per-file valid var x = class {}; ok 7371 max-classes-per-file valid var x = 5; ok 7372 max-classes-per-file valid class Foo {} ok 7373 max-classes-per-file valid class Foo {}\u000aclass Bar {} ok 7374 max-classes-per-file invalid class Foo {}\u000aclass Bar {} ok 7375 max-classes-per-file invalid var x = class {};\u000avar y = class {}; ok 7376 max-classes-per-file invalid class Foo {}\u000avar x = class {}; ok 7377 max-classes-per-file invalid class Foo {} class Bar {} ok 7378 max-classes-per-file invalid class Foo {} class Bar {} class Baz {} ok 7379 max-depth valid function foo() { if (true) { if (false) { if (true) { } } } } ok 7380 max-depth valid function foo() { if (true) { } else if (false) { } else if (true) { } else if (false) {} } ok 7381 max-depth valid var foo = () => { if (true) { if (false) { if (true) { } } } } ok 7382 max-depth valid function foo() { if (true) { if (false) { if (true) { } } } } ok 7383 max-depth valid function foo() { if (true) { if (false) { if (true) { } } } } ok 7384 max-depth invalid function foo() { if (true) { if (false) { if (true) { } } } } ok 7385 max-depth invalid var foo = () => { if (true) { if (false) { if (true) { } } } } ok 7386 max-depth invalid function foo() { if (true) {} else { for(;;) {} } } ok 7387 max-depth invalid function foo() { while (true) { if (true) {} } } ok 7388 max-depth invalid function foo() { for (let x of foo) { if (true) {} } } ok 7389 max-depth invalid function foo() { while (true) { if (true) { if (false) { } } } } ok 7390 max-depth invalid function foo() { if (true) { if (false) { if (true) { if (false) { if (true) { } } } } } } ok 7391 max-depth invalid function foo() { if (true) { if (false) { if (true) { } } } } ok 7392 max-depth invalid function foo() { if (a) { if (b) { if (c) { if (d) { if (e) {} } } } } } ok 7393 max-depth invalid function foo() { if (true) {} } ok 7394 max-len valid var x = 5;\u000avar x = 2; ok 7395 max-len valid var x = 5;\u000avar x = 2; ok 7396 max-len valid \u0009\u0009\u0009var i = 1;\u000a\u0009\u0009\u0009var j = 1; ok 7397 max-len valid var one\u0009\u0009= 1;\u000avar three\u0009= 3; ok 7398 max-len valid \u0009var one\u0009\u0009= 1;\u000a\u0009var three\u0009= 3; ok 7399 max-len valid var i = 1;\u000d\u000avar i = 1;\u000a ok 7400 max-len valid \u000a// Blank line on top\u000avar foo = module.exports = {};\u000a ok 7401 max-len valid \u000a// Blank line on top\u000avar foo = module.exports = {};\u000a ok 7402 max-len valid var foo = module.exports = {}; // really long trailing comment ok 7403 max-len valid foo(); \u0009// strips entire comment *and* trailing whitespace ok 7404 max-len valid // really long comment on its own line sitting here ok 7405 max-len valid var foo = module.exports = {}; /* inline some other comments */ //more ok 7406 max-len valid var /*inline-comment*/ i = 1; ok 7407 max-len valid var /*inline-comment*/ i = 1; // with really long trailing comment ok 7408 max-len valid foo('http://example.com/this/is/?a=longish&url=inhere'); ok 7409 max-len valid foo(bar(bazz('this is a long'), 'line of'), 'stuff'); ok 7410 max-len valid /* hey there! this is a multiline\u000a comment with longish lines in various places\u000a but\u000a with a short line-length */ ok 7411 max-len valid // I like short comments\u000afunction butLongSourceLines() { weird(eh()) } ok 7412 max-len valid // I like longer comments and shorter code\u000afunction see() { odd(eh()) } ok 7413 max-len valid // Full line comment\u000asomeCode(); // With a long trailing comment. ok 7414 max-len valid var foo = module.exports = {}; // really long trailing comment ok 7415 max-len valid var foo = module.exports = {}; /* inline some other comments */ //more ok 7416 max-len valid var foo = module.exports = {}; // really long trailing comment ok 7417 max-len valid var foo = veryLongIdentifier;\u000avar bar = 'this is a very long string'; ok 7418 max-len valid var foo = veryLongIdentifier;\u000avar bar = "this is a very long string"; ok 7419 max-len valid var str = "this is a very long string\\u000awith continuation"; ok 7420 max-len valid var str = "this is a very long string\\u000awith continuation\\u000aand with another very very long continuation\\u000aand ending"; ok 7421 max-len valid var foo =
; ok 7422 max-len valid var foo = veryLongIdentifier;\u000avar bar = `this is a very long string`; ok 7423 max-len valid var foo = veryLongIdentifier;\u000avar bar = `this is a very long string\u000aand this is another line that is very long`; ok 7424 max-len valid var foo = veryLongIdentifier;\u000avar bar = `this is a very long string\u000aand this is another line that is very long\u000aand here is another\u000a and another!`; ok 7425 max-len valid var foo = /this is a very long pattern/; ok 7426 max-len valid function foo() {\u000a//this line has 29 characters\u000a} ok 7427 max-len valid function foo() {\u000a //this line has 33 characters\u000a} ok 7428 max-len valid function foo() {\u000a/*this line has 29 characters\u000aand this one has 21*/\u000a} ok 7429 max-len valid function foo() {\u000a /*this line has 33 characters\u000a and this one has 25*/\u000a} ok 7430 max-len valid function foo() {\u000a var a; /*this line has 40 characters\u000a and this one has 36 characters*/\u000a} ok 7431 max-len valid function foo() {\u000a /*this line has 33 characters\u000a and this one has 43 characters*/ var a;\u000a} ok 7432 max-len valid ok 7433 max-len valid '🙂😀😆😎😊😜😉👍' ok 7434 max-len valid var longNameLongName = '𝌆𝌆' ok 7435 max-len valid \u0009foo ok 7436 max-len invalid \u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009var i = 1; ok 7437 max-len invalid var x = 5, y = 2, z = 5; ok 7438 max-len invalid \u0009\u0009\u0009var i = 1; ok 7439 max-len invalid \u0009\u0009\u0009var i = 1;\u000a\u0009\u0009\u0009var j = 1; ok 7440 max-len invalid var /*this is a long non-removed inline comment*/ i = 1; ok 7441 max-len invalid var foobar = 'this line isn\'t matched by the regexp';\u000avar fizzbuzz = 'but this one is matched by the regexp';\u000a ok 7442 max-len invalid var longLine = 'will trigger'; // even with a comment ok 7443 max-len invalid var foo = module.exports = {}; // really long trailing comment ok 7444 max-len invalid foo('http://example.com/this/is/?a=longish&url=inhere'); ok 7445 max-len invalid foo(bar(bazz('this is a long'), 'line of'), 'stuff'); ok 7446 max-len invalid // A comment that exceeds the max comment length. ok 7447 max-len invalid // A comment that exceeds the max comment length and the max code length, but will fail for being too long of a comment ok 7448 max-len invalid // A comment that exceeds the max comment length. ok 7449 max-len invalid //This is very long comment with more than 40 characters which is invalid ok 7450 max-len invalid function foo() {\u000a//this line has 29 characters\u000a} ok 7451 max-len invalid function foo() {\u000a //this line has 33 characters\u000a} ok 7452 max-len invalid function foo() {\u000a/*this line has 29 characters\u000aand this one has 32 characters*/\u000a} ok 7453 max-len invalid function foo() {\u000a /*this line has 33 characters\u000a and this one has 36 characters*/\u000a} ok 7454 max-len invalid function foo() {\u000a var a; /*this line has 40 characters\u000a and this one has 36 characters*/\u000a} ok 7455 max-len invalid function foo() {\u000a /*this line has 33 characters\u000a and this one has 43 characters*/ var a;\u000a} ok 7456 max-len invalid // This commented line has precisely 51 characters.\u000avar x = 'This line also has exactly 51 characters'; ok 7457 max-len invalid var foo = veryLongIdentifier;\u000avar bar = 'this is a very long string'; ok 7458 max-len invalid var foo = veryLongIdentifier;\u000avar bar = /this is a very very long pattern/; ok 7459 max-len invalid var foo = veryLongIdentifier;\u000avar bar = new RegExp('this is a very very long pattern'); ok 7460 max-len invalid var foo = veryLongIdentifier;\u000avar bar = "this is a very long string"; ok 7461 max-len invalid var foo = veryLongIdentifier;\u000avar bar = `this is a very long string`; ok 7462 max-len invalid var foo = veryLongIdentifier;\u000avar bar = `this is a very long string\u000aand this is another line that is very long`; ok 7463 max-len invalid var foo =
this is a very very very long string
; ok 7464 max-len invalid '🙁😁😟☹️😣😖😩😱👎' ok 7465 max-len invalid a ok 7466 max-lines-per-function valid var x = 5;\u000avar x = 2;\u000a ok 7467 max-lines-per-function valid function name() {} ok 7468 max-lines-per-function valid function name() {\u000avar x = 5;\u000avar x = 2;\u000a} ok 7469 max-lines-per-function valid const bar = () => 2 ok 7470 max-lines-per-function valid const bar = () => {\u000aconst x = 2 + 1;\u000areturn x;\u000a} ok 7471 max-lines-per-function valid function name() {\u000avar x = 5;\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7472 max-lines-per-function valid function name() {\u000avar x = 5;\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7473 max-lines-per-function valid function name() {\u000avar x = 5;\u000avar x = 2; // end of line comment\u000a} ok 7474 max-lines-per-function valid function name() {\u000avar x = 5;\u000a// a comment on it's own line\u000avar x = 2; // end of line comment\u000a} ok 7475 max-lines-per-function valid function name() {\u000avar x = 5;\u000a// a comment on it's own line\u000a// and another line comment\u000avar x = 2; // end of line comment\u000a} ok 7476 max-lines-per-function valid function name() {\u000avar x = 5;\u000a/* a \u000a multi \u000a line \u000a comment \u000a*/\u000a\u000avar x = 2; // end of line comment\u000a} ok 7477 max-lines-per-function valid function name() {\u000avar x = 5;\u000a\u0009/* a comment with leading whitespace */\u000a/* a comment with trailing whitespace */\u0009\u0009\u000a\u0009/* a comment with trailing and leading whitespace */\u0009\u0009\u000a/* a \u000a multi \u000a line \u000a comment \u000a*/\u0009\u0009\u000a\u000avar x = 2; // end of line comment\u000a} ok 7478 max-lines-per-function valid function foo(\u000a aaa = 1,\u000a bbb = 2,\u000a ccc = 3\u000a) {\u000a return aaa + bbb + ccc\u000a} ok 7479 max-lines-per-function valid (\u000afunction\u000a()\u000a{\u000a}\u000a)\u000a() ok 7480 max-lines-per-function valid function parent() {\u000avar x = 0;\u000afunction nested() {\u000a var y = 0;\u000a x = 2;\u000a}\u000aif ( x === y ) {\u000a x++;\u000a}\u000a} ok 7481 max-lines-per-function valid class foo {\u000a method() {\u000a let y = 10;\u000a let x = 20;\u000a return y + x;\u000a }\u000a} ok 7482 max-lines-per-function valid (function(){\u000a let x = 0;\u000a let y = 0;\u000a let z = x + y;\u000a let foo = {};\u000a return bar;\u000a}()); ok 7483 max-lines-per-function valid (function(){\u000a let x = 0;\u000a let y = 0;\u000a let z = x + y;\u000a let foo = {};\u000a return bar;\u000a}()); ok 7484 max-lines-per-function invalid function name() {\u000a} ok 7485 max-lines-per-function invalid var func = function() {\u000a} ok 7486 max-lines-per-function invalid const bar = () => {\u000aconst x = 2 + 1;\u000areturn x;\u000a} ok 7487 max-lines-per-function invalid const bar = () =>\u000a 2 ok 7488 max-lines-per-function invalid () => {foo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000afoo\u000a} ok 7489 max-lines-per-function invalid function name() {\u000avar x = 5;\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7490 max-lines-per-function invalid function name() {\u000d\u000avar x = 5;\u000d\u000a\u0009\u000d\u000a \u000d\u000a\u000d\u000avar x = 2;\u000d\u000a} ok 7491 max-lines-per-function invalid function name() {\u000avar x = 5;\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7492 max-lines-per-function invalid function name() {\u000d\u000avar x = 5;\u000d\u000a\u0009\u000d\u000a \u000d\u000a\u000d\u000avar x = 2;\u000d\u000a} ok 7493 max-lines-per-function invalid function name() { // end of line comment\u000avar x = 5; /* mid line comment */\u000a\u0009// single line comment taking up whole line\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7494 max-lines-per-function invalid function name() { // end of line comment\u000avar x = 5; /* mid line comment */\u000a\u0009// single line comment taking up whole line\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7495 max-lines-per-function invalid function name() { // end of line comment\u000avar x = 5; /* mid line comment */\u000a\u0009// single line comment taking up whole line\u000a\u0009\u000a \u000a\u000avar x = 2;\u000a} ok 7496 max-lines-per-function invalid function foo(\u000a aaa = 1,\u000a bbb = 2,\u000a ccc = 3\u000a) {\u000a return aaa + bbb + ccc\u000a} ok 7497 max-lines-per-function invalid (\u000afunction\u000a()\u000a{\u000a}\u000a)\u000a() ok 7498 max-lines-per-function invalid function parent() {\u000avar x = 0;\u000afunction nested() {\u000a var y = 0;\u000a x = 2;\u000a}\u000aif ( x === y ) {\u000a x++;\u000a}\u000a} ok 7499 max-lines-per-function invalid function parent() {\u000avar x = 0;\u000afunction nested() {\u000a var y = 0;\u000a x = 2;\u000a}\u000aif ( x === y ) {\u000a x++;\u000a}\u000a} ok 7500 max-lines-per-function invalid class foo {\u000a method() {\u000a let y = 10;\u000a let x = 20;\u000a return y + x;\u000a }\u000a} ok 7501 max-lines-per-function invalid class A {\u000a static\u000a foo\u000a (a) {\u000a return a\u000a }\u000a} ok 7502 max-lines-per-function invalid var obj = {\u000a get\u000a foo\u000a () {\u000a return 1\u000a }\u000a} ok 7503 max-lines-per-function invalid var obj = {\u000a set\u000a foo\u000a ( val ) {\u000a this._foo = val;\u000a }\u000a} ok 7504 max-lines-per-function invalid class A {\u000a static\u000a [\u000a foo +\u000a bar\u000a ]\u000a (a) {\u000a return a\u000a }\u000a} ok 7505 max-lines-per-function invalid (function(){\u000a let x = 0;\u000a let y = 0;\u000a let z = x + y;\u000a let foo = {};\u000a return bar;\u000a}()); ok 7506 max-lines valid var x; ok 7507 max-lines valid var xy;\u000avar xy; ok 7508 max-lines valid var xy;\u000avar xy; ok 7509 max-lines valid var xy;\u000avar xy; ok 7510 max-lines valid //a single line comment\u000avar xy;\u000avar xy;\u000a /* a multiline\u000a really really\u000a long comment*/ ok 7511 max-lines valid var x; /* inline comment\u000a spanning multiple lines */ var z; ok 7512 max-lines valid var x; /* inline comment\u000a spanning multiple lines */\u000avar z; ok 7513 max-lines valid var x;\u000a\u000a\u0009\u000a\u0009 \u000avar y; ok 7514 max-lines valid //a single line comment\u000avar xy;\u000a \u000avar xy;\u000a \u000a /* a multiline\u000a really really\u000a long comment*/ ok 7515 max-lines invalid var xyz;\u000avar xyz;\u000avar xyz; ok 7516 max-lines invalid /* a multiline comment\u000a that goes to many lines*/\u000avar xy;\u000avar xy; ok 7517 max-lines invalid //a single line comment\u000avar xy;\u000avar xy; ok 7518 max-lines invalid var x;\u000a\u000a\u000a\u000avar y; ok 7519 max-lines invalid //a single line comment\u000avar xy;\u000a \u000avar xy;\u000a \u000a /* a multiline\u000a really really\u000a long comment*/ ok 7520 max-lines invalid var x; // inline comment\u000avar y;\u000avar z; ok 7521 max-lines invalid var x; /* inline comment\u000a spanning multiple lines */\u000avar y;\u000avar z; ok 7522 max-lines invalid //a single line comment\u000avar xy;\u000a \u000avar xy;\u000a \u000a /* a multiline\u000a really really\u000a long comment*/ ok 7523 max-lines invalid AAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA\u000aAAAAAAAA ok 7524 max-lines invalid A ok 7525 max-nested-callbacks valid foo(function() { bar(thing, function(data) {}); }); ok 7526 max-nested-callbacks valid var foo = function() {}; bar(function(){ baz(function() { qux(foo); }) }); ok 7527 max-nested-callbacks valid fn(function(){}, function(){}, function(){}); ok 7528 max-nested-callbacks valid fn(() => {}, function(){}, function(){}); ok 7529 max-nested-callbacks valid foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {});});});});});});});});});}); ok 7530 max-nested-callbacks valid foo(function() { bar(thing, function(data) {}); }); ok 7531 max-nested-callbacks invalid foo(function() { bar(thing, function(data) { baz(function() {}); }); }); ok 7532 max-nested-callbacks invalid foo(function() { bar(thing, (data) => { baz(function() {}); }); }); ok 7533 max-nested-callbacks invalid foo(() => { bar(thing, (data) => { baz( () => {}); }); }); ok 7534 max-nested-callbacks invalid foo(function() { if (isTrue) { bar(function(data) { baz(function() {}); }); } }); ok 7535 max-nested-callbacks invalid foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {});});});});});});});});});});}); ok 7536 max-nested-callbacks invalid foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {foo(function() {});});});});});});});});});});}); ok 7537 max-nested-callbacks invalid foo(function() {}) ok 7538 max-nested-callbacks invalid foo(function() { bar(thing, function(data) { baz(function() {}); }); }); ok 7539 max-params valid function test(d, e, f) {} ok 7540 max-params valid var test = function(a, b, c) {}; ok 7541 max-params valid var test = (a, b, c) => {}; ok 7542 max-params valid var test = function test(a, b, c) {}; ok 7543 max-params valid var test = function(a, b, c) {}; ok 7544 max-params invalid function test(a, b, c) {} ok 7545 max-params invalid function test(a, b, c, d) {} ok 7546 max-params invalid var test = function(a, b, c, d) {}; ok 7547 max-params invalid var test = (a, b, c, d) => {}; ok 7548 max-params invalid (function(a, b, c, d) {}); ok 7549 max-params invalid var test = function test(a, b, c) {}; ok 7550 max-params invalid function test(a, b, c) {} ok 7551 max-params invalid function test(a, b, c, d) {} ok 7552 max-params invalid function test(a) {} ok 7553 max-params invalid function test(a, b, c) {\u000a // Just to make it longer\u000a } ok 7554 max-statements-per-line valid { } ok 7555 max-statements-per-line valid var bar = 1; ok 7556 max-statements-per-line valid var bar = 1; ok 7557 max-statements-per-line valid var bar = 1;; ok 7558 max-statements-per-line valid ;(function foo() {\u000a})() ok 7559 max-statements-per-line valid if (condition) var bar = 1; ok 7560 max-statements-per-line valid if (condition) { } ok 7561 max-statements-per-line valid if (condition) { } else { } ok 7562 max-statements-per-line valid if (condition) {\u000avar bar = 1;\u000a} else {\u000avar bar = 1;\u000a} ok 7563 max-statements-per-line valid for (var i = 0; i < length; ++i) { } ok 7564 max-statements-per-line valid for (var i = 0; i < length; ++i) {\u000avar bar = 1;\u000a} ok 7565 max-statements-per-line valid switch (discriminant) { default: } ok 7566 max-statements-per-line valid switch (discriminant) {\u000adefault: break;\u000a} ok 7567 max-statements-per-line valid function foo() { } ok 7568 max-statements-per-line valid function foo() {\u000aif (condition) var bar = 1;\u000a} ok 7569 max-statements-per-line valid function foo() {\u000aif (condition) {\u000avar bar = 1;\u000a}\u000a} ok 7570 max-statements-per-line valid (function() { })(); ok 7571 max-statements-per-line valid (function() {\u000avar bar = 1;\u000a})(); ok 7572 max-statements-per-line valid var foo = function foo() { }; ok 7573 max-statements-per-line valid var foo = function foo() {\u000avar bar = 1;\u000a}; ok 7574 max-statements-per-line valid var foo = { prop: () => { } }; ok 7575 max-statements-per-line valid var bar = 1; var baz = 2; ok 7576 max-statements-per-line valid if (condition) { var bar = 1; } ok 7577 max-statements-per-line valid if (condition) {\u000avar bar = 1; var baz = 2;\u000a} else {\u000avar bar = 1; var baz = 2;\u000a} ok 7578 max-statements-per-line valid for (var i = 0; i < length; ++i) { var bar = 1; } ok 7579 max-statements-per-line valid for (var i = 0; i < length; ++i) {\u000avar bar = 1; var baz = 2;\u000a} ok 7580 max-statements-per-line valid switch (discriminant) { default: break; } ok 7581 max-statements-per-line valid switch (discriminant) {\u000acase 'test': var bar = 1; break;\u000adefault: var bar = 1; break;\u000a} ok 7582 max-statements-per-line valid function foo() { var bar = 1; } ok 7583 max-statements-per-line valid function foo() {\u000avar bar = 1; var baz = 2;\u000a} ok 7584 max-statements-per-line valid function foo() {\u000aif (condition) { var bar = 1; }\u000a} ok 7585 max-statements-per-line valid function foo() {\u000aif (condition) {\u000avar bar = 1; var baz = 2;\u000a}\u000a} ok 7586 max-statements-per-line valid (function() { var bar = 1; })(); ok 7587 max-statements-per-line valid (function() {\u000avar bar = 1; var baz = 2;\u000a})(); ok 7588 max-statements-per-line valid var foo = function foo() { var bar = 1; }; ok 7589 max-statements-per-line valid var foo = function foo() {\u000avar bar = 1; var baz = 2;\u000a}; ok 7590 max-statements-per-line valid var foo = { prop: () => { var bar = 1; } }; ok 7591 max-statements-per-line valid var bar = 1; var baz = 2; var qux = 3; ok 7592 max-statements-per-line valid if (condition) { var bar = 1; var baz = 2; } ok 7593 max-statements-per-line valid if (condition) { var bar = 1; } else { var bar = 1; } ok 7594 max-statements-per-line valid switch (discriminant) { case 'test1': ; case 'test2': ; } ok 7595 max-statements-per-line valid let bar = bar => { a; }, baz = baz => { b; }; ok 7596 max-statements-per-line valid function foo({[bar => { a; }]: baz = qux => { b; }}) { } ok 7597 max-statements-per-line valid bar => { a; }, baz => { b; }, qux => { c; }; ok 7598 max-statements-per-line valid [bar => { a; }, baz => { b; }, qux => { c; }]; ok 7599 max-statements-per-line valid foo(bar => { a; }, baz => { c; }, qux => { c; }); ok 7600 max-statements-per-line valid ({ bar: bar => { a; }, baz: baz => { c; }, qux: qux => { ; }}); ok 7601 max-statements-per-line valid (bar => { a; }) ? (baz => { b; }) : (qux => { c; }); ok 7602 max-statements-per-line valid const name = 'ESLint'\u000a\u000a;(function foo() {\u000a})() ok 7603 max-statements-per-line valid if (foo > 1)\u000a foo--;\u000aelse\u000a foo++; ok 7604 max-statements-per-line valid export default foo = 0; ok 7605 max-statements-per-line valid export default function foo() {\u000a console.log('test');\u000a} ok 7606 max-statements-per-line valid export let foo = 0; ok 7607 max-statements-per-line valid export function foo() {\u000a console.log('test');\u000a} ok 7608 max-statements-per-line invalid var foo; var bar; ok 7609 max-statements-per-line invalid var bar = 1; var foo = 3; ok 7610 max-statements-per-line invalid var bar = 1; var baz = 2; ok 7611 max-statements-per-line invalid var bar = 1; var baz = 2; ok 7612 max-statements-per-line invalid if (condition) var bar = 1; if (condition) var baz = 2; ok 7613 max-statements-per-line invalid if (condition) var bar = 1; else var baz = 1; ok 7614 max-statements-per-line invalid if (condition) { } if (condition) { } ok 7615 max-statements-per-line invalid if (condition) { var bar = 1; } else { } ok 7616 max-statements-per-line invalid if (condition) { } else { var bar = 1; } ok 7617 max-statements-per-line invalid if (condition) { var bar = 1; } else { var bar = 1; } ok 7618 max-statements-per-line invalid for (var i = 0; i < length; ++i) { var bar = 1; } ok 7619 max-statements-per-line invalid switch (discriminant) { default: break; } ok 7620 max-statements-per-line invalid function foo() { var bar = 1; } ok 7621 max-statements-per-line invalid function foo() { if (condition) var bar = 1; } ok 7622 max-statements-per-line invalid function foo() { if (condition) { var bar = 1; } } ok 7623 max-statements-per-line invalid (function() { var bar = 1; })(); ok 7624 max-statements-per-line invalid var foo = function foo() { var bar = 1; }; ok 7625 max-statements-per-line invalid var foo = { prop: () => { var bar = 1; } }; ok 7626 max-statements-per-line invalid var bar = 1; var baz = 2; var qux = 3; ok 7627 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; } ok 7628 max-statements-per-line invalid if (condition) { var bar = 1; } else { var bar = 1; } ok 7629 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; } else { var bar = 1; var baz = 2; } ok 7630 max-statements-per-line invalid for (var i = 0; i < length; ++i) { var bar = 1; var baz = 2; } ok 7631 max-statements-per-line invalid switch (discriminant) { case 'test': break; default: break; } ok 7632 max-statements-per-line invalid function foo() { var bar = 1; var baz = 2; } ok 7633 max-statements-per-line invalid function foo() { if (condition) { var bar = 1; } } ok 7634 max-statements-per-line invalid (function() { var bar = 1; var baz = 2; })(); ok 7635 max-statements-per-line invalid var foo = function foo() { var bar = 1; var baz = 2; }; ok 7636 max-statements-per-line invalid var foo = { prop: () => { var bar = 1; var baz = 2; } }; ok 7637 max-statements-per-line invalid var bar = 1; var baz = 2; var qux = 3; var waldo = 4; ok 7638 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; var qux = 3; } ok 7639 max-statements-per-line invalid if (condition) { var bar = 1; var baz = 2; } else { var bar = 1; var baz = 2; } ok 7640 max-statements-per-line invalid switch (discriminant) { case 'test': var bar = 1; break; default: var bar = 1; break; } ok 7641 max-statements-per-line invalid let bar = bar => { a; }, baz = baz => { b; }, qux = qux => { c; }; ok 7642 max-statements-per-line invalid (bar => { a; }) ? (baz => { b; }) : (qux => { c; }); ok 7643 max-statements-per-line invalid bar => { a; }, baz => { b; }, qux => { c; }, quux => { d; }; ok 7644 max-statements-per-line invalid [bar => { a; }, baz => { b; }, qux => { c; }, quux => { d; }]; ok 7645 max-statements-per-line invalid foo(bar => { a; }, baz => { b; }, qux => { c; }, quux => { d; }); ok 7646 max-statements-per-line invalid ({ bar: bar => { a; }, baz: baz => { b; }, qux: qux => { c; }, quux: quux => { d; }}); ok 7647 max-statements-per-line invalid a; if (b) { c; d; }\u000az; ok 7648 max-statements-per-line invalid export default function foo() { console.log('test') } ok 7649 max-statements-per-line invalid export function foo() { console.log('test') } ok 7650 max-statements valid function foo() { var bar = 1; function qux () { var noCount = 2; } return 3; } ok 7651 max-statements valid function foo() { var bar = 1; if (true) { for (;;) { var qux = null; } } else { quxx(); } return 3; } ok 7652 max-statements valid function foo() { var x = 5; function bar() { var y = 6; } bar(); z = 10; baz(); } ok 7653 max-statements valid function foo() { var a; var b; var c; var x; var y; var z; bar(); baz(); qux(); quxx(); } ok 7654 max-statements valid (function() { var bar = 1; return function () { return 42; }; })() ok 7655 max-statements valid function foo() { var bar = 1; var baz = 2; } ok 7656 max-statements valid define(['foo', 'qux'], function(foo, qux) { var bar = 1; var baz = 2; }) ok 7657 max-statements valid var foo = { thing: function() { var bar = 1; var baz = 2; } } ok 7658 max-statements valid var foo = { thing() { var bar = 1; var baz = 2; } } ok 7659 max-statements valid var foo = { ['thing']() { var bar = 1; var baz = 2; } } ok 7660 max-statements valid var foo = { thing: () => { var bar = 1; var baz = 2; } } ok 7661 max-statements valid var foo = { thing: function() { var bar = 1; var baz = 2; } } ok 7662 max-statements invalid function foo() { var bar = 1; var baz = 2; var qux = 3; } ok 7663 max-statements invalid var foo = () => { var bar = 1; var baz = 2; var qux = 3; }; ok 7664 max-statements invalid var foo = function() { var bar = 1; var baz = 2; var qux = 3; }; ok 7665 max-statements invalid function foo() { var bar = 1; if (true) { while (false) { var qux = null; } } return 3; } ok 7666 max-statements invalid function foo() { var bar = 1; if (true) { for (;;) { var qux = null; } } return 3; } ok 7667 max-statements invalid function foo() { var bar = 1; if (true) { for (;;) { var qux = null; } } else { quxx(); } return 3; } ok 7668 max-statements invalid function foo() { var x = 5; function bar() { var y = 6; } bar(); z = 10; baz(); } ok 7669 max-statements invalid function foo() { var x = 5; function bar() { var y = 6; } bar(); z = 10; baz(); } ok 7670 max-statements invalid ;(function() { var bar = 1; return function () { var z; return 42; }; })() ok 7671 max-statements invalid ;(function() { var bar = 1; var baz = 2; })(); (function() { var bar = 1; var baz = 2; })() ok 7672 max-statements invalid define(['foo', 'qux'], function(foo, qux) { var bar = 1; var baz = 2; return function () { var z; return 42; }; }) ok 7673 max-statements invalid function foo() { var a; var b; var c; var x; var y; var z; bar(); baz(); qux(); quxx(); foo(); } ok 7674 max-statements invalid var foo = { thing: function() { var bar = 1; var baz = 2; var baz2; } } ok 7675 max-statements invalid var foo = { thing() { var bar = 1; var baz = 2; var baz2; } } ok 7676 max-statements invalid var foo = { thing: () => { var bar = 1; var baz = 2; var baz2; } } ok 7677 max-statements invalid var foo = { thing: function() { var bar = 1; var baz = 2; var baz2; } } ok 7678 max-statements invalid function foo() { 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; } ok 7679 max-statements invalid function foo() { 1; } ok 7680 multiline-comment-style valid \u000a /*\u000a * this is\u000a * a comment\u000a */\u000a ok 7681 multiline-comment-style valid \u000a /**\u000a * this is\u000a * a JSDoc comment\u000a */\u000a ok 7682 multiline-comment-style valid \u000a /* eslint semi: [\u000a "error"\u000a ] */\u000a ok 7683 multiline-comment-style valid \u000a // this is a single-line comment\u000a ok 7684 multiline-comment-style valid \u000a /* foo */\u000a ok 7685 multiline-comment-style valid \u000a // this is a comment\u000a foo();\u000a // this is another comment\u000a ok 7686 multiline-comment-style valid \u000a /*\u000a * Function overview\u000a * ...\u000a */\u000a\u000a // Step 1: Do the first thing\u000a foo();\u000a ok 7687 multiline-comment-style valid \u000a /*\u000a * Function overview\u000a * ...\u000a */\u000a\u000a /*\u000a * Step 1: Do the first thing.\u000a * The first thing is foo().\u000a */\u000a foo();\u000a ok 7688 multiline-comment-style valid \u0009\u0009/**\u000a\u0009\u0009 * this comment\u000a\u0009\u0009 * is tab-aligned\u000a\u0009\u0009 */ ok 7689 multiline-comment-style valid /**\u000d\u000a * this comment\u000d\u000a * uses windows linebreaks\u000d\u000a */ ok 7690 multiline-comment-style valid /**
 * this comment
 * uses paragraph separators
 */ ok 7691 multiline-comment-style valid \u000a foo(/* this is an\u000a inline comment */);\u000a ok 7692 multiline-comment-style valid \u000a // The following line comment\u000a // contains '*/'.\u000a ok 7693 multiline-comment-style valid \u000a // The following line comment\u000a // contains '*/'.\u000a ok 7694 multiline-comment-style valid \u000a /*\u000a * this is\u000a * a comment\u000a */\u000a ok 7695 multiline-comment-style valid \u000a /**\u000a * this is\u000a * a JSDoc comment\u000a */\u000a ok 7696 multiline-comment-style valid \u000a /* eslint semi: [\u000a "error"\u000a ] */\u000a ok 7697 multiline-comment-style valid \u000a // this is a single-line comment\u000a ok 7698 multiline-comment-style valid \u000a /* foo */\u000a ok 7699 multiline-comment-style valid \u000a // this is\u000a // a comment\u000a ok 7700 multiline-comment-style valid \u000a /* this is\u000a a comment */ foo;\u000a ok 7701 multiline-comment-style valid \u000a // a comment\u000a\u000a // another comment\u000a ok 7702 multiline-comment-style valid \u000a // a comment\u000a\u000a // another comment\u000a ok 7703 multiline-comment-style valid \u000a // a comment\u000a\u000a // another comment\u000a ok 7704 multiline-comment-style valid \u000a /* eslint semi: "error" */\u000a ok 7705 multiline-comment-style valid \u000a /**\u000a * This is\u000a * a JSDoc comment\u000a */\u000a ok 7706 multiline-comment-style valid \u000a /**\u000a * This is\u000a * a JSDoc comment\u000a */\u000a ok 7707 multiline-comment-style valid \u000a /**\u000a * This is\u000a * a JSDoc comment\u000a */\u000a ok 7708 multiline-comment-style valid \u000a /* This is\u000a a comment */\u000a ok 7709 multiline-comment-style valid \u000a /* This is\u000a a comment */\u000a ok 7710 multiline-comment-style valid \u000a /* eslint semi: [\u000a "error"\u000a ] */\u000a ok 7711 multiline-comment-style valid \u000a /* The value of 5\u000a + 4 is 9, and the value of 5\u000a * 4 is 20. */\u000a ok 7712 multiline-comment-style invalid \u000a // these are\u000a // line comments\u000a ok 7713 multiline-comment-style invalid \u000a //foo\u000a ///bar\u000a ok 7714 multiline-comment-style invalid \u000a // foo\u000a // bar\u000a\u000a // baz\u000a // qux\u000a ok 7715 multiline-comment-style invalid \u000a /* this block\u000a * is missing a newline at the start\u000a */\u000a ok 7716 multiline-comment-style invalid \u000a /** this JSDoc comment\u000a * is missing a newline at the start\u000a */\u000a ok 7717 multiline-comment-style invalid \u000a /*\u000a * this block\u000a * is missing a newline at the end*/\u000a ok 7718 multiline-comment-style invalid \u000a /*\u000a * the following line\u000a is missing a '*' at the start\u000a */\u000a ok 7719 multiline-comment-style invalid \u000a /*\u000a * the following line\u000a * has a '*' with the wrong offset at the start\u000a */\u000a ok 7720 multiline-comment-style invalid \u000a /*\u000a * the following line\u000a * has a '*' with the wrong offset at the start\u000a */\u000a ok 7721 multiline-comment-style invalid \u000a /*\u000a * the last line of this comment\u000a * is misaligned\u000a */\u000a ok 7722 multiline-comment-style invalid \u000a /*\u000a * the following line\u000a *\u000a * is blank\u000a */\u000a ok 7723 multiline-comment-style invalid \u000a /*\u000a * the following line\u000a *\u000a * is blank\u000a */\u000a ok 7724 multiline-comment-style invalid \u000a /*\u000a * the last line of this comment\u000a * is misaligned\u000a */ foo\u000a ok 7725 multiline-comment-style invalid \u000a /*\u000a * foo\u000a * bar\u000a */\u000a ok 7726 multiline-comment-style invalid \u000a /* foo\u000a *bar\u000a baz\u000a qux*/\u000a ok 7727 multiline-comment-style invalid \u000a // foo\u000a // bar\u000a ok 7728 multiline-comment-style invalid \u000a /*\u000a * foo\u000a * bar\u000a */\u000a ok 7729 multiline-ternary valid a\u000a? b\u000a: c ok 7730 multiline-ternary valid a ?\u000ab :\u000ac ok 7731 multiline-ternary valid a\u000a? b\u000a? c\u000a: d\u000a: e ok 7732 multiline-ternary valid a\u000a? (b\u000a? c\u000a: d)\u000a: e ok 7733 multiline-ternary valid a\u000a? b\u000a: c ok 7734 multiline-ternary valid a ?\u000ab :\u000ac ok 7735 multiline-ternary valid a\u000a? b\u000a? c\u000a: d\u000a: e ok 7736 multiline-ternary valid a\u000a? (b\u000a? c\u000a: d)\u000a: e ok 7737 multiline-ternary valid a\u000a? b\u000a: c ok 7738 multiline-ternary valid a ?\u000ab :\u000ac ok 7739 multiline-ternary valid a\u000a? b\u000a? c\u000a: d\u000a: e ok 7740 multiline-ternary valid a\u000a? (b\u000a? c\u000a: d)\u000a: e ok 7741 multiline-ternary valid a ? b : c ok 7742 multiline-ternary valid a ? b ? c : d : e ok 7743 multiline-ternary valid a ? (b ? c : d) : e ok 7744 multiline-ternary valid a\u000a? (b ? c : d)\u000a: e ok 7745 multiline-ternary valid a ?\u000a(b ? c : d) :\u000ae ok 7746 multiline-ternary valid a ? b : c ok 7747 multiline-ternary valid a ? b ? c : d : e ok 7748 multiline-ternary valid a ? (b ? c : d) : e ok 7749 multiline-ternary invalid a ? b : c ok 7750 multiline-ternary invalid a\u000a? b : c ok 7751 multiline-ternary invalid a ? b\u000a: c ok 7752 multiline-ternary invalid a ? (b ? c : d) : e ok 7753 multiline-ternary invalid a ?\u000a(b ? c : d) :\u000ae ok 7754 multiline-ternary invalid a ? (b\u000a? c\u000a: d) : e ok 7755 multiline-ternary invalid a ?\u000a(b? c\u000a: d) : e ok 7756 multiline-ternary invalid a ?\u000a(b\u000a? c : d) : e ok 7757 multiline-ternary invalid a ?\u000a(b\u000a? c\u000a : d) : e ok 7758 multiline-ternary invalid a ? b : c ok 7759 multiline-ternary invalid a\u000a? b : c ok 7760 multiline-ternary invalid a ? b\u000a: c ok 7761 multiline-ternary invalid a ? (b ? c : d) : e ok 7762 multiline-ternary invalid a ?\u000a(b ? c : d) :\u000ae ok 7763 multiline-ternary invalid a ? (b\u000a? c\u000a: d) : e ok 7764 multiline-ternary invalid a ?\u000a(b? c\u000a: d) : e ok 7765 multiline-ternary invalid a ?\u000a(b\u000a? c : d) : e ok 7766 multiline-ternary invalid a ?\u000a(b\u000a? c\u000a : d) : e ok 7767 multiline-ternary invalid a\u000a? b : c ok 7768 multiline-ternary invalid a ? b\u000a: c ok 7769 multiline-ternary invalid a &&\u000ab ? c : d ok 7770 multiline-ternary invalid a ? b +\u000ac : d ok 7771 multiline-ternary invalid a ? b : c +\u000ad ok 7772 multiline-ternary invalid a ?\u000a(b ? c : d) : e ok 7773 multiline-ternary invalid a ? (b ? c : d) :\u000ae ok 7774 multiline-ternary invalid a ? (b\u000a? c\u000a: d) : e ok 7775 multiline-ternary invalid a ?\u000a(b ? c\u000a: d) : e ok 7776 multiline-ternary invalid a ?\u000a(b\u000a? c : d) : e ok 7777 multiline-ternary invalid a ?\u000a(b\u000a? c\u000a : d) : e ok 7778 multiline-ternary invalid a\u000a? b : c ok 7779 multiline-ternary invalid a ? b\u000a: c ok 7780 multiline-ternary invalid a ?\u000a(b ? c : d) :\u000ae ok 7781 multiline-ternary invalid a ? (b\u000a? c\u000a: d) : e ok 7782 multiline-ternary invalid a ?\u000a(b? c\u000a: d) : e ok 7783 multiline-ternary invalid a ?\u000a(b\u000a? c : d) : e ok 7784 multiline-ternary invalid a ?\u000a(b\u000a? c\u000a : d) : e ok 7785 multiline-ternary invalid a ? (b\u000a? c\u000a: d)\u000a: e ok 7786 multiline-ternary invalid a\u000a?\u000a(b\u000a?\u000ac\u000a:\u000ad)\u000a:\u000ae ok 7787 new-cap valid var x = new Constructor(); ok 7788 new-cap valid var x = new a.b.Constructor(); ok 7789 new-cap valid var x = new a.b['Constructor'](); ok 7790 new-cap valid var x = new a.b[Constructor](); ok 7791 new-cap valid var x = new a.b[constructor](); ok 7792 new-cap valid var x = new function(){}; ok 7793 new-cap valid var x = new _; ok 7794 new-cap valid var x = new $; ok 7795 new-cap valid var x = new Σ; ok 7796 new-cap valid var x = new _x; ok 7797 new-cap valid var x = new $x; ok 7798 new-cap valid var x = new this; ok 7799 new-cap valid var x = Array(42) ok 7800 new-cap valid var x = Boolean(42) ok 7801 new-cap valid var x = Date(42) ok 7802 new-cap valid var x = Date.UTC(2000, 0) ok 7803 new-cap valid var x = Error('error') ok 7804 new-cap valid var x = Function('return 0') ok 7805 new-cap valid var x = Number(42) ok 7806 new-cap valid var x = Object(null) ok 7807 new-cap valid var x = RegExp(42) ok 7808 new-cap valid var x = String(42) ok 7809 new-cap valid var x = Symbol('symbol') ok 7810 new-cap valid var x = BigInt('1n') ok 7811 new-cap valid var x = _(); ok 7812 new-cap valid var x = $(); ok 7813 new-cap valid var x = Foo(42) ok 7814 new-cap valid var x = bar.Foo(42) ok 7815 new-cap valid var x = Foo.bar(42) ok 7816 new-cap valid var x = bar[Foo](42) ok 7817 new-cap valid var x = bar['Foo'](42) ok 7818 new-cap valid var x = Foo.bar(42) ok 7819 new-cap valid var x = new foo(42) ok 7820 new-cap valid var o = { 1: function() {} }; o[1](); ok 7821 new-cap valid var o = { 1: function() {} }; new o[1](); ok 7822 new-cap valid var x = Foo(42); ok 7823 new-cap valid var x = Foo(42); ok 7824 new-cap valid var x = new foo(42); ok 7825 new-cap valid var x = new foo(42); ok 7826 new-cap valid var x = Object(42); ok 7827 new-cap valid var x = Foo.Bar(42); ok 7828 new-cap valid var x = Foo.Bar(42); ok 7829 new-cap valid var x = Foo.Bar(42); ok 7830 new-cap valid var x = new foo.bar(42); ok 7831 new-cap valid var x = new foo.bar(42); ok 7832 new-cap valid var x = new foo.bar(42); ok 7833 new-cap valid var x = new foo.bar(42); ok 7834 new-cap valid var x = Foo.bar(42); ok 7835 new-cap valid var x = foo.Bar(42); ok 7836 new-cap invalid var x = new c(); ok 7837 new-cap invalid var x = new φ; ok 7838 new-cap invalid var x = new a.b.c; ok 7839 new-cap invalid var x = new a.b['c']; ok 7840 new-cap invalid var b = Foo(); ok 7841 new-cap invalid var b = a.Foo(); ok 7842 new-cap invalid var b = a['Foo'](); ok 7843 new-cap invalid var b = a.Date.UTC(); ok 7844 new-cap invalid var b = UTC(); ok 7845 new-cap invalid var a = B.C(); ok 7846 new-cap invalid var a = B\u000a.C(); ok 7847 new-cap invalid var a = new B.c(); ok 7848 new-cap invalid var a = new B.\u000ac(); ok 7849 new-cap invalid var a = new c(); ok 7850 new-cap invalid var x = Foo.Bar(42); ok 7851 new-cap invalid var x = Bar.Foo(42); ok 7852 new-cap invalid var x = new foo.bar(42); ok 7853 new-cap invalid var x = new bar.foo(42); ok 7854 new-parens valid var a = new Date(); ok 7855 new-parens valid var a = new Date(function() {}); ok 7856 new-parens valid var a = new (Date)(); ok 7857 new-parens valid var a = new ((Date))(); ok 7858 new-parens valid var a = (new Date()); ok 7859 new-parens valid var a = new foo.Bar(); ok 7860 new-parens valid var a = (new Foo()).bar; ok 7861 new-parens valid new Storage('state'); ok 7862 new-parens valid var a = new Date(); ok 7863 new-parens valid var a = new foo.Bar(); ok 7864 new-parens valid var a = (new Foo()).bar; ok 7865 new-parens valid var a = new Date; ok 7866 new-parens valid var a = new Date(function() {}); ok 7867 new-parens valid var a = new (Date); ok 7868 new-parens valid var a = new ((Date)); ok 7869 new-parens valid var a = (new Date); ok 7870 new-parens valid var a = new foo.Bar; ok 7871 new-parens valid var a = (new Foo).bar; ok 7872 new-parens valid var a = new Person('Name') ok 7873 new-parens valid var a = new Person('Name', 12) ok 7874 new-parens valid var a = new ((Person))('Name'); ok 7875 new-parens invalid var a = new Date; ok 7876 new-parens invalid var a = new Date ok 7877 new-parens invalid var a = new (Date); ok 7878 new-parens invalid var a = new (Date) ok 7879 new-parens invalid var a = (new Date) ok 7880 new-parens invalid var a = (new Date)() ok 7881 new-parens invalid var a = new foo.Bar; ok 7882 new-parens invalid var a = (new Foo).bar; ok 7883 new-parens invalid var a = new Date; ok 7884 new-parens invalid var a = new foo.Bar; ok 7885 new-parens invalid var a = (new Foo).bar; ok 7886 new-parens invalid var a = new Date(); ok 7887 new-parens invalid var a = new Date() ok 7888 new-parens invalid var a = new (Date)(); ok 7889 new-parens invalid var a = new (Date)() ok 7890 new-parens invalid var a = (new Date()) ok 7891 new-parens invalid var a = (new Date())() ok 7892 new-parens invalid var a = new foo.Bar(); ok 7893 new-parens invalid var a = (new Foo()).bar; ok 7894 newline-after-var valid console.log(greet); ok 7895 newline-after-var valid console.log(greet); ok 7896 newline-after-var valid var greet = 'hello'; ok 7897 newline-after-var valid var greet = 'hello'; ok 7898 newline-after-var valid var greet = 'hello';console.log(greet); ok 7899 newline-after-var valid var greet = 'hello';\u000aconsole.log(greet); ok 7900 newline-after-var valid var greet = 'hello';\u000a\u000aconsole.log(greet); ok 7901 newline-after-var valid var greet = 'hello';\u000a\u000a\u000aconsole.log(greet); ok 7902 newline-after-var valid var greet = 'hello';\u000a\u000a\u000a\u000aconsole.log(greet); ok 7903 newline-after-var valid var greet = 'hello'; \u000a\u000aconsole.log(greet); ok 7904 newline-after-var valid var greet = 'hello'; \u000aconsole.log(greet); ok 7905 newline-after-var valid var greet = 'hello'; // inline comment\u000a\u000aconsole.log(greet); ok 7906 newline-after-var valid var greet = 'hello'; // inline comment\u000aconsole.log(greet); ok 7907 newline-after-var valid var greet = 'hello';\u000a// next-line comment\u000aconsole.log(greet); ok 7908 newline-after-var valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 7909 newline-after-var valid var greet = 'hello';\u000a// next-line comment\u000a\u000aconsole.log(greet); ok 7910 newline-after-var valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000a\u000aconsole.log(greet); ok 7911 newline-after-var valid var greet = 'hello';\u000a// next-line comment\u000a// second-line comment\u000a\u000aconsole.log(greet); ok 7912 newline-after-var valid var greet = 'hello';\u000a// next-line comment\u000a// second-line comment\u000aconsole.log(greet); ok 7913 newline-after-var valid var greet = 'hello';\u000a// next-line comment\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 7914 newline-after-var valid var greet = 'hello';var name = 'world';console.log(greet, name); ok 7915 newline-after-var valid var greet = 'hello';\u000avar name = 'world';\u000aconsole.log(greet, name); ok 7916 newline-after-var valid var greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 7917 newline-after-var valid var greet = 'hello';\u000a// inline comment\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 7918 newline-after-var valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 7919 newline-after-var valid var greet = 'hello';\u000a// inline comment\u000avar name = 'world';\u000aconsole.log(greet, name); ok 7920 newline-after-var valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000avar name = 'world';\u000aconsole.log(greet, name); ok 7921 newline-after-var valid var greet = 'hello', name = 'world';console.log(greet, name); ok 7922 newline-after-var valid var greet = 'hello', name = 'world';\u000aconsole.log(greet, name); ok 7923 newline-after-var valid var greet = 'hello', name = 'world';\u000a\u000aconsole.log(greet, name); ok 7924 newline-after-var valid var greet = 'hello',\u000aname = 'world';\u000a\u000aconsole.log(greet, name); ok 7925 newline-after-var valid var greet = 'hello',\u000aname = 'world';\u000aconsole.log(greet, name); ok 7926 newline-after-var valid var greet = 'hello', // inline comment\u000aname = 'world'; // inline comment\u000a\u000aconsole.log(greet, name); ok 7927 newline-after-var valid var greet = 'hello', // inline comment\u000aname = 'world'; // inline comment\u000aconsole.log(greet, name); ok 7928 newline-after-var valid var greet = 'hello',\u000aname = 'world';\u000a// next-line comment\u000aconsole.log(greet); ok 7929 newline-after-var valid var greet = 'hello',\u000aname = 'world';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 7930 newline-after-var valid let greet = 'hello';\u000a\u000aconsole.log(greet); ok 7931 newline-after-var valid let greet = 'hello';\u000aconsole.log(greet); ok 7932 newline-after-var valid const greet = 'hello';\u000a\u000aconsole.log(greet); ok 7933 newline-after-var valid const greet = 'hello';\u000aconsole.log(greet); ok 7934 newline-after-var valid let greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 7935 newline-after-var valid const greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 7936 newline-after-var valid let greet = 'hello';\u000aconst name = 'world';\u000a\u000aconsole.log(greet, name); ok 7937 newline-after-var valid for(let a = 1; a < 1; a++){\u000a break;\u000a} ok 7938 newline-after-var valid for(var a = 1; a < 1; a++){\u000a break;\u000a} ok 7939 newline-after-var valid for(let a = 1; a < 1; a++){\u000a break;\u000a} ok 7940 newline-after-var valid for(var a = 1; a < 1; a++){\u000a break;\u000a} ok 7941 newline-after-var valid for(let a in obj){\u000a break;\u000a} ok 7942 newline-after-var valid for(var a in obj){\u000a break;\u000a} ok 7943 newline-after-var valid for(let a in obj){\u000a break;\u000a} ok 7944 newline-after-var valid for(var a in obj){\u000a break;\u000a} ok 7945 newline-after-var valid for(let a in obj){\u000a break;\u000a} ok 7946 newline-after-var valid for(var a in obj){\u000a break;\u000a} ok 7947 newline-after-var valid for(let a in obj){\u000a break;\u000a} ok 7948 newline-after-var valid for(var a in obj){\u000a break;\u000a} ok 7949 newline-after-var valid export let a = 1;\u000aexport let b = 2; ok 7950 newline-after-var valid export let a = 1;\u000aexport let b = 2; ok 7951 newline-after-var valid export var a = 1;\u000aexport var b = 2; ok 7952 newline-after-var valid export var a = 1;\u000aexport var b = 2; ok 7953 newline-after-var valid export const a = 1;\u000aexport const b = 2; ok 7954 newline-after-var valid export const a = 1;\u000aexport const b = 2; ok 7955 newline-after-var valid function example() {\u000avar greet = 'hello'\u000a} ok 7956 newline-after-var valid function example() {\u000avar greet = 'hello'\u000a} ok 7957 newline-after-var valid function example() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 7958 newline-after-var valid var f = function() {\u000avar greet = 'hello'\u000a}; ok 7959 newline-after-var valid var f = function() {\u000avar greet = 'hello'\u000a}; ok 7960 newline-after-var valid var f = function() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a}; ok 7961 newline-after-var valid () => {\u000avar greet = 'hello';\u000a} ok 7962 newline-after-var valid () => {\u000avar greet = 'hello';\u000a} ok 7963 newline-after-var valid () => {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 7964 newline-after-var valid {\u000avar foo;\u000a} ok 7965 newline-after-var valid {\u000avar foo;\u000a} ok 7966 newline-after-var valid if(true) {\u000avar foo;\u000a} ok 7967 newline-after-var valid if(true) {\u000avar foo;\u000a} ok 7968 newline-after-var valid switch(a) {\u000acase 0:\u000avar foo;\u000a} ok 7969 newline-after-var valid switch(a) {\u000acase 0:\u000avar foo;\u000a} ok 7970 newline-after-var valid switch(a) {\u000acase 0:\u000avar foo;\u000a\u000acase 1:} ok 7971 newline-after-var valid switch(a) {\u000acase 0:\u000avar foo;\u000acase 1:} ok 7972 newline-after-var valid \u000a var a = 1\u000a\u000a ;(b || c).doSomething()\u000a ok 7973 newline-after-var valid \u000a var a = 1\u000a ;(b || c).doSomething()\u000a ok 7974 newline-after-var valid \u000a var a = 1\u000a ;\u000a (b || c).doSomething();\u000a ok 7975 newline-after-var invalid var greet = 'hello';console.log(greet); ok 7976 newline-after-var invalid var greet = 'hello';var name = 'world';console.log(greet, name); ok 7977 newline-after-var invalid var greet = 'hello', name = 'world';console.log(greet, name); ok 7978 newline-after-var invalid var greet = 'hello';\u000aconsole.log(greet); ok 7979 newline-after-var invalid var greet = 'hello'; \u000aconsole.log(greet); ok 7980 newline-after-var invalid var greet = 'hello'; // inline comment\u000aconsole.log(greet); ok 7981 newline-after-var invalid var greet = 'hello';\u000avar name = 'world';\u000aconsole.log(greet, name); ok 7982 newline-after-var invalid var greet = 'hello', name = 'world';\u000aconsole.log(greet, name); ok 7983 newline-after-var invalid var greet = 'hello',\u000aname = 'world';\u000aconsole.log(greet, name); ok 7984 newline-after-var invalid let greet = 'hello';\u000aconsole.log(greet); ok 7985 newline-after-var invalid const greet = 'hello';\u000aconsole.log(greet); ok 7986 newline-after-var invalid function example() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 7987 newline-after-var invalid var f = function() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a}; ok 7988 newline-after-var invalid () => {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 7989 newline-after-var invalid switch(a) {\u000acase 0:\u000avar foo;\u000acase 1:} ok 7990 newline-after-var invalid var greet = 'hello';\u000a\u000aconsole.log(greet); ok 7991 newline-after-var invalid var greet = 'hello';\u000a\u000a\u000aconsole.log(greet); ok 7992 newline-after-var invalid var greet = 'hello';\u000a\u000a\u000a\u000aconsole.log(greet); ok 7993 newline-after-var invalid var greet = 'hello'; \u000a\u000aconsole.log(greet); ok 7994 newline-after-var invalid var greet = 'hello'; // inline comment\u000a\u000aconsole.log(greet); ok 7995 newline-after-var invalid var greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 7996 newline-after-var invalid var greet = 'hello', name = 'world';\u000a\u000aconsole.log(greet, name); ok 7997 newline-after-var invalid var greet = 'hello',\u000aname = 'world';\u000a\u000aconsole.log(greet, name); ok 7998 newline-after-var invalid var greet = 'hello', // inline comment\u000aname = 'world'; // inline comment\u000a\u000aconsole.log(greet, name); ok 7999 newline-after-var invalid let greet = 'hello';\u000a\u000aconsole.log(greet); ok 8000 newline-after-var invalid const greet = 'hello';\u000a\u000aconsole.log(greet); ok 8001 newline-after-var invalid switch(a) {\u000acase 0:\u000avar foo;\u000a\u000acase 1:} ok 8002 newline-after-var invalid var greet = 'hello';\u000a// next-line comment\u000aconsole.log(greet); ok 8003 newline-after-var invalid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 8004 newline-after-var invalid var greet = 'hello',\u000aname = 'world';\u000a// next-line comment\u000aconsole.log(greet); ok 8005 newline-after-var invalid var greet = 'hello',\u000aname = 'world';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 8006 newline-after-var invalid var greet = 'hello';\u000a// next-line comment\u000a// second-line comment\u000aconsole.log(greet); ok 8007 newline-after-var invalid var greet = 'hello';\u000a// next-line comment\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 8008 newline-after-var invalid \u000a var a = 1\u000a ;(b || c).doSomething()\u000a ok 8009 newline-after-var invalid \u000a var a = 1\u000a\u000a ;(b || c).doSomething()\u000a ok 8010 newline-after-var invalid \u000a var a = 1\u000a\u000a ;\u000a (b || c).doSomething();\u000a ok 8011 newline-before-return valid function a() {\u000areturn;\u000a} ok 8012 newline-before-return valid function a() {\u000a\u000areturn;\u000a} ok 8013 newline-before-return valid function a() {\u000avar b;\u000a\u000areturn;\u000a} ok 8014 newline-before-return valid function a() {\u000aif (b) return;\u000a} ok 8015 newline-before-return valid function a() {\u000aif (b) { return; }\u000a} ok 8016 newline-before-return valid function a() {\u000aif (b) {\u000areturn;\u000a}\u000a} ok 8017 newline-before-return valid function a() {\u000aif (b) {\u000a\u000areturn;\u000a}\u000a} ok 8018 newline-before-return valid function a() {\u000aif (b) {\u000areturn;\u000a}\u000a\u000areturn c;\u000a} ok 8019 newline-before-return valid function a() {\u000aif (b) {\u000a\u000areturn;\u000a}\u000a\u000areturn c;\u000a} ok 8020 newline-before-return valid function a() {\u000aif (!b) {\u000areturn;\u000a} else {\u000areturn b;\u000a}\u000a} ok 8021 newline-before-return valid function a() {\u000aif (!b) {\u000areturn;\u000a} else {\u000a\u000areturn b;\u000a}\u000a} ok 8022 newline-before-return valid function a() {\u000aif (b) {\u000areturn b;\u000a} else if (c) {\u000areturn c;\u000a}\u000a} ok 8023 newline-before-return valid function a() {\u000aif (b) {\u000areturn b;\u000a} else if (c) {\u000areturn c;\u000a} else {\u000areturn d;\u000a}\u000a} ok 8024 newline-before-return valid function a() {\u000aif (b) {\u000areturn b;\u000a} else if (c) {\u000areturn c;\u000a} else {\u000areturn d;\u000a}\u000a\u000areturn a;\u000a} ok 8025 newline-before-return valid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse return d;\u000a} ok 8026 newline-before-return valid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000areturn d;\u000a}\u000a} ok 8027 newline-before-return valid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000ae();\u000a\u000areturn d;\u000a}\u000a} ok 8028 newline-before-return valid function a() {\u000awhile (b) return;\u000a} ok 8029 newline-before-return valid function a() {\u000a while (b) \u000areturn;\u000a} ok 8030 newline-before-return valid function a() {\u000a while (b) { return; }\u000a} ok 8031 newline-before-return valid function a() {\u000a while (b) {\u000areturn;\u000a}\u000a} ok 8032 newline-before-return valid function a() {\u000a while (b) {\u000ac();\u000a\u000areturn;\u000a}\u000a} ok 8033 newline-before-return valid function a() {\u000avar c;\u000awhile (b) {\u000a c = d; //comment\u000a}\u000a\u000areturn c;\u000a} ok 8034 newline-before-return valid function a() {\u000ado return;\u000awhile (b);\u000a} ok 8035 newline-before-return valid function a() {\u000ado \u000areturn;\u000awhile (b);\u000a} ok 8036 newline-before-return valid function a() {\u000ado { return; } while (b);\u000a} ok 8037 newline-before-return valid function a() {\u000ado { return; }\u000awhile (b);\u000a} ok 8038 newline-before-return valid function a() {\u000ado {\u000areturn;\u000a} while (b);\u000a} ok 8039 newline-before-return valid function a() {\u000ado {\u000ac();\u000a\u000areturn;\u000a} while (b);\u000a} ok 8040 newline-before-return valid function a() {\u000afor (var b; b < c; b++) return;\u000a} ok 8041 newline-before-return valid function a() {\u000afor (var b; b < c; b++)\u000areturn;\u000a} ok 8042 newline-before-return valid function a() {\u000afor (var b; b < c; b++) {\u000areturn;\u000a}\u000a} ok 8043 newline-before-return valid function a() {\u000afor (var b; b < c; b++) {\u000ac();\u000a\u000areturn;\u000a}\u000a} ok 8044 newline-before-return valid function a() {\u000afor (var b; b < c; b++) {\u000aif (d) {\u000abreak; //comment\u000a}\u000a\u000areturn;\u000a}\u000a} ok 8045 newline-before-return valid function a() {\u000afor (b in c)\u000areturn;\u000a} ok 8046 newline-before-return valid function a() {\u000afor (b in c) { return; }\u000a} ok 8047 newline-before-return valid function a() {\u000afor (b in c) {\u000areturn;\u000a}\u000a} ok 8048 newline-before-return valid function a() {\u000afor (b in c) {\u000ad();\u000a\u000areturn;\u000a}\u000a} ok 8049 newline-before-return valid function a() {\u000afor (b of c) return;\u000a} ok 8050 newline-before-return valid function a() {\u000afor (b of c)\u000areturn;\u000a} ok 8051 newline-before-return valid function a() {\u000afor (b of c) {\u000areturn;\u000a}\u000a} ok 8052 newline-before-return valid function a() {\u000afor (b of c) {\u000ad();\u000a\u000areturn;\u000a}\u000a} ok 8053 newline-before-return valid function a() {\u000aswitch (b) {\u000acase 'b': return;\u000a}\u000a} ok 8054 newline-before-return valid function a() {\u000aswitch (b) {\u000acase 'b':\u000areturn;\u000a}\u000a} ok 8055 newline-before-return valid function a() {\u000aswitch (b) {\u000acase 'b': {\u000areturn;\u000a}\u000a}\u000a} ok 8056 newline-before-return valid function a() {\u000a//comment\u000areturn b;\u000a} ok 8057 newline-before-return valid function a() {\u000a{\u000a//comment\u000a}\u000a\u000areturn\u000a} ok 8058 newline-before-return valid function a() {\u000avar b = {\u000a//comment\u000a};\u000a\u000areturn;\u000a} ok 8059 newline-before-return valid function a() {/*multi-line\u000acomment*/return b;\u000a} ok 8060 newline-before-return valid function a() {\u000a/*comment\u000acomment*/\u000a//comment\u000areturn b;\u000a} ok 8061 newline-before-return valid function a() {\u000a/*comment\u000acomment*/\u000a//comment\u000aif (b) return;\u000a} ok 8062 newline-before-return valid function a() {\u000a/*comment\u000acomment*/\u000a//comment\u000aif (b) {\u000ac();\u000a\u000areturn b;\u000a} else {\u000a//comment\u000areturn d;\u000a}\u000a\u000a/*multi-line\u000acomment*/\u000areturn e;\u000a} ok 8063 newline-before-return valid function a() {\u000aif (b) { //comment\u000areturn;\u000a}\u000a\u000areturn c;\u000a} ok 8064 newline-before-return valid function a() {\u000aif (b) { return; } //comment\u000a\u000areturn c;\u000a} ok 8065 newline-before-return valid function a() {\u000aif (b) { return; } /*multi-line\u000acomment*/\u000a\u000areturn c;\u000a} ok 8066 newline-before-return valid function a() {\u000aif (b) { return; }\u000a\u000a/*multi-line\u000acomment*/ return c;\u000a} ok 8067 newline-before-return valid return; ok 8068 newline-before-return valid var a;\u000a\u000areturn; ok 8069 newline-before-return valid // comment\u000areturn; ok 8070 newline-before-return valid /* comment */\u000areturn; ok 8071 newline-before-return valid /* multi-line\u000acomment */\u000areturn; ok 8072 newline-before-return invalid function a() {\u000avar b; return;\u000a} ok 8073 newline-before-return invalid function a() {\u000avar b;\u000areturn;\u000a} ok 8074 newline-before-return invalid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000ae();\u000areturn d;\u000a}\u000a} ok 8075 newline-before-return invalid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000ae(); return d;\u000a}\u000a} ok 8076 newline-before-return invalid function a() {\u000a while (b) {\u000ac();\u000areturn;\u000a}\u000a} ok 8077 newline-before-return invalid function a() {\u000ado {\u000ac();\u000areturn;\u000a} while (b);\u000a} ok 8078 newline-before-return invalid function a() {\u000afor (var b; b < c; b++) {\u000ac();\u000areturn;\u000a}\u000a} ok 8079 newline-before-return invalid function a() {\u000afor (b in c) {\u000ad();\u000areturn;\u000a}\u000a} ok 8080 newline-before-return invalid function a() {\u000afor (b of c) {\u000ad();\u000areturn;\u000a}\u000a} ok 8081 newline-before-return invalid function a() {\u000aif (b) {\u000ac();\u000a}\u000a//comment\u000areturn b;\u000a} ok 8082 newline-before-return invalid function a() {\u000a/*comment\u000acomment*/\u000aif (b) {\u000ac();\u000areturn b;\u000a} else {\u000a//comment\u000a\u000areturn d;\u000a}\u000a/*multi-line\u000acomment*/\u000areturn e;\u000a} ok 8083 newline-before-return invalid function a() {\u000aif (b) { return; } //comment\u000areturn c;\u000a} ok 8084 newline-before-return invalid function a() {\u000aif (b) { return; } /*multi-line\u000acomment*/\u000areturn c;\u000a} ok 8085 newline-before-return invalid function a() {\u000aif (b) { return; }\u000a/*multi-line\u000acomment*/ return c;\u000a} ok 8086 newline-before-return invalid function a() {\u000aif (b) { return; } /*multi-line\u000acomment*/ return c;\u000a} ok 8087 newline-before-return invalid var a;\u000areturn; ok 8088 newline-before-return invalid var a; return; ok 8089 newline-before-return invalid function a() {\u000a{\u000a//comment\u000a}\u000areturn\u000a} ok 8090 newline-before-return invalid function a() {\u000a{\u000a//comment\u000a} return\u000a} ok 8091 newline-before-return invalid function a() {\u000avar c;\u000awhile (b) {\u000a c = d; //comment\u000a}\u000areturn c;\u000a} ok 8092 newline-before-return invalid function a() {\u000afor (var b; b < c; b++) {\u000aif (d) {\u000abreak; //comment\u000a}\u000areturn;\u000a}\u000a} ok 8093 newline-before-return invalid function a() {\u000avar b; /*multi-line\u000acomment*/\u000areturn c;\u000a} ok 8094 newline-before-return invalid function a() {\u000avar b;\u000a/*multi-line\u000acomment*/ return c;\u000a} ok 8095 newline-before-return invalid function a() {\u000avar b; /*multi-line\u000acomment*/ return c;\u000a} ok 8096 newline-before-return invalid function a() {\u000avar b;\u000a//comment\u000areturn;\u000a} ok 8097 newline-before-return invalid function a() {\u000avar b; //comment\u000areturn;\u000a} ok 8098 newline-before-return invalid function a() {\u000avar b;\u000a/* comment */ return;\u000a} ok 8099 newline-before-return invalid function a() {\u000avar b;\u000a//comment\u000a/* comment */ return;\u000a} ok 8100 newline-before-return invalid function a() {\u000avar b; /* comment */ return;\u000a} ok 8101 newline-before-return invalid function a() {\u000avar b; /* comment */\u000areturn;\u000a} ok 8102 newline-before-return invalid function a() {\u000avar b;\u000areturn; //comment\u000a} ok 8103 newline-before-return invalid function a() {\u000avar b; return; //comment\u000a} ok 8104 newline-per-chained-call valid _\u000a.chain({})\u000a.map(foo)\u000a.filter(bar)\u000a.value(); ok 8105 newline-per-chained-call valid a.b.c.d.e.f ok 8106 newline-per-chained-call valid a()\u000a.b()\u000a.c\u000a.e ok 8107 newline-per-chained-call valid var a = m1.m2(); var b = m1.m2();\u000avar c = m1.m2() ok 8108 newline-per-chained-call valid var a = m1()\u000a.m2(); ok 8109 newline-per-chained-call valid var a = m1(); ok 8110 newline-per-chained-call valid a()\u000a.b().c.e.d() ok 8111 newline-per-chained-call valid a().b().c.e.d() ok 8112 newline-per-chained-call valid a.b.c.e.d() ok 8113 newline-per-chained-call valid var a = window\u000a.location\u000a.href\u000a.match(/(^[^]*)/)[0]; ok 8114 newline-per-chained-call valid var a = window['location']\u000a.href\u000a.match(/(^[^]*)/)[0]; ok 8115 newline-per-chained-call valid var a = window['location'].href.match(/(^[^]*)/)[0]; ok 8116 newline-per-chained-call valid var a = m1().m2.m3(); ok 8117 newline-per-chained-call valid var a = m1().m2.m3().m4.m5().m6.m7().m8; ok 8118 newline-per-chained-call invalid _\u000a.chain({}).map(foo).filter(bar).value(); ok 8119 newline-per-chained-call invalid _\u000a.chain({})\u000a.map(foo)\u000a.filter(bar).value(); ok 8120 newline-per-chained-call invalid a().b().c().e.d() ok 8121 newline-per-chained-call invalid a.b.c().e().d() ok 8122 newline-per-chained-call invalid _.chain({}).map(a).value(); ok 8123 newline-per-chained-call invalid var a = m1.m2();\u000a var b = m1.m2().m3().m4().m5(); ok 8124 newline-per-chained-call invalid var a = m1.m2();\u000a var b = m1.m2().m3()\u000a.m4().m5(); ok 8125 newline-per-chained-call invalid var a = m1().m2\u000a.m3().m4().m5().m6().m7(); ok 8126 newline-per-chained-call invalid http.request({\u000a // Param\u000a // Param\u000a // Param\u000a}).on('response', function(response) {\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a // Do something with response.\u000a}).on('error', function(error) {\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a // Do something with error.\u000a}).end(); ok 8127 newline-per-chained-call invalid anObject.method1().method2()['method' + n]()[aCondition ?\u000a 'method3' :\u000a 'method4']() ok 8128 newline-per-chained-call invalid foo.bar()['foo' + 
 + 'bar']() ok 8129 newline-per-chained-call invalid foo.bar()[(biz)]() ok 8130 newline-per-chained-call invalid (foo).bar().biz() ok 8131 newline-per-chained-call invalid foo.bar(). /* comment */ biz() ok 8132 newline-per-chained-call invalid foo.bar() /* comment */ .biz() ok 8133 no-alert valid a[o.k](1) ok 8134 no-alert valid foo.alert(foo) ok 8135 no-alert valid foo.confirm(foo) ok 8136 no-alert valid foo.prompt(foo) ok 8137 no-alert valid function alert() {} alert(); ok 8138 no-alert valid var alert = function() {}; alert(); ok 8139 no-alert valid function foo() { var alert = bar; alert(); } ok 8140 no-alert valid function foo(alert) { alert(); } ok 8141 no-alert valid var alert = function() {}; function test() { alert(); } ok 8142 no-alert valid function foo() { var alert = function() {}; function test() { alert(); } } ok 8143 no-alert valid function confirm() {} confirm(); ok 8144 no-alert valid function prompt() {} prompt(); ok 8145 no-alert valid window[alert](); ok 8146 no-alert valid function foo() { this.alert(); } ok 8147 no-alert valid function foo() { var window = bar; window.alert(); } ok 8148 no-alert invalid alert(foo) ok 8149 no-alert invalid window.alert(foo) ok 8150 no-alert invalid window['alert'](foo) ok 8151 no-alert invalid confirm(foo) ok 8152 no-alert invalid window.confirm(foo) ok 8153 no-alert invalid window['confirm'](foo) ok 8154 no-alert invalid prompt(foo) ok 8155 no-alert invalid window.prompt(foo) ok 8156 no-alert invalid window['prompt'](foo) ok 8157 no-alert invalid function alert() {} window.alert(foo) ok 8158 no-alert invalid var alert = function() {};\u000awindow.alert(foo) ok 8159 no-alert invalid function foo(alert) { window.alert(); } ok 8160 no-alert invalid function foo() { alert(); } ok 8161 no-alert invalid function foo() { var alert = function() {}; }\u000aalert(); ok 8162 no-alert invalid this.alert(foo) ok 8163 no-alert invalid this['alert'](foo) ok 8164 no-alert invalid function foo() { var window = bar; window.alert(); }\u000awindow.alert(); ok 8165 no-array-constructor valid new Array(x) ok 8166 no-array-constructor valid Array(x) ok 8167 no-array-constructor valid new Array(9) ok 8168 no-array-constructor valid Array(9) ok 8169 no-array-constructor valid new foo.Array() ok 8170 no-array-constructor valid foo.Array() ok 8171 no-array-constructor valid new Array.foo ok 8172 no-array-constructor valid Array.foo() ok 8173 no-array-constructor invalid new Array() ok 8174 no-array-constructor invalid new Array ok 8175 no-array-constructor invalid new Array(x, y) ok 8176 no-array-constructor invalid new Array(0, 1, 2) ok 8177 no-async-promise-executor valid new Promise((resolve, reject) => {}) ok 8178 no-async-promise-executor valid new Promise((resolve, reject) => {}, async function unrelated() {}) ok 8179 no-async-promise-executor valid new Foo(async (resolve, reject) => {}) ok 8180 no-async-promise-executor invalid new Promise(async function foo(resolve, reject) {}) ok 8181 no-async-promise-executor invalid new Promise(async (resolve, reject) => {}) ok 8182 no-async-promise-executor invalid new Promise(((((async () => {}))))) ok 8183 no-await-in-loop valid async function foo() { await bar; } ok 8184 no-await-in-loop valid async function foo() { for (var bar in await baz) { } } ok 8185 no-await-in-loop valid async function foo() { for (var bar of await baz) { } } ok 8186 no-await-in-loop valid async function foo() { for await (var bar of await baz) { } } ok 8187 no-await-in-loop valid async function foo() { for (var bar = await baz in qux) {} } ok 8188 no-await-in-loop valid async function foo() { while (true) { async function foo() { await bar; } } } ok 8189 no-await-in-loop valid async function foo() { for (var i = await bar; i < n; i++) { } } ok 8190 no-await-in-loop valid async function foo() { do { } while (bar); } ok 8191 no-await-in-loop valid async function foo() { while (true) { var y = async function() { await bar; } } } ok 8192 no-await-in-loop valid async function foo() { while (true) { var y = async () => await foo; } } ok 8193 no-await-in-loop valid async function foo() { while (true) { var y = async () => { await foo; } } } ok 8194 no-await-in-loop valid async function foo() { while (true) { class Foo { async foo() { await bar; } } } } ok 8195 no-await-in-loop valid async function foo() { for await (var x of xs) { await f(x) } } ok 8196 no-await-in-loop invalid async function foo() { while (baz) { await bar; } } ok 8197 no-await-in-loop invalid async function foo() { while (await foo()) { } } ok 8198 no-await-in-loop invalid async function foo() { while (baz) { for await (x of xs); } } ok 8199 no-await-in-loop invalid async function foo() { for (var bar of baz) { await bar; } } ok 8200 no-await-in-loop invalid async function foo() { for (var bar of baz) await bar; } ok 8201 no-await-in-loop invalid async function foo() { for (var bar in baz) { await bar; } } ok 8202 no-await-in-loop invalid async function foo() { for (var i; i < n; i++) { await bar; } } ok 8203 no-await-in-loop invalid async function foo() { for (var i; await foo(i); i++) { } } ok 8204 no-await-in-loop invalid async function foo() { for (var i; i < n; i = await bar) { } } ok 8205 no-await-in-loop invalid async function foo() { do { await bar; } while (baz); } ok 8206 no-await-in-loop invalid async function foo() { do { } while (await bar); } ok 8207 no-await-in-loop invalid async function foo() { while (true) { if (bar) { foo(await bar); } } } ok 8208 no-await-in-loop invalid async function foo() { while (xyz || 5 > await x) { } } ok 8209 no-await-in-loop invalid async function foo() { for await (var x of xs) { while (1) await f(x) } } ok 8210 no-bitwise valid a + b ok 8211 no-bitwise valid !a ok 8212 no-bitwise valid a += b ok 8213 no-bitwise valid ~[1, 2, 3].indexOf(1) ok 8214 no-bitwise valid ~1<<2 === -8 ok 8215 no-bitwise valid a|0 ok 8216 no-bitwise valid a|0 ok 8217 no-bitwise invalid a ^ b ok 8218 no-bitwise invalid a | b ok 8219 no-bitwise invalid a & b ok 8220 no-bitwise invalid a << b ok 8221 no-bitwise invalid a >> b ok 8222 no-bitwise invalid a >>> b ok 8223 no-bitwise invalid ~a ok 8224 no-bitwise invalid a ^= b ok 8225 no-bitwise invalid a |= b ok 8226 no-bitwise invalid a &= b ok 8227 no-bitwise invalid a <<= b ok 8228 no-bitwise invalid a >>= b ok 8229 no-bitwise invalid a >>>= b ok 8230 no-buffer-constructor valid Buffer.alloc(5) ok 8231 no-buffer-constructor valid Buffer.allocUnsafe(5) ok 8232 no-buffer-constructor valid new Buffer.Foo() ok 8233 no-buffer-constructor valid Buffer.from([1, 2, 3]) ok 8234 no-buffer-constructor valid foo(Buffer) ok 8235 no-buffer-constructor valid Buffer.alloc(res.body.amount) ok 8236 no-buffer-constructor valid Buffer.from(res.body.values) ok 8237 no-buffer-constructor invalid Buffer(5) ok 8238 no-buffer-constructor invalid new Buffer(5) ok 8239 no-buffer-constructor invalid Buffer([1, 2, 3]) ok 8240 no-buffer-constructor invalid new Buffer([1, 2, 3]) ok 8241 no-buffer-constructor invalid new Buffer(res.body.amount) ok 8242 no-buffer-constructor invalid new Buffer(res.body.values) ok 8243 no-caller valid var x = arguments.length ok 8244 no-caller valid var x = arguments ok 8245 no-caller valid var x = arguments[0] ok 8246 no-caller valid var x = arguments[caller] ok 8247 no-caller invalid var x = arguments.callee ok 8248 no-caller invalid var x = arguments.caller ok 8249 no-case-declarations valid switch (a) { case 1: { let x = 1; break; } default: { let x = 2; break; } } ok 8250 no-case-declarations valid switch (a) { case 1: { const x = 1; break; } default: { const x = 2; break; } } ok 8251 no-case-declarations valid switch (a) { case 1: { function f() {} break; } default: { function f() {} break; } } ok 8252 no-case-declarations valid switch (a) { case 1: { class C {} break; } default: { class C {} break; } } ok 8253 no-case-declarations invalid switch (a) { case 1: let x = 1; break; } ok 8254 no-case-declarations invalid switch (a) { default: let x = 2; break; } ok 8255 no-case-declarations invalid switch (a) { case 1: const x = 1; break; } ok 8256 no-case-declarations invalid switch (a) { default: const x = 2; break; } ok 8257 no-case-declarations invalid switch (a) { case 1: function f() {} break; } ok 8258 no-case-declarations invalid switch (a) { default: function f() {} break; } ok 8259 no-case-declarations invalid switch (a) { case 1: class C {} break; } ok 8260 no-case-declarations invalid switch (a) { default: class C {} break; } ok 8261 no-catch-shadow valid var foo = 1; try { bar(); } catch(baz) { } ok 8262 no-catch-shadow valid 'use strict';\u000a\u000afunction broken() {\u000a try {\u000a throw new Error();\u000a } catch (e) {\u000a //\u000a }\u000a}\u000a\u000amodule.exports = broken; ok 8263 no-catch-shadow valid try {} catch (error) {} ok 8264 no-catch-shadow valid try {} catch {} ok 8265 no-catch-shadow invalid var foo = 1; try { bar(); } catch(foo) { } ok 8266 no-catch-shadow invalid function foo(){} try { bar(); } catch(foo) { } ok 8267 no-catch-shadow invalid function foo(){ try { bar(); } catch(foo) { } } ok 8268 no-catch-shadow invalid var foo = function(){ try { bar(); } catch(foo) { } }; ok 8269 no-class-assign valid class A { } foo(A); ok 8270 no-class-assign valid let A = class A { }; foo(A); ok 8271 no-class-assign valid class A { b(A) { A = 0; } } ok 8272 no-class-assign valid class A { b() { let A; A = 0; } } ok 8273 no-class-assign valid let A = class { b() { A = 0; } } ok 8274 no-class-assign valid var x = 0; x = 1; ok 8275 no-class-assign valid let x = 0; x = 1; ok 8276 no-class-assign valid const x = 0; x = 1; ok 8277 no-class-assign valid function x() {} x = 1; ok 8278 no-class-assign valid function foo(x) { x = 1; } ok 8279 no-class-assign valid try {} catch (x) { x = 1; } ok 8280 no-class-assign invalid class A { } A = 0; ok 8281 no-class-assign invalid class A { } ({A} = 0); ok 8282 no-class-assign invalid class A { } ({b: A = 0} = {}); ok 8283 no-class-assign invalid A = 0; class A { } ok 8284 no-class-assign invalid class A { b() { A = 0; } } ok 8285 no-class-assign invalid let A = class A { b() { A = 0; } } ok 8286 no-class-assign invalid class A { } A = 0; A = 1; ok 8287 no-compare-neg-zero valid x === 0 ok 8288 no-compare-neg-zero valid 0 === x ok 8289 no-compare-neg-zero valid x == 0 ok 8290 no-compare-neg-zero valid 0 == x ok 8291 no-compare-neg-zero valid x === '0' ok 8292 no-compare-neg-zero valid '0' === x ok 8293 no-compare-neg-zero valid x == '0' ok 8294 no-compare-neg-zero valid '0' == x ok 8295 no-compare-neg-zero valid x === '-0' ok 8296 no-compare-neg-zero valid '-0' === x ok 8297 no-compare-neg-zero valid x == '-0' ok 8298 no-compare-neg-zero valid '-0' == x ok 8299 no-compare-neg-zero valid x === -1 ok 8300 no-compare-neg-zero valid -1 === x ok 8301 no-compare-neg-zero valid x < 0 ok 8302 no-compare-neg-zero valid 0 < x ok 8303 no-compare-neg-zero valid x <= 0 ok 8304 no-compare-neg-zero valid 0 <= x ok 8305 no-compare-neg-zero valid x > 0 ok 8306 no-compare-neg-zero valid 0 > x ok 8307 no-compare-neg-zero valid x >= 0 ok 8308 no-compare-neg-zero valid 0 >= x ok 8309 no-compare-neg-zero valid x != 0 ok 8310 no-compare-neg-zero valid 0 != x ok 8311 no-compare-neg-zero valid x !== 0 ok 8312 no-compare-neg-zero valid 0 !== x ok 8313 no-compare-neg-zero valid Object.is(x, -0) ok 8314 no-compare-neg-zero invalid x === -0 ok 8315 no-compare-neg-zero invalid -0 === x ok 8316 no-compare-neg-zero invalid x == -0 ok 8317 no-compare-neg-zero invalid -0 == x ok 8318 no-compare-neg-zero invalid x > -0 ok 8319 no-compare-neg-zero invalid -0 > x ok 8320 no-compare-neg-zero invalid x >= -0 ok 8321 no-compare-neg-zero invalid -0 >= x ok 8322 no-compare-neg-zero invalid x < -0 ok 8323 no-compare-neg-zero invalid -0 < x ok 8324 no-compare-neg-zero invalid x <= -0 ok 8325 no-compare-neg-zero invalid -0 <= x ok 8326 no-cond-assign valid var x = 0; if (x == 0) { var b = 1; } ok 8327 no-cond-assign valid var x = 0; if (x == 0) { var b = 1; } ok 8328 no-cond-assign valid var x = 5; while (x < 5) { x = x + 1; } ok 8329 no-cond-assign valid if ((someNode = someNode.parentNode) !== null) { } ok 8330 no-cond-assign valid if ((someNode = someNode.parentNode) !== null) { } ok 8331 no-cond-assign valid if ((a = b)); ok 8332 no-cond-assign valid while ((a = b)); ok 8333 no-cond-assign valid do {} while ((a = b)); ok 8334 no-cond-assign valid for (;(a = b);); ok 8335 no-cond-assign valid for (;;) {} ok 8336 no-cond-assign valid if (someNode || (someNode = parentNode)) { } ok 8337 no-cond-assign valid while (someNode || (someNode = parentNode)) { } ok 8338 no-cond-assign valid do { } while (someNode || (someNode = parentNode)); ok 8339 no-cond-assign valid for (;someNode || (someNode = parentNode);); ok 8340 no-cond-assign valid if ((function(node) { return node = parentNode; })(someNode)) { } ok 8341 no-cond-assign valid if ((function(node) { return node = parentNode; })(someNode)) { } ok 8342 no-cond-assign valid if ((node => node = parentNode)(someNode)) { } ok 8343 no-cond-assign valid if ((node => node = parentNode)(someNode)) { } ok 8344 no-cond-assign valid if (function(node) { return node = parentNode; }) { } ok 8345 no-cond-assign valid if (function(node) { return node = parentNode; }) { } ok 8346 no-cond-assign valid x = 0; ok 8347 no-cond-assign valid var x; var b = (x === 0) ? 1 : 0; ok 8348 no-cond-assign invalid var x; if (x = 0) { var b = 1; } ok 8349 no-cond-assign invalid var x; while (x = 0) { var b = 1; } ok 8350 no-cond-assign invalid var x = 0, y; do { y = x; } while (x = x + 1); ok 8351 no-cond-assign invalid var x; for(; x+=1 ;){}; ok 8352 no-cond-assign invalid var x; if ((x) = (0)); ok 8353 no-cond-assign invalid if (someNode || (someNode = parentNode)) { } ok 8354 no-cond-assign invalid while (someNode || (someNode = parentNode)) { } ok 8355 no-cond-assign invalid do { } while (someNode || (someNode = parentNode)); ok 8356 no-cond-assign invalid for (; (typeof l === 'undefined' ? (l = 0) : l); i++) { } ok 8357 no-cond-assign invalid if (x = 0) { } ok 8358 no-cond-assign invalid while (x = 0) { } ok 8359 no-cond-assign invalid do { } while (x = x + 1); ok 8360 no-cond-assign invalid for(; x = y; ) { } ok 8361 no-cond-assign invalid if ((x = 0)) { } ok 8362 no-cond-assign invalid while ((x = 0)) { } ok 8363 no-cond-assign invalid do { } while ((x = x + 1)); ok 8364 no-cond-assign invalid for(; (x = y); ) { } ok 8365 no-cond-assign invalid var x; var b = (x = 0) ? 1 : 0; ok 8366 no-cond-assign invalid (((3496.29)).bkufyydt = 2e308) ? foo : bar; ok 8367 no-confusing-arrow valid a => { return 1 ? 2 : 3; } ok 8368 no-confusing-arrow valid a => { return 1 ? 2 : 3; } ok 8369 no-confusing-arrow valid var x = a => { return 1 ? 2 : 3; } ok 8370 no-confusing-arrow valid var x = a => { return 1 ? 2 : 3; } ok 8371 no-confusing-arrow valid var x = (a) => { return 1 ? 2 : 3; } ok 8372 no-confusing-arrow valid var x = (a) => { return 1 ? 2 : 3; } ok 8373 no-confusing-arrow valid var x = a => (1 ? 2 : 3) ok 8374 no-confusing-arrow valid var x = a => (1 ? 2 : 3) ok 8375 no-confusing-arrow invalid a => 1 ? 2 : 3 ok 8376 no-confusing-arrow invalid a => 1 ? 2 : 3 ok 8377 no-confusing-arrow invalid a => 1 ? 2 : 3 ok 8378 no-confusing-arrow invalid var x = a => 1 ? 2 : 3 ok 8379 no-confusing-arrow invalid var x = a => 1 ? 2 : 3 ok 8380 no-confusing-arrow invalid var x = a => 1 ? 2 : 3 ok 8381 no-confusing-arrow invalid var x = (a) => 1 ? 2 : 3 ok 8382 no-console valid Console.info(foo) ok 8383 no-console valid console.info(foo) ok 8384 no-console valid console.warn(foo) ok 8385 no-console valid console.error(foo) ok 8386 no-console valid console.log(foo) ok 8387 no-console valid console.info(foo) ok 8388 no-console valid console.warn(foo) ok 8389 no-console valid console.error(foo) ok 8390 no-console valid console.log(foo) ok 8391 no-console valid var console = require('myconsole'); console.log(foo) ok 8392 no-console invalid console.log(foo) ok 8393 no-console invalid console.error(foo) ok 8394 no-console invalid console.info(foo) ok 8395 no-console invalid console.warn(foo) ok 8396 no-console invalid console.log(foo) ok 8397 no-console invalid console.error(foo) ok 8398 no-console invalid console.info(foo) ok 8399 no-console invalid console.warn(foo) ok 8400 no-console invalid console.log(foo) ok 8401 no-console invalid console.error(foo) ok 8402 no-console invalid console.info(foo) ok 8403 no-console invalid console.warn(foo) ok 8404 no-console invalid console.log(foo) ok 8405 no-const-assign valid const x = 0; { let x; x = 1; } ok 8406 no-const-assign valid const x = 0; function a(x) { x = 1; } ok 8407 no-const-assign valid const x = 0; foo(x); ok 8408 no-const-assign valid for (const x in [1,2,3]) { foo(x); } ok 8409 no-const-assign valid for (const x of [1,2,3]) { foo(x); } ok 8410 no-const-assign valid const x = {key: 0}; x.key = 1; ok 8411 no-const-assign valid var x = 0; x = 1; ok 8412 no-const-assign valid let x = 0; x = 1; ok 8413 no-const-assign valid function x() {} x = 1; ok 8414 no-const-assign valid function foo(x) { x = 1; } ok 8415 no-const-assign valid class X {} X = 1; ok 8416 no-const-assign valid try {} catch (x) { x = 1; } ok 8417 no-const-assign invalid const x = 0; x = 1; ok 8418 no-const-assign invalid const {a: x} = {a: 0}; x = 1; ok 8419 no-const-assign invalid const x = 0; ({x} = {x: 1}); ok 8420 no-const-assign invalid const x = 0; ({a: x = 1} = {}); ok 8421 no-const-assign invalid const x = 0; x += 1; ok 8422 no-const-assign invalid const x = 0; ++x; ok 8423 no-const-assign invalid for (const i = 0; i < 10; ++i) { foo(i); } ok 8424 no-const-assign invalid const x = 0; x = 1; x = 2; ok 8425 no-const-assign invalid const x = 0; function foo() { x = x + 1; } ok 8426 no-const-assign invalid const x = 0; function foo(a) { x = a; } ok 8427 no-const-assign invalid const x = 0; while (true) { x = x + 1; } ok 8428 no-constant-condition valid if(a); ok 8429 no-constant-condition valid if(a == 0); ok 8430 no-constant-condition valid if(a = f()); ok 8431 no-constant-condition valid if(1, a); ok 8432 no-constant-condition valid if ('every' in []); ok 8433 no-constant-condition valid while(~!a); ok 8434 no-constant-condition valid while(a = b); ok 8435 no-constant-condition valid for(;x < 10;); ok 8436 no-constant-condition valid for(;;); ok 8437 no-constant-condition valid do{ }while(x) ok 8438 no-constant-condition valid q > 0 ? 1 : 2; ok 8439 no-constant-condition valid while(x += 3) {} ok 8440 no-constant-condition valid if(typeof x === 'undefined'){} ok 8441 no-constant-condition valid if(a === 'str' && typeof b){} ok 8442 no-constant-condition valid typeof a == typeof b ok 8443 no-constant-condition valid typeof 'a' === 'string'|| typeof b === 'string' ok 8444 no-constant-condition valid if (void a || a); ok 8445 no-constant-condition valid if (a || void a); ok 8446 no-constant-condition valid if(xyz === 'str1' && abc==='str2'){} ok 8447 no-constant-condition valid if(xyz === 'str1' || abc==='str2'){} ok 8448 no-constant-condition valid if(xyz === 'str1' || abc==='str2' && pqr === 5){} ok 8449 no-constant-condition valid if(typeof abc === 'string' && abc==='str2'){} ok 8450 no-constant-condition valid if(false || abc==='str'){} ok 8451 no-constant-condition valid if(true && abc==='str'){} ok 8452 no-constant-condition valid if(typeof 'str' && abc==='str'){} ok 8453 no-constant-condition valid if(abc==='str' || false || def ==='str'){} ok 8454 no-constant-condition valid if(true && abc==='str' || def ==='str'){} ok 8455 no-constant-condition valid if(true && typeof abc==='string'){} ok 8456 no-constant-condition valid if('str' || a){} ok 8457 no-constant-condition valid if('str1' && a){} ok 8458 no-constant-condition valid if(a && 'str'){} ok 8459 no-constant-condition valid if('str' || abc==='str'){} ok 8460 no-constant-condition valid if ((foo || 'bar') === 'baz') {} ok 8461 no-constant-condition valid if ((foo || 'bar') !== 'baz') {} ok 8462 no-constant-condition valid if ((foo || 'bar') == 'baz') {} ok 8463 no-constant-condition valid if ((foo || 'bar') != 'baz') {} ok 8464 no-constant-condition valid if ((foo || 233) > 666) {} ok 8465 no-constant-condition valid if ((foo || 233) < 666) {} ok 8466 no-constant-condition valid if ((foo || 233) >= 666) {} ok 8467 no-constant-condition valid if ((foo || 233) <= 666) {} ok 8468 no-constant-condition valid if ((key || 'k') in obj) {} ok 8469 no-constant-condition valid if ((foo || {}) instanceof obj) {} ok 8470 no-constant-condition valid while(true); ok 8471 no-constant-condition valid for(;true;); ok 8472 no-constant-condition valid do{}while(true) ok 8473 no-constant-condition valid function* foo(){while(true){yield 'foo';}} ok 8474 no-constant-condition valid function* foo(){for(;true;){yield 'foo';}} ok 8475 no-constant-condition valid function* foo(){do{yield 'foo';}while(true)} ok 8476 no-constant-condition valid function* foo(){while (true) { while(true) {yield;}}} ok 8477 no-constant-condition valid function* foo() {for (; yield; ) {}} ok 8478 no-constant-condition valid function* foo() {for (; ; yield) {}} ok 8479 no-constant-condition valid function* foo() {while (true) {function* foo() {yield;}yield;}} ok 8480 no-constant-condition valid function* foo() { for (let x = yield; x < 10; x++) {yield;}yield;} ok 8481 no-constant-condition valid function* foo() { for (let x = yield; ; x++) { yield; }} ok 8482 no-constant-condition invalid for(;true;); ok 8483 no-constant-condition invalid do{}while(true) ok 8484 no-constant-condition invalid do{}while(t = -2) ok 8485 no-constant-condition invalid true ? 1 : 2; ok 8486 no-constant-condition invalid q = 0 ? 1 : 2; ok 8487 no-constant-condition invalid (q = 0) ? 1 : 2; ok 8488 no-constant-condition invalid if(-2); ok 8489 no-constant-condition invalid if(true); ok 8490 no-constant-condition invalid if({}); ok 8491 no-constant-condition invalid if(0 < 1); ok 8492 no-constant-condition invalid if(0 || 1); ok 8493 no-constant-condition invalid if(a, 1); ok 8494 no-constant-condition invalid while([]); ok 8495 no-constant-condition invalid while(~!0); ok 8496 no-constant-condition invalid while(x = 1); ok 8497 no-constant-condition invalid while(function(){}); ok 8498 no-constant-condition invalid while(true); ok 8499 no-constant-condition invalid while(() => {}); ok 8500 no-constant-condition invalid if(typeof x){} ok 8501 no-constant-condition invalid if(typeof 'abc' === 'string'){} ok 8502 no-constant-condition invalid if(a = typeof b){} ok 8503 no-constant-condition invalid if(a, typeof b){} ok 8504 no-constant-condition invalid if(typeof 'a' == 'string' || typeof 'b' == 'string'){} ok 8505 no-constant-condition invalid while(typeof x){} ok 8506 no-constant-condition invalid if(1 || void x); ok 8507 no-constant-condition invalid if(void x); ok 8508 no-constant-condition invalid if(y = void x); ok 8509 no-constant-condition invalid if(x, void x); ok 8510 no-constant-condition invalid if(void x === void y); ok 8511 no-constant-condition invalid if(void x && a); ok 8512 no-constant-condition invalid if(a && void x); ok 8513 no-constant-condition invalid if(false && abc==='str'){} ok 8514 no-constant-condition invalid if(true || abc==='str'){} ok 8515 no-constant-condition invalid if(abc==='str' || true){} ok 8516 no-constant-condition invalid if(abc==='str' || true || def ==='str'){} ok 8517 no-constant-condition invalid if(false || true){} ok 8518 no-constant-condition invalid if(typeof abc==='str' || true){} ok 8519 no-constant-condition invalid if('str1' || 'str2'){} ok 8520 no-constant-condition invalid if('str1' && 'str2'){} ok 8521 no-constant-condition invalid if(abc==='str' || 'str'){} ok 8522 no-constant-condition invalid if(a || 'str'){} ok 8523 no-constant-condition invalid function* foo(){while(true){} yield 'foo';} ok 8524 no-constant-condition invalid function* foo(){while(true){if (true) {yield 'foo';}}} ok 8525 no-constant-condition invalid function* foo(){while(true){yield 'foo';} while(true) {}} ok 8526 no-constant-condition invalid var a = function* foo(){while(true){} yield 'foo';} ok 8527 no-constant-condition invalid while (true) { function* foo() {yield;}} ok 8528 no-constant-condition invalid function* foo(){if (true) {yield 'foo';}} ok 8529 no-constant-condition invalid function* foo() {for (let foo = yield; true;) {}} ok 8530 no-constant-condition invalid function* foo() {for (foo = yield; true;) {}} ok 8531 no-constant-condition invalid function foo() {while (true) {function* bar() {while (true) {yield;}}}} ok 8532 no-constant-condition invalid function foo() {while (true) {const bar = function*() {while (true) {yield;}}}} ok 8533 no-constant-condition invalid function* foo() { for (let foo = 1 + 2 + 3 + (yield); true; baz) {}} ok 8534 no-continue valid var sum = 0, i; for(i = 0; i < 10; i++){ if(i > 5) { sum += i; } } ok 8535 no-continue valid var sum = 0, i = 0; while(i < 10) { if(i > 5) { sum += i; } i++; } ok 8536 no-continue invalid var sum = 0, i; for(i = 0; i < 10; i++){ if(i <= 5) { continue; } sum += i; } ok 8537 no-continue invalid var sum = 0, i; myLabel: for(i = 0; i < 10; i++){ if(i <= 5) { continue myLabel; } sum += i; } ok 8538 no-continue invalid var sum = 0, i = 0; while(i < 10) { if(i <= 5) { i++; continue; } sum += i; i++; } ok 8539 no-continue invalid var sum = 0, i = 0; myLabel: while(i < 10) { if(i <= 5) { i++; continue myLabel; } sum += i; i++; } ok 8540 no-control-regex valid var regex = /x1f/ ok 8541 no-control-regex valid var regex = /\\x1f/ ok 8542 no-control-regex valid var regex = new RegExp('x1f') ok 8543 no-control-regex valid var regex = RegExp('x1f') ok 8544 no-control-regex valid new RegExp('[') ok 8545 no-control-regex valid RegExp('[') ok 8546 no-control-regex valid new (function foo(){})('\x1f') ok 8547 no-control-regex invalid var regex = /\x1f/ ok 8548 no-control-regex invalid var regex = /\\\x1f\\x1e/ ok 8549 no-control-regex invalid var regex = /\\\x1fFOO\\x00/ ok 8550 no-control-regex invalid var regex = /FOO\\\x1fFOO\\x1f/ ok 8551 no-control-regex invalid var regex = new RegExp('\x1f\x1e') ok 8552 no-control-regex invalid var regex = new RegExp('\x1fFOO\x00') ok 8553 no-control-regex invalid var regex = new RegExp('FOO\x1fFOO\x1f') ok 8554 no-control-regex invalid var regex = RegExp('\x1f') ok 8555 no-control-regex invalid var regex = /(?\x1f)/ ok 8556 no-debugger valid var test = { debugger: 1 }; test.debugger; ok 8557 no-debugger invalid if (foo) debugger ok 8558 no-delete-var valid delete x.prop; ok 8559 no-delete-var invalid delete x ok 8560 no-div-regex valid var f = function() { return /foo/ig.test('bar'); }; ok 8561 no-div-regex valid var f = function() { return /\=foo/; }; ok 8562 no-div-regex invalid var f = function() { return /=foo/; }; ok 8563 no-dupe-args valid function a(a, b, c){} ok 8564 no-dupe-args valid var a = function(a, b, c){} ok 8565 no-dupe-args valid function a({a, b}, {c, d}){} ok 8566 no-dupe-args valid function a([ , a]) {} ok 8567 no-dupe-args valid function foo([[a, b], [c, d]]) {} ok 8568 no-dupe-args invalid function a(a, b, b) {} ok 8569 no-dupe-args invalid function a(a, a, a) {} ok 8570 no-dupe-args invalid function a(a, b, a) {} ok 8571 no-dupe-args invalid function a(a, b, a, b) {} ok 8572 no-dupe-args invalid var a = function(a, b, b) {} ok 8573 no-dupe-args invalid var a = function(a, a, a) {} ok 8574 no-dupe-args invalid var a = function(a, b, a) {} ok 8575 no-dupe-args invalid var a = function(a, b, a, b) {} ok 8576 no-dupe-class-members valid class A { foo() {} bar() {} } ok 8577 no-dupe-class-members valid class A { static foo() {} foo() {} } ok 8578 no-dupe-class-members valid class A { get foo() {} set foo(value) {} } ok 8579 no-dupe-class-members valid class A { static foo() {} get foo() {} set foo(value) {} } ok 8580 no-dupe-class-members valid class A { foo() { } } class B { foo() { } } ok 8581 no-dupe-class-members valid class A { [foo]() {} foo() {} } ok 8582 no-dupe-class-members valid class A { 'foo'() {} 'bar'() {} baz() {} } ok 8583 no-dupe-class-members valid class A { *'foo'() {} *'bar'() {} *baz() {} } ok 8584 no-dupe-class-members valid class A { get 'foo'() {} get 'bar'() {} get baz() {} } ok 8585 no-dupe-class-members valid class A { 1() {} 2() {} } ok 8586 no-dupe-class-members invalid class A { foo() {} foo() {} } ok 8587 no-dupe-class-members invalid !class A { foo() {} foo() {} }; ok 8588 no-dupe-class-members invalid class A { 'foo'() {} 'foo'() {} } ok 8589 no-dupe-class-members invalid class A { 10() {} 1e1() {} } ok 8590 no-dupe-class-members invalid class A { foo() {} foo() {} foo() {} } ok 8591 no-dupe-class-members invalid class A { static foo() {} static foo() {} } ok 8592 no-dupe-class-members invalid class A { foo() {} get foo() {} } ok 8593 no-dupe-class-members invalid class A { set foo(value) {} foo() {} } ok 8594 no-dupe-keys valid var foo = { __proto__: 1, two: 2}; ok 8595 no-dupe-keys valid var x = { foo: 1, bar: 2 }; ok 8596 no-dupe-keys valid var x = { '': 1, bar: 2 }; ok 8597 no-dupe-keys valid var x = { '': 1, ' ': 2 }; ok 8598 no-dupe-keys valid var x = { '': 1, [null]: 2 }; ok 8599 no-dupe-keys valid var x = { '': 1, [a]: 2 }; ok 8600 no-dupe-keys valid var x = { [a]: 1, [a]: 2 }; ok 8601 no-dupe-keys valid +{ get a() { }, set a(b) { } }; ok 8602 no-dupe-keys valid var x = { a: b, [a]: b }; ok 8603 no-dupe-keys valid var x = { a: b, ...c } ok 8604 no-dupe-keys valid var x = { get a() {}, set a (value) {} }; ok 8605 no-dupe-keys valid var x = { a: 1, b: { a: 2 } }; ok 8606 no-dupe-keys valid var {a, a} = obj ok 8607 no-dupe-keys invalid var x = { a: b, ['a']: b }; ok 8608 no-dupe-keys invalid var x = { y: 1, y: 2 }; ok 8609 no-dupe-keys invalid var x = { '': 1, '': 2 }; ok 8610 no-dupe-keys invalid var x = { '': 1, [``]: 2 }; ok 8611 no-dupe-keys invalid var foo = { 0x1: 1, 1: 2}; ok 8612 no-dupe-keys invalid var x = { "z": 1, z: 2 }; ok 8613 no-dupe-keys invalid var foo = {\u000a bar: 1,\u000a bar: 1,\u000a} ok 8614 no-dupe-keys invalid var x = { a: 1, get a() {} }; ok 8615 no-dupe-keys invalid var x = { a: 1, set a(value) {} }; ok 8616 no-dupe-keys invalid var x = { a: 1, b: { a: 2 }, get b() {} }; ok 8617 no-duplicate-case valid var a = 1; switch (a) {case 1: break; case 2: break; default: break;} ok 8618 no-duplicate-case valid var a = 1; switch (a) {case 1: break; case '1': break; default: break;} ok 8619 no-duplicate-case valid var a = 1; switch (a) {case 1: break; case true: break; default: break;} ok 8620 no-duplicate-case valid var a = 1; switch (a) {default: break;} ok 8621 no-duplicate-case valid var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p2: break; default: break;} ok 8622 no-duplicate-case valid var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true, false).p1: break; default: break;} ok 8623 no-duplicate-case valid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 2).p1: break; default: break;} ok 8624 no-duplicate-case valid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a == 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;} ok 8625 no-duplicate-case valid var a = 1, f1 = function() { return { p1: 1 } }, f2 = function() { return { p1: 2 } }; switch (a) {case f1().p1: break; case f2().p1: break; default: break;} ok 8626 no-duplicate-case valid var a = [1,2]; switch(a.toString()){case ([1,2]).toString():break; case ([1]).toString():break; default:break;} ok 8627 no-duplicate-case valid switch(a) { case a: break; } switch(a) { case a: break; } ok 8628 no-duplicate-case valid switch(a) { case toString: break; } ok 8629 no-duplicate-case invalid var a = 1; switch (a) {case 1: break; case 1: break; case 2: break; default: break;} ok 8630 no-duplicate-case invalid var a = '1'; switch (a) {case '1': break; case '1': break; case '2': break; default: break;} ok 8631 no-duplicate-case invalid var a = 1, one = 1; switch (a) {case one: break; case one: break; case 2: break; default: break;} ok 8632 no-duplicate-case invalid var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p1: break; default: break;} ok 8633 no-duplicate-case invalid var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true).p1: break; default: break;} ok 8634 no-duplicate-case invalid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 1).p1: break; default: break;} ok 8635 no-duplicate-case invalid var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a === 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;} ok 8636 no-duplicate-case invalid var a = 1, f1 = function() { return { p1: 1 } }; switch (a) {case f1().p1: break; case f1().p1: break; default: break;} ok 8637 no-duplicate-case invalid var a = [1, 2]; switch(a.toString()){case ([1, 2]).toString():break; case ([1, 2]).toString():break; default:break;} ok 8638 no-duplicate-case invalid switch (a) { case a: case a: } ok 8639 no-duplicate-case invalid switch (a) { case a: break; case b: break; case a: break; case c: break; case a: break; } ok 8640 no-duplicate-imports valid import os from "os";\u000aimport fs from "fs"; ok 8641 no-duplicate-imports valid import { merge } from "lodash-es"; ok 8642 no-duplicate-imports valid import _, { merge } from "lodash-es"; ok 8643 no-duplicate-imports valid import * as Foobar from "async"; ok 8644 no-duplicate-imports valid import "foo" ok 8645 no-duplicate-imports valid import os from "os";\u000aexport { something } from "os"; ok 8646 no-duplicate-imports valid import os from "os";\u000aexport { hello } from "hello"; ok 8647 no-duplicate-imports valid import os from "os";\u000aexport * from "hello"; ok 8648 no-duplicate-imports valid import os from "os";\u000aexport { hello as hi } from "hello"; ok 8649 no-duplicate-imports valid import os from "os";\u000aexport default function(){}; ok 8650 no-duplicate-imports valid import { merge } from "lodash-es";\u000aexport { merge as lodashMerge } ok 8651 no-duplicate-imports invalid import "fs";\u000aimport "fs" ok 8652 no-duplicate-imports invalid import { merge } from "lodash-es";import { find } from "lodash-es"; ok 8653 no-duplicate-imports invalid import { merge } from "lodash-es";import _ from "lodash-es"; ok 8654 no-duplicate-imports invalid export { os } from "os";\u000aexport { something } from "os"; ok 8655 no-duplicate-imports invalid import os from "os"; export { os as foobar } from "os";\u000aexport { something } from "os"; ok 8656 no-duplicate-imports invalid import os from "os";\u000aexport { something } from "os"; ok 8657 no-duplicate-imports invalid import os from "os";\u000aexport * from "os"; ok 8658 no-else-return valid function foo() { if (true) { if (false) { return x; } } else { return y; } } ok 8659 no-else-return valid function foo() { if (true) { return x; } return y; } ok 8660 no-else-return valid function foo() { if (true) { for (;;) { return x; } } else { return y; } } ok 8661 no-else-return valid function foo() { var x = true; if (x) { return x; } else if (x === false) { return false; } } ok 8662 no-else-return valid function foo() { if (true) notAReturn(); else return y; } ok 8663 no-else-return valid function foo() {if (x) { notAReturn(); } else if (y) { return true; } else { notAReturn(); } } ok 8664 no-else-return valid function foo() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } } ok 8665 no-else-return valid if (0) { if (0) {} else {} } else {} ok 8666 no-else-return valid \u000a function foo() {\u000a if (foo)\u000a if (bar) return;\u000a else baz;\u000a else qux;\u000a }\u000a ok 8667 no-else-return valid \u000a function foo() {\u000a while (foo)\u000a if (bar) return;\u000a else baz;\u000a }\u000a ok 8668 no-else-return valid function foo19() { if (true) { return x; } else if (false) { return y; } } ok 8669 no-else-return valid function foo20() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } } ok 8670 no-else-return valid function foo21() { var x = true; if (x) { return x; } else if (x === false) { return false; } } ok 8671 no-else-return invalid function foo1() { if (true) { return x; } else { return y; } } ok 8672 no-else-return invalid function foo2() { if (true) { var x = bar; return x; } else { var y = baz; return y; } } ok 8673 no-else-return invalid function foo3() { if (true) return x; else return y; } ok 8674 no-else-return invalid function foo4() { if (true) { if (false) return x; else return y; } else { return z; } } ok 8675 no-else-return invalid function foo5() { if (true) { if (false) { if (true) return x; else { w = y; } } else { w = x; } } else { return z; } } ok 8676 no-else-return invalid function foo6() { if (true) { if (false) { if (true) return x; else return y; } } else { return z; } } ok 8677 no-else-return invalid function foo7() { if (true) { if (false) { if (true) return x; else return y; } return w; } else { return z; } } ok 8678 no-else-return invalid function foo8() { if (true) { if (false) { if (true) return x; else return y; } else { w = x; } } else { return z; } } ok 8679 no-else-return invalid function foo9() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } } ok 8680 no-else-return invalid function foo9a() {if (x) { return true; } else if (y) { return true; } else { notAReturn(); } } ok 8681 no-else-return invalid function foo9b() {if (x) { return true; } if (y) { return true; } else { notAReturn(); } } ok 8682 no-else-return invalid function foo10() { if (foo) return bar; else (foo).bar(); } ok 8683 no-else-return invalid function foo11() { if (foo) return bar \u000aelse { [1, 2, 3].map(foo) } } ok 8684 no-else-return invalid function foo12() { if (foo) return bar \u000aelse { baz() } \u000a[1, 2, 3].map(foo) } ok 8685 no-else-return invalid function foo13() { if (foo) return bar; \u000aelse { [1, 2, 3].map(foo) } } ok 8686 no-else-return invalid function foo14() { if (foo) return bar \u000aelse { baz(); } \u000a[1, 2, 3].map(foo) } ok 8687 no-else-return invalid function foo15() { if (foo) return bar; else { baz() } qaz() } ok 8688 no-else-return invalid function foo16() { if (foo) return bar \u000aelse { baz() } qaz() } ok 8689 no-else-return invalid function foo17() { if (foo) return bar \u000aelse { baz() } \u000aqaz() } ok 8690 no-else-return invalid function foo18() { if (foo) return function() {} \u000aelse [1, 2, 3].map(bar) } ok 8691 no-else-return invalid function foo19() { if (true) { return x; } else if (false) { return y; } } ok 8692 no-else-return invalid function foo20() {if (x) { return true; } else if (y) { notAReturn() } else { notAReturn(); } } ok 8693 no-else-return invalid function foo21() { var x = true; if (x) { return x; } else if (x === false) { return false; } } ok 8694 no-else-return invalid function foo() { var a; if (bar) { return true; } else { var a; } } ok 8695 no-else-return invalid function foo() { if (bar) { var a; if (baz) { return true; } else { var a; } } } ok 8696 no-else-return invalid function foo() { var a; if (bar) { return true; } else { var a; } } ok 8697 no-else-return invalid function foo() { if (bar) { var a; if (baz) { return true; } else { var a; } } } ok 8698 no-else-return invalid function foo() { let a; if (bar) { return true; } else { let a; } } ok 8699 no-else-return invalid class foo { bar() { let a; if (baz) { return true; } else { let a; } } } ok 8700 no-else-return invalid function foo() { if (bar) { let a; if (baz) { return true; } else { let a; } } } ok 8701 no-else-return invalid function foo() {let a; if (bar) { if (baz) { return true; } else { let a; } } } ok 8702 no-else-return invalid function foo() { const a = 1; if (bar) { return true; } else { let a; } } ok 8703 no-else-return invalid function foo() { if (bar) { const a = 1; if (baz) { return true; } else { let a; } } } ok 8704 no-else-return invalid function foo() { let a; if (bar) { return true; } else { const a = 1 } } ok 8705 no-else-return invalid function foo() { if (bar) { let a; if (baz) { return true; } else { const a = 1; } } } ok 8706 no-else-return invalid function foo() { class a {}; if (bar) { return true; } else { const a = 1; } } ok 8707 no-else-return invalid function foo() { if (bar) { class a {}; if (baz) { return true; } else { const a = 1; } } } ok 8708 no-else-return invalid function foo() { const a = 1; if (bar) { return true; } else { class a {} } } ok 8709 no-else-return invalid function foo() { if (bar) { const a = 1; if (baz) { return true; } else { class a {} } } } ok 8710 no-else-return invalid function foo() { var a; if (bar) { return true; } else { let a; } } ok 8711 no-else-return invalid function foo() { if (bar) { var a; return true; } else { let a; } } ok 8712 no-else-return invalid function foo() { if (bar) { return true; } else { let a; } while (baz) { var a; } } ok 8713 no-else-return invalid function foo(a) { if (bar) { return true; } else { let a; } } ok 8714 no-else-return invalid function foo(a = 1) { if (bar) { return true; } else { let a; } } ok 8715 no-else-return invalid function foo(a, b = a) { if (bar) { return true; } else { let a; } if (bar) { return true; } else { let b; }} ok 8716 no-else-return invalid function foo(...args) { if (bar) { return true; } else { let args; } } ok 8717 no-else-return invalid function foo() { try {} catch (a) { if (bar) { return true; } else { let a; } } } ok 8718 no-else-return invalid function foo() { try {} catch (a) { if (bar) { if (baz) { return true; } else { let a; } } } } ok 8719 no-else-return invalid function foo() { try {} catch ({bar, a = 1}) { if (baz) { return true; } else { let a; } } } ok 8720 no-else-return invalid function foo() { if (bar) { return true; } else { let arguments; } } ok 8721 no-else-return invalid function foo() { if (bar) { return true; } else { let arguments; } return arguments[0]; } ok 8722 no-else-return invalid function foo() { if (bar) { return true; } else { let arguments; } if (baz) { return arguments[0]; } } ok 8723 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let arguments; } } } ok 8724 no-else-return invalid function foo() { if (bar) { return true; } else { let a; } a; } ok 8725 no-else-return invalid function foo() { if (bar) { return true; } else { let a; } if (baz) { a; } } ok 8726 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } } a; } ok 8727 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } a; } } ok 8728 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } if (quux) { a; } } } ok 8729 no-else-return invalid function a() { if (foo) { return true; } else { let a; } a(); } ok 8730 no-else-return invalid function a() { if (a) { return true; } else { let a; } } ok 8731 no-else-return invalid function a() { if (foo) { return a; } else { let a; } } ok 8732 no-else-return invalid function foo() { if (bar) { return true; } else { let a; } function baz() { a; } } ok 8733 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } (() => a) } } ok 8734 no-else-return invalid function foo() { if (bar) { return true; } else { let a; } var a; } ok 8735 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } var a; } } ok 8736 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } var { a } = {}; } } ok 8737 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } if (quux) { var a; } } } ok 8738 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } } if (quux) { var a; } } ok 8739 no-else-return invalid function foo() { if (quux) { var a; } if (bar) { if (baz) { return true; } else { let a; } } } ok 8740 no-else-return invalid function foo() { if (bar) { return true; } else { let a; } function a(){} } ok 8741 no-else-return invalid function foo() { if (baz) { if (bar) { return true; } else { let a; } function a(){} } } ok 8742 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } } if (quux) { function a(){} } } ok 8743 no-else-return invalid function foo() { if (bar) { if (baz) { return true; } else { let a; } } function a(){} } ok 8744 no-else-return invalid function foo() { let a; if (bar) { return true; } else { function a(){} } } ok 8745 no-else-return invalid function foo() { var a; if (bar) { return true; } else { function a(){} } } ok 8746 no-else-return invalid function foo() { if (bar) { return true; } else function baz() {} }; ok 8747 no-else-return invalid if (foo) { return true; } else { let a; } ok 8748 no-else-return invalid let a; if (foo) { return true; } else { let a; } ok 8749 no-empty-character-class valid var foo = /^abc[a-zA-Z]/; ok 8750 no-empty-character-class valid var regExp = new RegExp("^abc[]"); ok 8751 no-empty-character-class valid var foo = /^abc/; ok 8752 no-empty-character-class valid var foo = /[\[]/; ok 8753 no-empty-character-class valid var foo = /[\]]/; ok 8754 no-empty-character-class valid var foo = /[a-zA-Z\[]/; ok 8755 no-empty-character-class valid var foo = /[[]/; ok 8756 no-empty-character-class valid var foo = /[\[a-z[]]/; ok 8757 no-empty-character-class valid var foo = /[\-\[\]\/\{\}\(\)\*\+\?\.\\^\$\|]/g; ok 8758 no-empty-character-class valid var foo = /\s*:\s*/gim; ok 8759 no-empty-character-class valid var foo = /[\]]/uy; ok 8760 no-empty-character-class valid var foo = /[\]]/s; ok 8761 no-empty-character-class valid var foo = /\[]/ ok 8762 no-empty-character-class invalid var foo = /^abc[]/; ok 8763 no-empty-character-class invalid var foo = /foo[]bar/; ok 8764 no-empty-character-class invalid if (foo.match(/^abc[]/)) {} ok 8765 no-empty-character-class invalid if (/^abc[]/.test(foo)) {} ok 8766 no-empty-character-class invalid var foo = /[]]/; ok 8767 no-empty-character-class invalid var foo = /\[[]/; ok 8768 no-empty-character-class invalid var foo = /\[\[\]a-z[]/; ok 8769 no-empty-function valid var foo = () => 0; ok 8770 no-empty-function valid function foo() { bar(); } ok 8771 no-empty-function valid function foo() { /* empty */ } ok 8772 no-empty-function valid function foo() {\u000a // empty\u000a} ok 8773 no-empty-function valid function foo() {} // allow: functions ok 8774 no-empty-function valid var foo = function() { bar(); }; ok 8775 no-empty-function valid var foo = function() { /* empty */ }; ok 8776 no-empty-function valid var foo = function() {\u000a // empty\u000a}; ok 8777 no-empty-function valid var foo = function() {}; // allow: functions ok 8778 no-empty-function valid var obj = {foo: function() { bar(); }}; ok 8779 no-empty-function valid var obj = {foo: function() { /* empty */ }}; ok 8780 no-empty-function valid var obj = {foo: function() {\u000a // empty\u000a}}; ok 8781 no-empty-function valid var obj = {foo: function() {}}; // allow: functions ok 8782 no-empty-function valid var foo = () => { bar(); }; ok 8783 no-empty-function valid var foo = () => { /* empty */ }; ok 8784 no-empty-function valid var foo = () => {\u000a // empty\u000a}; ok 8785 no-empty-function valid var foo = () => {}; // allow: arrowFunctions ok 8786 no-empty-function valid function* foo() { bar(); } ok 8787 no-empty-function valid function* foo() { /* empty */ } ok 8788 no-empty-function valid function* foo() {\u000a // empty\u000a} ok 8789 no-empty-function valid function* foo() {} // allow: generatorFunctions ok 8790 no-empty-function valid var foo = function*() { bar(); }; ok 8791 no-empty-function valid var foo = function*() { /* empty */ }; ok 8792 no-empty-function valid var foo = function*() {\u000a // empty\u000a}; ok 8793 no-empty-function valid var foo = function*() {}; // allow: generatorFunctions ok 8794 no-empty-function valid var obj = {foo: function*() { bar(); }}; ok 8795 no-empty-function valid var obj = {foo: function*() { /* empty */ }}; ok 8796 no-empty-function valid var obj = {foo: function*() {\u000a // empty\u000a}}; ok 8797 no-empty-function valid var obj = {foo: function*() {}}; // allow: generatorFunctions ok 8798 no-empty-function valid var obj = {foo() { bar(); }}; ok 8799 no-empty-function valid var obj = {foo() { /* empty */ }}; ok 8800 no-empty-function valid var obj = {foo() {\u000a // empty\u000a}}; ok 8801 no-empty-function valid var obj = {foo() {}}; // allow: methods ok 8802 no-empty-function valid class A {foo() { bar(); }} ok 8803 no-empty-function valid class A {foo() { /* empty */ }} ok 8804 no-empty-function valid class A {foo() {\u000a // empty\u000a}} ok 8805 no-empty-function valid class A {foo() {}} // allow: methods ok 8806 no-empty-function valid class A {static foo() { bar(); }} ok 8807 no-empty-function valid class A {static foo() { /* empty */ }} ok 8808 no-empty-function valid class A {static foo() {\u000a // empty\u000a}} ok 8809 no-empty-function valid class A {static foo() {}} // allow: methods ok 8810 no-empty-function valid var A = class {foo() { bar(); }}; ok 8811 no-empty-function valid var A = class {foo() { /* empty */ }}; ok 8812 no-empty-function valid var A = class {foo() {\u000a // empty\u000a}}; ok 8813 no-empty-function valid var A = class {foo() {}}; // allow: methods ok 8814 no-empty-function valid var A = class {static foo() { bar(); }}; ok 8815 no-empty-function valid var A = class {static foo() { /* empty */ }}; ok 8816 no-empty-function valid var A = class {static foo() {\u000a // empty\u000a}}; ok 8817 no-empty-function valid var A = class {static foo() {}}; // allow: methods ok 8818 no-empty-function valid var obj = {*foo() { bar(); }}; ok 8819 no-empty-function valid var obj = {*foo() { /* empty */ }}; ok 8820 no-empty-function valid var obj = {*foo() {\u000a // empty\u000a}}; ok 8821 no-empty-function valid var obj = {*foo() {}}; // allow: generatorMethods ok 8822 no-empty-function valid class A {*foo() { bar(); }} ok 8823 no-empty-function valid class A {*foo() { /* empty */ }} ok 8824 no-empty-function valid class A {*foo() {\u000a // empty\u000a}} ok 8825 no-empty-function valid class A {*foo() {}} // allow: generatorMethods ok 8826 no-empty-function valid class A {static *foo() { bar(); }} ok 8827 no-empty-function valid class A {static *foo() { /* empty */ }} ok 8828 no-empty-function valid class A {static *foo() {\u000a // empty\u000a}} ok 8829 no-empty-function valid class A {static *foo() {}} // allow: generatorMethods ok 8830 no-empty-function valid var A = class {*foo() { bar(); }}; ok 8831 no-empty-function valid var A = class {*foo() { /* empty */ }}; ok 8832 no-empty-function valid var A = class {*foo() {\u000a // empty\u000a}}; ok 8833 no-empty-function valid var A = class {*foo() {}}; // allow: generatorMethods ok 8834 no-empty-function valid var A = class {static *foo() { bar(); }}; ok 8835 no-empty-function valid var A = class {static *foo() { /* empty */ }}; ok 8836 no-empty-function valid var A = class {static *foo() {\u000a // empty\u000a}}; ok 8837 no-empty-function valid var A = class {static *foo() {}}; // allow: generatorMethods ok 8838 no-empty-function valid var obj = {get foo() { bar(); }}; ok 8839 no-empty-function valid var obj = {get foo() { /* empty */ }}; ok 8840 no-empty-function valid var obj = {get foo() {\u000a // empty\u000a}}; ok 8841 no-empty-function valid var obj = {get foo() {}}; // allow: getters ok 8842 no-empty-function valid class A {get foo() { bar(); }} ok 8843 no-empty-function valid class A {get foo() { /* empty */ }} ok 8844 no-empty-function valid class A {get foo() {\u000a // empty\u000a}} ok 8845 no-empty-function valid class A {get foo() {}} // allow: getters ok 8846 no-empty-function valid class A {static get foo() { bar(); }} ok 8847 no-empty-function valid class A {static get foo() { /* empty */ }} ok 8848 no-empty-function valid class A {static get foo() {\u000a // empty\u000a}} ok 8849 no-empty-function valid class A {static get foo() {}} // allow: getters ok 8850 no-empty-function valid var A = class {get foo() { bar(); }}; ok 8851 no-empty-function valid var A = class {get foo() { /* empty */ }}; ok 8852 no-empty-function valid var A = class {get foo() {\u000a // empty\u000a}}; ok 8853 no-empty-function valid var A = class {get foo() {}}; // allow: getters ok 8854 no-empty-function valid var A = class {static get foo() { bar(); }}; ok 8855 no-empty-function valid var A = class {static get foo() { /* empty */ }}; ok 8856 no-empty-function valid var A = class {static get foo() {\u000a // empty\u000a}}; ok 8857 no-empty-function valid var A = class {static get foo() {}}; // allow: getters ok 8858 no-empty-function valid var obj = {set foo(value) { bar(); }}; ok 8859 no-empty-function valid var obj = {set foo(value) { /* empty */ }}; ok 8860 no-empty-function valid var obj = {set foo(value) {\u000a // empty\u000a}}; ok 8861 no-empty-function valid var obj = {set foo(value) {}}; // allow: setters ok 8862 no-empty-function valid class A {set foo(value) { bar(); }} ok 8863 no-empty-function valid class A {set foo(value) { /* empty */ }} ok 8864 no-empty-function valid class A {set foo(value) {\u000a // empty\u000a}} ok 8865 no-empty-function valid class A {set foo(value) {}} // allow: setters ok 8866 no-empty-function valid class A {static set foo(value) { bar(); }} ok 8867 no-empty-function valid class A {static set foo(value) { /* empty */ }} ok 8868 no-empty-function valid class A {static set foo(value) {\u000a // empty\u000a}} ok 8869 no-empty-function valid class A {static set foo(value) {}} // allow: setters ok 8870 no-empty-function valid var A = class {set foo(value) { bar(); }}; ok 8871 no-empty-function valid var A = class {set foo(value) { /* empty */ }}; ok 8872 no-empty-function valid var A = class {set foo(value) {\u000a // empty\u000a}}; ok 8873 no-empty-function valid var A = class {set foo(value) {}}; // allow: setters ok 8874 no-empty-function valid var A = class {static set foo(value) { bar(); }}; ok 8875 no-empty-function valid var A = class {static set foo(value) { /* empty */ }}; ok 8876 no-empty-function valid var A = class {static set foo(value) {\u000a // empty\u000a}}; ok 8877 no-empty-function valid var A = class {static set foo(value) {}}; // allow: setters ok 8878 no-empty-function valid class A {constructor() { bar(); }} ok 8879 no-empty-function valid class A {constructor() { /* empty */ }} ok 8880 no-empty-function valid class A {constructor() {\u000a // empty\u000a}} ok 8881 no-empty-function valid class A {constructor() {}} // allow: constructors ok 8882 no-empty-function valid var A = class {constructor() { bar(); }}; ok 8883 no-empty-function valid var A = class {constructor() { /* empty */ }}; ok 8884 no-empty-function valid var A = class {constructor() {\u000a // empty\u000a}}; ok 8885 no-empty-function valid var A = class {constructor() {}}; // allow: constructors ok 8886 no-empty-function invalid function foo() {} ok 8887 no-empty-function invalid function foo() {} // allow: arrowFunctions ok 8888 no-empty-function invalid function foo() {} // allow: generatorFunctions ok 8889 no-empty-function invalid function foo() {} // allow: methods ok 8890 no-empty-function invalid function foo() {} // allow: generatorMethods ok 8891 no-empty-function invalid function foo() {} // allow: getters ok 8892 no-empty-function invalid function foo() {} // allow: setters ok 8893 no-empty-function invalid function foo() {} // allow: constructors ok 8894 no-empty-function invalid var foo = function() {}; ok 8895 no-empty-function invalid var foo = function() {}; // allow: arrowFunctions ok 8896 no-empty-function invalid var foo = function() {}; // allow: generatorFunctions ok 8897 no-empty-function invalid var foo = function() {}; // allow: methods ok 8898 no-empty-function invalid var foo = function() {}; // allow: generatorMethods ok 8899 no-empty-function invalid var foo = function() {}; // allow: getters ok 8900 no-empty-function invalid var foo = function() {}; // allow: setters ok 8901 no-empty-function invalid var foo = function() {}; // allow: constructors ok 8902 no-empty-function invalid var obj = {foo: function() {}}; ok 8903 no-empty-function invalid var obj = {foo: function() {}}; // allow: arrowFunctions ok 8904 no-empty-function invalid var obj = {foo: function() {}}; // allow: generatorFunctions ok 8905 no-empty-function invalid var obj = {foo: function() {}}; // allow: methods ok 8906 no-empty-function invalid var obj = {foo: function() {}}; // allow: generatorMethods ok 8907 no-empty-function invalid var obj = {foo: function() {}}; // allow: getters ok 8908 no-empty-function invalid var obj = {foo: function() {}}; // allow: setters ok 8909 no-empty-function invalid var obj = {foo: function() {}}; // allow: constructors ok 8910 no-empty-function invalid var foo = () => {}; ok 8911 no-empty-function invalid var foo = () => {}; // allow: functions ok 8912 no-empty-function invalid var foo = () => {}; // allow: generatorFunctions ok 8913 no-empty-function invalid var foo = () => {}; // allow: methods ok 8914 no-empty-function invalid var foo = () => {}; // allow: generatorMethods ok 8915 no-empty-function invalid var foo = () => {}; // allow: getters ok 8916 no-empty-function invalid var foo = () => {}; // allow: setters ok 8917 no-empty-function invalid var foo = () => {}; // allow: constructors ok 8918 no-empty-function invalid function* foo() {} ok 8919 no-empty-function invalid function* foo() {} // allow: functions ok 8920 no-empty-function invalid function* foo() {} // allow: arrowFunctions ok 8921 no-empty-function invalid function* foo() {} // allow: methods ok 8922 no-empty-function invalid function* foo() {} // allow: generatorMethods ok 8923 no-empty-function invalid function* foo() {} // allow: getters ok 8924 no-empty-function invalid function* foo() {} // allow: setters ok 8925 no-empty-function invalid function* foo() {} // allow: constructors ok 8926 no-empty-function invalid var foo = function*() {}; ok 8927 no-empty-function invalid var foo = function*() {}; // allow: functions ok 8928 no-empty-function invalid var foo = function*() {}; // allow: arrowFunctions ok 8929 no-empty-function invalid var foo = function*() {}; // allow: methods ok 8930 no-empty-function invalid var foo = function*() {}; // allow: generatorMethods ok 8931 no-empty-function invalid var foo = function*() {}; // allow: getters ok 8932 no-empty-function invalid var foo = function*() {}; // allow: setters ok 8933 no-empty-function invalid var foo = function*() {}; // allow: constructors ok 8934 no-empty-function invalid var obj = {foo: function*() {}}; ok 8935 no-empty-function invalid var obj = {foo: function*() {}}; // allow: functions ok 8936 no-empty-function invalid var obj = {foo: function*() {}}; // allow: arrowFunctions ok 8937 no-empty-function invalid var obj = {foo: function*() {}}; // allow: methods ok 8938 no-empty-function invalid var obj = {foo: function*() {}}; // allow: generatorMethods ok 8939 no-empty-function invalid var obj = {foo: function*() {}}; // allow: getters ok 8940 no-empty-function invalid var obj = {foo: function*() {}}; // allow: setters ok 8941 no-empty-function invalid var obj = {foo: function*() {}}; // allow: constructors ok 8942 no-empty-function invalid var obj = {foo() {}}; ok 8943 no-empty-function invalid var obj = {foo() {}}; // allow: functions ok 8944 no-empty-function invalid var obj = {foo() {}}; // allow: arrowFunctions ok 8945 no-empty-function invalid var obj = {foo() {}}; // allow: generatorFunctions ok 8946 no-empty-function invalid var obj = {foo() {}}; // allow: generatorMethods ok 8947 no-empty-function invalid var obj = {foo() {}}; // allow: getters ok 8948 no-empty-function invalid var obj = {foo() {}}; // allow: setters ok 8949 no-empty-function invalid var obj = {foo() {}}; // allow: constructors ok 8950 no-empty-function invalid class A {foo() {}} ok 8951 no-empty-function invalid class A {foo() {}} // allow: functions ok 8952 no-empty-function invalid class A {foo() {}} // allow: arrowFunctions ok 8953 no-empty-function invalid class A {foo() {}} // allow: generatorFunctions ok 8954 no-empty-function invalid class A {foo() {}} // allow: generatorMethods ok 8955 no-empty-function invalid class A {foo() {}} // allow: getters ok 8956 no-empty-function invalid class A {foo() {}} // allow: setters ok 8957 no-empty-function invalid class A {foo() {}} // allow: constructors ok 8958 no-empty-function invalid class A {static foo() {}} ok 8959 no-empty-function invalid class A {static foo() {}} // allow: functions ok 8960 no-empty-function invalid class A {static foo() {}} // allow: arrowFunctions ok 8961 no-empty-function invalid class A {static foo() {}} // allow: generatorFunctions ok 8962 no-empty-function invalid class A {static foo() {}} // allow: generatorMethods ok 8963 no-empty-function invalid class A {static foo() {}} // allow: getters ok 8964 no-empty-function invalid class A {static foo() {}} // allow: setters ok 8965 no-empty-function invalid class A {static foo() {}} // allow: constructors ok 8966 no-empty-function invalid var A = class {foo() {}}; ok 8967 no-empty-function invalid var A = class {foo() {}}; // allow: functions ok 8968 no-empty-function invalid var A = class {foo() {}}; // allow: arrowFunctions ok 8969 no-empty-function invalid var A = class {foo() {}}; // allow: generatorFunctions ok 8970 no-empty-function invalid var A = class {foo() {}}; // allow: generatorMethods ok 8971 no-empty-function invalid var A = class {foo() {}}; // allow: getters ok 8972 no-empty-function invalid var A = class {foo() {}}; // allow: setters ok 8973 no-empty-function invalid var A = class {foo() {}}; // allow: constructors ok 8974 no-empty-function invalid var A = class {static foo() {}}; ok 8975 no-empty-function invalid var A = class {static foo() {}}; // allow: functions ok 8976 no-empty-function invalid var A = class {static foo() {}}; // allow: arrowFunctions ok 8977 no-empty-function invalid var A = class {static foo() {}}; // allow: generatorFunctions ok 8978 no-empty-function invalid var A = class {static foo() {}}; // allow: generatorMethods ok 8979 no-empty-function invalid var A = class {static foo() {}}; // allow: getters ok 8980 no-empty-function invalid var A = class {static foo() {}}; // allow: setters ok 8981 no-empty-function invalid var A = class {static foo() {}}; // allow: constructors ok 8982 no-empty-function invalid var obj = {*foo() {}}; ok 8983 no-empty-function invalid var obj = {*foo() {}}; // allow: functions ok 8984 no-empty-function invalid var obj = {*foo() {}}; // allow: arrowFunctions ok 8985 no-empty-function invalid var obj = {*foo() {}}; // allow: generatorFunctions ok 8986 no-empty-function invalid var obj = {*foo() {}}; // allow: methods ok 8987 no-empty-function invalid var obj = {*foo() {}}; // allow: getters ok 8988 no-empty-function invalid var obj = {*foo() {}}; // allow: setters ok 8989 no-empty-function invalid var obj = {*foo() {}}; // allow: constructors ok 8990 no-empty-function invalid class A {*foo() {}} ok 8991 no-empty-function invalid class A {*foo() {}} // allow: functions ok 8992 no-empty-function invalid class A {*foo() {}} // allow: arrowFunctions ok 8993 no-empty-function invalid class A {*foo() {}} // allow: generatorFunctions ok 8994 no-empty-function invalid class A {*foo() {}} // allow: methods ok 8995 no-empty-function invalid class A {*foo() {}} // allow: getters ok 8996 no-empty-function invalid class A {*foo() {}} // allow: setters ok 8997 no-empty-function invalid class A {*foo() {}} // allow: constructors ok 8998 no-empty-function invalid class A {static *foo() {}} ok 8999 no-empty-function invalid class A {static *foo() {}} // allow: functions ok 9000 no-empty-function invalid class A {static *foo() {}} // allow: arrowFunctions ok 9001 no-empty-function invalid class A {static *foo() {}} // allow: generatorFunctions ok 9002 no-empty-function invalid class A {static *foo() {}} // allow: methods ok 9003 no-empty-function invalid class A {static *foo() {}} // allow: getters ok 9004 no-empty-function invalid class A {static *foo() {}} // allow: setters ok 9005 no-empty-function invalid class A {static *foo() {}} // allow: constructors ok 9006 no-empty-function invalid var A = class {*foo() {}}; ok 9007 no-empty-function invalid var A = class {*foo() {}}; // allow: functions ok 9008 no-empty-function invalid var A = class {*foo() {}}; // allow: arrowFunctions ok 9009 no-empty-function invalid var A = class {*foo() {}}; // allow: generatorFunctions ok 9010 no-empty-function invalid var A = class {*foo() {}}; // allow: methods ok 9011 no-empty-function invalid var A = class {*foo() {}}; // allow: getters ok 9012 no-empty-function invalid var A = class {*foo() {}}; // allow: setters ok 9013 no-empty-function invalid var A = class {*foo() {}}; // allow: constructors ok 9014 no-empty-function invalid var A = class {static *foo() {}}; ok 9015 no-empty-function invalid var A = class {static *foo() {}}; // allow: functions ok 9016 no-empty-function invalid var A = class {static *foo() {}}; // allow: arrowFunctions ok 9017 no-empty-function invalid var A = class {static *foo() {}}; // allow: generatorFunctions ok 9018 no-empty-function invalid var A = class {static *foo() {}}; // allow: methods ok 9019 no-empty-function invalid var A = class {static *foo() {}}; // allow: getters ok 9020 no-empty-function invalid var A = class {static *foo() {}}; // allow: setters ok 9021 no-empty-function invalid var A = class {static *foo() {}}; // allow: constructors ok 9022 no-empty-function invalid var obj = {get foo() {}}; ok 9023 no-empty-function invalid var obj = {get foo() {}}; // allow: functions ok 9024 no-empty-function invalid var obj = {get foo() {}}; // allow: arrowFunctions ok 9025 no-empty-function invalid var obj = {get foo() {}}; // allow: generatorFunctions ok 9026 no-empty-function invalid var obj = {get foo() {}}; // allow: methods ok 9027 no-empty-function invalid var obj = {get foo() {}}; // allow: generatorMethods ok 9028 no-empty-function invalid var obj = {get foo() {}}; // allow: setters ok 9029 no-empty-function invalid var obj = {get foo() {}}; // allow: constructors ok 9030 no-empty-function invalid class A {get foo() {}} ok 9031 no-empty-function invalid class A {get foo() {}} // allow: functions ok 9032 no-empty-function invalid class A {get foo() {}} // allow: arrowFunctions ok 9033 no-empty-function invalid class A {get foo() {}} // allow: generatorFunctions ok 9034 no-empty-function invalid class A {get foo() {}} // allow: methods ok 9035 no-empty-function invalid class A {get foo() {}} // allow: generatorMethods ok 9036 no-empty-function invalid class A {get foo() {}} // allow: setters ok 9037 no-empty-function invalid class A {get foo() {}} // allow: constructors ok 9038 no-empty-function invalid class A {static get foo() {}} ok 9039 no-empty-function invalid class A {static get foo() {}} // allow: functions ok 9040 no-empty-function invalid class A {static get foo() {}} // allow: arrowFunctions ok 9041 no-empty-function invalid class A {static get foo() {}} // allow: generatorFunctions ok 9042 no-empty-function invalid class A {static get foo() {}} // allow: methods ok 9043 no-empty-function invalid class A {static get foo() {}} // allow: generatorMethods ok 9044 no-empty-function invalid class A {static get foo() {}} // allow: setters ok 9045 no-empty-function invalid class A {static get foo() {}} // allow: constructors ok 9046 no-empty-function invalid var A = class {get foo() {}}; ok 9047 no-empty-function invalid var A = class {get foo() {}}; // allow: functions ok 9048 no-empty-function invalid var A = class {get foo() {}}; // allow: arrowFunctions ok 9049 no-empty-function invalid var A = class {get foo() {}}; // allow: generatorFunctions ok 9050 no-empty-function invalid var A = class {get foo() {}}; // allow: methods ok 9051 no-empty-function invalid var A = class {get foo() {}}; // allow: generatorMethods ok 9052 no-empty-function invalid var A = class {get foo() {}}; // allow: setters ok 9053 no-empty-function invalid var A = class {get foo() {}}; // allow: constructors ok 9054 no-empty-function invalid var A = class {static get foo() {}}; ok 9055 no-empty-function invalid var A = class {static get foo() {}}; // allow: functions ok 9056 no-empty-function invalid var A = class {static get foo() {}}; // allow: arrowFunctions ok 9057 no-empty-function invalid var A = class {static get foo() {}}; // allow: generatorFunctions ok 9058 no-empty-function invalid var A = class {static get foo() {}}; // allow: methods ok 9059 no-empty-function invalid var A = class {static get foo() {}}; // allow: generatorMethods ok 9060 no-empty-function invalid var A = class {static get foo() {}}; // allow: setters ok 9061 no-empty-function invalid var A = class {static get foo() {}}; // allow: constructors ok 9062 no-empty-function invalid var obj = {set foo(value) {}}; ok 9063 no-empty-function invalid var obj = {set foo(value) {}}; // allow: functions ok 9064 no-empty-function invalid var obj = {set foo(value) {}}; // allow: arrowFunctions ok 9065 no-empty-function invalid var obj = {set foo(value) {}}; // allow: generatorFunctions ok 9066 no-empty-function invalid var obj = {set foo(value) {}}; // allow: methods ok 9067 no-empty-function invalid var obj = {set foo(value) {}}; // allow: generatorMethods ok 9068 no-empty-function invalid var obj = {set foo(value) {}}; // allow: getters ok 9069 no-empty-function invalid var obj = {set foo(value) {}}; // allow: constructors ok 9070 no-empty-function invalid class A {set foo(value) {}} ok 9071 no-empty-function invalid class A {set foo(value) {}} // allow: functions ok 9072 no-empty-function invalid class A {set foo(value) {}} // allow: arrowFunctions ok 9073 no-empty-function invalid class A {set foo(value) {}} // allow: generatorFunctions ok 9074 no-empty-function invalid class A {set foo(value) {}} // allow: methods ok 9075 no-empty-function invalid class A {set foo(value) {}} // allow: generatorMethods ok 9076 no-empty-function invalid class A {set foo(value) {}} // allow: getters ok 9077 no-empty-function invalid class A {set foo(value) {}} // allow: constructors ok 9078 no-empty-function invalid class A {static set foo(value) {}} ok 9079 no-empty-function invalid class A {static set foo(value) {}} // allow: functions ok 9080 no-empty-function invalid class A {static set foo(value) {}} // allow: arrowFunctions ok 9081 no-empty-function invalid class A {static set foo(value) {}} // allow: generatorFunctions ok 9082 no-empty-function invalid class A {static set foo(value) {}} // allow: methods ok 9083 no-empty-function invalid class A {static set foo(value) {}} // allow: generatorMethods ok 9084 no-empty-function invalid class A {static set foo(value) {}} // allow: getters ok 9085 no-empty-function invalid class A {static set foo(value) {}} // allow: constructors ok 9086 no-empty-function invalid var A = class {set foo(value) {}}; ok 9087 no-empty-function invalid var A = class {set foo(value) {}}; // allow: functions ok 9088 no-empty-function invalid var A = class {set foo(value) {}}; // allow: arrowFunctions ok 9089 no-empty-function invalid var A = class {set foo(value) {}}; // allow: generatorFunctions ok 9090 no-empty-function invalid var A = class {set foo(value) {}}; // allow: methods ok 9091 no-empty-function invalid var A = class {set foo(value) {}}; // allow: generatorMethods ok 9092 no-empty-function invalid var A = class {set foo(value) {}}; // allow: getters ok 9093 no-empty-function invalid var A = class {set foo(value) {}}; // allow: constructors ok 9094 no-empty-function invalid var A = class {static set foo(value) {}}; ok 9095 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: functions ok 9096 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: arrowFunctions ok 9097 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: generatorFunctions ok 9098 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: methods ok 9099 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: generatorMethods ok 9100 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: getters ok 9101 no-empty-function invalid var A = class {static set foo(value) {}}; // allow: constructors ok 9102 no-empty-function invalid class A {constructor() {}} ok 9103 no-empty-function invalid class A {constructor() {}} // allow: functions ok 9104 no-empty-function invalid class A {constructor() {}} // allow: arrowFunctions ok 9105 no-empty-function invalid class A {constructor() {}} // allow: generatorFunctions ok 9106 no-empty-function invalid class A {constructor() {}} // allow: methods ok 9107 no-empty-function invalid class A {constructor() {}} // allow: generatorMethods ok 9108 no-empty-function invalid class A {constructor() {}} // allow: getters ok 9109 no-empty-function invalid class A {constructor() {}} // allow: setters ok 9110 no-empty-function invalid var A = class {constructor() {}}; ok 9111 no-empty-function invalid var A = class {constructor() {}}; // allow: functions ok 9112 no-empty-function invalid var A = class {constructor() {}}; // allow: arrowFunctions ok 9113 no-empty-function invalid var A = class {constructor() {}}; // allow: generatorFunctions ok 9114 no-empty-function invalid var A = class {constructor() {}}; // allow: methods ok 9115 no-empty-function invalid var A = class {constructor() {}}; // allow: generatorMethods ok 9116 no-empty-function invalid var A = class {constructor() {}}; // allow: getters ok 9117 no-empty-function invalid var A = class {constructor() {}}; // allow: setters ok 9118 no-empty-pattern valid var {a = {}} = foo; ok 9119 no-empty-pattern valid var {a, b = {}} = foo; ok 9120 no-empty-pattern valid var {a = []} = foo; ok 9121 no-empty-pattern valid function foo({a = {}}) {} ok 9122 no-empty-pattern valid function foo({a = []}) {} ok 9123 no-empty-pattern valid var [a] = foo ok 9124 no-empty-pattern invalid var {} = foo ok 9125 no-empty-pattern invalid var [] = foo ok 9126 no-empty-pattern invalid var {a: {}} = foo ok 9127 no-empty-pattern invalid var {a, b: {}} = foo ok 9128 no-empty-pattern invalid var {a: []} = foo ok 9129 no-empty-pattern invalid function foo({}) {} ok 9130 no-empty-pattern invalid function foo([]) {} ok 9131 no-empty-pattern invalid function foo({a: {}}) {} ok 9132 no-empty-pattern invalid function foo({a: []}) {} ok 9133 no-empty valid if (foo) { bar() } ok 9134 no-empty valid while (foo) { bar() } ok 9135 no-empty valid for (;foo;) { bar() } ok 9136 no-empty valid try { foo() } catch (ex) { foo() } ok 9137 no-empty valid switch(foo) {case 'foo': break;} ok 9138 no-empty valid (function() { }()) ok 9139 no-empty valid var foo = () => {}; ok 9140 no-empty valid function foo() { } ok 9141 no-empty valid if (foo) {/* empty */} ok 9142 no-empty valid while (foo) {/* empty */} ok 9143 no-empty valid for (;foo;) {/* empty */} ok 9144 no-empty valid try { foo() } catch (ex) {/* empty */} ok 9145 no-empty valid try { foo() } catch (ex) {// empty\u000a} ok 9146 no-empty valid try { foo() } finally {// empty\u000a} ok 9147 no-empty valid try { foo() } finally {// test\u000a} ok 9148 no-empty valid try { foo() } finally {\u000a \u000a // hi i am off no use\u000a} ok 9149 no-empty valid try { foo() } catch (ex) {/* test111 */} ok 9150 no-empty valid if (foo) { bar() } else { // nothing in me \u000a} ok 9151 no-empty valid if (foo) { bar() } else { /**/ \u000a} ok 9152 no-empty valid if (foo) { bar() } else { // \u000a} ok 9153 no-empty valid try { foo(); } catch (ex) {} ok 9154 no-empty valid try { foo(); } catch (ex) {} finally { bar(); } ok 9155 no-empty invalid try {} catch (ex) {throw ex} ok 9156 no-empty invalid try { foo() } catch (ex) {} ok 9157 no-empty invalid try { foo() } catch (ex) {throw ex} finally {} ok 9158 no-empty invalid if (foo) {} ok 9159 no-empty invalid while (foo) {} ok 9160 no-empty invalid for (;foo;) {} ok 9161 no-empty invalid switch(foo) {} ok 9162 no-empty invalid try {} catch (ex) {} ok 9163 no-empty invalid try { foo(); } catch (ex) {} finally {} ok 9164 no-empty invalid try {} catch (ex) {} finally {} ok 9165 no-empty invalid try { foo(); } catch (ex) {} finally {} ok 9166 no-eq-null valid if (x === null) { } ok 9167 no-eq-null valid if (null === f()) { } ok 9168 no-eq-null invalid if (x == null) { } ok 9169 no-eq-null invalid if (x != null) { } ok 9170 no-eq-null invalid do {} while (null == x) ok 9171 no-eval valid Eval(foo) ok 9172 no-eval valid setTimeout('foo') ok 9173 no-eval valid setInterval('foo') ok 9174 no-eval valid window.setTimeout('foo') ok 9175 no-eval valid window.setInterval('foo') ok 9176 no-eval valid window.eval('foo') ok 9177 no-eval valid window.eval('foo') ok 9178 no-eval valid window.noeval('foo') ok 9179 no-eval valid function foo() { var eval = 'foo'; window[eval]('foo') } ok 9180 no-eval valid global.eval('foo') ok 9181 no-eval valid global.eval('foo') ok 9182 no-eval valid global.noeval('foo') ok 9183 no-eval valid function foo() { var eval = 'foo'; global[eval]('foo') } ok 9184 no-eval valid this.noeval('foo'); ok 9185 no-eval valid function foo() { 'use strict'; this.eval('foo'); } ok 9186 no-eval valid function foo() { this.eval('foo'); } ok 9187 no-eval valid function foo() { this.eval('foo'); } ok 9188 no-eval valid var obj = {foo: function() { this.eval('foo'); }} ok 9189 no-eval valid var obj = {}; obj.foo = function() { this.eval('foo'); } ok 9190 no-eval valid class A { foo() { this.eval(); } } ok 9191 no-eval valid class A { static foo() { this.eval(); } } ok 9192 no-eval valid (0, eval)('foo') ok 9193 no-eval valid (0, window.eval)('foo') ok 9194 no-eval valid (0, window['eval'])('foo') ok 9195 no-eval valid var EVAL = eval; EVAL('foo') ok 9196 no-eval valid var EVAL = this.eval; EVAL('foo') ok 9197 no-eval valid (function(exe){ exe('foo') })(eval); ok 9198 no-eval valid window.eval('foo') ok 9199 no-eval valid window.window.eval('foo') ok 9200 no-eval valid window.window['eval']('foo') ok 9201 no-eval valid global.eval('foo') ok 9202 no-eval valid global.global.eval('foo') ok 9203 no-eval valid this.eval('foo') ok 9204 no-eval valid function foo() { this.eval('foo') } ok 9205 no-eval invalid eval(foo) ok 9206 no-eval invalid eval('foo') ok 9207 no-eval invalid function foo(eval) { eval('foo') } ok 9208 no-eval invalid eval(foo) ok 9209 no-eval invalid eval('foo') ok 9210 no-eval invalid function foo(eval) { eval('foo') } ok 9211 no-eval invalid (0, eval)('foo') ok 9212 no-eval invalid (0, window.eval)('foo') ok 9213 no-eval invalid (0, window['eval'])('foo') ok 9214 no-eval invalid var EVAL = eval; EVAL('foo') ok 9215 no-eval invalid var EVAL = this.eval; EVAL('foo') ok 9216 no-eval invalid (function(exe){ exe('foo') })(eval); ok 9217 no-eval invalid window.eval('foo') ok 9218 no-eval invalid window.window.eval('foo') ok 9219 no-eval invalid window.window['eval']('foo') ok 9220 no-eval invalid global.eval('foo') ok 9221 no-eval invalid global.global.eval('foo') ok 9222 no-eval invalid global.global[`eval`]('foo') ok 9223 no-eval invalid this.eval('foo') ok 9224 no-eval invalid function foo() { this.eval('foo') } ok 9225 no-ex-assign valid try { } catch (e) { three = 2 + 1; } ok 9226 no-ex-assign valid try { } catch ({e}) { this.something = 2; } ok 9227 no-ex-assign valid function foo() { try { } catch (e) { return false; } } ok 9228 no-ex-assign invalid try { } catch (e) { e = 10; } ok 9229 no-ex-assign invalid try { } catch (ex) { ex = 10; } ok 9230 no-ex-assign invalid try { } catch (ex) { [ex] = []; } ok 9231 no-ex-assign invalid try { } catch (ex) { ({x: ex = 0} = {}); } ok 9232 no-ex-assign invalid try { } catch ({message}) { message = 10; } ok 9233 no-extend-native valid x.prototype.p = 0 ok 9234 no-extend-native valid x.prototype['p'] = 0 ok 9235 no-extend-native valid Object.p = 0 ok 9236 no-extend-native valid Object.toString.bind = 0 ok 9237 no-extend-native valid Object['toString'].bind = 0 ok 9238 no-extend-native valid Object.defineProperty(x, 'p', {value: 0}) ok 9239 no-extend-native valid Object.defineProperties(x, {p: {value: 0}}) ok 9240 no-extend-native valid global.Object.prototype.toString = 0 ok 9241 no-extend-native valid this.Object.prototype.toString = 0 ok 9242 no-extend-native valid with(Object) { prototype.p = 0; } ok 9243 no-extend-native valid o = Object; o.prototype.toString = 0 ok 9244 no-extend-native valid eval('Object.prototype.toString = 0') ok 9245 no-extend-native valid parseFloat.prototype.x = 1 ok 9246 no-extend-native valid Object.prototype.g = 0 ok 9247 no-extend-native valid Object.defineProperty() ok 9248 no-extend-native valid Object.defineProperties() ok 9249 no-extend-native valid function foo() { var Object = function() {}; Object.prototype.p = 0 } ok 9250 no-extend-native valid { let Object = function() {}; Object.prototype.p = 0 } ok 9251 no-extend-native invalid Object.prototype.p = 0 ok 9252 no-extend-native invalid Function.prototype['p'] = 0 ok 9253 no-extend-native invalid String['prototype'].p = 0 ok 9254 no-extend-native invalid Number['prototype']['p'] = 0 ok 9255 no-extend-native invalid Object.defineProperty(Array.prototype, 'p', {value: 0}) ok 9256 no-extend-native invalid Object.defineProperties(Array.prototype, {p: {value: 0}}) ok 9257 no-extend-native invalid Object.defineProperties(Array.prototype, {p: {value: 0}, q: {value: 0}}) ok 9258 no-extend-native invalid Number['prototype']['p'] = 0 ok 9259 no-extend-native invalid Object.prototype.p = 0; Object.prototype.q = 0 ok 9260 no-extend-native invalid function foo() { Object.prototype.p = 0 } ok 9261 no-extra-bind valid var a = function(b) { return b }.bind(c, d) ok 9262 no-extra-bind valid var a = function(b) { return b }.bind(...c) ok 9263 no-extra-bind valid var a = function() { this.b }() ok 9264 no-extra-bind valid var a = function() { this.b }.foo() ok 9265 no-extra-bind valid var a = f.bind(a) ok 9266 no-extra-bind valid var a = function() { return this.b }.bind(c) ok 9267 no-extra-bind valid var a = (() => { return b }).bind(c, d) ok 9268 no-extra-bind valid (function() { (function() { this.b }.bind(this)) }.bind(c)) ok 9269 no-extra-bind valid var a = function() { return 1; }[bind](b) ok 9270 no-extra-bind valid var a = function() { return 1; }[`bi${n}d`](b) ok 9271 no-extra-bind valid var a = function() { return () => this; }.bind(b) ok 9272 no-extra-bind invalid var a = function() { return 1; }.bind(b) ok 9273 no-extra-bind invalid var a = function() { return 1; }['bind'](b) ok 9274 no-extra-bind invalid var a = function() { return 1; }[`bind`](b) ok 9275 no-extra-bind invalid var a = (() => { return 1; }).bind(b) ok 9276 no-extra-bind invalid var a = (() => { return this; }).bind(b) ok 9277 no-extra-bind invalid var a = function() { (function(){ this.c }) }.bind(b) ok 9278 no-extra-bind invalid var a = function() { function c(){ this.d } }.bind(b) ok 9279 no-extra-bind invalid var a = function() { return 1; }.bind(this) ok 9280 no-extra-bind invalid var a = function() { (function(){ (function(){ this.d }.bind(c)) }) }.bind(b) ok 9281 no-extra-bind invalid var a = function() {}.bind(b++) ok 9282 no-extra-bind invalid var a = function() {}.bind(b()) ok 9283 no-extra-bind invalid var a = function() {}.bind(b.c) ok 9284 no-extra-boolean-cast valid var foo = !!bar; ok 9285 no-extra-boolean-cast valid function foo() { return !!bar; } ok 9286 no-extra-boolean-cast valid var foo = bar() ? !!baz : !!bat ok 9287 no-extra-boolean-cast valid for(!!foo;;) {} ok 9288 no-extra-boolean-cast valid for(;; !!foo) {} ok 9289 no-extra-boolean-cast valid var foo = Boolean(bar); ok 9290 no-extra-boolean-cast valid function foo() { return Boolean(bar); } ok 9291 no-extra-boolean-cast valid var foo = bar() ? Boolean(baz) : Boolean(bat) ok 9292 no-extra-boolean-cast valid for(Boolean(foo);;) {} ok 9293 no-extra-boolean-cast valid for(;; Boolean(foo)) {} ok 9294 no-extra-boolean-cast valid if (new Boolean(foo)) {} ok 9295 no-extra-boolean-cast invalid if (!!foo) {} ok 9296 no-extra-boolean-cast invalid do {} while (!!foo) ok 9297 no-extra-boolean-cast invalid while (!!foo) {} ok 9298 no-extra-boolean-cast invalid !!foo ? bar : baz ok 9299 no-extra-boolean-cast invalid for (; !!foo;) {} ok 9300 no-extra-boolean-cast invalid !!!foo ok 9301 no-extra-boolean-cast invalid Boolean(!!foo) ok 9302 no-extra-boolean-cast invalid new Boolean(!!foo) ok 9303 no-extra-boolean-cast invalid if (Boolean(foo)) {} ok 9304 no-extra-boolean-cast invalid do {} while (Boolean(foo)) ok 9305 no-extra-boolean-cast invalid while (Boolean(foo)) {} ok 9306 no-extra-boolean-cast invalid Boolean(foo) ? bar : baz ok 9307 no-extra-boolean-cast invalid for (; Boolean(foo);) {} ok 9308 no-extra-boolean-cast invalid !Boolean(foo) ok 9309 no-extra-boolean-cast invalid !Boolean(foo && bar) ok 9310 no-extra-boolean-cast invalid !Boolean(foo + bar) ok 9311 no-extra-boolean-cast invalid !Boolean(+foo) ok 9312 no-extra-boolean-cast invalid !Boolean(foo()) ok 9313 no-extra-boolean-cast invalid !Boolean(foo = bar) ok 9314 no-extra-boolean-cast invalid !Boolean(...foo); ok 9315 no-extra-boolean-cast invalid !Boolean(foo, bar()); ok 9316 no-extra-boolean-cast invalid !Boolean((foo, bar())); ok 9317 no-extra-boolean-cast invalid !Boolean(); ok 9318 no-extra-boolean-cast invalid !(Boolean()); ok 9319 no-extra-boolean-cast invalid if (!Boolean()) { foo() } ok 9320 no-extra-boolean-cast invalid while (!Boolean()) { foo() } ok 9321 no-extra-boolean-cast invalid var foo = Boolean() ? bar() : baz() ok 9322 no-extra-boolean-cast invalid if (Boolean()) { foo() } ok 9323 no-extra-boolean-cast invalid while (Boolean()) { foo() } ok 9324 no-extra-boolean-cast invalid function *foo() { yield!!a ? b : c } ok 9325 no-extra-boolean-cast invalid function *foo() { yield!! a ? b : c } ok 9326 no-extra-boolean-cast invalid function *foo() { yield! !a ? b : c } ok 9327 no-extra-boolean-cast invalid function *foo() { yield !!a ? b : c } ok 9328 no-extra-boolean-cast invalid function *foo() { yield(!!a) ? b : c } ok 9329 no-extra-boolean-cast invalid function *foo() { yield/**/!!a ? b : c } ok 9330 no-extra-boolean-cast invalid x=!!a ? b : c ok 9331 no-extra-boolean-cast invalid void!Boolean() ok 9332 no-extra-boolean-cast invalid void! Boolean() ok 9333 no-extra-boolean-cast invalid typeof!Boolean() ok 9334 no-extra-boolean-cast invalid (!Boolean()) ok 9335 no-extra-boolean-cast invalid +!Boolean() ok 9336 no-extra-boolean-cast invalid void !Boolean() ok 9337 no-extra-boolean-cast invalid void(!Boolean()) ok 9338 no-extra-boolean-cast invalid void/**/!Boolean() ok 9339 no-extra-boolean-cast invalid !/**/!!foo ok 9340 no-extra-boolean-cast invalid !!/**/!foo ok 9341 no-extra-boolean-cast invalid !!!/**/foo ok 9342 no-extra-boolean-cast invalid !!!foo/**/ ok 9343 no-extra-boolean-cast invalid if(!/**/!foo); ok 9344 no-extra-boolean-cast invalid (!!/**/foo ? 1 : 2) ok 9345 no-extra-boolean-cast invalid !/**/Boolean(foo) ok 9346 no-extra-boolean-cast invalid !Boolean/**/(foo) ok 9347 no-extra-boolean-cast invalid !Boolean(/**/foo) ok 9348 no-extra-boolean-cast invalid !Boolean(foo/**/) ok 9349 no-extra-boolean-cast invalid !Boolean(foo)/**/ ok 9350 no-extra-boolean-cast invalid if(Boolean/**/(foo)); ok 9351 no-extra-boolean-cast invalid (Boolean(foo/**/) ? 1 : 2) ok 9352 no-extra-boolean-cast invalid /**/!Boolean() ok 9353 no-extra-boolean-cast invalid !/**/Boolean() ok 9354 no-extra-boolean-cast invalid !Boolean/**/() ok 9355 no-extra-boolean-cast invalid !Boolean(/**/) ok 9356 no-extra-boolean-cast invalid !Boolean()/**/ ok 9357 no-extra-boolean-cast invalid if(!/**/Boolean()); ok 9358 no-extra-boolean-cast invalid (!Boolean(/**/) ? 1 : 2) ok 9359 no-extra-boolean-cast invalid if(/**/Boolean()); ok 9360 no-extra-boolean-cast invalid if(Boolean/**/()); ok 9361 no-extra-boolean-cast invalid if(Boolean(/**/)); ok 9362 no-extra-boolean-cast invalid if(Boolean()/**/); ok 9363 no-extra-boolean-cast invalid (Boolean/**/() ? 1 : 2) ok 9364 no-extra-label valid A: break A; ok 9365 no-extra-label valid A: { if (a) break A; } ok 9366 no-extra-label valid A: { while (b) { break A; } } ok 9367 no-extra-label valid A: { switch (b) { case 0: break A; } } ok 9368 no-extra-label valid A: while (a) { while (b) { break; } break; } ok 9369 no-extra-label valid A: while (a) { while (b) { break A; } } ok 9370 no-extra-label valid A: while (a) { while (b) { continue A; } } ok 9371 no-extra-label valid A: while (a) { switch (b) { case 0: break A; } } ok 9372 no-extra-label valid A: while (a) { switch (b) { case 0: continue A; } } ok 9373 no-extra-label valid A: switch (a) { case 0: while (b) { break A; } } ok 9374 no-extra-label valid A: switch (a) { case 0: switch (b) { case 0: break A; } } ok 9375 no-extra-label valid A: for (;;) { while (b) { break A; } } ok 9376 no-extra-label valid A: do { switch (b) { case 0: break A; break; } } while (a); ok 9377 no-extra-label valid A: for (a in obj) { while (b) { break A; } } ok 9378 no-extra-label valid A: for (a of ary) { switch (b) { case 0: break A; } } ok 9379 no-extra-label invalid A: while (a) break A; ok 9380 no-extra-label invalid A: while (a) { B: { continue A; } } ok 9381 no-extra-label invalid X: while (x) { A: while (a) { B: { break A; break B; continue X; } } } ok 9382 no-extra-label invalid A: do { break A; } while (a); ok 9383 no-extra-label invalid A: for (;;) { break A; } ok 9384 no-extra-label invalid A: for (a in obj) { break A; } ok 9385 no-extra-label invalid A: for (a of ary) { break A; } ok 9386 no-extra-label invalid A: switch (a) { case 0: break A; } ok 9387 no-extra-label invalid X: while (x) { A: switch (a) { case 0: break A; } } ok 9388 no-extra-label invalid X: switch (a) { case 0: A: while (b) break A; } ok 9389 no-extra-label invalid A: while (true) {\u000a break A;\u000a while (true) {\u000a break A;\u000a }\u000a }\u000a ok 9390 no-extra-parens valid foo ok 9391 no-extra-parens valid a = b, c = d ok 9392 no-extra-parens valid a = b ? c : d ok 9393 no-extra-parens valid a = (b, c) ok 9394 no-extra-parens valid a || b ? c = d : e = f ok 9395 no-extra-parens valid (a = b) ? (c, d) : (e, f) ok 9396 no-extra-parens valid a && b || c && d ok 9397 no-extra-parens valid (a ? b : c) || (d ? e : f) ok 9398 no-extra-parens valid a | b && c | d ok 9399 no-extra-parens valid (a || b) && (c || d) ok 9400 no-extra-parens valid a ^ b | c ^ d ok 9401 no-extra-parens valid (a && b) | (c && d) ok 9402 no-extra-parens valid a & b ^ c & d ok 9403 no-extra-parens valid (a | b) ^ (c | d) ok 9404 no-extra-parens valid a == b & c != d ok 9405 no-extra-parens valid (a ^ b) & (c ^ d) ok 9406 no-extra-parens valid a < b === c in d ok 9407 no-extra-parens valid (a & b) !== (c & d) ok 9408 no-extra-parens valid a << b >= c >>> d ok 9409 no-extra-parens valid (a == b) instanceof (c != d) ok 9410 no-extra-parens valid a + b << c - d ok 9411 no-extra-parens valid (a <= b) >> (c > d) ok 9412 no-extra-parens valid a * b + c / d ok 9413 no-extra-parens valid (a << b) - (c >> d) ok 9414 no-extra-parens valid +a % !b ok 9415 no-extra-parens valid (a + b) * (c - d) ok 9416 no-extra-parens valid -void+delete~typeof!a ok 9417 no-extra-parens valid !(a * b); typeof (a / b); +(a % b); delete (a * b); ~(a / b); void (a % b); -(a * b) ok 9418 no-extra-parens valid a(b = c, (d, e)) ok 9419 no-extra-parens valid (++a)(b); (c++)(d); ok 9420 no-extra-parens valid new (A()) ok 9421 no-extra-parens valid new (foo.Baz().foo) ok 9422 no-extra-parens valid new (foo.baz.bar().foo.baz) ok 9423 no-extra-parens valid new ({}.baz.bar.foo().baz) ok 9424 no-extra-parens valid new (doSomething().baz.bar().foo) ok 9425 no-extra-parens valid new ([][0].baz.foo().bar.foo) ok 9426 no-extra-parens valid new (foo\u000a.baz\u000a.bar()\u000a.foo.baz) ok 9427 no-extra-parens valid new A()() ok 9428 no-extra-parens valid (new A)() ok 9429 no-extra-parens valid (new (Foo || Bar))() ok 9430 no-extra-parens valid (2 + 3) ** 4 ok 9431 no-extra-parens valid 2 ** (2 + 3) ok 9432 no-extra-parens valid new (import(source)) ok 9433 no-extra-parens valid import((s,t)) ok 9434 no-extra-parens valid a, b, c ok 9435 no-extra-parens valid a = b = c ok 9436 no-extra-parens valid a ? b ? c : d : e ok 9437 no-extra-parens valid a ? b : c ? d : e ok 9438 no-extra-parens valid a || b || c ok 9439 no-extra-parens valid a || (b || c) ok 9440 no-extra-parens valid a && b && c ok 9441 no-extra-parens valid a && (b && c) ok 9442 no-extra-parens valid a | b | c ok 9443 no-extra-parens valid a | (b | c) ok 9444 no-extra-parens valid a ^ b ^ c ok 9445 no-extra-parens valid a ^ (b ^ c) ok 9446 no-extra-parens valid a & b & c ok 9447 no-extra-parens valid a & (b & c) ok 9448 no-extra-parens valid a == b == c ok 9449 no-extra-parens valid a == (b == c) ok 9450 no-extra-parens valid a < b < c ok 9451 no-extra-parens valid a < (b < c) ok 9452 no-extra-parens valid a << b << c ok 9453 no-extra-parens valid a << (b << c) ok 9454 no-extra-parens valid a + b + c ok 9455 no-extra-parens valid a + (b + c) ok 9456 no-extra-parens valid a * b * c ok 9457 no-extra-parens valid a * (b * c) ok 9458 no-extra-parens valid !!a; typeof +b; void -c; ~delete d; ok 9459 no-extra-parens valid a(b) ok 9460 no-extra-parens valid a(b)(c) ok 9461 no-extra-parens valid a((b, c)) ok 9462 no-extra-parens valid new new A ok 9463 no-extra-parens valid 2 ** 3 ** 4 ok 9464 no-extra-parens valid (2 ** 3) ** 4 ok 9465 no-extra-parens valid if(a); ok 9466 no-extra-parens valid with(a){} ok 9467 no-extra-parens valid switch(a){ case 0: break; } ok 9468 no-extra-parens valid function a(){ return b; } ok 9469 no-extra-parens valid var a = () => { return b; } ok 9470 no-extra-parens valid throw a; ok 9471 no-extra-parens valid while(a); ok 9472 no-extra-parens valid do; while(a); ok 9473 no-extra-parens valid for(;;); ok 9474 no-extra-parens valid for(a in b); ok 9475 no-extra-parens valid for(a in b, c); ok 9476 no-extra-parens valid for(a of b); ok 9477 no-extra-parens valid for (a of (b, c)); ok 9478 no-extra-parens valid var a = (b, c); ok 9479 no-extra-parens valid [] ok 9480 no-extra-parens valid [a, b] ok 9481 no-extra-parens valid !{a} ok 9482 no-extra-parens valid !{a: 0, b: 1} ok 9483 no-extra-parens valid !{[a]:0} ok 9484 no-extra-parens valid !{[(a, b)]:0} ok 9485 no-extra-parens valid !{a, ...b} ok 9486 no-extra-parens valid const {a} = {} ok 9487 no-extra-parens valid const {a:b} = {} ok 9488 no-extra-parens valid const {a:b=1} = {} ok 9489 no-extra-parens valid const {[a]:b} = {} ok 9490 no-extra-parens valid const {[a]:b=1} = {} ok 9491 no-extra-parens valid const {[(a, b)]:c} = {} ok 9492 no-extra-parens valid const {a, ...b} = {} ok 9493 no-extra-parens valid class foo {} ok 9494 no-extra-parens valid class foo { constructor(){} a(){} get b(){} set b(bar){} get c(){} set d(baz){} static e(){} } ok 9495 no-extra-parens valid class foo { [a](){} get [b](){} set [b](bar){} get [c](){} set [d](baz){} static [e](){} } ok 9496 no-extra-parens valid class foo { [(a,b)](){} } ok 9497 no-extra-parens valid class foo { a(){} [b](){} c(){} [(d,e)](){} } ok 9498 no-extra-parens valid class foo { [(a,b)](){} c(){} [d](){} e(){} } ok 9499 no-extra-parens valid const foo = class { constructor(){} a(){} get b(){} set b(bar){} get c(){} set d(baz){} static e(){} } ok 9500 no-extra-parens valid ({}); ok 9501 no-extra-parens valid (function(){}); ok 9502 no-extra-parens valid (let[a] = b); ok 9503 no-extra-parens valid (function*(){}); ok 9504 no-extra-parens valid (class{}); ok 9505 no-extra-parens valid (0).a ok 9506 no-extra-parens valid (function(){ }()) ok 9507 no-extra-parens valid ({a: function(){}}.a()); ok 9508 no-extra-parens valid ({a:0}.a ? b : c) ok 9509 no-extra-parens valid var isA = (/^a$/).test('a'); ok 9510 no-extra-parens valid var regex = (/^a$/); ok 9511 no-extra-parens valid function a(){ return (/^a$/); } ok 9512 no-extra-parens valid function a(){ return (/^a$/).test('a'); } ok 9513 no-extra-parens valid var foo = (function() { return bar(); }()) ok 9514 no-extra-parens valid var o = { foo: (function() { return bar(); }()) }; ok 9515 no-extra-parens valid o.foo = (function(){ return bar(); }()); ok 9516 no-extra-parens valid (function(){ return bar(); }()), (function(){ return bar(); }()) ok 9517 no-extra-parens valid var foo = (function() { return bar(); })() ok 9518 no-extra-parens valid var o = { foo: (function() { return bar(); })() }; ok 9519 no-extra-parens valid o.foo = (function(){ return bar(); })(); ok 9520 no-extra-parens valid (function(){ return bar(); })(), (function(){ return bar(); })() ok 9521 no-extra-parens valid function foo() { return (function(){}()); } ok 9522 no-extra-parens valid var foo = (function*() { if ((yield foo()) + 1) { return; } }()) ok 9523 no-extra-parens valid (() => 0)() ok 9524 no-extra-parens valid (_ => 0)() ok 9525 no-extra-parens valid _ => 0, _ => 1 ok 9526 no-extra-parens valid a = () => b = 0 ok 9527 no-extra-parens valid 0 ? _ => 0 : _ => 0 ok 9528 no-extra-parens valid (_ => 0) || (_ => 0) ok 9529 no-extra-parens valid x => ({foo: 1}) ok 9530 no-extra-parens valid 1 + 2 ** 3 ok 9531 no-extra-parens valid 1 - 2 ** 3 ok 9532 no-extra-parens valid 2 ** -3 ok 9533 no-extra-parens valid (-2) ** 3 ok 9534 no-extra-parens valid (+2) ** 3 ok 9535 no-extra-parens valid + (2 ** 3) ok 9536 no-extra-parens valid a => ({b: c}[d]) ok 9537 no-extra-parens valid a => ({b: c}.d()) ok 9538 no-extra-parens valid a => ({b: c}.d.e) ok 9539 no-extra-parens valid (0) ok 9540 no-extra-parens valid a + (b * c) ok 9541 no-extra-parens valid (a)(b) ok 9542 no-extra-parens valid a, (b = c) ok 9543 no-extra-parens valid for(a in (0)); ok 9544 no-extra-parens valid var a = (b = c) ok 9545 no-extra-parens valid _ => (a = 0) ok 9546 no-extra-parens valid while ((foo = bar())) {} ok 9547 no-extra-parens valid if ((foo = bar())) {} ok 9548 no-extra-parens valid do; while ((foo = bar())) ok 9549 no-extra-parens valid for (;(a = b);); ok 9550 no-extra-parens valid a + (b * c) ok 9551 no-extra-parens valid (a * b) + c ok 9552 no-extra-parens valid (a * b) / c ok 9553 no-extra-parens valid a || (b && c) ok 9554 no-extra-parens valid function a(b) { return b || c; } ok 9555 no-extra-parens valid function a(b) { return; } ok 9556 no-extra-parens valid function a(b) { return (b = 1); } ok 9557 no-extra-parens valid function a(b) { return (b = c) || (b = d); } ok 9558 no-extra-parens valid function a(b) { return c ? (d = b) : (e = b); } ok 9559 no-extra-parens valid b => b || c; ok 9560 no-extra-parens valid b => (b = 1); ok 9561 no-extra-parens valid b => (b = c) || (b = d); ok 9562 no-extra-parens valid b => c ? (d = b) : (e = b); ok 9563 no-extra-parens valid b => { return b || c }; ok 9564 no-extra-parens valid b => { return (b = 1) }; ok 9565 no-extra-parens valid b => { return (b = c) || (b = d) }; ok 9566 no-extra-parens valid b => { return c ? (d = b) : (e = b) }; ok 9567 no-extra-parens valid (function(){}).foo(), 1, 2; ok 9568 no-extra-parens valid (function(){}).foo++; ok 9569 no-extra-parens valid (function(){}).foo() || bar; ok 9570 no-extra-parens valid (function(){}).foo() + 1; ok 9571 no-extra-parens valid (function(){}).foo() ? bar : baz; ok 9572 no-extra-parens valid (function(){}).foo.bar(); ok 9573 no-extra-parens valid (function(){}.foo()); ok 9574 no-extra-parens valid (function(){}.foo.bar); ok 9575 no-extra-parens valid (class{}).foo(), 1, 2; ok 9576 no-extra-parens valid (class{}).foo++; ok 9577 no-extra-parens valid (class{}).foo() || bar; ok 9578 no-extra-parens valid (class{}).foo() + 1; ok 9579 no-extra-parens valid (class{}).foo() ? bar : baz; ok 9580 no-extra-parens valid (class{}).foo.bar(); ok 9581 no-extra-parens valid (class{}.foo()); ok 9582 no-extra-parens valid (class{}.foo.bar); ok 9583 no-extra-parens valid function *a() { yield b; } ok 9584 no-extra-parens valid function *a() { yield yield; } ok 9585 no-extra-parens valid function *a() { yield b, c; } ok 9586 no-extra-parens valid function *a() { yield (b, c); } ok 9587 no-extra-parens valid function *a() { yield b + c; } ok 9588 no-extra-parens valid function *a() { (yield b) + c; } ok 9589 no-extra-parens valid function a() {\u000a return (\u000a b\u000a );\u000a} ok 9590 no-extra-parens valid function a() {\u000a return (\u000a \u000a );\u000a} ok 9591 no-extra-parens valid function a() {\u000a return (\u000a <>\u000a );\u000a} ok 9592 no-extra-parens valid throw (\u000a a\u000a); ok 9593 no-extra-parens valid function *a() {\u000a yield (\u000a b\u000a );\u000a} ok 9594 no-extra-parens valid async function a() { await (a + b) } ok 9595 no-extra-parens valid async function a() { await (a + await b) } ok 9596 no-extra-parens valid async function a() { (await a)() } ok 9597 no-extra-parens valid async function a() { new (await a) } ok 9598 no-extra-parens valid (foo instanceof bar) instanceof baz ok 9599 no-extra-parens valid (foo in bar) in baz ok 9600 no-extra-parens valid (foo + bar) + baz ok 9601 no-extra-parens valid (foo && bar) && baz ok 9602 no-extra-parens valid foo instanceof (bar instanceof baz) ok 9603 no-extra-parens valid foo in (bar in baz) ok 9604 no-extra-parens valid foo + (bar + baz) ok 9605 no-extra-parens valid foo && (bar && baz) ok 9606 no-extra-parens valid (async function() {}); ok 9607 no-extra-parens valid (async function () { }()); ok 9608 no-extra-parens valid const Component = (
) ok 9609 no-extra-parens valid const Component = (<>\u000a

\u000a); ok 9610 no-extra-parens valid const Component = (

\u000a

\u000a

); ok 9611 no-extra-parens valid const Component = (\u000a
\u000a); ok 9612 no-extra-parens valid const Component =\u000a (
) ok 9613 no-extra-parens valid const Component = (
); ok 9614 no-extra-parens valid const Component = (\u000a
\u000a); ok 9615 no-extra-parens valid const Component =\u000a(
) ok 9616 no-extra-parens valid const Component = (\u000a
\u000a

\u000a

\u000a); ok 9617 no-extra-parens valid const Component = (
\u000a

\u000a

); ok 9618 no-extra-parens valid const Component =\u000a(
\u000a

\u000a

); ok 9619 no-extra-parens valid const Component = () ok 9620 no-extra-parens valid var a = b => 1 ? 2 : 3 ok 9621 no-extra-parens valid var a = (b) => (1 ? 2 : 3) ok 9622 no-extra-parens valid (a, b) ok 9623 no-extra-parens valid (foo(), bar()); ok 9624 no-extra-parens valid if((a, b)){} ok 9625 no-extra-parens valid while ((val = foo(), val < 10)); ok 9626 no-extra-parens valid let a = [ ...b ] ok 9627 no-extra-parens valid let a = { ...b } ok 9628 no-extra-parens valid let a = { ...b } ok 9629 no-extra-parens valid let a = [ ...(b, c) ] ok 9630 no-extra-parens valid let a = { ...(b, c) } ok 9631 no-extra-parens valid let a = { ...(b, c) } ok 9632 no-extra-parens valid var [x = (1, foo)] = bar ok 9633 no-extra-parens valid class A extends B {} ok 9634 no-extra-parens valid const A = class extends B {} ok 9635 no-extra-parens valid class A extends (B=C) {} ok 9636 no-extra-parens valid const A = class extends (B=C) {} ok 9637 no-extra-parens valid () => ({ foo: 1 }) ok 9638 no-extra-parens valid () => ({ foo: 1 }).foo ok 9639 no-extra-parens valid () => ({ foo: 1 }.foo().bar).baz.qux() ok 9640 no-extra-parens valid () => ({ foo: 1 }.foo().bar + baz) ok 9641 no-extra-parens valid export default (function(){}).foo ok 9642 no-extra-parens valid export default (class{}).foo ok 9643 no-extra-parens valid ({}).hasOwnProperty.call(foo, bar) ok 9644 no-extra-parens valid ({}) ? foo() : bar() ok 9645 no-extra-parens valid ({}) + foo ok 9646 no-extra-parens valid (function(){}) + foo ok 9647 no-extra-parens valid (let)\u000afoo ok 9648 no-extra-parens valid (let[foo]) = 1 ok 9649 no-extra-parens valid ((function(){}).foo.bar)(); ok 9650 no-extra-parens valid ((function(){}).foo)(); ok 9651 no-extra-parens valid (let)[foo] ok 9652 no-extra-parens valid for ((let) in foo); ok 9653 no-extra-parens valid for ((let[foo]) in bar); ok 9654 no-extra-parens valid for ((let)[foo] in bar); ok 9655 no-extra-parens valid for ((let[foo].bar) in baz); ok 9656 no-extra-parens valid for (let a = (b in c); ;); ok 9657 no-extra-parens valid for (let a = (b && c in d); ;); ok 9658 no-extra-parens valid for (let a = (b in c && d); ;); ok 9659 no-extra-parens valid for (let a = (b => b in c); ;); ok 9660 no-extra-parens valid for (let a = b => (b in c); ;); ok 9661 no-extra-parens valid for (let a = (b in c in d); ;); ok 9662 no-extra-parens valid for (let a = (b in c), d = (e in f); ;); ok 9663 no-extra-parens valid for (let a = (b => c => b in c); ;); ok 9664 no-extra-parens valid for (let a = (b && c && d in e); ;); ok 9665 no-extra-parens valid for (let a = b && (c in d); ;); ok 9666 no-extra-parens valid for (let a = (b in c) && (d in e); ;); ok 9667 no-extra-parens valid for ((a in b); ;); ok 9668 no-extra-parens valid for (a = (b in c); ;); ok 9669 no-extra-parens valid for ((a in b && c in d && e in f); ;); ok 9670 no-extra-parens valid for (let a = [] && (b in c); ;); ok 9671 no-extra-parens valid for (let a = (b in [c]); ;); ok 9672 no-extra-parens valid for (let a = b => (c in d); ;); ok 9673 no-extra-parens valid for (let a = (b in c) ? d : e; ;); ok 9674 no-extra-parens valid for (let a = (b in c ? d : e); ;); ok 9675 no-extra-parens valid for (let a = b ? c : (d in e); ;); ok 9676 no-extra-parens valid for (let a = (b in c), d = () => { for ((e in f);;); for ((g in h);;); }; ;); for((i in j); ;); ok 9677 no-extra-parens valid for (let a = b; a; a); a; a; ok 9678 no-extra-parens valid for (a; a; a); a; a; ok 9679 no-extra-parens valid for (; a; a); a; a; ok 9680 no-extra-parens valid for (let a = (b && c) === d; ;); ok 9681 no-extra-parens invalid (0) ok 9682 no-extra-parens invalid ( 0 ) ok 9683 no-extra-parens invalid if((0)); ok 9684 no-extra-parens invalid if(( 0 )); ok 9685 no-extra-parens invalid with((0)){} ok 9686 no-extra-parens invalid switch((0)){} ok 9687 no-extra-parens invalid switch(0){ case (1): break; } ok 9688 no-extra-parens invalid for((0);;); ok 9689 no-extra-parens invalid for(;(0);); ok 9690 no-extra-parens invalid for(;;(0)); ok 9691 no-extra-parens invalid throw(0) ok 9692 no-extra-parens invalid while((0)); ok 9693 no-extra-parens invalid do; while((0)) ok 9694 no-extra-parens invalid for(a in (0)); ok 9695 no-extra-parens invalid for(a of (0)); ok 9696 no-extra-parens invalid const foo = {[(a)]:1} ok 9697 no-extra-parens invalid const foo = {[(a=b)]:1} ok 9698 no-extra-parens invalid const foo = {*[(Symbol.iterator)]() {}} ok 9699 no-extra-parens invalid const foo = { get [(a)]() {}} ok 9700 no-extra-parens invalid const foo = {[(a+b)]:c, d} ok 9701 no-extra-parens invalid const foo = {a, [(b+c)]:d, e} ok 9702 no-extra-parens invalid const foo = {[(a+b)]:c, d:e} ok 9703 no-extra-parens invalid const foo = {a:b, [(c+d)]:e, f:g} ok 9704 no-extra-parens invalid const foo = {[(a+b)]:c, [d]:e} ok 9705 no-extra-parens invalid const foo = {[a]:b, [(c+d)]:e, [f]:g} ok 9706 no-extra-parens invalid const foo = {[(a+b)]:c, [(d,e)]:f} ok 9707 no-extra-parens invalid const foo = {[(a,b)]:c, [(d+e)]:f, [(g,h)]:e} ok 9708 no-extra-parens invalid const foo = {a, b:c, [(d+e)]:f, [(g,h)]:i, [j]:k} ok 9709 no-extra-parens invalid const foo = {[a+(b*c)]:d} ok 9710 no-extra-parens invalid const foo = {[(a, (b+c))]:d} ok 9711 no-extra-parens invalid const {[(a)]:b} = {} ok 9712 no-extra-parens invalid const {[(a=b)]:c=1} = {} ok 9713 no-extra-parens invalid const {[(a+b)]:c, d} = {} ok 9714 no-extra-parens invalid const {a, [(b+c)]:d, e} = {} ok 9715 no-extra-parens invalid const {[(a+b)]:c, d:e} = {} ok 9716 no-extra-parens invalid const {a:b, [(c+d)]:e, f:g} = {} ok 9717 no-extra-parens invalid const {[(a+b)]:c, [d]:e} = {} ok 9718 no-extra-parens invalid const {[a]:b, [(c+d)]:e, [f]:g} = {} ok 9719 no-extra-parens invalid const {[(a+b)]:c, [(d,e)]:f} = {} ok 9720 no-extra-parens invalid const {[(a,b)]:c, [(d+e)]:f, [(g,h)]:e} = {} ok 9721 no-extra-parens invalid const {a, b:c, [(d+e)]:f, [(g,h)]:i, [j]:k} = {} ok 9722 no-extra-parens invalid const {[a+(b*c)]:d} = {} ok 9723 no-extra-parens invalid const {[(a, (b+c))]:d} = {} ok 9724 no-extra-parens invalid class foo { [(a)](){} } ok 9725 no-extra-parens invalid class foo {*[(Symbol.iterator)]() {}} ok 9726 no-extra-parens invalid class foo { get [(a)](){} } ok 9727 no-extra-parens invalid class foo { set [(a)](bar){} } ok 9728 no-extra-parens invalid class foo { static [(a)](bar){} } ok 9729 no-extra-parens invalid class foo { [(a=b)](){} } ok 9730 no-extra-parens invalid class foo { constructor (){} [(a+b)](){} } ok 9731 no-extra-parens invalid class foo { [(a+b)](){} constructor (){} } ok 9732 no-extra-parens invalid class foo { [(a+b)](){} c(){} } ok 9733 no-extra-parens invalid class foo { a(){} [(b+c)](){} d(){} } ok 9734 no-extra-parens invalid class foo { [(a+b)](){} [c](){} } ok 9735 no-extra-parens invalid class foo { [a](){} [(b+c)](){} [d](){} } ok 9736 no-extra-parens invalid class foo { [(a+b)](){} [(c,d)](){} } ok 9737 no-extra-parens invalid class foo { [(a,b)](){} [(c+d)](){} } ok 9738 no-extra-parens invalid class foo { [a+(b*c)](){} } ok 9739 no-extra-parens invalid const foo = class { [(a)](){} } ok 9740 no-extra-parens invalid var foo = (function*() { if ((yield foo())) { return; } }()) ok 9741 no-extra-parens invalid f((0)) ok 9742 no-extra-parens invalid f(0, (1)) ok 9743 no-extra-parens invalid !(0) ok 9744 no-extra-parens invalid a[(1)] ok 9745 no-extra-parens invalid (a)(b) ok 9746 no-extra-parens invalid (async) ok 9747 no-extra-parens invalid (a, b) ok 9748 no-extra-parens invalid var a = (b = c); ok 9749 no-extra-parens invalid function f(){ return (a); } ok 9750 no-extra-parens invalid [a, (b = c)] ok 9751 no-extra-parens invalid !{a: (b = c)} ok 9752 no-extra-parens invalid typeof(0) ok 9753 no-extra-parens invalid typeof (0) ok 9754 no-extra-parens invalid typeof([]) ok 9755 no-extra-parens invalid typeof ([]) ok 9756 no-extra-parens invalid typeof( 0) ok 9757 no-extra-parens invalid typeof(typeof 5) ok 9758 no-extra-parens invalid typeof (typeof 5) ok 9759 no-extra-parens invalid +(+foo) ok 9760 no-extra-parens invalid -(-foo) ok 9761 no-extra-parens invalid +(-foo) ok 9762 no-extra-parens invalid -(+foo) ok 9763 no-extra-parens invalid ++(foo) ok 9764 no-extra-parens invalid --(foo) ok 9765 no-extra-parens invalid (a || b) ? c : d ok 9766 no-extra-parens invalid a ? (b = c) : d ok 9767 no-extra-parens invalid a ? b : (c = d) ok 9768 no-extra-parens invalid f((a = b)) ok 9769 no-extra-parens invalid a, (b = c) ok 9770 no-extra-parens invalid a = (b * c) ok 9771 no-extra-parens invalid a + (b * c) ok 9772 no-extra-parens invalid (a * b) + c ok 9773 no-extra-parens invalid (a * b) / c ok 9774 no-extra-parens invalid (2) ** 3 ** 4 ok 9775 no-extra-parens invalid 2 ** (3 ** 4) ok 9776 no-extra-parens invalid (2 ** 3) ok 9777 no-extra-parens invalid (2 ** 3) + 1 ok 9778 no-extra-parens invalid 1 - (2 ** 3) ok 9779 no-extra-parens invalid a = (b * c) ok 9780 no-extra-parens invalid (b * c) ok 9781 no-extra-parens invalid a = (b = c) ok 9782 no-extra-parens invalid (a).b ok 9783 no-extra-parens invalid (0)[a] ok 9784 no-extra-parens invalid (0.0).a ok 9785 no-extra-parens invalid (0xBEEF).a ok 9786 no-extra-parens invalid (1e6).a ok 9787 no-extra-parens invalid (0123).a ok 9788 no-extra-parens invalid a[(function() {})] ok 9789 no-extra-parens invalid new (function(){}) ok 9790 no-extra-parens invalid new (\u000afunction(){}\u000a) ok 9791 no-extra-parens invalid ((function foo() {return 1;}))() ok 9792 no-extra-parens invalid ((function(){ return bar(); })()) ok 9793 no-extra-parens invalid (foo()).bar ok 9794 no-extra-parens invalid (foo.bar()).baz ok 9795 no-extra-parens invalid (foo\u000a.bar())\u000a.baz ok 9796 no-extra-parens invalid new (A) ok 9797 no-extra-parens invalid (new A())() ok 9798 no-extra-parens invalid (new A(1))() ok 9799 no-extra-parens invalid ((new A))() ok 9800 no-extra-parens invalid new (foo\u000a.baz\u000a.bar\u000a.foo.baz) ok 9801 no-extra-parens invalid new (foo.baz.bar.baz) ok 9802 no-extra-parens invalid 0, (_ => 0) ok 9803 no-extra-parens invalid (_ => 0), 0 ok 9804 no-extra-parens invalid a = (_ => 0) ok 9805 no-extra-parens invalid _ => (a = 0) ok 9806 no-extra-parens invalid x => (({})) ok 9807 no-extra-parens invalid new (function(){}) ok 9808 no-extra-parens invalid new (\u000afunction(){}\u000a) ok 9809 no-extra-parens invalid ((function foo() {return 1;}))() ok 9810 no-extra-parens invalid a[(function() {})] ok 9811 no-extra-parens invalid 0, (_ => 0) ok 9812 no-extra-parens invalid (_ => 0), 0 ok 9813 no-extra-parens invalid a = (_ => 0) ok 9814 no-extra-parens invalid while ((foo = bar())) {} ok 9815 no-extra-parens invalid while ((foo = bar())) {} ok 9816 no-extra-parens invalid if ((foo = bar())) {} ok 9817 no-extra-parens invalid do; while ((foo = bar())) ok 9818 no-extra-parens invalid for (;(a = b);); ok 9819 no-extra-parens invalid ((function(){})).foo(); ok 9820 no-extra-parens invalid ((function(){}).foo()); ok 9821 no-extra-parens invalid ((function(){}).foo); ok 9822 no-extra-parens invalid 0, (function(){}).foo(); ok 9823 no-extra-parens invalid void (function(){}).foo(); ok 9824 no-extra-parens invalid ++(function(){}).foo; ok 9825 no-extra-parens invalid bar || (function(){}).foo(); ok 9826 no-extra-parens invalid 1 + (function(){}).foo(); ok 9827 no-extra-parens invalid bar ? (function(){}).foo() : baz; ok 9828 no-extra-parens invalid bar ? baz : (function(){}).foo(); ok 9829 no-extra-parens invalid bar((function(){}).foo(), 0); ok 9830 no-extra-parens invalid bar[(function(){}).foo()]; ok 9831 no-extra-parens invalid var bar = (function(){}).foo(); ok 9832 no-extra-parens invalid ((class{})).foo(); ok 9833 no-extra-parens invalid ((class{}).foo()); ok 9834 no-extra-parens invalid ((class{}).foo); ok 9835 no-extra-parens invalid 0, (class{}).foo(); ok 9836 no-extra-parens invalid void (class{}).foo(); ok 9837 no-extra-parens invalid ++(class{}).foo; ok 9838 no-extra-parens invalid bar || (class{}).foo(); ok 9839 no-extra-parens invalid 1 + (class{}).foo(); ok 9840 no-extra-parens invalid bar ? (class{}).foo() : baz; ok 9841 no-extra-parens invalid bar ? baz : (class{}).foo(); ok 9842 no-extra-parens invalid bar((class{}).foo(), 0); ok 9843 no-extra-parens invalid bar[(class{}).foo()]; ok 9844 no-extra-parens invalid var bar = (class{}).foo(); ok 9845 no-extra-parens invalid function *a() { yield (b); } ok 9846 no-extra-parens invalid function *a() { (yield b), c; } ok 9847 no-extra-parens invalid function *a() { yield ((b, c)); } ok 9848 no-extra-parens invalid function *a() { yield (b + c); } ok 9849 no-extra-parens invalid function a() {\u000a return (b);\u000a} ok 9850 no-extra-parens invalid function a() {\u000a return\u000a (b);\u000a} ok 9851 no-extra-parens invalid function a() {\u000a return ((\u000a b\u000a ));\u000a} ok 9852 no-extra-parens invalid function a() {\u000a return ();\u000a} ok 9853 no-extra-parens invalid function a() {\u000a return\u000a ();\u000a} ok 9854 no-extra-parens invalid function a() {\u000a return ((\u000a \u000a ));\u000a} ok 9855 no-extra-parens invalid function a() {\u000a return ((\u000a <>\u000a ));\u000a} ok 9856 no-extra-parens invalid throw (a); ok 9857 no-extra-parens invalid throw ((\u000a a\u000a)); ok 9858 no-extra-parens invalid function *a() {\u000a yield (b);\u000a} ok 9859 no-extra-parens invalid function *a() {\u000a yield\u000a (b);\u000a} ok 9860 no-extra-parens invalid function *a() {\u000a yield ((\u000a b\u000a ));\u000a} ok 9861 no-extra-parens invalid function a(b) { return (b || c); } ok 9862 no-extra-parens invalid function a(b) { return ((b = c) || (d = e)); } ok 9863 no-extra-parens invalid function a(b) { return (b = 1); } ok 9864 no-extra-parens invalid function a(b) { return c ? (d = b) : (e = b); } ok 9865 no-extra-parens invalid b => (b || c); ok 9866 no-extra-parens invalid b => ((b = c) || (d = e)); ok 9867 no-extra-parens invalid b => (b = 1); ok 9868 no-extra-parens invalid b => c ? (d = b) : (e = b); ok 9869 no-extra-parens invalid b => { return (b || c); } ok 9870 no-extra-parens invalid b => { return ((b = c) || (d = e)) }; ok 9871 no-extra-parens invalid b => { return (b = 1) }; ok 9872 no-extra-parens invalid b => { return c ? (d = b) : (e = b); } ok 9873 no-extra-parens invalid async function a() { (await a) + (await b); } ok 9874 no-extra-parens invalid async function a() { await (a); } ok 9875 no-extra-parens invalid async function a() { await (a()); } ok 9876 no-extra-parens invalid async function a() { await (+a); } ok 9877 no-extra-parens invalid async function a() { +(await a); } ok 9878 no-extra-parens invalid (foo) instanceof bar ok 9879 no-extra-parens invalid (foo) in bar ok 9880 no-extra-parens invalid (foo) + bar ok 9881 no-extra-parens invalid (foo) && bar ok 9882 no-extra-parens invalid foo instanceof (bar) ok 9883 no-extra-parens invalid foo in (bar) ok 9884 no-extra-parens invalid foo + (bar) ok 9885 no-extra-parens invalid foo && (bar) ok 9886 no-extra-parens invalid const Component = (
); ok 9887 no-extra-parens invalid const Component = (\u000a
\u000a); ok 9888 no-extra-parens invalid const Component = (\u000a <>\u000a); ok 9889 no-extra-parens invalid const Component = (\u000a
\u000a

\u000a

\u000a); ok 9890 no-extra-parens invalid const Component = (
\u000a

\u000a

); ok 9891 no-extra-parens invalid const Component = () ok 9892 no-extra-parens invalid const Component = (
); ok 9893 no-extra-parens invalid const Component = (
\u000a

\u000a

) ok 9894 no-extra-parens invalid var a = (b) => (1 ? 2 : 3) ok 9895 no-extra-parens invalid var a = (b) => ((1 ? 2 : 3)) ok 9896 no-extra-parens invalid (a, b) ok 9897 no-extra-parens invalid (a, b) ok 9898 no-extra-parens invalid (a, b) ok 9899 no-extra-parens invalid (foo(), bar()); ok 9900 no-extra-parens invalid if((a, b)){} ok 9901 no-extra-parens invalid while ((val = foo(), val < 10)); ok 9902 no-extra-parens invalid let a = [...(b)] ok 9903 no-extra-parens invalid let a = {...(b)} ok 9904 no-extra-parens invalid let a = {...(b)} ok 9905 no-extra-parens invalid let a = [...((b, c))] ok 9906 no-extra-parens invalid let a = {...((b, c))} ok 9907 no-extra-parens invalid let a = {...((b, c))} ok 9908 no-extra-parens invalid class A extends (B) {} ok 9909 no-extra-parens invalid const A = class extends (B) {} ok 9910 no-extra-parens invalid class A extends ((B=C)) {} ok 9911 no-extra-parens invalid const A = class extends ((B=C)) {} ok 9912 no-extra-parens invalid for (foo of(bar)); ok 9913 no-extra-parens invalid for ((foo) of bar); ok 9914 no-extra-parens invalid for ((foo)in bar); ok 9915 no-extra-parens invalid for ((foo['bar'])of baz); ok 9916 no-extra-parens invalid () => (({ foo: 1 }).foo) ok 9917 no-extra-parens invalid (let).foo ok 9918 no-extra-parens invalid for ((let.foo) in bar); ok 9919 no-extra-parens invalid for ((let).foo.bar in baz); ok 9920 no-extra-parens invalid for (a in (b, c)); ok 9921 no-extra-parens invalid (let) ok 9922 no-extra-parens invalid ((let)) ok 9923 no-extra-parens invalid let s = `${(v)}` ok 9924 no-extra-parens invalid let s = `${(a, b)}` ok 9925 no-extra-parens invalid function foo(a = (b)) {} ok 9926 no-extra-parens invalid const bar = (a = (b)) => a ok 9927 no-extra-parens invalid const [a = (b)] = [] ok 9928 no-extra-parens invalid const {a = (b)} = {} ok 9929 no-extra-parens invalid for ((a = (b in c)); ;); ok 9930 no-extra-parens invalid for (let a = ((b in c) && (d in e)); ;); ok 9931 no-extra-parens invalid for (let a = ((b in c) in d); ;); ok 9932 no-extra-parens invalid for (let a = (b && (c in d)), e = (f in g); ;); ok 9933 no-extra-parens invalid for (let a = (b + c), d = (e in f); ;); ok 9934 no-extra-parens invalid for (let a = [(b in c)]; ;); ok 9935 no-extra-parens invalid for (let a = [b, (c in d)]; ;); ok 9936 no-extra-parens invalid for (let a = ([b in c]); ;); ok 9937 no-extra-parens invalid for (let a = ([b, c in d]); ;); ok 9938 no-extra-parens invalid for ((a = [b in c]); ;); ok 9939 no-extra-parens invalid for (let a = [b && (c in d)]; ;); ok 9940 no-extra-parens invalid for (let a = [(b && c in d)]; ;); ok 9941 no-extra-parens invalid for (let a = ([b && c in d]); ;); ok 9942 no-extra-parens invalid for ((a = [b && c in d]); ;); ok 9943 no-extra-parens invalid for ([(a in b)]; ;); ok 9944 no-extra-parens invalid for (([a in b]); ;); ok 9945 no-extra-parens invalid for (let a = [(b in c)], d = (e in f); ;); ok 9946 no-extra-parens invalid for (let [a = (b in c)] = []; ;); ok 9947 no-extra-parens invalid for (let [a = b && (c in d)] = []; ;); ok 9948 no-extra-parens invalid for (let a = () => { (b in c) }; ;); ok 9949 no-extra-parens invalid for (let a = () => { a && (b in c) }; ;); ok 9950 no-extra-parens invalid for (let a = function () { (b in c) }; ;); ok 9951 no-extra-parens invalid for (let a = { a: (b in c) }; ;); ok 9952 no-extra-parens invalid for (let a = { a: b && (c in d) }; ;); ok 9953 no-extra-parens invalid for (let { a = (b in c) } = {}; ;); ok 9954 no-extra-parens invalid for (let { a = b && (c in d) } = {}; ;); ok 9955 no-extra-parens invalid for (let { a: { b = c && (d in e) } } = {}; ;); ok 9956 no-extra-parens invalid for (let a = `${(a in b)}`; ;); ok 9957 no-extra-parens invalid for (let a = `${a && (b in c)}`; ;); ok 9958 no-extra-parens invalid for (let a = (b = (c in d)) => {}; ;); ok 9959 no-extra-parens invalid for (let a = (b = c && (d in e)) => {}; ;); ok 9960 no-extra-parens invalid for (let a = (b, c = d && (e in f)) => {}; ;); ok 9961 no-extra-parens invalid for (let a = function (b = c && (d in e)) {}; ;); ok 9962 no-extra-parens invalid for (let a = function (b, c = d && (e in f)) {}; ;); ok 9963 no-extra-parens invalid for (let a = b((c in d)); ;); ok 9964 no-extra-parens invalid for (let a = b(c, (d in e)); ;); ok 9965 no-extra-parens invalid for (let a = b(c && (d in e)); ;); ok 9966 no-extra-parens invalid for (let a = b(c, d && (e in f)); ;); ok 9967 no-extra-parens invalid for (let a = new b((c in d)); ;); ok 9968 no-extra-parens invalid for (let a = new b(c, (d in e)); ;); ok 9969 no-extra-parens invalid for (let a = new b(c && (d in e)); ;); ok 9970 no-extra-parens invalid for (let a = new b(c, d && (e in f)); ;); ok 9971 no-extra-parens invalid for (let a = b[(c in d)]; ;); ok 9972 no-extra-parens invalid for (let a = b[c && (d in e)]; ;); ok 9973 no-extra-parens invalid for (let a = b ? (c in d) : e; ;); ok 9974 no-extra-parens invalid for (let a = b ? c && (d in e) : f; ;); ok 9975 no-extra-parens invalid for (a ? b && (c in d) : e; ;); ok 9976 no-extra-parens invalid for (let a = ((b in c)); ;); ok 9977 no-extra-parens invalid for (((a in b)); ;); ok 9978 no-extra-parens invalid for (((a && b in c && d)); ;); ok 9979 no-extra-parens invalid for (let a = (!(b in c)); ;); ok 9980 no-extra-parens invalid for (let a = (!(b && c in d)); ;); ok 9981 no-extra-parens invalid for (let a = !((b in c) && (d in e)); ;); ok 9982 no-extra-parens invalid for (let a = (x && (b in c)), d = () => { for ((e in f); ;); for ((g in h); ;); }; ;); for((i in j); ;); ok 9983 no-extra-parens invalid for (let a = (b in c), d = () => { for ((x && (e in f)); ;); for ((g in h); ;); }; ;); for((i in j); ;); ok 9984 no-extra-parens invalid for (let a = (b in c), d = () => { for ((e in f); ;); for ((x && (g in h)); ;); }; ;); for((i in j); ;); ok 9985 no-extra-parens invalid for (let a = (b in c), d = () => { for ((e in f); ;); for ((g in h); ;); }; ;); for((x && (i in j)); ;); ok 9986 no-extra-parens invalid for (let a = (x && (b in c)), d = () => { for ((e in f); ;); for ((y && (g in h)); ;); }; ;); for((i in j); ;); ok 9987 no-extra-parens invalid for (let a = (x && (b in c)), d = () => { for ((y && (e in f)); ;); for ((z && (g in h)); ;); }; ;); for((w && (i in j)); ;); ok 9988 no-extra-parens invalid for (let a = (b); a > (b); a = (b)) a = (b); a = (b); ok 9989 no-extra-parens invalid for ((a = b); (a > b); (a = b)) (a = b); (a = b); ok 9990 no-extra-parens invalid for (let a = b; a > (b); a = (b)) a = (b); a = (b); ok 9991 no-extra-parens invalid for (let a = b; (a > b); (a = b)) (a = b); (a = b); ok 9992 no-extra-parens invalid for (; a > (b); a = (b)) a = (b); a = (b); ok 9993 no-extra-parens invalid for (; (a > b); (a = b)) (a = b); (a = b); ok 9994 no-extra-parens invalid for (let a = (b); a = (b in c); a = (b in c)) a = (b in c); a = (b in c); ok 9995 no-extra-parens invalid for (let a = (b); (a in b); (a in b)) (a in b); (a in b); ok 9996 no-extra-parens invalid for (let a = b; a = (b in c); a = (b in c)) a = (b in c); a = (b in c); ok 9997 no-extra-parens invalid for (let a = b; (a in b); (a in b)) (a in b); (a in b); ok 9998 no-extra-parens invalid for (; a = (b in c); a = (b in c)) a = (b in c); a = (b in c); ok 9999 no-extra-parens invalid for (; (a in b); (a in b)) (a in b); (a in b); ok 10000 no-extra-parens invalid for (let a = (b + c), d = () => { for ((e + f); ;); for ((g + h); ;); }; ;); for((i + j); ;); ok 10001 no-extra-parens invalid import((source)) ok 10002 no-extra-parens invalid import((source = 'foo.js')) ok 10003 no-extra-parens invalid import(((s,t))) ok 10004 no-extra-semi valid var x = 5; ok 10005 no-extra-semi valid function foo(){} ok 10006 no-extra-semi valid for(;;); ok 10007 no-extra-semi valid while(0); ok 10008 no-extra-semi valid do;while(0); ok 10009 no-extra-semi valid for(a in b); ok 10010 no-extra-semi valid for(a of b); ok 10011 no-extra-semi valid if(true); ok 10012 no-extra-semi valid if(true); else; ok 10013 no-extra-semi valid foo: ; ok 10014 no-extra-semi valid with(foo); ok 10015 no-extra-semi valid class A { } ok 10016 no-extra-semi valid var A = class { }; ok 10017 no-extra-semi valid class A { a() { this; } } ok 10018 no-extra-semi valid var A = class { a() { this; } }; ok 10019 no-extra-semi valid class A { } a; ok 10020 no-extra-semi valid export const x = 42; ok 10021 no-extra-semi valid export default 42; ok 10022 no-extra-semi invalid var x = 5;; ok 10023 no-extra-semi invalid function foo(){}; ok 10024 no-extra-semi invalid for(;;);; ok 10025 no-extra-semi invalid while(0);; ok 10026 no-extra-semi invalid do;while(0);; ok 10027 no-extra-semi invalid for(a in b);; ok 10028 no-extra-semi invalid for(a of b);; ok 10029 no-extra-semi invalid if(true);; ok 10030 no-extra-semi invalid if(true){} else;; ok 10031 no-extra-semi invalid if(true){;} else {;} ok 10032 no-extra-semi invalid foo:;; ok 10033 no-extra-semi invalid with(foo);; ok 10034 no-extra-semi invalid with(foo){;} ok 10035 no-extra-semi invalid class A { ; } ok 10036 no-extra-semi invalid class A { /*a*/; } ok 10037 no-extra-semi invalid class A { ; a() {} } ok 10038 no-extra-semi invalid class A { a() {}; } ok 10039 no-extra-semi invalid class A { a() {}; b() {} } ok 10040 no-extra-semi invalid class A {; a() {}; b() {}; } ok 10041 no-extra-semi invalid class A { a() {}; get b() {} } ok 10042 no-fallthrough valid switch(foo) { case 0: a(); /* falls through */ case 1: b(); } ok 10043 no-fallthrough valid switch(foo) { case 0: a()\u000a /* falls through */ case 1: b(); } ok 10044 no-fallthrough valid switch(foo) { case 0: a(); /* fall through */ case 1: b(); } ok 10045 no-fallthrough valid switch(foo) { case 0: a(); /* fallthrough */ case 1: b(); } ok 10046 no-fallthrough valid switch(foo) { case 0: a(); /* FALLS THROUGH */ case 1: b(); } ok 10047 no-fallthrough valid function foo() { switch(foo) { case 0: a(); return; case 1: b(); }; } ok 10048 no-fallthrough valid switch(foo) { case 0: a(); throw 'foo'; case 1: b(); } ok 10049 no-fallthrough valid while (a) { switch(foo) { case 0: a(); continue; case 1: b(); } } ok 10050 no-fallthrough valid switch(foo) { case 0: a(); break; case 1: b(); } ok 10051 no-fallthrough valid switch(foo) { case 0: case 1: a(); break; case 2: b(); } ok 10052 no-fallthrough valid switch(foo) { case 0: case 1: break; case 2: b(); } ok 10053 no-fallthrough valid switch(foo) { case 0: case 1: break; default: b(); } ok 10054 no-fallthrough valid switch(foo) { case 0: case 1: a(); } ok 10055 no-fallthrough valid switch(foo) { case 0: case 1: a(); break; } ok 10056 no-fallthrough valid switch(foo) { case 0: case 1: break; } ok 10057 no-fallthrough valid switch(foo) { case 0:\u000a case 1: break; } ok 10058 no-fallthrough valid switch(foo) { case 0: // comment\u000a case 1: break; } ok 10059 no-fallthrough valid function foo() { switch(foo) { case 0: case 1: return; } } ok 10060 no-fallthrough valid function foo() { switch(foo) { case 0: {return;}\u000a case 1: {return;} } } ok 10061 no-fallthrough valid switch(foo) { case 0: case 1: {break;} } ok 10062 no-fallthrough valid switch(foo) { } ok 10063 no-fallthrough valid switch(foo) { case 0: switch(bar) { case 2: break; } /* falls through */ case 1: break; } ok 10064 no-fallthrough valid function foo() { switch(foo) { case 1: return a; a++; }} ok 10065 no-fallthrough valid switch (foo) { case 0: a(); /* falls through */ default: b(); /* comment */ } ok 10066 no-fallthrough valid switch (foo) { case 0: a(); /* falls through */ default: /* comment */ b(); } ok 10067 no-fallthrough valid switch (foo) { case 0: if (a) { break; } else { throw 0; } default: b(); } ok 10068 no-fallthrough valid switch (foo) { case 0: try { break; } finally {} default: b(); } ok 10069 no-fallthrough valid switch (foo) { case 0: try {} finally { break; } default: b(); } ok 10070 no-fallthrough valid switch (foo) { case 0: try { throw 0; } catch (err) { break; } default: b(); } ok 10071 no-fallthrough valid switch (foo) { case 0: do { throw 0; } while(a); default: b(); } ok 10072 no-fallthrough valid switch(foo) { case 0: a(); /* no break */ case 1: b(); } ok 10073 no-fallthrough valid switch(foo) { case 0: a(); /* no break: need to execute b() */ case 1: b(); } ok 10074 no-fallthrough valid switch(foo) { case 0: a();\u000a// need to execute b(), so\u000a// falling through\u000a case 1: b(); } ok 10075 no-fallthrough valid switch(foo) { case 0: a(); /* break omitted */ default: b(); /* comment */ } ok 10076 no-fallthrough valid switch(foo) { case 0: a(); /* caution: break is omitted intentionally */ case 1: b(); /* break omitted */ default: c(); } ok 10077 no-fallthrough invalid switch(foo) { case 0: a();\u000acase 1: b() } ok 10078 no-fallthrough invalid switch(foo) { case 0: a();\u000adefault: b() } ok 10079 no-fallthrough invalid switch(foo) { case 0: a(); default: b() } ok 10080 no-fallthrough invalid switch(foo) { case 0: if (a) { break; } default: b() } ok 10081 no-fallthrough invalid switch(foo) { case 0: try { throw 0; } catch (err) {} default: b() } ok 10082 no-fallthrough invalid switch(foo) { case 0: while (a) { break; } default: b() } ok 10083 no-fallthrough invalid switch(foo) { case 0: do { break; } while (a); default: b() } ok 10084 no-fallthrough invalid switch(foo) { case 0:\u000a\u000a default: b() } ok 10085 no-fallthrough invalid switch(foo) { case 0:\u000a // comment\u000a default: b() } ok 10086 no-fallthrough invalid switch(foo) { case 0: a(); /* falling through */ default: b() } ok 10087 no-fallthrough invalid switch(foo) { case 0: a();\u000a/* no break */\u000acase 1: b(); } ok 10088 no-fallthrough invalid switch(foo) { case 0: a();\u000a/* no break */\u000a/* todo: fix readability */\u000adefault: b() } ok 10089 no-floating-decimal valid var x = 2.5; ok 10090 no-floating-decimal valid var x = "2.5"; ok 10091 no-floating-decimal invalid var x = .5; ok 10092 no-floating-decimal invalid var x = -.5; ok 10093 no-floating-decimal invalid var x = 2.; ok 10094 no-floating-decimal invalid var x = -2.; ok 10095 no-floating-decimal invalid typeof.2 ok 10096 no-floating-decimal invalid for(foo of.2); ok 10097 no-func-assign valid function foo() { var foo = bar; } ok 10098 no-func-assign valid function foo(foo) { foo = bar; } ok 10099 no-func-assign valid function foo() { var foo; foo = bar; } ok 10100 no-func-assign valid var foo = () => {}; foo = bar; ok 10101 no-func-assign valid var foo = function() {}; foo = bar; ok 10102 no-func-assign valid var foo = function() { foo = bar; }; ok 10103 no-func-assign valid import bar from 'bar'; function foo() { var foo = bar; } ok 10104 no-func-assign invalid function foo() {}; foo = bar; ok 10105 no-func-assign invalid function foo() { foo = bar; } ok 10106 no-func-assign invalid foo = bar; function foo() { }; ok 10107 no-func-assign invalid [foo] = bar; function foo() { }; ok 10108 no-func-assign invalid ({x: foo = 0} = bar); function foo() { }; ok 10109 no-func-assign invalid function foo() { [foo] = bar; } ok 10110 no-func-assign invalid (function() { ({x: foo = 0} = bar); function foo() { }; })(); ok 10111 no-global-assign valid string = 'hello world'; ok 10112 no-global-assign valid var string; ok 10113 no-global-assign valid Object = 0; ok 10114 no-global-assign valid top = 0; ok 10115 no-global-assign valid onload = 0; ok 10116 no-global-assign valid require = 0; ok 10117 no-global-assign valid a = 1 ok 10118 no-global-assign valid /*global a:true*/ a = 1 ok 10119 no-global-assign invalid String = 'hello world'; ok 10120 no-global-assign invalid String++; ok 10121 no-global-assign invalid ({Object = 0, String = 0} = {}); ok 10122 no-global-assign invalid top = 0; ok 10123 no-global-assign invalid require = 0; ok 10124 no-global-assign invalid /*global b:false*/ function f() { b = 1; } ok 10125 no-global-assign invalid function f() { b = 1; } ok 10126 no-global-assign invalid /*global b:false*/ function f() { b++; } ok 10127 no-global-assign invalid /*global b*/ b = 1; ok 10128 no-global-assign invalid Array = 1; ok 10129 no-implicit-coercion valid Boolean(foo) ok 10130 no-implicit-coercion valid foo.indexOf(1) !== -1 ok 10131 no-implicit-coercion valid Number(foo) ok 10132 no-implicit-coercion valid parseInt(foo) ok 10133 no-implicit-coercion valid parseFloat(foo) ok 10134 no-implicit-coercion valid String(foo) ok 10135 no-implicit-coercion valid !foo ok 10136 no-implicit-coercion valid ~foo ok 10137 no-implicit-coercion valid -foo ok 10138 no-implicit-coercion valid +1234 ok 10139 no-implicit-coercion valid -1234 ok 10140 no-implicit-coercion valid +Number(lol) ok 10141 no-implicit-coercion valid -parseFloat(lol) ok 10142 no-implicit-coercion valid 2 * foo ok 10143 no-implicit-coercion valid 1 * 1234 ok 10144 no-implicit-coercion valid 1 * Number(foo) ok 10145 no-implicit-coercion valid 1 * parseInt(foo) ok 10146 no-implicit-coercion valid 1 * parseFloat(foo) ok 10147 no-implicit-coercion valid Number(foo) * 1 ok 10148 no-implicit-coercion valid parseInt(foo) * 1 ok 10149 no-implicit-coercion valid parseFloat(foo) * 1 ok 10150 no-implicit-coercion valid 1 * 1234 * 678 * Number(foo) ok 10151 no-implicit-coercion valid 1 * 1234 * 678 * parseInt(foo) ok 10152 no-implicit-coercion valid 1234 * 1 * 678 * Number(foo) ok 10153 no-implicit-coercion valid 1234 * 1 * Number(foo) * Number(bar) ok 10154 no-implicit-coercion valid 1234 * 1 * Number(foo) * parseInt(bar) ok 10155 no-implicit-coercion valid 1234 * 1 * Number(foo) * parseFloat(bar) ok 10156 no-implicit-coercion valid 1234 * 1 * parseInt(foo) * parseFloat(bar) ok 10157 no-implicit-coercion valid 1234 * 1 * parseInt(foo) * Number(bar) ok 10158 no-implicit-coercion valid 1234 * 1 * parseFloat(foo) * Number(bar) ok 10159 no-implicit-coercion valid 1234 * Number(foo) * 1 * Number(bar) ok 10160 no-implicit-coercion valid 1234 * parseInt(foo) * 1 * Number(bar) ok 10161 no-implicit-coercion valid 1234 * parseFloat(foo) * 1 * parseInt(bar) ok 10162 no-implicit-coercion valid 1234 * parseFloat(foo) * 1 * Number(bar) ok 10163 no-implicit-coercion valid 1234*foo*1 ok 10164 no-implicit-coercion valid 1234*1*foo ok 10165 no-implicit-coercion valid 1234*bar*1*foo ok 10166 no-implicit-coercion valid 1234*1*foo*bar ok 10167 no-implicit-coercion valid 1234*1*foo*Number(bar) ok 10168 no-implicit-coercion valid 1234*1*Number(foo)*bar ok 10169 no-implicit-coercion valid 1234*1*parseInt(foo)*bar ok 10170 no-implicit-coercion valid 0 + foo ok 10171 no-implicit-coercion valid ~foo.bar() ok 10172 no-implicit-coercion valid foo + 'bar' ok 10173 no-implicit-coercion valid foo + `${bar}` ok 10174 no-implicit-coercion valid !!foo ok 10175 no-implicit-coercion valid ~foo.indexOf(1) ok 10176 no-implicit-coercion valid +foo ok 10177 no-implicit-coercion valid 1*foo ok 10178 no-implicit-coercion valid ""+foo ok 10179 no-implicit-coercion valid foo += "" ok 10180 no-implicit-coercion valid var a = !!foo ok 10181 no-implicit-coercion valid var a = ~foo.indexOf(1) ok 10182 no-implicit-coercion valid var a = ~foo ok 10183 no-implicit-coercion valid var a = 1 * foo ok 10184 no-implicit-coercion valid var a = +foo ok 10185 no-implicit-coercion valid var a = "" + foo ok 10186 no-implicit-coercion valid '' + 'foo' ok 10187 no-implicit-coercion valid `` + 'foo' ok 10188 no-implicit-coercion valid '' + `${foo}` ok 10189 no-implicit-coercion valid 'foo' + '' ok 10190 no-implicit-coercion valid 'foo' + `` ok 10191 no-implicit-coercion valid `${foo}` + '' ok 10192 no-implicit-coercion valid foo += 'bar' ok 10193 no-implicit-coercion valid foo += `${bar}` ok 10194 no-implicit-coercion valid +42 ok 10195 no-implicit-coercion invalid !!foo ok 10196 no-implicit-coercion invalid !!(foo + bar) ok 10197 no-implicit-coercion invalid ~foo.indexOf(1) ok 10198 no-implicit-coercion invalid ~foo.bar.indexOf(2) ok 10199 no-implicit-coercion invalid +foo ok 10200 no-implicit-coercion invalid +foo.bar ok 10201 no-implicit-coercion invalid 1*foo ok 10202 no-implicit-coercion invalid foo*1 ok 10203 no-implicit-coercion invalid 1*foo.bar ok 10204 no-implicit-coercion invalid ""+foo ok 10205 no-implicit-coercion invalid ``+foo ok 10206 no-implicit-coercion invalid foo+"" ok 10207 no-implicit-coercion invalid foo+`` ok 10208 no-implicit-coercion invalid ""+foo.bar ok 10209 no-implicit-coercion invalid ``+foo.bar ok 10210 no-implicit-coercion invalid foo.bar+"" ok 10211 no-implicit-coercion invalid foo.bar+`` ok 10212 no-implicit-coercion invalid foo += "" ok 10213 no-implicit-coercion invalid foo += `` ok 10214 no-implicit-coercion invalid var a = !!foo ok 10215 no-implicit-coercion invalid var a = ~foo.indexOf(1) ok 10216 no-implicit-coercion invalid var a = 1 * foo ok 10217 no-implicit-coercion invalid var a = +foo ok 10218 no-implicit-coercion invalid var a = "" + foo ok 10219 no-implicit-coercion invalid var a = `` + foo ok 10220 no-implicit-coercion invalid typeof+foo ok 10221 no-implicit-coercion invalid typeof +foo ok 10222 no-implicit-globals valid const foo = 1; ok 10223 no-implicit-globals valid let foo = 1; ok 10224 no-implicit-globals valid let foo = function() {}; ok 10225 no-implicit-globals valid const foo = function() {}; ok 10226 no-implicit-globals valid class Foo {} ok 10227 no-implicit-globals valid window.foo = 1; ok 10228 no-implicit-globals valid window.foo = function() {}; ok 10229 no-implicit-globals valid window.foo = function foo() {}; ok 10230 no-implicit-globals valid window.foo = function*() {}; ok 10231 no-implicit-globals valid self.foo = 1; ok 10232 no-implicit-globals valid self.foo = function() {}; ok 10233 no-implicit-globals valid this.foo = 1; ok 10234 no-implicit-globals valid this.foo = function() {}; ok 10235 no-implicit-globals valid Utils.foo = 1; ok 10236 no-implicit-globals valid Utils.foo = function() {}; ok 10237 no-implicit-globals valid (function() { var foo = 1; })(); ok 10238 no-implicit-globals valid (function() { let foo = 1; })(); ok 10239 no-implicit-globals valid (function() { const foo = 1; })(); ok 10240 no-implicit-globals valid (function() { function foo() {} })(); ok 10241 no-implicit-globals valid (function() { function *foo() {} })(); ok 10242 no-implicit-globals valid var foo = 1; ok 10243 no-implicit-globals valid let foo = 1; ok 10244 no-implicit-globals valid const foo = 1; ok 10245 no-implicit-globals valid function foo() {} ok 10246 no-implicit-globals valid function *foo() {} ok 10247 no-implicit-globals valid var foo = 1; ok 10248 no-implicit-globals valid let foo = 1; ok 10249 no-implicit-globals valid const foo = 1; ok 10250 no-implicit-globals valid function foo() {} ok 10251 no-implicit-globals valid /*global foo:true*/ var foo = 1; ok 10252 no-implicit-globals valid /*global foo:true*/ foo = 1; ok 10253 no-implicit-globals valid /*global foo:true*/ function foo() {} ok 10254 no-implicit-globals invalid foo = 1; ok 10255 no-implicit-globals invalid foo = 1, bar = 2; ok 10256 no-implicit-globals invalid var foo = 1; ok 10257 no-implicit-globals invalid var foo = 1, bar = 2; ok 10258 no-implicit-globals invalid function foo() {} ok 10259 no-implicit-globals invalid foo = function() {}; ok 10260 no-implicit-globals invalid var foo = function() {}; ok 10261 no-implicit-globals invalid var foo = function foo() {}; ok 10262 no-implicit-globals invalid function *foo() {} ok 10263 no-implicit-globals invalid foo = function*() {}; ok 10264 no-implicit-globals invalid var foo = function*() {}; ok 10265 no-implicit-globals invalid var foo = function *foo() {}; ok 10266 no-implicit-globals invalid foo = 1; ok 10267 no-implicit-globals invalid /*global foo:false*/ var foo = 1; ok 10268 no-implicit-globals invalid /*global foo:false*/ foo = 1; ok 10269 no-implicit-globals invalid /*global foo:false*/ function foo() {} ok 10270 no-implied-eval valid setInterval(function() { x = 1; }, 100); ok 10271 no-implied-eval valid foo.setTimeout('hi') ok 10272 no-implied-eval valid setTimeout(foo, 10) ok 10273 no-implied-eval valid setTimeout(function() {}, 10) ok 10274 no-implied-eval valid foo.setInterval('hi') ok 10275 no-implied-eval valid setInterval(foo, 10) ok 10276 no-implied-eval valid setInterval(function() {}, 10) ok 10277 no-implied-eval valid foo.execScript('hi') ok 10278 no-implied-eval valid execScript(foo) ok 10279 no-implied-eval valid execScript(function() {}) ok 10280 no-implied-eval valid setTimeout(foo + bar, 10) ok 10281 no-implied-eval valid setTimeout(foobar, 'buzz') ok 10282 no-implied-eval valid setTimeout(foobar, foo + 'bar') ok 10283 no-implied-eval valid setTimeout(function() { return 'foobar'; }, 10) ok 10284 no-implied-eval valid setTimeoutFooBar('Foo Bar') ok 10285 no-implied-eval invalid setTimeout("x = 1;"); ok 10286 no-implied-eval invalid setTimeout("x = 1;", 100); ok 10287 no-implied-eval invalid setInterval("x = 1;"); ok 10288 no-implied-eval invalid execScript("x = 1;"); ok 10289 no-implied-eval invalid window.setTimeout('foo') ok 10290 no-implied-eval invalid window.setInterval('foo') ok 10291 no-implied-eval invalid window['setTimeout']('foo') ok 10292 no-implied-eval invalid window['setInterval']('foo') ok 10293 no-implied-eval invalid setTimeout(`foo${bar}`) ok 10294 no-implied-eval invalid setTimeout('foo' + bar) ok 10295 no-implied-eval invalid setTimeout(foo + 'bar') ok 10296 no-implied-eval invalid setTimeout(`foo` + bar) ok 10297 no-implied-eval invalid setTimeout(1 + ';' + 1) ok 10298 no-implied-eval invalid setTimeout('foo' + (function() {\u000a setTimeout(helper);\u000a execScript('str');\u000a return 'bar';\u000a})()) ok 10299 no-import-assign valid import mod from 'mod'; mod.prop = 0 ok 10300 no-import-assign valid import mod from 'mod'; mod.prop += 0 ok 10301 no-import-assign valid import mod from 'mod'; mod.prop++ ok 10302 no-import-assign valid import mod from 'mod'; delete mod.prop ok 10303 no-import-assign valid import mod from 'mod'; for (mod.prop in foo); ok 10304 no-import-assign valid import mod from 'mod'; for (mod.prop of foo); ok 10305 no-import-assign valid import mod from 'mod'; [mod.prop] = foo; ok 10306 no-import-assign valid import mod from 'mod'; [...mod.prop] = foo; ok 10307 no-import-assign valid import mod from 'mod'; ({ bar: mod.prop } = foo); ok 10308 no-import-assign valid import mod from 'mod'; ({ ...mod.prop } = foo); ok 10309 no-import-assign valid import {named} from 'mod'; named.prop = 0 ok 10310 no-import-assign valid import {named} from 'mod'; named.prop += 0 ok 10311 no-import-assign valid import {named} from 'mod'; named.prop++ ok 10312 no-import-assign valid import {named} from 'mod'; delete named.prop ok 10313 no-import-assign valid import {named} from 'mod'; for (named.prop in foo); ok 10314 no-import-assign valid import {named} from 'mod'; for (named.prop of foo); ok 10315 no-import-assign valid import {named} from 'mod'; [named.prop] = foo; ok 10316 no-import-assign valid import {named} from 'mod'; [...named.prop] = foo; ok 10317 no-import-assign valid import {named} from 'mod'; ({ bar: named.prop } = foo); ok 10318 no-import-assign valid import {named} from 'mod'; ({ ...named.prop } = foo); ok 10319 no-import-assign valid import * as mod from 'mod'; mod.named.prop = 0 ok 10320 no-import-assign valid import * as mod from 'mod'; mod.named.prop += 0 ok 10321 no-import-assign valid import * as mod from 'mod'; mod.named.prop++ ok 10322 no-import-assign valid import * as mod from 'mod'; delete mod.named.prop ok 10323 no-import-assign valid import * as mod from 'mod'; for (mod.named.prop in foo); ok 10324 no-import-assign valid import * as mod from 'mod'; for (mod.named.prop of foo); ok 10325 no-import-assign valid import * as mod from 'mod'; [mod.named.prop] = foo; ok 10326 no-import-assign valid import * as mod from 'mod'; [...mod.named.prop] = foo; ok 10327 no-import-assign valid import * as mod from 'mod'; ({ bar: mod.named.prop } = foo); ok 10328 no-import-assign valid import * as mod from 'mod'; ({ ...mod.named.prop } = foo); ok 10329 no-import-assign valid import * as mod from 'mod'; obj[mod] = 0 ok 10330 no-import-assign valid import * as mod from 'mod'; obj[mod.named] = 0 ok 10331 no-import-assign valid import * as mod from 'mod'; for (var foo in mod.named); ok 10332 no-import-assign valid import * as mod from 'mod'; for (var foo of mod.named); ok 10333 no-import-assign valid import * as mod from 'mod'; [bar = mod.named] = foo; ok 10334 no-import-assign valid import * as mod from 'mod'; ({ bar = mod.named } = foo); ok 10335 no-import-assign valid import * as mod from 'mod'; ({ bar: baz = mod.named } = foo); ok 10336 no-import-assign valid import * as mod from 'mod'; ({ [mod.named]: bar } = foo); ok 10337 no-import-assign valid import * as mod from 'mod'; var obj = { ...mod.named }; ok 10338 no-import-assign valid import * as mod from 'mod'; var obj = { foo: mod.named }; ok 10339 no-import-assign valid import mod from 'mod'; { let mod = 0; mod = 1 } ok 10340 no-import-assign valid import * as mod from 'mod'; { let mod = 0; mod = 1 } ok 10341 no-import-assign valid import * as mod from 'mod'; { let mod = 0; mod.named = 1 } ok 10342 no-import-assign valid import {} from 'mod' ok 10343 no-import-assign valid import 'mod' ok 10344 no-import-assign valid import mod from 'mod'; Object.assign(mod, obj); ok 10345 no-import-assign valid import {named} from 'mod'; Object.assign(named, obj); ok 10346 no-import-assign valid import * as mod from 'mod'; Object.assign(mod.prop, obj); ok 10347 no-import-assign valid import * as mod from 'mod'; Object.assign(obj, mod, other); ok 10348 no-import-assign valid import * as mod from 'mod'; Object[assign](mod, obj); ok 10349 no-import-assign valid import * as mod from 'mod'; Object.getPrototypeOf(mod); ok 10350 no-import-assign valid import * as mod from 'mod'; Reflect.set(obj, key, mod); ok 10351 no-import-assign valid import * as mod from 'mod'; { var Object; Object.assign(mod, obj); } ok 10352 no-import-assign valid import * as mod from 'mod'; var Object; Object.assign(mod, obj); ok 10353 no-import-assign valid import * as mod from 'mod'; Object.seal(mod, obj) ok 10354 no-import-assign valid import * as mod from 'mod'; Object.preventExtensions(mod) ok 10355 no-import-assign valid import * as mod from 'mod'; Reflect.preventExtensions(mod) ok 10356 no-import-assign invalid import mod1 from 'mod'; mod1 = 0 ok 10357 no-import-assign invalid import mod2 from 'mod'; mod2 += 0 ok 10358 no-import-assign invalid import mod3 from 'mod'; mod3++ ok 10359 no-import-assign invalid import mod4 from 'mod'; for (mod4 in foo); ok 10360 no-import-assign invalid import mod5 from 'mod'; for (mod5 of foo); ok 10361 no-import-assign invalid import mod6 from 'mod'; [mod6] = foo ok 10362 no-import-assign invalid import mod7 from 'mod'; [mod7 = 0] = foo ok 10363 no-import-assign invalid import mod8 from 'mod'; [...mod8] = foo ok 10364 no-import-assign invalid import mod9 from 'mod'; ({ bar: mod9 } = foo) ok 10365 no-import-assign invalid import mod10 from 'mod'; ({ bar: mod10 = 0 } = foo) ok 10366 no-import-assign invalid import mod11 from 'mod'; ({ ...mod11 } = foo) ok 10367 no-import-assign invalid import {named1} from 'mod'; named1 = 0 ok 10368 no-import-assign invalid import {named2} from 'mod'; named2 += 0 ok 10369 no-import-assign invalid import {named3} from 'mod'; named3++ ok 10370 no-import-assign invalid import {named4} from 'mod'; for (named4 in foo); ok 10371 no-import-assign invalid import {named5} from 'mod'; for (named5 of foo); ok 10372 no-import-assign invalid import {named6} from 'mod'; [named6] = foo ok 10373 no-import-assign invalid import {named7} from 'mod'; [named7 = 0] = foo ok 10374 no-import-assign invalid import {named8} from 'mod'; [...named8] = foo ok 10375 no-import-assign invalid import {named9} from 'mod'; ({ bar: named9 } = foo) ok 10376 no-import-assign invalid import {named10} from 'mod'; ({ bar: named10 = 0 } = foo) ok 10377 no-import-assign invalid import {named11} from 'mod'; ({ ...named11 } = foo) ok 10378 no-import-assign invalid import {named12 as foo} from 'mod'; foo = 0; named12 = 0 ok 10379 no-import-assign invalid import * as mod1 from 'mod'; mod1 = 0 ok 10380 no-import-assign invalid import * as mod2 from 'mod'; mod2 += 0 ok 10381 no-import-assign invalid import * as mod3 from 'mod'; mod3++ ok 10382 no-import-assign invalid import * as mod4 from 'mod'; for (mod4 in foo); ok 10383 no-import-assign invalid import * as mod5 from 'mod'; for (mod5 of foo); ok 10384 no-import-assign invalid import * as mod6 from 'mod'; [mod6] = foo ok 10385 no-import-assign invalid import * as mod7 from 'mod'; [mod7 = 0] = foo ok 10386 no-import-assign invalid import * as mod8 from 'mod'; [...mod8] = foo ok 10387 no-import-assign invalid import * as mod9 from 'mod'; ({ bar: mod9 } = foo) ok 10388 no-import-assign invalid import * as mod10 from 'mod'; ({ bar: mod10 = 0 } = foo) ok 10389 no-import-assign invalid import * as mod11 from 'mod'; ({ ...mod11 } = foo) ok 10390 no-import-assign invalid import * as mod1 from 'mod'; mod1.named = 0 ok 10391 no-import-assign invalid import * as mod2 from 'mod'; mod2.named += 0 ok 10392 no-import-assign invalid import * as mod3 from 'mod'; mod3.named++ ok 10393 no-import-assign invalid import * as mod4 from 'mod'; for (mod4.named in foo); ok 10394 no-import-assign invalid import * as mod5 from 'mod'; for (mod5.named of foo); ok 10395 no-import-assign invalid import * as mod6 from 'mod'; [mod6.named] = foo ok 10396 no-import-assign invalid import * as mod7 from 'mod'; [mod7.named = 0] = foo ok 10397 no-import-assign invalid import * as mod8 from 'mod'; [...mod8.named] = foo ok 10398 no-import-assign invalid import * as mod9 from 'mod'; ({ bar: mod9.named } = foo) ok 10399 no-import-assign invalid import * as mod10 from 'mod'; ({ bar: mod10.named = 0 } = foo) ok 10400 no-import-assign invalid import * as mod11 from 'mod'; ({ ...mod11.named } = foo) ok 10401 no-import-assign invalid import * as mod12 from 'mod'; delete mod12.named ok 10402 no-import-assign invalid import * as mod from 'mod'; Object.assign(mod, obj) ok 10403 no-import-assign invalid import * as mod from 'mod'; Object.defineProperty(mod, key, d) ok 10404 no-import-assign invalid import * as mod from 'mod'; Object.defineProperties(mod, d) ok 10405 no-import-assign invalid import * as mod from 'mod'; Object.setPrototypeOf(mod, proto) ok 10406 no-import-assign invalid import * as mod from 'mod'; Object.freeze(mod) ok 10407 no-import-assign invalid import * as mod from 'mod'; Reflect.defineProperty(mod, key, d) ok 10408 no-import-assign invalid import * as mod from 'mod'; Reflect.deleteProperty(mod, key) ok 10409 no-import-assign invalid import * as mod from 'mod'; Reflect.set(mod, key, value) ok 10410 no-import-assign invalid import * as mod from 'mod'; Reflect.setPrototypeOf(mod, proto) ok 10411 no-import-assign invalid import mod, * as mod_ns from 'mod'; mod.prop = 0; mod_ns.prop = 0 ok 10412 no-inline-comments valid // A valid comment before code\u000avar a = 1; ok 10413 no-inline-comments valid var a = 2;\u000a// A valid comment after code ok 10414 no-inline-comments valid // A solitary comment ok 10415 no-inline-comments valid var a = 1; // eslint-disable-line no-debugger ok 10416 no-inline-comments valid var a = 1; /* eslint-disable-line no-debugger */ ok 10417 no-inline-comments invalid var a = 1; /*A block comment inline after code*/ ok 10418 no-inline-comments invalid /*A block comment inline before code*/ var a = 2; ok 10419 no-inline-comments invalid var a = 3; //A comment inline with code ok 10420 no-inline-comments invalid var a = 3; // someday use eslint-disable-line here ok 10421 no-inline-comments invalid var a = 4;\u000a/**A\u000a * block\u000a * comment\u000a * inline\u000a * between\u000a * code*/ var foo = a; ok 10422 no-inner-declarations valid function doSomething() { } ok 10423 no-inner-declarations valid function doSomething() { function somethingElse() { } } ok 10424 no-inner-declarations valid (function() { function doSomething() { } }()); ok 10425 no-inner-declarations valid if (test) { var fn = function() { }; } ok 10426 no-inner-declarations valid if (test) { var fn = function expr() { }; } ok 10427 no-inner-declarations valid function decl() { var fn = function expr() { }; } ok 10428 no-inner-declarations valid function decl(arg) { var fn; if (arg) { fn = function() { }; } } ok 10429 no-inner-declarations valid var x = {doSomething() {function doSomethingElse() {}}} ok 10430 no-inner-declarations valid function decl(arg) { var fn; if (arg) { fn = function expr() { }; } } ok 10431 no-inner-declarations valid function decl(arg) { var fn; if (arg) { fn = function expr() { }; } } ok 10432 no-inner-declarations valid if (test) { var foo; } ok 10433 no-inner-declarations valid if (test) { let x = 1; } ok 10434 no-inner-declarations valid if (test) { const x = 1; } ok 10435 no-inner-declarations valid function doSomething() { while (test) { var foo; } } ok 10436 no-inner-declarations valid var foo; ok 10437 no-inner-declarations valid var foo = 42; ok 10438 no-inner-declarations valid function doSomething() { var foo; } ok 10439 no-inner-declarations valid (function() { var foo; }()); ok 10440 no-inner-declarations valid foo(() => { function bar() { } }); ok 10441 no-inner-declarations valid var fn = () => {var foo;} ok 10442 no-inner-declarations valid var x = {doSomething() {var foo;}} ok 10443 no-inner-declarations invalid if (test) { function doSomething() { } } ok 10444 no-inner-declarations invalid function doSomething() { do { function somethingElse() { } } while (test); } ok 10445 no-inner-declarations invalid (function() { if (test) { function doSomething() { } } }()); ok 10446 no-inner-declarations invalid while (test) { var foo; } ok 10447 no-inner-declarations invalid function doSomething() { if (test) { var foo = 42; } } ok 10448 no-inner-declarations invalid (function() { if (test) { var foo; } }()); ok 10449 no-invalid-regexp valid RegExp('') ok 10450 no-invalid-regexp valid RegExp() ok 10451 no-invalid-regexp valid RegExp('.', 'g') ok 10452 no-invalid-regexp valid new RegExp('.') ok 10453 no-invalid-regexp valid new RegExp ok 10454 no-invalid-regexp valid new RegExp('.', 'im') ok 10455 no-invalid-regexp valid global.RegExp('\\') ok 10456 no-invalid-regexp valid new RegExp('.', y) ok 10457 no-invalid-regexp valid new RegExp('.', 'y') ok 10458 no-invalid-regexp valid new RegExp('.', 'u') ok 10459 no-invalid-regexp valid new RegExp('.', 'yu') ok 10460 no-invalid-regexp valid new RegExp('/', 'yu') ok 10461 no-invalid-regexp valid new RegExp('\/', 'yu') ok 10462 no-invalid-regexp valid new RegExp('.', 'y') ok 10463 no-invalid-regexp valid new RegExp('.', 'u') ok 10464 no-invalid-regexp valid new RegExp('.', 'yu') ok 10465 no-invalid-regexp valid new RegExp('/', 'yu') ok 10466 no-invalid-regexp valid new RegExp('\/', 'yu') ok 10467 no-invalid-regexp valid new RegExp('\\u{65}', 'u') ok 10468 no-invalid-regexp valid new RegExp('[\\u{0}-\\u{1F}]', 'u') ok 10469 no-invalid-regexp valid new RegExp('.', 's') ok 10470 no-invalid-regexp valid new RegExp('(?<=a)b') ok 10471 no-invalid-regexp valid new RegExp('(?b)\k') ok 10473 no-invalid-regexp valid new RegExp('(?b)\k', 'u') ok 10474 no-invalid-regexp valid new RegExp('\\p{Letter}', 'u') ok 10475 no-invalid-regexp invalid RegExp('['); ok 10476 no-invalid-regexp invalid RegExp('.', 'z'); ok 10477 no-invalid-regexp invalid new RegExp(')'); ok 10478 no-invalid-regexp invalid new RegExp('\\'); ok 10479 no-invalid-this valid console.log(this); z(x => console.log(x, this)); ok 10480 no-invalid-this valid console.log(this); z(x => console.log(x, this)); ok 10481 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); })(); ok 10482 no-invalid-this valid function foo() { console.log(this); z(x => console.log(x, this)); } ok 10483 no-invalid-this valid return function() { console.log(this); z(x => console.log(x, this)); }; ok 10484 no-invalid-this valid var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); ok 10485 no-invalid-this valid var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; ok 10486 no-invalid-this valid var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; ok 10487 no-invalid-this valid var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; ok 10488 no-invalid-this valid obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; ok 10489 no-invalid-this valid class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10490 no-invalid-this valid "use strict"; class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10491 no-invalid-this valid /* implied strict mode */ class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10492 no-invalid-this valid /* modules */ class A {static foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10493 no-invalid-this valid function Foo() { console.log(this); z(x => console.log(x, this)); } ok 10494 no-invalid-this valid "use strict"; function Foo() { console.log(this); z(x => console.log(x, this)); } ok 10495 no-invalid-this valid /* implied strict mode */ function Foo() { console.log(this); z(x => console.log(x, this)); } ok 10496 no-invalid-this valid /* modules */ function Foo() { console.log(this); z(x => console.log(x, this)); } ok 10497 no-invalid-this valid var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 10498 no-invalid-this valid "use strict"; var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 10499 no-invalid-this valid /* implied strict mode */ var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 10500 no-invalid-this valid /* modules */ var Foo = function Foo() { console.log(this); z(x => console.log(x, this)); }; ok 10501 no-invalid-this valid class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 10502 no-invalid-this valid "use strict"; class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 10503 no-invalid-this valid /* implied strict mode */ class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 10504 no-invalid-this valid /* modules */ class A {constructor() { console.log(this); z(x => console.log(x, this)); }}; ok 10505 no-invalid-this valid var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 10506 no-invalid-this valid "use strict"; var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 10507 no-invalid-this valid /* implied strict mode */ var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 10508 no-invalid-this valid /* modules */ var obj = {foo: function() { console.log(this); z(x => console.log(x, this)); }}; ok 10509 no-invalid-this valid var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10510 no-invalid-this valid "use strict"; var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10511 no-invalid-this valid /* implied strict mode */ var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10512 no-invalid-this valid /* modules */ var obj = {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10513 no-invalid-this valid var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 10514 no-invalid-this valid "use strict"; var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 10515 no-invalid-this valid /* implied strict mode */ var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 10516 no-invalid-this valid /* modules */ var obj = {foo: foo || function() { console.log(this); z(x => console.log(x, this)); }}; ok 10517 no-invalid-this valid var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 10518 no-invalid-this valid "use strict"; var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 10519 no-invalid-this valid /* implied strict mode */ var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 10520 no-invalid-this valid /* modules */ var obj = {foo: hasNative ? foo : function() { console.log(this); z(x => console.log(x, this)); }}; ok 10521 no-invalid-this valid var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 10522 no-invalid-this valid "use strict"; var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 10523 no-invalid-this valid /* implied strict mode */ var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 10524 no-invalid-this valid /* modules */ var obj = {foo: (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })()}; ok 10525 no-invalid-this valid Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 10526 no-invalid-this valid "use strict"; Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 10527 no-invalid-this valid /* implied strict mode */ Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 10528 no-invalid-this valid /* modules */ Object.defineProperty(obj, "foo", {value: function() { console.log(this); z(x => console.log(x, this)); }}) ok 10529 no-invalid-this valid Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 10530 no-invalid-this valid "use strict"; Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 10531 no-invalid-this valid /* implied strict mode */ Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 10532 no-invalid-this valid /* modules */ Object.defineProperties(obj, {foo: {value: function() { console.log(this); z(x => console.log(x, this)); }}}) ok 10533 no-invalid-this valid obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 10534 no-invalid-this valid "use strict"; obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 10535 no-invalid-this valid /* implied strict mode */ obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 10536 no-invalid-this valid /* modules */ obj.foo = function() { console.log(this); z(x => console.log(x, this)); }; ok 10537 no-invalid-this valid obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 10538 no-invalid-this valid "use strict"; obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 10539 no-invalid-this valid /* implied strict mode */ obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 10540 no-invalid-this valid /* modules */ obj.foo = foo || function() { console.log(this); z(x => console.log(x, this)); }; ok 10541 no-invalid-this valid obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 10542 no-invalid-this valid "use strict"; obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 10543 no-invalid-this valid /* implied strict mode */ obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 10544 no-invalid-this valid /* modules */ obj.foo = foo ? bar : function() { console.log(this); z(x => console.log(x, this)); }; ok 10545 no-invalid-this valid obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 10546 no-invalid-this valid "use strict"; obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 10547 no-invalid-this valid /* implied strict mode */ obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 10548 no-invalid-this valid /* modules */ obj.foo = (function() { return function() { console.log(this); z(x => console.log(x, this)); }; })(); ok 10549 no-invalid-this valid obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 10550 no-invalid-this valid "use strict"; obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 10551 no-invalid-this valid /* implied strict mode */ obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 10552 no-invalid-this valid /* modules */ obj.foo = (() => function() { console.log(this); z(x => console.log(x, this)); })(); ok 10553 no-invalid-this valid obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); ok 10554 no-invalid-this valid obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); ok 10555 no-invalid-this valid class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10556 no-invalid-this valid "use strict"; class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10557 no-invalid-this valid /* implied strict mode */ class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10558 no-invalid-this valid /* modules */ class A {foo() { console.log(this); z(x => console.log(x, this)); }}; ok 10559 no-invalid-this valid var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 10560 no-invalid-this valid "use strict"; var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 10561 no-invalid-this valid /* implied strict mode */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 10562 no-invalid-this valid /* modules */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(obj); ok 10563 no-invalid-this valid var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); ok 10564 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 10565 no-invalid-this valid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 10566 no-invalid-this valid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 10567 no-invalid-this valid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).call(obj); ok 10568 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); ok 10569 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 10570 no-invalid-this valid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 10571 no-invalid-this valid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 10572 no-invalid-this valid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(obj); ok 10573 no-invalid-this valid (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); ok 10574 no-invalid-this valid Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 10575 no-invalid-this valid "use strict"; Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 10576 no-invalid-this valid /* implied strict mode */ Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 10577 no-invalid-this valid /* modules */ Reflect.apply(function() { console.log(this); z(x => console.log(x, this)); }, obj, []); ok 10578 no-invalid-this valid Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); ok 10579 no-invalid-this valid foo.every(function() { console.log(this); z(x => console.log(x, this)); }); ok 10580 no-invalid-this valid foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); ok 10581 no-invalid-this valid foo.find(function() { console.log(this); z(x => console.log(x, this)); }); ok 10582 no-invalid-this valid foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); ok 10583 no-invalid-this valid foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); ok 10584 no-invalid-this valid foo.map(function() { console.log(this); z(x => console.log(x, this)); }); ok 10585 no-invalid-this valid foo.some(function() { console.log(this); z(x => console.log(x, this)); }); ok 10586 no-invalid-this valid Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10587 no-invalid-this valid "use strict"; Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10588 no-invalid-this valid /* implied strict mode */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10589 no-invalid-this valid /* modules */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10590 no-invalid-this valid foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10591 no-invalid-this valid "use strict"; foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10592 no-invalid-this valid /* implied strict mode */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10593 no-invalid-this valid /* modules */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10594 no-invalid-this valid foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10595 no-invalid-this valid "use strict"; foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10596 no-invalid-this valid /* implied strict mode */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10597 no-invalid-this valid /* modules */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10598 no-invalid-this valid foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10599 no-invalid-this valid "use strict"; foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10600 no-invalid-this valid /* implied strict mode */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10601 no-invalid-this valid /* modules */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10602 no-invalid-this valid foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10603 no-invalid-this valid "use strict"; foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10604 no-invalid-this valid /* implied strict mode */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10605 no-invalid-this valid /* modules */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10606 no-invalid-this valid foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10607 no-invalid-this valid "use strict"; foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10608 no-invalid-this valid /* implied strict mode */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10609 no-invalid-this valid /* modules */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10610 no-invalid-this valid foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10611 no-invalid-this valid "use strict"; foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10612 no-invalid-this valid /* implied strict mode */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10613 no-invalid-this valid /* modules */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10614 no-invalid-this valid foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10615 no-invalid-this valid "use strict"; foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10616 no-invalid-this valid /* implied strict mode */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10617 no-invalid-this valid /* modules */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }, obj); ok 10618 no-invalid-this valid foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); ok 10619 no-invalid-this valid /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 10620 no-invalid-this valid "use strict"; /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 10621 no-invalid-this valid /* implied strict mode */ /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 10622 no-invalid-this valid /* modules */ /** @this Obj */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 10623 no-invalid-this valid /**\u000a * @returns {void}\u000a * @this Obj\u000a */\u000afunction foo() { console.log(this); z(x => console.log(x, this)); } ok 10624 no-invalid-this valid "use strict"; /**\u000a * @returns {void}\u000a * @this Obj\u000a */\u000afunction foo() { console.log(this); z(x => console.log(x, this)); } ok 10625 no-invalid-this valid /* implied strict mode */ /**\u000a * @returns {void}\u000a * @this Obj\u000a */\u000afunction foo() { console.log(this); z(x => console.log(x, this)); } ok 10626 no-invalid-this valid /* modules */ /**\u000a * @returns {void}\u000a * @this Obj\u000a */\u000afunction foo() { console.log(this); z(x => console.log(x, this)); } ok 10627 no-invalid-this valid /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } ok 10628 no-invalid-this valid /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); ok 10629 no-invalid-this valid foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 10630 no-invalid-this valid "use strict"; foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 10631 no-invalid-this valid /* implied strict mode */ foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 10632 no-invalid-this valid /* modules */ foo(/* @this Obj */ function() { console.log(this); z(x => console.log(x, this)); }); ok 10633 no-invalid-this valid function foo() { console.log(this); z(x => console.log(x, this)); } ok 10634 no-invalid-this valid function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 10635 no-invalid-this valid "use strict"; function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 10636 no-invalid-this valid /* implied strict mode */ function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 10637 no-invalid-this valid /* modules */ function foo() { /** @this Obj*/ return function bar() { console.log(this); z(x => console.log(x, this)); }; } ok 10638 no-invalid-this valid var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10639 no-invalid-this valid "use strict"; var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10640 no-invalid-this valid /* implied strict mode */ var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10641 no-invalid-this valid /* modules */ var Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10642 no-invalid-this valid var func = function() { console.log(this); z(x => console.log(x, this)); } ok 10643 no-invalid-this valid Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10644 no-invalid-this valid "use strict"; Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10645 no-invalid-this valid /* implied strict mode */ Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10646 no-invalid-this valid /* modules */ Ctor = function() { console.log(this); z(x => console.log(x, this)); } ok 10647 no-invalid-this valid func = function() { console.log(this); z(x => console.log(x, this)); } ok 10648 no-invalid-this valid function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 10649 no-invalid-this valid "use strict"; function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 10650 no-invalid-this valid /* implied strict mode */ function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 10651 no-invalid-this valid /* modules */ function foo(Ctor = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 10652 no-invalid-this valid function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} ok 10653 no-invalid-this valid [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 10654 no-invalid-this valid "use strict"; [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 10655 no-invalid-this valid /* implied strict mode */ [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 10656 no-invalid-this valid /* modules */ [obj.method = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 10657 no-invalid-this valid [func = function() { console.log(this); z(x => console.log(x, this)); }] = a ok 10658 no-invalid-this invalid "use strict"; console.log(this); z(x => console.log(x, this)); /* should error */ ok 10659 no-invalid-this invalid /* implied strict mode */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 10660 no-invalid-this invalid /* modules */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 10661 no-invalid-this invalid "use strict"; console.log(this); z(x => console.log(x, this)); /* should error */ ok 10662 no-invalid-this invalid /* implied strict mode */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 10663 no-invalid-this invalid /* modules */ console.log(this); z(x => console.log(x, this)); /* should error */ ok 10664 no-invalid-this invalid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 10665 no-invalid-this invalid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 10666 no-invalid-this invalid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 10667 no-invalid-this invalid "use strict"; function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10668 no-invalid-this invalid /* implied strict mode */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10669 no-invalid-this invalid /* modules */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10670 no-invalid-this invalid function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10671 no-invalid-this invalid "use strict"; function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10672 no-invalid-this invalid /* implied strict mode */ function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10673 no-invalid-this invalid /* modules */ function foo() { "use strict"; console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10674 no-invalid-this invalid "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; /* should error */ ok 10675 no-invalid-this invalid /* implied strict mode */ return function() { console.log(this); z(x => console.log(x, this)); }; /* should error */ ok 10676 no-invalid-this invalid "use strict"; var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); /* should error */ ok 10677 no-invalid-this invalid /* implied strict mode */ var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); /* should error */ ok 10678 no-invalid-this invalid /* modules */ var foo = (function() { console.log(this); z(x => console.log(x, this)); }).bar(obj); /* should error */ ok 10679 no-invalid-this invalid "use strict"; var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 10680 no-invalid-this invalid /* implied strict mode */ var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 10681 no-invalid-this invalid /* modules */ var obj = {foo: function() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 10682 no-invalid-this invalid "use strict"; var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 10683 no-invalid-this invalid /* implied strict mode */ var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 10684 no-invalid-this invalid /* modules */ var obj = {foo() { function foo() { console.log(this); z(x => console.log(x, this)); } foo(); }}; /* should error */ ok 10685 no-invalid-this invalid "use strict"; var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10686 no-invalid-this invalid /* implied strict mode */ var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10687 no-invalid-this invalid /* modules */ var obj = {foo: function() { return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10688 no-invalid-this invalid var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10689 no-invalid-this invalid "use strict"; var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10690 no-invalid-this invalid /* implied strict mode */ var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10691 no-invalid-this invalid /* modules */ var obj = {foo: function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }}; /* should error */ ok 10692 no-invalid-this invalid "use strict"; obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10693 no-invalid-this invalid /* implied strict mode */ obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10694 no-invalid-this invalid /* modules */ obj.foo = function() { return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10695 no-invalid-this invalid obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10696 no-invalid-this invalid "use strict"; obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10697 no-invalid-this invalid /* implied strict mode */ obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10698 no-invalid-this invalid /* modules */ obj.foo = function() { "use strict"; return function() { console.log(this); z(x => console.log(x, this)); }; }; /* should error */ ok 10699 no-invalid-this invalid class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 10700 no-invalid-this invalid "use strict"; class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 10701 no-invalid-this invalid /* implied strict mode */ class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 10702 no-invalid-this invalid /* modules */ class A { foo() { return function() { console.log(this); z(x => console.log(x, this)); }; } } /* should error */ ok 10703 no-invalid-this invalid "use strict"; obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); /* should error */ ok 10704 no-invalid-this invalid /* implied strict mode */ obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); /* should error */ ok 10705 no-invalid-this invalid /* modules */ obj.foo = (function() { return () => { console.log(this); z(x => console.log(x, this)); }; })(); /* should error */ ok 10706 no-invalid-this invalid "use strict"; obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 10707 no-invalid-this invalid /* implied strict mode */ obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 10708 no-invalid-this invalid /* modules */ obj.foo = (() => () => { console.log(this); z(x => console.log(x, this)); })(); /* should error */ ok 10709 no-invalid-this invalid "use strict"; var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); /* should error */ ok 10710 no-invalid-this invalid /* implied strict mode */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); /* should error */ ok 10711 no-invalid-this invalid /* modules */ var foo = function() { console.log(this); z(x => console.log(x, this)); }.bind(null); /* should error */ ok 10712 no-invalid-this invalid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); /* should error */ ok 10713 no-invalid-this invalid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); /* should error */ ok 10714 no-invalid-this invalid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).call(undefined); /* should error */ ok 10715 no-invalid-this invalid "use strict"; (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); /* should error */ ok 10716 no-invalid-this invalid /* implied strict mode */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); /* should error */ ok 10717 no-invalid-this invalid /* modules */ (function() { console.log(this); z(x => console.log(x, this)); }).apply(void 0); /* should error */ ok 10718 no-invalid-this invalid "use strict"; Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10719 no-invalid-this invalid /* implied strict mode */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10720 no-invalid-this invalid /* modules */ Array.from([], function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10721 no-invalid-this invalid "use strict"; foo.every(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10722 no-invalid-this invalid /* implied strict mode */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10723 no-invalid-this invalid /* modules */ foo.every(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10724 no-invalid-this invalid "use strict"; foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10725 no-invalid-this invalid /* implied strict mode */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10726 no-invalid-this invalid /* modules */ foo.filter(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10727 no-invalid-this invalid "use strict"; foo.find(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10728 no-invalid-this invalid /* implied strict mode */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10729 no-invalid-this invalid /* modules */ foo.find(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10730 no-invalid-this invalid "use strict"; foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10731 no-invalid-this invalid /* implied strict mode */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10732 no-invalid-this invalid /* modules */ foo.findIndex(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10733 no-invalid-this invalid "use strict"; foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10734 no-invalid-this invalid /* implied strict mode */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10735 no-invalid-this invalid /* modules */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10736 no-invalid-this invalid "use strict"; foo.map(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10737 no-invalid-this invalid /* implied strict mode */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10738 no-invalid-this invalid /* modules */ foo.map(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10739 no-invalid-this invalid "use strict"; foo.some(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10740 no-invalid-this invalid /* implied strict mode */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10741 no-invalid-this invalid /* modules */ foo.some(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10742 no-invalid-this invalid "use strict"; foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); /* should error */ ok 10743 no-invalid-this invalid /* implied strict mode */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); /* should error */ ok 10744 no-invalid-this invalid /* modules */ foo.forEach(function() { console.log(this); z(x => console.log(x, this)); }, null); /* should error */ ok 10745 no-invalid-this invalid "use strict"; /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10746 no-invalid-this invalid /* implied strict mode */ /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10747 no-invalid-this invalid /* modules */ /** @returns {void} */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10748 no-invalid-this invalid "use strict"; /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10749 no-invalid-this invalid /* implied strict mode */ /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10750 no-invalid-this invalid /* modules */ /** @this Obj */ foo(function() { console.log(this); z(x => console.log(x, this)); }); /* should error */ ok 10751 no-invalid-this invalid "use strict"; function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10752 no-invalid-this invalid /* implied strict mode */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10753 no-invalid-this invalid /* modules */ function foo() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10754 no-invalid-this invalid "use strict"; var func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10755 no-invalid-this invalid /* implied strict mode */ var func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10756 no-invalid-this invalid /* modules */ var func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10757 no-invalid-this invalid "use strict"; func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10758 no-invalid-this invalid /* implied strict mode */ func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10759 no-invalid-this invalid /* modules */ func = function() { console.log(this); z(x => console.log(x, this)); } /* should error */ ok 10760 no-invalid-this invalid "use strict"; function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} /* should error */ ok 10761 no-invalid-this invalid /* implied strict mode */ function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} /* should error */ ok 10762 no-invalid-this invalid /* modules */ function foo(func = function() { console.log(this); z(x => console.log(x, this)); }) {} /* should error */ ok 10763 no-invalid-this invalid "use strict"; [func = function() { console.log(this); z(x => console.log(x, this)); }] = a /* should error */ ok 10764 no-invalid-this invalid /* implied strict mode */ [func = function() { console.log(this); z(x => console.log(x, this)); }] = a /* should error */ ok 10765 no-invalid-this invalid /* modules */ [func = function() { console.log(this); z(x => console.log(x, this)); }] = a /* should error */ ok 10766 no-irregular-whitespace valid '\u000B'; ok 10767 no-irregular-whitespace valid '\u000C'; ok 10768 no-irregular-whitespace valid '\u0085'; ok 10769 no-irregular-whitespace valid '\u00A0'; ok 10770 no-irregular-whitespace valid '\u180E'; ok 10771 no-irregular-whitespace valid '\ufeff'; ok 10772 no-irregular-whitespace valid '\u2000'; ok 10773 no-irregular-whitespace valid '\u2001'; ok 10774 no-irregular-whitespace valid '\u2002'; ok 10775 no-irregular-whitespace valid '\u2003'; ok 10776 no-irregular-whitespace valid '\u2004'; ok 10777 no-irregular-whitespace valid '\u2005'; ok 10778 no-irregular-whitespace valid '\u2006'; ok 10779 no-irregular-whitespace valid '\u2007'; ok 10780 no-irregular-whitespace valid '\u2008'; ok 10781 no-irregular-whitespace valid '\u2009'; ok 10782 no-irregular-whitespace valid '\u200A'; ok 10783 no-irregular-whitespace valid '\u200B'; ok 10784 no-irregular-whitespace valid '\u2028'; ok 10785 no-irregular-whitespace valid '\u2029'; ok 10786 no-irregular-whitespace valid '\u202F'; ok 10787 no-irregular-whitespace valid '\u205f'; ok 10788 no-irregular-whitespace valid '\u3000'; ok 10789 no-irregular-whitespace valid '\u000b'; ok 10790 no-irregular-whitespace valid '\u000c'; ok 10791 no-irregular-whitespace valid '…'; ok 10792 no-irregular-whitespace valid ' '; ok 10793 no-irregular-whitespace valid '᠎'; ok 10794 no-irregular-whitespace valid ''; ok 10795 no-irregular-whitespace valid ' '; ok 10796 no-irregular-whitespace valid ' '; ok 10797 no-irregular-whitespace valid ' '; ok 10798 no-irregular-whitespace valid ' '; ok 10799 no-irregular-whitespace valid ' '; ok 10800 no-irregular-whitespace valid ' '; ok 10801 no-irregular-whitespace valid ' '; ok 10802 no-irregular-whitespace valid ' '; ok 10803 no-irregular-whitespace valid ' '; ok 10804 no-irregular-whitespace valid ' '; ok 10805 no-irregular-whitespace valid ' '; ok 10806 no-irregular-whitespace valid '​'; ok 10807 no-irregular-whitespace valid '\
'; ok 10808 no-irregular-whitespace valid '\
'; ok 10809 no-irregular-whitespace valid ' '; ok 10810 no-irregular-whitespace valid ' '; ok 10811 no-irregular-whitespace valid ' '; ok 10812 no-irregular-whitespace valid // \u000b ok 10813 no-irregular-whitespace valid // \u000c ok 10814 no-irregular-whitespace valid // … ok 10815 no-irregular-whitespace valid //   ok 10816 no-irregular-whitespace valid // ᠎ ok 10817 no-irregular-whitespace valid //  ok 10818 no-irregular-whitespace valid //   ok 10819 no-irregular-whitespace valid //   ok 10820 no-irregular-whitespace valid //   ok 10821 no-irregular-whitespace valid //   ok 10822 no-irregular-whitespace valid //   ok 10823 no-irregular-whitespace valid //   ok 10824 no-irregular-whitespace valid //   ok 10825 no-irregular-whitespace valid //   ok 10826 no-irregular-whitespace valid //   ok 10827 no-irregular-whitespace valid //   ok 10828 no-irregular-whitespace valid //   ok 10829 no-irregular-whitespace valid // ​ ok 10830 no-irregular-whitespace valid //   ok 10831 no-irregular-whitespace valid //   ok 10832 no-irregular-whitespace valid //   ok 10833 no-irregular-whitespace valid /* \u000b */ ok 10834 no-irregular-whitespace valid /* \u000c */ ok 10835 no-irregular-whitespace valid /* … */ ok 10836 no-irregular-whitespace valid /*   */ ok 10837 no-irregular-whitespace valid /* ᠎ */ ok 10838 no-irregular-whitespace valid /*  */ ok 10839 no-irregular-whitespace valid /*   */ ok 10840 no-irregular-whitespace valid /*   */ ok 10841 no-irregular-whitespace valid /*   */ ok 10842 no-irregular-whitespace valid /*   */ ok 10843 no-irregular-whitespace valid /*   */ ok 10844 no-irregular-whitespace valid /*   */ ok 10845 no-irregular-whitespace valid /*   */ ok 10846 no-irregular-whitespace valid /*   */ ok 10847 no-irregular-whitespace valid /*   */ ok 10848 no-irregular-whitespace valid /*   */ ok 10849 no-irregular-whitespace valid /*   */ ok 10850 no-irregular-whitespace valid /* ​ */ ok 10851 no-irregular-whitespace valid /* 
 */ ok 10852 no-irregular-whitespace valid /* 
 */ ok 10853 no-irregular-whitespace valid /*   */ ok 10854 no-irregular-whitespace valid /*   */ ok 10855 no-irregular-whitespace valid /*   */ ok 10856 no-irregular-whitespace valid /\u000b/ ok 10857 no-irregular-whitespace valid /\u000c/ ok 10858 no-irregular-whitespace valid /…/ ok 10859 no-irregular-whitespace valid / / ok 10860 no-irregular-whitespace valid /᠎/ ok 10861 no-irregular-whitespace valid // ok 10862 no-irregular-whitespace valid / / ok 10863 no-irregular-whitespace valid / / ok 10864 no-irregular-whitespace valid / / ok 10865 no-irregular-whitespace valid / / ok 10866 no-irregular-whitespace valid / / ok 10867 no-irregular-whitespace valid / / ok 10868 no-irregular-whitespace valid / / ok 10869 no-irregular-whitespace valid / / ok 10870 no-irregular-whitespace valid / / ok 10871 no-irregular-whitespace valid / / ok 10872 no-irregular-whitespace valid / / ok 10873 no-irregular-whitespace valid /​/ ok 10874 no-irregular-whitespace valid / / ok 10875 no-irregular-whitespace valid / / ok 10876 no-irregular-whitespace valid / / ok 10877 no-irregular-whitespace valid `\u000b` ok 10878 no-irregular-whitespace valid `\u000c` ok 10879 no-irregular-whitespace valid `…` ok 10880 no-irregular-whitespace valid ` ` ok 10881 no-irregular-whitespace valid `᠎` ok 10882 no-irregular-whitespace valid `` ok 10883 no-irregular-whitespace valid ` ` ok 10884 no-irregular-whitespace valid ` ` ok 10885 no-irregular-whitespace valid ` ` ok 10886 no-irregular-whitespace valid ` ` ok 10887 no-irregular-whitespace valid ` ` ok 10888 no-irregular-whitespace valid ` ` ok 10889 no-irregular-whitespace valid ` ` ok 10890 no-irregular-whitespace valid ` ` ok 10891 no-irregular-whitespace valid ` ` ok 10892 no-irregular-whitespace valid ` ` ok 10893 no-irregular-whitespace valid ` ` ok 10894 no-irregular-whitespace valid `​` ok 10895 no-irregular-whitespace valid ` ` ok 10896 no-irregular-whitespace valid ` ` ok 10897 no-irregular-whitespace valid ` ` ok 10898 no-irregular-whitespace valid console.log('hello BOM'); ok 10899 no-irregular-whitespace invalid var any \u000b = 'thing'; ok 10900 no-irregular-whitespace invalid var any \u000c = 'thing'; ok 10901 no-irregular-whitespace invalid var any   = 'thing'; ok 10902 no-irregular-whitespace invalid var any  = 'thing'; ok 10903 no-irregular-whitespace invalid var any   = 'thing'; ok 10904 no-irregular-whitespace invalid var any   = 'thing'; ok 10905 no-irregular-whitespace invalid var any   = 'thing'; ok 10906 no-irregular-whitespace invalid var any   = 'thing'; ok 10907 no-irregular-whitespace invalid var any   = 'thing'; ok 10908 no-irregular-whitespace invalid var any   = 'thing'; ok 10909 no-irregular-whitespace invalid var any   = 'thing'; ok 10910 no-irregular-whitespace invalid var any   = 'thing'; ok 10911 no-irregular-whitespace invalid var any   = 'thing'; ok 10912 no-irregular-whitespace invalid var any   = 'thing'; ok 10913 no-irregular-whitespace invalid var any   = 'thing'; ok 10914 no-irregular-whitespace invalid var any 
 = 'thing'; ok 10915 no-irregular-whitespace invalid var any 
 = 'thing'; ok 10916 no-irregular-whitespace invalid var any   = 'thing'; ok 10917 no-irregular-whitespace invalid var any   = 'thing'; ok 10918 no-irregular-whitespace invalid var any   = 'thing'; ok 10919 no-irregular-whitespace invalid var a = 'b',
c = 'd',\u000ae = 'f'
 ok 10920 no-irregular-whitespace invalid var any   = 'thing', other   = 'thing';\u000avar third   = 'thing'; ok 10921 no-irregular-whitespace invalid // \u000b ok 10922 no-irregular-whitespace invalid // \u000c ok 10923 no-irregular-whitespace invalid // … ok 10924 no-irregular-whitespace invalid //   ok 10925 no-irregular-whitespace invalid // ᠎ ok 10926 no-irregular-whitespace invalid //  ok 10927 no-irregular-whitespace invalid //   ok 10928 no-irregular-whitespace invalid //   ok 10929 no-irregular-whitespace invalid //   ok 10930 no-irregular-whitespace invalid //   ok 10931 no-irregular-whitespace invalid //   ok 10932 no-irregular-whitespace invalid //   ok 10933 no-irregular-whitespace invalid //   ok 10934 no-irregular-whitespace invalid //   ok 10935 no-irregular-whitespace invalid //   ok 10936 no-irregular-whitespace invalid //   ok 10937 no-irregular-whitespace invalid //   ok 10938 no-irregular-whitespace invalid // ​ ok 10939 no-irregular-whitespace invalid //   ok 10940 no-irregular-whitespace invalid //   ok 10941 no-irregular-whitespace invalid //   ok 10942 no-irregular-whitespace invalid /* \u000b */ ok 10943 no-irregular-whitespace invalid /* \u000c */ ok 10944 no-irregular-whitespace invalid /* … */ ok 10945 no-irregular-whitespace invalid /*   */ ok 10946 no-irregular-whitespace invalid /* ᠎ */ ok 10947 no-irregular-whitespace invalid /*  */ ok 10948 no-irregular-whitespace invalid /*   */ ok 10949 no-irregular-whitespace invalid /*   */ ok 10950 no-irregular-whitespace invalid /*   */ ok 10951 no-irregular-whitespace invalid /*   */ ok 10952 no-irregular-whitespace invalid /*   */ ok 10953 no-irregular-whitespace invalid /*   */ ok 10954 no-irregular-whitespace invalid /*   */ ok 10955 no-irregular-whitespace invalid /*   */ ok 10956 no-irregular-whitespace invalid /*   */ ok 10957 no-irregular-whitespace invalid /*   */ ok 10958 no-irregular-whitespace invalid /*   */ ok 10959 no-irregular-whitespace invalid /* ​ */ ok 10960 no-irregular-whitespace invalid /* 
 */ ok 10961 no-irregular-whitespace invalid /* 
 */ ok 10962 no-irregular-whitespace invalid /*   */ ok 10963 no-irregular-whitespace invalid /*   */ ok 10964 no-irregular-whitespace invalid /*   */ ok 10965 no-irregular-whitespace invalid var any = / /, other = /\u000b/; ok 10966 no-irregular-whitespace invalid var any = ' ', other = '\u000b'; ok 10967 no-irregular-whitespace invalid var any = ` `, other = `\u000b`; ok 10968 no-irregular-whitespace invalid `something ${  10} another thing` ok 10969 no-iterator valid var a = test[__iterator__]; ok 10970 no-iterator valid var __iterator__ = null; ok 10971 no-iterator invalid var a = test.__iterator__; ok 10972 no-iterator invalid Foo.prototype.__iterator__ = function() {}; ok 10973 no-iterator invalid var a = test['__iterator__']; ok 10974 no-label-var valid function bar() { q: for(;;) { break q; } } function foo () { var q = t; } ok 10975 no-label-var valid function bar() { var x = foo; q: for(;;) { break q; } } ok 10976 no-label-var invalid var x = foo; function bar() { x: for(;;) { break x; } } ok 10977 no-label-var invalid function bar() { var x = foo; x: for(;;) { break x; } } ok 10978 no-label-var invalid function bar(x) { x: for(;;) { break x; } } ok 10979 no-labels valid var f = { label: foo ()} ok 10980 no-labels valid while (true) {} ok 10981 no-labels valid while (true) { break; } ok 10982 no-labels valid while (true) { continue; } ok 10983 no-labels valid A: while (a) { break A; } ok 10984 no-labels valid A: do { if (b) { break A; } } while (a); ok 10985 no-labels valid A: for (var a in obj) { for (;;) { switch (a) { case 0: continue A; } } } ok 10986 no-labels valid A: switch (a) { case 0: break A; } ok 10987 no-labels invalid label: while(true) {} ok 10988 no-labels invalid label: while (true) { break label; } ok 10989 no-labels invalid label: while (true) { continue label; } ok 10990 no-labels invalid A: var foo = 0; ok 10991 no-labels invalid A: break A; ok 10992 no-labels invalid A: { if (foo()) { break A; } bar(); }; ok 10993 no-labels invalid A: if (a) { if (foo()) { break A; } bar(); }; ok 10994 no-labels invalid A: switch (a) { case 0: break A; default: break; }; ok 10995 no-labels invalid A: switch (a) { case 0: B: { break A; } default: break; }; ok 10996 no-labels invalid A: var foo = 0; ok 10997 no-labels invalid A: break A; ok 10998 no-labels invalid A: { if (foo()) { break A; } bar(); }; ok 10999 no-labels invalid A: if (a) { if (foo()) { break A; } bar(); }; ok 11000 no-labels invalid A: switch (a) { case 0: break A; default: break; }; ok 11001 no-labels invalid A: var foo = 0; ok 11002 no-labels invalid A: break A; ok 11003 no-labels invalid A: { if (foo()) { break A; } bar(); }; ok 11004 no-labels invalid A: if (a) { if (foo()) { break A; } bar(); }; ok 11005 no-labels invalid A: while (a) { break A; } ok 11006 no-labels invalid A: do { if (b) { break A; } } while (a); ok 11007 no-labels invalid A: for (var a in obj) { for (;;) { switch (a) { case 0: break A; } } } ok 11008 no-lone-blocks valid if (foo) { if (bar) { baz(); } } ok 11009 no-lone-blocks valid do { bar(); } while (foo) ok 11010 no-lone-blocks valid function foo() { while (bar) { baz() } } ok 11011 no-lone-blocks valid { let x = 1; } ok 11012 no-lone-blocks valid { const x = 1; } ok 11013 no-lone-blocks valid 'use strict'; { function bar() {} } ok 11014 no-lone-blocks valid { function bar() {} } ok 11015 no-lone-blocks valid { class Bar {} } ok 11016 no-lone-blocks valid { {let y = 1;} let x = 1; } ok 11017 no-lone-blocks valid \u000a switch (foo) {\u000a case bar: {\u000a baz;\u000a }\u000a }\u000a ok 11018 no-lone-blocks valid \u000a switch (foo) {\u000a case bar: {\u000a baz;\u000a }\u000a case qux: {\u000a boop;\u000a }\u000a }\u000a ok 11019 no-lone-blocks valid \u000a switch (foo) {\u000a case bar:\u000a {\u000a baz;\u000a }\u000a }\u000a ok 11020 no-lone-blocks valid function foo() { { const x = 4 } const x = 3 } ok 11021 no-lone-blocks invalid {} ok 11022 no-lone-blocks invalid {var x = 1;} ok 11023 no-lone-blocks invalid foo(); {} bar(); ok 11024 no-lone-blocks invalid if (foo) { bar(); {} baz(); } ok 11025 no-lone-blocks invalid { \u000a{ } } ok 11026 no-lone-blocks invalid function foo() { bar(); {} baz(); } ok 11027 no-lone-blocks invalid while (foo) { {} } ok 11028 no-lone-blocks invalid { function bar() {} } ok 11029 no-lone-blocks invalid {var x = 1;} ok 11030 no-lone-blocks invalid { \u000a{var x = 1;}\u000a let y = 2; } {let z = 1;} ok 11031 no-lone-blocks invalid { \u000a{let x = 1;}\u000a var y = 2; } {let z = 1;} ok 11032 no-lone-blocks invalid { \u000a{var x = 1;}\u000a var y = 2; }\u000a {var z = 1;} ok 11033 no-lone-blocks invalid \u000a switch (foo) {\u000a case 1:\u000a foo();\u000a {\u000a bar;\u000a }\u000a }\u000a ok 11034 no-lone-blocks invalid \u000a switch (foo) {\u000a case 1:\u000a {\u000a bar;\u000a }\u000a foo();\u000a }\u000a ok 11035 no-lone-blocks invalid \u000a function foo () {\u000a {\u000a const x = 4;\u000a }\u000a }\u000a ok 11036 no-lone-blocks invalid \u000a function foo () {\u000a {\u000a var x = 4;\u000a }\u000a }\u000a ok 11037 no-lonely-if valid if (a) {;} else if (b) {;} ok 11038 no-lonely-if valid if (a) {;} else { if (b) {;} ; } ok 11039 no-lonely-if invalid if (a) {;} else { if (b) {;} } ok 11040 no-lonely-if invalid if (a) {\u000a foo();\u000a} else {\u000a if (b) {\u000a bar();\u000a }\u000a} ok 11041 no-lonely-if invalid if (a) {\u000a foo();\u000a} else /* comment */ {\u000a if (b) {\u000a bar();\u000a }\u000a} ok 11042 no-lonely-if invalid if (a) {\u000a foo();\u000a} else {\u000a /* otherwise, do the other thing */ if (b) {\u000a bar();\u000a }\u000a} ok 11043 no-lonely-if invalid if (a) {\u000a foo();\u000a} else {\u000a if /* this comment is ok */ (b) {\u000a bar();\u000a }\u000a} ok 11044 no-lonely-if invalid if (a) {\u000a foo();\u000a} else {\u000a if (b) {\u000a bar();\u000a } /* this comment will prevent this test case from being autofixed. */\u000a} ok 11045 no-lonely-if invalid if (foo) {} else { if (bar) baz(); } ok 11046 no-lonely-if invalid if (foo) {} else { if (bar) baz() } qux(); ok 11047 no-lonely-if invalid if (foo) {} else { if (bar) baz(); } qux(); ok 11048 no-lonely-if invalid if (foo) {\u000a} else {\u000a if (bar) baz()\u000a}\u000a[1, 2, 3].forEach(foo); ok 11049 no-lonely-if invalid if (foo) {\u000a} else {\u000a if (bar) baz++\u000a}\u000afoo; ok 11050 no-lonely-if invalid if (foo) {\u000a} else {\u000a if (bar) baz++;\u000a}\u000afoo; ok 11051 no-lonely-if invalid if (a) {\u000a foo();\u000a} else {\u000a if (b) bar()\u000a}\u000a`template literal`; ok 11052 no-lonely-if invalid if (a) {\u000a foo();\u000a} else {\u000a if (b) {\u000a bar();\u000a } else if (c) {\u000a baz();\u000a } else {\u000a qux();\u000a }\u000a} ok 11053 no-loop-func valid string = 'function a() {}'; ok 11054 no-loop-func valid for (var i=0; i x != i)) { } } ok 11065 no-loop-func valid let a = 0; for (let i=0; i { (function() { a; }); }); } ok 11071 no-loop-func valid var a = 0; for (let i=0; i {\u000a result[letter] = score;\u000a });\u000a}\u000aresult.__default = 6; ok 11075 no-loop-func valid while (true) {\u000a (function() { a; });\u000a}\u000alet a; ok 11076 no-loop-func invalid for (var i=0; i { i; }) } ok 11081 no-loop-func invalid for (var i=0; i < l; i++) { var a = function() { i; } } ok 11082 no-loop-func invalid for (var i=0; i < l; i++) { function a() { i; }; a(); } ok 11083 no-loop-func invalid for (var i=0; (function() { i; })(), i { (function() { a; }); }); } a = 1; ok 11093 no-loop-func invalid for (var i = 0; i < 10; ++i) { for (let x in xs.filter(x => x != i)) { } } ok 11094 no-loop-func invalid for (let x of xs) { let a; for (let y of ys) { a = 1; (function() { a; }); } } ok 11095 no-loop-func invalid for (var x of xs) { for (let y of ys) { (function() { x; }); } } ok 11096 no-loop-func invalid for (var x of xs) { (function() { x; }); } ok 11097 no-loop-func invalid var a; for (let x of xs) { a = 1; (function() { a; }); } ok 11098 no-loop-func invalid var a; for (let x of xs) { (function() { a; }); a = 1; } ok 11099 no-loop-func invalid let a; function foo() { a = 10; } for (let x of xs) { (function() { a; }); } foo(); ok 11100 no-loop-func invalid let a; function foo() { a = 10; for (let x of xs) { (function() { a; }); } } foo(); ok 11101 no-magic-numbers valid var x = parseInt(y, 10); ok 11102 no-magic-numbers valid var x = parseInt(y, -10); ok 11103 no-magic-numbers valid var x = Number.parseInt(y, 10); ok 11104 no-magic-numbers valid const foo = 42; ok 11105 no-magic-numbers valid var foo = 42; ok 11106 no-magic-numbers valid var foo = -42; ok 11107 no-magic-numbers valid var foo = 0 + 1 - 2 + -2; ok 11108 no-magic-numbers valid var foo = 0 + 1 + 2 + 3 + 4; ok 11109 no-magic-numbers valid var foo = { bar:10 } ok 11110 no-magic-numbers valid setTimeout(function() {return 1;}, 0); ok 11111 no-magic-numbers valid var data = ['foo', 'bar', 'baz']; var third = data[3]; ok 11112 no-magic-numbers valid var a = ; ok 11113 no-magic-numbers valid var a =
; ok 11114 no-magic-numbers invalid var foo = 42 ok 11115 no-magic-numbers invalid var foo = 0 + 1; ok 11116 no-magic-numbers invalid a = a + 5; ok 11117 no-magic-numbers invalid a += 5; ok 11118 no-magic-numbers invalid var foo = 0 + 1 + -2 + 2; ok 11119 no-magic-numbers invalid var foo = 0 + 1 + 2; ok 11120 no-magic-numbers invalid var foo = { bar:10 } ok 11121 no-magic-numbers invalid console.log(0x1A + 0x02); console.log(071); ok 11122 no-magic-numbers invalid var stats = {avg: 42}; ok 11123 no-magic-numbers invalid var colors = {}; colors.RED = 2; colors.YELLOW = 3; colors.BLUE = 4 + 5; ok 11124 no-magic-numbers invalid function getSecondsInMinute() {return 60;} ok 11125 no-magic-numbers invalid function getNegativeSecondsInMinute() {return -60;} ok 11126 no-magic-numbers invalid var Promise = require('bluebird');\u000avar MINUTE = 60;\u000avar HOUR = 3600;\u000aconst DAY = 86400;\u000avar configObject = {\u000akey: 90,\u000aanother: 10 * 10,\u000a10: 'an "integer" key'\u000a};\u000afunction getSecondsInDay() {\u000a return 24 * HOUR;\u000a}\u000afunction getMillisecondsInDay() {\u000areturn (getSecondsInDay() *\u000a(1000)\u000a);\u000a}\u000afunction callSetTimeoutZero(func) {\u000asetTimeout(func, 0);\u000a}\u000afunction invokeInTen(func) {\u000asetTimeout(func, 10);\u000a}\u000a ok 11127 no-magic-numbers invalid var data = ['foo', 'bar', 'baz']; var third = data[3]; ok 11128 no-magic-numbers invalid var a =
; ok 11129 no-magic-numbers invalid var min, max, mean; min = 1; max = 10; mean = 4; ok 11130 no-misleading-character-class valid var r = /[👍]/u ok 11131 no-misleading-character-class valid var r = /[\uD83D\uDC4D]/u ok 11132 no-misleading-character-class valid var r = /[\u{1F44D}]/u ok 11133 no-misleading-character-class valid var r = /❇️/ ok 11134 no-misleading-character-class valid var r = /Á/ ok 11135 no-misleading-character-class valid var r = /[❇]/ ok 11136 no-misleading-character-class valid var r = /👶🏻/ ok 11137 no-misleading-character-class valid var r = /[👶]/u ok 11138 no-misleading-character-class valid var r = /🇯🇵/ ok 11139 no-misleading-character-class valid var r = /[JP]/ ok 11140 no-misleading-character-class valid var r = /👨‍👩‍👦/ ok 11141 no-misleading-character-class valid var r = /[\uD83D]/ ok 11142 no-misleading-character-class valid var r = /[\uDC4D]/ ok 11143 no-misleading-character-class valid var r = /[\uD83D]/u ok 11144 no-misleading-character-class valid var r = /[\uDC4D]/u ok 11145 no-misleading-character-class valid var r = /[\u0301]/ ok 11146 no-misleading-character-class valid var r = /[\uFE0F]/ ok 11147 no-misleading-character-class valid var r = /[\u0301]/u ok 11148 no-misleading-character-class valid var r = /[\uFE0F]/u ok 11149 no-misleading-character-class valid var r = /[\u{1F3FB}]/u ok 11150 no-misleading-character-class valid var r = /[🏻]/u ok 11151 no-misleading-character-class valid var r = /[🇯]/u ok 11152 no-misleading-character-class valid var r = /[🇵]/u ok 11153 no-misleading-character-class valid var r = /[\u200D]/ ok 11154 no-misleading-character-class valid var r = /[\u200D]/u ok 11155 no-misleading-character-class invalid var r = /[👍]/ ok 11156 no-misleading-character-class invalid var r = /[\uD83D\uDC4D]/ ok 11157 no-misleading-character-class invalid var r = /[Á]/ ok 11158 no-misleading-character-class invalid var r = /[Á]/u ok 11159 no-misleading-character-class invalid var r = /[\u0041\u0301]/ ok 11160 no-misleading-character-class invalid var r = /[\u0041\u0301]/u ok 11161 no-misleading-character-class invalid var r = /[\u{41}\u{301}]/u ok 11162 no-misleading-character-class invalid var r = /[❇️]/ ok 11163 no-misleading-character-class invalid var r = /[❇️]/u ok 11164 no-misleading-character-class invalid var r = /[\u2747\uFE0F]/ ok 11165 no-misleading-character-class invalid var r = /[\u2747\uFE0F]/u ok 11166 no-misleading-character-class invalid var r = /[\u{2747}\u{FE0F}]/u ok 11167 no-misleading-character-class invalid var r = /[👶🏻]/ ok 11168 no-misleading-character-class invalid var r = /[👶🏻]/u ok 11169 no-misleading-character-class invalid var r = /[\uD83D\uDC76\uD83C\uDFFB]/u ok 11170 no-misleading-character-class invalid var r = /[\u{1F476}\u{1F3FB}]/u ok 11171 no-misleading-character-class invalid var r = /[🇯🇵]/ ok 11172 no-misleading-character-class invalid var r = /[🇯🇵]/u ok 11173 no-misleading-character-class invalid var r = /[\uD83C\uDDEF\uD83C\uDDF5]/u ok 11174 no-misleading-character-class invalid var r = /[\u{1F1EF}\u{1F1F5}]/u ok 11175 no-misleading-character-class invalid var r = /[👨‍👩‍👦]/ ok 11176 no-misleading-character-class invalid var r = /[👨‍👩‍👦]/u ok 11177 no-misleading-character-class invalid var r = /[\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66]/u ok 11178 no-misleading-character-class invalid var r = /[\u{1F468}\u{200D}\u{1F469}\u{200D}\u{1F466}]/u ok 11179 no-misleading-character-class invalid var r = new RegExp("[👍]", "") ok 11180 no-misleading-character-class invalid var r = new RegExp("[\\uD83D\\uDC4D]", "") ok 11181 no-misleading-character-class invalid var r = new RegExp("[Á]", "") ok 11182 no-misleading-character-class invalid var r = new RegExp("[Á]", "u") ok 11183 no-misleading-character-class invalid var r = new RegExp("[\\u0041\\u0301]", "") ok 11184 no-misleading-character-class invalid var r = new RegExp("[\\u0041\\u0301]", "u") ok 11185 no-misleading-character-class invalid var r = new RegExp("[\\u{41}\\u{301}]", "u") ok 11186 no-misleading-character-class invalid var r = new RegExp("[❇️]", "") ok 11187 no-misleading-character-class invalid var r = new RegExp("[❇️]", "u") ok 11188 no-misleading-character-class invalid var r = new RegExp("[\\u2747\\uFE0F]", "") ok 11189 no-misleading-character-class invalid var r = new RegExp("[\\u2747\\uFE0F]", "u") ok 11190 no-misleading-character-class invalid var r = new RegExp("[\\u{2747}\\u{FE0F}]", "u") ok 11191 no-misleading-character-class invalid var r = new RegExp("[👶🏻]", "") ok 11192 no-misleading-character-class invalid var r = new RegExp("[👶🏻]", "u") ok 11193 no-misleading-character-class invalid var r = new RegExp("[\\uD83D\\uDC76\\uD83C\\uDFFB]", "u") ok 11194 no-misleading-character-class invalid var r = new RegExp("[\\u{1F476}\\u{1F3FB}]", "u") ok 11195 no-misleading-character-class invalid var r = new RegExp("[🇯🇵]", "") ok 11196 no-misleading-character-class invalid var r = new RegExp("[🇯🇵]", "u") ok 11197 no-misleading-character-class invalid var r = new RegExp("[\\uD83C\\uDDEF\\uD83C\\uDDF5]", "u") ok 11198 no-misleading-character-class invalid var r = new RegExp("[\\u{1F1EF}\\u{1F1F5}]", "u") ok 11199 no-misleading-character-class invalid var r = new RegExp("[👨‍👩‍👦]", "") ok 11200 no-misleading-character-class invalid var r = new RegExp("[👨‍👩‍👦]", "u") ok 11201 no-misleading-character-class invalid var r = new RegExp("[\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66]", "u") ok 11202 no-misleading-character-class invalid var r = new RegExp("[\\u{1F468}\\u{200D}\\u{1F469}\\u{200D}\\u{1F466}]", "u") ok 11203 no-mixed-operators valid a && b && c && d ok 11204 no-mixed-operators valid a || b || c || d ok 11205 no-mixed-operators valid (a || b) && c && d ok 11206 no-mixed-operators valid a || (b && c && d) ok 11207 no-mixed-operators valid (a || b || c) && d ok 11208 no-mixed-operators valid a || b || (c && d) ok 11209 no-mixed-operators valid a + b + c + d ok 11210 no-mixed-operators valid a * b * c * d ok 11211 no-mixed-operators valid a == 0 && b == 1 ok 11212 no-mixed-operators valid a == 0 || b == 1 ok 11213 no-mixed-operators valid (a == 0) && (b == 1) ok 11214 no-mixed-operators valid a + b - c * d / e ok 11215 no-mixed-operators valid a + b - c ok 11216 no-mixed-operators valid a * b / c ok 11217 no-mixed-operators valid a + b - c ok 11218 no-mixed-operators valid a * b / c ok 11219 no-mixed-operators valid (a || b) ? c : d ok 11220 no-mixed-operators valid a || (b ? c : d) ok 11221 no-mixed-operators valid a || (b ? c : d) ok 11222 no-mixed-operators valid (a || b) ? c : d ok 11223 no-mixed-operators valid a || b ? c : d ok 11224 no-mixed-operators invalid a && b || c ok 11225 no-mixed-operators invalid a && b > 0 || c ok 11226 no-mixed-operators invalid a && b > 0 || c ok 11227 no-mixed-operators invalid a && b + c - d / e || f ok 11228 no-mixed-operators invalid a && b + c - d / e || f ok 11229 no-mixed-operators invalid a + b - c ok 11230 no-mixed-operators invalid a * b / c ok 11231 no-mixed-operators invalid a || b ? c : d ok 11232 no-mixed-operators invalid a && b ? 1 : 2 ok 11233 no-mixed-operators invalid x ? a && b : 0 ok 11234 no-mixed-operators invalid x ? 0 : a && b ok 11235 no-mixed-requires valid var a, b = 42, c = doStuff() ok 11236 no-mixed-requires valid var a = require(42), b = require(), c = require('y'), d = require(doStuff()) ok 11237 no-mixed-requires valid var fs = require('fs'), foo = require('foo') ok 11238 no-mixed-requires valid var exec = require('child_process').exec, foo = require('foo') ok 11239 no-mixed-requires valid var fs = require('fs'), foo = require('./foo') ok 11240 no-mixed-requires valid var foo = require('foo'), foo2 = require('./foo') ok 11241 no-mixed-requires valid var emitter = require('events').EventEmitter, fs = require('fs') ok 11242 no-mixed-requires valid var foo = require(42), bar = require(getName()) ok 11243 no-mixed-requires valid var foo = require(42), bar = require(getName()) ok 11244 no-mixed-requires valid var fs = require('fs'), foo = require('./foo') ok 11245 no-mixed-requires valid var foo = require('foo'), bar = require(getName()) ok 11246 no-mixed-requires valid var a; ok 11247 no-mixed-requires valid var async = require('async'), debug = require('diagnostics')('my-module') ok 11248 no-mixed-requires invalid var fs = require('fs'), foo = 42 ok 11249 no-mixed-requires invalid var fs = require('fs'), foo ok 11250 no-mixed-requires invalid var a = require(42), b = require(), c = require('y'), d = require(doStuff()) ok 11251 no-mixed-requires invalid var fs = require('fs'), foo = require('foo') ok 11252 no-mixed-requires invalid var fs = require('fs'), foo = require('foo') ok 11253 no-mixed-requires invalid var exec = require('child_process').exec, foo = require('foo') ok 11254 no-mixed-requires invalid var fs = require('fs'), foo = require('./foo') ok 11255 no-mixed-requires invalid var foo = require('foo'), foo2 = require('./foo') ok 11256 no-mixed-requires invalid var foo = require('foo'), bar = require(getName()) ok 11257 no-mixed-requires invalid var async = require('async'), debug = require('diagnostics').someFun('my-module') ok 11258 no-mixed-spaces-and-tabs valid \u0009var x = 5; ok 11259 no-mixed-spaces-and-tabs valid var x = 5; ok 11260 no-mixed-spaces-and-tabs valid \u0009/*\u000a\u0009 * Hello\u000a\u0009 */ ok 11261 no-mixed-spaces-and-tabs valid // foo\u000a\u0009/**\u000a\u0009 * Hello\u000a\u0009 */ ok 11262 no-mixed-spaces-and-tabs valid /*\u000a\u000a \u0009 \u000a*/ ok 11263 no-mixed-spaces-and-tabs valid \u0009var x = 5,\u000a\u0009 y = 2; ok 11264 no-mixed-spaces-and-tabs valid /*\u000a\u0009 */`\u000a\u0009 `; ok 11265 no-mixed-spaces-and-tabs valid /*\u000a\u0009 */var a = `\u000a\u0009 `, b = `\u000a\u0009 `/*\u0009 \u000a\u0009 \u000a*/; ok 11266 no-mixed-spaces-and-tabs valid /*\u0009 `template inside comment` */ ok 11267 no-mixed-spaces-and-tabs valid var foo = `\u0009 /* comment inside template\u0009 */`; ok 11268 no-mixed-spaces-and-tabs valid `\u000a\u0009 `; ok 11269 no-mixed-spaces-and-tabs valid `\u000a\u0009 \u000a`; ok 11270 no-mixed-spaces-and-tabs valid `\u0009 `; ok 11271 no-mixed-spaces-and-tabs valid const foo = `${console}\u000a\u0009 foo`; ok 11272 no-mixed-spaces-and-tabs valid `\u0009 `;` \u0009` ok 11273 no-mixed-spaces-and-tabs valid `foo${ 5 }\u0009 `; ok 11274 no-mixed-spaces-and-tabs valid \u0009var x = 5,\u000a\u0009 y = 2; ok 11275 no-mixed-spaces-and-tabs invalid function add(x, y) {\u000a\u0009 return x + y;\u000a} ok 11276 no-mixed-spaces-and-tabs invalid \u0009 ;\u000a/*\u000a\u0009 * Hello\u000a\u0009 */ ok 11277 no-mixed-spaces-and-tabs invalid \u0009 var x = 5, y = 2, z = 5;\u000a\u000a\u0009 \u0009var j =\u0009 x + y;\u000az *= j; ok 11278 no-mixed-spaces-and-tabs invalid \u0009var x = 5,\u000a \u0009 y = 2; ok 11279 no-mixed-spaces-and-tabs invalid \u0009var x = 5,\u000a \u0009 y = 2; ok 11280 no-mixed-spaces-and-tabs invalid `foo${\u000a \u0009 5 }bar`; ok 11281 no-mixed-spaces-and-tabs invalid `foo${\u000a\u0009 5 }bar`; ok 11282 no-mutli-assign valid var a, b, c,\u000ad = 0; ok 11283 no-mutli-assign valid var a = 1; var b = 2; var c = 3;\u000avar d = 0; ok 11284 no-mutli-assign valid var a = 1 + (b === 10 ? 5 : 4); ok 11285 no-mutli-assign valid const a = 1, b = 2, c = 3; ok 11286 no-mutli-assign valid const a = 1;\u000aconst b = 2;\u000a const c = 3; ok 11287 no-mutli-assign valid for(var a = 0, b = 0;;){} ok 11288 no-mutli-assign valid for(let a = 0, b = 0;;){} ok 11289 no-mutli-assign valid for(const a = 0, b = 0;;){} ok 11290 no-mutli-assign valid export let a, b; ok 11291 no-mutli-assign valid export let a,\u000a b = 0; ok 11292 no-mutli-assign invalid var a = b = c; ok 11293 no-mutli-assign invalid var a = b = c = d; ok 11294 no-mutli-assign invalid let foo = bar = cee = 100; ok 11295 no-mutli-assign invalid a=b=c=d=e ok 11296 no-mutli-assign invalid a=b=c ok 11297 no-mutli-assign invalid a\u000a=b\u000a=c ok 11298 no-mutli-assign invalid var a = (b) = (((c))) ok 11299 no-mutli-assign invalid var a = ((b)) = (c) ok 11300 no-mutli-assign invalid var a = b = ( (c * 12) + 2) ok 11301 no-mutli-assign invalid var a =\u000a((b))\u000a = (c) ok 11302 no-mutli-assign invalid a = b = '=' + c + 'foo'; ok 11303 no-mutli-assign invalid a = b = 7 * 12 + 5; ok 11304 no-multi-spaces valid var a = 1; ok 11305 no-multi-spaces valid var a=1; ok 11306 no-multi-spaces valid var a = 1, b = 2; ok 11307 no-multi-spaces valid var arr = [1, 2]; ok 11308 no-multi-spaces valid var arr = [ (1), (2) ]; ok 11309 no-multi-spaces valid var obj = {'a': 1, 'b': (2)}; ok 11310 no-multi-spaces valid \u0009\u0009var x = 5,\u000a\u0009\u0009 y = 2; ok 11311 no-multi-spaces valid a, b ok 11312 no-multi-spaces valid a >>> b ok 11313 no-multi-spaces valid a ^ b ok 11314 no-multi-spaces valid (a) | (b) ok 11315 no-multi-spaces valid a & b ok 11316 no-multi-spaces valid a << b ok 11317 no-multi-spaces valid a !== b ok 11318 no-multi-spaces valid a >>>= b ok 11319 no-multi-spaces valid if (a & b) { } ok 11320 no-multi-spaces valid function foo(a,b) {} ok 11321 no-multi-spaces valid function foo(a, b) {} ok 11322 no-multi-spaces valid if ( a === 3 && b === 4) {} ok 11323 no-multi-spaces valid if ( a === 3||b === 4 ) {} ok 11324 no-multi-spaces valid if ( a <= 4) {} ok 11325 no-multi-spaces valid var foo = bar === 1 ? 2: 3 ok 11326 no-multi-spaces valid [1, , 3] ok 11327 no-multi-spaces valid [1, ] ok 11328 no-multi-spaces valid [ ( 1 ) , ( 2 ) ] ok 11329 no-multi-spaces valid a = 1, b = 2; ok 11330 no-multi-spaces valid (function(a, b){}) ok 11331 no-multi-spaces valid x.in = 0; ok 11332 no-multi-spaces valid (function(a,/* b, */c){}) ok 11333 no-multi-spaces valid (function(a,/*b,*/c){}) ok 11334 no-multi-spaces valid (function(a, /*b,*/c){}) ok 11335 no-multi-spaces valid (function(a,/*b,*/ c){}) ok 11336 no-multi-spaces valid (function(a, /*b,*/ c){}) ok 11337 no-multi-spaces valid (function(/*a, b, */c){}) ok 11338 no-multi-spaces valid (function(/*a, */b, c){}) ok 11339 no-multi-spaces valid (function(a, b/*, c*/){}) ok 11340 no-multi-spaces valid (function(a, b/*,c*/){}) ok 11341 no-multi-spaces valid (function(a, b /*,c*/){}) ok 11342 no-multi-spaces valid (function(a/*, b ,c*/){}) ok 11343 no-multi-spaces valid (function(a /*, b ,c*/){}) ok 11344 no-multi-spaces valid (function(a /*, b ,c*/){}) ok 11345 no-multi-spaces valid /**\u000a * hello\u000a * @param {foo} int hi\u000a * set.\u000a * @private\u000a*/ ok 11346 no-multi-spaces valid /**\u000a * hello\u000a * @param {foo} int hi\u000a * set.\u000a * set.\u000a * @private\u000a*/ ok 11347 no-multi-spaces valid var a,/* b,*/c; ok 11348 no-multi-spaces valid var foo = [1,/* 2,*/3]; ok 11349 no-multi-spaces valid var bar = {a: 1,/* b: 2*/c: 3}; ok 11350 no-multi-spaces valid var foo = "hello world"; ok 11351 no-multi-spaces valid function foo() {\u000a return;\u000a} ok 11352 no-multi-spaces valid function foo() {\u000a if (foo) {\u000a return;\u000a }\u000a} ok 11353 no-multi-spaces valid var foo = `hello world`; ok 11354 no-multi-spaces valid ({ a: b }) ok 11355 no-multi-spaces valid var answer = 6 * 7; ok 11356 no-multi-spaces valid var x = 5; // comment ok 11357 no-multi-spaces valid var x = 5; /* multiline\u000a * comment\u000a */ ok 11358 no-multi-spaces valid var x = 5;\u000a // comment ok 11359 no-multi-spaces valid var x = 5; \u000a// comment ok 11360 no-multi-spaces valid var x = 5;\u000a /* multiline\u000a * comment\u000a */ ok 11361 no-multi-spaces valid var x = 5; \u000a/* multiline\u000a * comment\u000a */ ok 11362 no-multi-spaces valid var x = 5; // comment ok 11363 no-multi-spaces valid var x = 5; /* multiline\u000a * comment\u000a */ ok 11364 no-multi-spaces valid var x = 5;\u000a // comment ok 11365 no-multi-spaces valid var x = 5; \u000a// comment ok 11366 no-multi-spaces valid var x = 5;\u000a /* multiline\u000a * comment\u000a */ ok 11367 no-multi-spaces valid var x = 5; \u000a/* multiline\u000a * comment\u000a */ ok 11368 no-multi-spaces valid var x = 5; // comment ok 11369 no-multi-spaces valid var x = 5; /* multiline\u000a * comment\u000a */ ok 11370 no-multi-spaces valid var x = 5;\u000a // comment ok 11371 no-multi-spaces valid var x = 5; \u000a// comment ok 11372 no-multi-spaces valid var x = 5;\u000a /* multiline\u000a * comment\u000a */ ok 11373 no-multi-spaces valid var x = 5; \u000a/* multiline\u000a * comment\u000a */ ok 11374 no-multi-spaces valid foo\u000a\u000c bar ok 11375 no-multi-spaces valid foo\u000a  bar ok 11376 no-multi-spaces valid foo\u000a \u000c bar ok 11377 no-multi-spaces valid aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ok 11378 no-multi-spaces valid foo\u0009\u0009+bar ok 11379 no-multi-spaces invalid function foo(a, b) {} ok 11380 no-multi-spaces invalid var foo = (a, b) => {} ok 11381 no-multi-spaces invalid var a = 1 ok 11382 no-multi-spaces invalid var a = 1, b = 2; ok 11383 no-multi-spaces invalid a << b ok 11384 no-multi-spaces invalid var arr = {'a': 1, 'b': 2}; ok 11385 no-multi-spaces invalid if (a & b) { } ok 11386 no-multi-spaces invalid if ( a === 3 && b === 4) {} ok 11387 no-multi-spaces invalid var foo = bar === 1 ? 2: 3 ok 11388 no-multi-spaces invalid var a = [1, 2, 3, 4] ok 11389 no-multi-spaces invalid var arr = [1, 2]; ok 11390 no-multi-spaces invalid [ , 1, , 3, , ] ok 11391 no-multi-spaces invalid a >>> b ok 11392 no-multi-spaces invalid a = 1, b = 2; ok 11393 no-multi-spaces invalid (function(a, b){}) ok 11394 no-multi-spaces invalid function foo(a, b){} ok 11395 no-multi-spaces invalid var o = { fetch: function () {} }; ok 11396 no-multi-spaces invalid function foo () {} ok 11397 no-multi-spaces invalid if (foo) {} ok 11398 no-multi-spaces invalid function foo(){} ok 11399 no-multi-spaces invalid if (foo) {} ok 11400 no-multi-spaces invalid try {} catch(ex) {} ok 11401 no-multi-spaces invalid try {} catch (ex) {} ok 11402 no-multi-spaces invalid throw error; ok 11403 no-multi-spaces invalid function foo() { return bar; } ok 11404 no-multi-spaces invalid switch (a) {default: foo(); break;} ok 11405 no-multi-spaces invalid var answer = 6 * 7; ok 11406 no-multi-spaces invalid ({ a: 6 * 7 }) ok 11407 no-multi-spaces invalid ({ a: b }) ok 11408 no-multi-spaces invalid var foo = { bar: function() { return 1 + 2; } }; ok 11409 no-multi-spaces invalid \u0009\u0009var x = 5,\u000a\u0009\u0009 y = 2; ok 11410 no-multi-spaces invalid var x =\u0009 5; ok 11411 no-multi-spaces invalid var x = /* comment */ 5; ok 11412 no-multi-spaces invalid var x = /* comment */ 5; ok 11413 no-multi-spaces invalid var x = 5; // comment ok 11414 no-multi-spaces invalid var x = 5; // comment\u000avar y = 6; ok 11415 no-multi-spaces invalid var x = 5; /* multiline\u000a * comment\u000a */ ok 11416 no-multi-spaces invalid var x = 5; /* multiline\u000a * comment\u000a */\u000avar y = 6; ok 11417 no-multi-spaces invalid var x = 5; // this is a long comment ok 11418 no-multi-spaces invalid var x = /* comment */ 5; ok 11419 no-multi-spaces invalid var x = /* comment */ 5; ok 11420 no-multi-spaces invalid var x = 5; // comment ok 11421 no-multi-spaces invalid var x = 5; // comment\u000avar y = 6; ok 11422 no-multi-spaces invalid var x = 5; /* multiline\u000a * comment\u000a */ ok 11423 no-multi-spaces invalid var x = 5; /* multiline\u000a * comment\u000a */\u000avar y = 6; ok 11424 no-multi-spaces invalid var x = 5; // this is a long comment ok 11425 no-multi-spaces invalid var x = /* comment */ 5; // EOL comment ok 11426 no-multi-spaces invalid var x = /* comment */ 5; // EOL comment\u000avar y = 6; ok 11427 no-multi-spaces invalid var x = /* comment */ 5; /* EOL comment */ ok 11428 no-multi-spaces invalid var x = /* comment */ 5; /* EOL comment */\u000avar y = 6; ok 11429 no-multi-spaces invalid var x = /*comment without spaces*/ 5; ok 11430 no-multi-spaces invalid var x = 5; //comment without spaces ok 11431 no-multi-spaces invalid var x = 5; /*comment without spaces*/ ok 11432 no-multi-spaces invalid var x = 5; /*comment\u000a without spaces*/ ok 11433 no-multi-spaces invalid foo\u000a\u000c bar + baz ok 11434 no-multi-str valid var a = 'Line 1 Line 2'; ok 11435 no-multi-str valid var a =
\u000a

Wat

\u000a
; ok 11436 no-multi-str invalid var x = 'Line 1 \\u000a Line 2' ok 11437 no-multi-str invalid test('Line 1 \\u000a Line 2'); ok 11438 no-multi-str invalid 'foo\\u000dbar'; ok 11439 no-multi-str invalid 'foo\
bar'; ok 11440 no-multi-str invalid 'foo\
ar'; ok 11441 no-multiple-empty-lines valid // valid 1\u000avar a = 5;\u000avar b = 3;\u000a\u000a ok 11442 no-multiple-empty-lines valid // valid 2\u000a\u000avar a = 5;\u000a\u000avar b = 3; ok 11443 no-multiple-empty-lines valid // valid 3\u000avar a = 5;\u000a\u000avar b = 3;\u000a\u000a\u000a ok 11444 no-multiple-empty-lines valid // valid 4\u000avar a = 5,\u000a b = 3; ok 11445 no-multiple-empty-lines valid // valid 5\u000avar a = 5;\u000a\u000a\u000a\u000a\u000avar b = 3;\u000a\u000a\u000a\u000a\u000a ok 11446 no-multiple-empty-lines valid // valid 6\u000avar a = 5;\u000a/* comment */\u000avar b = 5; ok 11447 no-multiple-empty-lines valid // valid 7\u000avar a = 5;\u000a ok 11448 no-multiple-empty-lines valid // valid 8\u000avar a = 5;\u000a ok 11449 no-multiple-empty-lines valid // valid 9\u000avar a = 1;\u000a\u000a ok 11450 no-multiple-empty-lines valid // valid 10\u000avar a = 5;\u000a ok 11451 no-multiple-empty-lines valid \u000a// valid 11\u000avar a = 1;\u000a ok 11452 no-multiple-empty-lines valid // valid 12\u000d\u000a// windows line endings\u000d\u000avar a = 5;\u000d\u000avar b = 3;\u000d\u000a\u000d\u000a ok 11453 no-multiple-empty-lines valid // valid 12\u000ax = `\u000a\u000a\u000a\u000ahi\u000a\u000a\u000a\u000a` ok 11454 no-multiple-empty-lines valid // valid 13\u000a`\u000a\u000a` ok 11455 no-multiple-empty-lines valid // valid 14\u000avar a = 5;`\u000a\u000a\u000a\u000a\u000a` ok 11456 no-multiple-empty-lines valid `\u000a\u000a\u000a\u000a\u000a`\u000a// valid 15\u000avar a = 5; ok 11457 no-multiple-empty-lines valid \u000a\u000a\u000a\u000a// valid 16\u000avar a = 5;\u000a ok 11458 no-multiple-empty-lines valid // valid 17\u000avar a = 5;\u000a\u000a ok 11459 no-multiple-empty-lines valid var a = 5; ok 11460 no-multiple-empty-lines invalid // invalid 1\u000avar a = 5;\u000a\u000a\u000avar b = 3; ok 11461 no-multiple-empty-lines invalid // invalid 2\u000a\u000a\u000a\u000a\u000avar a = 5; ok 11462 no-multiple-empty-lines invalid // invalid 3\u000avar a = 5;\u000a\u000a\u000a\u000a ok 11463 no-multiple-empty-lines invalid // invalid 4\u000avar a = 5;\u000a \u000a \u000a \u000a ok 11464 no-multiple-empty-lines invalid // invalid 5\u000avar a=5;\u000a\u000a\u000a\u000avar b = 3; ok 11465 no-multiple-empty-lines invalid // invalid 6\u000avar a=5;\u000a\u000a\u000a\u000avar b = 3;\u000a ok 11466 no-multiple-empty-lines invalid // invalid 7\u000avar a = 5;\u000a\u000a\u000a\u000ab = 3;\u000avar c = 5;\u000a\u000a\u000a\u000avar d = 3; ok 11467 no-multiple-empty-lines invalid // invalid 8\u000avar a = 5;\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000ab = 3; ok 11468 no-multiple-empty-lines invalid // invalid 9\u000avar a=5;\u000a\u000a\u000a\u000a\u000a ok 11469 no-multiple-empty-lines invalid // invalid 10\u000avar a = 5;\u000a\u000avar b = 3; ok 11470 no-multiple-empty-lines invalid // invalid 11\u000avar a = 5;\u000a\u000a\u000a ok 11471 no-multiple-empty-lines invalid // invalid 12\u000avar a = 5;\u000a\u000a\u000a\u000a\u000a\u000a ok 11472 no-multiple-empty-lines invalid // invalid 13\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000avar a = 5;\u000a\u000a\u000a ok 11473 no-multiple-empty-lines invalid // invalid 14\u000avar a = 5;\u000a\u000a ok 11474 no-multiple-empty-lines invalid \u000a\u000a// invalid 15\u000avar a = 5;\u000a ok 11475 no-multiple-empty-lines invalid \u000a\u000a\u000a\u000a\u000a// invalid 16\u000avar a = 5;\u000a ok 11476 no-multiple-empty-lines invalid \u000a\u000a// invalid 17\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000a\u000avar a = 5;\u000a ok 11477 no-multiple-empty-lines invalid \u000a// invalid 18\u000avar a = 5;\u000a ok 11478 no-multiple-empty-lines invalid \u000a\u000a\u000a// invalid 19\u000avar a = 5;\u000a\u000a ok 11479 no-multiple-empty-lines invalid // invalid 20\u000d\u000a// windows line endings\u000d\u000avar a = 5;\u000d\u000avar b = 3;\u000d\u000a\u000d\u000a\u000d\u000a ok 11480 no-multiple-empty-lines invalid // invalid 21\u000a// unix line endings\u000avar a = 5;\u000avar b = 3;\u000a\u000a\u000a ok 11481 no-multiple-empty-lines invalid 'foo';\u000a\u000a\u000a`bar`;\u000a`baz`; ok 11482 no-multiple-empty-lines invalid `template ${foo\u000a\u000a\u000a} literal`; ok 11483 no-multiple-empty-lines invalid a\u000a\u000a\u000a\u000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ok 11484 no-multiple-empty-lines invalid foo\u000a ok 11485 no-native-reassign valid string = 'hello world'; ok 11486 no-native-reassign valid var string; ok 11487 no-native-reassign valid Object = 0; ok 11488 no-native-reassign valid top = 0; ok 11489 no-native-reassign valid onload = 0; ok 11490 no-native-reassign valid require = 0; ok 11491 no-native-reassign valid a = 1 ok 11492 no-native-reassign valid /*global a:true*/ a = 1 ok 11493 no-native-reassign invalid String = 'hello world'; ok 11494 no-native-reassign invalid String++; ok 11495 no-native-reassign invalid ({Object = 0, String = 0} = {}); ok 11496 no-native-reassign invalid top = 0; ok 11497 no-native-reassign invalid require = 0; ok 11498 no-native-reassign invalid /*global b:false*/ function f() { b = 1; } ok 11499 no-native-reassign invalid function f() { b = 1; } ok 11500 no-native-reassign invalid /*global b:false*/ function f() { b++; } ok 11501 no-native-reassign invalid /*global b*/ b = 1; ok 11502 no-native-reassign invalid Array = 1; ok 11503 no-negated-condition valid if (a) {} ok 11504 no-negated-condition valid if (a) {} else {} ok 11505 no-negated-condition valid if (!a) {} ok 11506 no-negated-condition valid if (!a) {} else if (b) {} ok 11507 no-negated-condition valid if (!a) {} else if (b) {} else {} ok 11508 no-negated-condition valid if (a == b) {} ok 11509 no-negated-condition valid if (a == b) {} else {} ok 11510 no-negated-condition valid if (a != b) {} ok 11511 no-negated-condition valid if (a != b) {} else if (b) {} ok 11512 no-negated-condition valid if (a != b) {} else if (b) {} else {} ok 11513 no-negated-condition valid if (a !== b) {} ok 11514 no-negated-condition valid if (a === b) {} else {} ok 11515 no-negated-condition valid a ? b : c ok 11516 no-negated-condition invalid if (!a) {;} else {;} ok 11517 no-negated-condition invalid if (a != b) {;} else {;} ok 11518 no-negated-condition invalid if (a !== b) {;} else {;} ok 11519 no-negated-condition invalid !a ? b : c ok 11520 no-negated-condition invalid a != b ? c : d ok 11521 no-negated-condition invalid a !== b ? c : d ok 11522 no-negated-in-lhs valid a in b ok 11523 no-negated-in-lhs valid !(a in b) ok 11524 no-negated-in-lhs invalid !a in b ok 11525 no-nested-ternary valid foo ? doBar() : doBaz(); ok 11526 no-nested-ternary valid var foo = bar === baz ? qux : quxx; ok 11527 no-nested-ternary invalid foo ? bar : baz === qux ? quxx : foobar; ok 11528 no-nested-ternary invalid foo ? baz === qux ? quxx : foobar : bar; ok 11529 no-new-func valid var a = new _function("b", "c", "return b+c"); ok 11530 no-new-func valid var a = _function("b", "c", "return b+c"); ok 11531 no-new-func invalid var a = new Function("b", "c", "return b+c"); ok 11532 no-new-func invalid var a = Function("b", "c", "return b+c"); ok 11533 no-new-object valid var foo = new foo.Object() ok 11534 no-new-object invalid var foo = new Object() ok 11535 no-new-require valid var appHeader = require('app-header') ok 11536 no-new-require valid var AppHeader = new (require('app-header')) ok 11537 no-new-require valid var AppHeader = new (require('headers').appHeader) ok 11538 no-new-require invalid var appHeader = new require('app-header') ok 11539 no-new-require invalid var appHeader = new require('headers').appHeader ok 11540 no-new-symbol valid var foo = Symbol('foo'); ok 11541 no-new-symbol valid function bar(Symbol) { var baz = new Symbol('baz');} ok 11542 no-new-symbol valid function Symbol() {} new Symbol(); ok 11543 no-new-symbol invalid var foo = new Symbol('foo'); ok 11544 no-new-symbol invalid function bar() { return function Symbol() {}; } var baz = new Symbol('baz'); ok 11545 no-new-wrappers valid var a = new Object(); ok 11546 no-new-wrappers valid var a = String('test'), b = String.fromCharCode(32); ok 11547 no-new-wrappers invalid var a = new String('hello'); ok 11548 no-new-wrappers invalid var a = new Number(10); ok 11549 no-new-wrappers invalid var a = new Boolean(false); ok 11550 no-new-wrappers invalid var a = new Math(); ok 11551 no-new-wrappers invalid var a = new JSON({ myProp: 10 }); ok 11552 no-new valid var a = new Date() ok 11553 no-new valid var a; if (a === new Date()) { a = false; } ok 11554 no-new invalid new Date() ok 11555 no-obj-calls valid var x = Math; ok 11556 no-obj-calls valid var x = Math.random(); ok 11557 no-obj-calls valid var x = Math.PI; ok 11558 no-obj-calls valid var x = foo.Math(); ok 11559 no-obj-calls valid JSON.parse(foo) ok 11560 no-obj-calls valid Reflect.get(foo, 'x') ok 11561 no-obj-calls valid Atomics.load(foo, 0) ok 11562 no-obj-calls valid /*globals Math: off*/ Math(); ok 11563 no-obj-calls valid JSON(); ok 11564 no-obj-calls valid Reflect(); ok 11565 no-obj-calls valid Atomics(); ok 11566 no-obj-calls valid Atomics(); ok 11567 no-obj-calls valid var Math; Math(); ok 11568 no-obj-calls valid let JSON; JSON(); ok 11569 no-obj-calls valid if (foo) { const Reflect = 1; Reflect(); } ok 11570 no-obj-calls valid function foo(Math) { Math(); } ok 11571 no-obj-calls valid function foo(Atomics) { Atomics(); } ok 11572 no-obj-calls valid function foo() { var JSON; JSON(); } ok 11573 no-obj-calls valid function foo() { var Atomics = bar(); var baz = Atomics(5); } ok 11574 no-obj-calls invalid Math(); ok 11575 no-obj-calls invalid var x = Math(); ok 11576 no-obj-calls invalid f(Math()); ok 11577 no-obj-calls invalid Math().foo; ok 11578 no-obj-calls invalid var x = JSON(); ok 11579 no-obj-calls invalid x = JSON(str); ok 11580 no-obj-calls invalid Math( JSON() ); ok 11581 no-obj-calls invalid var x = Reflect(); ok 11582 no-obj-calls invalid var x = Reflect(); ok 11583 no-obj-calls invalid /*globals Reflect: true*/ Reflect(); ok 11584 no-obj-calls invalid var x = Atomics(); ok 11585 no-obj-calls invalid var x = Atomics(); ok 11586 no-obj-calls invalid var x = Atomics(); ok 11587 no-octal-escape valid var foo = "\x51"; ok 11588 no-octal-escape valid var foo = "foo \\251 bar"; ok 11589 no-octal-escape valid var foo = /([abc]) \1/g; ok 11590 no-octal-escape valid var foo = '\0'; ok 11591 no-octal-escape valid '\0 ' ok 11592 no-octal-escape valid '\0a' ok 11593 no-octal-escape valid '\\1' ok 11594 no-octal-escape valid '\\01' ok 11595 no-octal-escape valid '\08' ok 11596 no-octal-escape valid '\09' ok 11597 no-octal-escape invalid var foo = "foo \01 bar"; ok 11598 no-octal-escape invalid var foo = "foo \251 bar"; ok 11599 no-octal-escape invalid var foo = "\751"; ok 11600 no-octal-escape invalid var foo = "\3s51"; ok 11601 no-octal-escape invalid var foo = "\\\751"; ok 11602 no-octal-escape invalid '\0\1' ok 11603 no-octal-escape invalid '\0 \1' ok 11604 no-octal-escape invalid '\0\01' ok 11605 no-octal-escape invalid '\0 \01' ok 11606 no-octal-escape invalid '\08\1' ok 11607 no-octal-escape invalid '\08\01' ok 11608 no-octal-escape invalid '\01\02' ok 11609 no-octal-escape invalid '\02\01' ok 11610 no-octal-escape invalid '\01\2' ok 11611 no-octal-escape invalid '\2\01' ok 11612 no-octal valid var a = 'hello world'; ok 11613 no-octal valid 0x1234 ok 11614 no-octal valid 0X5; ok 11615 no-octal valid a = 0; ok 11616 no-octal valid 0.1 ok 11617 no-octal valid 0.5e1 ok 11618 no-octal invalid var a = 01234; ok 11619 no-octal invalid a = 1 + 01234; ok 11620 no-octal invalid 00 ok 11621 no-octal invalid 08 ok 11622 no-octal invalid 09.1 ok 11623 no-octal invalid 09e1 ok 11624 no-octal invalid 09.1e1 ok 11625 no-octal invalid 018 ok 11626 no-octal invalid 019.1 ok 11627 no-octal invalid 019e1 ok 11628 no-octal invalid 019.1e1 ok 11629 no-param-reassign valid function foo(a) { var b = a; } ok 11630 no-param-reassign valid function foo(a) { for (b in a); } ok 11631 no-param-reassign valid function foo(a) { for (b of a); } ok 11632 no-param-reassign valid function foo(a) { a.prop = 'value'; } ok 11633 no-param-reassign valid function foo(a) { for (a.prop in obj); } ok 11634 no-param-reassign valid function foo(a) { for (a.prop of arr); } ok 11635 no-param-reassign valid function foo(a) { (function() { var a = 12; a++; })(); } ok 11636 no-param-reassign valid function foo() { someGlobal = 13; } ok 11637 no-param-reassign valid function foo() { someGlobal = 13; } ok 11638 no-param-reassign valid function foo(a) { a.b = 0; } ok 11639 no-param-reassign valid function foo(a) { delete a.b; } ok 11640 no-param-reassign valid function foo(a) { ++a.b; } ok 11641 no-param-reassign valid function foo(a) { [a.b] = []; } ok 11642 no-param-reassign valid function foo(a) { bar(a.b).c = 0; } ok 11643 no-param-reassign valid function foo(a) { data[a.b] = 0; } ok 11644 no-param-reassign valid function foo(a) { +a.b; } ok 11645 no-param-reassign valid function foo(a) { (a ? [] : [])[0] = 1; } ok 11646 no-param-reassign valid function foo(a) { (a.b ? [] : [])[0] = 1; } ok 11647 no-param-reassign valid function foo(a) { a.b = 0; } ok 11648 no-param-reassign valid function foo(a) { ++a.b; } ok 11649 no-param-reassign valid function foo(a) { delete a.b; } ok 11650 no-param-reassign valid function foo(a) { for (a.b in obj); } ok 11651 no-param-reassign valid function foo(a) { for (a.b of arr); } ok 11652 no-param-reassign valid function foo(a, z) { a.b = 0; x.y = 0; } ok 11653 no-param-reassign valid function foo(a) { a.b.c = 0;} ok 11654 no-param-reassign valid function foo(a) { ({ [a]: variable } = value) } ok 11655 no-param-reassign valid function foo(a) { ([...a.b] = obj); } ok 11656 no-param-reassign valid function foo(a) { ({...a.b} = obj); } ok 11657 no-param-reassign valid function foo(a) { for (obj[a.b] in obj); } ok 11658 no-param-reassign valid function foo(a) { for (obj[a.b] of arr); } ok 11659 no-param-reassign valid function foo(a) { for (bar in a.b); } ok 11660 no-param-reassign valid function foo(a) { for (bar of a.b); } ok 11661 no-param-reassign valid function foo(a) { for (bar in baz) a.b; } ok 11662 no-param-reassign valid function foo(a) { for (bar of baz) a.b; } ok 11663 no-param-reassign invalid function foo(bar) { bar = 13; } ok 11664 no-param-reassign invalid function foo(bar) { bar += 13; } ok 11665 no-param-reassign invalid function foo(bar) { (function() { bar = 13; })(); } ok 11666 no-param-reassign invalid function foo(bar) { ++bar; } ok 11667 no-param-reassign invalid function foo(bar) { bar++; } ok 11668 no-param-reassign invalid function foo(bar) { --bar; } ok 11669 no-param-reassign invalid function foo(bar) { bar--; } ok 11670 no-param-reassign invalid function foo({bar}) { bar = 13; } ok 11671 no-param-reassign invalid function foo([, {bar}]) { bar = 13; } ok 11672 no-param-reassign invalid function foo(bar) { ({bar} = {}); } ok 11673 no-param-reassign invalid function foo(bar) { ({x: [, bar = 0]} = {}); } ok 11674 no-param-reassign invalid function foo(bar) { for (bar in baz); } ok 11675 no-param-reassign invalid function foo(bar) { for (bar of baz); } ok 11676 no-param-reassign invalid function foo(bar) { bar.a = 0; } ok 11677 no-param-reassign invalid function foo(bar) { bar.get(0).a = 0; } ok 11678 no-param-reassign invalid function foo(bar) { delete bar.a; } ok 11679 no-param-reassign invalid function foo(bar) { ++bar.a; } ok 11680 no-param-reassign invalid function foo(bar) { for (bar.a in {}); } ok 11681 no-param-reassign invalid function foo(bar) { for (bar.a of []); } ok 11682 no-param-reassign invalid function foo(bar) { (bar ? bar : [])[0] = 1; } ok 11683 no-param-reassign invalid function foo(bar) { [bar.a] = []; } ok 11684 no-param-reassign invalid function foo(bar) { [bar.a] = []; } ok 11685 no-param-reassign invalid function foo(bar) { ({foo: bar.a} = {}); } ok 11686 no-param-reassign invalid function foo(a) { ({a} = obj); } ok 11687 no-param-reassign invalid function foo(a) { ([...a] = obj); } ok 11688 no-param-reassign invalid function foo(a) { ({...a} = obj); } ok 11689 no-param-reassign invalid function foo(a) { ([...a.b] = obj); } ok 11690 no-param-reassign invalid function foo(a) { ({...a.b} = obj); } ok 11691 no-param-reassign invalid function foo(a) { for ({bar: a.b} in {}); } ok 11692 no-param-reassign invalid function foo(a) { for ([a.b] of []); } ok 11693 no-path-concat valid var fullPath = dirname + "foo.js"; ok 11694 no-path-concat valid var fullPath = __dirname == "foo.js"; ok 11695 no-path-concat valid if (fullPath === __dirname) {} ok 11696 no-path-concat valid if (__dirname === fullPath) {} ok 11697 no-path-concat invalid var fullPath = __dirname + "/foo.js"; ok 11698 no-path-concat invalid var fullPath = __filename + "/foo.js"; ok 11699 no-path-concat invalid var fullPath = "/foo.js" + __filename; ok 11700 no-path-concat invalid var fullPath = "/foo.js" + __dirname; ok 11701 no-plusplus valid var foo = 0; foo=+1; ok 11702 no-plusplus valid var foo = 0; foo=+1; ok 11703 no-plusplus valid for (i = 0; i < l; i++) { console.log(i); } ok 11704 no-plusplus invalid var foo = 0; foo++; ok 11705 no-plusplus invalid var foo = 0; foo--; ok 11706 no-plusplus invalid for (i = 0; i < l; i++) { console.log(i); } ok 11707 no-plusplus invalid var foo = 0; foo++; ok 11708 no-plusplus invalid for (i = 0; i < l; i++) { v++; } ok 11709 no-process-env valid Process.env ok 11710 no-process-env valid process[env] ok 11711 no-process-env valid process.nextTick ok 11712 no-process-env valid process.execArgv ok 11713 no-process-env invalid process.env ok 11714 no-process-env invalid process.env.ENV ok 11715 no-process-env invalid f(process.env) ok 11716 no-process-exit valid Process.exit() ok 11717 no-process-exit valid var exit = process.exit; ok 11718 no-process-exit valid f(process.exit) ok 11719 no-process-exit invalid process.exit(0); ok 11720 no-process-exit invalid process.exit(1); ok 11721 no-process-exit invalid f(process.exit(1)); ok 11722 no-proto valid var a = test[__proto__]; ok 11723 no-proto valid var __proto__ = null; ok 11724 no-proto invalid var a = test.__proto__; ok 11725 no-proto invalid var a = test['__proto__']; ok 11726 no-prototype-builtins valid Object.prototype.hasOwnProperty.call(foo, 'bar') ok 11727 no-prototype-builtins valid Object.prototype.isPrototypeOf.call(foo, 'bar') ok 11728 no-prototype-builtins valid Object.prototype.propertyIsEnumerable.call(foo, 'bar') ok 11729 no-prototype-builtins valid Object.prototype.hasOwnProperty.apply(foo, ['bar']) ok 11730 no-prototype-builtins valid Object.prototype.isPrototypeOf.apply(foo, ['bar']) ok 11731 no-prototype-builtins valid Object.prototype.propertyIsEnumerable.apply(foo, ['bar']) ok 11732 no-prototype-builtins valid hasOwnProperty(foo, 'bar') ok 11733 no-prototype-builtins valid isPrototypeOf(foo, 'bar') ok 11734 no-prototype-builtins valid propertyIsEnumerable(foo, 'bar') ok 11735 no-prototype-builtins valid ({}.hasOwnProperty.call(foo, 'bar')) ok 11736 no-prototype-builtins valid ({}.isPrototypeOf.call(foo, 'bar')) ok 11737 no-prototype-builtins valid ({}.propertyIsEnumerable.call(foo, 'bar')) ok 11738 no-prototype-builtins valid ({}.hasOwnProperty.apply(foo, ['bar'])) ok 11739 no-prototype-builtins valid ({}.isPrototypeOf.apply(foo, ['bar'])) ok 11740 no-prototype-builtins valid ({}.propertyIsEnumerable.apply(foo, ['bar'])) ok 11741 no-prototype-builtins invalid foo.hasOwnProperty('bar') ok 11742 no-prototype-builtins invalid foo.isPrototypeOf('bar') ok 11743 no-prototype-builtins invalid foo.propertyIsEnumerable('bar') ok 11744 no-prototype-builtins invalid foo.bar.hasOwnProperty('bar') ok 11745 no-prototype-builtins invalid foo.bar.baz.isPrototypeOf('bar') ok 11746 no-redeclare valid var a = 3; var b = function() { var a = 10; }; ok 11747 no-redeclare valid var a = 3; a = 10; ok 11748 no-redeclare valid if (true) {\u000a let b = 2;\u000a} else { \u000alet b = 3;\u000a} ok 11749 no-redeclare valid var Object = 0; ok 11750 no-redeclare valid var Object = 0; ok 11751 no-redeclare valid var Object = 0; ok 11752 no-redeclare valid var top = 0; ok 11753 no-redeclare valid var top = 0; ok 11754 no-redeclare valid var top = 0; ok 11755 no-redeclare valid var self = 1 ok 11756 no-redeclare valid /*globals Array */ ok 11757 no-redeclare valid /*globals a */ ok 11758 no-redeclare valid /*globals a */ ok 11759 no-redeclare valid /*globals a:off */ ok 11760 no-redeclare valid /*globals a */ ok 11761 no-redeclare invalid var a = 3; var a = 10; ok 11762 no-redeclare invalid switch(foo) { case a: var b = 3;\u000acase b: var b = 4} ok 11763 no-redeclare invalid var a = 3; var a = 10; ok 11764 no-redeclare invalid var a = {}; var a = []; ok 11765 no-redeclare invalid var a; function a() {} ok 11766 no-redeclare invalid function a() {} function a() {} ok 11767 no-redeclare invalid var a = function() { }; var a = function() { } ok 11768 no-redeclare invalid var a = function() { }; var a = new Date(); ok 11769 no-redeclare invalid var a = 3; var a = 10; var a = 15; ok 11770 no-redeclare invalid var a; var a; ok 11771 no-redeclare invalid export var a; var a; ok 11772 no-redeclare invalid var Object = 0; ok 11773 no-redeclare invalid var top = 0; ok 11774 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 11775 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 11776 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 11777 no-redeclare invalid var a; var {a = 0, b: Object = 0} = {}; ok 11778 no-redeclare invalid /*global b:false*/ var b = 1; ok 11779 no-redeclare invalid /*global b:true*/ var b = 1; ok 11780 no-redeclare invalid function f() { var a; var a; } ok 11781 no-redeclare invalid function f(a) { var a; } ok 11782 no-redeclare invalid function f() { var a; if (test) { var a; } } ok 11783 no-redeclare invalid for (var a, a;;); ok 11784 no-redeclare invalid var Object = 0; ok 11785 no-redeclare invalid var top = 0; ok 11786 no-redeclare invalid /*globals Array */ ok 11787 no-redeclare invalid /*globals a */ ok 11788 no-redeclare invalid /*globals a */ ok 11789 no-redeclare invalid /*globals a */ /*globals a */ ok 11790 no-redeclare invalid /*globals a */ /*globals a */ var a = 0 ok 11791 no-regex-spaces valid var foo = /bar {3}baz/; ok 11792 no-regex-spaces valid var foo = RegExp('bar {3}baz') ok 11793 no-regex-spaces valid var foo = new RegExp('bar {3}baz') ok 11794 no-regex-spaces valid var foo = /bar\u0009\u0009\u0009baz/; ok 11795 no-regex-spaces valid var foo = RegExp('bar\u0009\u0009\u0009baz'); ok 11796 no-regex-spaces valid var foo = new RegExp('bar\u0009\u0009\u0009baz'); ok 11797 no-regex-spaces valid var RegExp = function() {}; var foo = new RegExp('bar baz'); ok 11798 no-regex-spaces valid var RegExp = function() {}; var foo = RegExp('bar baz'); ok 11799 no-regex-spaces valid var foo = / +/; ok 11800 no-regex-spaces invalid var foo = /bar baz/; ok 11801 no-regex-spaces invalid var foo = RegExp('bar baz'); ok 11802 no-regex-spaces invalid var foo = new RegExp('bar baz'); ok 11803 no-regex-spaces invalid { let RegExp = function() {}; } var foo = RegExp('bar baz'); ok 11804 no-regex-spaces invalid var foo = /bar ?baz/; ok 11805 no-regex-spaces invalid var foo = new RegExp('bar '); ok 11806 no-restricted-globals valid foo ok 11807 no-restricted-globals valid foo ok 11808 no-restricted-globals valid var foo = 1; ok 11809 no-restricted-globals valid event ok 11810 no-restricted-globals valid import foo from 'bar'; ok 11811 no-restricted-globals valid function foo() {} ok 11812 no-restricted-globals valid function fn() { var foo; } ok 11813 no-restricted-globals valid foo.bar ok 11814 no-restricted-globals valid foo ok 11815 no-restricted-globals invalid foo ok 11816 no-restricted-globals invalid function fn() { foo; } ok 11817 no-restricted-globals invalid function fn() { foo; } ok 11818 no-restricted-globals invalid event ok 11819 no-restricted-globals invalid foo ok 11820 no-restricted-globals invalid foo() ok 11821 no-restricted-globals invalid foo.bar() ok 11822 no-restricted-globals invalid foo ok 11823 no-restricted-globals invalid function fn() { foo; } ok 11824 no-restricted-globals invalid function fn() { foo; } ok 11825 no-restricted-globals invalid event ok 11826 no-restricted-globals invalid foo ok 11827 no-restricted-globals invalid foo() ok 11828 no-restricted-globals invalid foo.bar() ok 11829 no-restricted-globals invalid foo ok 11830 no-restricted-globals invalid function fn() { foo; } ok 11831 no-restricted-globals invalid function fn() { foo; } ok 11832 no-restricted-globals invalid event ok 11833 no-restricted-globals invalid foo ok 11834 no-restricted-globals invalid foo() ok 11835 no-restricted-globals invalid foo.bar() ok 11836 no-restricted-globals invalid var foo = obj => hasOwnProperty(obj, 'name'); ok 11837 no-restricted-imports valid import os from "os"; ok 11838 no-restricted-imports valid import os from "os"; ok 11839 no-restricted-imports valid import fs from "fs"; ok 11840 no-restricted-imports valid import path from "path"; ok 11841 no-restricted-imports valid import async from "async"; ok 11842 no-restricted-imports valid import "foo" ok 11843 no-restricted-imports valid import "foo/bar"; ok 11844 no-restricted-imports valid import withPaths from "foo/bar"; ok 11845 no-restricted-imports valid import withPatterns from "foo/bar"; ok 11846 no-restricted-imports valid import withPatternsAndPaths from "foo/bar"; ok 11847 no-restricted-imports valid import withGitignores from "foo/bar"; ok 11848 no-restricted-imports valid import withPatterns from "foo/bar"; ok 11849 no-restricted-imports valid import withPatternsCaseSensitive from 'foo'; ok 11850 no-restricted-imports valid import AllowedObject from "foo"; ok 11851 no-restricted-imports valid import DisallowedObject from "foo"; ok 11852 no-restricted-imports valid import * as DisallowedObject from "foo"; ok 11853 no-restricted-imports valid import { AllowedObject } from "foo"; ok 11854 no-restricted-imports valid import { DisallowedObject } from "foo"; ok 11855 no-restricted-imports valid import { AllowedObject as DisallowedObject } from "foo"; ok 11856 no-restricted-imports valid import { AllowedObject, AllowedObjectTwo } from "foo"; ok 11857 no-restricted-imports valid import { AllowedObject, AllowedObjectTwo as DisallowedObject } from "foo"; ok 11858 no-restricted-imports valid import AllowedObjectThree, { AllowedObject as AllowedObjectTwo } from "foo"; ok 11859 no-restricted-imports valid import AllowedObject, { AllowedObjectTwo as DisallowedObject } from "foo"; ok 11860 no-restricted-imports valid import AllowedObject, { AllowedObjectTwo as DisallowedObject } from "foo"; ok 11861 no-restricted-imports valid import AllowedObject, * as DisallowedObject from "foo"; ok 11862 no-restricted-imports valid import "foo"; ok 11863 no-restricted-imports valid import {\u000aAllowedObject,\u000aDisallowedObject, // eslint-disable-line\u000a} from "foo"; ok 11864 no-restricted-imports valid export * from "foo"; ok 11865 no-restricted-imports valid export * from "foo"; ok 11866 no-restricted-imports invalid import "fs" ok 11867 no-restricted-imports invalid import os from "os "; ok 11868 no-restricted-imports invalid import "foo/bar"; ok 11869 no-restricted-imports invalid import withPaths from "foo/bar"; ok 11870 no-restricted-imports invalid import withPatterns from "foo/bar"; ok 11871 no-restricted-imports invalid import withPatterns from "foo/bar"; ok 11872 no-restricted-imports invalid import withPatterns from "foo/baz"; ok 11873 no-restricted-imports invalid import withPatterns from "foo/baz"; ok 11874 no-restricted-imports invalid import withPatterns from "foo/bar"; ok 11875 no-restricted-imports invalid import withPatternsCaseInsensitive from 'foo'; ok 11876 no-restricted-imports invalid import withGitignores from "foo/bar"; ok 11877 no-restricted-imports invalid export * from "fs"; ok 11878 no-restricted-imports invalid export {a} from "fs"; ok 11879 no-restricted-imports invalid export {foo as b} from "fs"; ok 11880 no-restricted-imports invalid import withGitignores from "foo"; ok 11881 no-restricted-imports invalid import withGitignores from "bar"; ok 11882 no-restricted-imports invalid import withGitignores from "foo"; ok 11883 no-restricted-imports invalid import DisallowedObject from "foo"; ok 11884 no-restricted-imports invalid import * as All from "foo"; ok 11885 no-restricted-imports invalid export * from "foo"; ok 11886 no-restricted-imports invalid export * from "foo"; ok 11887 no-restricted-imports invalid import { DisallowedObject } from "foo"; ok 11888 no-restricted-imports invalid import { DisallowedObject as AllowedObject } from "foo"; ok 11889 no-restricted-imports invalid import { AllowedObject, DisallowedObject } from "foo"; ok 11890 no-restricted-imports invalid import { AllowedObject, DisallowedObject as AllowedObjectTwo } from "foo"; ok 11891 no-restricted-imports invalid import { AllowedObject, DisallowedObject as AllowedObjectTwo } from "foo"; ok 11892 no-restricted-imports invalid import { AllowedObject, DisallowedObject as AllowedObjectTwo } from "foo"; ok 11893 no-restricted-imports invalid import DisallowedObject, { AllowedObject as AllowedObjectTwo } from "foo"; ok 11894 no-restricted-imports invalid import AllowedObject, { DisallowedObject as AllowedObjectTwo } from "foo"; ok 11895 no-restricted-imports invalid import AllowedObject, * as AllowedObjectTwo from "foo"; ok 11896 no-restricted-imports invalid import AllowedObject, * as AllowedObjectTwo from "foo"; ok 11897 no-restricted-imports invalid import { DisallowedObjectOne, DisallowedObjectTwo, AllowedObject } from "foo"; ok 11898 no-restricted-imports invalid import { DisallowedObjectOne, DisallowedObjectTwo, AllowedObject } from "foo"; ok 11899 no-restricted-imports invalid import { AllowedObject, DisallowedObject as Bar } from "foo"; ok 11900 no-restricted-imports invalid import foo, { bar } from 'mod'; ok 11901 no-restricted-imports invalid import foo, { bar } from 'mod'; ok 11902 no-restricted-imports invalid import foo, * as bar from 'mod'; ok 11903 no-restricted-imports invalid import * as bar from 'foo'; ok 11904 no-restricted-imports invalid import { a, a as b } from 'mod'; ok 11905 no-restricted-imports invalid export { x as y, x as z } from 'mod'; ok 11906 no-restricted-imports invalid import foo, { default as bar } from 'mod'; ok 11907 no-restricted-modules valid require("fs") ok 11908 no-restricted-modules valid require("path") ok 11909 no-restricted-modules valid require("fs ") ok 11910 no-restricted-modules valid require(2) ok 11911 no-restricted-modules valid require(foo) ok 11912 no-restricted-modules valid var foo = bar('crypto'); ok 11913 no-restricted-modules valid require("foo/bar"); ok 11914 no-restricted-modules valid var withPaths = require("foo/bar"); ok 11915 no-restricted-modules valid var withPatterns = require("foo/bar"); ok 11916 no-restricted-modules valid var withPatternsAndPaths = require("foo/bar"); ok 11917 no-restricted-modules valid var withGitignores = require("foo/bar"); ok 11918 no-restricted-modules invalid require("fs") ok 11919 no-restricted-modules invalid require("os ") ok 11920 no-restricted-modules invalid require("foo/bar"); ok 11921 no-restricted-modules invalid var withPaths = require("foo/bar"); ok 11922 no-restricted-modules invalid var withPatterns = require("foo/bar"); ok 11923 no-restricted-modules invalid var withPatternsAndPaths = require("foo/bar"); ok 11924 no-restricted-modules invalid var withGitignores = require("foo/bar"); ok 11925 no-restricted-modules invalid var withGitignores = require("foo"); ok 11926 no-restricted-modules invalid var withGitignores = require("bar"); ok 11927 no-restricted-modules invalid var withGitignores = require("foo"); ok 11928 no-restricted-properties valid someObject.someProperty ok 11929 no-restricted-properties valid anotherObject.disallowedProperty ok 11930 no-restricted-properties valid someObject.someProperty() ok 11931 no-restricted-properties valid anotherObject.disallowedProperty() ok 11932 no-restricted-properties valid anotherObject.disallowedProperty() ok 11933 no-restricted-properties valid anotherObject['disallowedProperty']() ok 11934 no-restricted-properties valid obj.toString ok 11935 no-restricted-properties valid toString.toString ok 11936 no-restricted-properties valid obj.toString ok 11937 no-restricted-properties valid foo.bar ok 11938 no-restricted-properties valid foo.bar ok 11939 no-restricted-properties valid foo() ok 11940 no-restricted-properties valid foo; ok 11941 no-restricted-properties valid let bar = foo; ok 11942 no-restricted-properties valid let {baz: bar} = foo; ok 11943 no-restricted-properties valid let {unrelated} = foo; ok 11944 no-restricted-properties valid let {baz: {bar: qux}} = foo; ok 11945 no-restricted-properties valid let {bar} = foo.baz; ok 11946 no-restricted-properties valid let {baz: bar} = foo; ok 11947 no-restricted-properties valid let baz; ({baz: bar} = foo) ok 11948 no-restricted-properties valid let bar; ok 11949 no-restricted-properties valid let bar; ([bar = 5] = foo); ok 11950 no-restricted-properties valid function qux({baz: bar} = foo) {} ok 11951 no-restricted-properties valid let [bar, baz] = foo; ok 11952 no-restricted-properties valid let [, bar] = foo; ok 11953 no-restricted-properties valid let [, bar = 5] = foo; ok 11954 no-restricted-properties valid let bar; ([bar = 5] = foo); ok 11955 no-restricted-properties valid function qux([bar] = foo) {} ok 11956 no-restricted-properties valid function qux([, bar] = foo) {} ok 11957 no-restricted-properties valid function qux([, bar] = foo) {} ok 11958 no-restricted-properties invalid someObject.disallowedProperty ok 11959 no-restricted-properties invalid someObject.disallowedProperty ok 11960 no-restricted-properties invalid someObject.disallowedProperty; anotherObject.anotherDisallowedProperty() ok 11961 no-restricted-properties invalid foo.__proto__ ok 11962 no-restricted-properties invalid foo['__proto__'] ok 11963 no-restricted-properties invalid foo.bar.baz; ok 11964 no-restricted-properties invalid foo.bar(); ok 11965 no-restricted-properties invalid foo.bar.baz(); ok 11966 no-restricted-properties invalid foo.bar.baz; ok 11967 no-restricted-properties invalid foo.bar(); ok 11968 no-restricted-properties invalid foo.bar.baz(); ok 11969 no-restricted-properties invalid require.call({}, 'foo') ok 11970 no-restricted-properties invalid require['resolve'] ok 11971 no-restricted-properties invalid let {bar} = foo; ok 11972 no-restricted-properties invalid let {bar: baz} = foo; ok 11973 no-restricted-properties invalid let {'bar': baz} = foo; ok 11974 no-restricted-properties invalid let {bar: {baz: qux}} = foo; ok 11975 no-restricted-properties invalid let {bar} = foo; ok 11976 no-restricted-properties invalid let {bar: baz} = foo; ok 11977 no-restricted-properties invalid let {bar} = foo; ok 11978 no-restricted-properties invalid let bar; ({bar} = foo); ok 11979 no-restricted-properties invalid let bar; ({bar: baz = 1} = foo); ok 11980 no-restricted-properties invalid function qux({bar} = foo) {} ok 11981 no-restricted-properties invalid function qux({bar: baz} = foo) {} ok 11982 no-restricted-properties invalid var {['foo']: qux, bar} = baz ok 11983 no-restricted-syntax valid doSomething(); ok 11984 no-restricted-syntax valid var foo = 42; ok 11985 no-restricted-syntax valid foo += 42; ok 11986 no-restricted-syntax valid foo; ok 11987 no-restricted-syntax valid () => 5 ok 11988 no-restricted-syntax valid ({ foo: 1, bar: 2 }) ok 11989 no-restricted-syntax valid A: for (;;) break; ok 11990 no-restricted-syntax valid function foo(bar, baz) {} ok 11991 no-restricted-syntax valid var foo = 42; ok 11992 no-restricted-syntax valid ({ foo: 1, bar: 2 }) ok 11993 no-restricted-syntax valid ({ foo: 1, bar: 2 }) ok 11994 no-restricted-syntax valid console.log(/a/); ok 11995 no-restricted-syntax invalid var foo = 41; ok 11996 no-restricted-syntax invalid ;function lol(a) { return 42; } ok 11997 no-restricted-syntax invalid try { voila(); } catch (e) { oops(); } ok 11998 no-restricted-syntax invalid bar; ok 11999 no-restricted-syntax invalid bar; ok 12000 no-restricted-syntax invalid () => {} ok 12001 no-restricted-syntax invalid ({ foo: 1, 'bar': 2 }) ok 12002 no-restricted-syntax invalid A: for (;;) break A; ok 12003 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 12004 no-restricted-syntax invalid var foo = 41; ok 12005 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 12006 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 12007 no-restricted-syntax invalid function foo(bar, baz, qux) {} ok 12008 no-restricted-syntax invalid console.log(/a/i); ok 12009 no-return-assign valid module.exports = {'a': 1}; ok 12010 no-return-assign valid var result = a * b; ok 12011 no-return-assign valid function x() { var result = a * b; return result; } ok 12012 no-return-assign valid function x() { return (result = a * b); } ok 12013 no-return-assign valid function x() { var result = a * b; return result; } ok 12014 no-return-assign valid function x() { return (result = a * b); } ok 12015 no-return-assign valid function x() { var result = a * b; return result; } ok 12016 no-return-assign valid function x() { return function y() { result = a * b }; } ok 12017 no-return-assign valid () => { return (result = a * b); } ok 12018 no-return-assign valid () => (result = a * b) ok 12019 no-return-assign invalid function x() { return result = a * b; }; ok 12020 no-return-assign invalid function x() { return (result) = (a * b); }; ok 12021 no-return-assign invalid function x() { return result = a * b; }; ok 12022 no-return-assign invalid function x() { return (result) = (a * b); }; ok 12023 no-return-assign invalid () => { return result = a * b; } ok 12024 no-return-assign invalid () => result = a * b ok 12025 no-return-assign invalid function x() { return result = a * b; }; ok 12026 no-return-assign invalid function x() { return (result = a * b); }; ok 12027 no-return-assign invalid function x() { return result || (result = a * b); }; ok 12028 no-return-await valid \u000aasync function foo() {\u000a\u0009await bar(); return;\u000a}\u000a ok 12029 no-return-await valid \u000aasync function foo() {\u000a\u0009const x = await bar(); return x;\u000a}\u000a ok 12030 no-return-await valid \u000aasync () => { return bar(); }\u000a ok 12031 no-return-await valid \u000aasync () => bar()\u000a ok 12032 no-return-await valid \u000aasync function foo() {\u000aif (a) {\u000a\u0009\u0009if (b) {\u000a\u0009\u0009\u0009return bar();\u000a\u0009\u0009}\u000a\u0009}\u000a}\u000a ok 12033 no-return-await valid \u000aasync () => {\u000aif (a) {\u000a\u0009\u0009if (b) {\u000a\u0009\u0009\u0009return bar();\u000a\u0009\u0009}\u000a\u0009}\u000a}\u000a ok 12034 no-return-await valid \u000aasync function foo() {\u000a\u0009return (await bar() && a);\u000a}\u000a ok 12035 no-return-await valid \u000aasync function foo() {\u000a\u0009return (await bar() || a);\u000a}\u000a ok 12036 no-return-await valid \u000aasync function foo() {\u000a\u0009return (a && await baz() && b);\u000a}\u000a ok 12037 no-return-await valid \u000aasync function foo() {\u000a\u0009return (await bar(), a);\u000a}\u000a ok 12038 no-return-await valid \u000aasync function foo() {\u000a\u0009return (await baz(), await bar(), a);\u000a}\u000a ok 12039 no-return-await valid \u000aasync function foo() {\u000a\u0009return (a, b, (await bar(), c));\u000a}\u000a ok 12040 no-return-await valid \u000aasync function foo() {\u000a\u0009return (await bar() ? a : b);\u000a}\u000a ok 12041 no-return-await valid \u000aasync function foo() {\u000a\u0009return ((a && await bar()) ? b : c);\u000a}\u000a ok 12042 no-return-await valid \u000aasync function foo() {\u000a\u0009return (baz() ? (await bar(), a) : b);\u000a}\u000a ok 12043 no-return-await valid \u000aasync function foo() {\u000a\u0009return (baz() ? (await bar() && a) : b);\u000a}\u000a ok 12044 no-return-await valid \u000aasync function foo() {\u000a\u0009return (baz() ? a : (await bar(), b));\u000a}\u000a ok 12045 no-return-await valid \u000aasync function foo() {\u000a\u0009return (baz() ? a : (await bar() && b));\u000a}\u000a ok 12046 no-return-await valid \u000aasync () => (await bar(), a)\u000a ok 12047 no-return-await valid \u000aasync () => (await bar() && a)\u000a ok 12048 no-return-await valid \u000aasync () => (await bar() || a)\u000a ok 12049 no-return-await valid \u000aasync () => (a && await bar() && b)\u000a ok 12050 no-return-await valid \u000aasync () => (await baz(), await bar(), a)\u000a ok 12051 no-return-await valid \u000aasync () => (a, b, (await bar(), c))\u000a ok 12052 no-return-await valid \u000aasync () => (await bar() ? a : b)\u000a ok 12053 no-return-await valid \u000aasync () => ((a && await bar()) ? b : c)\u000a ok 12054 no-return-await valid \u000aasync () => (baz() ? (await bar(), a) : b)\u000a ok 12055 no-return-await valid \u000aasync () => (baz() ? (await bar() && a) : b)\u000a ok 12056 no-return-await valid \u000aasync () => (baz() ? a : (await bar(), b))\u000a ok 12057 no-return-await valid \u000aasync () => (baz() ? a : (await bar() && b))\u000a ok 12058 no-return-await valid \u000a async function foo() {\u000a try {\u000a return await bar();\u000a } catch (e) {\u000a baz();\u000a }\u000a }\u000a ok 12059 no-return-await valid \u000a async function foo() {\u000a try {\u000a return await bar();\u000a } finally {\u000a baz();\u000a }\u000a }\u000a ok 12060 no-return-await valid \u000a async function foo() {\u000a try {}\u000a catch (e) {\u000a return await bar();\u000a } finally {\u000a baz();\u000a }\u000a }\u000a ok 12061 no-return-await valid \u000a async function foo() {\u000a try {\u000a try {}\u000a finally {\u000a return await bar();\u000a }\u000a } finally {\u000a baz();\u000a }\u000a }\u000a ok 12062 no-return-await valid \u000a async function foo() {\u000a try {\u000a try {}\u000a catch (e) {\u000a return await bar();\u000a }\u000a } finally {\u000a baz();\u000a }\u000a }\u000a ok 12063 no-return-await valid \u000a async function foo() {\u000a try {\u000a return (a, await bar());\u000a } catch (e) {\u000a baz();\u000a }\u000a }\u000a ok 12064 no-return-await valid \u000a async function foo() {\u000a try {\u000a return (qux() ? await bar() : b);\u000a } catch (e) {\u000a baz();\u000a }\u000a }\u000a ok 12065 no-return-await valid \u000a async function foo() {\u000a try {\u000a return (a && await bar());\u000a } catch (e) {\u000a baz();\u000a }\u000a }\u000a ok 12066 no-return-await invalid \u000aasync function foo() {\u000a\u0009return await bar();\u000a}\u000a ok 12067 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a, await bar());\u000a}\u000a ok 12068 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a, b, await bar());\u000a}\u000a ok 12069 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a && await bar());\u000a}\u000a ok 12070 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a && b && await bar());\u000a}\u000a ok 12071 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a || await bar());\u000a}\u000a ok 12072 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a, b, (c, d, await bar()));\u000a}\u000a ok 12073 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (a, b, (c && await bar()));\u000a}\u000a ok 12074 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (await baz(), b, await bar());\u000a}\u000a ok 12075 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (baz() ? await bar() : b);\u000a}\u000a ok 12076 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (baz() ? a : await bar());\u000a}\u000a ok 12077 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (baz() ? (a, await bar()) : b);\u000a}\u000a ok 12078 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (baz() ? a : (b, await bar()));\u000a}\u000a ok 12079 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (baz() ? (a && await bar()) : b);\u000a}\u000a ok 12080 no-return-await invalid \u000aasync function foo() {\u000a\u0009return (baz() ? a : (b && await bar()));\u000a}\u000a ok 12081 no-return-await invalid \u000aasync () => { return await bar(); }\u000a ok 12082 no-return-await invalid \u000aasync () => await bar()\u000a ok 12083 no-return-await invalid \u000aasync () => (a, b, await bar())\u000a ok 12084 no-return-await invalid \u000aasync () => (a && await bar())\u000a ok 12085 no-return-await invalid \u000aasync () => (baz() ? await bar() : b)\u000a ok 12086 no-return-await invalid \u000aasync () => (baz() ? a : (b, await bar()))\u000a ok 12087 no-return-await invalid \u000aasync () => (baz() ? a : (b && await bar()))\u000a ok 12088 no-return-await invalid \u000aasync function foo() {\u000aif (a) {\u000a\u0009\u0009if (b) {\u000a\u0009\u0009\u0009return await bar();\u000a\u0009\u0009}\u000a\u0009}\u000a}\u000a ok 12089 no-return-await invalid \u000aasync () => {\u000aif (a) {\u000a\u0009\u0009if (b) {\u000a\u0009\u0009\u0009return await bar();\u000a\u0009\u0009}\u000a\u0009}\u000a}\u000a ok 12090 no-return-await invalid \u000a async function foo() {\u000a try {}\u000a finally {\u000a return await bar();\u000a }\u000a }\u000a ok 12091 no-return-await invalid \u000a async function foo() {\u000a try {}\u000a catch (e) {\u000a return await bar();\u000a }\u000a }\u000a ok 12092 no-return-await invalid \u000a try {\u000a async function foo() {\u000a return await bar();\u000a }\u000a } catch (e) {}\u000a ok 12093 no-return-await invalid \u000a try {\u000a async () => await bar();\u000a } catch (e) {}\u000a ok 12094 no-return-await invalid \u000a async function foo() {\u000a try {}\u000a catch (e) {\u000a try {}\u000a catch (e) {\u000a return await bar();\u000a }\u000a }\u000a }\u000a ok 12095 no-script-url valid var a = 'Hello World!'; ok 12096 no-script-url valid var a = 10; ok 12097 no-script-url valid var url = 'xjavascript:' ok 12098 no-script-url invalid var a = 'javascript:void(0);'; ok 12099 no-script-url invalid var a = 'javascript:'; ok 12100 no-self-assign valid var a = a ok 12101 no-self-assign valid a = b ok 12102 no-self-assign valid a += a ok 12103 no-self-assign valid a = +a ok 12104 no-self-assign valid a = [a] ok 12105 no-self-assign valid let a = a ok 12106 no-self-assign valid const a = a ok 12107 no-self-assign valid [a] = a ok 12108 no-self-assign valid [a = 1] = [a] ok 12109 no-self-assign valid [a, b] = [b, a] ok 12110 no-self-assign valid [a,, b] = [, b, a] ok 12111 no-self-assign valid [x, a] = [...x, a] ok 12112 no-self-assign valid [...a] = [...a, 1] ok 12113 no-self-assign valid [a, ...b] = [0, ...b, 1] ok 12114 no-self-assign valid [a, b] = {a, b} ok 12115 no-self-assign valid ({a} = a) ok 12116 no-self-assign valid ({a = 1} = {a}) ok 12117 no-self-assign valid ({a: b} = {a}) ok 12118 no-self-assign valid ({a} = {a: b}) ok 12119 no-self-assign valid ({a} = {a() {}}) ok 12120 no-self-assign valid ({a} = {[a]: a}) ok 12121 no-self-assign valid ({[a]: b} = {[a]: b}) ok 12122 no-self-assign valid ({'foo': a, 1: a} = {'bar': a, 2: a}) ok 12123 no-self-assign valid ({a, ...b} = {a, ...b}) ok 12124 no-self-assign valid a.b = a.c ok 12125 no-self-assign valid a.b = c.b ok 12126 no-self-assign valid a.b = a[b] ok 12127 no-self-assign valid a[b] = a.b ok 12128 no-self-assign valid a.b().c = a.b().c ok 12129 no-self-assign valid b().c = b().c ok 12130 no-self-assign valid a[b + 1] = a[b + 1] ok 12131 no-self-assign valid a.b = a.b ok 12132 no-self-assign valid a.b.c = a.b.c ok 12133 no-self-assign valid a[b] = a[b] ok 12134 no-self-assign valid a['b'] = a['b'] ok 12135 no-self-assign valid a[\u000a 'b'\u000a] = a[\u000a 'b'\u000a] ok 12136 no-self-assign invalid a = a ok 12137 no-self-assign invalid [a] = [a] ok 12138 no-self-assign invalid [a, b] = [a, b] ok 12139 no-self-assign invalid [a, b] = [a, c] ok 12140 no-self-assign invalid [a, b] = [, b] ok 12141 no-self-assign invalid [a, ...b] = [a, ...b] ok 12142 no-self-assign invalid [[a], {b}] = [[a], {b}] ok 12143 no-self-assign invalid ({a} = {a}) ok 12144 no-self-assign invalid ({a: b} = {a: b}) ok 12145 no-self-assign invalid ({'a': b} = {'a': b}) ok 12146 no-self-assign invalid ({a: b} = {'a': b}) ok 12147 no-self-assign invalid ({'a': b} = {a: b}) ok 12148 no-self-assign invalid ({1: b} = {1: b}) ok 12149 no-self-assign invalid ({1: b} = {'1': b}) ok 12150 no-self-assign invalid ({'1': b} = {1: b}) ok 12151 no-self-assign invalid ({['a']: b} = {a: b}) ok 12152 no-self-assign invalid ({'a': b} = {[`a`]: b}) ok 12153 no-self-assign invalid ({1: b} = {[1]: b}) ok 12154 no-self-assign invalid ({a, b} = {a, b}) ok 12155 no-self-assign invalid ({a, b} = {b, a}) ok 12156 no-self-assign invalid ({a, b} = {c, a}) ok 12157 no-self-assign invalid ({a: {b}, c: [d]} = {a: {b}, c: [d]}) ok 12158 no-self-assign invalid ({a, b} = {a, ...x, b}) ok 12159 no-self-assign invalid a.b = a.b ok 12160 no-self-assign invalid a.b.c = a.b.c ok 12161 no-self-assign invalid a[b] = a[b] ok 12162 no-self-assign invalid a['b'] = a['b'] ok 12163 no-self-assign invalid a[\u000a 'b'\u000a] = a[\u000a 'b'\u000a] ok 12164 no-self-assign invalid a.b = a.b ok 12165 no-self-assign invalid a.b.c = a.b.c ok 12166 no-self-assign invalid a[b] = a[b] ok 12167 no-self-assign invalid a['b'] = a['b'] ok 12168 no-self-assign invalid a[\u000a 'b'\u000a] = a[\u000a 'b'\u000a] ok 12169 no-self-compare valid if (x === y) { } ok 12170 no-self-compare valid if (1 === 2) { } ok 12171 no-self-compare valid y=x*x ok 12172 no-self-compare valid foo.bar.baz === foo.bar.qux ok 12173 no-self-compare invalid if (x === x) { } ok 12174 no-self-compare invalid if (x !== x) { } ok 12175 no-self-compare invalid if (x > x) { } ok 12176 no-self-compare invalid if ('x' > 'x') { } ok 12177 no-self-compare invalid do {} while (x === x) ok 12178 no-self-compare invalid x === x ok 12179 no-self-compare invalid x !== x ok 12180 no-self-compare invalid x == x ok 12181 no-self-compare invalid x != x ok 12182 no-self-compare invalid x > x ok 12183 no-self-compare invalid x < x ok 12184 no-self-compare invalid x >= x ok 12185 no-self-compare invalid x <= x ok 12186 no-self-compare invalid foo.bar().baz.qux >= foo.bar ().baz .qux ok 12187 no-sequences valid var arr = [1, 2]; ok 12188 no-sequences valid var obj = {a: 1, b: 2}; ok 12189 no-sequences valid var a = 1, b = 2; ok 12190 no-sequences valid var foo = (1, 2); ok 12191 no-sequences valid (0,eval)("foo()"); ok 12192 no-sequences valid for (i = 1, j = 2;; i++, j++); ok 12193 no-sequences valid foo(a, (b, c), d); ok 12194 no-sequences valid do {} while ((doSomething(), !!test)); ok 12195 no-sequences valid for ((doSomething(), somethingElse()); (doSomething(), !!test); ); ok 12196 no-sequences valid if ((doSomething(), !!test)); ok 12197 no-sequences valid switch ((doSomething(), !!test)) {} ok 12198 no-sequences valid while ((doSomething(), !!test)); ok 12199 no-sequences valid with ((doSomething(), val)) {} ok 12200 no-sequences valid a => ((doSomething(), a)) ok 12201 no-sequences invalid 1, 2; ok 12202 no-sequences invalid a = 1, 2 ok 12203 no-sequences invalid do {} while (doSomething(), !!test); ok 12204 no-sequences invalid for (; doSomething(), !!test; ); ok 12205 no-sequences invalid if (doSomething(), !!test); ok 12206 no-sequences invalid switch (doSomething(), val) {} ok 12207 no-sequences invalid while (doSomething(), !!test); ok 12208 no-sequences invalid with (doSomething(), val) {} ok 12209 no-sequences invalid a => (doSomething(), a) ok 12210 no-sequences invalid (1), 2 ok 12211 no-sequences invalid ((1)) , (2) ok 12212 no-sequences invalid while((1) , 2); ok 12213 no-shadow-restricted-names valid function foo(bar){ var baz; } ok 12214 no-shadow-restricted-names valid !function foo(bar){ var baz; } ok 12215 no-shadow-restricted-names valid !function(bar){ var baz; } ok 12216 no-shadow-restricted-names valid try {} catch(e) {} ok 12217 no-shadow-restricted-names valid export default function() {} ok 12218 no-shadow-restricted-names valid try {} catch {} ok 12219 no-shadow-restricted-names valid var undefined; ok 12220 no-shadow-restricted-names valid var undefined; doSomething(undefined); ok 12221 no-shadow-restricted-names valid var undefined; var undefined; ok 12222 no-shadow-restricted-names valid let undefined ok 12223 no-shadow-restricted-names invalid function NaN(NaN) { var NaN; !function NaN(NaN) { try {} catch(NaN) {} }; } ok 12224 no-shadow-restricted-names invalid function undefined(undefined) { !function undefined(undefined) { try {} catch(undefined) {} }; } ok 12225 no-shadow-restricted-names invalid function Infinity(Infinity) { var Infinity; !function Infinity(Infinity) { try {} catch(Infinity) {} }; } ok 12226 no-shadow-restricted-names invalid function arguments(arguments) { var arguments; !function arguments(arguments) { try {} catch(arguments) {} }; } ok 12227 no-shadow-restricted-names invalid function eval(eval) { var eval; !function eval(eval) { try {} catch(eval) {} }; } ok 12228 no-shadow-restricted-names invalid var eval = (eval) => { var eval; !function eval(eval) { try {} catch(eval) {} }; } ok 12229 no-shadow-restricted-names invalid var [undefined] = [1] ok 12230 no-shadow-restricted-names invalid var {undefined} = obj; var {a: undefined} = obj; var {a: {b: {undefined}}} = obj; var {a, ...undefined} = obj; ok 12231 no-shadow-restricted-names invalid var undefined; undefined = 5; ok 12232 no-shadow valid var a=3; function b(x) { a++; return x + a; }; setTimeout(function() { b(a); }, 0); ok 12233 no-shadow valid (function() { var doSomething = function doSomething() {}; doSomething() }()) ok 12234 no-shadow valid var arguments;\u000afunction bar() { } ok 12235 no-shadow valid var a=3; var b = (x) => { a++; return x + a; }; setTimeout(() => { b(a); }, 0); ok 12236 no-shadow valid class A {} ok 12237 no-shadow valid class A { constructor() { var a; } } ok 12238 no-shadow valid (function() { var A = class A {}; })() ok 12239 no-shadow valid { var a; } var a; ok 12240 no-shadow valid { let a; } let a; ok 12241 no-shadow valid { let a; } var a; ok 12242 no-shadow valid { let a; } function a() {} ok 12243 no-shadow valid { const a = 0; } const a = 1; ok 12244 no-shadow valid { const a = 0; } var a; ok 12245 no-shadow valid { const a = 0; } function a() {} ok 12246 no-shadow valid function foo() { let a; } let a; ok 12247 no-shadow valid function foo() { let a; } var a; ok 12248 no-shadow valid function foo() { let a; } function a() {} ok 12249 no-shadow valid function foo() { var a; } let a; ok 12250 no-shadow valid function foo() { var a; } var a; ok 12251 no-shadow valid function foo() { var a; } function a() {} ok 12252 no-shadow valid function foo(a) { } let a; ok 12253 no-shadow valid function foo(a) { } var a; ok 12254 no-shadow valid function foo(a) { } function a() {} ok 12255 no-shadow valid { let a; } let a; ok 12256 no-shadow valid { let a; } var a; ok 12257 no-shadow valid { const a = 0; } const a = 1; ok 12258 no-shadow valid { const a = 0; } var a; ok 12259 no-shadow valid function foo() { let a; } let a; ok 12260 no-shadow valid function foo() { let a; } var a; ok 12261 no-shadow valid function foo() { var a; } let a; ok 12262 no-shadow valid function foo() { var a; } var a; ok 12263 no-shadow valid function foo(a) { } let a; ok 12264 no-shadow valid function foo(a) { } var a; ok 12265 no-shadow valid function foo() { var Object = 0; } ok 12266 no-shadow valid function foo() { var top = 0; } ok 12267 no-shadow valid var Object = 0; ok 12268 no-shadow valid var top = 0; ok 12269 no-shadow valid function foo(cb) { (function (cb) { cb(42); })(cb); } ok 12270 no-shadow invalid function a(x) { var b = function c() { var x = 'foo'; }; } ok 12271 no-shadow invalid var a = (x) => { var b = () => { var x = 'foo'; }; } ok 12272 no-shadow invalid function a(x) { var b = function () { var x = 'foo'; }; } ok 12273 no-shadow invalid var x = 1; function a(x) { return ++x; } ok 12274 no-shadow invalid var a=3; function b() { var a=10; } ok 12275 no-shadow invalid var a=3; function b() { var a=10; }; setTimeout(function() { b(); }, 0); ok 12276 no-shadow invalid var a=3; function b() { var a=10; var b=0; }; setTimeout(function() { b(); }, 0); ok 12277 no-shadow invalid var x = 1; { let x = 2; } ok 12278 no-shadow invalid let x = 1; { const x = 2; } ok 12279 no-shadow invalid { let a; } function a() {} ok 12280 no-shadow invalid { const a = 0; } function a() {} ok 12281 no-shadow invalid function foo() { let a; } function a() {} ok 12282 no-shadow invalid function foo() { var a; } function a() {} ok 12283 no-shadow invalid function foo(a) { } function a() {} ok 12284 no-shadow invalid { let a; } let a; ok 12285 no-shadow invalid { let a; } var a; ok 12286 no-shadow invalid { let a; } function a() {} ok 12287 no-shadow invalid { const a = 0; } const a = 1; ok 12288 no-shadow invalid { const a = 0; } var a; ok 12289 no-shadow invalid { const a = 0; } function a() {} ok 12290 no-shadow invalid function foo() { let a; } let a; ok 12291 no-shadow invalid function foo() { let a; } var a; ok 12292 no-shadow invalid function foo() { let a; } function a() {} ok 12293 no-shadow invalid function foo() { var a; } let a; ok 12294 no-shadow invalid function foo() { var a; } var a; ok 12295 no-shadow invalid function foo() { var a; } function a() {} ok 12296 no-shadow invalid function foo(a) { } let a; ok 12297 no-shadow invalid function foo(a) { } var a; ok 12298 no-shadow invalid function foo(a) { } function a() {} ok 12299 no-shadow invalid (function a() { function a(){} })() ok 12300 no-shadow invalid (function a() { class a{} })() ok 12301 no-shadow invalid (function a() { (function a(){}); })() ok 12302 no-shadow invalid (function a() { (class a{}); })() ok 12303 no-shadow invalid (function() { var a = function(a) {}; })() ok 12304 no-shadow invalid (function() { var a = function() { function a() {} }; })() ok 12305 no-shadow invalid (function() { var a = function() { class a{} }; })() ok 12306 no-shadow invalid (function() { var a = function() { (function a() {}); }; })() ok 12307 no-shadow invalid (function() { var a = function() { (class a{}); }; })() ok 12308 no-shadow invalid (function() { var a = class { constructor() { class a {} } }; })() ok 12309 no-shadow invalid class A { constructor() { var A; } } ok 12310 no-shadow invalid (function a() { function a(){ function a(){} } })() ok 12311 no-shadow invalid function foo() { var Object = 0; } ok 12312 no-shadow invalid function foo() { var top = 0; } ok 12313 no-shadow invalid var Object = 0; ok 12314 no-shadow invalid var top = 0; ok 12315 no-shadow invalid var Object = 0; ok 12316 no-shadow invalid var top = 0; ok 12317 no-shadow invalid function foo(cb) { (function (cb) { cb(42); })(cb); } ok 12318 no-spaced-func valid f(); ok 12319 no-spaced-func valid f(a, b); ok 12320 no-spaced-func valid f.b(); ok 12321 no-spaced-func valid f.b().c(); ok 12322 no-spaced-func valid f()() ok 12323 no-spaced-func valid (function() {}()) ok 12324 no-spaced-func valid var f = new Foo() ok 12325 no-spaced-func valid var f = new Foo ok 12326 no-spaced-func valid f( (0) ) ok 12327 no-spaced-func valid ( f )( 0 ) ok 12328 no-spaced-func valid ( (f) )( (0) ) ok 12329 no-spaced-func valid ( f()() )(0) ok 12330 no-spaced-func valid (function(){ if (foo) { bar(); } }()); ok 12331 no-spaced-func valid f(0, (1)) ok 12332 no-spaced-func valid describe/**/('foo', function () {}); ok 12333 no-spaced-func valid new (foo()) ok 12334 no-spaced-func invalid f (); ok 12335 no-spaced-func invalid f (a, b); ok 12336 no-spaced-func invalid f\u000a(); ok 12337 no-spaced-func invalid f.b (); ok 12338 no-spaced-func invalid f.b().c (); ok 12339 no-spaced-func invalid f() () ok 12340 no-spaced-func invalid (function() {} ()) ok 12341 no-spaced-func invalid var f = new Foo () ok 12342 no-spaced-func invalid f ( (0) ) ok 12343 no-spaced-func invalid f(0) (1) ok 12344 no-spaced-func invalid (f) (0) ok 12345 no-spaced-func invalid f ();\u000a t (); ok 12346 no-sparse-arrays valid var a = [ 1, 2, ] ok 12347 no-sparse-arrays invalid var a = [,]; ok 12348 no-sparse-arrays invalid var a = [ 1,, 2]; ok 12349 no-sync valid var foo = fs.foo.foo(); ok 12350 no-sync valid var foo = fs.fooSync; ok 12351 no-sync valid if (true) {fs.fooSync();} ok 12352 no-sync invalid var foo = fs.fooSync(); ok 12353 no-sync invalid var foo = fs.fooSync(); ok 12354 no-sync invalid if (true) {fs.fooSync();} ok 12355 no-sync invalid var foo = fs.fooSync; ok 12356 no-sync invalid function someFunction() {fs.fooSync();} ok 12357 no-sync invalid function someFunction() {fs.fooSync();} ok 12358 no-sync invalid var a = function someFunction() {fs.fooSync();} ok 12359 no-tabs valid function test(){\u000a} ok 12360 no-tabs valid function test(){\u000a // sdfdsf \u000a} ok 12361 no-tabs valid \u0009doSomething(); ok 12362 no-tabs valid \u0009// comment ok 12363 no-tabs invalid function test(){\u0009} ok 12364 no-tabs invalid /** \u0009 comment test */ ok 12365 no-tabs invalid function test(){\u000a //\u0009sdfdsf \u000a} ok 12366 no-tabs invalid function\u0009test(){\u000a //sdfdsf \u000a} ok 12367 no-tabs invalid function test(){\u000a //\u0009sdfdsf \u000a\u0009} ok 12368 no-tabs invalid \u0009// Comment with leading tab \u0009 and inline tab ok 12369 no-template-curly-in-string valid `Hello, ${name}`; ok 12370 no-template-curly-in-string valid templateFunction`Hello, ${name}`; ok 12371 no-template-curly-in-string valid `Hello, name`; ok 12372 no-template-curly-in-string valid 'Hello, name'; ok 12373 no-template-curly-in-string valid 'Hello, ' + name; ok 12374 no-template-curly-in-string valid `Hello, ${index + 1}` ok 12375 no-template-curly-in-string valid `Hello, ${name + " foo"}` ok 12376 no-template-curly-in-string valid `Hello, ${name || "foo"}` ok 12377 no-template-curly-in-string valid `Hello, ${{foo: "bar"}.foo}` ok 12378 no-template-curly-in-string valid '$2' ok 12379 no-template-curly-in-string valid '${' ok 12380 no-template-curly-in-string valid '$}' ok 12381 no-template-curly-in-string valid '{foo}' ok 12382 no-template-curly-in-string valid '{foo: "bar"}' ok 12383 no-template-curly-in-string valid const number = 3 ok 12384 no-template-curly-in-string invalid 'Hello, ${name}' ok 12385 no-template-curly-in-string invalid "Hello, ${name}" ok 12386 no-template-curly-in-string invalid '${greeting}, ${name}' ok 12387 no-template-curly-in-string invalid 'Hello, ${index + 1}' ok 12388 no-template-curly-in-string invalid 'Hello, ${name + " foo"}' ok 12389 no-template-curly-in-string invalid 'Hello, ${name || "foo"}' ok 12390 no-template-curly-in-string invalid 'Hello, ${{foo: "bar"}.foo}' ok 12391 no-ternary valid "x ? y"; ok 12392 no-ternary invalid var foo = true ? thing : stuff; ok 12393 no-ternary invalid true ? thing() : stuff(); ok 12394 no-ternary invalid function foo(bar) { return bar ? baz : qux; } ok 12395 no-this-before-super valid class A { } ok 12396 no-this-before-super valid class A { constructor() { } } ok 12397 no-this-before-super valid class A { constructor() { this.b = 0; } } ok 12398 no-this-before-super valid class A { constructor() { this.b(); } } ok 12399 no-this-before-super valid class A extends null { } ok 12400 no-this-before-super valid class A extends null { constructor() { } } ok 12401 no-this-before-super valid class A extends B { } ok 12402 no-this-before-super valid class A extends B { constructor() { super(); } } ok 12403 no-this-before-super valid class A extends B { constructor() { super(); this.c = this.d; } } ok 12404 no-this-before-super valid class A extends B { constructor() { super(); this.c(); } } ok 12405 no-this-before-super valid class A extends B { constructor() { super(); super.c(); } } ok 12406 no-this-before-super valid class A extends B { constructor() { if (true) { super(); } else { super(); } this.c(); } } ok 12407 no-this-before-super valid class A extends B { constructor() { class B extends C { constructor() { super(); this.d = 0; } } super(); } } ok 12408 no-this-before-super valid class A extends B { constructor() { var B = class extends C { constructor() { super(); this.d = 0; } }; super(); } } ok 12409 no-this-before-super valid class A extends B { constructor() { function c() { this.d(); } super(); } } ok 12410 no-this-before-super valid class A extends B { constructor() { var c = function c() { this.d(); }; super(); } } ok 12411 no-this-before-super valid class A extends B { constructor() { var c = () => this.d(); super(); } } ok 12412 no-this-before-super valid class A { b() { this.c = 0; } } ok 12413 no-this-before-super valid class A extends B { c() { this.d = 0; } } ok 12414 no-this-before-super valid function a() { this.b = 0; } ok 12415 no-this-before-super valid class A extends B { constructor() { if (a) { super(); this.a(); } else { super(); this.b(); } } } ok 12416 no-this-before-super valid class A extends B { constructor() { if (a) super(); else super(); this.a(); } } ok 12417 no-this-before-super valid class A extends B { constructor() { try { super(); } finally {} this.a(); } } ok 12418 no-this-before-super valid class A extends B { constructor(a) { super(); for (const b of a) { this.a(); } } } ok 12419 no-this-before-super valid class A extends B { constructor(a) { for (const b of a) { foo(b); } super(); } } ok 12420 no-this-before-super valid class A extends B { constructor(a) { super(); this.a = a && function(){} && this.foo; } } ok 12421 no-this-before-super valid class A extends Object {\u000a constructor() {\u000a super();\u000a for (let i = 0; i < 0; i++);\u000a this;\u000a }\u000a} ok 12422 no-this-before-super valid class A { constructor() { return; this; } } ok 12423 no-this-before-super valid class A extends B { constructor() { return; this; } } ok 12424 no-this-before-super valid \u000a class A extends B {\u000a constructor(props) {\u000a super(props);\u000a\u000a try {\u000a let arr = [];\u000a for (let a of arr) {\u000a }\u000a } catch (err) {\u000a }\u000a }\u000a }\u000a ok 12425 no-this-before-super invalid class A extends B { constructor() { this.c = 0; } } ok 12426 no-this-before-super invalid class A extends B { constructor() { this.c(); } } ok 12427 no-this-before-super invalid class A extends B { constructor() { super.c(); } } ok 12428 no-this-before-super invalid class A extends B { constructor() { this.c = 0; super(); } } ok 12429 no-this-before-super invalid class A extends B { constructor() { this.c(); super(); } } ok 12430 no-this-before-super invalid class A extends B { constructor() { super.c(); super(); } } ok 12431 no-this-before-super invalid class A extends B { constructor() { super(this.c); } } ok 12432 no-this-before-super invalid class A extends B { constructor() { super(this.c()); } } ok 12433 no-this-before-super invalid class A extends B { constructor() { super(super.c()); } } ok 12434 no-this-before-super invalid class A extends B { constructor() { class C extends D { constructor() { super(); this.e(); } } this.f(); super(); } } ok 12435 no-this-before-super invalid class A extends B { constructor() { class C extends D { constructor() { this.e(); super(); } } super(); this.f(); } } ok 12436 no-this-before-super invalid class A extends B { constructor() { if (a) super(); this.a(); } } ok 12437 no-this-before-super invalid class A extends B { constructor() { try { super(); } finally { this.a; } } } ok 12438 no-this-before-super invalid class A extends B { constructor() { try { super(); } catch (err) { } this.a; } } ok 12439 no-throw-literal valid throw new Error(); ok 12440 no-throw-literal valid throw new Error('error'); ok 12441 no-throw-literal valid throw Error('error'); ok 12442 no-throw-literal valid var e = new Error(); throw e; ok 12443 no-throw-literal valid try {throw new Error();} catch (e) {throw e;}; ok 12444 no-throw-literal valid throw a; ok 12445 no-throw-literal valid throw foo(); ok 12446 no-throw-literal valid throw new foo(); ok 12447 no-throw-literal valid throw foo.bar; ok 12448 no-throw-literal valid throw foo[bar]; ok 12449 no-throw-literal valid throw foo = new Error(); ok 12450 no-throw-literal valid throw 1, 2, new Error(); ok 12451 no-throw-literal valid throw 'literal' && new Error(); ok 12452 no-throw-literal valid throw new Error() || 'literal'; ok 12453 no-throw-literal valid throw foo ? new Error() : 'literal'; ok 12454 no-throw-literal valid throw foo ? 'literal' : new Error(); ok 12455 no-throw-literal valid throw tag `${foo}`; ok 12456 no-throw-literal valid function* foo() { var index = 0; throw yield index++; } ok 12457 no-throw-literal valid async function foo() { throw await bar; } ok 12458 no-throw-literal invalid throw 'error'; ok 12459 no-throw-literal invalid throw 0; ok 12460 no-throw-literal invalid throw false; ok 12461 no-throw-literal invalid throw null; ok 12462 no-throw-literal invalid throw {}; ok 12463 no-throw-literal invalid throw undefined; ok 12464 no-throw-literal invalid throw 'a' + 'b'; ok 12465 no-throw-literal invalid var b = new Error(); throw 'a' + b; ok 12466 no-throw-literal invalid throw foo = 'error'; ok 12467 no-throw-literal invalid throw new Error(), 1, 2, 3; ok 12468 no-throw-literal invalid throw 'literal' && 'not an Error'; ok 12469 no-throw-literal invalid throw foo ? 'not an Error' : 'literal'; ok 12470 no-throw-literal invalid throw `${err}`; ok 12471 no-trailing-spaces valid var a = 5; ok 12472 no-trailing-spaces valid var a = 5,\u000a b = 3; ok 12473 no-trailing-spaces valid var a = 5; ok 12474 no-trailing-spaces valid var a = 5,\u000a b = 3; ok 12475 no-trailing-spaces valid var a = 5,\u000a b = 3; ok 12476 no-trailing-spaces valid ok 12477 no-trailing-spaces valid \u0009 ok 12478 no-trailing-spaces valid \u000a var c = 1; ok 12479 no-trailing-spaces valid \u0009\u000a\u0009var c = 2; ok 12480 no-trailing-spaces valid \u000a var c = 3; ok 12481 no-trailing-spaces valid \u000a\u0009var c = 4; ok 12482 no-trailing-spaces valid let str = `${a}\u000a \u000a${b}`; ok 12483 no-trailing-spaces valid let str = `${a}\u000a \u000a${b}`;\u000a \u000a ok 12484 no-trailing-spaces valid // Trailing comment test. ok 12485 no-trailing-spaces valid // Trailing comment test. ok 12486 no-trailing-spaces valid // Trailing comment test. ok 12487 no-trailing-spaces valid /* \u000aTrailing comments test. \u000a*/ ok 12488 no-trailing-spaces valid !/usr/bin/env node ok 12489 no-trailing-spaces invalid var short2 = true;\u000d\u000a\u000d\u000amodule.exports = {\u000d\u000a short: short, \u000d\u000a short2: short\u000d\u000a} ok 12490 no-trailing-spaces invalid var short2 = true;\u000a\u000d\u000amodule.exports = {\u000d\u000a short: short, \u000d\u000a short2: short\u000a} ok 12491 no-trailing-spaces invalid var short2 = true;\u000a\u000amodule.exports = {\u000a short: short, \u000a short2: short\u000a}\u000a ok 12492 no-trailing-spaces invalid var short2 = true;\u000a\u000amodule.exports = {\u000a short, \u000a short2\u000a}\u000a ok 12493 no-trailing-spaces invalid \u000ameasAr.push("
", \u000a "
"); ok 12494 no-trailing-spaces invalid measAr.push("
", \u000a "
"); ok 12495 no-trailing-spaces invalid var a = 5; \u000a ok 12496 no-trailing-spaces invalid var a = 5; \u000a b = 3; ok 12497 no-trailing-spaces invalid var a = 5; \u000a\u000a b = 3; ok 12498 no-trailing-spaces invalid var a = 5;\u0009\u000a b = 3; ok 12499 no-trailing-spaces invalid \u000a var c = 1; ok 12500 no-trailing-spaces invalid \u0009\u000a\u0009var c = 2; ok 12501 no-trailing-spaces invalid var a = 5; \u000a ok 12502 no-trailing-spaces invalid var a = 5; \u000a b = 3; ok 12503 no-trailing-spaces invalid var a = 5;\u0009\u000a b = 3; ok 12504 no-trailing-spaces invalid \u000a var c = 1; ok 12505 no-trailing-spaces invalid \u0009\u000a\u0009var c = 2; ok 12506 no-trailing-spaces invalid var a = 'bar'; \u000a \u000a\u0009 ok 12507 no-trailing-spaces invalid var a = 'foo'; \u000avar b = 'bar'; \u000a \u000a ok 12508 no-trailing-spaces invalid let str = `${a}\u000a \u000a${b}`; \u000a ok 12509 no-trailing-spaces invalid let str = `\u000a${a}\u000a \u000a${b}`; \u000a\u0009 ok 12510 no-trailing-spaces invalid let str = ` \u000a ${a}\u000a \u000a${b}`; \u000a ok 12511 no-trailing-spaces invalid let str = `${a}\u000a \u000a${b}`; \u000a \u000a ok 12512 no-trailing-spaces invalid \u000aabcdefg ok 12513 no-trailing-spaces invalid \u000aabcdefg ok 12514 no-trailing-spaces invalid var foo = 'bar'; ok 12515 no-trailing-spaces invalid // Trailing comment test. ok 12516 no-trailing-spaces invalid /* \u000aTrailing comments test. \u000a*/ ok 12517 no-trailing-spaces invalid !/usr/bin/env node ok 12518 no-trailing-spaces invalid // Trailing comment default test. ok 12519 no-undef-init valid var a; ok 12520 no-undef-init valid const foo = undefined ok 12521 no-undef-init valid var undefined = 5; var foo = undefined; ok 12522 no-undef-init invalid var a = undefined; ok 12523 no-undef-init invalid var a = undefined, b = 1; ok 12524 no-undef-init invalid var a = 1, b = undefined, c = 5; ok 12525 no-undef-init invalid var [a] = undefined; ok 12526 no-undef-init invalid var {a} = undefined; ok 12527 no-undef-init invalid for(var i in [1,2,3]){var a = undefined; for(var j in [1,2,3]){}} ok 12528 no-undef-init invalid let a = undefined; ok 12529 no-undef-init invalid let a = undefined, b = 1; ok 12530 no-undef-init invalid let a = 1, b = undefined, c = 5; ok 12531 no-undef-init invalid let [a] = undefined; ok 12532 no-undef-init invalid let {a} = undefined; ok 12533 no-undef-init invalid for(var i in [1,2,3]){let a = undefined; for(var j in [1,2,3]){}} ok 12534 no-undef valid var a = 1, b = 2; a; ok 12535 no-undef valid /*global b*/ function f() { b; } ok 12536 no-undef valid function f() { b; } ok 12537 no-undef valid /*global b a:false*/ a; function f() { b; a; } ok 12538 no-undef valid function a(){} a(); ok 12539 no-undef valid function f(b) { b; } ok 12540 no-undef valid var a; a = 1; a++; ok 12541 no-undef valid var a; function f() { a = 1; } ok 12542 no-undef valid /*global b:true*/ b++; ok 12543 no-undef valid /*eslint-env browser*/ window; ok 12544 no-undef valid /*eslint-env node*/ require("a"); ok 12545 no-undef valid Object; isNaN(); ok 12546 no-undef valid toString() ok 12547 no-undef valid hasOwnProperty() ok 12548 no-undef valid function evilEval(stuffToEval) { var ultimateAnswer; ultimateAnswer = 42; eval(stuffToEval); } ok 12549 no-undef valid typeof a ok 12550 no-undef valid typeof (a) ok 12551 no-undef valid var b = typeof a ok 12552 no-undef valid typeof a === 'undefined' ok 12553 no-undef valid if (typeof a === 'undefined') {} ok 12554 no-undef valid function foo() { var [a, b=4] = [1, 2]; return {a, b}; } ok 12555 no-undef valid var toString = 1; ok 12556 no-undef valid function myFunc(...foo) { return foo;} ok 12557 no-undef valid var React, App, a=1; React.render(); ok 12558 no-undef valid var console; [1,2,3].forEach(obj => {\u000a console.log(obj);\u000a}); ok 12559 no-undef valid var Foo; class Bar extends Foo { constructor() { super(); }} ok 12560 no-undef valid import Warning from '../lib/warning'; var warn = new Warning('text'); ok 12561 no-undef valid import * as Warning from '../lib/warning'; var warn = new Warning('text'); ok 12562 no-undef valid var a; [a] = [0]; ok 12563 no-undef valid var a; ({a} = {}); ok 12564 no-undef valid var a; ({b: a} = {}); ok 12565 no-undef valid var obj; [obj.a, obj.b] = [0, 1]; ok 12566 no-undef valid URLSearchParams; ok 12567 no-undef valid Intl; ok 12568 no-undef valid IntersectionObserver; ok 12569 no-undef valid Credential; ok 12570 no-undef valid requestIdleCallback; ok 12571 no-undef valid customElements; ok 12572 no-undef valid PromiseRejectionEvent; ok 12573 no-undef valid /*global b:false*/ function f() { b = 1; } ok 12574 no-undef valid function f() { b = 1; } ok 12575 no-undef valid /*global b:false*/ function f() { b++; } ok 12576 no-undef valid /*global b*/ b = 1; ok 12577 no-undef valid /*global b:false*/ var b = 1; ok 12578 no-undef valid Array = 1; ok 12579 no-undef valid class A { constructor() { new.target; } } ok 12580 no-undef valid var {bacon, ...others} = stuff; foo(others) ok 12581 no-undef invalid a = 1; ok 12582 no-undef invalid if (typeof anUndefinedVar === 'string') {} ok 12583 no-undef invalid var a = b; ok 12584 no-undef invalid function f() { b; } ok 12585 no-undef invalid window; ok 12586 no-undef invalid require("a"); ok 12587 no-undef invalid var React; React.render(); ok 12588 no-undef invalid var React, App; React.render(); ok 12589 no-undef invalid [a] = [0]; ok 12590 no-undef invalid ({a} = {}); ok 12591 no-undef invalid ({b: a} = {}); ok 12592 no-undef invalid [obj.a, obj.b] = [0, 1]; ok 12593 no-undef invalid const c = 0; const a = {...b, c}; ok 12594 no-undefined valid void 0 ok 12595 no-undefined valid void!0 ok 12596 no-undefined valid void-0 ok 12597 no-undefined valid void+0 ok 12598 no-undefined valid null ok 12599 no-undefined valid undefine ok 12600 no-undefined valid ndefined ok 12601 no-undefined valid a.undefined ok 12602 no-undefined valid this.undefined ok 12603 no-undefined valid global['undefined'] ok 12604 no-undefined valid ({ undefined: bar }) ok 12605 no-undefined valid ({ undefined: bar } = foo) ok 12606 no-undefined valid ({ undefined() {} }) ok 12607 no-undefined valid class Foo { undefined() {} } ok 12608 no-undefined valid (class { undefined() {} }) ok 12609 no-undefined valid import { undefined as a } from 'foo' ok 12610 no-undefined valid export { undefined } from 'foo' ok 12611 no-undefined valid export { undefined as a } from 'foo' ok 12612 no-undefined valid export { a as undefined } from 'foo' ok 12613 no-undefined invalid undefined ok 12614 no-undefined invalid undefined.a ok 12615 no-undefined invalid a[undefined] ok 12616 no-undefined invalid undefined[0] ok 12617 no-undefined invalid f(undefined) ok 12618 no-undefined invalid function f(undefined) {} ok 12619 no-undefined invalid function f() { var undefined; } ok 12620 no-undefined invalid function f() { undefined = true; } ok 12621 no-undefined invalid var undefined; ok 12622 no-undefined invalid try {} catch(undefined) {} ok 12623 no-undefined invalid function undefined() {} ok 12624 no-undefined invalid (function undefined(){}()) ok 12625 no-undefined invalid var foo = function undefined() {} ok 12626 no-undefined invalid foo = function undefined() {} ok 12627 no-undefined invalid undefined = true ok 12628 no-undefined invalid var undefined = true ok 12629 no-undefined invalid ({ undefined }) ok 12630 no-undefined invalid ({ [undefined]: foo }) ok 12631 no-undefined invalid ({ bar: undefined }) ok 12632 no-undefined invalid ({ bar: undefined } = foo) ok 12633 no-undefined invalid var { undefined } = foo ok 12634 no-undefined invalid var { bar: undefined } = foo ok 12635 no-undefined invalid ({ undefined: function undefined() {} }) ok 12636 no-undefined invalid ({ foo: function undefined() {} }) ok 12637 no-undefined invalid class Foo { [undefined]() {} } ok 12638 no-undefined invalid (class { [undefined]() {} }) ok 12639 no-undefined invalid var undefined = true; undefined = false; ok 12640 no-undefined invalid import undefined from 'foo' ok 12641 no-undefined invalid import * as undefined from 'foo' ok 12642 no-undefined invalid import { undefined } from 'foo' ok 12643 no-undefined invalid import { a as undefined } from 'foo' ok 12644 no-undefined invalid let a = [b, ...undefined] ok 12645 no-undefined invalid [a, ...undefined] = b ok 12646 no-undefined invalid [a = undefined] = b ok 12647 no-underscore-dangle valid var foo_bar = 1; ok 12648 no-underscore-dangle valid function foo_bar() {} ok 12649 no-underscore-dangle valid foo.bar.__proto__; ok 12650 no-underscore-dangle valid console.log(__filename); console.log(__dirname); ok 12651 no-underscore-dangle valid var _ = require('underscore'); ok 12652 no-underscore-dangle valid var a = b._; ok 12653 no-underscore-dangle valid export default function() {} ok 12654 no-underscore-dangle valid var _foo = 1 ok 12655 no-underscore-dangle valid var __proto__ = 1; ok 12656 no-underscore-dangle valid foo._bar; ok 12657 no-underscore-dangle valid function _foo() {} ok 12658 no-underscore-dangle valid this._bar; ok 12659 no-underscore-dangle valid class foo { constructor() { super._bar; } } ok 12660 no-underscore-dangle valid class foo { _onClick() { } } ok 12661 no-underscore-dangle valid class foo { onClick_() { } } ok 12662 no-underscore-dangle valid const o = { _onClick() { } } ok 12663 no-underscore-dangle valid const o = { onClick_() { } } ok 12664 no-underscore-dangle valid const o = { _foo: 'bar' } ok 12665 no-underscore-dangle valid const o = { foo_: 'bar' } ok 12666 no-underscore-dangle invalid var _foo = 1 ok 12667 no-underscore-dangle invalid var foo_ = 1 ok 12668 no-underscore-dangle invalid function _foo() {} ok 12669 no-underscore-dangle invalid function foo_() {} ok 12670 no-underscore-dangle invalid var __proto__ = 1; ok 12671 no-underscore-dangle invalid foo._bar; ok 12672 no-underscore-dangle invalid this._prop; ok 12673 no-underscore-dangle invalid class foo { constructor() { super._prop; } } ok 12674 no-underscore-dangle invalid class foo { constructor() { this._prop; } } ok 12675 no-underscore-dangle invalid class foo { _onClick() { } } ok 12676 no-underscore-dangle invalid class foo { onClick_() { } } ok 12677 no-underscore-dangle invalid const o = { _onClick() { } } ok 12678 no-underscore-dangle invalid const o = { onClick_() { } } ok 12679 no-unexpected-multiline valid (x || y).aFunction() ok 12680 no-unexpected-multiline valid [a, b, c].forEach(doSomething) ok 12681 no-unexpected-multiline valid var a = b;\u000a(x || y).doSomething() ok 12682 no-unexpected-multiline valid var a = b\u000a;(x || y).doSomething() ok 12683 no-unexpected-multiline valid var a = b\u000avoid (x || y).doSomething() ok 12684 no-unexpected-multiline valid var a = b;\u000a[1, 2, 3].forEach(console.log) ok 12685 no-unexpected-multiline valid var a = b\u000avoid [1, 2, 3].forEach(console.log) ok 12686 no-unexpected-multiline valid "abc\\u000a(123)" ok 12687 no-unexpected-multiline valid var a = (\u000a(123)\u000a) ok 12688 no-unexpected-multiline valid f(\u000a(x)\u000a) ok 12689 no-unexpected-multiline valid (\u000afunction () {}\u000a)[1] ok 12690 no-unexpected-multiline valid let x = function() {};\u000a `hello` ok 12691 no-unexpected-multiline valid let x = function() {}\u000ax `hello` ok 12692 no-unexpected-multiline valid String.raw `Hi\u000a${2+3}!`; ok 12693 no-unexpected-multiline valid x\u000a.y\u000az `Valid Test Case` ok 12694 no-unexpected-multiline valid \u000a foo\u000a / bar /2\u000a ok 12695 no-unexpected-multiline valid \u000a foo\u000a / bar / mgy\u000a ok 12696 no-unexpected-multiline valid \u000a foo\u000a / bar /\u000a gym\u000a ok 12697 no-unexpected-multiline valid \u000a foo\u000a / bar\u000a / ygm\u000a ok 12698 no-unexpected-multiline valid \u000a foo\u000a / bar /GYM\u000a ok 12699 no-unexpected-multiline valid \u000a foo\u000a / bar / baz\u000a ok 12700 no-unexpected-multiline valid foo /bar/g ok 12701 no-unexpected-multiline valid \u000a foo\u000a /denominator/\u000a 2\u000a ok 12702 no-unexpected-multiline valid \u000a foo\u000a / /abc/\u000a ok 12703 no-unexpected-multiline valid \u000a 5 / (5\u000a / 5)\u000a ok 12704 no-unexpected-multiline invalid var a = b\u000a(x || y).doSomething() ok 12705 no-unexpected-multiline invalid var a = (a || b)\u000a(x || y).doSomething() ok 12706 no-unexpected-multiline invalid var a = (a || b)\u000a(x).doSomething() ok 12707 no-unexpected-multiline invalid var a = b\u000a[a, b, c].forEach(doSomething) ok 12708 no-unexpected-multiline invalid var a = b\u000a (x || y).doSomething() ok 12709 no-unexpected-multiline invalid var a = b\u000a [a, b, c].forEach(doSomething) ok 12710 no-unexpected-multiline invalid let x = function() {}\u000a `hello` ok 12711 no-unexpected-multiline invalid let x = function() {}\u000ax\u000a`hello` ok 12712 no-unexpected-multiline invalid x\u000a.y\u000az\u000a`Invalid Test Case` ok 12713 no-unexpected-multiline invalid \u000a foo\u000a / bar /gym\u000a ok 12714 no-unexpected-multiline invalid \u000a foo\u000a / bar /g\u000a ok 12715 no-unexpected-multiline invalid \u000a foo\u000a / bar /g.test(baz)\u000a ok 12716 no-unexpected-multiline invalid \u000a foo\u000a /bar/gimuygimuygimuy.test(baz)\u000a ok 12717 no-unexpected-multiline invalid \u000a foo\u000a /bar/s.test(baz)\u000a ok 12718 no-unmodified-loop-condition valid var foo = 0; while (foo) { ++foo; } ok 12719 no-unmodified-loop-condition valid let foo = 0; while (foo) { ++foo; } ok 12720 no-unmodified-loop-condition valid var foo = 0; while (foo) { foo += 1; } ok 12721 no-unmodified-loop-condition valid var foo = 0; while (foo++) { } ok 12722 no-unmodified-loop-condition valid var foo = 0; while (foo = next()) { } ok 12723 no-unmodified-loop-condition valid var foo = 0; while (ok(foo)) { } ok 12724 no-unmodified-loop-condition valid var foo = 0, bar = 0; while (++foo < bar) { } ok 12725 no-unmodified-loop-condition valid var foo = 0, obj = {}; while (foo === obj.bar) { } ok 12726 no-unmodified-loop-condition valid var foo = 0, f = {}, bar = {}; while (foo === f(bar)) { } ok 12727 no-unmodified-loop-condition valid var foo = 0, f = {}; while (foo === f()) { } ok 12728 no-unmodified-loop-condition valid var foo = 0, tag = 0; while (foo === tag`abc`) { } ok 12729 no-unmodified-loop-condition valid function* foo() { var foo = 0; while (yield foo) { } } ok 12730 no-unmodified-loop-condition valid function* foo() { var foo = 0; while (foo === (yield)) { } } ok 12731 no-unmodified-loop-condition valid var foo = 0; while (foo.ok) { } ok 12732 no-unmodified-loop-condition valid var foo = 0; while (foo) { update(); } function update() { ++foo; } ok 12733 no-unmodified-loop-condition valid var foo = 0, bar = 9; while (foo < bar) { foo += 1; } ok 12734 no-unmodified-loop-condition valid var foo = 0, bar = 1, baz = 2; while (foo ? bar : baz) { foo += 1; } ok 12735 no-unmodified-loop-condition valid var foo = 0, bar = 0; while (foo && bar) { ++foo; ++bar; } ok 12736 no-unmodified-loop-condition valid var foo = 0, bar = 0; while (foo || bar) { ++foo; ++bar; } ok 12737 no-unmodified-loop-condition valid var foo = 0; do { ++foo; } while (foo); ok 12738 no-unmodified-loop-condition valid var foo = 0; do { } while (foo++); ok 12739 no-unmodified-loop-condition valid for (var foo = 0; foo; ++foo) { } ok 12740 no-unmodified-loop-condition valid for (var foo = 0; foo;) { ++foo } ok 12741 no-unmodified-loop-condition valid var foo = 0, bar = 0; for (bar; foo;) { ++foo } ok 12742 no-unmodified-loop-condition valid var foo; if (foo) { } ok 12743 no-unmodified-loop-condition valid var a = [1, 2, 3]; var len = a.length; for (var i = 0; i < len - 1; i++) {} ok 12744 no-unmodified-loop-condition invalid var foo = 0; while (foo) { } foo = 1; ok 12745 no-unmodified-loop-condition invalid var foo = 0; while (!foo) { } foo = 1; ok 12746 no-unmodified-loop-condition invalid var foo = 0; while (foo != null) { } foo = 1; ok 12747 no-unmodified-loop-condition invalid var foo = 0, bar = 9; while (foo < bar) { } foo = 1; ok 12748 no-unmodified-loop-condition invalid var foo = 0, bar = 0; while (foo && bar) { ++bar; } foo = 1; ok 12749 no-unmodified-loop-condition invalid var foo = 0, bar = 0; while (foo && bar) { ++foo; } foo = 1; ok 12750 no-unmodified-loop-condition invalid var a, b, c; while (a < c && b < c) { ++a; } foo = 1; ok 12751 no-unmodified-loop-condition invalid var foo = 0; while (foo ? 1 : 0) { } foo = 1; ok 12752 no-unmodified-loop-condition invalid var foo = 0; while (foo) { update(); } function update(foo) { ++foo; } ok 12753 no-unmodified-loop-condition invalid var foo; do { } while (foo); ok 12754 no-unmodified-loop-condition invalid for (var foo = 0; foo < 10; ) { } foo = 1; ok 12755 no-unneeded-ternary valid config.newIsCap = config.newIsCap !== false ok 12756 no-unneeded-ternary valid var a = x === 2 ? 'Yes' : 'No'; ok 12757 no-unneeded-ternary valid var a = x === 2 ? true : 'No'; ok 12758 no-unneeded-ternary valid var a = x === 2 ? 'Yes' : false; ok 12759 no-unneeded-ternary valid var a = x === 2 ? 'true' : 'false'; ok 12760 no-unneeded-ternary valid var a = foo ? foo : bar; ok 12761 no-unneeded-ternary valid var value = 'a';var canSet = true;var result = value || (canSet ? 'unset' : 'can not set') ok 12762 no-unneeded-ternary valid var a = foo ? 'Yes' : foo; ok 12763 no-unneeded-ternary valid var a = foo ? bar : foo; ok 12764 no-unneeded-ternary invalid var a = x === 2 ? true : false; ok 12765 no-unneeded-ternary invalid var a = x >= 2 ? true : false; ok 12766 no-unneeded-ternary invalid var a = x ? true : false; ok 12767 no-unneeded-ternary invalid var a = x === 1 ? false : true; ok 12768 no-unneeded-ternary invalid var a = x != 1 ? false : true; ok 12769 no-unneeded-ternary invalid var a = foo() ? false : true; ok 12770 no-unneeded-ternary invalid var a = !foo() ? false : true; ok 12771 no-unneeded-ternary invalid var a = foo + bar ? false : true; ok 12772 no-unneeded-ternary invalid var a = x instanceof foo ? false : true; ok 12773 no-unneeded-ternary invalid var a = foo ? false : false; ok 12774 no-unneeded-ternary invalid var a = foo() ? false : false; ok 12775 no-unneeded-ternary invalid var a = x instanceof foo ? true : false; ok 12776 no-unneeded-ternary invalid var a = !foo ? true : false; ok 12777 no-unneeded-ternary invalid \u000a var value = 'a'\u000a var canSet = true\u000a var result = value ? value : canSet ? 'unset' : 'can not set'\u000a ok 12778 no-unneeded-ternary invalid foo ? foo : (bar ? baz : qux) ok 12779 no-unneeded-ternary invalid function* fn() { foo ? foo : yield bar } ok 12780 no-unneeded-ternary invalid var a = foo ? foo : 'No'; ok 12781 no-unneeded-ternary invalid var a = ((foo)) ? (((((foo))))) : ((((((((((((((bar)))))))))))))); ok 12782 no-unneeded-ternary invalid var a = b ? b : c => c; ok 12783 no-unneeded-ternary invalid var a = b ? b : c = 0; ok 12784 no-unneeded-ternary invalid var a = b ? b : (c => c); ok 12785 no-unneeded-ternary invalid var a = b ? b : (c = 0); ok 12786 no-unneeded-ternary invalid var a = b ? b : (c) => (c); ok 12787 no-unneeded-ternary invalid var a = b ? b : c, d; // this is ((b ? b : c), (d)) ok 12788 no-unneeded-ternary invalid var a = b ? b : (c, d); ok 12789 no-unreachable valid function foo() { function bar() { return 1; } return bar(); } ok 12790 no-unreachable valid function foo() { return bar(); function bar() { return 1; } } ok 12791 no-unreachable valid function foo() { return x; var x; } ok 12792 no-unreachable valid function foo() { var x = 1; var y = 2; } ok 12793 no-unreachable valid function foo() { var x = 1; var y = 2; return; } ok 12794 no-unreachable valid while (true) { switch (foo) { case 1: x = 1; x = 2;} } ok 12795 no-unreachable valid while (true) { break; var x; } ok 12796 no-unreachable valid while (true) { continue; var x, y; } ok 12797 no-unreachable valid while (true) { throw 'message'; var x; } ok 12798 no-unreachable valid while (true) { if (true) break; var x = 1; } ok 12799 no-unreachable valid while (true) continue; ok 12800 no-unreachable valid switch (foo) { case 1: break; var x; } ok 12801 no-unreachable valid switch (foo) { case 1: break; var x; default: throw true; }; ok 12802 no-unreachable valid const arrow_direction = arrow => { switch (arrow) { default: throw new Error(); };} ok 12803 no-unreachable valid var x = 1; y = 2; throw 'uh oh'; var y; ok 12804 no-unreachable valid function foo() { var x = 1; if (x) { return; } x = 2; } ok 12805 no-unreachable valid function foo() { var x = 1; if (x) { } else { return; } x = 2; } ok 12806 no-unreachable valid function foo() { var x = 1; switch (x) { case 0: break; default: return; } x = 2; } ok 12807 no-unreachable valid function foo() { var x = 1; while (x) { return; } x = 2; } ok 12808 no-unreachable valid function foo() { var x = 1; for (x in {}) { return; } x = 2; } ok 12809 no-unreachable valid function foo() { var x = 1; try { return; } finally { x = 2; } } ok 12810 no-unreachable valid function foo() { var x = 1; for (;;) { if (x) break; } x = 2; } ok 12811 no-unreachable valid A: { break A; } foo() ok 12812 no-unreachable invalid function foo() { return x; var x = 1; } ok 12813 no-unreachable invalid function foo() { return x; var x, y = 1; } ok 12814 no-unreachable invalid while (true) { continue; var x = 1; } ok 12815 no-unreachable invalid function foo() { return; x = 1; } ok 12816 no-unreachable invalid function foo() { throw error; x = 1; } ok 12817 no-unreachable invalid while (true) { break; x = 1; } ok 12818 no-unreachable invalid while (true) { continue; x = 1; } ok 12819 no-unreachable invalid function foo() { switch (foo) { case 1: return; x = 1; } } ok 12820 no-unreachable invalid function foo() { switch (foo) { case 1: throw e; x = 1; } } ok 12821 no-unreachable invalid while (true) { switch (foo) { case 1: break; x = 1; } } ok 12822 no-unreachable invalid while (true) { switch (foo) { case 1: continue; x = 1; } } ok 12823 no-unreachable invalid var x = 1; throw 'uh oh'; var y = 2; ok 12824 no-unreachable invalid function foo() { var x = 1; if (x) { return; } else { throw e; } x = 2; } ok 12825 no-unreachable invalid function foo() { var x = 1; if (x) return; else throw -1; x = 2; } ok 12826 no-unreachable invalid function foo() { var x = 1; try { return; } finally {} x = 2; } ok 12827 no-unreachable invalid function foo() { var x = 1; try { } finally { return; } x = 2; } ok 12828 no-unreachable invalid function foo() { var x = 1; do { return; } while (x); x = 2; } ok 12829 no-unreachable invalid function foo() { var x = 1; while (x) { if (x) break; else continue; x = 2; } } ok 12830 no-unreachable invalid function foo() { var x = 1; for (;;) { if (x) continue; } x = 2; } ok 12831 no-unreachable invalid function foo() { var x = 1; while (true) { } x = 2; } ok 12832 no-unreachable invalid const arrow_direction = arrow => { switch (arrow) { default: throw new Error(); }; g() } ok 12833 no-unreachable invalid \u000a function foo() {\u000a return;\u000a\u000a a(); // ← ERROR: Unreachable code. (no-unreachable)\u000a\u000a b() // ↑ ';' token is included in the unreachable code, so this statement will be merged.\u000a // comment\u000a c(); // ↑ ')' token is included in the unreachable code, so this statement will be merged.\u000a }\u000a ok 12834 no-unreachable invalid \u000a function foo() {\u000a return;\u000a\u000a a();\u000a\u000a if (b()) {\u000a c()\u000a } else {\u000a d()\u000a }\u000a }\u000a ok 12835 no-unreachable invalid \u000a function foo() {\u000a if (a) {\u000a return\u000a b();\u000a c();\u000a } else {\u000a throw err\u000a d();\u000a }\u000a }\u000a ok 12836 no-unreachable invalid \u000a function foo() {\u000a if (a) {\u000a return\u000a b();\u000a c();\u000a } else {\u000a throw err\u000a d();\u000a }\u000a e();\u000a }\u000a ok 12837 no-unsafe-finally valid var foo = function() {\u000a try { \u000a return 1; \u000a } catch(err) { \u000a return 2; \u000a } finally { \u000a console.log('hola!') \u000a } \u000a } ok 12838 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { console.log('hola!') } } ok 12839 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { function a(x) { return x } } } ok 12840 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { var a = function(x) { if(!x) { throw new Error() } } } } ok 12841 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { var a = function(x) { while(true) { if(x) { break } else { continue } } } } } ok 12842 no-unsafe-finally valid var foo = function() { try { return 1 } catch(err) { return 2 } finally { var a = function(x) { label: while(true) { if(x) { break label; } else { continue } } } } } ok 12843 no-unsafe-finally valid var foo = function() { try {} finally { while (true) break; } } ok 12844 no-unsafe-finally valid var foo = function() { try {} finally { while (true) continue; } } ok 12845 no-unsafe-finally valid var foo = function() { try {} finally { switch (true) { case true: break; } } } ok 12846 no-unsafe-finally valid var foo = function() { try {} finally { do { break; } while (true) } } ok 12847 no-unsafe-finally valid var foo = function() { try { return 1; } catch(err) { return 2; } finally { var bar = () => { throw new Error(); }; } }; ok 12848 no-unsafe-finally valid var foo = function() { try { return 1; } catch(err) { return 2 } finally { (x) => x } } ok 12849 no-unsafe-finally valid var foo = function() { try { return 1; } finally { class bar { constructor() {} static ehm() { return 'Hola!'; } } } }; ok 12850 no-unsafe-finally invalid var foo = function() { \u000a try { \u000a return 1; \u000a } catch(err) { \u000a return 2; \u000a } finally { \u000a return 3; \u000a } \u000a } ok 12851 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { if(true) { return 3 } else { return 2 } } } ok 12852 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { return 3 } } ok 12853 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { return function(x) { return y } } } ok 12854 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { return { x: function(c) { return c } } } } ok 12855 no-unsafe-finally invalid var foo = function() { try { return 1 } catch(err) { return 2 } finally { throw new Error() } } ok 12856 no-unsafe-finally invalid var foo = function() { try { foo(); } finally { try { bar(); } finally { return; } } }; ok 12857 no-unsafe-finally invalid var foo = function() { label: try { return 0; } finally { break label; } return 1; } ok 12858 no-unsafe-finally invalid var foo = function() { \u000a a: try { \u000a return 1; \u000a } catch(err) { \u000a return 2; \u000a } finally { \u000a break a; \u000a } \u000a } ok 12859 no-unsafe-finally invalid var foo = function() { while (true) try {} finally { break; } } ok 12860 no-unsafe-finally invalid var foo = function() { while (true) try {} finally { continue; } } ok 12861 no-unsafe-finally invalid var foo = function() { switch (true) { case true: try {} finally { break; } } } ok 12862 no-unsafe-finally invalid var foo = function() { a: while (true) try {} finally { switch (true) { case true: break a; } } } ok 12863 no-unsafe-finally invalid var foo = function() { a: while (true) try {} finally { switch (true) { case true: continue; } } } ok 12864 no-unsafe-finally invalid var foo = function() { a: switch (true) { case true: try {} finally { switch (true) { case true: break a; } } } } ok 12865 no-unsafe-negation valid a in b ok 12866 no-unsafe-negation valid a in b === false ok 12867 no-unsafe-negation valid !(a in b) ok 12868 no-unsafe-negation valid (!a) in b ok 12869 no-unsafe-negation valid a instanceof b ok 12870 no-unsafe-negation valid a instanceof b === false ok 12871 no-unsafe-negation valid !(a instanceof b) ok 12872 no-unsafe-negation valid (!a) instanceof b ok 12873 no-unsafe-negation invalid !a in b ok 12874 no-unsafe-negation invalid (!a in b) ok 12875 no-unsafe-negation invalid !(a) in b ok 12876 no-unsafe-negation invalid !a instanceof b ok 12877 no-unsafe-negation invalid (!a instanceof b) ok 12878 no-unsafe-negation invalid !(a) instanceof b ok 12879 no-unused-expressions valid function f(){} ok 12880 no-unused-expressions valid a = b ok 12881 no-unused-expressions valid new a ok 12882 no-unused-expressions valid {} ok 12883 no-unused-expressions valid f(); g() ok 12884 no-unused-expressions valid i++ ok 12885 no-unused-expressions valid a() ok 12886 no-unused-expressions valid a && a() ok 12887 no-unused-expressions valid a() || (b = c) ok 12888 no-unused-expressions valid a ? b() : c() ok 12889 no-unused-expressions valid a ? b() || (c = d) : e() ok 12890 no-unused-expressions valid delete foo.bar ok 12891 no-unused-expressions valid void new C ok 12892 no-unused-expressions valid "use strict"; ok 12893 no-unused-expressions valid "directive one"; "directive two"; f(); ok 12894 no-unused-expressions valid function foo() {"use strict"; return true; } ok 12895 no-unused-expressions valid var foo = () => {"use strict"; return true; } ok 12896 no-unused-expressions valid function foo() {"directive one"; "directive two"; f(); } ok 12897 no-unused-expressions valid function foo() { var foo = "use strict"; return true; } ok 12898 no-unused-expressions valid function* foo(){ yield 0; } ok 12899 no-unused-expressions valid async function foo() { await 5; } ok 12900 no-unused-expressions valid async function foo() { await foo.bar; } ok 12901 no-unused-expressions valid async function foo() { bar && await baz; } ok 12902 no-unused-expressions valid async function foo() { foo ? await bar : await baz; } ok 12903 no-unused-expressions valid tag`tagged template literal` ok 12904 no-unused-expressions valid shouldNotBeAffectedByAllowTemplateTagsOption() ok 12905 no-unused-expressions invalid 0 ok 12906 no-unused-expressions invalid a ok 12907 no-unused-expressions invalid f(), 0 ok 12908 no-unused-expressions invalid {0} ok 12909 no-unused-expressions invalid [] ok 12910 no-unused-expressions invalid a && b(); ok 12911 no-unused-expressions invalid a() || false ok 12912 no-unused-expressions invalid a || (b = c) ok 12913 no-unused-expressions invalid a ? b() || (c = d) : e ok 12914 no-unused-expressions invalid `untagged template literal` ok 12915 no-unused-expressions invalid tag`tagged template literal` ok 12916 no-unused-expressions invalid a && b() ok 12917 no-unused-expressions invalid a ? b() : c() ok 12918 no-unused-expressions invalid a || b ok 12919 no-unused-expressions invalid a() && b ok 12920 no-unused-expressions invalid a ? b : 0 ok 12921 no-unused-expressions invalid a ? b : c() ok 12922 no-unused-expressions invalid foo.bar; ok 12923 no-unused-expressions invalid !a ok 12924 no-unused-expressions invalid +a ok 12925 no-unused-expressions invalid "directive one"; f(); "directive two"; ok 12926 no-unused-expressions invalid function foo() {"directive one"; f(); "directive two"; } ok 12927 no-unused-expressions invalid if (0) { "not a directive"; f(); } ok 12928 no-unused-expressions invalid function foo() { var foo = true; "use strict"; } ok 12929 no-unused-expressions invalid var foo = () => { var foo = true; "use strict"; } ok 12930 no-unused-expressions invalid `untagged template literal` ok 12931 no-unused-expressions invalid `untagged template literal` ok 12932 no-unused-expressions invalid tag`tagged template literal` ok 12933 no-unused-labels valid A: break A; ok 12934 no-unused-labels valid A: { foo(); break A; bar(); } ok 12935 no-unused-labels valid A: if (a) { foo(); if (b) break A; bar(); } ok 12936 no-unused-labels valid A: for (var i = 0; i < 10; ++i) { foo(); if (a) break A; bar(); } ok 12937 no-unused-labels valid A: for (var i = 0; i < 10; ++i) { foo(); if (a) continue A; bar(); } ok 12938 no-unused-labels valid A: { B: break B; C: for (var i = 0; i < 10; ++i) { foo(); if (a) break A; if (c) continue C; bar(); } } ok 12939 no-unused-labels valid A: { var A = 0; console.log(A); break A; console.log(A); } ok 12940 no-unused-labels invalid A: var foo = 0; ok 12941 no-unused-labels invalid A: { foo(); bar(); } ok 12942 no-unused-labels invalid A: if (a) { foo(); bar(); } ok 12943 no-unused-labels invalid A: for (var i = 0; i < 10; ++i) { foo(); if (a) break; bar(); } ok 12944 no-unused-labels invalid A: for (var i = 0; i < 10; ++i) { foo(); if (a) continue; bar(); } ok 12945 no-unused-labels invalid A: for (var i = 0; i < 10; ++i) { B: break A; } ok 12946 no-unused-labels invalid A: { var A = 0; console.log(A); } ok 12947 no-unused-labels invalid A: /* comment */ foo ok 12948 no-unused-labels invalid A /* comment */: foo ok 12949 no-unused-vars valid var foo = 5;\u000a\u000alabel: while (true) {\u000a console.log(foo);\u000a break label;\u000a} ok 12950 no-unused-vars valid var foo = 5;\u000a\u000awhile (true) {\u000a console.log(foo);\u000a break;\u000a} ok 12951 no-unused-vars valid for (let prop in box) {\u000a box[prop] = parseInt(box[prop]);\u000a} ok 12952 no-unused-vars valid var box = {a: 2};\u000a for (var prop in box) {\u000a box[prop] = parseInt(box[prop]);\u000a} ok 12953 no-unused-vars valid f({ set foo(a) { return; } }); ok 12954 no-unused-vars valid a; var a; ok 12955 no-unused-vars valid var a=10; alert(a); ok 12956 no-unused-vars valid var a=10; (function() { alert(a); })(); ok 12957 no-unused-vars valid var a=10; (function() { setTimeout(function() { alert(a); }, 0); })(); ok 12958 no-unused-vars valid var a=10; d[a] = 0; ok 12959 no-unused-vars valid (function() { var a=10; return a; })(); ok 12960 no-unused-vars valid (function g() {})() ok 12961 no-unused-vars valid function f(a) {alert(a);}; f(); ok 12962 no-unused-vars valid var c = 0; function f(a){ var b = a; return b; }; f(c); ok 12963 no-unused-vars valid function a(x, y){ return y; }; a(); ok 12964 no-unused-vars valid var arr1 = [1, 2]; var arr2 = [3, 4]; for (var i in arr1) { arr1[i] = 5; } for (var i in arr2) { arr2[i] = 10; } ok 12965 no-unused-vars valid var a=10; ok 12966 no-unused-vars valid var min = "min"; Math[min]; ok 12967 no-unused-vars valid Foo.bar = function(baz) { return baz; }; ok 12968 no-unused-vars valid myFunc(function foo() {}.bind(this)) ok 12969 no-unused-vars valid myFunc(function foo(){}.toString()) ok 12970 no-unused-vars valid function foo(first, second) {\u000adoStuff(function() {\u000aconsole.log(second);});}; foo() ok 12971 no-unused-vars valid (function() { var doSomething = function doSomething() {}; doSomething() }()) ok 12972 no-unused-vars valid try {} catch(e) {} ok 12973 no-unused-vars valid /*global a */ a; ok 12974 no-unused-vars valid var a=10; (function() { alert(a); })(); ok 12975 no-unused-vars valid function g(bar, baz) { return baz; }; g(); ok 12976 no-unused-vars valid function g(bar, baz) { return baz; }; g(); ok 12977 no-unused-vars valid function g(bar, baz) { return bar; }; g(); ok 12978 no-unused-vars valid function g(bar, baz) { return 2; }; g(); ok 12979 no-unused-vars valid function g(bar, baz) { return bar + baz; }; g(); ok 12980 no-unused-vars valid var g = function(bar, baz) { return 2; }; g(); ok 12981 no-unused-vars valid (function z() { z(); })(); ok 12982 no-unused-vars valid ok 12983 no-unused-vars valid var who = "Paul";\u000amodule.exports = `Hello ${who}!`; ok 12984 no-unused-vars valid export var foo = 123; ok 12985 no-unused-vars valid export function foo () {} ok 12986 no-unused-vars valid let toUpper = (partial) => partial.toUpperCase; export {toUpper} ok 12987 no-unused-vars valid export class foo {} ok 12988 no-unused-vars valid class Foo{}; var x = new Foo(); x.foo() ok 12989 no-unused-vars valid const foo = "hello!";function bar(foobar = foo) { foobar.replace(/!$/, " world!");}\u000abar(); ok 12990 no-unused-vars valid function Foo(){}; var x = new Foo(); x.foo() ok 12991 no-unused-vars valid function foo() {var foo = 1; return foo}; foo(); ok 12992 no-unused-vars valid function foo(foo) {return foo}; foo(1); ok 12993 no-unused-vars valid function foo() {function foo() {return 1;}; return foo()}; foo(); ok 12994 no-unused-vars valid function foo() {var foo = 1; return foo}; foo(); ok 12995 no-unused-vars valid function foo(foo) {return foo}; foo(1); ok 12996 no-unused-vars valid function foo() {function foo() {return 1;}; return foo()}; foo(); ok 12997 no-unused-vars valid const x = 1; const [y = x] = []; foo(y); ok 12998 no-unused-vars valid const x = 1; const {y = x} = {}; foo(y); ok 12999 no-unused-vars valid const x = 1; const {z: [y = x]} = {}; foo(y); ok 13000 no-unused-vars valid const x = []; const {z: [y] = x} = {}; foo(y); ok 13001 no-unused-vars valid const x = 1; let y; [y = x] = []; foo(y); ok 13002 no-unused-vars valid const x = 1; let y; ({z: [y = x]} = {}); foo(y); ok 13003 no-unused-vars valid const x = []; let y; ({z: [y] = x} = {}); foo(y); ok 13004 no-unused-vars valid const x = 1; function foo(y = x) { bar(y); } foo(); ok 13005 no-unused-vars valid const x = 1; function foo({y = x} = {}) { bar(y); } foo(); ok 13006 no-unused-vars valid const x = 1; function foo(y = function(z = x) { bar(z); }) { y(); } foo(); ok 13007 no-unused-vars valid const x = 1; function foo(y = function() { bar(x); }) { y(); } foo(); ok 13008 no-unused-vars valid var x = 1; var [y = x] = []; foo(y); ok 13009 no-unused-vars valid var x = 1; var {y = x} = {}; foo(y); ok 13010 no-unused-vars valid var x = 1; var {z: [y = x]} = {}; foo(y); ok 13011 no-unused-vars valid var x = []; var {z: [y] = x} = {}; foo(y); ok 13012 no-unused-vars valid var x = 1, y; [y = x] = []; foo(y); ok 13013 no-unused-vars valid var x = 1, y; ({z: [y = x]} = {}); foo(y); ok 13014 no-unused-vars valid var x = [], y; ({z: [y] = x} = {}); foo(y); ok 13015 no-unused-vars valid var x = 1; function foo(y = x) { bar(y); } foo(); ok 13016 no-unused-vars valid var x = 1; function foo({y = x} = {}) { bar(y); } foo(); ok 13017 no-unused-vars valid var x = 1; function foo(y = function(z = x) { bar(z); }) { y(); } foo(); ok 13018 no-unused-vars valid var x = 1; function foo(y = function() { bar(x); }) { y(); } foo(); ok 13019 no-unused-vars valid /*exported toaster*/ var toaster = 'great' ok 13020 no-unused-vars valid /*exported toaster, poster*/ var toaster = 1; poster = 0; ok 13021 no-unused-vars valid /*exported x*/ var { x } = y ok 13022 no-unused-vars valid /*exported x, y*/ var { x, y } = z ok 13023 no-unused-vars valid /*eslint use-every-a:1*/ var a; ok 13024 no-unused-vars valid /*eslint use-every-a:1*/ !function(a) { return 1; } ok 13025 no-unused-vars valid /*eslint use-every-a:1*/ !function() { var a; return 1 } ok 13026 no-unused-vars valid var _a; ok 13027 no-unused-vars valid var a; function foo() { var _b; } foo(); ok 13028 no-unused-vars valid function foo(_a) { } foo(); ok 13029 no-unused-vars valid function foo(a, _b) { return a; } foo(); ok 13030 no-unused-vars valid var [ firstItemIgnored, secondItem ] = items;\u000aconsole.log(secondItem); ok 13031 no-unused-vars valid (function(obj) { var name; for ( name in obj ) return; })({}); ok 13032 no-unused-vars valid (function(obj) { var name; for ( name in obj ) { return; } })({}); ok 13033 no-unused-vars valid (function(obj) { for ( var name in obj ) { return true } })({}) ok 13034 no-unused-vars valid (function(obj) { for ( var name in obj ) return true })({}) ok 13035 no-unused-vars valid (function(obj) { let name; for ( name in obj ) return; })({}); ok 13036 no-unused-vars valid (function(obj) { let name; for ( name in obj ) { return; } })({}); ok 13037 no-unused-vars valid (function(obj) { for ( let name in obj ) { return true } })({}) ok 13038 no-unused-vars valid (function(obj) { for ( let name in obj ) return true })({}) ok 13039 no-unused-vars valid (function(obj) { for ( const name in obj ) { return true } })({}) ok 13040 no-unused-vars valid (function(obj) { for ( const name in obj ) return true })({}) ok 13041 no-unused-vars valid try{}catch(err){console.error(err);} ok 13042 no-unused-vars valid try{}catch(err){} ok 13043 no-unused-vars valid try{}catch(ignoreErr){} ok 13044 no-unused-vars valid try{}catch(err){} ok 13045 no-unused-vars valid const data = { type: 'coords', x: 1, y: 2 };\u000aconst { type, ...coords } = data;\u000a console.log(coords); ok 13046 no-unused-vars valid var a = 0, b; b = a = a + 1; foo(b); ok 13047 no-unused-vars valid var a = 0, b; b = a += a + 1; foo(b); ok 13048 no-unused-vars valid var a = 0, b; b = a++; foo(b); ok 13049 no-unused-vars valid function foo(a) { var b = a = a + 1; bar(b) } foo(); ok 13050 no-unused-vars valid function foo(a) { var b = a += a + 1; bar(b) } foo(); ok 13051 no-unused-vars valid function foo(a) { var b = a++; bar(b) } foo(); ok 13052 no-unused-vars valid var unregisterFooWatcher;\u000a// ...\u000aunregisterFooWatcher = $scope.$watch( "foo", function() {\u000a // ...some code..\u000a unregisterFooWatcher();\u000a}); ok 13053 no-unused-vars valid var ref;\u000aref = setInterval(\u000a function(){\u000a clearInterval(ref);\u000a }, 10); ok 13054 no-unused-vars valid var _timer;\u000afunction f() {\u000a _timer = setTimeout(function () {}, _timer ? 100 : 0);\u000a}\u000af(); ok 13055 no-unused-vars valid function foo(cb) { cb = function() { function something(a) { cb(1 + a); } register(something); }(); } foo(); ok 13056 no-unused-vars valid function* foo(cb) { cb = yield function(a) { cb(1 + a); }; } foo(); ok 13057 no-unused-vars valid function foo(cb) { cb = tag`hello${function(a) { cb(1 + a); }}`; } foo(); ok 13058 no-unused-vars valid function foo(cb) { var b; cb = b = function(a) { cb(1 + a); }; b(); } foo(); ok 13059 no-unused-vars valid function someFunction() {\u000a var a = 0, i;\u000a for (i = 0; i < 2; i++) {\u000a a = myFunction(a);\u000a }\u000a}\u000asomeFunction(); ok 13060 no-unused-vars valid (function(a, b, {c, d}) { d }) ok 13061 no-unused-vars valid (function(a, b, {c, d}) { c }) ok 13062 no-unused-vars valid (function(a, b, c) { c }) ok 13063 no-unused-vars valid (function(a, b, {c, d}) { c }) ok 13064 no-unused-vars valid (class { set foo(UNUSED) {} }) ok 13065 no-unused-vars valid class Foo { set bar(UNUSED) {} } console.log(Foo) ok 13066 no-unused-vars valid (({a, ...rest}) => rest) ok 13067 no-unused-vars valid /*eslint use-every-a:1*/ !function(b, a) { return 1 } ok 13068 no-unused-vars valid var a = function () { a(); }; a(); ok 13069 no-unused-vars valid var a = function(){ return function () { a(); } }; a(); ok 13070 no-unused-vars valid const a = () => { a(); }; a(); ok 13071 no-unused-vars valid const a = () => () => { a(); }; a(); ok 13072 no-unused-vars invalid function foox() { return foox(); } ok 13073 no-unused-vars invalid (function() { function foox() { if (true) { return foox(); } } }()) ok 13074 no-unused-vars invalid var a=10 ok 13075 no-unused-vars invalid function f() { var a = 1; return function(){ f(a *= 2); }; } ok 13076 no-unused-vars invalid function f() { var a = 1; return function(){ f(++a); }; } ok 13077 no-unused-vars invalid /*global a */ ok 13078 no-unused-vars invalid function foo(first, second) {\u000adoStuff(function() {\u000aconsole.log(second);});}; ok 13079 no-unused-vars invalid var a=10; ok 13080 no-unused-vars invalid var a=10; a=20; ok 13081 no-unused-vars invalid var a=10; (function() { var a = 1; alert(a); })(); ok 13082 no-unused-vars invalid var a=10, b=0, c=null; alert(a+b) ok 13083 no-unused-vars invalid var a=10, b=0, c=null; setTimeout(function() { var b=2; alert(a+b+c); }, 0); ok 13084 no-unused-vars invalid var a=10, b=0, c=null; setTimeout(function() { var b=2; var c=2; alert(a+b+c); }, 0); ok 13085 no-unused-vars invalid function f(){var a=[];return a.map(function(){});} ok 13086 no-unused-vars invalid function f(){var a=[];return a.map(function g(){});} ok 13087 no-unused-vars invalid function foo() {function foo(x) {\u000areturn x; }; return function() {return foo; }; } ok 13088 no-unused-vars invalid function f(){var x;function a(){x=42;}function b(){alert(x);}} ok 13089 no-unused-vars invalid function f(a) {}; f(); ok 13090 no-unused-vars invalid function a(x, y, z){ return y; }; a(); ok 13091 no-unused-vars invalid var min = Math.min ok 13092 no-unused-vars invalid var min = {min: 1} ok 13093 no-unused-vars invalid Foo.bar = function(baz) { return 1; }; ok 13094 no-unused-vars invalid var min = {min: 1} ok 13095 no-unused-vars invalid function gg(baz, bar) { return baz; }; gg(); ok 13096 no-unused-vars invalid (function(foo, baz, bar) { return baz; })(); ok 13097 no-unused-vars invalid (function(foo, baz, bar) { return baz; })(); ok 13098 no-unused-vars invalid (function z(foo) { var bar = 33; })(); ok 13099 no-unused-vars invalid (function z(foo) { z(); })(); ok 13100 no-unused-vars invalid function f() { var a = 1; return function(){ f(a = 2); }; } ok 13101 no-unused-vars invalid import x from "y"; ok 13102 no-unused-vars invalid export function fn2({ x, y }) {\u000a console.log(x); \u000a}; ok 13103 no-unused-vars invalid export function fn2( x, y ) {\u000a console.log(x); \u000a}; ok 13104 no-unused-vars invalid /*exported max*/ var max = 1, min = {min: 1} ok 13105 no-unused-vars invalid /*exported x*/ var { x, y } = z ok 13106 no-unused-vars invalid var _a; var b; ok 13107 no-unused-vars invalid var a; function foo() { var _b; var c_; } foo(); ok 13108 no-unused-vars invalid function foo(a, _b) { } foo(); ok 13109 no-unused-vars invalid function foo(a, _b, c) { return a; } foo(); ok 13110 no-unused-vars invalid function foo(_a) { } foo(); ok 13111 no-unused-vars invalid var [ firstItemIgnored, secondItem ] = items; ok 13112 no-unused-vars invalid (function(obj) { var name; for ( name in obj ) { i(); return; } })({}); ok 13113 no-unused-vars invalid (function(obj) { var name; for ( name in obj ) { } })({}); ok 13114 no-unused-vars invalid (function(obj) { for ( var name in obj ) { } })({}); ok 13115 no-unused-vars invalid \u000a/* global foobar, foo, bar */\u000afoobar; ok 13116 no-unused-vars invalid \u000a/* global foobar,\u000a foo,\u000a bar\u000a */\u000afoobar; ok 13117 no-unused-vars invalid const data = { type: 'coords', x: 1, y: 2 };\u000aconst { type, ...coords } = data;\u000a console.log(coords); ok 13118 no-unused-vars invalid const data = { type: 'coords', x: 1, y: 2 };\u000aconst { type, ...coords } = data;\u000a console.log(type) ok 13119 no-unused-vars invalid const data = { type: 'coords', x: 1, y: 2 };\u000aconst { type, ...coords } = data;\u000a console.log(type) ok 13120 no-unused-vars invalid const data = { vars: ['x','y'], x: 1, y: 2 };\u000aconst { vars: [x], ...coords } = data;\u000a console.log(coords) ok 13121 no-unused-vars invalid const data = { defaults: { x: 0 }, x: 1, y: 2 };\u000aconst { defaults: { x }, ...coords } = data;\u000a console.log(coords) ok 13122 no-unused-vars invalid (({a, ...rest}) => {}) ok 13123 no-unused-vars invalid /* global a$fooz,$foo */\u000aa$fooz; ok 13124 no-unused-vars invalid /* globals a$fooz, $ */\u000aa$fooz; ok 13125 no-unused-vars invalid /*globals $foo*/ ok 13126 no-unused-vars invalid /* global global*/ ok 13127 no-unused-vars invalid /*global foo:true*/ ok 13128 no-unused-vars invalid /*global 変数, 数*/\u000a変数; ok 13129 no-unused-vars invalid /*global 𠮷𩸽, 𠮷*/\u000a\u{20BB7}\u{29E3D}; ok 13130 no-unused-vars invalid export default function(a) {} ok 13131 no-unused-vars invalid export default function(a, b) { console.log(a); } ok 13132 no-unused-vars invalid export default (function(a) {}); ok 13133 no-unused-vars invalid export default (function(a, b) { console.log(a); }); ok 13134 no-unused-vars invalid export default (a) => {}; ok 13135 no-unused-vars invalid export default (a, b) => { console.log(a); }; ok 13136 no-unused-vars invalid try{}catch(err){}; ok 13137 no-unused-vars invalid try{}catch(err){}; ok 13138 no-unused-vars invalid try{}catch(ignoreErr){}try{}catch(err){}; ok 13139 no-unused-vars invalid try{}catch(error){}try{}catch(err){}; ok 13140 no-unused-vars invalid try{}catch(err){}; ok 13141 no-unused-vars invalid try{}catch(err){}; ok 13142 no-unused-vars invalid var a = 0; a = a + 1; ok 13143 no-unused-vars invalid var a = 0; a = a + a; ok 13144 no-unused-vars invalid var a = 0; a += a + 1; ok 13145 no-unused-vars invalid var a = 0; a++; ok 13146 no-unused-vars invalid function foo(a) { a = a + 1 } foo(); ok 13147 no-unused-vars invalid function foo(a) { a += a + 1 } foo(); ok 13148 no-unused-vars invalid function foo(a) { a++ } foo(); ok 13149 no-unused-vars invalid var a = 3; a = a * 5 + 6; ok 13150 no-unused-vars invalid var a = 2, b = 4; a = a * 2 + b; ok 13151 no-unused-vars invalid function foo(cb) { cb = function(a) { cb(1 + a); }; bar(not_cb); } foo(); ok 13152 no-unused-vars invalid function foo(cb) { cb = function(a) { return cb(1 + a); }(); } foo(); ok 13153 no-unused-vars invalid function foo(cb) { cb = (function(a) { cb(1 + a); }, cb); } foo(); ok 13154 no-unused-vars invalid function foo(cb) { cb = (0, function(a) { cb(1 + a); }); } foo(); ok 13155 no-unused-vars invalid while (a) {\u000a function foo(b) {\u000a b = b + 1;\u000a }\u000a foo()\u000a} ok 13156 no-unused-vars invalid (function(a, b, c) {}) ok 13157 no-unused-vars invalid (function(a, b, {c, d}) {}) ok 13158 no-unused-vars invalid (function(a, b, {c, d}) {}) ok 13159 no-unused-vars invalid (function(a, b, {c, d}) {}) ok 13160 no-unused-vars invalid /*global\u000dfoo*/ ok 13161 no-unused-vars invalid (function ({ a }, b ) { return b; })(); ok 13162 no-unused-vars invalid (function ({ a }, { b, c } ) { return b; })(); ok 13163 no-unused-vars invalid (function ({ a, b }, { c } ) { return b; })(); ok 13164 no-unused-vars invalid (function ([ a ], b ) { return b; })(); ok 13165 no-unused-vars invalid (function ([ a ], [ b, c ] ) { return b; })(); ok 13166 no-unused-vars invalid (function ([ a, b ], [ c ] ) { return b; })(); ok 13167 no-unused-vars invalid (function(_a) {})(); ok 13168 no-unused-vars invalid (function(_a) {})(); ok 13169 no-unused-vars invalid var a = function() { a(); }; ok 13170 no-unused-vars invalid var a = function(){ return function() { a(); } }; ok 13171 no-unused-vars invalid const a = () => { a(); }; ok 13172 no-unused-vars invalid const a = () => () => { a(); }; ok 13173 no-use-before-define valid var a=10; alert(a); ok 13174 no-use-before-define valid function b(a) { alert(a); } ok 13175 no-use-before-define valid Object.hasOwnProperty.call(a); ok 13176 no-use-before-define valid function a() { alert(arguments);} ok 13177 no-use-before-define valid a(); function a() { alert(arguments); } ok 13178 no-use-before-define valid (() => { var a = 42; alert(a); })(); ok 13179 no-use-before-define valid a(); try { throw new Error() } catch (a) {} ok 13180 no-use-before-define valid class A {} new A(); ok 13181 no-use-before-define valid var a = 0, b = a; ok 13182 no-use-before-define valid var {a = 0, b = a} = {}; ok 13183 no-use-before-define valid var [a = 0, b = a] = {}; ok 13184 no-use-before-define valid function foo() { foo(); } ok 13185 no-use-before-define valid var foo = function() { foo(); }; ok 13186 no-use-before-define valid var a; for (a in a) {} ok 13187 no-use-before-define valid var a; for (a of a) {} ok 13188 no-use-before-define valid "use strict"; a(); { function a() {} } ok 13189 no-use-before-define valid "use strict"; { a(); function a() {} } ok 13190 no-use-before-define valid switch (foo) { case 1: { a(); } default: { let a; }} ok 13191 no-use-before-define valid a(); { let a = function () {}; } ok 13192 no-use-before-define valid a(); function a() { alert(arguments); } ok 13193 no-use-before-define valid "use strict"; { a(); function a() {} } ok 13194 no-use-before-define valid function foo() { new A(); } class A {}; ok 13195 no-use-before-define valid function foo() { bar; } var bar; ok 13196 no-use-before-define valid var foo = () => bar; var bar; ok 13197 no-use-before-define invalid a++; var a=19; ok 13198 no-use-before-define invalid a++; var a=19; ok 13199 no-use-before-define invalid a++; var a=19; ok 13200 no-use-before-define invalid a(); var a=function() {}; ok 13201 no-use-before-define invalid alert(a[1]); var a=[1,3]; ok 13202 no-use-before-define invalid a(); function a() { alert(b); var b=10; a(); } ok 13203 no-use-before-define invalid a(); var a=function() {}; ok 13204 no-use-before-define invalid (() => { alert(a); var a = 42; })(); ok 13205 no-use-before-define invalid (() => a())(); function a() { } ok 13206 no-use-before-define invalid "use strict"; a(); { function a() {} } ok 13207 no-use-before-define invalid a(); try { throw new Error() } catch (foo) {var a;} ok 13208 no-use-before-define invalid var f = () => a; var a; ok 13209 no-use-before-define invalid new A(); class A {}; ok 13210 no-use-before-define invalid function foo() { new A(); } class A {}; ok 13211 no-use-before-define invalid new A(); var A = class {}; ok 13212 no-use-before-define invalid function foo() { new A(); } var A = class {}; ok 13213 no-use-before-define invalid a++; { var a; } ok 13214 no-use-before-define invalid "use strict"; { a(); function a() {} } ok 13215 no-use-before-define invalid {a; let a = 1} ok 13216 no-use-before-define invalid switch (foo) { case 1: a();\u000a default: \u000a let a;} ok 13217 no-use-before-define invalid if (true) { function foo() { a; } let a;} ok 13218 no-use-before-define invalid a(); var a=function() {}; ok 13219 no-use-before-define invalid new A(); class A {}; ok 13220 no-use-before-define invalid new A(); var A = class {}; ok 13221 no-use-before-define invalid function foo() { new A(); } var A = class {}; ok 13222 no-use-before-define invalid var a = a; ok 13223 no-use-before-define invalid let a = a + b; ok 13224 no-use-before-define invalid const a = foo(a); ok 13225 no-use-before-define invalid function foo(a = a) {} ok 13226 no-use-before-define invalid var {a = a} = []; ok 13227 no-use-before-define invalid var [a = a] = []; ok 13228 no-use-before-define invalid var {b = a, a} = {}; ok 13229 no-use-before-define invalid var [b = a, a] = {}; ok 13230 no-use-before-define invalid var {a = 0} = a; ok 13231 no-use-before-define invalid var [a = 0] = a; ok 13232 no-use-before-define invalid for (var a in a) {} ok 13233 no-use-before-define invalid for (var a of a) {} ok 13234 no-use-before-define invalid function foo() { bar; var bar = 1; } var bar; ok 13235 no-use-before-define invalid foo; var foo; ok 13236 no-use-before-define invalid for (let x = x;;); let x = 0 ok 13237 no-use-before-define invalid for (let x in xs); let xs = [] ok 13238 no-use-before-define invalid for (let x of xs); let xs = [] ok 13239 no-use-before-define invalid try {} catch ({message = x}) {} let x = '' ok 13240 no-use-before-define invalid with (obj) x; let x = {} ok 13241 no-use-before-define invalid with (x); let x = {} ok 13242 no-use-before-define invalid with (obj) { x } let x = {} ok 13243 no-use-before-define invalid with (obj) { if (a) { x } } let x = {} ok 13244 no-use-before-define invalid with (obj) { (() => { if (a) { x } })() } let x = {} ok 13245 no-useless-call valid foo.apply(obj, 1, 2); ok 13246 no-useless-call valid obj.foo.apply(null, 1, 2); ok 13247 no-useless-call valid obj.foo.apply(otherObj, 1, 2); ok 13248 no-useless-call valid a.b(x, y).c.foo.apply(a.b(x, z).c, 1, 2); ok 13249 no-useless-call valid foo.apply(obj, [1, 2]); ok 13250 no-useless-call valid obj.foo.apply(null, [1, 2]); ok 13251 no-useless-call valid obj.foo.apply(otherObj, [1, 2]); ok 13252 no-useless-call valid a.b(x, y).c.foo.apply(a.b(x, z).c, [1, 2]); ok 13253 no-useless-call valid a.b.foo.apply(a.b.c, [1, 2]); ok 13254 no-useless-call valid foo.apply(null, args); ok 13255 no-useless-call valid obj.foo.apply(obj, args); ok 13256 no-useless-call valid var call; foo[call](null, 1, 2); ok 13257 no-useless-call valid var apply; foo[apply](null, [1, 2]); ok 13258 no-useless-call valid foo.call(); ok 13259 no-useless-call valid obj.foo.call(); ok 13260 no-useless-call valid foo.apply(); ok 13261 no-useless-call valid obj.foo.apply(); ok 13262 no-useless-call invalid foo.call(undefined, 1, 2); ok 13263 no-useless-call invalid foo.call(void 0, 1, 2); ok 13264 no-useless-call invalid foo.call(null, 1, 2); ok 13265 no-useless-call invalid obj.foo.call(obj, 1, 2); ok 13266 no-useless-call invalid a.b.c.foo.call(a.b.c, 1, 2); ok 13267 no-useless-call invalid a.b(x, y).c.foo.call(a.b(x, y).c, 1, 2); ok 13268 no-useless-call invalid foo.apply(undefined, [1, 2]); ok 13269 no-useless-call invalid foo.apply(void 0, [1, 2]); ok 13270 no-useless-call invalid foo.apply(null, [1, 2]); ok 13271 no-useless-call invalid obj.foo.apply(obj, [1, 2]); ok 13272 no-useless-call invalid a.b.c.foo.apply(a.b.c, [1, 2]); ok 13273 no-useless-call invalid a.b(x, y).c.foo.apply(a.b(x, y).c, [1, 2]); ok 13274 no-useless-call invalid [].concat.apply([ ], [1, 2]); ok 13275 no-useless-call invalid [].concat.apply([\u000a/*empty*/\u000a], [1, 2]); ok 13276 no-useless-call invalid abc.get("foo", 0).concat.apply(abc . get("foo", 0 ), [1, 2]); ok 13277 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) {\u000a console.error(err);\u000a }\u000a ok 13278 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) {\u000a console.error(err);\u000a } finally {\u000a bar();\u000a }\u000a ok 13279 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) {\u000a doSomethingBeforeRethrow();\u000a throw err;\u000a }\u000a ok 13280 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) {\u000a throw err.msg;\u000a }\u000a ok 13281 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) {\u000a throw new Error("whoops!");\u000a }\u000a ok 13282 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) {\u000a throw bar;\u000a }\u000a ok 13283 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch (err) { }\u000a ok 13284 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch ({ err }) {\u000a throw err;\u000a }\u000a ok 13285 no-useless-catch valid \u000a try {\u000a foo();\u000a } catch ([ err ]) {\u000a throw err;\u000a }\u000a ok 13286 no-useless-catch valid \u000a async () => {\u000a try {\u000a await doSomething();\u000a } catch (e) {\u000a doSomethingAfterCatch();\u000a throw e;\u000a }\u000a }\u000a ok 13287 no-useless-catch valid \u000a try {\u000a throw new Error('foo');\u000a } catch {\u000a throw new Error('foo');\u000a }\u000a ok 13288 no-useless-catch invalid \u000a try {\u000a foo();\u000a } catch (err) {\u000a throw err;\u000a }\u000a ok 13289 no-useless-catch invalid \u000a try {\u000a foo();\u000a } catch (err) {\u000a throw err;\u000a } finally {\u000a foo();\u000a }\u000a ok 13290 no-useless-catch invalid \u000a try {\u000a foo();\u000a } catch (err) {\u000a /* some comment */\u000a throw err;\u000a }\u000a ok 13291 no-useless-catch invalid \u000a try {\u000a foo();\u000a } catch (err) {\u000a /* some comment */\u000a throw err;\u000a } finally {\u000a foo();\u000a }\u000a ok 13292 no-useless-catch invalid \u000a async () => {\u000a try {\u000a await doSomething();\u000a } catch (e) {\u000a throw e;\u000a }\u000a }\u000a ok 13293 no-useless-computed-key valid ({ 'a': 0, b(){} }) ok 13294 no-useless-computed-key valid ({ [x]: 0 }); ok 13295 no-useless-computed-key valid ({ a: 0, [b](){} }) ok 13296 no-useless-computed-key valid ({ ['__proto__']: [] }) ok 13297 no-useless-computed-key invalid ({ ['0']: 0 }) ok 13298 no-useless-computed-key invalid ({ ['0+1,234']: 0 }) ok 13299 no-useless-computed-key invalid ({ [0]: 0 }) ok 13300 no-useless-computed-key invalid ({ ['x']: 0 }) ok 13301 no-useless-computed-key invalid ({ ['x']() {} }) ok 13302 no-useless-computed-key invalid ({ [/* this comment prevents a fix */ 'x']: 0 }) ok 13303 no-useless-computed-key invalid ({ ['x' /* this comment also prevents a fix */]: 0 }) ok 13304 no-useless-computed-key invalid ({ [('x')]: 0 }) ok 13305 no-useless-computed-key invalid ({ *['x']() {} }) ok 13306 no-useless-computed-key invalid ({ async ['x']() {} }) ok 13307 no-useless-computed-key invalid ({ get[.2]() {} }) ok 13308 no-useless-computed-key invalid ({ set[.2](value) {} }) ok 13309 no-useless-computed-key invalid ({ async[.2]() {} }) ok 13310 no-useless-computed-key invalid ({ [2]() {} }) ok 13311 no-useless-computed-key invalid ({ get [2]() {} }) ok 13312 no-useless-computed-key invalid ({ set [2](value) {} }) ok 13313 no-useless-computed-key invalid ({ async [2]() {} }) ok 13314 no-useless-computed-key invalid ({ get[2]() {} }) ok 13315 no-useless-computed-key invalid ({ set[2](value) {} }) ok 13316 no-useless-computed-key invalid ({ async[2]() {} }) ok 13317 no-useless-computed-key invalid ({ get['foo']() {} }) ok 13318 no-useless-computed-key invalid ({ *[2]() {} }) ok 13319 no-useless-computed-key invalid ({ async*[2]() {} }) ok 13320 no-useless-concat valid var a = 1 + 1; ok 13321 no-useless-concat valid var a = 1 * '2'; ok 13322 no-useless-concat valid var a = 1 - 2; ok 13323 no-useless-concat valid var a = foo + bar; ok 13324 no-useless-concat valid var a = 'foo' + bar; ok 13325 no-useless-concat valid var foo = 'foo' +\u000a 'bar'; ok 13326 no-useless-concat valid var string = (number + 1) + 'px'; ok 13327 no-useless-concat valid 'a' + 1 ok 13328 no-useless-concat valid 1 + '1' ok 13329 no-useless-concat valid 1 + `1` ok 13330 no-useless-concat valid `1` + 1 ok 13331 no-useless-concat valid (1 + +2) + `b` ok 13332 no-useless-concat invalid 'a' + 'b' ok 13333 no-useless-concat invalid foo + 'a' + 'b' ok 13334 no-useless-concat invalid 'a' + 'b' + 'c' ok 13335 no-useless-concat invalid (foo + 'a') + ('b' + 'c') ok 13336 no-useless-concat invalid `a` + 'b' ok 13337 no-useless-concat invalid `a` + `b` ok 13338 no-useless-concat invalid foo + `a` + `b` ok 13339 no-useless-constructor valid class A { } ok 13340 no-useless-constructor valid class A { constructor(){ doSomething(); } } ok 13341 no-useless-constructor valid class A extends B { constructor(){} } ok 13342 no-useless-constructor valid class A extends B { constructor(){ super('foo'); } } ok 13343 no-useless-constructor valid class A extends B { constructor(foo, bar){ super(foo, bar, 1); } } ok 13344 no-useless-constructor valid class A extends B { constructor(){ super(); doSomething(); } } ok 13345 no-useless-constructor valid class A extends B { constructor(...args){ super(...args); doSomething(); } } ok 13346 no-useless-constructor valid class A { dummyMethod(){ doSomething(); } } ok 13347 no-useless-constructor valid class A extends B.C { constructor() { super(foo); } } ok 13348 no-useless-constructor valid class A extends B.C { constructor([a, b, c]) { super(...arguments); } } ok 13349 no-useless-constructor valid class A extends B.C { constructor(a = f()) { super(...arguments); } } ok 13350 no-useless-constructor valid class A extends B { constructor(a, b, c) { super(a, b); } } ok 13351 no-useless-constructor valid class A extends B { constructor(foo, bar){ super(foo); } } ok 13352 no-useless-constructor valid class A extends B { constructor(test) { super(); } } ok 13353 no-useless-constructor valid class A extends B { constructor() { foo; } } ok 13354 no-useless-constructor valid class A extends B { constructor(foo, bar) { super(bar); } } ok 13355 no-useless-constructor invalid class A { constructor(){} } ok 13356 no-useless-constructor invalid class A { 'constructor'(){} } ok 13357 no-useless-constructor invalid class A extends B { constructor() { super(); } } ok 13358 no-useless-constructor invalid class A extends B { constructor(foo){ super(foo); } } ok 13359 no-useless-constructor invalid class A extends B { constructor(foo, bar){ super(foo, bar); } } ok 13360 no-useless-constructor invalid class A extends B { constructor(...args){ super(...args); } } ok 13361 no-useless-constructor invalid class A extends B.C { constructor() { super(...arguments); } } ok 13362 no-useless-constructor invalid class A extends B { constructor(a, b, ...c) { super(...arguments); } } ok 13363 no-useless-constructor invalid class A extends B { constructor(a, b, ...c) { super(a, b, ...c); } } ok 13364 no-useless-escape valid var foo = /\./ ok 13365 no-useless-escape valid var foo = /\//g ok 13366 no-useless-escape valid var foo = /""/ ok 13367 no-useless-escape valid var foo = /''/ ok 13368 no-useless-escape valid var foo = /([A-Z])\t+/g ok 13369 no-useless-escape valid var foo = /([A-Z])\n+/g ok 13370 no-useless-escape valid var foo = /([A-Z])\v+/g ok 13371 no-useless-escape valid var foo = /\D/ ok 13372 no-useless-escape valid var foo = /\W/ ok 13373 no-useless-escape valid var foo = /\w/ ok 13374 no-useless-escape valid var foo = /\B/ ok 13375 no-useless-escape valid var foo = /\\/g ok 13376 no-useless-escape valid var foo = /\w\$\*\./ ok 13377 no-useless-escape valid var foo = /\^\+\./ ok 13378 no-useless-escape valid var foo = /\|\}\{\./ ok 13379 no-useless-escape valid var foo = /]\[\(\)\// ok 13380 no-useless-escape valid var foo = "\x123" ok 13381 no-useless-escape valid var foo = "\u00a9" ok 13382 no-useless-escape valid var foo = "\377" ok 13383 no-useless-escape valid var foo = "\"" ok 13384 no-useless-escape valid var foo = "xs\u2111" ok 13385 no-useless-escape valid var foo = "foo \\ bar"; ok 13386 no-useless-escape valid var foo = "\t"; ok 13387 no-useless-escape valid var foo = "foo \b bar"; ok 13388 no-useless-escape valid var foo = '\n'; ok 13389 no-useless-escape valid var foo = 'foo \r bar'; ok 13390 no-useless-escape valid var foo = '\v'; ok 13391 no-useless-escape valid var foo = '\f'; ok 13392 no-useless-escape valid var foo = '\\u000a'; ok 13393 no-useless-escape valid var foo = '\\u000d\u000a'; ok 13394 no-useless-escape valid ok 13395 no-useless-escape valid
Testing: \
ok 13396 no-useless-escape valid
Testing: &x5C
ok 13397 no-useless-escape valid ok 13398 no-useless-escape valid <> Testing: \ ok 13399 no-useless-escape valid <> Testing: &x5C ok 13400 no-useless-escape valid var foo = `\x123` ok 13401 no-useless-escape valid var foo = `\u00a9` ok 13402 no-useless-escape valid var foo = `xs\u2111` ok 13403 no-useless-escape valid var foo = `foo \\ bar`; ok 13404 no-useless-escape valid var foo = `\t`; ok 13405 no-useless-escape valid var foo = `foo \b bar`; ok 13406 no-useless-escape valid var foo = `\n`; ok 13407 no-useless-escape valid var foo = `foo \r bar`; ok 13408 no-useless-escape valid var foo = `\v`; ok 13409 no-useless-escape valid var foo = `\f`; ok 13410 no-useless-escape valid var foo = `\\u000a`; ok 13411 no-useless-escape valid var foo = `\\u000d\u000a`; ok 13412 no-useless-escape valid var foo = `${foo} \x123` ok 13413 no-useless-escape valid var foo = `${foo} \u00a9` ok 13414 no-useless-escape valid var foo = `${foo} xs\u2111` ok 13415 no-useless-escape valid var foo = `${foo} \\ ${bar}`; ok 13416 no-useless-escape valid var foo = `${foo} \b ${bar}`; ok 13417 no-useless-escape valid var foo = `${foo}\t`; ok 13418 no-useless-escape valid var foo = `${foo}\n`; ok 13419 no-useless-escape valid var foo = `${foo}\r`; ok 13420 no-useless-escape valid var foo = `${foo}\v`; ok 13421 no-useless-escape valid var foo = `${foo}\f`; ok 13422 no-useless-escape valid var foo = `${foo}\\u000a`; ok 13423 no-useless-escape valid var foo = `${foo}\\u000d\u000a`; ok 13424 no-useless-escape valid var foo = `\`` ok 13425 no-useless-escape valid var foo = `\`${foo}\`` ok 13426 no-useless-escape valid var foo = `\${{${foo}`; ok 13427 no-useless-escape valid var foo = `$\{{${foo}`; ok 13428 no-useless-escape valid var foo = String.raw`\.` ok 13429 no-useless-escape valid var foo = myFunc`\.` ok 13430 no-useless-escape valid var foo = /[\d]/ ok 13431 no-useless-escape valid var foo = /[a\-b]/ ok 13432 no-useless-escape valid var foo = /foo\?/ ok 13433 no-useless-escape valid var foo = /example\.com/ ok 13434 no-useless-escape valid var foo = /foo\|bar/ ok 13435 no-useless-escape valid var foo = /\^bar/ ok 13436 no-useless-escape valid var foo = /[\^bar]/ ok 13437 no-useless-escape valid var foo = /\(bar\)/ ok 13438 no-useless-escape valid var foo = /[[\]]/ ok 13439 no-useless-escape valid var foo = /[[]\./ ok 13440 no-useless-escape valid var foo = /[\]\]]/ ok 13441 no-useless-escape valid var foo = /\[abc]/ ok 13442 no-useless-escape valid var foo = /\[foo\.bar]/ ok 13443 no-useless-escape valid var foo = /vi/m ok 13444 no-useless-escape valid var foo = /\B/ ok 13445 no-useless-escape valid var foo = /\0/ ok 13446 no-useless-escape valid var foo = /\1/ ok 13447 no-useless-escape valid var foo = /(a)\1/ ok 13448 no-useless-escape valid var foo = /(a)\12/ ok 13449 no-useless-escape valid var foo = /[\0]/ ok 13450 no-useless-escape valid var foo = 'foo \
 bar' ok 13451 no-useless-escape valid var foo = 'foo \
 bar' ok 13452 no-useless-escape valid /]/ ok 13453 no-useless-escape valid /\]/ ok 13454 no-useless-escape valid /\]/u ok 13455 no-useless-escape valid var foo = /foo\]/ ok 13456 no-useless-escape valid var foo = /[[]\]/ ok 13457 no-useless-escape valid var foo = /\[foo\.bar\]/ ok 13458 no-useless-escape valid var foo = /(?
)\k/ ok 13459 no-useless-escape valid var foo = /(\\?)/ ok 13460 no-useless-escape valid var foo = /\p{ASCII}/u ok 13461 no-useless-escape valid var foo = /\P{ASCII}/u ok 13462 no-useless-escape valid var foo = /[\p{ASCII}]/u ok 13463 no-useless-escape valid var foo = /[\P{ASCII}]/u ok 13464 no-useless-escape invalid var foo = /\/; ok 13465 no-useless-escape invalid var foo = /\;/; ok 13466 no-useless-escape invalid var foo = "\'"; ok 13467 no-useless-escape invalid var foo = "\/"; ok 13468 no-useless-escape invalid var foo = "\a" ok 13469 no-useless-escape invalid var foo = "\B"; ok 13470 no-useless-escape invalid var foo = "\@"; ok 13471 no-useless-escape invalid var foo = "foo \a bar"; ok 13472 no-useless-escape invalid var foo = '\"'; ok 13473 no-useless-escape invalid var foo = '\'; ok 13474 no-useless-escape invalid var foo = '\$'; ok 13475 no-useless-escape invalid var foo = '\p'; ok 13476 no-useless-escape invalid var foo = '\p\a\@'; ok 13477 no-useless-escape invalid ok 13478 no-useless-escape invalid var foo = '\`'; ok 13479 no-useless-escape invalid var foo = `\"`; ok 13480 no-useless-escape invalid var foo = `\'`; ok 13481 no-useless-escape invalid var foo = `\`; ok 13482 no-useless-escape invalid var foo = '\`foo\`'; ok 13483 no-useless-escape invalid var foo = `\"${foo}\"`; ok 13484 no-useless-escape invalid var foo = `\'${foo}\'`; ok 13485 no-useless-escape invalid var foo = `\${foo}`; ok 13486 no-useless-escape invalid let foo = '\ '; ok 13487 no-useless-escape invalid let foo = /\ /; ok 13488 no-useless-escape invalid var foo = `\$\{{${foo}`; ok 13489 no-useless-escape invalid var foo = `\$a${foo}`; ok 13490 no-useless-escape invalid var foo = `a\{{${foo}`; ok 13491 no-useless-escape invalid var foo = /[ab\-]/ ok 13492 no-useless-escape invalid var foo = /[\-ab]/ ok 13493 no-useless-escape invalid var foo = /[ab\?]/ ok 13494 no-useless-escape invalid var foo = /[ab\.]/ ok 13495 no-useless-escape invalid var foo = /[a\|b]/ ok 13496 no-useless-escape invalid var foo = /\-/ ok 13497 no-useless-escape invalid var foo = /[\-]/ ok 13498 no-useless-escape invalid var foo = /[ab\$]/ ok 13499 no-useless-escape invalid var foo = /[\(paren]/ ok 13500 no-useless-escape invalid var foo = /[\[]/ ok 13501 no-useless-escape invalid var foo = /[\/]/ ok 13502 no-useless-escape invalid var foo = /[\B]/ ok 13503 no-useless-escape invalid var foo = /[a][\-b]/ ok 13504 no-useless-escape invalid var foo = /\-[]/ ok 13505 no-useless-escape invalid var foo = /[a\^]/ ok 13506 no-useless-escape invalid `multiline template\u000aliteral with useless \escape` ok 13507 no-useless-escape invalid `\a``` ok 13508 no-useless-rename valid let {foo} = obj; ok 13509 no-useless-rename valid let {foo: bar} = obj; ok 13510 no-useless-rename valid let {foo: bar, baz: qux} = obj; ok 13511 no-useless-rename valid let {foo: {bar: baz}} = obj; ok 13512 no-useless-rename valid let {foo, bar: {baz: qux}} = obj; ok 13513 no-useless-rename valid let {'foo': bar} = obj; ok 13514 no-useless-rename valid let {'foo': bar, 'baz': qux} = obj; ok 13515 no-useless-rename valid let {'foo': {'bar': baz}} = obj; ok 13516 no-useless-rename valid let {foo, 'bar': {'baz': qux}} = obj; ok 13517 no-useless-rename valid let {['foo']: bar} = obj; ok 13518 no-useless-rename valid let {['foo']: bar, ['baz']: qux} = obj; ok 13519 no-useless-rename valid let {['foo']: {['bar']: baz}} = obj; ok 13520 no-useless-rename valid let {foo, ['bar']: {['baz']: qux}} = obj; ok 13521 no-useless-rename valid let {[foo]: foo} = obj; ok 13522 no-useless-rename valid let {['foo']: foo} = obj; ok 13523 no-useless-rename valid let {[foo]: bar} = obj; ok 13524 no-useless-rename valid function func({foo}) {} ok 13525 no-useless-rename valid function func({foo: bar}) {} ok 13526 no-useless-rename valid function func({foo: bar, baz: qux}) {} ok 13527 no-useless-rename valid ({foo}) => {} ok 13528 no-useless-rename valid ({foo: bar}) => {} ok 13529 no-useless-rename valid ({foo: bar, baz: qui}) => {} ok 13530 no-useless-rename valid import * as foo from 'foo'; ok 13531 no-useless-rename valid import foo from 'foo'; ok 13532 no-useless-rename valid import {foo} from 'foo'; ok 13533 no-useless-rename valid import {foo as bar} from 'foo'; ok 13534 no-useless-rename valid import {foo as bar, baz as qux} from 'foo'; ok 13535 no-useless-rename valid export {foo} from 'foo'; ok 13536 no-useless-rename valid var foo = 0;export {foo as bar}; ok 13537 no-useless-rename valid var foo = 0; var baz = 0; export {foo as bar, baz as qux}; ok 13538 no-useless-rename valid export {foo as bar} from 'foo'; ok 13539 no-useless-rename valid export {foo as bar, baz as qux} from 'foo'; ok 13540 no-useless-rename valid const {...stuff} = myObject; ok 13541 no-useless-rename valid const {foo, ...stuff} = myObject; ok 13542 no-useless-rename valid const {foo: bar, ...stuff} = myObject; ok 13543 no-useless-rename valid let {foo: foo} = obj; ok 13544 no-useless-rename valid let {foo: foo, bar: baz} = obj; ok 13545 no-useless-rename valid let {foo: foo, bar: bar} = obj; ok 13546 no-useless-rename valid import {foo as foo} from 'foo'; ok 13547 no-useless-rename valid import {foo as foo, bar as baz} from 'foo'; ok 13548 no-useless-rename valid import {foo as foo, bar as bar} from 'foo'; ok 13549 no-useless-rename valid var foo = 0;export {foo as foo}; ok 13550 no-useless-rename valid var foo = 0;var bar = 0;export {foo as foo, bar as baz}; ok 13551 no-useless-rename valid var foo = 0;var bar = 0;export {foo as foo, bar as bar}; ok 13552 no-useless-rename valid export {foo as foo} from 'foo'; ok 13553 no-useless-rename valid export {foo as foo, bar as baz} from 'foo'; ok 13554 no-useless-rename valid export {foo as foo, bar as bar} from 'foo'; ok 13555 no-useless-rename invalid let {foo: foo} = obj; ok 13556 no-useless-rename invalid let {a, foo: foo} = obj; ok 13557 no-useless-rename invalid let {foo: foo, bar: baz} = obj; ok 13558 no-useless-rename invalid let {foo: bar, baz: baz} = obj; ok 13559 no-useless-rename invalid let {foo: foo, bar: bar} = obj; ok 13560 no-useless-rename invalid let {foo: {bar: bar}} = obj; ok 13561 no-useless-rename invalid let {foo: {bar: bar}, baz: baz} = obj; ok 13562 no-useless-rename invalid let {'foo': foo} = obj; ok 13563 no-useless-rename invalid let {'foo': foo, 'bar': baz} = obj; ok 13564 no-useless-rename invalid let {'foo': bar, 'baz': baz} = obj; ok 13565 no-useless-rename invalid let {'foo': foo, 'bar': bar} = obj; ok 13566 no-useless-rename invalid let {'foo': {'bar': bar}} = obj; ok 13567 no-useless-rename invalid let {'foo': {'bar': bar}, 'baz': baz} = obj; ok 13568 no-useless-rename invalid function func({foo: foo}) {} ok 13569 no-useless-rename invalid function func({foo: foo, bar: baz}) {} ok 13570 no-useless-rename invalid function func({foo: bar, baz: baz}) {} ok 13571 no-useless-rename invalid function func({foo: foo, bar: bar}) {} ok 13572 no-useless-rename invalid ({foo: foo}) => {} ok 13573 no-useless-rename invalid ({foo: foo, bar: baz}) => {} ok 13574 no-useless-rename invalid ({foo: bar, baz: baz}) => {} ok 13575 no-useless-rename invalid ({foo: foo, bar: bar}) => {} ok 13576 no-useless-rename invalid const {foo: foo, ...stuff} = myObject; ok 13577 no-useless-rename invalid const {foo: foo, bar: baz, ...stuff} = myObject; ok 13578 no-useless-rename invalid const {foo: foo, bar: bar, ...stuff} = myObject; ok 13579 no-useless-rename invalid import {foo as foo} from 'foo'; ok 13580 no-useless-rename invalid import {foo as foo, bar as baz} from 'foo'; ok 13581 no-useless-rename invalid import {foo as bar, baz as baz} from 'foo'; ok 13582 no-useless-rename invalid import {foo as foo, bar as bar} from 'foo'; ok 13583 no-useless-rename invalid var foo = 0; export {foo as foo}; ok 13584 no-useless-rename invalid var foo = 0; var bar = 0; export {foo as foo, bar as baz}; ok 13585 no-useless-rename invalid var foo = 0; var baz = 0; export {foo as bar, baz as baz}; ok 13586 no-useless-rename invalid var foo = 0; var bar = 0;export {foo as foo, bar as bar}; ok 13587 no-useless-rename invalid export {foo as foo} from 'foo'; ok 13588 no-useless-rename invalid export {foo as foo, bar as baz} from 'foo'; ok 13589 no-useless-rename invalid var foo = 0; var bar = 0; export {foo as bar, baz as baz} from 'foo'; ok 13590 no-useless-rename invalid export {foo as foo, bar as bar} from 'foo'; ok 13591 no-useless-return valid function foo() { return 5; } ok 13592 no-useless-return valid function foo() { return null; } ok 13593 no-useless-return valid function foo() { return doSomething(); } ok 13594 no-useless-return valid \u000a function foo() {\u000a if (bar) {\u000a doSomething();\u000a return;\u000a } else {\u000a doSomethingElse();\u000a }\u000a qux();\u000a }\u000a ok 13595 no-useless-return valid \u000a function foo() {\u000a switch (bar) {\u000a case 1:\u000a doSomething();\u000a return;\u000a default:\u000a doSomethingElse();\u000a }\u000a }\u000a ok 13596 no-useless-return valid \u000a function foo() {\u000a switch (bar) {\u000a default:\u000a doSomething();\u000a return;\u000a case 1:\u000a doSomethingElse();\u000a }\u000a }\u000a ok 13597 no-useless-return valid \u000a function foo() {\u000a switch (bar) {\u000a case 1:\u000a if (a) {\u000a doSomething();\u000a return;\u000a } else {\u000a doSomething();\u000a return;\u000a }\u000a default:\u000a doSomethingElse();\u000a }\u000a }\u000a ok 13598 no-useless-return valid \u000a function foo() {\u000a for (var foo = 0; foo < 10; foo++) {\u000a return;\u000a }\u000a }\u000a ok 13599 no-useless-return valid \u000a function foo() {\u000a for (var foo in bar) {\u000a return;\u000a }\u000a }\u000a ok 13600 no-useless-return valid \u000a function foo() {\u000a try {\u000a return 5;\u000a } finally {\u000a return; // This is allowed because it can override the returned value of 5\u000a }\u000a }\u000a ok 13601 no-useless-return valid \u000a function foo() {\u000a return;\u000a doSomething();\u000a }\u000a ok 13602 no-useless-return valid \u000a function foo() {\u000a for (var foo of bar) return;\u000a }\u000a ok 13603 no-useless-return valid () => { if (foo) return; bar(); } ok 13604 no-useless-return valid () => 5 ok 13605 no-useless-return valid () => { return; doSomething(); } ok 13606 no-useless-return valid if (foo) { return; } doSomething(); ok 13607 no-useless-return valid \u000a function foo() {\u000a if (bar) return;\u000a return baz;\u000a }\u000a ok 13608 no-useless-return valid \u000a function foo() {\u000a if (bar) {\u000a return;\u000a }\u000a return baz;\u000a }\u000a ok 13609 no-useless-return valid \u000a function foo() {\u000a if (bar) baz();\u000a else return;\u000a return 5;\u000a }\u000a ok 13610 no-useless-return valid \u000a function foo() {\u000a return;\u000a while (foo) return;\u000a foo;\u000a }\u000a ok 13611 no-useless-return valid \u000a try {\u000a throw new Error('foo');\u000a while (false);\u000a } catch (err) {}\u000a ok 13612 no-useless-return valid \u000a function foo(arg) {\u000a throw new Error("Debugging...");\u000a if (!arg) {\u000a return;\u000a }\u000a console.log(arg);\u000a }\u000a ok 13613 no-useless-return invalid function foo() { return; } ok 13614 no-useless-return invalid function foo() { doSomething(); return; } ok 13615 no-useless-return invalid function foo() { if (condition) { bar(); return; } else { baz(); } } ok 13616 no-useless-return invalid function foo() { if (foo) return; } ok 13617 no-useless-return invalid foo(); return; ok 13618 no-useless-return invalid if (foo) { bar(); return; } else { baz(); } ok 13619 no-useless-return invalid \u000a function foo() {\u000a if (foo) {\u000a return;\u000a }\u000a return;\u000a }\u000a ok 13620 no-useless-return invalid \u000a function foo() {\u000a switch (bar) {\u000a case 1:\u000a doSomething();\u000a default:\u000a doSomethingElse();\u000a return;\u000a }\u000a }\u000a ok 13621 no-useless-return invalid \u000a function foo() {\u000a switch (bar) {\u000a default:\u000a doSomething();\u000a case 1:\u000a doSomething();\u000a return;\u000a }\u000a }\u000a ok 13622 no-useless-return invalid \u000a function foo() {\u000a switch (bar) {\u000a case 1:\u000a if (a) {\u000a doSomething();\u000a return;\u000a }\u000a break;\u000a default:\u000a doSomethingElse();\u000a }\u000a }\u000a ok 13623 no-useless-return invalid \u000a function foo() {\u000a switch (bar) {\u000a case 1:\u000a if (a) {\u000a doSomething();\u000a return;\u000a } else {\u000a doSomething();\u000a }\u000a break;\u000a default:\u000a doSomethingElse();\u000a }\u000a }\u000a ok 13624 no-useless-return invalid \u000a function foo() {\u000a switch (bar) {\u000a case 1:\u000a if (a) {\u000a doSomething();\u000a return;\u000a }\u000a default:\u000a }\u000a }\u000a ok 13625 no-useless-return invalid \u000a function foo() {\u000a try {} catch (err) { return; }\u000a }\u000a ok 13626 no-useless-return invalid \u000a function foo() {\u000a try {} finally {}\u000a return;\u000a }\u000a ok 13627 no-useless-return invalid \u000a function foo() {\u000a try {\u000a return 5;\u000a } finally {\u000a function bar() {\u000a return;\u000a }\u000a }\u000a }\u000a ok 13628 no-useless-return invalid () => { return; } ok 13629 no-useless-return invalid function foo() { return; return; } ok 13630 no-var valid const JOE = 'schmoe'; ok 13631 no-var valid let moo = 'car'; ok 13632 no-var valid const JOE = 'schmoe'; ok 13633 no-var valid let moo = 'car'; ok 13634 no-var invalid var foo = bar; ok 13635 no-var invalid var foo = bar, toast = most; ok 13636 no-var invalid var foo = bar; let toast = most; ok 13637 no-var invalid for (var a of b) { console.log(a); } ok 13638 no-var invalid for (var a in b) { console.log(a); } ok 13639 no-var invalid for (let a of b) { var c = 1; console.log(c); } ok 13640 no-var invalid for (var i = 0; i < list.length; ++i) { foo(i) } ok 13641 no-var invalid for (var i = 0, i = 0; false;); ok 13642 no-var invalid var i = 0; for (var i = 1; false;); console.log(i); ok 13643 no-var invalid var a, b, c; var a; ok 13644 no-var invalid var a; if (b) { var a; } ok 13645 no-var invalid if (foo) { var a, b, c; } a; ok 13646 no-var invalid for (var i = 0; i < 10; ++i) {} i; ok 13647 no-var invalid for (var a in obj) {} a; ok 13648 no-var invalid for (var a of list) {} a; ok 13649 no-var invalid switch (a) { case 0: var b = 1 } ok 13650 no-var invalid for (var a of b) { arr.push(() => a); } ok 13651 no-var invalid for (let a of b) { var c; console.log(c); c = 'hello'; } ok 13652 no-var invalid var a = a ok 13653 no-var invalid var {a = a} = {} ok 13654 no-var invalid var {a = b, b} = {} ok 13655 no-var invalid var {a, b = a} = {} ok 13656 no-var invalid var a = b, b = 1 ok 13657 no-var invalid var a = b; var b = 1 ok 13658 no-var invalid function foo() { a } var a = 1; foo() ok 13659 no-var invalid if (foo) var bar = 1; ok 13660 no-var invalid var foo = 1 ok 13661 no-var invalid { var foo = 1 } ok 13662 no-var invalid if (true) { var foo = 1 } ok 13663 no-var invalid var foo = 1 ok 13664 no-var invalid declare var foo = 2; ok 13665 no-var invalid function foo() { var let; } ok 13666 no-var invalid function foo() { var { let } = {}; } ok 13667 no-void valid var foo = bar() ok 13668 no-void valid foo.void() ok 13669 no-void valid foo.void = bar ok 13670 no-void valid delete foo; ok 13671 no-void invalid void 0 ok 13672 no-void invalid void(0) ok 13673 no-void invalid var foo = void 0 ok 13674 no-warning-comments valid // any comment ok 13675 no-warning-comments valid // any comment ok 13676 no-warning-comments valid // any comment ok 13677 no-warning-comments valid // any comment ok 13678 no-warning-comments valid // any comment with TODO, FIXME or XXX ok 13679 no-warning-comments valid // any comment with TODO, FIXME or XXX ok 13680 no-warning-comments valid /* any block comment */ ok 13681 no-warning-comments valid /* any block comment */ ok 13682 no-warning-comments valid /* any block comment */ ok 13683 no-warning-comments valid /* any block comment */ ok 13684 no-warning-comments valid /* any block comment with TODO, FIXME or XXX */ ok 13685 no-warning-comments valid /* any block comment with TODO, FIXME or XXX */ ok 13686 no-warning-comments valid /* any block comment with (TODO, FIXME's or XXX!) */ ok 13687 no-warning-comments valid // comments containing terms as substrings like TodoMVC ok 13688 no-warning-comments valid // special regex characters don't cause problems ok 13689 no-warning-comments valid /*eslint no-warning-comments: [2, { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/\u000a\u000avar x = 10;\u000a ok 13690 no-warning-comments valid /*eslint no-warning-comments: [2, { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/\u000a\u000avar x = 10;\u000a ok 13691 no-warning-comments valid foo ok 13692 no-warning-comments invalid // fixme ok 13693 no-warning-comments invalid // any fixme ok 13694 no-warning-comments invalid // any fixme ok 13695 no-warning-comments invalid // any FIXME ok 13696 no-warning-comments invalid // any fIxMe ok 13697 no-warning-comments invalid /* any fixme */ ok 13698 no-warning-comments invalid /* any FIXME */ ok 13699 no-warning-comments invalid /* any fIxMe */ ok 13700 no-warning-comments invalid // any fixme or todo ok 13701 no-warning-comments invalid /* any fixme or todo */ ok 13702 no-warning-comments invalid /* any fixme or todo */ ok 13703 no-warning-comments invalid /* fixme and todo */ ok 13704 no-warning-comments invalid /* fixme and todo */ ok 13705 no-warning-comments invalid /* any fixme */ ok 13706 no-warning-comments invalid /* fixme! */ ok 13707 no-warning-comments invalid // regex [litera|$] ok 13708 no-warning-comments invalid /* eslint one-var: 2 */ ok 13709 no-warning-comments invalid /* eslint one-var: 2 */ ok 13710 no-warning-comments invalid /* any block comment with TODO, FIXME or XXX */ ok 13711 no-warning-comments invalid /* any block comment with (TODO, FIXME's or XXX!) */ ok 13712 no-warning-comments invalid /** \u000a *any block comment \u000a*with (TODO, FIXME's or XXX!) **/ ok 13713 no-warning-comments invalid // any comment with TODO, FIXME or XXX ok 13714 no-whitespace-before-property valid foo.bar ok 13715 no-whitespace-before-property valid foo.bar() ok 13716 no-whitespace-before-property valid foo[bar] ok 13717 no-whitespace-before-property valid foo['bar'] ok 13718 no-whitespace-before-property valid foo[0] ok 13719 no-whitespace-before-property valid foo[ bar ] ok 13720 no-whitespace-before-property valid foo[ 'bar' ] ok 13721 no-whitespace-before-property valid foo[ 0 ] ok 13722 no-whitespace-before-property valid foo\u000a.bar ok 13723 no-whitespace-before-property valid foo.\u000abar ok 13724 no-whitespace-before-property valid foo\u000a.bar() ok 13725 no-whitespace-before-property valid foo.\u000abar() ok 13726 no-whitespace-before-property valid foo\u000a[bar] ok 13727 no-whitespace-before-property valid foo\u000a['bar'] ok 13728 no-whitespace-before-property valid foo\u000a[0] ok 13729 no-whitespace-before-property valid foo\u000a[ bar ] ok 13730 no-whitespace-before-property valid foo.\u000a bar ok 13731 no-whitespace-before-property valid foo\u000a. bar ok 13732 no-whitespace-before-property valid foo.\u000a bar() ok 13733 no-whitespace-before-property valid foo\u000a. bar() ok 13734 no-whitespace-before-property valid foo\u000a [bar] ok 13735 no-whitespace-before-property valid foo\u000a ['bar'] ok 13736 no-whitespace-before-property valid foo\u000a [0] ok 13737 no-whitespace-before-property valid foo\u000a [ bar ] ok 13738 no-whitespace-before-property valid foo.\u000a\u0009bar ok 13739 no-whitespace-before-property valid foo\u000a.\u0009bar ok 13740 no-whitespace-before-property valid foo.\u000a\u0009bar() ok 13741 no-whitespace-before-property valid foo\u000a.\u0009bar() ok 13742 no-whitespace-before-property valid foo\u000a\u0009[bar] ok 13743 no-whitespace-before-property valid foo\u000a\u0009['bar'] ok 13744 no-whitespace-before-property valid foo\u000a\u0009[0] ok 13745 no-whitespace-before-property valid foo\u000a\u0009[ bar ] ok 13746 no-whitespace-before-property valid foo.bar.baz ok 13747 no-whitespace-before-property valid foo\u000a.bar\u000a.baz ok 13748 no-whitespace-before-property valid foo.\u000abar.\u000abaz ok 13749 no-whitespace-before-property valid foo.bar().baz() ok 13750 no-whitespace-before-property valid foo\u000a.bar()\u000a.baz() ok 13751 no-whitespace-before-property valid foo.\u000abar().\u000abaz() ok 13752 no-whitespace-before-property valid foo\u000a.bar\u000a[baz] ok 13753 no-whitespace-before-property valid foo\u000a.bar\u000a['baz'] ok 13754 no-whitespace-before-property valid foo\u000a.bar\u000a[0] ok 13755 no-whitespace-before-property valid foo\u000a.bar\u000a[ baz ] ok 13756 no-whitespace-before-property valid foo\u000a .bar\u000a .baz ok 13757 no-whitespace-before-property valid foo.\u000a bar.\u000a baz ok 13758 no-whitespace-before-property valid foo\u000a .bar()\u000a .baz() ok 13759 no-whitespace-before-property valid foo.\u000a bar().\u000a baz() ok 13760 no-whitespace-before-property valid foo\u000a .bar\u000a [baz] ok 13761 no-whitespace-before-property valid foo\u000a .bar\u000a ['baz'] ok 13762 no-whitespace-before-property valid foo\u000a .bar\u000a [0] ok 13763 no-whitespace-before-property valid foo\u000a .bar\u000a [ baz ] ok 13764 no-whitespace-before-property valid foo\u000a\u0009.bar\u000a\u0009.baz ok 13765 no-whitespace-before-property valid foo.\u000a\u0009bar.\u000a\u0009baz ok 13766 no-whitespace-before-property valid foo\u000a\u0009.bar()\u000a\u0009.baz() ok 13767 no-whitespace-before-property valid foo.\u000a\u0009bar().\u000a\u0009baz() ok 13768 no-whitespace-before-property valid foo\u000a\u0009.bar\u000a\u0009[baz] ok 13769 no-whitespace-before-property valid foo\u000a\u0009.bar\u000a\u0009['baz'] ok 13770 no-whitespace-before-property valid foo\u000a\u0009.bar\u000a\u0009[0] ok 13771 no-whitespace-before-property valid foo\u000a\u0009.bar\u000a\u0009[ baz ] ok 13772 no-whitespace-before-property valid foo['bar' + baz] ok 13773 no-whitespace-before-property valid foo[ 'bar' + baz ] ok 13774 no-whitespace-before-property valid (foo + bar).baz ok 13775 no-whitespace-before-property valid ( foo + bar ).baz ok 13776 no-whitespace-before-property valid (foo ? bar : baz).qux ok 13777 no-whitespace-before-property valid ( foo ? bar : baz ).qux ok 13778 no-whitespace-before-property valid (foo ? bar : baz)[qux] ok 13779 no-whitespace-before-property valid ( foo ? bar : baz )[qux] ok 13780 no-whitespace-before-property valid ( foo ? bar : baz )[0].qux ok 13781 no-whitespace-before-property valid foo.bar[('baz')] ok 13782 no-whitespace-before-property valid foo.bar[ ('baz') ] ok 13783 no-whitespace-before-property valid foo[[bar]] ok 13784 no-whitespace-before-property valid foo[ [ bar ] ] ok 13785 no-whitespace-before-property valid foo[['bar']] ok 13786 no-whitespace-before-property valid foo[ [ 'bar' ] ] ok 13787 no-whitespace-before-property valid foo[(('baz'))] ok 13788 no-whitespace-before-property valid foo[ (('baz'))] ok 13789 no-whitespace-before-property valid foo[0][[('baz')]] ok 13790 no-whitespace-before-property valid foo[bar.baz('qux')] ok 13791 no-whitespace-before-property valid foo[(bar.baz() + 0) + qux] ok 13792 no-whitespace-before-property valid foo['bar ' + 1 + ' baz'] ok 13793 no-whitespace-before-property valid 5['toExponential']() ok 13794 no-whitespace-before-property invalid foo. bar ok 13795 no-whitespace-before-property invalid foo .bar ok 13796 no-whitespace-before-property invalid foo [bar] ok 13797 no-whitespace-before-property invalid foo [0] ok 13798 no-whitespace-before-property invalid foo ['bar'] ok 13799 no-whitespace-before-property invalid foo. bar. baz ok 13800 no-whitespace-before-property invalid foo .bar. baz ok 13801 no-whitespace-before-property invalid foo [bar] [baz] ok 13802 no-whitespace-before-property invalid foo [bar][baz] ok 13803 no-whitespace-before-property invalid foo[bar] [baz] ok 13804 no-whitespace-before-property invalid foo.bar [baz] ok 13805 no-whitespace-before-property invalid foo. bar[baz] ok 13806 no-whitespace-before-property invalid foo[bar]. baz ok 13807 no-whitespace-before-property invalid foo[ bar ] [ baz ] ok 13808 no-whitespace-before-property invalid foo [ 0 ][ baz ] ok 13809 no-whitespace-before-property invalid foo[ 0 ] [ 'baz' ] ok 13810 no-whitespace-before-property invalid foo\u0009.bar ok 13811 no-whitespace-before-property invalid foo.\u0009bar ok 13812 no-whitespace-before-property invalid foo\u0009.bar() ok 13813 no-whitespace-before-property invalid foo.\u0009bar() ok 13814 no-whitespace-before-property invalid foo\u0009[bar] ok 13815 no-whitespace-before-property invalid foo\u0009[0] ok 13816 no-whitespace-before-property invalid foo\u0009['bar'] ok 13817 no-whitespace-before-property invalid foo.\u0009bar.\u0009baz ok 13818 no-whitespace-before-property invalid foo\u0009.bar.\u0009baz ok 13819 no-whitespace-before-property invalid foo.\u0009bar().\u0009baz() ok 13820 no-whitespace-before-property invalid foo\u0009.bar().\u0009baz() ok 13821 no-whitespace-before-property invalid foo\u0009[bar]\u0009[baz] ok 13822 no-whitespace-before-property invalid foo\u0009[bar][baz] ok 13823 no-whitespace-before-property invalid foo[bar]\u0009[baz] ok 13824 no-whitespace-before-property invalid foo.bar\u0009[baz] ok 13825 no-whitespace-before-property invalid foo.\u0009bar[baz] ok 13826 no-whitespace-before-property invalid foo[bar].\u0009baz ok 13827 no-whitespace-before-property invalid foo [bar]\u000a .baz ok 13828 no-whitespace-before-property invalid foo. bar\u000a .baz ok 13829 no-whitespace-before-property invalid foo .bar\u000a.baz ok 13830 no-whitespace-before-property invalid foo.\u000a bar. baz ok 13831 no-whitespace-before-property invalid foo.\u000abar . baz ok 13832 no-whitespace-before-property invalid foo. bar()\u000a .baz() ok 13833 no-whitespace-before-property invalid foo .bar()\u000a.baz() ok 13834 no-whitespace-before-property invalid foo.\u000a bar(). baz() ok 13835 no-whitespace-before-property invalid foo.\u000abar() . baz() ok 13836 no-whitespace-before-property invalid foo\u0009[bar]\u000a\u0009.baz ok 13837 no-whitespace-before-property invalid foo.\u0009bar\u000a\u0009.baz ok 13838 no-whitespace-before-property invalid foo\u0009.bar\u000a.baz ok 13839 no-whitespace-before-property invalid foo.\u000a\u0009bar.\u0009baz ok 13840 no-whitespace-before-property invalid foo.\u000abar\u0009.\u0009baz ok 13841 no-whitespace-before-property invalid foo.\u0009bar()\u000a\u0009.baz() ok 13842 no-whitespace-before-property invalid foo\u0009.bar()\u000a.baz() ok 13843 no-whitespace-before-property invalid foo.\u000a\u0009bar().\u0009baz() ok 13844 no-whitespace-before-property invalid foo.\u000abar()\u0009.\u0009baz() ok 13845 no-whitespace-before-property invalid foo ['bar' + baz] ok 13846 no-whitespace-before-property invalid (foo + bar) .baz ok 13847 no-whitespace-before-property invalid (foo + bar). baz ok 13848 no-whitespace-before-property invalid (foo + bar) [baz] ok 13849 no-whitespace-before-property invalid (foo ? bar : baz) .qux ok 13850 no-whitespace-before-property invalid (foo ? bar : baz). qux ok 13851 no-whitespace-before-property invalid (foo ? bar : baz) [qux] ok 13852 no-whitespace-before-property invalid ( foo ? bar : baz ) [0].qux ok 13853 no-whitespace-before-property invalid ( foo ? bar : baz )[0] .qux ok 13854 no-whitespace-before-property invalid ( foo ? bar : baz )[0]. qux ok 13855 no-whitespace-before-property invalid ( foo ? bar : baz ) [0]. qux ok 13856 no-whitespace-before-property invalid foo.bar [('baz')] ok 13857 no-whitespace-before-property invalid foo .bar[('baz')] ok 13858 no-whitespace-before-property invalid foo .bar [('baz')] ok 13859 no-whitespace-before-property invalid foo [(('baz'))] ok 13860 no-whitespace-before-property invalid foo [[baz]] ok 13861 no-whitespace-before-property invalid foo [ [ baz ] ] ok 13862 no-whitespace-before-property invalid foo [['baz']] ok 13863 no-whitespace-before-property invalid foo [ [ 'baz' ] ] ok 13864 no-whitespace-before-property invalid foo[0] [[('baz')]] ok 13865 no-whitespace-before-property invalid foo [0][[('baz')]] ok 13866 no-whitespace-before-property invalid foo [0] [[('baz')]] ok 13867 no-whitespace-before-property invalid foo [bar.baz('qux')] ok 13868 no-whitespace-before-property invalid foo[bar .baz('qux')] ok 13869 no-whitespace-before-property invalid foo [bar . baz('qux')] ok 13870 no-whitespace-before-property invalid foo [(bar.baz() + 0) + qux] ok 13871 no-whitespace-before-property invalid foo[(bar. baz() + 0) + qux] ok 13872 no-whitespace-before-property invalid foo [(bar. baz() + 0) + qux] ok 13873 no-whitespace-before-property invalid foo ['bar ' + 1 + ' baz'] ok 13874 no-whitespace-before-property invalid 5 .toExponential() ok 13875 no-whitespace-before-property invalid 5 .toExponential() ok 13876 no-whitespace-before-property invalid 5. .toExponential() ok 13877 no-whitespace-before-property invalid 5.0 .toExponential() ok 13878 no-whitespace-before-property invalid 0x5 .toExponential() ok 13879 no-whitespace-before-property invalid 5e0 .toExponential() ok 13880 no-whitespace-before-property invalid 5e-0 .toExponential() ok 13881 no-whitespace-before-property invalid 5 ['toExponential']() ok 13882 no-whitespace-before-property invalid 05 .toExponential() ok 13883 no-with valid foo.bar() ok 13884 no-with invalid with(foo) { bar() } ok 13885 nonblock-statement-body-position valid if (foo) bar; ok 13886 nonblock-statement-body-position valid while (foo) bar; ok 13887 nonblock-statement-body-position valid do foo; while (bar) ok 13888 nonblock-statement-body-position valid for (;foo;) bar; ok 13889 nonblock-statement-body-position valid for (foo in bar) baz; ok 13890 nonblock-statement-body-position valid for (foo of bar) baz; ok 13891 nonblock-statement-body-position valid if (foo) bar; else baz; ok 13892 nonblock-statement-body-position valid \u000a if (foo) bar(\u000a baz\u000a );\u000a ok 13893 nonblock-statement-body-position valid if (foo) bar(); ok 13894 nonblock-statement-body-position valid while (foo) bar(); ok 13895 nonblock-statement-body-position valid do bar(); while (foo) ok 13896 nonblock-statement-body-position valid for (;foo;) bar(); ok 13897 nonblock-statement-body-position valid \u000a if (foo)\u000a bar();\u000a ok 13898 nonblock-statement-body-position valid \u000a while (foo)\u000a bar();\u000a ok 13899 nonblock-statement-body-position valid \u000a do\u000a bar();\u000a while (foo)\u000a ok 13900 nonblock-statement-body-position valid \u000a for (;foo;)\u000a bar();\u000a ok 13901 nonblock-statement-body-position valid \u000a for (foo in bar)\u000a bar();\u000a ok 13902 nonblock-statement-body-position valid \u000a for (foo of bar)\u000a bar();\u000a ok 13903 nonblock-statement-body-position valid \u000a if (foo)\u000a bar();\u000a else\u000a baz();\u000a ok 13904 nonblock-statement-body-position valid if (foo) bar(); ok 13905 nonblock-statement-body-position valid \u000a if (foo)\u000a bar();\u000a ok 13906 nonblock-statement-body-position valid if (foo) bar(); ok 13907 nonblock-statement-body-position valid \u000a while (foo)\u000a bar();\u000a ok 13908 nonblock-statement-body-position valid \u000a while (foo)\u000a bar();\u000a ok 13909 nonblock-statement-body-position valid while (foo) bar(); ok 13910 nonblock-statement-body-position valid while (foo) bar(); ok 13911 nonblock-statement-body-position valid ok 13912 nonblock-statement-body-position valid \u000a if (foo) {\u000a } else if (bar) {\u000a }\u000a ok 13913 nonblock-statement-body-position valid \u000a if (foo) {\u000a } else if (bar) {\u000a }\u000a ok 13914 nonblock-statement-body-position valid \u000a if (foo) {\u000a } else\u000a if (bar) {\u000a }\u000a ok 13915 nonblock-statement-body-position valid \u000a if (foo) {\u000a } else\u000a if (bar) {\u000a }\u000a ok 13916 nonblock-statement-body-position invalid \u000a if (foo)\u000a bar();\u000a ok 13917 nonblock-statement-body-position invalid \u000a while (foo)\u000a bar();\u000a ok 13918 nonblock-statement-body-position invalid \u000a do\u000a bar();\u000a while (foo)\u000a ok 13919 nonblock-statement-body-position invalid \u000a for (;foo;)\u000a bar();\u000a ok 13920 nonblock-statement-body-position invalid \u000a for (foo in bar)\u000a baz();\u000a ok 13921 nonblock-statement-body-position invalid \u000a for (foo of bar)\u000a baz();\u000a ok 13922 nonblock-statement-body-position invalid \u000a if (foo)\u000a bar();\u000a else\u000a baz();\u000a ok 13923 nonblock-statement-body-position invalid if (foo) bar(); ok 13924 nonblock-statement-body-position invalid while (foo) bar(); ok 13925 nonblock-statement-body-position invalid do bar(); while (foo) ok 13926 nonblock-statement-body-position invalid for (;foo;) bar(); ok 13927 nonblock-statement-body-position invalid for (foo in bar) baz(); ok 13928 nonblock-statement-body-position invalid for (foo of bar) baz(); ok 13929 nonblock-statement-body-position invalid \u000a if (foo) bar();\u000a else baz();\u000a ok 13930 nonblock-statement-body-position invalid if (foo) bar(); ok 13931 nonblock-statement-body-position invalid \u000a while (foo)\u000a bar();\u000a ok 13932 nonblock-statement-body-position invalid do bar(); while (foo) ok 13933 object-curly-newline valid var a = {\u000a}; ok 13934 object-curly-newline valid var a = {\u000a foo\u000a}; ok 13935 object-curly-newline valid var a = { foo } ok 13936 object-curly-newline valid var a = {\u000a}; ok 13937 object-curly-newline valid var b = {\u000a a: 1\u000a}; ok 13938 object-curly-newline valid var c = {\u000a a: 1, b: 2\u000a}; ok 13939 object-curly-newline valid var d = {\u000a a: 1,\u000a b: 2\u000a}; ok 13940 object-curly-newline valid var e = {\u000a a: function foo() {\u000a dosomething();\u000a }\u000a}; ok 13941 object-curly-newline valid function foo({\u000a a,\u000a b\u000a} : MyType) {} ok 13942 object-curly-newline valid function foo({\u000a a,\u000a b\u000a} : { a : string, b : string }) {} ok 13943 object-curly-newline valid var a = {}; ok 13944 object-curly-newline valid var b = {a: 1}; ok 13945 object-curly-newline valid var c = {a: 1, b: 2}; ok 13946 object-curly-newline valid var d = {a: 1,\u000a b: 2}; ok 13947 object-curly-newline valid var e = {a: function foo() {\u000a dosomething();\u000a}}; ok 13948 object-curly-newline valid function foo({ a, b } : MyType) {} ok 13949 object-curly-newline valid function foo({ a, b } : { a : string, b : string }) {} ok 13950 object-curly-newline valid var a = {}; ok 13951 object-curly-newline valid var b = {a: 1}; ok 13952 object-curly-newline valid var c = {a: 1, b: 2}; ok 13953 object-curly-newline valid var d = {\u000a a: 1,\u000a b: 2\u000a}; ok 13954 object-curly-newline valid var e = {\u000a a: function foo() {\u000a dosomething();\u000a }\u000a}; ok 13955 object-curly-newline valid var obj = {\u000a // comment\u000a a: 1\u000a}; ok 13956 object-curly-newline valid var obj = { // comment\u000a a: 1\u000a}; ok 13957 object-curly-newline valid var a = {}; ok 13958 object-curly-newline valid var b = {a: 1}; ok 13959 object-curly-newline valid var c = {\u000a a: 1, b: 2\u000a}; ok 13960 object-curly-newline valid var d = {\u000a a: 1,\u000a b: 2\u000a}; ok 13961 object-curly-newline valid var e = {a: function foo() {\u000a dosomething();\u000a}}; ok 13962 object-curly-newline valid var a = {}; ok 13963 object-curly-newline valid var b = {a: 1}; ok 13964 object-curly-newline valid var c = {\u000a a: 1, b: 2\u000a}; ok 13965 object-curly-newline valid var d = {\u000a a: 1, \u000a b: 2\u000a}; ok 13966 object-curly-newline valid var e = {\u000a a: function foo() {\u000a dosomething();\u000a }\u000a}; ok 13967 object-curly-newline valid var b = {\u000a a: 1\u000a}; ok 13968 object-curly-newline valid var c = {a: 1, b: 2}; ok 13969 object-curly-newline valid var c = {\u000a a: 1,\u000a b: 2\u000a}; ok 13970 object-curly-newline valid var e = {a: function() { dosomething();}}; ok 13971 object-curly-newline valid var e = {\u000a a: function() { dosomething();}\u000a}; ok 13972 object-curly-newline valid let {} = {a: 1}; ok 13973 object-curly-newline valid let {a} = {a: 1}; ok 13974 object-curly-newline valid let {\u000a} = {a: 1}; ok 13975 object-curly-newline valid let {\u000a a\u000a} = {a: 1}; ok 13976 object-curly-newline valid let {a, b} = {a: 1, b: 1}; ok 13977 object-curly-newline valid let {\u000a a, b\u000a} = {a: 1, b: 1}; ok 13978 object-curly-newline valid let {k = function() {dosomething();}} = obj; ok 13979 object-curly-newline valid let {\u000a k = function() {\u000a dosomething();\u000a }\u000a} = obj; ok 13980 object-curly-newline valid var c = {a: 1,\u000ab: 2}; ok 13981 object-curly-newline valid let {a,\u000ab} = {a: 1, b: 1}; ok 13982 object-curly-newline valid var c = { a: 1 }; ok 13983 object-curly-newline valid var c = {\u000aa: 1\u000a}; ok 13984 object-curly-newline valid let {a} = {\u000aa: 1\u000a}; ok 13985 object-curly-newline valid let {\u000aa\u000a} = {\u000aa: 1\u000a}; ok 13986 object-curly-newline valid let {a, b} = {\u000a a: 1, b: 2\u000a}; ok 13987 object-curly-newline valid import {\u000a a,\u000a b\u000a} from 'module'; ok 13988 object-curly-newline valid import {a as a, b} from 'module'; ok 13989 object-curly-newline valid import { a, } from 'module'; ok 13990 object-curly-newline valid import {\u000aa, \u000ab\u000a} from 'module'; ok 13991 object-curly-newline valid import {\u000a a,\u000a} from 'module'; ok 13992 object-curly-newline valid import { a } from 'module'; ok 13993 object-curly-newline valid import {\u000aa, b\u000a} from 'module'; ok 13994 object-curly-newline valid import {a, b} from 'module'; ok 13995 object-curly-newline valid import DefaultExport, {a} from 'module'; ok 13996 object-curly-newline valid var a = 0, b = 0;\u000aexport {a,\u000ab}; ok 13997 object-curly-newline valid var a = 0, b = 0;\u000aexport {\u000aa as a, b\u000a} from 'module'; ok 13998 object-curly-newline valid export { a } from 'module'; ok 13999 object-curly-newline valid export {\u000aa, \u000ab\u000a} from 'module'; ok 14000 object-curly-newline valid export {a, \u000ab} from 'module'; ok 14001 object-curly-newline valid export {\u000aa, b\u000a} from 'module'; ok 14002 object-curly-newline valid export {a, b} from 'module'; ok 14003 object-curly-newline invalid var a = { a\u000a}; ok 14004 object-curly-newline invalid var a = {}; ok 14005 object-curly-newline invalid var b = {a: 1}; ok 14006 object-curly-newline invalid var c = {a: 1, b: 2}; ok 14007 object-curly-newline invalid var d = {a: 1,\u000a b: 2}; ok 14008 object-curly-newline invalid var e = {a: function foo() {\u000a dosomething();\u000a}}; ok 14009 object-curly-newline invalid function foo({ a, b } : MyType) {} ok 14010 object-curly-newline invalid function foo({ a, b } : { a : string, b : string }) {} ok 14011 object-curly-newline invalid var a = {\u000a}; ok 14012 object-curly-newline invalid var b = {\u000a a: 1\u000a}; ok 14013 object-curly-newline invalid var c = {\u000a a: 1, b: 2\u000a}; ok 14014 object-curly-newline invalid var d = {\u000a a: 1,\u000a b: 2\u000a}; ok 14015 object-curly-newline invalid var e = {\u000a a: function foo() {\u000a dosomething();\u000a }\u000a}; ok 14016 object-curly-newline invalid function foo({\u000a a,\u000a b\u000a} : MyType) {} ok 14017 object-curly-newline invalid function foo({\u000a a,\u000a b\u000a} : { a : string, b : string }) {} ok 14018 object-curly-newline invalid var a = {\u000a}; ok 14019 object-curly-newline invalid var a = {\u000a /* comment */ \u000a}; ok 14020 object-curly-newline invalid var a = { // comment\u000a}; ok 14021 object-curly-newline invalid var b = {\u000a a: 1\u000a}; ok 14022 object-curly-newline invalid var b = {\u000a a: 1 // comment\u000a}; ok 14023 object-curly-newline invalid var c = {\u000a a: 1, b: 2\u000a}; ok 14024 object-curly-newline invalid var c = {\u000a a: 1, b: 2 // comment\u000a}; ok 14025 object-curly-newline invalid var d = {a: 1,\u000a b: 2}; ok 14026 object-curly-newline invalid var d = {a: 1, // comment\u000a b: 2}; ok 14027 object-curly-newline invalid var e = {a: function foo() {\u000a dosomething();\u000a}}; ok 14028 object-curly-newline invalid var e = {a: function foo() { // comment\u000a dosomething();\u000a}}; ok 14029 object-curly-newline invalid var e = {a: 1, /* comment */\u000a b: 2, // another comment\u000a}; ok 14030 object-curly-newline invalid var f = { /* comment */ a:\u000a2\u000a}; ok 14031 object-curly-newline invalid var f = {\u000a/* comment */\u000aa: 1}; ok 14032 object-curly-newline invalid var a = {\u000a}; ok 14033 object-curly-newline invalid var b = {\u000a a: 1\u000a}; ok 14034 object-curly-newline invalid var c = {a: 1, b: 2}; ok 14035 object-curly-newline invalid var d = {a: 1,\u000a b: 2}; ok 14036 object-curly-newline invalid var e = {\u000a a: function foo() {\u000a dosomething();\u000a }\u000a}; ok 14037 object-curly-newline invalid var a = {\u000a}; ok 14038 object-curly-newline invalid var b = {\u000a a: 1\u000a}; ok 14039 object-curly-newline invalid var c = {a: 1, b: 2}; ok 14040 object-curly-newline invalid var d = {a: 1, \u000a b: 2}; ok 14041 object-curly-newline invalid var e = {a: function foo() {\u000a dosomething();\u000a}}; ok 14042 object-curly-newline invalid var b = {a: 1\u000a}; ok 14043 object-curly-newline invalid var b = {\u000aa: 1}; ok 14044 object-curly-newline invalid var c = {a: 1, b: 2\u000a}; ok 14045 object-curly-newline invalid var c = {\u000aa: 1, b: 2}; ok 14046 object-curly-newline invalid var c = {a: 1,\u000ab: 2}; ok 14047 object-curly-newline invalid var e = {a: function() {\u000adosomething();\u000a}}; ok 14048 object-curly-newline invalid let {a\u000a} = {a: 1} ok 14049 object-curly-newline invalid let {\u000aa} = {a: 1} ok 14050 object-curly-newline invalid let {a, b\u000a} = {a: 1, b: 2} ok 14051 object-curly-newline invalid let {\u000aa, b} = {a: 1, b: 2} ok 14052 object-curly-newline invalid let {a,\u000ab} = {a: 1, b: 2} ok 14053 object-curly-newline invalid let {e = function() {\u000adosomething();\u000a}} = a; ok 14054 object-curly-newline invalid var c = {\u000aa: 1,\u000ab: 2}; ok 14055 object-curly-newline invalid var c = {a: 1,\u000ab: 2\u000a}; ok 14056 object-curly-newline invalid let {\u000aa,\u000ab} = {a: 1, b: 2}; ok 14057 object-curly-newline invalid let {a,\u000ab\u000a} = {a: 1, b: 2}; ok 14058 object-curly-newline invalid var c = {a: 1, b: 2}; ok 14059 object-curly-newline invalid let {a, b} = {\u000aa: 1, b: 2\u000a}; ok 14060 object-curly-newline invalid let {\u000a a, b\u000a} = {a: 1, b: 2}; ok 14061 object-curly-newline invalid import {\u000a a,\u000a b\u000a} from 'module'; ok 14062 object-curly-newline invalid import {a, b} from 'module'; ok 14063 object-curly-newline invalid import {a as c, b} from 'module'; ok 14064 object-curly-newline invalid import {a, \u000ab} from 'module'; ok 14065 object-curly-newline invalid import {a, \u000ab\u000a} from 'module'; ok 14066 object-curly-newline invalid import {a, b\u000a} from 'module'; ok 14067 object-curly-newline invalid import {a, b} from 'module'; ok 14068 object-curly-newline invalid import {\u000aa, b\u000a} from 'module'; ok 14069 object-curly-newline invalid import DefaultExport, {a, b} from 'module'; ok 14070 object-curly-newline invalid var a = 0; var b = 0;\u000aexport {\u000a a,\u000a b\u000a}; ok 14071 object-curly-newline invalid export {a as a, b} from 'module'; ok 14072 object-curly-newline invalid export {a, \u000ab} from 'module'; ok 14073 object-curly-newline invalid export {a, \u000ab,\u000a} from 'module'; ok 14074 object-curly-newline invalid export {a, b\u000a} from 'module'; ok 14075 object-curly-newline invalid export {a, b,} from 'module'; ok 14076 object-curly-newline invalid export {\u000aa, b\u000a} from 'module'; ok 14077 object-curly-spacing valid var obj = { foo: bar, baz: qux }; ok 14078 object-curly-spacing valid var obj = { foo: { bar: quxx }, baz: qux }; ok 14079 object-curly-spacing valid var obj = {\u000afoo: bar,\u000abaz: qux\u000a}; ok 14080 object-curly-spacing valid var obj = { /**/foo:bar/**/ }; ok 14081 object-curly-spacing valid var obj = { //\u000afoo:bar }; ok 14082 object-curly-spacing valid var { x } = y ok 14083 object-curly-spacing valid var { x, y } = y ok 14084 object-curly-spacing valid var { x,y } = y ok 14085 object-curly-spacing valid var {\u000ax,y } = y ok 14086 object-curly-spacing valid var {\u000ax,y\u000a} = z ok 14087 object-curly-spacing valid var { /**/x/**/ } = y ok 14088 object-curly-spacing valid var { //\u000ax } = y ok 14089 object-curly-spacing valid var { x = 10, y } = y ok 14090 object-curly-spacing valid var { x: { z }, y } = y ok 14091 object-curly-spacing valid var {\u000ay,\u000a} = x ok 14092 object-curly-spacing valid var { y, } = x ok 14093 object-curly-spacing valid var { y: x } = x ok 14094 object-curly-spacing valid import door from 'room' ok 14095 object-curly-spacing valid import * as door from 'room' ok 14096 object-curly-spacing valid import { door } from 'room' ok 14097 object-curly-spacing valid import {\u000adoor } from 'room' ok 14098 object-curly-spacing valid import { /**/door/**/ } from 'room' ok 14099 object-curly-spacing valid import { //\u000adoor } from 'room' ok 14100 object-curly-spacing valid export { door } from 'room' ok 14101 object-curly-spacing valid import { house, mouse } from 'caravan' ok 14102 object-curly-spacing valid import house, { mouse } from 'caravan' ok 14103 object-curly-spacing valid import door, { house, mouse } from 'caravan' ok 14104 object-curly-spacing valid var door = 0;export { door } ok 14105 object-curly-spacing valid import 'room' ok 14106 object-curly-spacing valid import { bar as x } from 'foo'; ok 14107 object-curly-spacing valid import { x, } from 'foo'; ok 14108 object-curly-spacing valid import {\u000ax,\u000a} from 'foo'; ok 14109 object-curly-spacing valid export { x, } from 'foo'; ok 14110 object-curly-spacing valid export {\u000ax,\u000a} from 'foo'; ok 14111 object-curly-spacing valid export { /**/x/**/ } from 'foo'; ok 14112 object-curly-spacing valid export { //\u000ax } from 'foo'; ok 14113 object-curly-spacing valid var x = 1;\u000aexport { /**/x/**/ }; ok 14114 object-curly-spacing valid var x = 1;\u000aexport { //\u000ax }; ok 14115 object-curly-spacing valid var foo = {}; ok 14116 object-curly-spacing valid var obj = { 'foo': { 'bar': 1, 'baz': 2 }}; ok 14117 object-curly-spacing valid var a = { noop: function () {} }; ok 14118 object-curly-spacing valid var { y: { z }} = x ok 14119 object-curly-spacing valid var obj = { 'foo': [ 1, 2 ]}; ok 14120 object-curly-spacing valid var a = { thingInList: list[0] }; ok 14121 object-curly-spacing valid var obj = { 'qux': [ 1, 2 ], 'foo': { 'bar': 1, 'baz': 2 }}; ok 14122 object-curly-spacing valid var obj = { 'foo': { 'bar': 1, 'baz': 2 }, 'qux': [ 1, 2 ]}; ok 14123 object-curly-spacing valid var obj = {foo: bar,\u000abaz: qux\u000a}; ok 14124 object-curly-spacing valid var obj = {\u000afoo: bar,\u000abaz: qux}; ok 14125 object-curly-spacing valid var obj = {foo: bar, baz: qux}; ok 14126 object-curly-spacing valid var obj = {foo: {bar: quxx}, baz: qux}; ok 14127 object-curly-spacing valid var obj = {foo: {\u000abar: quxx}, baz: qux\u000a}; ok 14128 object-curly-spacing valid var obj = {foo: {\u000abar: quxx\u000a}, baz: qux}; ok 14129 object-curly-spacing valid var obj = {\u000afoo: bar,\u000abaz: qux\u000a}; ok 14130 object-curly-spacing valid var obj = {foo: bar, baz: qux /* */}; ok 14131 object-curly-spacing valid var obj = {/* */ foo: bar, baz: qux}; ok 14132 object-curly-spacing valid var obj = {//\u000a foo: bar}; ok 14133 object-curly-spacing valid var obj = { // line comment exception\u000a foo: bar}; ok 14134 object-curly-spacing valid var {x} = y ok 14135 object-curly-spacing valid var {x, y} = y ok 14136 object-curly-spacing valid var {x,y} = y ok 14137 object-curly-spacing valid var {\u000ax,y\u000a} = y ok 14138 object-curly-spacing valid var {x = 10} = y ok 14139 object-curly-spacing valid var {x = 10, y} = y ok 14140 object-curly-spacing valid var {x: {z}, y} = y ok 14141 object-curly-spacing valid var {\u000ax: {z\u000a}, y} = y ok 14142 object-curly-spacing valid var {\u000ay,\u000a} = x ok 14143 object-curly-spacing valid var {y,} = x ok 14144 object-curly-spacing valid var {y:x} = x ok 14145 object-curly-spacing valid var {/* */ y} = x ok 14146 object-curly-spacing valid var {y /* */} = x ok 14147 object-curly-spacing valid var {//\u000a y} = x ok 14148 object-curly-spacing valid var { // line comment exception\u000a y} = x ok 14149 object-curly-spacing valid import door from 'room' ok 14150 object-curly-spacing valid import * as door from 'room' ok 14151 object-curly-spacing valid import {door} from 'room' ok 14152 object-curly-spacing valid export {door} from 'room' ok 14153 object-curly-spacing valid import {/* */ door} from 'room' ok 14154 object-curly-spacing valid export {/* */ door} from 'room' ok 14155 object-curly-spacing valid import {door /* */} from 'room' ok 14156 object-curly-spacing valid export {door /* */} from 'room' ok 14157 object-curly-spacing valid import {//\u000a door} from 'room' ok 14158 object-curly-spacing valid export {//\u000a door} from 'room' ok 14159 object-curly-spacing valid var door = foo;\u000aexport {//\u000a door} ok 14160 object-curly-spacing valid import { // line comment exception\u000a door} from 'room' ok 14161 object-curly-spacing valid export { // line comment exception\u000a door} from 'room' ok 14162 object-curly-spacing valid var door = foo; export { // line comment exception\u000a door} ok 14163 object-curly-spacing valid import {\u000adoor} from 'room' ok 14164 object-curly-spacing valid export {\u000adoor\u000a} from 'room' ok 14165 object-curly-spacing valid import {house,mouse} from 'caravan' ok 14166 object-curly-spacing valid import {house, mouse} from 'caravan' ok 14167 object-curly-spacing valid var door = 0;export {door} ok 14168 object-curly-spacing valid import 'room' ok 14169 object-curly-spacing valid import x, {bar} from 'foo'; ok 14170 object-curly-spacing valid import x, {bar, baz} from 'foo'; ok 14171 object-curly-spacing valid import {bar as y} from 'foo'; ok 14172 object-curly-spacing valid import {x,} from 'foo'; ok 14173 object-curly-spacing valid import {\u000ax,\u000a} from 'foo'; ok 14174 object-curly-spacing valid export {x,} from 'foo'; ok 14175 object-curly-spacing valid export {\u000ax,\u000a} from 'foo'; ok 14176 object-curly-spacing valid var foo = {}; ok 14177 object-curly-spacing valid var obj = {'foo': {'bar': 1, 'baz': 2} }; ok 14178 object-curly-spacing valid var {} = foo; ok 14179 object-curly-spacing valid var [] = foo; ok 14180 object-curly-spacing valid var {a: {}} = foo; ok 14181 object-curly-spacing valid var {a: []} = foo; ok 14182 object-curly-spacing valid import {} from 'foo'; ok 14183 object-curly-spacing valid export {} from 'foo'; ok 14184 object-curly-spacing valid export {}; ok 14185 object-curly-spacing valid var {} = foo; ok 14186 object-curly-spacing valid var [] = foo; ok 14187 object-curly-spacing valid var {a: {}} = foo; ok 14188 object-curly-spacing valid var {a: []} = foo; ok 14189 object-curly-spacing valid import {} from 'foo'; ok 14190 object-curly-spacing valid export {} from 'foo'; ok 14191 object-curly-spacing valid export {}; ok 14192 object-curly-spacing valid function foo ({a, b}: Props) {\u000a} ok 14193 object-curly-spacing invalid import {bar} from 'foo.js'; ok 14194 object-curly-spacing invalid import { bar as y} from 'foo.js'; ok 14195 object-curly-spacing invalid import {bar as y} from 'foo.js'; ok 14196 object-curly-spacing invalid import { bar} from 'foo.js'; ok 14197 object-curly-spacing invalid import x, { bar} from 'foo'; ok 14198 object-curly-spacing invalid import x, { bar/* */} from 'foo'; ok 14199 object-curly-spacing invalid import x, {/* */bar } from 'foo'; ok 14200 object-curly-spacing invalid import x, {//\u000a bar } from 'foo'; ok 14201 object-curly-spacing invalid import x, { bar, baz} from 'foo'; ok 14202 object-curly-spacing invalid import x, {bar} from 'foo'; ok 14203 object-curly-spacing invalid import x, {bar, baz} from 'foo'; ok 14204 object-curly-spacing invalid import {bar,} from 'foo'; ok 14205 object-curly-spacing invalid import { bar, } from 'foo'; ok 14206 object-curly-spacing invalid import { /* */ bar, /* */ } from 'foo'; ok 14207 object-curly-spacing invalid var bar = 0;\u000aexport {bar}; ok 14208 object-curly-spacing invalid var bar = 0;\u000aexport {/* */ bar /* */}; ok 14209 object-curly-spacing invalid var bar = 0;\u000aexport {//\u000a bar }; ok 14210 object-curly-spacing invalid var bar = 0;\u000aexport { /* */ bar /* */ }; ok 14211 object-curly-spacing invalid var obj = { 'foo': [ 1, 2 ] }; ok 14212 object-curly-spacing invalid var obj = { 'foo': [ 1, 2 ] , 'bar': [ 'baz', 'qux' ] }; ok 14213 object-curly-spacing invalid var obj = { 'foo': { 'bar': 1, 'baz': 2 } }; ok 14214 object-curly-spacing invalid var obj = { 'foo': [ 1, 2 ] , 'bar': { 'baz': 1, 'qux': 2 } }; ok 14215 object-curly-spacing invalid var { a,} = x; ok 14216 object-curly-spacing invalid var {a, } = x; ok 14217 object-curly-spacing invalid var {a:b } = x; ok 14218 object-curly-spacing invalid var { a:b } = x; ok 14219 object-curly-spacing invalid var obj = {'foo': {'bar': 1, 'baz': 2}}; ok 14220 object-curly-spacing invalid var obj = {'foo': [1, 2] , 'bar': {'baz': 1, 'qux': 2}}; ok 14221 object-curly-spacing invalid var obj = {foo: bar, baz: qux}; ok 14222 object-curly-spacing invalid var obj = {foo: bar, baz: qux }; ok 14223 object-curly-spacing invalid var obj = {/* */foo: bar, baz: qux }; ok 14224 object-curly-spacing invalid var obj = {//\u000a foo: bar }; ok 14225 object-curly-spacing invalid var obj = { foo: bar, baz: qux}; ok 14226 object-curly-spacing invalid var obj = { foo: bar, baz: qux/* */}; ok 14227 object-curly-spacing invalid var obj = { foo: bar, baz: qux }; ok 14228 object-curly-spacing invalid var obj = {foo: bar, baz: qux }; ok 14229 object-curly-spacing invalid var obj = {foo: bar, baz: qux /* */ }; ok 14230 object-curly-spacing invalid var obj = { foo: bar, baz: qux}; ok 14231 object-curly-spacing invalid var obj = { /* */ foo: bar, baz: qux}; ok 14232 object-curly-spacing invalid var obj = { // line comment exception\u000a foo: bar }; ok 14233 object-curly-spacing invalid var obj = { foo: { bar: quxx}, baz: qux}; ok 14234 object-curly-spacing invalid var obj = {foo: {bar: quxx }, baz: qux }; ok 14235 object-curly-spacing invalid export const thing = {value: 1 }; ok 14236 object-curly-spacing invalid var {x, y} = y ok 14237 object-curly-spacing invalid var { x, y} = y ok 14238 object-curly-spacing invalid var { x, y/* */} = y ok 14239 object-curly-spacing invalid var {/* */x, y } = y ok 14240 object-curly-spacing invalid var {//\u000a x } = y ok 14241 object-curly-spacing invalid var { x, y } = y ok 14242 object-curly-spacing invalid var {x, y } = y ok 14243 object-curly-spacing invalid var {x, y/* */ } = y ok 14244 object-curly-spacing invalid var { /* */x, y} = y ok 14245 object-curly-spacing invalid var { x=10} = y ok 14246 object-curly-spacing invalid var {x=10 } = y ok 14247 object-curly-spacing invalid var obj = {'foo': [1, 2]}; ok 14248 object-curly-spacing invalid var obj = {'foo': [1, 2] , 'bar': ['baz', 'qux']}; ok 14249 object-curly-spacing invalid function foo ({a, b }: Props) {\u000a} ok 14250 object-property-newline valid var obj = {\u000ak1: 'val1',\u000ak2: 'val2',\u000ak3: 'val3',\u000ak4: 'val4'\u000a}; ok 14251 object-property-newline valid var obj = {\u000ak1: 'val1'\u000a, k2: 'val2'\u000a, k3: 'val3'\u000a, k4: 'val4'\u000a}; ok 14252 object-property-newline valid var obj = { k1: 'val1',\u000ak2: 'val2',\u000ak3: 'val3',\u000ak4: 'val4' }; ok 14253 object-property-newline valid var obj = { k1: 'val1'\u000a, k2: 'val2'\u000a, k3: 'val3'\u000a, k4: 'val4' }; ok 14254 object-property-newline valid var obj = { k1: 'val1' }; ok 14255 object-property-newline valid var obj = {\u000ak1: 'val1'\u000a}; ok 14256 object-property-newline valid var obj = {}; ok 14257 object-property-newline valid var obj = {\u000a[bar]: 'baz',\u000abaz\u000a}; ok 14258 object-property-newline valid var obj = {\u000ak1: 'val1',\u000ak2: 'val2',\u000a...{}\u000a}; ok 14259 object-property-newline valid var obj = { k1: 'val1',\u000ak2: 'val2',\u000a...{} }; ok 14260 object-property-newline valid var obj = { ...{} }; ok 14261 object-property-newline valid foo({ k1: 'val1',\u000ak2: 'val2' }); ok 14262 object-property-newline valid foo({\u000ak1: 'val1',\u000ak2: 'val2'\u000a}); ok 14263 object-property-newline valid foo({\u000aa,\u000ab\u000a}); ok 14264 object-property-newline valid foo({\u000aa,\u000ab,\u000a}); ok 14265 object-property-newline valid foo({\u000abar() {},\u000abaz\u000a}); ok 14266 object-property-newline valid foo({\u000a[bar]: 'baz',\u000abaz \u000a}) ok 14267 object-property-newline valid foo({\u000ak1: 'val1',\u000ak2: 'val2',\u000a...{}\u000a}); ok 14268 object-property-newline valid foo({ k1: 'val1',\u000ak2: 'val2',\u000a...{} }); ok 14269 object-property-newline valid foo({ ...{} }); ok 14270 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 14271 object-property-newline valid var obj = {\u000ak1: 'val1', k2: 'val2', k3: 'val3'\u000a}; ok 14272 object-property-newline valid var obj = { k1: 'val1' }; ok 14273 object-property-newline valid var obj = {\u000ak1: 'val1'\u000a}; ok 14274 object-property-newline valid var obj = {}; ok 14275 object-property-newline valid var obj = { 'k1': 'val1', k2: 'val2', ...{} }; ok 14276 object-property-newline valid var obj = {\u000a'k1': 'val1', k2: 'val2', ...{}\u000a}; ok 14277 object-property-newline valid foo({ k1: 'val1', k2: 'val2' }); ok 14278 object-property-newline valid foo({\u000ak1: 'val1', k2: 'val2'\u000a}); ok 14279 object-property-newline valid foo({ a, b }); ok 14280 object-property-newline valid foo({ bar() {}, baz }); ok 14281 object-property-newline valid foo({ [bar]: 'baz', baz }) ok 14282 object-property-newline valid foo({ 'k1': 'val1', k2: 'val2', ...{} }); ok 14283 object-property-newline valid foo({\u000a'k1': 'val1', k2: 'val2', ...{}\u000a}); ok 14284 object-property-newline valid var obj = {k1: ['foo', 'bar'], k2: 'val1', k3: 'val2'}; ok 14285 object-property-newline valid var obj = {\u000ak1: ['foo', 'bar'], k2: 'val1', k3: 'val2'\u000a}; ok 14286 object-property-newline valid var obj = {\u000ak1: 'val1', k2: {e1: 'foo', e2: 'bar'}, k3: 'val2'\u000a}; ok 14287 object-property-newline valid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 14288 object-property-newline invalid var obj = { k1: 'val1', k2: 'val2', k3: 'val3' }; ok 14289 object-property-newline invalid var obj = {\u000ak1: 'val1', k2: 'val2'\u000a}; ok 14290 object-property-newline invalid var obj = {\u000ak1: 'val1', k2: 'val2',\u000ak3: 'val3', k4: 'val4'\u000a}; ok 14291 object-property-newline invalid var obj = {k1: ['foo', 'bar'], k2: 'val1'}; ok 14292 object-property-newline invalid var obj = {k1: [\u000a'foo', 'bar'\u000a], k2: 'val1'}; ok 14293 object-property-newline invalid var obj = {\u000ak1: 'val1', k2: {e1: 'foo', e2: 'bar'}, k3: 'val2'\u000a}; ok 14294 object-property-newline invalid var obj = {\u000ak1: 'val1',\u000ak2: {e1: 'foo', e2: 'bar'},\u000ak3: 'val2'\u000a}; ok 14295 object-property-newline invalid var obj = { k1: 'val1',\u000ak2: [\u000a'val2a', 'val2b', 'val2c'\u000a], k3: 'val3' }; ok 14296 object-property-newline invalid var obj = { k1: 'val1', [\u000ak2]: 'val2' }; ok 14297 object-property-newline invalid var obj = { k1: 'val1', ...{} }; ok 14298 object-property-newline invalid var obj = {\u000ak1: 'val1', ...{}\u000a}; ok 14299 object-property-newline invalid foo({ k1: 'val1', k2: 'val2' }); ok 14300 object-property-newline invalid foo({\u000ak1: 'val1', k2: 'val2'\u000a}); ok 14301 object-property-newline invalid foo({ a, b }); ok 14302 object-property-newline invalid foo({\u000aa, b\u000a}); ok 14303 object-property-newline invalid foo({\u000abar() {}, baz\u000a}); ok 14304 object-property-newline invalid foo({\u000a[bar]: 'baz', baz\u000a}) ok 14305 object-property-newline invalid foo({ k1: 'val1', [\u000ak2]: 'val2' }) ok 14306 object-property-newline invalid foo({ k1: 'val1', ...{} }) ok 14307 object-property-newline invalid foo({\u000ak1: 'val1', ...{}\u000a}) ok 14308 object-property-newline invalid var obj = {\u000aa: {\u000ab: 1,\u000ac: 2\u000a}, d: 2\u000a}; ok 14309 object-property-newline invalid ({ foo: 1 /* comment */, bar: 2 }) ok 14310 object-property-newline invalid ({ foo: 1, /* comment */ bar: 2 }) ok 14311 object-property-newline invalid var obj = {\u000ak1: 'val1',\u000ak2: 'val2', k3: 'val3'\u000a}; ok 14312 object-property-newline invalid var obj = {\u000ak1:\u000a'val1', k2: 'val2', k3:\u000a'val3'\u000a}; ok 14313 object-property-newline invalid var obj = {k1: [\u000a'foo',\u000a'bar'\u000a], k2: 'val1'}; ok 14314 object-property-newline invalid var obj = {k1: [\u000a'foo', 'bar'\u000a], k2: 'val1'}; ok 14315 object-property-newline invalid var obj = {\u000ak1: 'val1', k2: {\u000ae1: 'foo', e2: 'bar'\u000a}, k3: 'val2'\u000a}; ok 14316 object-property-newline invalid var obj = { k1: 'val1',\u000ak2: [\u000a'val2a', 'val2b', 'val2c'\u000a], k3: 'val3' }; ok 14317 object-property-newline invalid var obj = { [\u000ak1]: 'val1', k2: 'val2' }; ok 14318 object-property-newline invalid var obj = {\u000ak1: 'val1',\u000ak2: 'val2', ...{}\u000a}; ok 14319 object-property-newline invalid var obj = {\u000a...{},\u000ak1: 'val1', k2: 'val2'\u000a}; ok 14320 object-property-newline invalid foo({ [\u000ak1]: 'val1', k2: 'val2' }) ok 14321 object-property-newline invalid foo({\u000ak1: 'val1',\u000ak2: 'val2', ...{}\u000a}) ok 14322 object-property-newline invalid foo({\u000a...{},\u000ak1: 'val1', k2: 'val2'\u000a}) ok 14323 object-property-newline invalid var obj = {\u000ak1: 'val1',\u000ak2: 'val2', k3: 'val3'\u000a}; ok 14324 object-shorthand valid var x = {y() {}} ok 14325 object-shorthand valid var x = {y} ok 14326 object-shorthand valid var x = {a: b} ok 14327 object-shorthand valid var x = {a: 'a'} ok 14328 object-shorthand valid var x = {'a': 'a'} ok 14329 object-shorthand valid var x = {'a': b} ok 14330 object-shorthand valid var x = {y(x) {}} ok 14331 object-shorthand valid var {x,y,z} = x ok 14332 object-shorthand valid var {x: {y}} = z ok 14333 object-shorthand valid var x = {*x() {}} ok 14334 object-shorthand valid var x = {x: y} ok 14335 object-shorthand valid var x = {x: y, y: z} ok 14336 object-shorthand valid var x = {x: y, y: z, z: 'z'} ok 14337 object-shorthand valid var x = {x() {}, y: z, l(){}} ok 14338 object-shorthand valid var x = {x: y, y: z, a: b} ok 14339 object-shorthand valid var x = {x: y, y: z, 'a': b} ok 14340 object-shorthand valid var x = {x: y, y() {}, z: a} ok 14341 object-shorthand valid var x = {[y]: y} ok 14342 object-shorthand valid doSomething({x: y}) ok 14343 object-shorthand valid doSomething({'x': y}) ok 14344 object-shorthand valid doSomething({x: 'x'}) ok 14345 object-shorthand valid doSomething({'x': 'x'}) ok 14346 object-shorthand valid doSomething({y() {}}) ok 14347 object-shorthand valid doSomething({x: y, y() {}}) ok 14348 object-shorthand valid doSomething({y() {}, z: a}) ok 14349 object-shorthand valid !{ a: function a(){} }; ok 14350 object-shorthand valid var x = {y: (x)=>x} ok 14351 object-shorthand valid doSomething({y: (x)=>x}) ok 14352 object-shorthand valid var x = {y: (x)=>x, y: a} ok 14353 object-shorthand valid doSomething({x, y: (x)=>x}) ok 14354 object-shorthand valid ({ foo: x => { return; }}) ok 14355 object-shorthand valid ({ foo: (x) => { return; }}) ok 14356 object-shorthand valid ({ foo: () => { return; }}) ok 14357 object-shorthand valid var x = {get y() {}} ok 14358 object-shorthand valid var x = {set y(z) {}} ok 14359 object-shorthand valid var x = {get y() {}, set y(z) {}} ok 14360 object-shorthand valid doSomething({get y() {}}) ok 14361 object-shorthand valid doSomething({set y(z) {}}) ok 14362 object-shorthand valid doSomething({get y() {}, set y(z) {}}) ok 14363 object-shorthand valid var x = {[y]: y} ok 14364 object-shorthand valid var x = {['y']: 'y'} ok 14365 object-shorthand valid var x = {['y']: y} ok 14366 object-shorthand valid var x = {[y]() {}} ok 14367 object-shorthand valid var x = {[y]: function x() {}} ok 14368 object-shorthand valid var x = {[y]: y} ok 14369 object-shorthand valid var x = {y() {}} ok 14370 object-shorthand valid var x = {x, y() {}, a:b} ok 14371 object-shorthand valid var x = {y} ok 14372 object-shorthand valid var x = {y: {b}} ok 14373 object-shorthand valid var x = {a: n, c: d, f: g} ok 14374 object-shorthand valid var x = {a: function(){}, b: {c: d}} ok 14375 object-shorthand valid var x = {ConstructorFunction: function(){}, a: b} ok 14376 object-shorthand valid var x = {_ConstructorFunction: function(){}, a: b} ok 14377 object-shorthand valid var x = {$ConstructorFunction: function(){}, a: b} ok 14378 object-shorthand valid var x = {__ConstructorFunction: function(){}, a: b} ok 14379 object-shorthand valid var x = {_0ConstructorFunction: function(){}, a: b} ok 14380 object-shorthand valid var x = {notConstructorFunction(){}, b: c} ok 14381 object-shorthand valid var x = {ConstructorFunction: function(){}, a: b} ok 14382 object-shorthand valid var x = {_ConstructorFunction: function(){}, a: b} ok 14383 object-shorthand valid var x = {$ConstructorFunction: function(){}, a: b} ok 14384 object-shorthand valid var x = {__ConstructorFunction: function(){}, a: b} ok 14385 object-shorthand valid var x = {_0ConstructorFunction: function(){}, a: b} ok 14386 object-shorthand valid var x = {notConstructorFunction(){}, b: c} ok 14387 object-shorthand valid var x = {ConstructorFunction: function(){}, a: b} ok 14388 object-shorthand valid var x = {notConstructorFunction: function(){}, b: c} ok 14389 object-shorthand valid var x = {'a': function(){}} ok 14390 object-shorthand valid var x = {['a']: function(){}} ok 14391 object-shorthand valid var x = {'y': y} ok 14392 object-shorthand valid let {a, b} = o; ok 14393 object-shorthand valid var x = {foo: foo, bar: bar, ...baz} ok 14394 object-shorthand valid var x = {a: a, b: b} ok 14395 object-shorthand valid var x = {a: b, c: d, f: g} ok 14396 object-shorthand valid var x = {a, b} ok 14397 object-shorthand valid var x = {a, b, get test() { return 1; }} ok 14398 object-shorthand valid var x = {...bar} ok 14399 object-shorthand valid var x = {foo, bar, ...baz} ok 14400 object-shorthand valid var x = {bar: baz, ...qux} ok 14401 object-shorthand valid var x = {...foo, bar: bar, baz: baz} ok 14402 object-shorthand valid var x = {a, b} ok 14403 object-shorthand valid var x = {a, b, get test(){return 1;}} ok 14404 object-shorthand valid var x = {0: 'foo'} ok 14405 object-shorthand valid var x = {'key': 'baz'} ok 14406 object-shorthand valid var x = {foo: 'foo'} ok 14407 object-shorthand valid var x = {[foo]: foo} ok 14408 object-shorthand valid var x = {foo: function foo() {}} ok 14409 object-shorthand valid var x = {[foo]: 'foo'} ok 14410 object-shorthand valid var x = {bar, ...baz} ok 14411 object-shorthand valid var x = {bar: baz, ...qux} ok 14412 object-shorthand valid var x = {...foo, bar, baz} ok 14413 object-shorthand valid ({ x: () => foo }) ok 14414 object-shorthand valid ({ x: () => { return; } }) ok 14415 object-shorthand valid ({ x: () => foo }) ok 14416 object-shorthand valid ({ x() { return; } }) ok 14417 object-shorthand valid ({ x() { return; }, y() { return; } }) ok 14418 object-shorthand valid ({ x() { return; }, y: () => foo }) ok 14419 object-shorthand valid ({ x: () => foo, y() { return; } }) ok 14420 object-shorthand valid ({ x: () => { this; } }) ok 14421 object-shorthand valid function foo() { ({ x: () => { arguments; } }) } ok 14422 object-shorthand valid \u000a class Foo extends Bar {\u000a constructor() {\u000a var foo = { x: () => { super(); } };\u000a }\u000a }\u000a ok 14423 object-shorthand valid \u000a class Foo extends Bar {\u000a baz() {\u000a var foo = { x: () => { super.baz(); } };\u000a }\u000a }\u000a ok 14424 object-shorthand valid \u000a function foo() {\u000a var x = { x: () => { new.target; } };\u000a }\u000a ok 14425 object-shorthand valid \u000a function foo() {\u000a var x = {\u000a x: () => {\u000a var y = () => { this; };\u000a }\u000a };\u000a }\u000a ok 14426 object-shorthand valid \u000a function foo() {\u000a var x = {\u000a x: () => {\u000a var y = () => { this; };\u000a function foo() { this; }\u000a }\u000a };\u000a }\u000a ok 14427 object-shorthand valid \u000a function foo() {\u000a var x = {\u000a x: () => {\u000a return { y: () => { this; } };\u000a }\u000a };\u000a }\u000a ok 14428 object-shorthand valid ({ [foo.bar]: () => {} }) ok 14429 object-shorthand invalid var x = {x: x} ok 14430 object-shorthand invalid var x = {'x': x} ok 14431 object-shorthand invalid var x = {y: y, x: x} ok 14432 object-shorthand invalid var x = {y: z, x: x, a: b} ok 14433 object-shorthand invalid var x = {y: z,\u000a x: x,\u000a a: b\u000a // comment \u000a} ok 14434 object-shorthand invalid var x = {y: z,\u000a a: b,\u000a // comment \u000af: function() {}} ok 14435 object-shorthand invalid var x = {a: b,\u000a/* comment */\u000ay: y\u000a } ok 14436 object-shorthand invalid var x = {\u000a a: b,\u000a /* comment */\u000a y: y\u000a} ok 14437 object-shorthand invalid var x = {\u000a f: function() {\u000a /* comment */\u000a a(b);\u000a }\u000a } ok 14438 object-shorthand invalid var x = {\u000a [f]: function() {\u000a /* comment */\u000a a(b);\u000a }\u000a } ok 14439 object-shorthand invalid var x = {\u000a f: function*() {\u000a /* comment */\u000a a(b);\u000a }\u000a } ok 14440 object-shorthand invalid var x = {\u000a f: /* comment */ function() {\u000a }\u000a } ok 14441 object-shorthand invalid var x = {\u000a f /* comment */: function() {\u000a }\u000a } ok 14442 object-shorthand invalid var x = {y: function() {}} ok 14443 object-shorthand invalid var x = {y: function*() {}} ok 14444 object-shorthand invalid var x = {x: y, y: z, a: a} ok 14445 object-shorthand invalid var x = {ConstructorFunction: function(){}, a: b} ok 14446 object-shorthand invalid var x = {x: y, y: z, a: function(){}, b() {}} ok 14447 object-shorthand invalid var x = {x: x, y: function() {}} ok 14448 object-shorthand invalid doSomething({x: x}) ok 14449 object-shorthand invalid doSomething({'x': x}) ok 14450 object-shorthand invalid doSomething({a: 'a', 'x': x}) ok 14451 object-shorthand invalid doSomething({y: function() {}}) ok 14452 object-shorthand invalid doSomething({[y]: function() {}}) ok 14453 object-shorthand invalid doSomething({['y']: function() {}}) ok 14454 object-shorthand invalid ({ foo: async function () {} }) ok 14455 object-shorthand invalid ({ 'foo': async function() {} }) ok 14456 object-shorthand invalid ({ [foo]: async function() {} }) ok 14457 object-shorthand invalid ({ [foo.bar]: function*() {} }) ok 14458 object-shorthand invalid ({ [foo ]: function() {} }) ok 14459 object-shorthand invalid ({ [ foo ]: async function() {} }) ok 14460 object-shorthand invalid ({ foo: function *() {} }) ok 14461 object-shorthand invalid ({ [ foo ]: function() {} }) ok 14462 object-shorthand invalid ({ [ foo]: function() {} }) ok 14463 object-shorthand invalid var x = {y: function() {}} ok 14464 object-shorthand invalid var x = {x, y() {}, z: function() {}} ok 14465 object-shorthand invalid var x = {ConstructorFunction: function(){}, a: b} ok 14466 object-shorthand invalid var x = {[y]: function() {}} ok 14467 object-shorthand invalid ({ [(foo)]: function() { return; } }) ok 14468 object-shorthand invalid ({ [(foo)]: async function() { return; } }) ok 14469 object-shorthand invalid ({ [(((((((foo)))))))]: function() { return; } }) ok 14470 object-shorthand invalid ({ [(foo)]() { return; } }) ok 14471 object-shorthand invalid ({ async [(foo)]() { return; } }) ok 14472 object-shorthand invalid ({ *[((foo))]() { return; } }) ok 14473 object-shorthand invalid ({ [(((((((foo)))))))]() { return; } }) ok 14474 object-shorthand invalid ({ 'foo bar'() { return; } }) ok 14475 object-shorthand invalid ({ *foo() { return; } }) ok 14476 object-shorthand invalid ({ async foo() { return; } }) ok 14477 object-shorthand invalid ({ *['foo bar']() { return; } }) ok 14478 object-shorthand invalid var x = {x: x} ok 14479 object-shorthand invalid var x = {a, b, c(){}, x: x} ok 14480 object-shorthand invalid var x = {y() {}} ok 14481 object-shorthand invalid var x = {*y() {}} ok 14482 object-shorthand invalid var x = {y} ok 14483 object-shorthand invalid var x = {y, a: b, *x(){}} ok 14484 object-shorthand invalid var x = {y: {x}} ok 14485 object-shorthand invalid var x = {ConstructorFunction(){}, a: b} ok 14486 object-shorthand invalid var x = {notConstructorFunction(){}, b: c} ok 14487 object-shorthand invalid var x = {foo: foo, bar: baz, ...qux} ok 14488 object-shorthand invalid var x = {foo, bar: baz, ...qux} ok 14489 object-shorthand invalid var x = {y: function() {}} ok 14490 object-shorthand invalid var x = {_y: function() {}} ok 14491 object-shorthand invalid var x = {$y: function() {}} ok 14492 object-shorthand invalid var x = {__y: function() {}} ok 14493 object-shorthand invalid var x = {_0y: function() {}} ok 14494 object-shorthand invalid var x = {a: a} ok 14495 object-shorthand invalid var x = {a: function(){}} ok 14496 object-shorthand invalid var x = {[a]: function(){}} ok 14497 object-shorthand invalid var x = {'a'(){}} ok 14498 object-shorthand invalid var x = {['a'](){}} ok 14499 object-shorthand invalid var x = {a: a, b} ok 14500 object-shorthand invalid var x = {b, c: d, f: g} ok 14501 object-shorthand invalid var x = {foo, bar: baz, ...qux} ok 14502 object-shorthand invalid var x = {a: a, b: b} ok 14503 object-shorthand invalid var x = {a, z: function z(){}} ok 14504 object-shorthand invalid var x = {foo: function() {}} ok 14505 object-shorthand invalid var x = {a: a, b: b, ...baz} ok 14506 object-shorthand invalid var x = {foo, bar: bar, ...qux} ok 14507 object-shorthand invalid ({ x: () => { return; } }) ok 14508 object-shorthand invalid ({ x() { return; }, y: () => { return; } }) ok 14509 object-shorthand invalid ({ x: () => { return; }, y: () => foo }) ok 14510 object-shorthand invalid ({ x: () => { return; }, y: () => { return; } }) ok 14511 object-shorthand invalid ({ x: foo => { return; } }) ok 14512 object-shorthand invalid ({ x: (foo = 1) => { return; } }) ok 14513 object-shorthand invalid ({ x: ({ foo: bar = 1 } = {}) => { return; } }) ok 14514 object-shorthand invalid ({ x: () => { function foo() { this; } } }) ok 14515 object-shorthand invalid ({ x: () => { var foo = function() { arguments; } } }) ok 14516 object-shorthand invalid ({ x: () => { function foo() { arguments; } } }) ok 14517 object-shorthand invalid \u000a ({\u000a x: () => {\u000a class Foo extends Bar {\u000a constructor() {\u000a super();\u000a }\u000a }\u000a }\u000a })\u000a ok 14518 object-shorthand invalid \u000a ({\u000a x: () => {\u000a function foo() {\u000a new.target;\u000a }\u000a }\u000a })\u000a ok 14519 object-shorthand invalid ({ 'foo bar': () => { return; } }) ok 14520 object-shorthand invalid ({ [foo]: () => { return; } }) ok 14521 object-shorthand invalid ({ a: 1, foo: async (bar = 1) => { return; } }) ok 14522 object-shorthand invalid ({ [ foo ]: async bar => { return; } }) ok 14523 object-shorthand invalid ({ key: (arg = () => {}) => {} }) ok 14524 object-shorthand invalid \u000a function foo() {\u000a var x = {\u000a x: () => {\u000a this;\u000a return { y: () => { foo; } };\u000a }\u000a };\u000a }\u000a ok 14525 object-shorthand invalid \u000a function foo() {\u000a var x = {\u000a x: () => {\u000a ({ y: () => { foo; } });\u000a this;\u000a }\u000a };\u000a }\u000a ok 14526 object-shorthand invalid ({ a: (function(){ return foo; }) }) ok 14527 object-shorthand invalid ({ a: (() => { return foo; }) }) ok 14528 object-shorthand invalid ({ a: ((arg) => { return foo; }) }) ok 14529 object-shorthand invalid ({ a: ((arg, arg2) => { return foo; }) }) ok 14530 object-shorthand invalid ({ a: (async () => { return foo; }) }) ok 14531 object-shorthand invalid ({ a: (async (arg) => { return foo; }) }) ok 14532 object-shorthand invalid ({ a: (async (arg, arg2) => { return foo; }) }) ok 14533 object-shorthand invalid ({ a: async function*() {} }) ok 14534 object-shorthand invalid ({ async* a() {} }) ok 14535 object-shorthand invalid const test = {\u000a key: (): void => {x()},\u000a key: ( (): void => {x()} ),\u000a key: ( (): (void) => {x()} ),\u000a\u000a key: (arg: t): void => {x()},\u000a key: ( (arg: t): void => {x()} ),\u000a key: ( (arg: t): (void) => {x()} ),\u000a\u000a key: (arg: t, arg2: t): void => {x()},\u000a key: ( (arg: t, arg2: t): void => {x()} ),\u000a key: ( (arg: t, arg2: t): (void) => {x()} ),\u000a\u000a key: async (): void => {x()},\u000a key: ( async (): void => {x()} ),\u000a key: ( async (): (void) => {x()} ),\u000a\u000a key: async (arg: t): void => {x()},\u000a key: ( async (arg: t): void => {x()} ),\u000a key: ( async (arg: t): (void) => {x()} ),\u000a\u000a key: async (arg: t, arg2: t): void => {x()},\u000a key: ( async (arg: t, arg2: t): void => {x()} ),\u000a key: ( async (arg: t, arg2: t): (void) => {x()} ),\u000a} ok 14536 one-var-declaration-per-line valid var a, b, c,\u000ad = 0; ok 14537 one-var-declaration-per-line valid var a, b, c,\u000a\u000ad = 0; ok 14538 one-var-declaration-per-line valid var a, b,\u000ac=0\u000ad = 0; ok 14539 one-var-declaration-per-line valid let a, b; ok 14540 one-var-declaration-per-line valid var a = 0; var b = 0; ok 14541 one-var-declaration-per-line valid var a, b,\u000ac=0\u000ad = 0; ok 14542 one-var-declaration-per-line valid var a,\u000ab,\u000ac,\u000ad = 0; ok 14543 one-var-declaration-per-line valid var a = 0,\u000ab; ok 14544 one-var-declaration-per-line valid var a = 0,\u000a\u000ab; ok 14545 one-var-declaration-per-line valid var a; var b; ok 14546 one-var-declaration-per-line valid for(var a = 0, b = 0;;){} ok 14547 one-var-declaration-per-line valid for(let a = 0, b = 0;;){} ok 14548 one-var-declaration-per-line valid for(const a = 0, b = 0;;){} ok 14549 one-var-declaration-per-line valid for(var a in obj){} ok 14550 one-var-declaration-per-line valid for(let a in obj){} ok 14551 one-var-declaration-per-line valid for(const a in obj){} ok 14552 one-var-declaration-per-line valid for(var a of arr){} ok 14553 one-var-declaration-per-line valid for(let a of arr){} ok 14554 one-var-declaration-per-line valid for(const a of arr){} ok 14555 one-var-declaration-per-line valid export let a, b; ok 14556 one-var-declaration-per-line valid export let a,\u000a b = 0; ok 14557 one-var-declaration-per-line invalid var a, b; ok 14558 one-var-declaration-per-line invalid let a, b; ok 14559 one-var-declaration-per-line invalid var a, b = 0; ok 14560 one-var-declaration-per-line invalid var a = {\u000a foo: bar\u000a}, b; ok 14561 one-var-declaration-per-line invalid var a\u000a=0, b; ok 14562 one-var-declaration-per-line invalid let a, b = 0; ok 14563 one-var-declaration-per-line invalid const a = 0, b = 0; ok 14564 one-var-declaration-per-line invalid var a, b, c = 0; ok 14565 one-var-declaration-per-line invalid var a, b,\u000ac = 0, d; ok 14566 one-var-declaration-per-line invalid var a, b,\u000ac = 0, d = 0; ok 14567 one-var-declaration-per-line invalid var a\u000a=0, b = 0; ok 14568 one-var-declaration-per-line invalid var a = {\u000a foo: bar\u000a}, b; ok 14569 one-var-declaration-per-line invalid for(var a = 0, b = 0;;){\u000avar c,d;} ok 14570 one-var-declaration-per-line invalid export let a, b; ok 14571 one-var-declaration-per-line invalid export let a, b = 0; ok 14572 one-var valid function foo() { var bar = true; } ok 14573 one-var valid function foo() { var bar = true, baz = 1; if (qux) { bar = false; } } ok 14574 one-var valid var foo = function() { var bar = true; baz(); } ok 14575 one-var valid function foo() { var bar = true, baz = false; } ok 14576 one-var valid function foo() { var bar = true; var baz = false; } ok 14577 one-var valid for (var i = 0, len = arr.length; i < len; i++) {} ok 14578 one-var valid var bar = true; var baz = false; ok 14579 one-var valid var bar = true, baz = false; ok 14580 one-var valid var bar, baz; ok 14581 one-var valid var bar; var baz; ok 14582 one-var valid var bar, baz; ok 14583 one-var valid var bar = true, baz = false; ok 14584 one-var valid var bar = true, baz = false, a, b; ok 14585 one-var valid var bar = true; var baz = false; var a; var b; ok 14586 one-var valid var bar, baz; var a = true; var b = false; ok 14587 one-var valid var bar = true, baz = false; var a; var b; ok 14588 one-var valid var bar; var baz; var a = true, b = false; ok 14589 one-var valid function foo() { var a = [1, 2, 3]; var [b, c, d] = a; } ok 14590 one-var valid function foo() { let a = 1; var c = true; if (a) {let c = true; } } ok 14591 one-var valid function foo() { const a = 1; var c = true; if (a) {const c = true; } } ok 14592 one-var valid function foo() { if (true) { const a = 1; }; if (true) {const a = true; } } ok 14593 one-var valid function foo() { let a = 1; let b = true; } ok 14594 one-var valid function foo() { const a = 1; const b = true; } ok 14595 one-var valid function foo() { let a = 1; const b = false; var c = true; } ok 14596 one-var valid function foo() { let a = 1, b = false; var c = true; } ok 14597 one-var valid function foo() { let a = 1; let b = 2; const c = false; const d = true; var e = true, f = false; } ok 14598 one-var valid let foo = true; for (let i = 0; i < 1; i++) { let foo = false; } ok 14599 one-var valid let foo = true; for (let i = 0; i < 1; i++) { let foo = false; } ok 14600 one-var valid let foo = true, bar = false; ok 14601 one-var valid let foo = true, bar = false; ok 14602 one-var valid let foo = true, bar = false; ok 14603 one-var valid let foo, bar ok 14604 one-var valid let foo = true, bar = false; let a; let b; ok 14605 one-var valid let foo, bar; let a = true; let b = true; ok 14606 one-var valid var foo, bar; const a=1; const b=2; let c, d ok 14607 one-var valid var foo; var bar; const a=1, b=2; let c; let d ok 14608 one-var valid for (let x of foo) {}; for (let y of foo) {} ok 14609 one-var valid for (let x in foo) {}; for (let y in foo) {} ok 14610 one-var valid var x; for (var y in foo) {} ok 14611 one-var valid var x, y; for (y in foo) {} ok 14612 one-var valid var x, y; for (var z in foo) {} ok 14613 one-var valid var x; for (var y in foo) {var bar = y; for (var z in bar) {}} ok 14614 one-var valid var a = 1; var b = 2; var x, y; for (var z in foo) {var baz = z; for (var d in baz) {}} ok 14615 one-var valid var x; for (var y of foo) {} ok 14616 one-var valid var x, y; for (y of foo) {} ok 14617 one-var valid var x, y; for (var z of foo) {} ok 14618 one-var valid var x; for (var y of foo) {var bar = y; for (var z of bar) {}} ok 14619 one-var valid var a = 1; var b = 2; var x, y; for (var z of foo) {var baz = z; for (var d of baz) {}} ok 14620 one-var valid var foo = require('foo'), bar; ok 14621 one-var valid var foo = require('foo'), bar = require('bar'); ok 14622 one-var valid var bar = 'bar'; var foo = require('foo'); ok 14623 one-var valid var foo = require('foo'); var bar = 'bar'; ok 14624 one-var valid var foo = require('foo'); var bar = 'bar'; ok 14625 one-var valid var a = 0, b, c; ok 14626 one-var valid var a = 0, b = 1, c = 2; ok 14627 one-var valid var a = 0, b = 1; foo(); var c = 2; ok 14628 one-var valid let a = 0, b, c; ok 14629 one-var valid let a = 0, b = 1, c = 2; ok 14630 one-var valid let a = 0, b = 1; foo(); let c = 2; ok 14631 one-var valid const a = 0, b = 1; foo(); const c = 2; ok 14632 one-var valid const a = 0; var b = 1; ok 14633 one-var valid const a = 0; let b = 1; ok 14634 one-var valid let a = 0; const b = 1; var c = 2; ok 14635 one-var valid const foo = require('foo'); const bar = 'bar'; ok 14636 one-var valid var a = 0, b = 1; var c, d; ok 14637 one-var valid var a = 0; var b, c; var d = 1; ok 14638 one-var valid let a = 0, b = 1; let c, d; ok 14639 one-var valid let a = 0; let b, c; let d = 1; ok 14640 one-var valid const a = 0, b = 1; let c, d; ok 14641 one-var valid const a = 0; let b, c; const d = 1; ok 14642 one-var valid var a = 0, b = 1; var c; var d; ok 14643 one-var valid var a = 0; var b; var c; var d = 1; ok 14644 one-var valid let a = 0, b = 1; let c; let d; ok 14645 one-var valid let a = 0; let b; let c; let d = 1; ok 14646 one-var valid const a = 0, b = 1; let c; let d; ok 14647 one-var valid const a = 0; let b; let c; const d = 1; ok 14648 one-var valid var a, b; var c = 0, d = 1; ok 14649 one-var valid var a; var b = 0, c = 1; var d; ok 14650 one-var valid let a, b; let c = 0, d = 1; ok 14651 one-var valid let a; let b = 0, c = 1; let d; ok 14652 one-var valid let a, b; const c = 0, d = 1; ok 14653 one-var valid let a; const b = 0, c = 1; let d; ok 14654 one-var valid var a, b; var c = 0; var d = 1; ok 14655 one-var valid var a; var b = 0; var c = 1; var d; ok 14656 one-var valid let a, b; let c = 0; let d = 1; ok 14657 one-var valid let a; let b = 0; let c = 1; let d; ok 14658 one-var valid let a, b; const c = 0; const d = 1; ok 14659 one-var valid let a; const b = 0; const c = 1; let d; ok 14660 one-var valid var a = 0, b = 1; ok 14661 one-var valid var a = 0; foo; var b = 1; ok 14662 one-var valid let a = 0, b = 1; ok 14663 one-var valid let a = 0; foo; let b = 1; ok 14664 one-var valid const a = 0, b = 1; ok 14665 one-var valid const a = 0; foo; const b = 1; ok 14666 one-var valid let a, b; const c = 0, d = 1; ok 14667 one-var valid let a; const b = 0, c = 1; let d; ok 14668 one-var valid let a, b; const c = 0; const d = 1; ok 14669 one-var valid let a; const b = 0; const c = 1; let d; ok 14670 one-var valid const a = 0, b = 1; let c, d; ok 14671 one-var valid const a = 0; let b, c; const d = 1; ok 14672 one-var valid const a = 0, b = 1; let c; let d; ok 14673 one-var valid const a = 0; let b; let c; const d = 1; ok 14674 one-var valid var a = 1, b = 2; foo(); var c = 3, d = 4; ok 14675 one-var valid var bar, baz; ok 14676 one-var valid var bar = 1, baz = 2; qux(); var qux = 3, quux; ok 14677 one-var valid let a, b; var c; var d; let e; ok 14678 one-var valid const a = 1, b = 2; var d; var e; const f = 3; ok 14679 one-var valid var a, b; const c = 1; const d = 2; let e; let f; ok 14680 one-var valid var a = 1, b = 2; var c; var d; var e = 3, f = 4; ok 14681 one-var valid var a; somethingElse(); var b; ok 14682 one-var valid var foo = 1;\u000alet bar = function() { var x; };\u000avar baz = 2; ok 14683 one-var invalid function foo() { var bar = true, baz = false; } ok 14684 one-var invalid function foo() { var bar = true; var baz = false; } ok 14685 one-var invalid var a = 1; for (var b = 2;;) {} ok 14686 one-var invalid function foo() { var foo = true, bar = false; } ok 14687 one-var invalid function foo() { var foo, bar; } ok 14688 one-var invalid function foo() { var bar, baz; var a = true; var b = false; var c, d;} ok 14689 one-var invalid function foo() { var bar = true, baz = false; var a; var b; var c = true, d = false; } ok 14690 one-var invalid function foo() { var bar = true, baz = false; var a, b;} ok 14691 one-var invalid function foo() { var bar = true; var baz = false; var a; var b;} ok 14692 one-var invalid function foo() { var a = [1, 2, 3]; var [b, c, d] = a; } ok 14693 one-var invalid function foo() { let a = 1; let b = 2; } ok 14694 one-var invalid function foo() { const a = 1; const b = 2; } ok 14695 one-var invalid function foo() { let a = 1; let b = 2; } ok 14696 one-var invalid function foo() { const a = 1; const b = 2; } ok 14697 one-var invalid function foo() { let a = 1, b = 2; } ok 14698 one-var invalid function foo() { let a = 1, b = 2; } ok 14699 one-var invalid function foo() { let a, b; } ok 14700 one-var invalid function foo() { const a = 1, b = 2; } ok 14701 one-var invalid function foo() { const a = 1, b = 2; } ok 14702 one-var invalid let foo = true; switch(foo) { case true: let bar = 2; break; case false: let baz = 3; break; } ok 14703 one-var invalid var one = 1, two = 2;\u000avar three; ok 14704 one-var invalid var i = [0], j; ok 14705 one-var invalid var i = [0], j; ok 14706 one-var invalid for (var x of foo) {}; for (var y of foo) {} ok 14707 one-var invalid for (var x in foo) {}; for (var y in foo) {} ok 14708 one-var invalid var foo = function() { var bar = true; var baz = false; } ok 14709 one-var invalid function foo() { var bar = true; if (qux) { var baz = false; } else { var quxx = 42; } } ok 14710 one-var invalid var foo = () => { var bar = true; var baz = false; } ok 14711 one-var invalid var foo = function() { var bar = true; if (qux) { var baz = false; } } ok 14712 one-var invalid var foo; var bar; ok 14713 one-var invalid var x = 1, y = 2; for (var z in foo) {} ok 14714 one-var invalid var x = 1, y = 2; for (var z of foo) {} ok 14715 one-var invalid var x; var y; for (var z in foo) {} ok 14716 one-var invalid var x; var y; for (var z of foo) {} ok 14717 one-var invalid var x; for (var y in foo) {var bar = y; var a; for (var z of bar) {}} ok 14718 one-var invalid var a = 1; var b = 2; var x, y; for (var z of foo) {var c = 3, baz = z; for (var d in baz) {}} ok 14719 one-var invalid var {foo} = 1, [bar] = 2; ok 14720 one-var invalid const foo = 1,\u000a bar = 2; ok 14721 one-var invalid var foo = 1,\u000a bar = 2; ok 14722 one-var invalid var foo = 1, // comment\u000a bar = 2; ok 14723 one-var invalid var f, k /* test */, l; ok 14724 one-var invalid var f, /* test */ l; ok 14725 one-var invalid var f, k /* test \u000a some more comment \u000a even more */, l = 1, P; ok 14726 one-var invalid var a = 1, b = 2 ok 14727 one-var invalid var foo = require('foo'), bar; ok 14728 one-var invalid var foo, bar = require('bar'); ok 14729 one-var invalid let foo, bar = require('bar'); ok 14730 one-var invalid const foo = 0, bar = require('bar'); ok 14731 one-var invalid const foo = require('foo'); const bar = require('bar'); ok 14732 one-var invalid var a = 1, b; var c; ok 14733 one-var invalid var a = 0, b = 1; var c = 2; ok 14734 one-var invalid let a = 1, b; let c; ok 14735 one-var invalid let a = 0, b = 1; let c = 2; ok 14736 one-var invalid const a = 0, b = 1; const c = 2; ok 14737 one-var invalid const a = 0; var b = 1; var c = 2; const d = 3; ok 14738 one-var invalid var a = true; var b = false; ok 14739 one-var invalid const a = 0; let b = 1; let c = 2; const d = 3; ok 14740 one-var invalid let a = 0; const b = 1; const c = 1; var d = 2; ok 14741 one-var invalid var a = 0; var b; var c; var d = 1 ok 14742 one-var invalid var a = 0; var b = 1; var c; var d; ok 14743 one-var invalid let a = 0; let b; let c; let d = 1; ok 14744 one-var invalid let a = 0; let b = 1; let c; let d; ok 14745 one-var invalid const a = 0; let b; let c; const d = 1; ok 14746 one-var invalid const a = 0; const b = 1; let c; let d; ok 14747 one-var invalid var a = 0; var b = 1; var c, d; ok 14748 one-var invalid var a = 0; var b, c; var d = 1; ok 14749 one-var invalid let a = 0; let b = 1; let c, d; ok 14750 one-var invalid let a = 0; let b, c; let d = 1; ok 14751 one-var invalid const a = 0; const b = 1; let c, d; ok 14752 one-var invalid const a = 0; let b, c; const d = 1; ok 14753 one-var invalid var a; var b; var c = 0; var d = 1; ok 14754 one-var invalid var a; var b = 0; var c = 1; var d; ok 14755 one-var invalid let a; let b; let c = 0; let d = 1; ok 14756 one-var invalid let a; let b = 0; let c = 1; let d; ok 14757 one-var invalid let a; let b; const c = 0; const d = 1; ok 14758 one-var invalid let a; const b = 0; const c = 1; let d; ok 14759 one-var invalid var a; var b; var c = 0, d = 1; ok 14760 one-var invalid var a; var b = 0, c = 1; var d; ok 14761 one-var invalid let a; let b; let c = 0, d = 1; ok 14762 one-var invalid let a; let b = 0, c = 1; let d; ok 14763 one-var invalid let a; let b; const c = 0, d = 1; ok 14764 one-var invalid let a; const b = 0, c = 1; let d; ok 14765 one-var invalid var a = 0; var b = 1; ok 14766 one-var invalid let a = 0; let b = 1; ok 14767 one-var invalid const a = 0; const b = 1; ok 14768 one-var invalid let a; let b; const c = 0; const d = 1; ok 14769 one-var invalid let a; const b = 0; const c = 1; let d; ok 14770 one-var invalid let a; let b; const c = 0, d = 1; ok 14771 one-var invalid let a; const b = 0, c = 1; let d; ok 14772 one-var invalid const a = 0; const b = 1; let c; let d; ok 14773 one-var invalid const a = 0; let b; let c; const d = 1; ok 14774 one-var invalid const a = 0; const b = 1; let c, d; ok 14775 one-var invalid const a = 0; let b, c; const d = 1; ok 14776 one-var invalid var bar; var baz; ok 14777 one-var invalid var bar = 1; var baz = 2; qux(); var qux = 3; var quux; ok 14778 one-var invalid let a, b; let c; var d, e; ok 14779 one-var invalid var a; var b; ok 14780 one-var invalid var a = 1; var b = 2; var c, d; var e = 3; var f = 4; ok 14781 one-var invalid var a = 1; var b = 2; foo(); var c = 3; var d = 4; ok 14782 one-var invalid var a\u000avar b ok 14783 operator-assignment valid x = y ok 14784 operator-assignment valid x = y + x ok 14785 operator-assignment valid x += x + y ok 14786 operator-assignment valid x = (x + y) - z ok 14787 operator-assignment valid x -= y ok 14788 operator-assignment valid x = y - x ok 14789 operator-assignment valid x *= x ok 14790 operator-assignment valid x = y * z ok 14791 operator-assignment valid x = (x * y) * z ok 14792 operator-assignment valid x = y / x ok 14793 operator-assignment valid x /= y ok 14794 operator-assignment valid x %= y ok 14795 operator-assignment valid x <<= y ok 14796 operator-assignment valid x >>= x >> y ok 14797 operator-assignment valid x >>>= y ok 14798 operator-assignment valid x &= y ok 14799 operator-assignment valid x **= y ok 14800 operator-assignment valid x ^= y ^ z ok 14801 operator-assignment valid x |= x | y ok 14802 operator-assignment valid x = x && y ok 14803 operator-assignment valid x = x || y ok 14804 operator-assignment valid x = x < y ok 14805 operator-assignment valid x = x > y ok 14806 operator-assignment valid x = x <= y ok 14807 operator-assignment valid x = x >= y ok 14808 operator-assignment valid x = x instanceof y ok 14809 operator-assignment valid x = x in y ok 14810 operator-assignment valid x = x == y ok 14811 operator-assignment valid x = x != y ok 14812 operator-assignment valid x = x === y ok 14813 operator-assignment valid x = x !== y ok 14814 operator-assignment valid x[y] = x['y'] + z ok 14815 operator-assignment valid x.y = x['y'] / z ok 14816 operator-assignment valid x.y = z + x.y ok 14817 operator-assignment valid x[fn()] = x[fn()] + y ok 14818 operator-assignment valid x += x + y ok 14819 operator-assignment valid x = x + y ok 14820 operator-assignment valid x = x ** y ok 14821 operator-assignment valid x = y ** x ok 14822 operator-assignment valid x = x * y + z ok 14823 operator-assignment invalid x = x + y ok 14824 operator-assignment invalid x = x - y ok 14825 operator-assignment invalid x = x * y ok 14826 operator-assignment invalid x = y * x ok 14827 operator-assignment invalid x = (y * z) * x ok 14828 operator-assignment invalid x = x / y ok 14829 operator-assignment invalid x = x % y ok 14830 operator-assignment invalid x = x << y ok 14831 operator-assignment invalid x = x >> y ok 14832 operator-assignment invalid x = x >>> y ok 14833 operator-assignment invalid x = x & y ok 14834 operator-assignment invalid x = x ^ y ok 14835 operator-assignment invalid x = x | y ok 14836 operator-assignment invalid x[0] = x[0] - y ok 14837 operator-assignment invalid x.y[z['a']][0].b = x.y[z['a']][0].b * 2 ok 14838 operator-assignment invalid x = x + y ok 14839 operator-assignment invalid x = (x + y) ok 14840 operator-assignment invalid x = x + (y) ok 14841 operator-assignment invalid x += (y) ok 14842 operator-assignment invalid x += y ok 14843 operator-assignment invalid foo.bar = foo.bar + baz ok 14844 operator-assignment invalid foo.bar += baz ok 14845 operator-assignment invalid foo.bar.baz = foo.bar.baz + qux ok 14846 operator-assignment invalid foo.bar.baz += qux ok 14847 operator-assignment invalid foo[bar] = foo[bar] + baz ok 14848 operator-assignment invalid foo[bar] >>>= baz ok 14849 operator-assignment invalid foo[5] = foo[5] / baz ok 14850 operator-assignment invalid (foo.bar) ^= ((((((((((((((((baz)))))))))))))))) ok 14851 operator-assignment invalid foo = foo ** bar ok 14852 operator-assignment invalid foo **= bar ok 14853 operator-assignment invalid foo *= bar + 1 ok 14854 operator-assignment invalid foo -= bar - baz ok 14855 operator-assignment invalid foo += bar + baz ok 14856 operator-assignment invalid foo += bar = 1 ok 14857 operator-assignment invalid foo *= (bar + 1) ok 14858 operator-linebreak valid 1 + 1 ok 14859 operator-linebreak valid 1 + 1 + 1 ok 14860 operator-linebreak valid 1 +\u000a1 ok 14861 operator-linebreak valid 1 + (1 +\u000a1) ok 14862 operator-linebreak valid f(1 +\u000a1) ok 14863 operator-linebreak valid 1 || 1 ok 14864 operator-linebreak valid 1 || \u000a1 ok 14865 operator-linebreak valid a += 1 ok 14866 operator-linebreak valid var a; ok 14867 operator-linebreak valid var o = \u000asomething ok 14868 operator-linebreak valid o = \u000asomething ok 14869 operator-linebreak valid 'a\\u000a' +\u000a 'c' ok 14870 operator-linebreak valid 'a' +\u000a 'b\\u000a' ok 14871 operator-linebreak valid (a\u000a) + b ok 14872 operator-linebreak valid answer = everything \u000a? 42 \u000a: foo; ok 14873 operator-linebreak valid answer = everything ?\u000a 42 :\u000a foo; ok 14874 operator-linebreak valid a ? 1 + 1\u000a:2 ok 14875 operator-linebreak valid a ?\u000a1 +\u000a 1\u000a:2 ok 14876 operator-linebreak valid o = 1 \u000a+ 1 - foo ok 14877 operator-linebreak valid 1\u000a+ 1 ok 14878 operator-linebreak valid 1 + 1\u000a+ 1 ok 14879 operator-linebreak valid f(1\u000a+ 1) ok 14880 operator-linebreak valid 1 \u000a|| 1 ok 14881 operator-linebreak valid a += 1 ok 14882 operator-linebreak valid answer = everything \u000a? 42 \u000a: foo; ok 14883 operator-linebreak valid 1 + 1 ok 14884 operator-linebreak valid 1 + 1 + 1 ok 14885 operator-linebreak valid 1 || 1 ok 14886 operator-linebreak valid a += 1 ok 14887 operator-linebreak valid var a; ok 14888 operator-linebreak valid \u000a1 + 1 ok 14889 operator-linebreak valid 1 + 1\u000a ok 14890 operator-linebreak valid answer = everything ? 42 : foo; ok 14891 operator-linebreak valid answer = everything \u000a?\u000a 42 : foo; ok 14892 operator-linebreak valid answer = everything ? 42 \u000a:\u000a foo; ok 14893 operator-linebreak invalid 1\u000a+ 1 ok 14894 operator-linebreak invalid 1 + 2 \u000a + 3 ok 14895 operator-linebreak invalid 1\u000a+\u000a1 ok 14896 operator-linebreak invalid 1 + (1\u000a+ 1) ok 14897 operator-linebreak invalid f(1\u000a+ 1); ok 14898 operator-linebreak invalid 1 \u000a || 1 ok 14899 operator-linebreak invalid a\u000a += 1 ok 14900 operator-linebreak invalid var a\u000a = 1 ok 14901 operator-linebreak invalid (b)\u000a*\u000a(c) ok 14902 operator-linebreak invalid answer = everything ?\u000a 42 :\u000a foo; ok 14903 operator-linebreak invalid answer = everything \u000a? 42 \u000a: foo; ok 14904 operator-linebreak invalid 1 +\u000a1 ok 14905 operator-linebreak invalid f(1 +\u000a1); ok 14906 operator-linebreak invalid 1 || \u000a 1 ok 14907 operator-linebreak invalid a += \u000a1 ok 14908 operator-linebreak invalid var a = \u000a1 ok 14909 operator-linebreak invalid answer = everything ?\u000a 42 :\u000a foo; ok 14910 operator-linebreak invalid 1 +\u000a1 ok 14911 operator-linebreak invalid 1\u000a+1 ok 14912 operator-linebreak invalid f(1 +\u000a1); ok 14913 operator-linebreak invalid f(1\u000a+ 1); ok 14914 operator-linebreak invalid 1 || \u000a 1 ok 14915 operator-linebreak invalid 1 \u000a || 1 ok 14916 operator-linebreak invalid a += \u000a1 ok 14917 operator-linebreak invalid a \u000a+= 1 ok 14918 operator-linebreak invalid var a = \u000a1 ok 14919 operator-linebreak invalid var a \u000a = 1 ok 14920 operator-linebreak invalid answer = everything ?\u000a 42 \u000a: foo; ok 14921 operator-linebreak invalid answer = everything\u000a?\u000a42 + 43\u000a:\u000afoo; ok 14922 operator-linebreak invalid foo +=\u000a42;\u000abar -=\u000a12\u000a+ 5; ok 14923 operator-linebreak invalid answer = everything\u000a?\u000a42\u000a:\u000afoo; ok 14924 operator-linebreak invalid foo+\u000a+bar ok 14925 operator-linebreak invalid foo //comment\u000a&& bar ok 14926 operator-linebreak invalid foo//comment\u000a+\u000abar ok 14927 operator-linebreak invalid foo\u000a+//comment\u000abar ok 14928 operator-linebreak invalid foo /* a */ \u000a+ /* b */ bar ok 14929 operator-linebreak invalid foo /* a */ +\u000a /* b */ bar ok 14930 padded-blocks valid {\u000a\u000aa();\u000a\u000a} ok 14931 padded-blocks valid {\u000a\u000a\u000aa();\u000a\u000a\u000a} ok 14932 padded-blocks valid {\u000a\u000a//comment\u000aa();\u000a\u000a} ok 14933 padded-blocks valid {\u000a\u000aa();\u000a//comment\u000a\u000a} ok 14934 padded-blocks valid {\u000a\u000aa()\u000a//comment\u000a\u000a} ok 14935 padded-blocks valid {\u000a\u000aa = 1\u000a\u000a} ok 14936 padded-blocks valid {//comment\u000a\u000aa();\u000a\u000a} ok 14937 padded-blocks valid { /* comment */\u000a\u000aa();\u000a\u000a} ok 14938 padded-blocks valid { /* comment \u000a */\u000a\u000aa();\u000a\u000a} ok 14939 padded-blocks valid { /* comment \u000a */ /* another comment \u000a */\u000a\u000aa();\u000a\u000a} ok 14940 padded-blocks valid { /* comment \u000a */ /* another comment \u000a */\u000a\u000aa();\u000a\u000a/* comment \u000a */ /* another comment \u000a */} ok 14941 padded-blocks valid {\u000a\u000aa();\u000a\u000a/* comment */ } ok 14942 padded-blocks valid {\u000a\u000aa();\u000a\u000a/* comment */ } ok 14943 padded-blocks valid {\u000a\u000aa();\u000a\u000a/* comment */ } ok 14944 padded-blocks valid switch (a) {} ok 14945 padded-blocks valid switch (a) {\u000a\u000acase 0: foo();\u000acase 1: bar();\u000a\u000a} ok 14946 padded-blocks valid switch (a) {\u000a\u000acase 0: foo();\u000acase 1: bar();\u000a\u000a} ok 14947 padded-blocks valid switch (a) {\u000a\u000a//comment\u000acase 0: foo();//comment\u000a\u000a} ok 14948 padded-blocks valid switch (a) {//coment\u000a\u000acase 0: foo();\u000acase 1: bar();\u000a\u000a/* comment */} ok 14949 padded-blocks valid class A{\u000a\u000afoo(){}\u000a\u000a} ok 14950 padded-blocks valid class A{\u000a\u000afoo(){}\u000a\u000a} ok 14951 padded-blocks valid class A{} ok 14952 padded-blocks valid class A{\u000a\u000a} ok 14953 padded-blocks valid class A{\u000a\u000afoo(){}\u000a\u000a} ok 14954 padded-blocks valid {\u000aa();\u000a} ok 14955 padded-blocks valid {\u000aa();} ok 14956 padded-blocks valid {a();\u000a} ok 14957 padded-blocks valid {a();} ok 14958 padded-blocks valid {a();} ok 14959 padded-blocks valid {\u000a\u000aa();\u000a\u000a} ok 14960 padded-blocks valid {//comment\u000aa();} ok 14961 padded-blocks valid {\u000a//comment\u000aa()\u000a} ok 14962 padded-blocks valid {a();//comment\u000a} ok 14963 padded-blocks valid {\u000aa();\u000a//comment\u000a} ok 14964 padded-blocks valid {\u000aa()\u000a//comment\u000a} ok 14965 padded-blocks valid {\u000aa()\u000a//comment\u000ab()\u000a} ok 14966 padded-blocks valid function a() {\u000a/* comment */\u000areturn;\u000a/* comment*/\u000a} ok 14967 padded-blocks valid {\u000a// comment\u000adebugger;\u000a// comment\u000a} ok 14968 padded-blocks valid {\u000a\u000a// comment\u000aif (\u000a// comment\u000a a) {}\u000a\u000a } ok 14969 padded-blocks valid {\u000a// comment\u000aif (\u000a// comment\u000a a) {}\u000a } ok 14970 padded-blocks valid {\u000a// comment\u000aif (\u000a// comment\u000a a) {}\u000a } ok 14971 padded-blocks valid switch (a) {\u000acase 0: foo();\u000a} ok 14972 padded-blocks valid switch (a) {\u000acase 0: foo();\u000a} ok 14973 padded-blocks valid class A{\u000afoo(){}\u000a} ok 14974 padded-blocks valid class A{\u000afoo(){}\u000a} ok 14975 padded-blocks valid {\u000aa();\u000a} ok 14976 padded-blocks valid {\u000a\u000aa();\u000a\u000a} ok 14977 padded-blocks valid switch (a) {\u000acase 0: foo();\u000acase 1: bar();\u000a} ok 14978 padded-blocks valid switch (a) {\u000a\u000acase 0: foo();\u000acase 1: bar();\u000a\u000a} ok 14979 padded-blocks valid class A{\u000afoo(){}\u000a} ok 14980 padded-blocks valid class A{\u000a\u000afoo(){}\u000a\u000a} ok 14981 padded-blocks invalid {\u000a//comment\u000aa();\u000a\u000a} ok 14982 padded-blocks invalid { //comment\u000aa();\u000a\u000a} ok 14983 padded-blocks invalid {\u000a\u000aa();\u000a//comment\u000a} ok 14984 padded-blocks invalid {\u000a\u000aa()\u000a//comment\u000a} ok 14985 padded-blocks invalid {\u000aa();\u000a\u000a} ok 14986 padded-blocks invalid {\u000a\u000aa();\u000a} ok 14987 padded-blocks invalid {\u000aa();\u000a} ok 14988 padded-blocks invalid {\u000d\u000aa();\u000d\u000a} ok 14989 padded-blocks invalid {\u000aa();} ok 14990 padded-blocks invalid {a();\u000a} ok 14991 padded-blocks invalid {a();\u000a} ok 14992 padded-blocks invalid switch (a) {\u000acase 0: foo();\u000acase 1: bar();\u000a} ok 14993 padded-blocks invalid switch (a) {\u000acase 0: foo();\u000acase 1: bar();\u000a} ok 14994 padded-blocks invalid switch (a) {\u000a//comment\u000acase 0: foo();//comment\u000a} ok 14995 padded-blocks invalid class A {\u000aconstructor(){}\u000a} ok 14996 padded-blocks invalid class A {\u000aconstructor(){}\u000a} ok 14997 padded-blocks invalid {a();} ok 14998 padded-blocks invalid {\u000aa()\u000a//comment\u000a\u000a} ok 14999 padded-blocks invalid {\u000a\u000aa();\u000a\u000a} ok 15000 padded-blocks invalid {\u000d\u000a\u000d\u000aa();\u000d\u000a\u000d\u000a} ok 15001 padded-blocks invalid {\u000a\u000a\u000a a();\u000a\u000a\u000a} ok 15002 padded-blocks invalid {\u000a\u000aa();\u000a} ok 15003 padded-blocks invalid {\u000a\u000a\u0009a();\u000a} ok 15004 padded-blocks invalid {\u000aa();\u000a\u000a} ok 15005 padded-blocks invalid {\u000a a();\u000a\u000a } ok 15006 padded-blocks invalid {\u000a// comment\u000aif (\u000a// comment\u000a a) {}\u000a\u000a} ok 15007 padded-blocks invalid {\u000a\u000a// comment\u000aif (\u000a// comment\u000a a) {}\u000a} ok 15008 padded-blocks invalid {\u000a\u000a// comment\u000aif (\u000a// comment\u000a a) {}\u000a} ok 15009 padded-blocks invalid switch (a) {\u000a\u000acase 0: foo();\u000a\u000a} ok 15010 padded-blocks invalid switch (a) {\u000a\u000acase 0: foo();\u000a} ok 15011 padded-blocks invalid switch (a) {\u000acase 0: foo();\u000a\u000a } ok 15012 padded-blocks invalid class A {\u000a\u000aconstructor(){\u000a\u000afoo();\u000a\u000a}\u000a\u000a} ok 15013 padded-blocks invalid class A {\u000a\u000aconstructor(){\u000a\u000afoo();\u000a\u000a}\u000a\u000a} ok 15014 padded-blocks invalid class A {\u000a\u000aconstructor(){\u000a\u000afoo();\u000a\u000a}\u000a\u000a} ok 15015 padded-blocks invalid function foo() { // a\u000a\u000a b;\u000a} ok 15016 padded-blocks invalid function foo() { /* a\u000a */\u000a\u000a bar;\u000a} ok 15017 padded-blocks invalid function foo() {\u000a\u000a bar;\u000a/* a\u000a */} ok 15018 padded-blocks invalid function foo() { /* a\u000a */\u000a/* b\u000a */\u000a bar;\u000a} ok 15019 padded-blocks invalid function foo() { /* a\u000a */ /* b\u000a */\u000a bar;\u000a} ok 15020 padded-blocks invalid function foo() { /* a\u000a */ /* b\u000a */\u000a bar;\u000a/* c\u000a *//* d\u000a */} ok 15021 padding-line-between-statements valid 'use strict'; foo(); if (a) { bar(); } ok 15022 padding-line-between-statements valid foo() ok 15023 padding-line-between-statements valid foo() ok 15024 padding-line-between-statements valid foo();bar(); ok 15025 padding-line-between-statements valid foo();\u000abar(); ok 15026 padding-line-between-statements valid foo();\u000a//comment\u000abar(); ok 15027 padding-line-between-statements valid foo();\u000a/*comment*/\u000abar(); ok 15028 padding-line-between-statements valid foo();\u000a\u000abar(); ok 15029 padding-line-between-statements valid foo();\u000a\u000a//comment\u000abar(); ok 15030 padding-line-between-statements valid foo();\u000a//comment\u000a\u000abar(); ok 15031 padding-line-between-statements valid foo();\u000a//comment\u000a\u000a//comment\u000abar(); ok 15032 padding-line-between-statements valid if(a){}\u000a\u000a;[].map(b) ok 15033 padding-line-between-statements valid foo();\u000a\u000a{ foo() }\u000a\u000afoo(); ok 15034 padding-line-between-statements valid { foo() } { foo() } ok 15035 padding-line-between-statements valid { foo() }\u000a{ foo() } ok 15036 padding-line-between-statements valid { foo() }\u000a\u000a{ foo() } ok 15037 padding-line-between-statements valid { foo() }\u000a\u000a//comment\u000a{ foo() } ok 15038 padding-line-between-statements valid if(a);\u000afoo() ok 15039 padding-line-between-statements valid do;while(a);\u000afoo() ok 15040 padding-line-between-statements valid do{}while(a);\u000a\u000afoo() ok 15041 padding-line-between-statements valid a={}\u000afoo() ok 15042 padding-line-between-statements valid let a={}\u000afoo() ok 15043 padding-line-between-statements valid foo(function(){})\u000afoo() ok 15044 padding-line-between-statements valid (function(){})()\u000a\u000afoo() ok 15045 padding-line-between-statements valid !function(){}()\u000a\u000afoo() ok 15046 padding-line-between-statements valid module.exports=1 ok 15047 padding-line-between-statements valid module.exports=1\u000a\u000afoo() ok 15048 padding-line-between-statements valid module.exports.foo=1\u000a\u000afoo() ok 15049 padding-line-between-statements valid exports.foo=1\u000a\u000afoo() ok 15050 padding-line-between-statements valid m.exports=1\u000afoo() ok 15051 padding-line-between-statements valid module.foo=1\u000afoo() ok 15052 padding-line-between-statements valid foo=require("foo")\u000afoo() ok 15053 padding-line-between-statements valid const foo=a.require("foo")\u000afoo() ok 15054 padding-line-between-statements valid "use strict"\u000a\u000afoo() ok 15055 padding-line-between-statements valid function foo(){"use strict"\u000a\u000afoo()} ok 15056 padding-line-between-statements valid (function foo(){"use strict"\u000a\u000afoo()}) ok 15057 padding-line-between-statements valid (()=>{"use strict"\u000a\u000afoo()}) ok 15058 padding-line-between-statements valid 'use strict'\u000a\u000afoo() ok 15059 padding-line-between-statements valid foo("use strict")\u000afoo() ok 15060 padding-line-between-statements valid `use strict`\u000afoo() ok 15061 padding-line-between-statements valid ("use strict")\u000afoo() ok 15062 padding-line-between-statements valid 'use '+'strict'\u000afoo() ok 15063 padding-line-between-statements valid foo()\u000a"use strict"\u000afoo() ok 15064 padding-line-between-statements valid {"use strict"\u000afoo()} ok 15065 padding-line-between-statements valid {}\u000afoo() ok 15066 padding-line-between-statements valid if(a){}\u000afoo() ok 15067 padding-line-between-statements valid while(a){}\u000afoo() ok 15068 padding-line-between-statements valid {\u000a}\u000a\u000afoo() ok 15069 padding-line-between-statements valid if(a){\u000a}\u000a\u000afoo() ok 15070 padding-line-between-statements valid while(a){\u000a}\u000a\u000afoo() ok 15071 padding-line-between-statements valid do{\u000a}while(a)\u000a\u000afoo() ok 15072 padding-line-between-statements valid for(;;){\u000a}\u000a\u000afoo() ok 15073 padding-line-between-statements valid for(a in b){\u000a}\u000a\u000afoo() ok 15074 padding-line-between-statements valid for(a of b){\u000a}\u000a\u000afoo() ok 15075 padding-line-between-statements valid switch(a){\u000a}\u000a\u000afoo() ok 15076 padding-line-between-statements valid function foo(a){\u000a}\u000a\u000afoo() ok 15077 padding-line-between-statements valid var a=function foo(a){\u000a}\u000a\u000afoo() ok 15078 padding-line-between-statements valid {}\u000a\u000afoo() ok 15079 padding-line-between-statements valid {\u000a}\u000a\u000afoo() ok 15080 padding-line-between-statements valid {\u000afoo()\u000a}\u000a\u000afoo() ok 15081 padding-line-between-statements valid if(a){}\u000afoo() ok 15082 padding-line-between-statements valid a={}\u000afoo() ok 15083 padding-line-between-statements valid ;\u000a\u000afoo() ok 15084 padding-line-between-statements valid 1;\u000afoo() ok 15085 padding-line-between-statements valid foo()\u000a\u000afoo() ok 15086 padding-line-between-statements valid a=b+c\u000a\u000afoo() ok 15087 padding-line-between-statements valid var a=1\u000afoo() ok 15088 padding-line-between-statements valid 'use strict'\u000afoo() ok 15089 padding-line-between-statements valid foo()\u000a\u000afoo(\u000a\u0009x,\u000a\u0009y\u000a) ok 15090 padding-line-between-statements valid foo()\u000afoo() ok 15091 padding-line-between-statements valid () => {\u000a\u0009someArray.forEach(x => doSomething(x));\u000a\u0009return theThing;\u000a} ok 15092 padding-line-between-statements valid () => {\u000a\u0009someArray.forEach(\u000a\u0009\u0009x => doSomething(x)\u000a\u0009);\u000a\u000a\u0009return theThing;\u000a} ok 15093 padding-line-between-statements valid A:{break A\u000a\u000afoo()} ok 15094 padding-line-between-statements valid while(a){break\u000a\u000afoo()} ok 15095 padding-line-between-statements valid switch(a){case 0:break\u000a\u000afoo()} ok 15096 padding-line-between-statements valid switch(a){case 0:break\u000acase 1:break} ok 15097 padding-line-between-statements valid switch(a){case 0:\u000afoo()\u000a\u000acase 1:\u000afoo()} ok 15098 padding-line-between-statements valid switch(a){case 0:\u000afoo()\u000a\u000adefault:\u000afoo()} ok 15099 padding-line-between-statements valid class A{}\u000a\u000afoo() ok 15100 padding-line-between-statements valid var A = class{}\u000afoo() ok 15101 padding-line-between-statements valid const a=1\u000a\u000afoo() ok 15102 padding-line-between-statements valid let a=1\u000afoo() ok 15103 padding-line-between-statements valid while(a){continue\u000a\u000afoo()} ok 15104 padding-line-between-statements valid while(a){break\u000afoo()} ok 15105 padding-line-between-statements valid debugger\u000a\u000afoo() ok 15106 padding-line-between-statements valid switch(a){default:\u000afoo()\u000a\u000acase 0:\u000afoo()\u000acase 1:} ok 15107 padding-line-between-statements valid do;while(a)\u000a\u000afoo() ok 15108 padding-line-between-statements valid while(a);\u000afoo() ok 15109 padding-line-between-statements valid export default 1\u000a\u000afoo() ok 15110 padding-line-between-statements valid export let a=1\u000a\u000afoo() ok 15111 padding-line-between-statements valid var a = 0; export {a}\u000a\u000afoo() ok 15112 padding-line-between-statements valid exports.foo=1\u000afoo() ok 15113 padding-line-between-statements valid module.exports={}\u000afoo() ok 15114 padding-line-between-statements valid for(;;);\u000a\u000afoo() ok 15115 padding-line-between-statements valid for(a in b);\u000a\u000afoo() ok 15116 padding-line-between-statements valid for(a of b);\u000a\u000afoo() ok 15117 padding-line-between-statements valid while(a);\u000afoo() ok 15118 padding-line-between-statements valid function foo(){}\u000a\u000afoo() ok 15119 padding-line-between-statements valid var foo=function(){}\u000afoo() ok 15120 padding-line-between-statements valid async function foo(){}\u000a\u000afoo() ok 15121 padding-line-between-statements valid if(a);\u000a\u000afoo() ok 15122 padding-line-between-statements valid if(a);else;\u000a\u000afoo() ok 15123 padding-line-between-statements valid if(a);else if(b);else;\u000a\u000afoo() ok 15124 padding-line-between-statements valid for(;;);\u000afoo() ok 15125 padding-line-between-statements valid (function(){\u000a})()\u000a\u000avar a = 2; ok 15126 padding-line-between-statements valid +(function(){\u000a})()\u000a\u000avar a = 2; ok 15127 padding-line-between-statements valid (function(){\u000a})()\u000avar a = 2; ok 15128 padding-line-between-statements valid +(function(){\u000a})()\u000avar a = 2; ok 15129 padding-line-between-statements valid import 'a'\u000a\u000afoo() ok 15130 padding-line-between-statements valid import a from 'a'\u000a\u000afoo() ok 15131 padding-line-between-statements valid import * as a from 'a'\u000a\u000afoo() ok 15132 padding-line-between-statements valid import {a} from 'a'\u000a\u000afoo() ok 15133 padding-line-between-statements valid const a=require('a')\u000afoo() ok 15134 padding-line-between-statements valid let a=1\u000a\u000afoo() ok 15135 padding-line-between-statements valid var a=1\u000afoo() ok 15136 padding-line-between-statements valid function foo(){return\u000a\u000afoo()} ok 15137 padding-line-between-statements valid throw a\u000afoo() ok 15138 padding-line-between-statements valid switch(a){}\u000a\u000afoo() ok 15139 padding-line-between-statements valid if(a){}\u000afoo() ok 15140 padding-line-between-statements valid throw a\u000a\u000afoo() ok 15141 padding-line-between-statements valid try{}catch(e){}\u000a\u000afoo() ok 15142 padding-line-between-statements valid try{}finally{}\u000a\u000afoo() ok 15143 padding-line-between-statements valid try{}catch(e){}finally{}\u000a\u000afoo() ok 15144 padding-line-between-statements valid var a=1\u000a\u000afoo() ok 15145 padding-line-between-statements valid const a=1\u000afoo() ok 15146 padding-line-between-statements valid while(a);\u000a\u000afoo() ok 15147 padding-line-between-statements valid do;while(a)\u000afoo() ok 15148 padding-line-between-statements valid with(a);\u000a\u000afoo() ok 15149 padding-line-between-statements valid const a={\u000ab:1,\u000ac:2\u000a}\u000a\u000aconst d=3 ok 15150 padding-line-between-statements valid const a=1\u000a\u000aconst b={\u000ac:2,\u000ad:3\u000a} ok 15151 padding-line-between-statements valid const a=1\u000aconst b=2 ok 15152 padding-line-between-statements valid const a=1\u000aconst b=2 ok 15153 padding-line-between-statements valid let a={\u000ab:1,\u000ac:2\u000a}\u000a\u000alet d=3 ok 15154 padding-line-between-statements valid let a=1\u000a\u000alet b={\u000ac:2,\u000ad:3\u000a} ok 15155 padding-line-between-statements valid let a=1\u000alet b=2 ok 15156 padding-line-between-statements valid let a=1\u000alet b=2 ok 15157 padding-line-between-statements valid var a={\u000ab:1,\u000ac:2\u000a}\u000a\u000avar d=3 ok 15158 padding-line-between-statements valid var a=1\u000a\u000avar b={\u000ac:2,\u000ad:3\u000a} ok 15159 padding-line-between-statements valid var a=1\u000avar b=2 ok 15160 padding-line-between-statements valid var a=1\u000avar b=2 ok 15161 padding-line-between-statements valid const a=1\u000a\u000aconst b=2 ok 15162 padding-line-between-statements valid const a=1\u000a\u000aconst b=2 ok 15163 padding-line-between-statements valid const a={\u000ab:1,\u000ac:2\u000a}\u000aconst d={\u000ae:3,\u000af:4\u000a} ok 15164 padding-line-between-statements valid const a={\u000ab:1,\u000ac:2\u000a}\u000aconst d={\u000ae:3,\u000af:4\u000a} ok 15165 padding-line-between-statements valid let a=1\u000a\u000alet b=2 ok 15166 padding-line-between-statements valid let a=1\u000a\u000alet b=2 ok 15167 padding-line-between-statements valid let a={\u000ab:1,\u000ac:2\u000a}\u000alet d={\u000ae:3,\u000af:4\u000a} ok 15168 padding-line-between-statements valid let a={\u000ab:1,\u000ac:2\u000a}\u000alet d={\u000ae:3,\u000af:4\u000a} ok 15169 padding-line-between-statements valid var a=1\u000a\u000avar b=2 ok 15170 padding-line-between-statements valid var a=1\u000a\u000avar b=2 ok 15171 padding-line-between-statements valid var a={\u000ab:1,\u000ac:2\u000a}\u000avar d={\u000ae:3,\u000af:4\u000a} ok 15172 padding-line-between-statements valid var a={\u000ab:1,\u000ac:2\u000a}\u000avar d={\u000ae:3,\u000af:4\u000a} ok 15173 padding-line-between-statements valid console.log(greet); ok 15174 padding-line-between-statements valid console.log(greet); ok 15175 padding-line-between-statements valid var greet = 'hello'; ok 15176 padding-line-between-statements valid var greet = 'hello'; ok 15177 padding-line-between-statements valid var greet = 'hello';console.log(greet); ok 15178 padding-line-between-statements valid var greet = 'hello';\u000aconsole.log(greet); ok 15179 padding-line-between-statements valid var greet = 'hello';\u000a\u000aconsole.log(greet); ok 15180 padding-line-between-statements valid var greet = 'hello';\u000a\u000a\u000aconsole.log(greet); ok 15181 padding-line-between-statements valid var greet = 'hello';\u000a\u000a\u000a\u000aconsole.log(greet); ok 15182 padding-line-between-statements valid var greet = 'hello'; \u000a\u000aconsole.log(greet); ok 15183 padding-line-between-statements valid var greet = 'hello'; \u000aconsole.log(greet); ok 15184 padding-line-between-statements valid var greet = 'hello'; // inline comment\u000a\u000aconsole.log(greet); ok 15185 padding-line-between-statements valid var greet = 'hello'; // inline comment\u000aconsole.log(greet); ok 15186 padding-line-between-statements valid var greet = 'hello';\u000a// next-line comment\u000aconsole.log(greet); ok 15187 padding-line-between-statements valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 15188 padding-line-between-statements valid var greet = 'hello';\u000a// next-line comment\u000a\u000aconsole.log(greet); ok 15189 padding-line-between-statements valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000a\u000aconsole.log(greet); ok 15190 padding-line-between-statements valid var greet = 'hello';\u000a// next-line comment\u000a// second-line comment\u000a\u000aconsole.log(greet); ok 15191 padding-line-between-statements valid var greet = 'hello';\u000a// next-line comment\u000a// second-line comment\u000aconsole.log(greet); ok 15192 padding-line-between-statements valid var greet = 'hello';\u000a// next-line comment\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 15193 padding-line-between-statements valid var greet = 'hello';var name = 'world';console.log(greet, name); ok 15194 padding-line-between-statements valid var greet = 'hello';\u000avar name = 'world';\u000aconsole.log(greet, name); ok 15195 padding-line-between-statements valid var greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 15196 padding-line-between-statements valid var greet = 'hello';\u000a// inline comment\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 15197 padding-line-between-statements valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 15198 padding-line-between-statements valid var greet = 'hello';\u000a// inline comment\u000avar name = 'world';\u000aconsole.log(greet, name); ok 15199 padding-line-between-statements valid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000avar name = 'world';\u000aconsole.log(greet, name); ok 15200 padding-line-between-statements valid var greet = 'hello', name = 'world';console.log(greet, name); ok 15201 padding-line-between-statements valid var greet = 'hello', name = 'world';\u000aconsole.log(greet, name); ok 15202 padding-line-between-statements valid var greet = 'hello', name = 'world';\u000a\u000aconsole.log(greet, name); ok 15203 padding-line-between-statements valid var greet = 'hello',\u000aname = 'world';\u000a\u000aconsole.log(greet, name); ok 15204 padding-line-between-statements valid var greet = 'hello',\u000aname = 'world';\u000aconsole.log(greet, name); ok 15205 padding-line-between-statements valid var greet = 'hello', // inline comment\u000aname = 'world'; // inline comment\u000a\u000aconsole.log(greet, name); ok 15206 padding-line-between-statements valid var greet = 'hello', // inline comment\u000aname = 'world'; // inline comment\u000aconsole.log(greet, name); ok 15207 padding-line-between-statements valid var greet = 'hello',\u000aname = 'world';\u000a// next-line comment\u000aconsole.log(greet); ok 15208 padding-line-between-statements valid var greet = 'hello',\u000aname = 'world';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 15209 padding-line-between-statements valid let greet = 'hello';\u000a\u000aconsole.log(greet); ok 15210 padding-line-between-statements valid let greet = 'hello';\u000aconsole.log(greet); ok 15211 padding-line-between-statements valid const greet = 'hello';\u000a\u000aconsole.log(greet); ok 15212 padding-line-between-statements valid const greet = 'hello';\u000aconsole.log(greet); ok 15213 padding-line-between-statements valid let greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 15214 padding-line-between-statements valid const greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 15215 padding-line-between-statements valid let greet = 'hello';\u000aconst name = 'world';\u000a\u000aconsole.log(greet, name); ok 15216 padding-line-between-statements valid for(let a = 1; a < 1; a++){\u000a break;\u000a} ok 15217 padding-line-between-statements valid for(var a = 1; a < 1; a++){\u000a break;\u000a} ok 15218 padding-line-between-statements valid for(let a = 1; a < 1; a++){\u000a break;\u000a} ok 15219 padding-line-between-statements valid for(var a = 1; a < 1; a++){\u000a break;\u000a} ok 15220 padding-line-between-statements valid for(let a in obj){\u000a break;\u000a} ok 15221 padding-line-between-statements valid for(var a in obj){\u000a break;\u000a} ok 15222 padding-line-between-statements valid for(let a in obj){\u000a break;\u000a} ok 15223 padding-line-between-statements valid for(var a in obj){\u000a break;\u000a} ok 15224 padding-line-between-statements valid export let a = 1;\u000aexport let b = 2; ok 15225 padding-line-between-statements valid export let a = 1;\u000aexport let b = 2; ok 15226 padding-line-between-statements valid export var a = 1;\u000aexport var b = 2; ok 15227 padding-line-between-statements valid export var a = 1;\u000aexport var b = 2; ok 15228 padding-line-between-statements valid export const a = 1;\u000aexport const b = 2; ok 15229 padding-line-between-statements valid export const a = 1;\u000aexport const b = 2; ok 15230 padding-line-between-statements valid function example() {\u000avar greet = 'hello'\u000a} ok 15231 padding-line-between-statements valid function example() {\u000avar greet = 'hello'\u000a} ok 15232 padding-line-between-statements valid function example() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 15233 padding-line-between-statements valid var f = function() {\u000avar greet = 'hello'\u000a}; ok 15234 padding-line-between-statements valid var f = function() {\u000avar greet = 'hello'\u000a}; ok 15235 padding-line-between-statements valid var f = function() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a}; ok 15236 padding-line-between-statements valid () => {\u000avar greet = 'hello';\u000a} ok 15237 padding-line-between-statements valid () => {\u000avar greet = 'hello';\u000a} ok 15238 padding-line-between-statements valid () => {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 15239 padding-line-between-statements valid {\u000avar foo;\u000a} ok 15240 padding-line-between-statements valid {\u000avar foo;\u000a} ok 15241 padding-line-between-statements valid if(true) {\u000avar foo;\u000a} ok 15242 padding-line-between-statements valid if(true) {\u000avar foo;\u000a} ok 15243 padding-line-between-statements valid switch(a) {\u000acase 0:\u000avar foo;\u000a} ok 15244 padding-line-between-statements valid switch(a) {\u000acase 0:\u000avar foo;\u000a} ok 15245 padding-line-between-statements valid switch(a) {\u000acase 0:\u000avar foo;\u000a\u000acase 1:} ok 15246 padding-line-between-statements valid switch(a) {\u000acase 0:\u000avar foo;\u000acase 1:} ok 15247 padding-line-between-statements valid \u000a var a = 1\u000a\u000a ;(b || c).doSomething()\u000a ok 15248 padding-line-between-statements valid \u000a var a = 1\u000a ;(b || c).doSomething()\u000a ok 15249 padding-line-between-statements valid \u000a var a = 1\u000a ;\u000a (b || c).doSomething();\u000a ok 15250 padding-line-between-statements valid switch(a) {\u000acase 0:\u000avar foo;\u000a\u000acase 1:} ok 15251 padding-line-between-statements valid switch(a) {\u000acase 0:\u000avar foo;\u000acase 1:} ok 15252 padding-line-between-statements valid \u000a var a = 1\u000a\u000a ;\u000a (b || c).doSomething();\u000a ok 15253 padding-line-between-statements valid function a() {\u000areturn;\u000a} ok 15254 padding-line-between-statements valid function a() {\u000a\u000areturn;\u000a} ok 15255 padding-line-between-statements valid function a() {\u000avar b;\u000a\u000areturn;\u000a} ok 15256 padding-line-between-statements valid function a() {\u000aif (b) return;\u000a} ok 15257 padding-line-between-statements valid function a() {\u000aif (b) { return; }\u000a} ok 15258 padding-line-between-statements valid function a() {\u000aif (b) {\u000areturn;\u000a}\u000a} ok 15259 padding-line-between-statements valid function a() {\u000aif (b) {\u000a\u000areturn;\u000a}\u000a} ok 15260 padding-line-between-statements valid function a() {\u000aif (b) {\u000areturn;\u000a}\u000a\u000areturn c;\u000a} ok 15261 padding-line-between-statements valid function a() {\u000aif (b) {\u000a\u000areturn;\u000a}\u000a\u000areturn c;\u000a} ok 15262 padding-line-between-statements valid function a() {\u000aif (!b) {\u000areturn;\u000a} else {\u000areturn b;\u000a}\u000a} ok 15263 padding-line-between-statements valid function a() {\u000aif (!b) {\u000areturn;\u000a} else {\u000a\u000areturn b;\u000a}\u000a} ok 15264 padding-line-between-statements valid function a() {\u000aif (b) {\u000areturn b;\u000a} else if (c) {\u000areturn c;\u000a}\u000a} ok 15265 padding-line-between-statements valid function a() {\u000aif (b) {\u000areturn b;\u000a} else if (c) {\u000areturn c;\u000a} else {\u000areturn d;\u000a}\u000a} ok 15266 padding-line-between-statements valid function a() {\u000aif (b) {\u000areturn b;\u000a} else if (c) {\u000areturn c;\u000a} else {\u000areturn d;\u000a}\u000a\u000areturn a;\u000a} ok 15267 padding-line-between-statements valid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse return d;\u000a} ok 15268 padding-line-between-statements valid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000areturn d;\u000a}\u000a} ok 15269 padding-line-between-statements valid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000ae();\u000a\u000areturn d;\u000a}\u000a} ok 15270 padding-line-between-statements valid function a() {\u000awhile (b) return;\u000a} ok 15271 padding-line-between-statements valid function a() {\u000a while (b) \u000areturn;\u000a} ok 15272 padding-line-between-statements valid function a() {\u000a while (b) { return; }\u000a} ok 15273 padding-line-between-statements valid function a() {\u000a while (b) {\u000areturn;\u000a}\u000a} ok 15274 padding-line-between-statements valid function a() {\u000a while (b) {\u000ac();\u000a\u000areturn;\u000a}\u000a} ok 15275 padding-line-between-statements valid function a() {\u000avar c;\u000awhile (b) {\u000a c = d; //comment\u000a}\u000a\u000areturn c;\u000a} ok 15276 padding-line-between-statements valid function a() {\u000ado return;\u000awhile (b);\u000a} ok 15277 padding-line-between-statements valid function a() {\u000ado \u000areturn;\u000awhile (b);\u000a} ok 15278 padding-line-between-statements valid function a() {\u000ado { return; } while (b);\u000a} ok 15279 padding-line-between-statements valid function a() {\u000ado { return; }\u000awhile (b);\u000a} ok 15280 padding-line-between-statements valid function a() {\u000ado {\u000areturn;\u000a} while (b);\u000a} ok 15281 padding-line-between-statements valid function a() {\u000ado {\u000ac();\u000a\u000areturn;\u000a} while (b);\u000a} ok 15282 padding-line-between-statements valid function a() {\u000afor (var b; b < c; b++) return;\u000a} ok 15283 padding-line-between-statements valid function a() {\u000afor (var b; b < c; b++)\u000areturn;\u000a} ok 15284 padding-line-between-statements valid function a() {\u000afor (var b; b < c; b++) {\u000areturn;\u000a}\u000a} ok 15285 padding-line-between-statements valid function a() {\u000afor (var b; b < c; b++) {\u000ac();\u000a\u000areturn;\u000a}\u000a} ok 15286 padding-line-between-statements valid function a() {\u000afor (var b; b < c; b++) {\u000aif (d) {\u000abreak; //comment\u000a}\u000a\u000areturn;\u000a}\u000a} ok 15287 padding-line-between-statements valid function a() {\u000afor (b in c)\u000areturn;\u000a} ok 15288 padding-line-between-statements valid function a() {\u000afor (b in c) { return; }\u000a} ok 15289 padding-line-between-statements valid function a() {\u000afor (b in c) {\u000areturn;\u000a}\u000a} ok 15290 padding-line-between-statements valid function a() {\u000afor (b in c) {\u000ad();\u000a\u000areturn;\u000a}\u000a} ok 15291 padding-line-between-statements valid function a() {\u000afor (b of c) return;\u000a} ok 15292 padding-line-between-statements valid function a() {\u000afor (b of c)\u000areturn;\u000a} ok 15293 padding-line-between-statements valid function a() {\u000afor (b of c) {\u000areturn;\u000a}\u000a} ok 15294 padding-line-between-statements valid function a() {\u000afor (b of c) {\u000ad();\u000a\u000areturn;\u000a}\u000a} ok 15295 padding-line-between-statements valid function a() {\u000aswitch (b) {\u000acase 'b': return;\u000a}\u000a} ok 15296 padding-line-between-statements valid function a() {\u000aswitch (b) {\u000acase 'b':\u000areturn;\u000a}\u000a} ok 15297 padding-line-between-statements valid function a() {\u000aswitch (b) {\u000acase 'b': {\u000areturn;\u000a}\u000a}\u000a} ok 15298 padding-line-between-statements valid function a() {\u000a//comment\u000areturn b;\u000a} ok 15299 padding-line-between-statements valid function a() {\u000a{\u000a//comment\u000a}\u000a\u000areturn\u000a} ok 15300 padding-line-between-statements valid function a() {\u000avar b = {\u000a//comment\u000a};\u000a\u000areturn;\u000a} ok 15301 padding-line-between-statements valid function a() {/*multi-line\u000acomment*/return b;\u000a} ok 15302 padding-line-between-statements valid function a() {\u000a/*comment\u000acomment*/\u000a//comment\u000areturn b;\u000a} ok 15303 padding-line-between-statements valid function a() {\u000a/*comment\u000acomment*/\u000a//comment\u000aif (b) return;\u000a} ok 15304 padding-line-between-statements valid function a() {\u000a/*comment\u000acomment*/\u000a//comment\u000aif (b) {\u000ac();\u000a\u000areturn b;\u000a} else {\u000a//comment\u000areturn d;\u000a}\u000a\u000a/*multi-line\u000acomment*/\u000areturn e;\u000a} ok 15305 padding-line-between-statements valid function a() {\u000aif (b) { //comment\u000areturn;\u000a}\u000a\u000areturn c;\u000a} ok 15306 padding-line-between-statements valid function a() {\u000aif (b) { return; } //comment\u000a\u000areturn c;\u000a} ok 15307 padding-line-between-statements valid function a() {\u000aif (b) { return; } /*multi-line\u000acomment*/\u000a\u000areturn c;\u000a} ok 15308 padding-line-between-statements valid function a() {\u000aif (b) { return; }\u000a\u000a/*multi-line\u000acomment*/ return c;\u000a} ok 15309 padding-line-between-statements valid return; ok 15310 padding-line-between-statements valid var a;\u000a\u000areturn; ok 15311 padding-line-between-statements valid // comment\u000areturn; ok 15312 padding-line-between-statements valid /* comment */\u000areturn; ok 15313 padding-line-between-statements valid /* multi-line\u000acomment */\u000areturn; ok 15314 padding-line-between-statements valid if(true){} ok 15315 padding-line-between-statements valid if(true){}\u000a ok 15316 padding-line-between-statements valid if(true){}\u000avar a = 2; ok 15317 padding-line-between-statements valid if(true){\u000aif(true) {}\u000a} ok 15318 padding-line-between-statements valid var a = {\u000afoo: function() {\u000a},\u000abar: function() {\u000a}} ok 15319 padding-line-between-statements valid (function(){\u000a})()\u000avar a = 2; ok 15320 padding-line-between-statements valid if(true) {\u000a}\u000aelse\u000a{\u000a} ok 15321 padding-line-between-statements valid if(true) {\u000a} else {\u000a var a = 2; } ok 15322 padding-line-between-statements valid if(true) {\u000a}\u000aelse if(true)\u000a{\u000a}\u000aelse {\u000a} ok 15323 padding-line-between-statements valid do{\u000a}\u000awhile(true) ok 15324 padding-line-between-statements valid try{\u000a}\u000acatch(e) {} ok 15325 padding-line-between-statements valid try{\u000a}\u000afinally {} ok 15326 padding-line-between-statements valid try{\u000a}\u000acatch(e) {\u000a}\u000afinally {\u000a} ok 15327 padding-line-between-statements valid [].map(function() {})\u000a.filter(function(){}) ok 15328 padding-line-between-statements valid var a = 2;\u000amodule.exports = a; ok 15329 padding-line-between-statements valid module.exports = 2; ok 15330 padding-line-between-statements valid var a = 2;\u000a// foo\u000amodule.exports = a; ok 15331 padding-line-between-statements valid var a = 2;\u000a\u000afoo.exports = a; ok 15332 padding-line-between-statements valid var a = 2;\u000a\u000amodule.foo = a; ok 15333 padding-line-between-statements valid var a = 2;\u000a\u000afoo = a; ok 15334 padding-line-between-statements valid {} ok 15335 padding-line-between-statements valid if(true){} ok 15336 padding-line-between-statements valid if(true){}\u000a ok 15337 padding-line-between-statements valid if(true){}\u000a\u000avar a = 2; ok 15338 padding-line-between-statements valid if(true){}\u000a\u000a\u000avar a = 2; ok 15339 padding-line-between-statements valid if(true){\u000aif(true) {}\u000a} ok 15340 padding-line-between-statements valid var a = {\u000afoo: function() {\u000a},\u000a\u000abar: function() {\u000a}} ok 15341 padding-line-between-statements valid (function(){\u000a})()\u000a\u000avar a = 2; ok 15342 padding-line-between-statements valid if(true) {\u000a}\u000aelse\u000a{\u000a} ok 15343 padding-line-between-statements valid if(true) {\u000a} else {\u000a var a = 2; } ok 15344 padding-line-between-statements valid if(true) {\u000a}\u000aelse if(true)\u000a{\u000a}\u000aelse {\u000a} ok 15345 padding-line-between-statements valid do{\u000a}\u000awhile(true) ok 15346 padding-line-between-statements valid try{\u000a}\u000acatch(e) {} ok 15347 padding-line-between-statements valid try{\u000a}\u000afinally {} ok 15348 padding-line-between-statements valid try{\u000a}\u000acatch(e) {\u000a}\u000afinally {\u000a} ok 15349 padding-line-between-statements valid [].map(function() {})\u000a.filter(function(){}) ok 15350 padding-line-between-statements valid func(\u000a2,\u000a3,\u000afunction() {\u000a}\u000a) ok 15351 padding-line-between-statements valid [\u000a2,\u000a3,\u000afunction() {\u000a}\u000a] ok 15352 padding-line-between-statements valid a(res => {\u000a})\u000a.b(); ok 15353 padding-line-between-statements valid var foo = (\u000a\u000afoo\u000a
\u000a); ok 15354 padding-line-between-statements valid var i = 0;\u000awhile (i < 100) {\u000aif(i % 2 === 0) {continue;}\u000a++i;\u000a} ok 15355 padding-line-between-statements valid var i = 0;\u000awhile (i < 100) {\u000aif(i % 2 === 0) {if(i === 4) {continue;}}\u000a++i;\u000a} ok 15356 padding-line-between-statements valid module.exports = 2; ok 15357 padding-line-between-statements valid var a = 2;\u000a\u000amodule.exports = a; ok 15358 padding-line-between-statements valid var a = 2;\u000afoo.exports = a; ok 15359 padding-line-between-statements valid var a = 2;\u000amodule.foo = a; ok 15360 padding-line-between-statements valid if (true) {\u000amodule.exports = a;\u000a} ok 15361 padding-line-between-statements valid function x() { return; } ok 15362 padding-line-between-statements valid if (true) {} else if (false) {} ok 15363 padding-line-between-statements valid function x() { var a = true; do { a = !a; } while (a); } ok 15364 padding-line-between-statements valid function x() { if (true) return; } ok 15365 padding-line-between-statements valid function test() {}; ok 15366 padding-line-between-statements invalid foo();\u000a\u000afoo(); ok 15367 padding-line-between-statements invalid foo();\u000a\u000a//comment\u000afoo(); ok 15368 padding-line-between-statements invalid foo();\u000a \u000a //comment\u000a foo(); ok 15369 padding-line-between-statements invalid if (a) {}\u000a\u000afor (;;) {} ok 15370 padding-line-between-statements invalid foo();\u000afoo(); ok 15371 padding-line-between-statements invalid function a() {}\u000a do {} while (a) ok 15372 padding-line-between-statements invalid foo();//trailing-comment\u000a//comment\u000a//comment\u000afoo(); ok 15373 padding-line-between-statements invalid {}\u000a\u000afoo() ok 15374 padding-line-between-statements invalid {}\u000afoo() ok 15375 padding-line-between-statements invalid if(a){}\u000afoo() ok 15376 padding-line-between-statements invalid if(a){}else{}\u000afoo() ok 15377 padding-line-between-statements invalid if(a){}else if(b){}\u000afoo() ok 15378 padding-line-between-statements invalid if(a){}else if(b){}else{}\u000afoo() ok 15379 padding-line-between-statements invalid switch(a){}\u000afoo() ok 15380 padding-line-between-statements invalid switch(a){case 0:}\u000afoo() ok 15381 padding-line-between-statements invalid try{}catch(e){}\u000afoo() ok 15382 padding-line-between-statements invalid try{}finally{}\u000afoo() ok 15383 padding-line-between-statements invalid try{}catch(e){}finally{}\u000afoo() ok 15384 padding-line-between-statements invalid while(a){}\u000afoo() ok 15385 padding-line-between-statements invalid do{}while(a)\u000afoo() ok 15386 padding-line-between-statements invalid for(;;){}\u000afoo() ok 15387 padding-line-between-statements invalid for(a in b){}\u000afoo() ok 15388 padding-line-between-statements invalid for(a of b){}\u000afoo() ok 15389 padding-line-between-statements invalid a=function(){}\u000afoo() ok 15390 padding-line-between-statements invalid a=()=>{}\u000afoo() ok 15391 padding-line-between-statements invalid function a(){}\u000afoo() ok 15392 padding-line-between-statements invalid let a=function(){}\u000afoo() ok 15393 padding-line-between-statements invalid module.exports=1\u000a\u000afoo() ok 15394 padding-line-between-statements invalid module.exports=1\u000afoo() ok 15395 padding-line-between-statements invalid module.exports.foo=1\u000afoo() ok 15396 padding-line-between-statements invalid module.exports[foo]=1\u000afoo() ok 15397 padding-line-between-statements invalid exports.foo=1\u000afoo() ok 15398 padding-line-between-statements invalid exports[foo]=1\u000afoo() ok 15399 padding-line-between-statements invalid const foo=require("foo")\u000a\u000afoo() ok 15400 padding-line-between-statements invalid const foo=require("foo")\u000afoo() ok 15401 padding-line-between-statements invalid const foo=require("foo").Foo\u000afoo() ok 15402 padding-line-between-statements invalid const foo=require("foo")[a]\u000afoo() ok 15403 padding-line-between-statements invalid "use strict"\u000a\u000afoo() ok 15404 padding-line-between-statements invalid "use strict"\u000afoo() ok 15405 padding-line-between-statements invalid 'use strict'\u000afoo() ok 15406 padding-line-between-statements invalid 'use asm'\u000afoo() ok 15407 padding-line-between-statements invalid {\u000a}\u000a\u000afoo() ok 15408 padding-line-between-statements invalid {\u000a}\u000afoo() ok 15409 padding-line-between-statements invalid if(a){\u000a}\u000afoo() ok 15410 padding-line-between-statements invalid if(a){\u000a}else{\u000a}\u000afoo() ok 15411 padding-line-between-statements invalid if(a){\u000a}else if(b){\u000a}\u000afoo() ok 15412 padding-line-between-statements invalid if(a){\u000a}else if(b){\u000a}else{\u000a}\u000afoo() ok 15413 padding-line-between-statements invalid switch(a){\u000a}\u000afoo() ok 15414 padding-line-between-statements invalid try{\u000a}catch(e){\u000a}\u000afoo() ok 15415 padding-line-between-statements invalid try{\u000a}finally{\u000a}\u000afoo() ok 15416 padding-line-between-statements invalid try{\u000a}catch(e){\u000a}finally{\u000a}\u000afoo() ok 15417 padding-line-between-statements invalid while(a){\u000a}\u000afoo() ok 15418 padding-line-between-statements invalid do{\u000a}while(a)\u000afoo() ok 15419 padding-line-between-statements invalid for(;;){\u000a}\u000afoo() ok 15420 padding-line-between-statements invalid for(a in b){\u000a}\u000afoo() ok 15421 padding-line-between-statements invalid for(a of b){\u000a}\u000afoo() ok 15422 padding-line-between-statements invalid a=function(){\u000a}\u000afoo() ok 15423 padding-line-between-statements invalid a=()=>{\u000a}\u000afoo() ok 15424 padding-line-between-statements invalid function a(){\u000a}\u000afoo() ok 15425 padding-line-between-statements invalid let a=function(){\u000a}\u000afoo() ok 15426 padding-line-between-statements invalid {}\u000a\u000afoo() ok 15427 padding-line-between-statements invalid {}\u000afoo() ok 15428 padding-line-between-statements invalid ;\u000a\u000afoo() ok 15429 padding-line-between-statements invalid ;\u000afoo() ok 15430 padding-line-between-statements invalid foo()\u000a\u000afoo() ok 15431 padding-line-between-statements invalid foo()\u000afoo() ok 15432 padding-line-between-statements invalid foo()\u000a\u000afoo(\u000a\u0009x,\u000a\u0009y\u000a) ok 15433 padding-line-between-statements invalid foo()\u000afoo(\u000a\u0009x,\u000a\u0009y\u000a) ok 15434 padding-line-between-statements invalid () => {\u000a\u0009someArray.forEach(\u000a\u0009\u0009x => doSomething(x)\u000a\u0009);\u000a\u0009return theThing;\u000a} ok 15435 padding-line-between-statements invalid while(a){break\u000a\u000afoo()} ok 15436 padding-line-between-statements invalid switch(a){case 0:break\u000a\u000afoo()} ok 15437 padding-line-between-statements invalid while(a){break\u000afoo()} ok 15438 padding-line-between-statements invalid switch(a){case 0:break\u000afoo()} ok 15439 padding-line-between-statements invalid switch(a){case 0:\u000afoo()\u000a\u000adefault:} ok 15440 padding-line-between-statements invalid switch(a){case 0:\u000afoo()\u000adefault:} ok 15441 padding-line-between-statements invalid class A{}\u000a\u000afoo() ok 15442 padding-line-between-statements invalid class A{}\u000afoo() ok 15443 padding-line-between-statements invalid const a=1\u000a\u000afoo() ok 15444 padding-line-between-statements invalid const a=1\u000afoo() ok 15445 padding-line-between-statements invalid while(a){continue\u000a\u000afoo()} ok 15446 padding-line-between-statements invalid while(a){continue\u000afoo()} ok 15447 padding-line-between-statements invalid debugger\u000a\u000afoo() ok 15448 padding-line-between-statements invalid debugger\u000afoo() ok 15449 padding-line-between-statements invalid switch(a){default:\u000afoo()\u000a\u000acase 0:} ok 15450 padding-line-between-statements invalid switch(a){default:\u000afoo()\u000acase 0:} ok 15451 padding-line-between-statements invalid do;while(a)\u000a\u000afoo() ok 15452 padding-line-between-statements invalid do;while(a)\u000afoo() ok 15453 padding-line-between-statements invalid export default 1\u000a\u000afoo() ok 15454 padding-line-between-statements invalid export let a=1\u000a\u000afoo() ok 15455 padding-line-between-statements invalid var a = 0;export {a}\u000a\u000afoo() ok 15456 padding-line-between-statements invalid export default 1\u000afoo() ok 15457 padding-line-between-statements invalid export let a=1\u000afoo() ok 15458 padding-line-between-statements invalid var a = 0;export {a}\u000afoo() ok 15459 padding-line-between-statements invalid for(;;);\u000a\u000afoo() ok 15460 padding-line-between-statements invalid for(a in b);\u000a\u000afoo() ok 15461 padding-line-between-statements invalid for(a of b);\u000a\u000afoo() ok 15462 padding-line-between-statements invalid for(;;);\u000afoo() ok 15463 padding-line-between-statements invalid for(a in b);\u000afoo() ok 15464 padding-line-between-statements invalid for(a of b);\u000afoo() ok 15465 padding-line-between-statements invalid function foo(){}\u000a\u000afoo() ok 15466 padding-line-between-statements invalid function foo(){}\u000afoo() ok 15467 padding-line-between-statements invalid async function foo(){}\u000afoo() ok 15468 padding-line-between-statements invalid if(a);\u000a\u000afoo() ok 15469 padding-line-between-statements invalid if(a);else;\u000a\u000afoo() ok 15470 padding-line-between-statements invalid if(a);\u000afoo() ok 15471 padding-line-between-statements invalid if(a);else;\u000afoo() ok 15472 padding-line-between-statements invalid (function(){\u000a})()\u000a\u000avar a = 2; ok 15473 padding-line-between-statements invalid +(function(){\u000a})()\u000a\u000avar a = 2; ok 15474 padding-line-between-statements invalid (function(){\u000a})()\u000avar a = 2; ok 15475 padding-line-between-statements invalid +(function(){\u000a})()\u000avar a = 2; ok 15476 padding-line-between-statements invalid import a from 'a'\u000a\u000afoo() ok 15477 padding-line-between-statements invalid import * as a from 'a'\u000a\u000afoo() ok 15478 padding-line-between-statements invalid import {a} from 'a'\u000a\u000afoo() ok 15479 padding-line-between-statements invalid import a from 'a'\u000afoo() ok 15480 padding-line-between-statements invalid import * as a from 'a'\u000afoo() ok 15481 padding-line-between-statements invalid import {a} from 'a'\u000afoo() ok 15482 padding-line-between-statements invalid let a\u000a\u000afoo() ok 15483 padding-line-between-statements invalid let a\u000afoo() ok 15484 padding-line-between-statements invalid function foo(){return\u000a\u000afoo()} ok 15485 padding-line-between-statements invalid function foo(){return\u000afoo()} ok 15486 padding-line-between-statements invalid switch(a){}\u000a\u000afoo() ok 15487 padding-line-between-statements invalid switch(a){}\u000afoo() ok 15488 padding-line-between-statements invalid throw a\u000a\u000afoo() ok 15489 padding-line-between-statements invalid throw a\u000afoo() ok 15490 padding-line-between-statements invalid try{}catch(e){}\u000a\u000afoo() ok 15491 padding-line-between-statements invalid try{}finally{}\u000a\u000afoo() ok 15492 padding-line-between-statements invalid try{}catch(e){}finally{}\u000a\u000afoo() ok 15493 padding-line-between-statements invalid try{}catch(e){}\u000afoo() ok 15494 padding-line-between-statements invalid try{}finally{}\u000afoo() ok 15495 padding-line-between-statements invalid try{}catch(e){}finally{}\u000afoo() ok 15496 padding-line-between-statements invalid var a\u000a\u000afoo() ok 15497 padding-line-between-statements invalid var a\u000afoo() ok 15498 padding-line-between-statements invalid while(a);\u000a\u000afoo() ok 15499 padding-line-between-statements invalid while(a);\u000afoo() ok 15500 padding-line-between-statements invalid with(a);\u000a\u000afoo() ok 15501 padding-line-between-statements invalid with(a);\u000afoo() ok 15502 padding-line-between-statements invalid const a={\u000ab:1,\u000ac:2\u000a}\u000a\u000aconst d=3 ok 15503 padding-line-between-statements invalid const a={\u000ab:1,\u000ac:2\u000a}\u000aconst d=3 ok 15504 padding-line-between-statements invalid const a=1\u000a\u000aconst b={\u000ac:2,\u000ad:3\u000a} ok 15505 padding-line-between-statements invalid const a=1\u000aconst b={\u000ac:2,\u000ad:3\u000a} ok 15506 padding-line-between-statements invalid let a={\u000ab:1,\u000ac:2\u000a}\u000a\u000alet d=3 ok 15507 padding-line-between-statements invalid let a={\u000ab:1,\u000ac:2\u000a}\u000alet d=3 ok 15508 padding-line-between-statements invalid let a=1\u000a\u000alet b={\u000ac:2,\u000ad:3\u000a} ok 15509 padding-line-between-statements invalid let a=1\u000alet b={\u000ac:2,\u000ad:3\u000a} ok 15510 padding-line-between-statements invalid var a={\u000ab:1,\u000ac:2\u000a}\u000a\u000avar d=3 ok 15511 padding-line-between-statements invalid var a={\u000ab:1,\u000ac:2\u000a}\u000avar d=3 ok 15512 padding-line-between-statements invalid var a=1\u000a\u000avar b={\u000ac:2,\u000ad:3\u000a} ok 15513 padding-line-between-statements invalid var a=1\u000avar b={\u000ac:2,\u000ad:3\u000a} ok 15514 padding-line-between-statements invalid const a=1\u000a\u000aconst b=2 ok 15515 padding-line-between-statements invalid const a=1\u000aconst b=2 ok 15516 padding-line-between-statements invalid const a=1\u000a\u000aconst b=2 ok 15517 padding-line-between-statements invalid const a=1\u000aconst b=2 ok 15518 padding-line-between-statements invalid let a=1\u000a\u000alet b=2 ok 15519 padding-line-between-statements invalid let a=1\u000alet b=2 ok 15520 padding-line-between-statements invalid let a=1\u000a\u000alet b=2 ok 15521 padding-line-between-statements invalid let a=1\u000alet b=2 ok 15522 padding-line-between-statements invalid var a=1\u000a\u000avar b=2 ok 15523 padding-line-between-statements invalid var a=1\u000avar b=2 ok 15524 padding-line-between-statements invalid var a=1\u000a\u000avar b=2 ok 15525 padding-line-between-statements invalid var a=1\u000avar b=2 ok 15526 padding-line-between-statements invalid var greet = 'hello';console.log(greet); ok 15527 padding-line-between-statements invalid var greet = 'hello';var name = 'world';console.log(greet, name); ok 15528 padding-line-between-statements invalid var greet = 'hello', name = 'world';console.log(greet, name); ok 15529 padding-line-between-statements invalid var greet = 'hello';\u000aconsole.log(greet); ok 15530 padding-line-between-statements invalid var greet = 'hello'; \u000aconsole.log(greet); ok 15531 padding-line-between-statements invalid var greet = 'hello'; // inline comment\u000aconsole.log(greet); ok 15532 padding-line-between-statements invalid var greet = 'hello';\u000avar name = 'world';\u000aconsole.log(greet, name); ok 15533 padding-line-between-statements invalid var greet = 'hello', name = 'world';\u000aconsole.log(greet, name); ok 15534 padding-line-between-statements invalid var greet = 'hello',\u000aname = 'world';\u000aconsole.log(greet, name); ok 15535 padding-line-between-statements invalid let greet = 'hello';\u000aconsole.log(greet); ok 15536 padding-line-between-statements invalid const greet = 'hello';\u000aconsole.log(greet); ok 15537 padding-line-between-statements invalid function example() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 15538 padding-line-between-statements invalid var f = function() {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a}; ok 15539 padding-line-between-statements invalid () => {\u000avar greet = 'hello';\u000aconsole.log(greet);\u000a} ok 15540 padding-line-between-statements invalid var greet = 'hello';\u000a\u000aconsole.log(greet); ok 15541 padding-line-between-statements invalid var greet = 'hello';\u000a\u000a\u000aconsole.log(greet); ok 15542 padding-line-between-statements invalid var greet = 'hello';\u000a\u000a\u000a\u000aconsole.log(greet); ok 15543 padding-line-between-statements invalid var greet = 'hello'; \u000a\u000aconsole.log(greet); ok 15544 padding-line-between-statements invalid var greet = 'hello'; // inline comment\u000a\u000aconsole.log(greet); ok 15545 padding-line-between-statements invalid var greet = 'hello';\u000avar name = 'world';\u000a\u000aconsole.log(greet, name); ok 15546 padding-line-between-statements invalid var greet = 'hello', name = 'world';\u000a\u000aconsole.log(greet, name); ok 15547 padding-line-between-statements invalid var greet = 'hello',\u000aname = 'world';\u000a\u000aconsole.log(greet, name); ok 15548 padding-line-between-statements invalid var greet = 'hello', // inline comment\u000aname = 'world'; // inline comment\u000a\u000aconsole.log(greet, name); ok 15549 padding-line-between-statements invalid let greet = 'hello';\u000a\u000aconsole.log(greet); ok 15550 padding-line-between-statements invalid const greet = 'hello';\u000a\u000aconsole.log(greet); ok 15551 padding-line-between-statements invalid var greet = 'hello';\u000a// next-line comment\u000aconsole.log(greet); ok 15552 padding-line-between-statements invalid var greet = 'hello';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 15553 padding-line-between-statements invalid var greet = 'hello',\u000aname = 'world';\u000a// next-line comment\u000aconsole.log(greet); ok 15554 padding-line-between-statements invalid var greet = 'hello',\u000aname = 'world';\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 15555 padding-line-between-statements invalid var greet = 'hello';\u000a// next-line comment\u000a// second-line comment\u000aconsole.log(greet); ok 15556 padding-line-between-statements invalid var greet = 'hello';\u000a// next-line comment\u000a/* block comment\u000ablock comment */\u000aconsole.log(greet); ok 15557 padding-line-between-statements invalid \u000a var a = 1\u000a ;(b || c).doSomething()\u000a ok 15558 padding-line-between-statements invalid \u000a var a = 1\u000a\u000a ;(b || c).doSomething()\u000a ok 15559 padding-line-between-statements invalid function a() {\u000avar b; return;\u000a} ok 15560 padding-line-between-statements invalid function a() {\u000avar b;\u000areturn;\u000a} ok 15561 padding-line-between-statements invalid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000ae();\u000areturn d;\u000a}\u000a} ok 15562 padding-line-between-statements invalid function a() {\u000aif (b) return b;\u000aelse if (c) return c;\u000aelse {\u000ae(); return d;\u000a}\u000a} ok 15563 padding-line-between-statements invalid function a() {\u000a while (b) {\u000ac();\u000areturn;\u000a}\u000a} ok 15564 padding-line-between-statements invalid function a() {\u000ado {\u000ac();\u000areturn;\u000a} while (b);\u000a} ok 15565 padding-line-between-statements invalid function a() {\u000afor (var b; b < c; b++) {\u000ac();\u000areturn;\u000a}\u000a} ok 15566 padding-line-between-statements invalid function a() {\u000afor (b in c) {\u000ad();\u000areturn;\u000a}\u000a} ok 15567 padding-line-between-statements invalid function a() {\u000afor (b of c) {\u000ad();\u000areturn;\u000a}\u000a} ok 15568 padding-line-between-statements invalid function a() {\u000aif (b) {\u000ac();\u000a}\u000a//comment\u000areturn b;\u000a} ok 15569 padding-line-between-statements invalid function a() {\u000a/*comment\u000acomment*/\u000aif (b) {\u000ac();\u000areturn b;\u000a} else {\u000a//comment\u000a\u000areturn d;\u000a}\u000a/*multi-line\u000acomment*/\u000areturn e;\u000a} ok 15570 padding-line-between-statements invalid function a() {\u000aif (b) { return; } //comment\u000areturn c;\u000a} ok 15571 padding-line-between-statements invalid function a() {\u000aif (b) { return; } /*multi-line\u000acomment*/\u000areturn c;\u000a} ok 15572 padding-line-between-statements invalid function a() {\u000aif (b) { return; }\u000a/*multi-line\u000acomment*/ return c;\u000a} ok 15573 padding-line-between-statements invalid function a() {\u000aif (b) { return; } /*multi-line\u000acomment*/ return c;\u000a} ok 15574 padding-line-between-statements invalid var a;\u000areturn; ok 15575 padding-line-between-statements invalid var a; return; ok 15576 padding-line-between-statements invalid function a() {\u000a{\u000a//comment\u000a}\u000areturn\u000a} ok 15577 padding-line-between-statements invalid function a() {\u000a{\u000a//comment\u000a} return\u000a} ok 15578 padding-line-between-statements invalid function a() {\u000avar c;\u000awhile (b) {\u000a c = d; //comment\u000a}\u000areturn c;\u000a} ok 15579 padding-line-between-statements invalid function a() {\u000afor (var b; b < c; b++) {\u000aif (d) {\u000abreak; //comment\u000a}\u000areturn;\u000a}\u000a} ok 15580 padding-line-between-statements invalid function a() {\u000avar b; /*multi-line\u000acomment*/\u000areturn c;\u000a} ok 15581 padding-line-between-statements invalid function a() {\u000avar b;\u000a/*multi-line\u000acomment*/ return c;\u000a} ok 15582 padding-line-between-statements invalid function a() {\u000avar b; /*multi-line\u000acomment*/ return c;\u000a} ok 15583 padding-line-between-statements invalid function a() {\u000avar b;\u000a//comment\u000areturn;\u000a} ok 15584 padding-line-between-statements invalid function a() {\u000avar b; //comment\u000areturn;\u000a} ok 15585 padding-line-between-statements invalid function a() {\u000avar b;\u000a/* comment */ return;\u000a} ok 15586 padding-line-between-statements invalid function a() {\u000avar b;\u000a//comment\u000a/* comment */ return;\u000a} ok 15587 padding-line-between-statements invalid function a() {\u000avar b; /* comment */ return;\u000a} ok 15588 padding-line-between-statements invalid function a() {\u000avar b; /* comment */\u000areturn;\u000a} ok 15589 padding-line-between-statements invalid function a() {\u000avar b;\u000areturn; //comment\u000a} ok 15590 padding-line-between-statements invalid function a() {\u000avar b; return; //comment\u000a} ok 15591 padding-line-between-statements invalid if(true){}\u000a\u000avar a = 2; ok 15592 padding-line-between-statements invalid if(true){\u000aif(true) {}\u000a\u000avar a = 2;} ok 15593 padding-line-between-statements invalid (function(){\u000a})()\u000a\u000avar a = 2; ok 15594 padding-line-between-statements invalid +(function(){\u000a})()\u000a\u000avar a = 2; ok 15595 padding-line-between-statements invalid var a = function() {};\u000a\u000avar b = 2; ok 15596 padding-line-between-statements invalid var a = 2;\u000a\u000amodule.exports = a; ok 15597 padding-line-between-statements invalid function x() { var a;\u000a\u000areturn; } ok 15598 padding-line-between-statements invalid function x() { var a = true;\u000a\u000aif (a) { a = !a; }; } ok 15599 padding-line-between-statements invalid function x() { var a = true;\u000a\u000afor (var i = 0; i < 10; i++) { a = !a; }; } ok 15600 padding-line-between-statements invalid function x() { var y = true;\u000a\u000aswitch ("Oranges") { case "Oranges": y = !y;\u000a\u000abreak;\u000a\u000acase "Apples": y = !y;\u000a\u000abreak; default: y = !y; } } ok 15601 padding-line-between-statements invalid function x() {try { var a;\u000a\u000athrow 0; } catch (e) { var b = 0;\u000a\u000athrow e; } } ok 15602 padding-line-between-statements invalid function x(a) { var b = 0;\u000a\u000aif (!a) { return false; };\u000a\u000afor (var i = 0; i < b; i++) { if (!a[i]) return false; }\u000a\u000areturn true; } ok 15603 padding-line-between-statements invalid if(true){}\u000avar a = 2; ok 15604 padding-line-between-statements invalid var a = function() {\u000a};\u000avar b = 2; ok 15605 padding-line-between-statements invalid if(true){\u000aif(true) {}\u000avar a = 2;} ok 15606 padding-line-between-statements invalid (function(){\u000a})()\u000avar a = 2; ok 15607 padding-line-between-statements invalid var a = function() {\u000a};\u000avar b = 2; ok 15608 padding-line-between-statements invalid (function(){\u000a})()\u000avar a = 2; ok 15609 padding-line-between-statements invalid var a = 2;\u000amodule.exports = a; ok 15610 padding-line-between-statements invalid function x() { var a; return; } ok 15611 padding-line-between-statements invalid function x() { var a = true; for (var i = 0; i < 10; i++) { a = !a; }; } ok 15612 padding-line-between-statements invalid function x() { var y = true; switch ("Oranges") { case "Oranges": y = !y; break; case "Apples": y = !y; break; default: y = !y; } } ok 15613 padding-line-between-statements invalid function x() { var a = true; while (!a) { a = !a; }; } ok 15614 padding-line-between-statements invalid function x() {try { var a; throw 0; } catch (e) { var b = 0; throw e; } } ok 15615 padding-line-between-statements invalid function x(a) { var b = 0; if (!a) { return false; }; for (var i = 0; i < b; i++) { if (!a[i]) return false; } return true; } ok 15616 prefer-arrow-callback valid foo(a => a); ok 15617 prefer-arrow-callback valid foo(function*() {}); ok 15618 prefer-arrow-callback valid foo(function() { this; }); ok 15619 prefer-arrow-callback valid foo(function bar() {}); ok 15620 prefer-arrow-callback valid foo(function() { (() => this); }); ok 15621 prefer-arrow-callback valid foo(function() { this; }.bind(obj)); ok 15622 prefer-arrow-callback valid foo(function() { this; }.call(this)); ok 15623 prefer-arrow-callback valid foo(a => { (function() {}); }); ok 15624 prefer-arrow-callback valid var foo = function foo() {}; ok 15625 prefer-arrow-callback valid (function foo() {})(); ok 15626 prefer-arrow-callback valid foo(function bar() { bar; }); ok 15627 prefer-arrow-callback valid foo(function bar() { arguments; }); ok 15628 prefer-arrow-callback valid foo(function bar() { arguments; }.bind(this)); ok 15629 prefer-arrow-callback valid foo(function bar() { new.target; }); ok 15630 prefer-arrow-callback valid foo(function bar() { new.target; }.bind(this)); ok 15631 prefer-arrow-callback valid foo(function bar() { this; }.bind(this, somethingElse)); ok 15632 prefer-arrow-callback invalid foo(function bar() {}); ok 15633 prefer-arrow-callback invalid foo(function() {}); ok 15634 prefer-arrow-callback invalid foo(function bar() {}); ok 15635 prefer-arrow-callback invalid foo(function() {}); ok 15636 prefer-arrow-callback invalid foo(nativeCb || function() {}); ok 15637 prefer-arrow-callback invalid foo(bar ? function() {} : function() {}); ok 15638 prefer-arrow-callback invalid foo(function() { (function() { this; }); }); ok 15639 prefer-arrow-callback invalid foo(function() { this; }.bind(this)); ok 15640 prefer-arrow-callback invalid foo(bar || function() { this; }.bind(this)); ok 15641 prefer-arrow-callback invalid foo(function() { (() => this); }.bind(this)); ok 15642 prefer-arrow-callback invalid foo(function bar(a) { a; }); ok 15643 prefer-arrow-callback invalid foo(function(a) { a; }); ok 15644 prefer-arrow-callback invalid foo(function(arguments) { arguments; }); ok 15645 prefer-arrow-callback invalid foo(function() { this; }); ok 15646 prefer-arrow-callback invalid foo(function() { (() => this); }); ok 15647 prefer-arrow-callback invalid qux(function(foo, bar, baz) { return foo * 2; }) ok 15648 prefer-arrow-callback invalid qux(function(foo, bar, baz) { return foo * bar; }.bind(this)) ok 15649 prefer-arrow-callback invalid qux(function(foo, bar, baz) { return foo * this.qux; }.bind(this)) ok 15650 prefer-arrow-callback invalid foo(function() {}.bind(this, somethingElse)) ok 15651 prefer-arrow-callback invalid qux(function(foo = 1, [bar = 2] = [], {qux: baz = 3} = {foo: 'bar'}) { return foo + bar; }); ok 15652 prefer-arrow-callback invalid qux(function(baz, baz) { }) ok 15653 prefer-arrow-callback invalid qux(function( /* no params */ ) { }) ok 15654 prefer-arrow-callback invalid qux(function( /* a */ foo /* b */ , /* c */ bar /* d */ , /* e */ baz /* f */ ) { return foo; }) ok 15655 prefer-arrow-callback invalid qux(async function (foo = 1, bar = 2, baz = 3) { return baz; }) ok 15656 prefer-arrow-callback invalid qux(async function (foo = 1, bar = 2, baz = 3) { return this; }.bind(this)) ok 15657 prefer-const valid var x = 0; ok 15658 prefer-const valid let x; ok 15659 prefer-const valid let x; { x = 0; } foo(x); ok 15660 prefer-const valid let x = 0; x = 1; ok 15661 prefer-const valid const x = 0; ok 15662 prefer-const valid for (let i = 0, end = 10; i < end; ++i) {} ok 15663 prefer-const valid for (let i in [1,2,3]) { i = 0; } ok 15664 prefer-const valid for (let x of [1,2,3]) { x = 0; } ok 15665 prefer-const valid (function() { var x = 0; })(); ok 15666 prefer-const valid (function() { let x; })(); ok 15667 prefer-const valid (function() { let x; { x = 0; } foo(x); })(); ok 15668 prefer-const valid (function() { let x = 0; x = 1; })(); ok 15669 prefer-const valid (function() { const x = 0; })(); ok 15670 prefer-const valid (function() { for (let i = 0, end = 10; i < end; ++i) {} })(); ok 15671 prefer-const valid (function() { for (let i in [1,2,3]) { i = 0; } })(); ok 15672 prefer-const valid (function() { for (let x of [1,2,3]) { x = 0; } })(); ok 15673 prefer-const valid (function(x = 0) { })(); ok 15674 prefer-const valid let a; while (a = foo()); ok 15675 prefer-const valid let a; do {} while (a = foo()); ok 15676 prefer-const valid let a; for (; a = foo(); ); ok 15677 prefer-const valid let a; for (;; ++a); ok 15678 prefer-const valid let a; for (const {b = ++a} in foo()); ok 15679 prefer-const valid let a; for (const {b = ++a} of foo()); ok 15680 prefer-const valid let a; for (const x of [1,2,3]) { if (a) {} a = foo(); } ok 15681 prefer-const valid let a; for (const x of [1,2,3]) { a = a || foo(); bar(a); } ok 15682 prefer-const valid let a; for (const x of [1,2,3]) { foo(++a); } ok 15683 prefer-const valid let a; function foo() { if (a) {} a = bar(); } ok 15684 prefer-const valid let a; function foo() { a = a || bar(); baz(a); } ok 15685 prefer-const valid let a; function foo() { bar(++a); } ok 15686 prefer-const valid let id;\u000afunction foo() {\u000a if (typeof id !== 'undefined') {\u000a return;\u000a }\u000a id = setInterval(() => {}, 250);\u000a}\u000afoo(); ok 15687 prefer-const valid /*exported a*/ let a; function init() { a = foo(); } ok 15688 prefer-const valid /*exported a*/ let a = 1 ok 15689 prefer-const valid let a; if (true) a = 0; foo(a); ok 15690 prefer-const valid \u000a (function (a) {\u000a let b;\u000a ({ a, b } = obj);\u000a })();\u000a ok 15691 prefer-const valid \u000a (function (a) {\u000a let b;\u000a ([ a, b ] = obj);\u000a })();\u000a ok 15692 prefer-const valid var a; { var b; ({ a, b } = obj); } ok 15693 prefer-const valid let a; { let b; ({ a, b } = obj); } ok 15694 prefer-const valid var a; { var b; ([ a, b ] = obj); } ok 15695 prefer-const valid let a; { let b; ([ a, b ] = obj); } ok 15696 prefer-const valid let x; { x = 0; foo(x); } ok 15697 prefer-const valid (function() { let x; { x = 0; foo(x); } })(); ok 15698 prefer-const valid let x; for (const a of [1,2,3]) { x = foo(); bar(x); } ok 15699 prefer-const valid (function() { let x; for (const a of [1,2,3]) { x = foo(); bar(x); } })(); ok 15700 prefer-const valid let x; for (x of array) { x; } ok 15701 prefer-const valid let {a, b} = obj; b = 0; ok 15702 prefer-const valid let a, b; ({a, b} = obj); b++; ok 15703 prefer-const valid let { name, ...otherStuff } = obj; otherStuff = {}; ok 15704 prefer-const valid let { name, ...otherStuff } = obj; otherStuff = {}; ok 15705 prefer-const valid let predicate; [typeNode.returnType, predicate] = foo(); ok 15706 prefer-const valid let predicate; [typeNode.returnType, ...predicate] = foo(); ok 15707 prefer-const valid let predicate; [typeNode.returnType,, predicate] = foo(); ok 15708 prefer-const valid let predicate; [typeNode.returnType=5, predicate] = foo(); ok 15709 prefer-const valid let predicate; [[typeNode.returnType=5], predicate] = foo(); ok 15710 prefer-const valid let predicate; [[typeNode.returnType, predicate]] = foo(); ok 15711 prefer-const valid let predicate; [typeNode.returnType, [predicate]] = foo(); ok 15712 prefer-const valid let predicate; [, [typeNode.returnType, predicate]] = foo(); ok 15713 prefer-const valid let predicate; [, {foo:typeNode.returnType, predicate}] = foo(); ok 15714 prefer-const valid let predicate; [, {foo:typeNode.returnType, ...predicate}] = foo(); ok 15715 prefer-const valid let a; const b = {}; ({ a, c: b.c } = func()); ok 15716 prefer-const valid let x; function foo() { bar(x); } x = 0; ok 15717 prefer-const valid const x = [1,2]; let y; [,y] = x; y = 0; ok 15718 prefer-const valid const x = [1,2,3]; let y, z; [y,,z] = x; y = 0; z = 0; ok 15719 prefer-const invalid let x = 1; foo(x); ok 15720 prefer-const invalid for (let i in [1,2,3]) { foo(i); } ok 15721 prefer-const invalid for (let x of [1,2,3]) { foo(x); } ok 15722 prefer-const invalid let [x = -1, y] = [1,2]; y = 0; ok 15723 prefer-const invalid let {a: x = -1, b: y} = {a:1,b:2}; y = 0; ok 15724 prefer-const invalid (function() { let x = 1; foo(x); })(); ok 15725 prefer-const invalid (function() { for (let i in [1,2,3]) { foo(i); } })(); ok 15726 prefer-const invalid (function() { for (let x of [1,2,3]) { foo(x); } })(); ok 15727 prefer-const invalid (function() { let [x = -1, y] = [1,2]; y = 0; })(); ok 15728 prefer-const invalid let f = (function() { let g = x; })(); f = 1; ok 15729 prefer-const invalid (function() { let {a: x = -1, b: y} = {a:1,b:2}; y = 0; })(); ok 15730 prefer-const invalid let x = 0; { let x = 1; foo(x); } x = 0; ok 15731 prefer-const invalid for (let i = 0; i < 10; ++i) { let x = 1; foo(x); } ok 15732 prefer-const invalid for (let i in [1,2,3]) { let x = 1; foo(x); } ok 15733 prefer-const invalid var foo = function() {\u000a for (const b of c) {\u000a let a;\u000a a = 1;\u000a }\u000a}; ok 15734 prefer-const invalid var foo = function() {\u000a for (const b of c) {\u000a let a;\u000a ({a} = 1);\u000a }\u000a}; ok 15735 prefer-const invalid let x; x = 0; ok 15736 prefer-const invalid switch (a) { case 0: let x; x = 0; } ok 15737 prefer-const invalid (function() { let x; x = 1; })(); ok 15738 prefer-const invalid let {a = 0, b} = obj; b = 0; foo(a, b); ok 15739 prefer-const invalid let {a: {b, c}} = {a: {b: 1, c: 2}}; b = 3; ok 15740 prefer-const invalid let {a: {b, c}} = {a: {b: 1, c: 2}} ok 15741 prefer-const invalid let a, b; ({a = 0, b} = obj); b = 0; foo(a, b); ok 15742 prefer-const invalid let {a = 0, b} = obj; foo(a, b); ok 15743 prefer-const invalid let [a] = [1] ok 15744 prefer-const invalid let {a} = obj ok 15745 prefer-const invalid let a, b; ({a = 0, b} = obj); foo(a, b); ok 15746 prefer-const invalid let {a = 0, b} = obj, c = a; b = a; ok 15747 prefer-const invalid let {a = 0, b} = obj, c = a; b = a; ok 15748 prefer-const invalid let { name, ...otherStuff } = obj; otherStuff = {}; ok 15749 prefer-const invalid let { name, ...otherStuff } = obj; otherStuff = {}; ok 15750 prefer-const invalid let x; function foo() { bar(x); } x = 0; ok 15751 prefer-const invalid /*eslint use-x:error*/ let x = 1 ok 15752 prefer-const invalid /*eslint use-x:error*/ { let x = 1 } ok 15753 prefer-const invalid let { foo, bar } = baz; ok 15754 prefer-const invalid const x = [1,2]; let [,y] = x; ok 15755 prefer-const invalid const x = [1,2,3]; let [y,,z] = x; ok 15756 prefer-const invalid let predicate; [, {foo:returnType, predicate}] = foo(); ok 15757 prefer-const invalid let predicate; [, {foo:returnType, predicate}, ...bar ] = foo(); ok 15758 prefer-const invalid let predicate; [, {foo:returnType, ...predicate} ] = foo(); ok 15759 prefer-const invalid let x = 'x', y = 'y'; ok 15760 prefer-const invalid let x = 'x', y = 'y'; x = 1 ok 15761 prefer-const invalid let x = 1, y = 'y'; let z = 1; ok 15762 prefer-const invalid let { a, b, c} = obj; let { x, y, z} = anotherObj; x = 2; ok 15763 prefer-const invalid let x = 'x', y = 'y'; function someFunc() { let a = 1, b = 2; foo(a, b) } ok 15764 prefer-const invalid let someFunc = () => { let a = 1, b = 2; foo(a, b) } ok 15765 prefer-const invalid let {a, b} = c, d; ok 15766 prefer-const invalid let {a, b, c} = {}, e, f; ok 15767 prefer-destructuring valid var [foo] = array; ok 15768 prefer-destructuring valid var { foo } = object; ok 15769 prefer-destructuring valid var foo; ok 15770 prefer-destructuring valid var foo = object.bar; ok 15771 prefer-destructuring valid var foo = object.bar; ok 15772 prefer-destructuring valid var foo = object.bar; ok 15773 prefer-destructuring valid var foo = object.bar; ok 15774 prefer-destructuring valid var foo = object['bar']; ok 15775 prefer-destructuring valid var foo = object[bar]; ok 15776 prefer-destructuring valid var { bar: foo } = object; ok 15777 prefer-destructuring valid var { bar: foo } = object; ok 15778 prefer-destructuring valid var { [bar]: foo } = object; ok 15779 prefer-destructuring valid var { [bar]: foo } = object; ok 15780 prefer-destructuring valid var foo = array[0]; ok 15781 prefer-destructuring valid var foo = array[0]; ok 15782 prefer-destructuring valid var foo = object.foo; ok 15783 prefer-destructuring valid var foo = object['foo']; ok 15784 prefer-destructuring valid ({ foo } = object); ok 15785 prefer-destructuring valid var foo = array[0]; ok 15786 prefer-destructuring valid var foo = array[0]; ok 15787 prefer-destructuring valid [foo] = array; ok 15788 prefer-destructuring valid foo += array[0] ok 15789 prefer-destructuring valid foo += bar.foo ok 15790 prefer-destructuring valid foo = object.foo; ok 15791 prefer-destructuring valid foo = object.foo; ok 15792 prefer-destructuring valid foo = array[0]; ok 15793 prefer-destructuring valid foo = array[0]; ok 15794 prefer-destructuring valid foo = array[0]; ok 15795 prefer-destructuring valid var foo = array[0]; ok 15796 prefer-destructuring valid foo = object.foo; ok 15797 prefer-destructuring valid var foo = object.foo; ok 15798 prefer-destructuring valid class Foo extends Bar { static foo() {var foo = super.foo} } ok 15799 prefer-destructuring valid foo = bar[foo]; ok 15800 prefer-destructuring valid var foo = bar[foo]; ok 15801 prefer-destructuring valid var {foo: {bar}} = object; ok 15802 prefer-destructuring valid var {bar} = object.foo; ok 15803 prefer-destructuring invalid var foo = array[0]; ok 15804 prefer-destructuring invalid foo = array[0]; ok 15805 prefer-destructuring invalid var foo = object.foo; ok 15806 prefer-destructuring invalid var foo = object.bar.foo; ok 15807 prefer-destructuring invalid var foobar = object.bar; ok 15808 prefer-destructuring invalid var foobar = object.bar; ok 15809 prefer-destructuring invalid var foo = object[bar]; ok 15810 prefer-destructuring invalid var foo = object[bar]; ok 15811 prefer-destructuring invalid var foo = object['foo']; ok 15812 prefer-destructuring invalid foo = object.foo; ok 15813 prefer-destructuring invalid foo = object['foo']; ok 15814 prefer-destructuring invalid var foo = array[0]; ok 15815 prefer-destructuring invalid foo = array[0]; ok 15816 prefer-destructuring invalid var foo = array[0]; ok 15817 prefer-destructuring invalid var foo = array[0]; ok 15818 prefer-destructuring invalid foo = array[0]; ok 15819 prefer-destructuring invalid foo = object.foo; ok 15820 prefer-destructuring invalid class Foo extends Bar { static foo() {var bar = super.foo.bar} } ok 15821 prefer-named-capture-group valid /normal_regex/ ok 15822 prefer-named-capture-group valid /(?:[0-9]{4})/ ok 15823 prefer-named-capture-group valid /(?[0-9]{4})/ ok 15824 prefer-named-capture-group valid /\u{1F680}/u ok 15825 prefer-named-capture-group valid new RegExp() ok 15826 prefer-named-capture-group valid new RegExp(foo) ok 15827 prefer-named-capture-group valid new RegExp('') ok 15828 prefer-named-capture-group valid new RegExp('(?[0-9]{4})') ok 15829 prefer-named-capture-group valid RegExp() ok 15830 prefer-named-capture-group valid RegExp(foo) ok 15831 prefer-named-capture-group valid RegExp('') ok 15832 prefer-named-capture-group valid RegExp('(?[0-9]{4})') ok 15833 prefer-named-capture-group valid RegExp('(') ok 15834 prefer-named-capture-group valid RegExp('\\u{1F680}', 'u') ok 15835 prefer-named-capture-group invalid /([0-9]{4})/ ok 15836 prefer-named-capture-group invalid new RegExp('([0-9]{4})') ok 15837 prefer-named-capture-group invalid RegExp('([0-9]{4})') ok 15838 prefer-named-capture-group invalid /([0-9]{4})-(\w{5})/ ok 15839 prefer-numeric-literals valid parseInt(1); ok 15840 prefer-numeric-literals valid parseInt(1, 3); ok 15841 prefer-numeric-literals valid Number.parseInt(1); ok 15842 prefer-numeric-literals valid Number.parseInt(1, 3); ok 15843 prefer-numeric-literals valid 0b111110111 === 503; ok 15844 prefer-numeric-literals valid 0o767 === 503; ok 15845 prefer-numeric-literals valid 0x1F7 === 503; ok 15846 prefer-numeric-literals valid a[parseInt](1,2); ok 15847 prefer-numeric-literals valid parseInt(foo); ok 15848 prefer-numeric-literals valid parseInt(foo, 2); ok 15849 prefer-numeric-literals valid Number.parseInt(foo); ok 15850 prefer-numeric-literals valid Number.parseInt(foo, 2); ok 15851 prefer-numeric-literals invalid parseInt("111110111", 2) === 503; ok 15852 prefer-numeric-literals invalid parseInt("767", 8) === 503; ok 15853 prefer-numeric-literals invalid parseInt("1F7", 16) === 255; ok 15854 prefer-numeric-literals invalid Number.parseInt("111110111", 2) === 503; ok 15855 prefer-numeric-literals invalid Number.parseInt("767", 8) === 503; ok 15856 prefer-numeric-literals invalid Number.parseInt("1F7", 16) === 255; ok 15857 prefer-numeric-literals invalid parseInt('7999', 8); ok 15858 prefer-numeric-literals invalid parseInt('1234', 2); ok 15859 prefer-numeric-literals invalid parseInt('1234.5', 8); ok 15860 prefer-numeric-literals invalid parseInt('1️⃣3️⃣3️⃣7️⃣', 16); ok 15861 prefer-numeric-literals invalid Number.parseInt('7999', 8); ok 15862 prefer-numeric-literals invalid Number.parseInt('1234', 2); ok 15863 prefer-numeric-literals invalid Number.parseInt('1234.5', 8); ok 15864 prefer-numeric-literals invalid Number.parseInt('1️⃣3️⃣3️⃣7️⃣', 16); ok 15865 prefer-object-spread valid Object.assign() ok 15866 prefer-object-spread valid let a = Object.assign(a, b) ok 15867 prefer-object-spread valid Object.assign(a, b) ok 15868 prefer-object-spread valid let a = Object.assign(b, { c: 1 }) ok 15869 prefer-object-spread valid const bar = { ...foo } ok 15870 prefer-object-spread valid Object.assign(...foo) ok 15871 prefer-object-spread valid Object.assign(foo, { bar: baz }) ok 15872 prefer-object-spread valid Object.assign({}, ...objects) ok 15873 prefer-object-spread valid foo({ foo: 'bar' }) ok 15874 prefer-object-spread valid \u000a const Object = {};\u000a Object.assign({}, foo);\u000a ok 15875 prefer-object-spread valid \u000a Object = {};\u000a Object.assign({}, foo);\u000a ok 15876 prefer-object-spread valid \u000a const Object = {};\u000a Object.assign({ foo: 'bar' });\u000a ok 15877 prefer-object-spread valid \u000a Object = {};\u000a Object.assign({ foo: 'bar' });\u000a ok 15878 prefer-object-spread valid \u000a const Object = require('foo');\u000a Object.assign({ foo: 'bar' });\u000a ok 15879 prefer-object-spread valid \u000a import Object from 'foo';\u000a Object.assign({ foo: 'bar' });\u000a ok 15880 prefer-object-spread valid \u000a import { Something as Object } from 'foo';\u000a Object.assign({ foo: 'bar' });\u000a ok 15881 prefer-object-spread valid \u000a import { Object, Array } from 'globals';\u000a Object.assign({ foo: 'bar' });\u000a ok 15882 prefer-object-spread invalid Object.assign({}, foo) ok 15883 prefer-object-spread invalid Object.assign({}, { foo: 'bar' }) ok 15884 prefer-object-spread invalid Object.assign({}, baz, { foo: 'bar' }) ok 15885 prefer-object-spread invalid Object.assign({}, { foo: 'bar', baz: 'foo' }) ok 15886 prefer-object-spread invalid Object.assign({ foo: 'bar' }, baz) ok 15887 prefer-object-spread invalid Object.assign({ foo: 'bar' }, cats, dogs, trees, birds) ok 15888 prefer-object-spread invalid Object.assign({ foo: 'bar' }, Object.assign({ bar: 'foo' }, baz)) ok 15889 prefer-object-spread invalid Object.assign({ foo: 'bar' }, Object.assign({ bar: 'foo' }, Object.assign({}, { superNested: 'butwhy' }))) ok 15890 prefer-object-spread invalid Object.assign({foo: 'bar', ...bar}, baz) ok 15891 prefer-object-spread invalid Object.assign({}, { foo, bar, baz }) ok 15892 prefer-object-spread invalid Object.assign({}, { [bar]: 'foo' }) ok 15893 prefer-object-spread invalid Object.assign({ ...bar }, { ...baz }) ok 15894 prefer-object-spread invalid Object.assign({ ...bar }, {\u000a // this is a bar\u000a foo: 'bar',\u000a baz: "cats"\u000a }) ok 15895 prefer-object-spread invalid Object.assign({\u000a boo: "lol",\u000a // I'm a comment\u000a dog: "cat"\u000a }, {\u000a // this is a bar\u000a foo: 'bar',\u000a baz: "cats"\u000a }) ok 15896 prefer-object-spread invalid const test = Object.assign({ ...bar }, {\u000a weird\u000a }) ok 15897 prefer-object-spread invalid const test = Object.assign({ ...bar }, {\u000a foo: 'bar', // inline comment\u000a baz: "cats"\u000a }) ok 15898 prefer-object-spread invalid const test = Object.assign({ ...bar }, {\u000a /**\u000a * foo\u000a */\u000a foo: 'bar',\u000a baz: "cats"\u000a }) ok 15899 prefer-object-spread invalid Object.assign({}) ok 15900 prefer-object-spread invalid Object.assign({ foo: bar }) ok 15901 prefer-object-spread invalid \u000a const foo = 'bar';\u000a Object.assign({ foo: bar })\u000a ok 15902 prefer-object-spread invalid \u000a foo = 'bar';\u000a Object.assign({ foo: bar })\u000a ok 15903 prefer-object-spread invalid let a = Object.assign({}) ok 15904 prefer-object-spread invalid let a = Object.assign({}, a) ok 15905 prefer-object-spread invalid let a = Object.assign({ a: 1 }, b) ok 15906 prefer-object-spread invalid Object.assign( {}, a, b, ) ok 15907 prefer-object-spread invalid Object.assign({}, a ? b : {}, b => c, a = 2) ok 15908 prefer-object-spread invalid \u000a const someVar = 'foo';\u000a Object.assign({}, a ? b : {}, b => c, a = 2)\u000a ok 15909 prefer-object-spread invalid \u000a someVar = 'foo';\u000a Object.assign({}, a ? b : {}, b => c, a = 2)\u000a ok 15910 prefer-object-spread invalid [1, 2, Object.assign({}, a)] ok 15911 prefer-object-spread invalid const foo = Object.assign({}, a) ok 15912 prefer-object-spread invalid function foo() { return Object.assign({}, a) } ok 15913 prefer-object-spread invalid foo(Object.assign({}, a)); ok 15914 prefer-object-spread invalid const x = { foo: 'bar', baz: Object.assign({}, a) } ok 15915 prefer-object-spread invalid \u000a import Foo from 'foo';\u000a Object.assign({ foo: Foo });\u000a ok 15916 prefer-object-spread invalid \u000a import Foo from 'foo';\u000a Object.assign({}, Foo);\u000a ok 15917 prefer-object-spread invalid \u000a const Foo = require('foo');\u000a Object.assign({ foo: Foo });\u000a ok 15918 prefer-object-spread invalid \u000a import { Something as somethingelse } from 'foo';\u000a Object.assign({}, somethingelse);\u000a ok 15919 prefer-object-spread invalid \u000a import { foo } from 'foo';\u000a Object.assign({ foo: Foo });\u000a ok 15920 prefer-object-spread invalid \u000a const Foo = require('foo');\u000a Object.assign({}, Foo);\u000a ok 15921 prefer-object-spread invalid \u000a const actions = Object.assign(\u000a {\u000a onChangeInput: this.handleChangeInput,\u000a },\u000a this.props.actions\u000a );\u000a ok 15922 prefer-object-spread invalid \u000a const actions = Object.assign(\u000a {\u000a onChangeInput: this.handleChangeInput, //\u000a },\u000a this.props.actions\u000a );\u000a ok 15923 prefer-object-spread invalid \u000a const actions = Object.assign(\u000a {\u000a onChangeInput: this.handleChangeInput //\u000a },\u000a this.props.actions\u000a );\u000a ok 15924 prefer-object-spread invalid \u000a const actions = Object.assign(\u000a (\u000a {\u000a onChangeInput: this.handleChangeInput\u000a }\u000a ),\u000a (\u000a this.props.actions\u000a )\u000a );\u000a ok 15925 prefer-object-spread invalid \u000a eventData = Object.assign({}, eventData, { outsideLocality: `${originLocality} - ${destinationLocality}` })\u000a ok 15926 prefer-object-spread invalid Object.assign({ }); ok 15927 prefer-object-spread invalid Object.assign({\u000a}); ok 15928 prefer-promise-reject-errors valid Promise.resolve(5) ok 15929 prefer-promise-reject-errors valid Foo.reject(5) ok 15930 prefer-promise-reject-errors valid Promise.reject(foo) ok 15931 prefer-promise-reject-errors valid Promise.reject(foo.bar) ok 15932 prefer-promise-reject-errors valid Promise.reject(foo.bar()) ok 15933 prefer-promise-reject-errors valid Promise.reject(new Error()) ok 15934 prefer-promise-reject-errors valid Promise.reject(new TypeError) ok 15935 prefer-promise-reject-errors valid Promise.reject(new Error('foo')) ok 15936 prefer-promise-reject-errors valid new Foo((resolve, reject) => reject(5)) ok 15937 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { return function(reject) { reject(5) } }) ok 15938 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { if (foo) { const reject = somethingElse; reject(5) } }) ok 15939 prefer-promise-reject-errors valid new Promise(function(resolve, {apply}) { apply(5) }) ok 15940 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { resolve(5, reject) }) ok 15941 prefer-promise-reject-errors valid async function foo() { Promise.reject(await foo); } ok 15942 prefer-promise-reject-errors valid Promise.reject() ok 15943 prefer-promise-reject-errors valid new Promise(function(resolve, reject) { reject() }) ok 15944 prefer-promise-reject-errors invalid Promise.reject(5) ok 15945 prefer-promise-reject-errors invalid Promise.reject('foo') ok 15946 prefer-promise-reject-errors invalid Promise.reject(`foo`) ok 15947 prefer-promise-reject-errors invalid Promise.reject(!foo) ok 15948 prefer-promise-reject-errors invalid Promise.reject(void foo) ok 15949 prefer-promise-reject-errors invalid Promise.reject() ok 15950 prefer-promise-reject-errors invalid Promise.reject(undefined) ok 15951 prefer-promise-reject-errors invalid Promise.reject({ foo: 1 }) ok 15952 prefer-promise-reject-errors invalid Promise.reject([1, 2, 3]) ok 15953 prefer-promise-reject-errors invalid Promise.reject() ok 15954 prefer-promise-reject-errors invalid new Promise(function(resolve, reject) { reject() }) ok 15955 prefer-promise-reject-errors invalid Promise.reject(undefined) ok 15956 prefer-promise-reject-errors invalid Promise.reject('foo', somethingElse) ok 15957 prefer-promise-reject-errors invalid new Promise(function(resolve, reject) { reject(5) }) ok 15958 prefer-promise-reject-errors invalid new Promise((resolve, reject) => { reject(5) }) ok 15959 prefer-promise-reject-errors invalid new Promise((resolve, reject) => reject(5)) ok 15960 prefer-promise-reject-errors invalid new Promise((resolve, reject) => reject()) ok 15961 prefer-promise-reject-errors invalid new Promise(function(yes, no) { no(5) }) ok 15962 prefer-promise-reject-errors invalid \u000a new Promise((resolve, reject) => {\u000a fs.readFile('foo.txt', (err, file) => {\u000a if (err) reject('File not found')\u000a else resolve(file)\u000a })\u000a })\u000a ok 15963 prefer-promise-reject-errors invalid new Promise(({foo, bar, baz}, reject) => reject(5)) ok 15964 prefer-promise-reject-errors invalid new Promise(function(reject, reject) { reject(5) }) ok 15965 prefer-promise-reject-errors invalid new Promise(function(foo, arguments) { arguments(5) }) ok 15966 prefer-promise-reject-errors invalid new Promise((foo, arguments) => arguments(5)) ok 15967 prefer-promise-reject-errors invalid new Promise(function({}, reject) { reject(5) }) ok 15968 prefer-promise-reject-errors invalid new Promise(({}, reject) => reject(5)) ok 15969 prefer-promise-reject-errors invalid new Promise((resolve, reject, somethingElse = reject(5)) => {}) ok 15970 prefer-reflect valid Reflect.apply(function(){}, null, 1, 2); ok 15971 prefer-reflect valid Reflect.apply(function(){}, null, 1, 2); ok 15972 prefer-reflect valid (function(){}).apply(null, [1, 2]); ok 15973 prefer-reflect valid (function(){}).call(null, 1, 2); ok 15974 prefer-reflect valid Reflect.defineProperty({}, 'foo', {value: 1}) ok 15975 prefer-reflect valid Reflect.defineProperty({}, 'foo', {value: 1}) ok 15976 prefer-reflect valid Object.defineProperty({}, 'foo', {value: 1}) ok 15977 prefer-reflect valid Reflect.getOwnPropertyDescriptor({}, 'foo'); ok 15978 prefer-reflect valid Reflect.getOwnPropertyDescriptor({}, 'foo'); ok 15979 prefer-reflect valid Object.getOwnPropertyDescriptor({}, 'foo'); ok 15980 prefer-reflect valid Reflect.getPrototypeOf({}); ok 15981 prefer-reflect valid Reflect.getPrototypeOf({}); ok 15982 prefer-reflect valid Object.getPrototypeOf({}); ok 15983 prefer-reflect valid Reflect.setPrototypeOf({}, Object.prototype); ok 15984 prefer-reflect valid Reflect.setPrototypeOf({}, Object.prototype); ok 15985 prefer-reflect valid Object.setPrototypeOf({}, Object.prototype); ok 15986 prefer-reflect valid Reflect.isExtensible({}); ok 15987 prefer-reflect valid Reflect.isExtensible({}); ok 15988 prefer-reflect valid Object.isExtensible({}); ok 15989 prefer-reflect valid Reflect.getOwnPropertyNames({}); ok 15990 prefer-reflect valid Reflect.getOwnPropertyNames({}); ok 15991 prefer-reflect valid Object.getOwnPropertyNames({}); ok 15992 prefer-reflect valid Reflect.preventExtensions({}); ok 15993 prefer-reflect valid Reflect.preventExtensions({}); ok 15994 prefer-reflect valid Object.preventExtensions({}); ok 15995 prefer-reflect valid Reflect.deleteProperty({}, 'foo'); ok 15996 prefer-reflect valid Reflect.deleteProperty({}, 'foo'); ok 15997 prefer-reflect valid delete foo; ok 15998 prefer-reflect valid delete ({}).foo ok 15999 prefer-reflect invalid (function(){}).apply(null, [1, 2]) ok 16000 prefer-reflect invalid (function(){}).apply(null, [1, 2]) ok 16001 prefer-reflect invalid (function(){}).call(null, 1, 2) ok 16002 prefer-reflect invalid (function(){}).call(null, 1, 2) ok 16003 prefer-reflect invalid Object.defineProperty({}, 'foo', { value: 1 }) ok 16004 prefer-reflect invalid Object.defineProperty({}, 'foo', { value: 1 }) ok 16005 prefer-reflect invalid Object.getOwnPropertyDescriptor({}, 'foo') ok 16006 prefer-reflect invalid Object.getOwnPropertyDescriptor({}, 'foo') ok 16007 prefer-reflect invalid Object.getPrototypeOf({}) ok 16008 prefer-reflect invalid Object.getPrototypeOf({}) ok 16009 prefer-reflect invalid Object.setPrototypeOf({}, Object.prototype) ok 16010 prefer-reflect invalid Object.setPrototypeOf({}, Object.prototype) ok 16011 prefer-reflect invalid Object.isExtensible({}) ok 16012 prefer-reflect invalid Object.isExtensible({}) ok 16013 prefer-reflect invalid Object.getOwnPropertyNames({}) ok 16014 prefer-reflect invalid Object.getOwnPropertyNames({}) ok 16015 prefer-reflect invalid Object.preventExtensions({}) ok 16016 prefer-reflect invalid Object.preventExtensions({}) ok 16017 prefer-reflect invalid delete ({}).foo ok 16018 prefer-reflect invalid delete ({}).foo ok 16019 prefer-regex-literals valid /abc/ ok 16020 prefer-regex-literals valid /abc/g ok 16021 prefer-regex-literals valid new RegExp(pattern) ok 16022 prefer-regex-literals valid RegExp(pattern, 'g') ok 16023 prefer-regex-literals valid new RegExp(f('a')) ok 16024 prefer-regex-literals valid RegExp(prefix + 'a') ok 16025 prefer-regex-literals valid new RegExp('a' + sufix) ok 16026 prefer-regex-literals valid RegExp(`a` + sufix); ok 16027 prefer-regex-literals valid new RegExp(String.raw`a` + sufix); ok 16028 prefer-regex-literals valid RegExp('a', flags) ok 16029 prefer-regex-literals valid RegExp('a', 'g' + flags) ok 16030 prefer-regex-literals valid new RegExp(String.raw`a`, flags); ok 16031 prefer-regex-literals valid RegExp(`${prefix}abc`) ok 16032 prefer-regex-literals valid new RegExp(`a${b}c`); ok 16033 prefer-regex-literals valid new RegExp(`a${''}c`); ok 16034 prefer-regex-literals valid new RegExp(String.raw`a${b}c`); ok 16035 prefer-regex-literals valid new RegExp(String.raw`a${''}c`); ok 16036 prefer-regex-literals valid new RegExp('a' + 'b') ok 16037 prefer-regex-literals valid RegExp(1) ok 16038 prefer-regex-literals valid new RegExp; ok 16039 prefer-regex-literals valid new RegExp(); ok 16040 prefer-regex-literals valid RegExp(); ok 16041 prefer-regex-literals valid new RegExp('a', 'g', 'b'); ok 16042 prefer-regex-literals valid RegExp('a', 'g', 'b'); ok 16043 prefer-regex-literals valid new RegExp(`a`, `g`, `b`); ok 16044 prefer-regex-literals valid RegExp(`a`, `g`, `b`); ok 16045 prefer-regex-literals valid new RegExp(String.raw`a`, String.raw`g`, String.raw`b`); ok 16046 prefer-regex-literals valid RegExp(String.raw`a`, String.raw`g`, String.raw`b`); ok 16047 prefer-regex-literals valid new RegExp(String`a`); ok 16048 prefer-regex-literals valid RegExp(raw`a`); ok 16049 prefer-regex-literals valid new RegExp(f(String.raw)`a`); ok 16050 prefer-regex-literals valid RegExp(string.raw`a`); ok 16051 prefer-regex-literals valid new RegExp(String.Raw`a`); ok 16052 prefer-regex-literals valid new RegExp(String[raw]`a`); ok 16053 prefer-regex-literals valid RegExp(String.raw.foo`a`); ok 16054 prefer-regex-literals valid new RegExp(String.foo.raw`a`); ok 16055 prefer-regex-literals valid RegExp(foo.String.raw`a`); ok 16056 prefer-regex-literals valid new RegExp(String.raw); ok 16057 prefer-regex-literals valid let String; new RegExp(String.raw`a`); ok 16058 prefer-regex-literals valid function foo() { var String; new RegExp(String.raw`a`); } ok 16059 prefer-regex-literals valid function foo(String) { RegExp(String.raw`a`); } ok 16060 prefer-regex-literals valid if (foo) { const String = bar; RegExp(String.raw`a`); } ok 16061 prefer-regex-literals valid /* globals String:off */ new RegExp(String.raw`a`); ok 16062 prefer-regex-literals valid RegExp('a', String.raw`g`); ok 16063 prefer-regex-literals valid new Regexp('abc'); ok 16064 prefer-regex-literals valid Regexp(`a`); ok 16065 prefer-regex-literals valid new Regexp(String.raw`a`); ok 16066 prefer-regex-literals valid let RegExp; new RegExp('a'); ok 16067 prefer-regex-literals valid function foo() { var RegExp; RegExp('a', 'g'); } ok 16068 prefer-regex-literals valid function foo(RegExp) { new RegExp(String.raw`a`); } ok 16069 prefer-regex-literals valid if (foo) { const RegExp = bar; RegExp('a'); } ok 16070 prefer-regex-literals valid /* globals RegExp:off */ new RegExp('a'); ok 16071 prefer-regex-literals valid RegExp('a'); ok 16072 prefer-regex-literals invalid new RegExp('abc'); ok 16073 prefer-regex-literals invalid RegExp('abc'); ok 16074 prefer-regex-literals invalid new RegExp('abc', 'g'); ok 16075 prefer-regex-literals invalid RegExp('abc', 'g'); ok 16076 prefer-regex-literals invalid new RegExp(`abc`); ok 16077 prefer-regex-literals invalid RegExp(`abc`); ok 16078 prefer-regex-literals invalid new RegExp(`abc`, `g`); ok 16079 prefer-regex-literals invalid RegExp(`abc`, `g`); ok 16080 prefer-regex-literals invalid new RegExp(String.raw`abc`); ok 16081 prefer-regex-literals invalid RegExp(String.raw`abc`); ok 16082 prefer-regex-literals invalid new RegExp(String.raw`abc`, String.raw`g`); ok 16083 prefer-regex-literals invalid RegExp(String.raw`abc`, String.raw`g`); ok 16084 prefer-regex-literals invalid new RegExp(String['raw']`a`); ok 16085 prefer-regex-literals invalid new RegExp(''); ok 16086 prefer-regex-literals invalid RegExp('', ''); ok 16087 prefer-regex-literals invalid new RegExp(String.raw``); ok 16088 prefer-regex-literals invalid new RegExp('a', `g`); ok 16089 prefer-regex-literals invalid RegExp(`a`, 'g'); ok 16090 prefer-regex-literals invalid RegExp(String.raw`a`, 'g'); ok 16091 prefer-regex-literals invalid new RegExp(String.raw`\d`, `g`); ok 16092 prefer-regex-literals invalid RegExp('a', String.raw`g`); ok 16093 prefer-rest-params valid arguments; ok 16094 prefer-rest-params valid function foo(arguments) { arguments; } ok 16095 prefer-rest-params valid function foo() { var arguments; arguments; } ok 16096 prefer-rest-params valid var foo = () => arguments; ok 16097 prefer-rest-params valid function foo(...args) { args; } ok 16098 prefer-rest-params valid function foo() { arguments.length; } ok 16099 prefer-rest-params valid function foo() { arguments.callee; } ok 16100 prefer-rest-params invalid function foo() { arguments; } ok 16101 prefer-rest-params invalid function foo() { arguments[0]; } ok 16102 prefer-rest-params invalid function foo() { arguments[1]; } ok 16103 prefer-rest-params invalid function foo() { arguments[Symbol.iterator]; } ok 16104 prefer-spread valid foo.apply(obj, args); ok 16105 prefer-spread valid obj.foo.apply(null, args); ok 16106 prefer-spread valid obj.foo.apply(otherObj, args); ok 16107 prefer-spread valid a.b(x, y).c.foo.apply(a.b(x, z).c, args); ok 16108 prefer-spread valid a.b.foo.apply(a.b.c, args); ok 16109 prefer-spread valid foo.apply(undefined, [1, 2]); ok 16110 prefer-spread valid foo.apply(null, [1, 2]); ok 16111 prefer-spread valid obj.foo.apply(obj, [1, 2]); ok 16112 prefer-spread valid var apply; foo[apply](null, args); ok 16113 prefer-spread valid foo.apply(); ok 16114 prefer-spread valid obj.foo.apply(); ok 16115 prefer-spread valid obj.foo.apply(obj, ...args) ok 16116 prefer-spread invalid foo.apply(undefined, args); ok 16117 prefer-spread invalid foo.apply(void 0, args); ok 16118 prefer-spread invalid foo.apply(null, args); ok 16119 prefer-spread invalid obj.foo.apply(obj, args); ok 16120 prefer-spread invalid a.b.c.foo.apply(a.b.c, args); ok 16121 prefer-spread invalid a.b(x, y).c.foo.apply(a.b(x, y).c, args); ok 16122 prefer-spread invalid [].concat.apply([ ], args); ok 16123 prefer-spread invalid [].concat.apply([\u000a/*empty*/\u000a], args); ok 16124 prefer-template valid 'use strict'; ok 16125 prefer-template valid var foo = 'foo' + '\0'; ok 16126 prefer-template valid var foo = 'bar'; ok 16127 prefer-template valid var foo = 'bar' + 'baz'; ok 16128 prefer-template valid var foo = foo + +'100'; ok 16129 prefer-template valid var foo = `bar`; ok 16130 prefer-template valid var foo = `hello, ${name}!`; ok 16131 prefer-template valid var foo = `foo` + `bar` + "hoge"; ok 16132 prefer-template valid var foo = `foo` +\u000a `bar` +\u000a "hoge"; ok 16133 prefer-template invalid var foo = 'hello, ' + name + '!'; ok 16134 prefer-template invalid var foo = bar + 'baz'; ok 16135 prefer-template invalid var foo = bar + `baz`; ok 16136 prefer-template invalid var foo = +100 + 'yen'; ok 16137 prefer-template invalid var foo = 'bar' + baz; ok 16138 prefer-template invalid var foo = '¥' + (n * 1000) + '-' ok 16139 prefer-template invalid var foo = 'aaa' + aaa; var bar = 'bbb' + bbb; ok 16140 prefer-template invalid var string = (number + 1) + 'px'; ok 16141 prefer-template invalid var foo = 'bar' + baz + 'qux'; ok 16142 prefer-template invalid var foo = '0 backslashes: ${bar}' + baz; ok 16143 prefer-template invalid var foo = '1 backslash: \${bar}' + baz; ok 16144 prefer-template invalid var foo = '2 backslashes: \\${bar}' + baz; ok 16145 prefer-template invalid var foo = '3 backslashes: \\\${bar}' + baz; ok 16146 prefer-template invalid var foo = bar + 'this is a backtick: `' + baz; ok 16147 prefer-template invalid var foo = bar + 'this is a backtick preceded by a backslash: \`' + baz; ok 16148 prefer-template invalid var foo = bar + 'this is a backtick preceded by two backslashes: \\`' + baz; ok 16149 prefer-template invalid var foo = bar + `${baz}foo`; ok 16150 prefer-template invalid var foo = 'favorites: ' + favorites.map(f => {\u000a return f.name;\u000a}) + ';'; ok 16151 prefer-template invalid var foo = bar + baz + 'qux'; ok 16152 prefer-template invalid var foo = 'favorites: ' +\u000a favorites.map(f => {\u000a return f.name;\u000a }) +\u000a';'; ok 16153 prefer-template invalid var foo = /* a */ 'bar' /* b */ + /* c */ baz /* d */ + 'qux' /* e */ ; ok 16154 prefer-template invalid var foo = bar + ('baz') + 'qux' + (boop); ok 16155 prefer-template invalid foo + 'unescapes an escaped single quote in a single-quoted string: \'' ok 16156 prefer-template invalid foo + "unescapes an escaped double quote in a double-quoted string: \"" ok 16157 prefer-template invalid foo + 'does not unescape an escaped double quote in a single-quoted string: \"' ok 16158 prefer-template invalid foo + "does not unescape an escaped single quote in a double-quoted string: \'" ok 16159 prefer-template invalid foo + 'handles unicode escapes correctly: \x27' ok 16160 prefer-template invalid foo + 'does not autofix octal escape sequence' + '\033' ok 16161 prefer-template invalid foo + '\n other text \033' ok 16162 prefer-template invalid foo + '\0\1' ok 16163 prefer-template invalid foo + '\08' ok 16164 prefer-template invalid foo + '\\033' ok 16165 prefer-template invalid foo + '\0' ok 16166 quote-props valid ({ '0': 0 }) ok 16167 quote-props valid ({ 'a': 0 }) ok 16168 quote-props valid ({ "a": 0 }) ok 16169 quote-props valid ({ 'null': 0 }) ok 16170 quote-props valid ({ 'true': 0 }) ok 16171 quote-props valid ({ 'a-b': 0 }) ok 16172 quote-props valid ({ 'if': 0 }) ok 16173 quote-props valid ({ '@': 0 }) ok 16174 quote-props valid ({ 'a': 0, b(){} }) ok 16175 quote-props valid ({ [x]: 0 }); ok 16176 quote-props valid ({ x }); ok 16177 quote-props valid ({ a: 0, b(){} }) ok 16178 quote-props valid ({ a: 0, [x]: 1 }) ok 16179 quote-props valid ({ a: 0, x }) ok 16180 quote-props valid ({ '@': 0, [x]: 1 }) ok 16181 quote-props valid ({ '@': 0, x }) ok 16182 quote-props valid ({ a: 0, b: 0 }) ok 16183 quote-props valid ({ a: 0, 0: 0 }) ok 16184 quote-props valid ({ a: 0, true: 0 }) ok 16185 quote-props valid ({ a: 0, null: 0 }) ok 16186 quote-props valid ({ a: 0, if: 0 }) ok 16187 quote-props valid ({ a: 0, while: 0 }) ok 16188 quote-props valid ({ a: 0, volatile: 0 }) ok 16189 quote-props valid ({ a: 0, '-b': 0 }) ok 16190 quote-props valid ({ a: 0, '@': 0 }) ok 16191 quote-props valid ({ a: 0, '0x0': 0 }) ok 16192 quote-props valid ({ ' 0': 0, '0x0': 0 }) ok 16193 quote-props valid ({ '0 ': 0 }) ok 16194 quote-props valid ({ 'hey//meh': 0 }) ok 16195 quote-props valid ({ 'hey/*meh': 0 }) ok 16196 quote-props valid ({ 'hey/*meh*/': 0 }) ok 16197 quote-props valid ({ 'a': 0, '-b': 0 }) ok 16198 quote-props valid ({ 'true': 0, 'b': 0 }) ok 16199 quote-props valid ({ null: 0, a: 0 }) ok 16200 quote-props valid ({ a: 0, b: 0 }) ok 16201 quote-props valid ({ 'a': 1, [x]: 0 }); ok 16202 quote-props valid ({ 'a': 1, x }); ok 16203 quote-props valid ({ a: 0, b: 0 }) ok 16204 quote-props valid ({ a: 0, null: 0 }) ok 16205 quote-props valid ({ 'a': 0, '-b': 0 }) ok 16206 quote-props valid ({ '@': 0, 'B': 0 }) ok 16207 quote-props valid ({ 'while': 0, 'B': 0 }) ok 16208 quote-props valid ({ '@': 0, 'B': 0 }) ok 16209 quote-props valid ({ '@': 1, [x]: 0 }); ok 16210 quote-props valid ({ '@': 1, x }); ok 16211 quote-props valid ({ a: 1, [x]: 0 }); ok 16212 quote-props valid ({ a: 1, x }); ok 16213 quote-props valid ({ a: 0, 'if': 0 }) ok 16214 quote-props valid ({ a: 0, 'while': 0 }) ok 16215 quote-props valid ({ a: 0, 'volatile': 0 }) ok 16216 quote-props valid ({'unnecessary': 1, 'if': 0}) ok 16217 quote-props valid ({'1': 1}) ok 16218 quote-props valid ({1: 1, x: 2}) ok 16219 quote-props valid ({1: 1, x: 2}) ok 16220 quote-props valid ({ ...x }) ok 16221 quote-props valid ({ ...x }) ok 16222 quote-props valid ({ ...x }) ok 16223 quote-props invalid ({ a: 0 }) ok 16224 quote-props invalid ({ 0: '0' }) ok 16225 quote-props invalid ({ 'a': 0 }) ok 16226 quote-props invalid ({ 'null': 0 }) ok 16227 quote-props invalid ({ 'true': 0 }) ok 16228 quote-props invalid ({ '0': 0 }) ok 16229 quote-props invalid ({ '-a': 0, b: 0 }) ok 16230 quote-props invalid ({ a: 0, 'b': 0 }) ok 16231 quote-props invalid ({ '-a': 0, b: 0 }) ok 16232 quote-props invalid ({ 'a': 0, 'b': 0 }) ok 16233 quote-props invalid ({ 'a': 0, [x]: 0 }) ok 16234 quote-props invalid ({ 'a': 0, x }) ok 16235 quote-props invalid ({ 'true': 0, 'null': 0 }) ok 16236 quote-props invalid ({ true: 0, 'null': 0 }) ok 16237 quote-props invalid ({ 'a': 0, 'b': 0 }) ok 16238 quote-props invalid ({ while: 0, b: 0 }) ok 16239 quote-props invalid ({ while: 0, 'b': 0 }) ok 16240 quote-props invalid ({ foo: 0, 'bar': 0 }) ok 16241 quote-props invalid ({\u000a /* a */ 'prop1' /* b */ : /* c */ value1 /* d */ ,\u000a /* e */ prop2 /* f */ : /* g */ value2 /* h */,\u000a /* i */ "prop3" /* j */ : /* k */ value3 /* l */\u000a}) ok 16242 quote-props invalid ({\u000a /* a */ "foo" /* b */ : /* c */ value1 /* d */ ,\u000a /* e */ "bar" /* f */ : /* g */ value2 /* h */,\u000a /* i */ "baz" /* j */ : /* k */ value3 /* l */\u000a}) ok 16243 quote-props invalid ({'if': 0}) ok 16244 quote-props invalid ({'synchronized': 0}) ok 16245 quote-props invalid ({while: 0}) ok 16246 quote-props invalid ({'unnecessary': 1, if: 0}) ok 16247 quote-props invalid ({1: 1}) ok 16248 quote-props invalid ({1: 1}) ok 16249 quote-props invalid ({0x123: 1}) ok 16250 quote-props invalid ({1e2: 1}) ok 16251 quote-props invalid ({5.: 1}) ok 16252 quotes valid var foo = "bar"; ok 16253 quotes valid var foo = 'bar'; ok 16254 quotes valid var foo = "bar"; ok 16255 quotes valid var foo = 1; ok 16256 quotes valid var foo = 1; ok 16257 quotes valid var foo = "'"; ok 16258 quotes valid var foo = '"'; ok 16259 quotes valid var foo = <>Hello world; ok 16260 quotes valid var foo = <>Hello world; ok 16261 quotes valid var foo = <>Hello world; ok 16262 quotes valid var foo = <>Hello world; ok 16263 quotes valid var foo =
Hello world
; ok 16264 quotes valid var foo =
; ok 16265 quotes valid var foo =
Hello world
; ok 16266 quotes valid var foo =
Hello world
; ok 16267 quotes valid var foo = `bar`; ok 16268 quotes valid var foo = `bar 'baz'`; ok 16269 quotes valid var foo = `bar "baz"`; ok 16270 quotes valid var foo = 1; ok 16271 quotes valid var foo = "a string containing `backtick` quotes"; ok 16272 quotes valid var foo =
; ok 16273 quotes valid var foo =
Hello world
; ok 16274 quotes valid var foo = `back\u000atick`; ok 16275 quotes valid var foo = `back\u000dtick`; ok 16276 quotes valid var foo = `back
tick`; ok 16277 quotes valid var foo = `back
tick`; ok 16278 quotes valid var foo = `back\\\u000atick`; ok 16279 quotes valid var foo = `back\\\\\u000atick`; ok 16280 quotes valid var foo = `\u000a`; ok 16281 quotes valid var foo = `back${x}tick`; ok 16282 quotes valid var foo = tag`backtick`; ok 16283 quotes valid var foo = `bar 'foo' baz` + 'bar'; ok 16284 quotes valid var foo = `bar 'foo' baz` + "bar"; ok 16285 quotes valid var foo = `bar 'foo' baz` + `bar`; ok 16286 quotes valid "use strict"; var foo = `backtick`; ok 16287 quotes valid "use strict"; 'use strong'; "use asm"; var foo = `backtick`; ok 16288 quotes valid function foo() { "use strict"; "use strong"; "use asm"; var foo = `backtick`; } ok 16289 quotes valid (function() { 'use strict'; 'use strong'; 'use asm'; var foo = `backtick`; })(); ok 16290 quotes valid (() => { "use strict"; "use strong"; "use asm"; var foo = `backtick`; })(); ok 16291 quotes valid import "a"; import 'b'; ok 16292 quotes valid import a from "a"; import b from 'b'; ok 16293 quotes valid export * from "a"; export * from 'b'; ok 16294 quotes valid var obj = {"key0": 0, 'key1': 1}; ok 16295 quotes valid class Foo { 'bar'(){} } ok 16296 quotes valid class Foo { static ''(){} } ok 16297 quotes invalid var foo = 'bar'; ok 16298 quotes invalid var foo = "bar"; ok 16299 quotes invalid var foo = `bar`; ok 16300 quotes invalid var foo = 'don\'t'; ok 16301 quotes invalid var msg = "Plugin '" + name + "' not found" ok 16302 quotes invalid var foo = 'bar'; ok 16303 quotes invalid var foo = `bar`; ok 16304 quotes invalid var foo = "bar"; ok 16305 quotes invalid var foo = 'bar'; ok 16306 quotes invalid var foo = '\\'; ok 16307 quotes invalid var foo = "bar"; ok 16308 quotes invalid var foo = 'bar'; ok 16309 quotes invalid var foo = 'bar'; ok 16310 quotes invalid var foo = 'b${x}a$r'; ok 16311 quotes invalid var foo = "bar"; ok 16312 quotes invalid var foo = "bar"; ok 16313 quotes invalid var foo = 'bar'; ok 16314 quotes invalid var foo = `backtick`; "use strict"; ok 16315 quotes invalid { "use strict"; var foo = `backtick`; } ok 16316 quotes invalid if (1) { "use strict"; var foo = `backtick`; } ok 16317 quotes invalid var obj = {["key0"]: 0, ['key1']: 1}; ok 16318 quotes invalid class Foo { ['a'](){} static ['b'](){} } ok 16319 quotes invalid
ok 16320 quotes invalid
ok 16321 quotes invalid
ok 16322 quotes invalid `use strict`; ok 16323 quotes invalid function foo() { `use strict`; foo(); } ok 16324 quotes invalid foo = function() { `use strict`; foo(); } ok 16325 quotes invalid () => { `use strict`; foo(); } ok 16326 quotes invalid () => { foo(); `use strict`; } ok 16327 quotes invalid foo(); `use strict`; ok 16328 quotes invalid var foo = `foo\nbar`; ok 16329 quotes invalid var foo = `foo\\u000abar`; ok 16330 quotes invalid var foo = `foo\\\\u000abar`; ok 16331 quotes invalid ```` ok 16332 quotes invalid var foo = "\1" ok 16333 quotes invalid var foo = '\1' ok 16334 quotes invalid var notoctal = '\0' ok 16335 quotes invalid var foo = '\1' ok 16336 quotes invalid var foo = "\1" ok 16337 quotes invalid var foo = '\01' ok 16338 quotes invalid var foo = '\0\1' ok 16339 quotes invalid var foo = '\08' ok 16340 quotes invalid var foo = 'prefix \33' ok 16341 quotes invalid var foo = 'prefix \75 sufix' ok 16342 radix valid parseInt("10", 10); ok 16343 radix valid parseInt("10", foo); ok 16344 radix valid Number.parseInt("10", foo); ok 16345 radix valid parseInt("10", 10); ok 16346 radix valid parseInt("10"); ok 16347 radix valid parseInt("10", 8); ok 16348 radix valid parseInt("10", foo); ok 16349 radix valid parseInt ok 16350 radix valid Number.foo(); ok 16351 radix valid Number[parseInt](); ok 16352 radix valid var parseInt; parseInt(); ok 16353 radix valid var parseInt; parseInt(foo); ok 16354 radix valid var parseInt; parseInt(foo, 10); ok 16355 radix valid var Number; Number.parseInt(); ok 16356 radix valid var Number; Number.parseInt(foo); ok 16357 radix valid var Number; Number.parseInt(foo, 10); ok 16358 radix invalid parseInt(); ok 16359 radix invalid parseInt(); ok 16360 radix invalid parseInt("10"); ok 16361 radix invalid parseInt("10", null); ok 16362 radix invalid parseInt("10", undefined); ok 16363 radix invalid parseInt("10", true); ok 16364 radix invalid parseInt("10", "foo"); ok 16365 radix invalid parseInt("10", "123"); ok 16366 radix invalid Number.parseInt(); ok 16367 radix invalid Number.parseInt(); ok 16368 radix invalid Number.parseInt("10"); ok 16369 radix invalid parseInt("10", 10); ok 16370 require-atomic-updates valid let foo; async function x() { foo += bar; } ok 16371 require-atomic-updates valid let foo; async function x() { foo = foo + bar; } ok 16372 require-atomic-updates valid let foo; async function x() { foo = await bar + foo; } ok 16373 require-atomic-updates valid async function x() { let foo; foo += await bar; } ok 16374 require-atomic-updates valid let foo; async function x() { foo = (await result)(foo); } ok 16375 require-atomic-updates valid let foo; async function x() { foo = bar(await something, foo) } ok 16376 require-atomic-updates valid function* x() { let foo; foo += yield bar; } ok 16377 require-atomic-updates valid const foo = {}; async function x() { foo.bar = await baz; } ok 16378 require-atomic-updates valid const foo = []; async function x() { foo[x] += 1; } ok 16379 require-atomic-updates valid let foo; function* x() { foo = bar + foo; } ok 16380 require-atomic-updates valid async function x() { let foo; bar(() => baz += 1); foo += await amount; } ok 16381 require-atomic-updates valid let foo; async function x() { foo = condition ? foo : await bar; } ok 16382 require-atomic-updates valid async function x() { let foo; bar(() => { let foo; blah(foo); }); foo += await result; } ok 16383 require-atomic-updates valid let foo; async function x() { foo = foo + 1; await bar; } ok 16384 require-atomic-updates valid \u000a async function foo() {\u000a if (1);\u000a if (2);\u000a if (3);\u000a if (4);\u000a if (5);\u000a if (6);\u000a if (7);\u000a if (8);\u000a if (9);\u000a if (10);\u000a if (11);\u000a if (12);\u000a if (13);\u000a if (14);\u000a if (15);\u000a if (16);\u000a if (17);\u000a if (18);\u000a if (19);\u000a if (20);\u000a }\u000a ok 16385 require-atomic-updates valid \u000a async function foo() {\u000a return [\u000a 1 ? a : b,\u000a 2 ? a : b,\u000a 3 ? a : b,\u000a 4 ? a : b,\u000a 5 ? a : b,\u000a 6 ? a : b,\u000a 7 ? a : b,\u000a 8 ? a : b,\u000a 9 ? a : b,\u000a 10 ? a : b,\u000a 11 ? a : b,\u000a 12 ? a : b,\u000a 13 ? a : b,\u000a 14 ? a : b,\u000a 15 ? a : b,\u000a 16 ? a : b,\u000a 17 ? a : b,\u000a 18 ? a : b,\u000a 19 ? a : b,\u000a 20 ? a : b\u000a ];\u000a }\u000a ok 16386 require-atomic-updates valid \u000a async function f() {\u000a let records\u000a records = await a.records\u000a g(() => { records })\u000a }\u000a ok 16387 require-atomic-updates valid \u000a async function f() {\u000a try {\u000a this.foo = doSomething();\u000a } catch (e) {\u000a this.foo = null;\u000a await doElse();\u000a }\u000a }\u000a ok 16388 require-atomic-updates valid \u000a async function f(foo) {\u000a let bar = await get(foo.id);\u000a bar.prop = foo.prop;\u000a }\u000a ok 16389 require-atomic-updates valid \u000a async function f(foo) {\u000a let bar = await get(foo.id);\u000a foo = bar.prop;\u000a }\u000a ok 16390 require-atomic-updates valid \u000a async function f() {\u000a let foo = {}\u000a let bar = await get(foo.id);\u000a foo.prop = bar.prop;\u000a }\u000a ok 16391 require-atomic-updates invalid let foo; async function x() { foo += await amount; } ok 16392 require-atomic-updates invalid if (1); let foo; async function x() { foo += await amount; } ok 16393 require-atomic-updates invalid let foo; async function x() { while (condition) { foo += await amount; } } ok 16394 require-atomic-updates invalid let foo; async function x() { foo = foo + await amount; } ok 16395 require-atomic-updates invalid let foo; async function x() { foo = foo + (bar ? baz : await amount); } ok 16396 require-atomic-updates invalid let foo; async function x() { foo = foo + (bar ? await amount : baz); } ok 16397 require-atomic-updates invalid let foo; async function x() { foo = condition ? foo + await amount : somethingElse; } ok 16398 require-atomic-updates invalid let foo; async function x() { foo = (condition ? foo : await bar) + await bar; } ok 16399 require-atomic-updates invalid let foo; async function x() { foo += bar + await amount; } ok 16400 require-atomic-updates invalid async function x() { let foo; bar(() => foo); foo += await amount; } ok 16401 require-atomic-updates invalid let foo; function* x() { foo += yield baz } ok 16402 require-atomic-updates invalid let foo; async function x() { foo = bar(foo, await something) } ok 16403 require-atomic-updates invalid const foo = {}; async function x() { foo.bar += await baz } ok 16404 require-atomic-updates invalid const foo = []; async function x() { foo[bar].baz += await result; } ok 16405 require-atomic-updates invalid let foo; async function* x() { foo = (yield foo) + await bar; } ok 16406 require-atomic-updates invalid let foo; async function x() { foo = foo + await result(foo); } ok 16407 require-atomic-updates invalid let foo; async function x() { foo = await result(foo, await somethingElse); } ok 16408 require-atomic-updates invalid function* x() { let foo; yield async function y() { foo += await bar; } } ok 16409 require-atomic-updates invalid let foo; async function* x() { foo = await foo + (yield bar); } ok 16410 require-atomic-updates invalid let foo; async function x() { foo = bar + await foo; } ok 16411 require-atomic-updates invalid let foo = {}; async function x() { foo[bar].baz = await (foo.bar += await foo[bar].baz) } ok 16412 require-atomic-updates invalid async function x() { foo += await bar; } ok 16413 require-atomic-updates invalid let foo = 0; async function x() { foo = (a ? b : foo) + await bar; if (baz); } ok 16414 require-atomic-updates invalid let foo = 0; async function x() { foo = (a ? b ? c ? d ? foo : e : f : g : h) + await bar; if (baz); } ok 16415 require-atomic-updates invalid \u000a async function f(foo) {\u000a let buz = await get(foo.id);\u000a foo.bar = buz.bar;\u000a }\u000a ok 16416 require-jsdoc valid var array = [1,2,3];\u000aarray.forEach(function() {}); ok 16417 require-jsdoc valid /**\u000a @class MyClass \u000a*/\u000afunction MyClass() {} ok 16418 require-jsdoc valid /**\u000a Function doing something\u000a*/\u000afunction myFunction() {} ok 16419 require-jsdoc valid /**\u000a Function doing something\u000a*/\u000avar myFunction = function() {}; ok 16420 require-jsdoc valid /**\u000a Function doing something\u000a*/\u000aObject.myFunction = function () {}; ok 16421 require-jsdoc valid var obj = { \u000a /**\u000a Function doing something\u000a*/\u000a myFunction: function () {} }; ok 16422 require-jsdoc valid /**\u000a @func myFunction \u000a*/\u000afunction myFunction() {} ok 16423 require-jsdoc valid /**\u000a @method myFunction\u000a*/\u000afunction myFunction() {} ok 16424 require-jsdoc valid /**\u000a @function myFunction\u000a*/\u000afunction myFunction() {} ok 16425 require-jsdoc valid /**\u000a @func myFunction \u000a*/\u000avar myFunction = function () {} ok 16426 require-jsdoc valid /**\u000a @method myFunction\u000a*/\u000avar myFunction = function () {} ok 16427 require-jsdoc valid /**\u000a @function myFunction\u000a*/\u000avar myFunction = function () {} ok 16428 require-jsdoc valid /**\u000a @func myFunction \u000a*/\u000aObject.myFunction = function() {} ok 16429 require-jsdoc valid /**\u000a @method myFunction\u000a*/\u000aObject.myFunction = function() {} ok 16430 require-jsdoc valid /**\u000a @function myFunction\u000a*/\u000aObject.myFunction = function() {} ok 16431 require-jsdoc valid (function(){})(); ok 16432 require-jsdoc valid var object = {\u000a/**\u000a @func myFunction - Some function \u000a*/\u000amyFunction: function() {} } ok 16433 require-jsdoc valid var object = {\u000a/**\u000a @method myFunction - Some function \u000a*/\u000amyFunction: function() {} } ok 16434 require-jsdoc valid var object = {\u000a/**\u000a @function myFunction - Some function \u000a*/\u000amyFunction: function() {} } ok 16435 require-jsdoc valid var array = [1,2,3];\u000aarray.filter(function() {}); ok 16436 require-jsdoc valid Object.keys(this.options.rules || {}).forEach(function(name) {}.bind(this)); ok 16437 require-jsdoc valid var object = { name: 'key'};\u000aObject.keys(object).forEach(function() {}) ok 16438 require-jsdoc valid function myFunction() {} ok 16439 require-jsdoc valid var myFunction = function() {} ok 16440 require-jsdoc valid /**\u000a * Description for A.\u000a */\u000aclass A {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16441 require-jsdoc valid /**\u000a * Description for A.\u000a */\u000aclass App extends Component {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16442 require-jsdoc valid /**\u000a * Description for A.\u000a */\u000aexport default class App extends Component {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16443 require-jsdoc valid /**\u000a * Description for A.\u000a */\u000aexport class App extends Component {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16444 require-jsdoc valid class A {\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16445 require-jsdoc valid /**\u000a Function doing something\u000a*/\u000avar myFunction = () => {} ok 16446 require-jsdoc valid /**\u000a Function doing something\u000a*/\u000avar myFunction = () => () => {} ok 16447 require-jsdoc valid setTimeout(() => {}, 10); ok 16448 require-jsdoc valid /**\u000aJSDoc Block\u000a*/\u000avar foo = function() {} ok 16449 require-jsdoc valid const foo = {/**\u000aJSDoc Block\u000a*/\u000abar() {}} ok 16450 require-jsdoc valid var foo = {/**\u000aJSDoc Block\u000a*/\u000abar: function() {}} ok 16451 require-jsdoc valid var foo = { [function() {}]: 1 }; ok 16452 require-jsdoc invalid function myFunction() {} ok 16453 require-jsdoc invalid /**\u000a * Description for A.\u000a */\u000aclass A {\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16454 require-jsdoc invalid class A {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16455 require-jsdoc invalid class A extends B {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16456 require-jsdoc invalid export class A extends B {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16457 require-jsdoc invalid export default class A extends B {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 16458 require-jsdoc invalid var myFunction = () => {} ok 16459 require-jsdoc invalid var myFunction = () => () => {} ok 16460 require-jsdoc invalid var foo = function() {} ok 16461 require-jsdoc invalid const foo = {bar() {}} ok 16462 require-jsdoc invalid var foo = {bar: function() {}} ok 16463 require-unicode-regexp valid /foo/u ok 16464 require-unicode-regexp valid /foo/gimuy ok 16465 require-unicode-regexp valid RegExp('', 'u') ok 16466 require-unicode-regexp valid new RegExp('', 'u') ok 16467 require-unicode-regexp valid RegExp('', 'gimuy') ok 16468 require-unicode-regexp valid new RegExp('', 'gimuy') ok 16469 require-unicode-regexp valid const flags = 'u'; new RegExp('', flags) ok 16470 require-unicode-regexp valid const flags = 'g'; new RegExp('', flags + 'u') ok 16471 require-unicode-regexp valid const flags = 'gimu'; new RegExp('foo', flags[3]) ok 16472 require-unicode-regexp valid new RegExp('', flags) ok 16473 require-unicode-regexp valid function f(flags) { return new RegExp('', flags) } ok 16474 require-unicode-regexp valid function f(RegExp) { return new RegExp('foo') } ok 16475 require-unicode-regexp invalid /foo/ ok 16476 require-unicode-regexp invalid /foo/gimy ok 16477 require-unicode-regexp invalid RegExp('foo') ok 16478 require-unicode-regexp invalid RegExp('foo', '') ok 16479 require-unicode-regexp invalid RegExp('foo', 'gimy') ok 16480 require-unicode-regexp invalid new RegExp('foo') ok 16481 require-unicode-regexp invalid new RegExp('foo', '') ok 16482 require-unicode-regexp invalid new RegExp('foo', 'gimy') ok 16483 require-unicode-regexp invalid const flags = 'gi'; new RegExp('foo', flags) ok 16484 require-unicode-regexp invalid const flags = 'gimu'; new RegExp('foo', flags[0]) ok 16485 require-unicode-regexp invalid new window.RegExp('foo') ok 16486 require-unicode-regexp invalid new global.RegExp('foo') ok 16487 require-yield valid function foo() { return 0; } ok 16488 require-yield valid function* foo() { yield 0; } ok 16489 require-yield valid function* foo() { } ok 16490 require-yield valid (function* foo() { yield 0; })(); ok 16491 require-yield valid (function* foo() { })(); ok 16492 require-yield valid var obj = { *foo() { yield 0; } }; ok 16493 require-yield valid var obj = { *foo() { } }; ok 16494 require-yield valid class A { *foo() { yield 0; } }; ok 16495 require-yield valid class A { *foo() { } }; ok 16496 require-yield invalid function* foo() { return 0; } ok 16497 require-yield invalid (function* foo() { return 0; })(); ok 16498 require-yield invalid var obj = { *foo() { return 0; } } ok 16499 require-yield invalid class A { *foo() { return 0; } } ok 16500 require-yield invalid function* foo() { function* bar() { yield 0; } } ok 16501 require-yield invalid function* foo() { function* bar() { return 0; } yield 0; } ok 16502 rest-spread-spacing valid fn(...args) ok 16503 rest-spread-spacing valid fn(...(args)) ok 16504 rest-spread-spacing valid fn(...( args )) ok 16505 rest-spread-spacing valid fn(...args) ok 16506 rest-spread-spacing valid fn(... args) ok 16507 rest-spread-spacing valid fn(...\u0009args) ok 16508 rest-spread-spacing valid fn(...\u000aargs) ok 16509 rest-spread-spacing valid [...arr, 4, 5, 6] ok 16510 rest-spread-spacing valid [...(arr), 4, 5, 6] ok 16511 rest-spread-spacing valid [...( arr ), 4, 5, 6] ok 16512 rest-spread-spacing valid [...arr, 4, 5, 6] ok 16513 rest-spread-spacing valid [... arr, 4, 5, 6] ok 16514 rest-spread-spacing valid [...\u0009arr, 4, 5, 6] ok 16515 rest-spread-spacing valid [...\u000aarr, 4, 5, 6] ok 16516 rest-spread-spacing valid let [a, b, ...arr] = [1, 2, 3, 4, 5]; ok 16517 rest-spread-spacing valid let [a, b, ...arr] = [1, 2, 3, 4, 5]; ok 16518 rest-spread-spacing valid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 16519 rest-spread-spacing valid let [a, b, ...\u0009arr] = [1, 2, 3, 4, 5]; ok 16520 rest-spread-spacing valid let [a, b, ...\u000aarr] = [1, 2, 3, 4, 5]; ok 16521 rest-spread-spacing valid let n = { x, y, ...z }; ok 16522 rest-spread-spacing valid let n = { x, y, ...(z) }; ok 16523 rest-spread-spacing valid let n = { x, y, ...( z ) }; ok 16524 rest-spread-spacing valid let n = { x, y, ...z }; ok 16525 rest-spread-spacing valid let n = { x, y, ... z }; ok 16526 rest-spread-spacing valid let n = { x, y, ...\u0009z }; ok 16527 rest-spread-spacing valid let n = { x, y, ...\u000az }; ok 16528 rest-spread-spacing valid let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16529 rest-spread-spacing valid let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16530 rest-spread-spacing valid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16531 rest-spread-spacing valid let { x, y, ...\u0009z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16532 rest-spread-spacing valid let { x, y, ...\u000az } = { x: 1, y: 2, a: 3, b: 4 }; ok 16533 rest-spread-spacing invalid fn(... args) ok 16534 rest-spread-spacing invalid fn(...\u0009args) ok 16535 rest-spread-spacing invalid fn(...\u000aargs) ok 16536 rest-spread-spacing invalid fn(... args) ok 16537 rest-spread-spacing invalid fn(...\u0009args) ok 16538 rest-spread-spacing invalid fn(...\u000aargs) ok 16539 rest-spread-spacing invalid fn(...args) ok 16540 rest-spread-spacing invalid fn(... (args)) ok 16541 rest-spread-spacing invalid fn(... ( args )) ok 16542 rest-spread-spacing invalid fn(...(args)) ok 16543 rest-spread-spacing invalid fn(...( args )) ok 16544 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 16545 rest-spread-spacing invalid [...\u0009arr, 4, 5, 6] ok 16546 rest-spread-spacing invalid [...\u000aarr, 4, 5, 6] ok 16547 rest-spread-spacing invalid [... arr, 4, 5, 6] ok 16548 rest-spread-spacing invalid [...\u0009arr, 4, 5, 6] ok 16549 rest-spread-spacing invalid [...\u000aarr, 4, 5, 6] ok 16550 rest-spread-spacing invalid [...arr, 4, 5, 6] ok 16551 rest-spread-spacing invalid [... (arr), 4, 5, 6] ok 16552 rest-spread-spacing invalid [... ( arr ), 4, 5, 6] ok 16553 rest-spread-spacing invalid [...(arr), 4, 5, 6] ok 16554 rest-spread-spacing invalid [...( arr ), 4, 5, 6] ok 16555 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 16556 rest-spread-spacing invalid let [a, b, ...\u0009arr] = [1, 2, 3, 4, 5]; ok 16557 rest-spread-spacing invalid let [a, b, ...\u000aarr] = [1, 2, 3, 4, 5]; ok 16558 rest-spread-spacing invalid let [a, b, ... arr] = [1, 2, 3, 4, 5]; ok 16559 rest-spread-spacing invalid let [a, b, ...\u0009arr] = [1, 2, 3, 4, 5]; ok 16560 rest-spread-spacing invalid let [a, b, ...\u000aarr] = [1, 2, 3, 4, 5]; ok 16561 rest-spread-spacing invalid let [a, b, ...arr] = [1, 2, 3, 4, 5]; ok 16562 rest-spread-spacing invalid let n = { x, y, ... z }; ok 16563 rest-spread-spacing invalid let n = { x, y, ...\u0009z }; ok 16564 rest-spread-spacing invalid let n = { x, y, ...\u000az }; ok 16565 rest-spread-spacing invalid let n = { x, y, ... z }; ok 16566 rest-spread-spacing invalid let n = { x, y, ...\u0009z }; ok 16567 rest-spread-spacing invalid let n = { x, y, ...\u000az }; ok 16568 rest-spread-spacing invalid let n = { x, y, ...z }; ok 16569 rest-spread-spacing invalid let n = { x, y, ... (z) }; ok 16570 rest-spread-spacing invalid let n = { x, y, ... ( z ) }; ok 16571 rest-spread-spacing invalid let n = { x, y, ...(z) }; ok 16572 rest-spread-spacing invalid let n = { x, y, ...( z ) }; ok 16573 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16574 rest-spread-spacing invalid let { x, y, ...\u0009z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16575 rest-spread-spacing invalid let { x, y, ...\u000az } = { x: 1, y: 2, a: 3, b: 4 }; ok 16576 rest-spread-spacing invalid let { x, y, ... z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16577 rest-spread-spacing invalid let { x, y, ...\u0009z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16578 rest-spread-spacing invalid let { x, y, ...\u000az } = { x: 1, y: 2, a: 3, b: 4 }; ok 16579 rest-spread-spacing invalid let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; ok 16580 semi-spacing valid var a = 'b'; ok 16581 semi-spacing valid var a = 'b ; c'; ok 16582 semi-spacing valid var a = 'b',\u000ac = 'd'; ok 16583 semi-spacing valid var a = function() {}; ok 16584 semi-spacing valid ;(function(){}()); ok 16585 semi-spacing valid var a = 'b'\u000a;(function(){}()) ok 16586 semi-spacing valid debugger\u000a;(function(){}()) ok 16587 semi-spacing valid while (true) { break; } ok 16588 semi-spacing valid while (true) { continue; } ok 16589 semi-spacing valid debugger; ok 16590 semi-spacing valid function foo() { return; } ok 16591 semi-spacing valid throw new Error('foo'); ok 16592 semi-spacing valid for (var i = 0; i < 10; i++) {} ok 16593 semi-spacing valid for (;;) {} ok 16594 semi-spacing valid var a = 'b' ; ok 16595 semi-spacing valid var a = 'b';c = 'd'; ok 16596 semi-spacing valid for (var i = 0 ;i < 10 ;i++) {} ok 16597 semi-spacing valid for (var i = 0 ; i < 10 ; i++) {} ok 16598 semi-spacing valid function foo(){return 2;} ok 16599 semi-spacing valid for(var i = 0; i < results.length;) {} ok 16600 semi-spacing valid function foo() { return 2; } ok 16601 semi-spacing valid for ( var i = 0;i < results.length; ) {} ok 16602 semi-spacing invalid var a = 'b' ; ok 16603 semi-spacing invalid var a = 'b',\u000ac = 'd' ; ok 16604 semi-spacing invalid var a = function() {} ; ok 16605 semi-spacing invalid var a = function() {\u000a} ; ok 16606 semi-spacing invalid /^a$/.test('b') ; ok 16607 semi-spacing invalid ;(function(){}()) ; ok 16608 semi-spacing invalid while (true) { break ; } ok 16609 semi-spacing invalid while (true) { continue ; } ok 16610 semi-spacing invalid debugger ; ok 16611 semi-spacing invalid function foo() { return ; } ok 16612 semi-spacing invalid throw new Error('foo') ; ok 16613 semi-spacing invalid for (var i = 0 ; i < 10 ; i++) {} ok 16614 semi-spacing invalid var a = 'b';c = 'd'; ok 16615 semi-spacing invalid var a = 'b'; ok 16616 semi-spacing invalid var a = 'b'; c = 'd'; ok 16617 semi-spacing invalid for (var i = 0;i < 10;i++) {} ok 16618 semi-spacing invalid for (var i = 0; i < 10; i++) {} ok 16619 semi-spacing invalid for (var i = 0; i < 10; i++) {} ok 16620 semi-spacing invalid import Foo from 'bar' ; ok 16621 semi-spacing invalid import * as foo from 'bar' ; ok 16622 semi-spacing invalid var foo = 0; export {foo} ; ok 16623 semi-spacing invalid export * from 'foo' ; ok 16624 semi-spacing invalid export default foo ; ok 16625 semi-style valid ; ok 16626 semi-style valid ;foo;bar;baz; ok 16627 semi-style valid foo;\u000abar; ok 16628 semi-style valid for(a;b;c); ok 16629 semi-style valid for(a;\u000ab;\u000ac); ok 16630 semi-style valid for((a\u000a);\u000a(b\u000a);\u000a(c)); ok 16631 semi-style valid if(a)foo;\u000abar ok 16632 semi-style valid ; ok 16633 semi-style valid ;foo;bar;baz; ok 16634 semi-style valid foo;\u000abar; ok 16635 semi-style valid for(a;b;c); ok 16636 semi-style valid for(a;\u000ab;\u000ac); ok 16637 semi-style valid for((a\u000a);\u000a(b\u000a);\u000a(c)); ok 16638 semi-style valid if(a)foo;\u000abar ok 16639 semi-style valid ; ok 16640 semi-style valid ;foo;bar;baz; ok 16641 semi-style valid foo\u000a;bar; ok 16642 semi-style valid for(a;b;c); ok 16643 semi-style valid for(a;\u000ab;\u000ac); ok 16644 semi-style valid for((a\u000a);\u000a(b\u000a);\u000a(c)); ok 16645 semi-style valid \u000a {\u000a ;\u000a }\u000a ok 16646 semi-style valid \u000a while (a)\u000a ;\u000a foo\u000a ok 16647 semi-style valid \u000a do\u000a ;\u000a while (a)\u000a ok 16648 semi-style valid \u000a do\u000a foo;\u000a while (a)\u000a ok 16649 semi-style valid \u000a if (a)\u000a foo;\u000a else\u000a bar\u000a ok 16650 semi-style valid \u000a if (a)\u000a foo\u000a ;bar\u000a ok 16651 semi-style valid \u000a {\u000a ;\u000a }\u000a ok 16652 semi-style valid \u000a switch (a) {\u000a case 1:\u000a ;foo\u000a }\u000a ok 16653 semi-style valid \u000a while (a)\u000a ;\u000a foo\u000a ok 16654 semi-style valid \u000a do\u000a ;\u000a while (a)\u000a ok 16655 semi-style invalid foo\u000a;bar ok 16656 semi-style invalid if(a)foo\u000a;bar ok 16657 semi-style invalid var foo\u000a;bar ok 16658 semi-style invalid foo\u000a;\u000abar ok 16659 semi-style invalid for(a\u000a;b;c)d ok 16660 semi-style invalid for(a;b\u000a;c)d ok 16661 semi-style invalid do;while(a)\u000a;b ok 16662 semi-style invalid foo\u000a;bar ok 16663 semi-style invalid if(a)foo\u000a;bar ok 16664 semi-style invalid var foo\u000a;bar ok 16665 semi-style invalid foo\u000a;\u000abar ok 16666 semi-style invalid for(a\u000a;b;c)d ok 16667 semi-style invalid for(a;b\u000a;c)d ok 16668 semi-style invalid foo()\u000a; ok 16669 semi-style invalid foo;\u000abar ok 16670 semi-style invalid if(a)foo;\u000abar ok 16671 semi-style invalid var foo;\u000abar ok 16672 semi-style invalid foo\u000a;\u000abar ok 16673 semi-style invalid for(a\u000a;b;c)d ok 16674 semi-style invalid for(a;b\u000a;c)d ok 16675 semi-style invalid foo\u000a;/**/bar ok 16676 semi-style invalid foo\u000a/**/;bar ok 16677 semi-style invalid foo;\u000a/**/bar ok 16678 semi-style invalid foo/**/;\u000abar ok 16679 semi valid var x = 5; ok 16680 semi valid var x =5, y; ok 16681 semi valid foo(); ok 16682 semi valid x = foo(); ok 16683 semi valid setTimeout(function() {foo = "bar"; }); ok 16684 semi valid setTimeout(function() {foo = "bar";}); ok 16685 semi valid for (var a in b){} ok 16686 semi valid for (var i;;){} ok 16687 semi valid if (true) {}\u000a;[global, extended].forEach(function(){}); ok 16688 semi valid throw new Error('foo'); ok 16689 semi valid throw new Error('foo') ok 16690 semi valid var x = 5 ok 16691 semi valid var x =5, y ok 16692 semi valid foo() ok 16693 semi valid debugger ok 16694 semi valid for (var a in b){} ok 16695 semi valid for (var i;;){} ok 16696 semi valid x = foo() ok 16697 semi valid if (true) {}\u000a;[global, extended].forEach(function(){}) ok 16698 semi valid (function bar() {})\u000a;(function foo(){}) ok 16699 semi valid ;/foo/.test('bar') ok 16700 semi valid ;+5 ok 16701 semi valid ;-foo() ok 16702 semi valid a++\u000ab++ ok 16703 semi valid a++; b++ ok 16704 semi valid for (let thing of {}) {\u000a console.log(thing);\u000a} ok 16705 semi valid do{}while(true) ok 16706 semi valid do{}while(true); ok 16707 semi valid if (foo) { bar() } ok 16708 semi valid if (foo) { bar(); baz() } ok 16709 semi valid class A { a() {} b() {} } ok 16710 semi valid var A = class { a() {} b() {} }; ok 16711 semi valid import theDefault, { named1, named2 } from 'src/mylib'; ok 16712 semi valid import theDefault, { named1, named2 } from 'src/mylib' ok 16713 semi valid export * from 'foo'; ok 16714 semi valid export { foo } from 'foo'; ok 16715 semi valid var foo = 0;export { foo }; ok 16716 semi valid export var foo; ok 16717 semi valid export function foo () { } ok 16718 semi valid export function* foo () { } ok 16719 semi valid export class Foo { } ok 16720 semi valid export let foo; ok 16721 semi valid export const FOO = 42; ok 16722 semi valid export default function() { } ok 16723 semi valid export default function* () { } ok 16724 semi valid export default class { } ok 16725 semi valid export default foo || bar; ok 16726 semi valid export default (foo) => foo.bar(); ok 16727 semi valid export default foo = 42; ok 16728 semi valid export default foo += 42; ok 16729 semi valid export * from 'foo' ok 16730 semi valid export { foo } from 'foo' ok 16731 semi valid var foo = 0; export { foo } ok 16732 semi valid export var foo ok 16733 semi valid export function foo () { } ok 16734 semi valid export function* foo () { } ok 16735 semi valid export class Foo { } ok 16736 semi valid export let foo ok 16737 semi valid export const FOO = 42 ok 16738 semi valid export default function() { } ok 16739 semi valid export default function* () { } ok 16740 semi valid export default class { } ok 16741 semi valid export default foo || bar ok 16742 semi valid export default (foo) => foo.bar() ok 16743 semi valid export default foo = 42 ok 16744 semi valid export default foo += 42 ok 16745 semi valid ++\u000afoo; ok 16746 semi valid var a = b;\u000a+ c ok 16747 semi valid var a = b;\u000a/foo/.test(c) ok 16748 semi valid var a = b;\u000a`foo` ok 16749 semi valid \u000a do; while(a);\u000a [1,2,3].forEach(doSomething)\u000a ok 16750 semi valid \u000a do; while(a)\u000a [1,2,3].forEach(doSomething)\u000a ok 16751 semi valid \u000a import a from "a";\u000a [1,2,3].forEach(doSomething)\u000a ok 16752 semi valid \u000a var a = 0; export {a};\u000a [a] = b\u000a ok 16753 semi valid \u000a function wrap() {\u000a return;\u000a ({a} = b)\u000a }\u000a ok 16754 semi valid \u000a while (true) {\u000a break;\u000a +i\u000a }\u000a ok 16755 semi valid \u000a while (true) {\u000a continue;\u000a [1,2,3].forEach(doSomething)\u000a }\u000a ok 16756 semi valid \u000a do; while(a);\u000a [1,2,3].forEach(doSomething)\u000a ok 16757 semi valid \u000a const f = () => {};\u000a [1,2,3].forEach(doSomething)\u000a ok 16758 semi valid \u000a import a from "a"\u000a [1,2,3].forEach(doSomething)\u000a ok 16759 semi valid \u000a var a = 0; export {a}\u000a [a] = b\u000a ok 16760 semi valid \u000a function wrap() {\u000a return\u000a ({a} = b)\u000a }\u000a ok 16761 semi valid \u000a while (true) {\u000a break\u000a +i\u000a }\u000a ok 16762 semi valid \u000a while (true) {\u000a continue\u000a [1,2,3].forEach(doSomething)\u000a }\u000a ok 16763 semi valid \u000a do; while(a)\u000a [1,2,3].forEach(doSomething)\u000a ok 16764 semi valid \u000a const f = () => {}\u000a [1,2,3].forEach(doSomething)\u000a ok 16765 semi invalid import * as utils from './utils' ok 16766 semi invalid import { square, diag } from 'lib' ok 16767 semi invalid import { default as foo } from 'lib' ok 16768 semi invalid import 'src/mylib' ok 16769 semi invalid import theDefault, { named1, named2 } from 'src/mylib' ok 16770 semi invalid function foo() { return [] } ok 16771 semi invalid while(true) { break } ok 16772 semi invalid while(true) { continue } ok 16773 semi invalid let x = 5 ok 16774 semi invalid var x = 5 ok 16775 semi invalid var x = 5, y ok 16776 semi invalid debugger ok 16777 semi invalid foo() ok 16778 semi invalid for (var a in b) var i ok 16779 semi invalid for (;;){var i} ok 16780 semi invalid for (;;) var i ok 16781 semi invalid for (var j;;) {var i} ok 16782 semi invalid var foo = {\u000a bar: baz\u000a} ok 16783 semi invalid var foo\u000avar bar; ok 16784 semi invalid throw new Error('foo') ok 16785 semi invalid do{}while(true) ok 16786 semi invalid throw new Error('foo'); ok 16787 semi invalid function foo() { return []; } ok 16788 semi invalid while(true) { break; } ok 16789 semi invalid while(true) { continue; } ok 16790 semi invalid let x = 5; ok 16791 semi invalid var x = 5; ok 16792 semi invalid var x = 5, y; ok 16793 semi invalid debugger; ok 16794 semi invalid foo(); ok 16795 semi invalid for (var a in b) var i; ok 16796 semi invalid for (;;){var i;} ok 16797 semi invalid for (;;) var i; ok 16798 semi invalid for (var j;;) {var i;} ok 16799 semi invalid var foo = {\u000a bar: baz\u000a}; ok 16800 semi invalid import theDefault, { named1, named2 } from 'src/mylib'; ok 16801 semi invalid do{}while(true); ok 16802 semi invalid if (foo) { bar()\u000a } ok 16803 semi invalid if (foo) {\u000a bar() } ok 16804 semi invalid if (foo) {\u000a bar(); baz() } ok 16805 semi invalid if (foo) { bar(); } ok 16806 semi invalid export * from 'foo' ok 16807 semi invalid export { foo } from 'foo' ok 16808 semi invalid var foo = 0;export { foo } ok 16809 semi invalid export var foo ok 16810 semi invalid export let foo ok 16811 semi invalid export const FOO = 42 ok 16812 semi invalid export default foo || bar ok 16813 semi invalid export default (foo) => foo.bar() ok 16814 semi invalid export default foo = 42 ok 16815 semi invalid export default foo += 42 ok 16816 semi invalid export * from 'foo'; ok 16817 semi invalid export { foo } from 'foo'; ok 16818 semi invalid var foo = 0;export { foo }; ok 16819 semi invalid export var foo; ok 16820 semi invalid export let foo; ok 16821 semi invalid export const FOO = 42; ok 16822 semi invalid export default foo || bar; ok 16823 semi invalid export default (foo) => foo.bar(); ok 16824 semi invalid export default foo = 42; ok 16825 semi invalid export default foo += 42; ok 16826 semi invalid a;\u000a++b ok 16827 semi invalid /*eslint no-extra-semi: error */\u000afoo();\u000a;[0,1,2].forEach(bar) ok 16828 semi invalid \u000a import a from "a"\u000a [1,2,3].forEach(doSomething)\u000a ok 16829 semi invalid \u000a var a = 0; export {a}\u000a [a] = b\u000a ok 16830 semi invalid \u000a function wrap() {\u000a return\u000a ({a} = b)\u000a }\u000a ok 16831 semi invalid \u000a while (true) {\u000a break\u000a +i\u000a }\u000a ok 16832 semi invalid \u000a while (true) {\u000a continue\u000a [1,2,3].forEach(doSomething)\u000a }\u000a ok 16833 semi invalid \u000a do; while(a)\u000a [1,2,3].forEach(doSomething)\u000a ok 16834 semi invalid \u000a const f = () => {}\u000a [1,2,3].forEach(doSomething)\u000a ok 16835 semi invalid \u000a import a from "a";\u000a [1,2,3].forEach(doSomething)\u000a ok 16836 semi invalid \u000a var a = 0; export {a};\u000a [a] = b\u000a ok 16837 semi invalid \u000a function wrap() {\u000a return;\u000a ({a} = b)\u000a }\u000a ok 16838 semi invalid \u000a while (true) {\u000a break;\u000a +i\u000a }\u000a ok 16839 semi invalid \u000a while (true) {\u000a continue;\u000a [1,2,3].forEach(doSomething)\u000a }\u000a ok 16840 semi invalid \u000a do; while(a);\u000a [1,2,3].forEach(doSomething)\u000a ok 16841 semi invalid \u000a const f = () => {};\u000a [1,2,3].forEach(doSomething)\u000a ok 16842 semi invalid \u000a import a from "a"\u000a ;[1,2,3].forEach(doSomething)\u000a ok 16843 semi invalid \u000a var a = 0; export {a}\u000a ;[1,2,3].forEach(doSomething)\u000a ok 16844 semi invalid \u000a function wrap() {\u000a return\u000a ;[1,2,3].forEach(doSomething)\u000a }\u000a ok 16845 semi invalid \u000a while (true) {\u000a break\u000a ;[1,2,3].forEach(doSomething)\u000a }\u000a ok 16846 semi invalid \u000a while (true) {\u000a continue\u000a ;[1,2,3].forEach(doSomething)\u000a }\u000a ok 16847 semi invalid \u000a do; while(a)\u000a ;[1,2,3].forEach(doSomething)\u000a ok 16848 semi invalid \u000a const f = () => {}\u000a ;[1,2,3].forEach(doSomething)\u000a ok 16849 sort-imports valid import a from 'foo.js';\u000aimport b from 'bar.js';\u000aimport c from 'baz.js';\u000a ok 16850 sort-imports valid import * as B from 'foo.js';\u000aimport A from 'bar.js'; ok 16851 sort-imports valid import * as B from 'foo.js';\u000aimport {a, b} from 'bar.js'; ok 16852 sort-imports valid import {b, c} from 'bar.js';\u000aimport A from 'foo.js'; ok 16853 sort-imports valid import A from 'bar.js';\u000aimport {b, c} from 'foo.js'; ok 16854 sort-imports valid import {a, b} from 'bar.js';\u000aimport {c, d} from 'foo.js'; ok 16855 sort-imports valid import A from 'foo.js';\u000aimport B from 'bar.js'; ok 16856 sort-imports valid import A from 'foo.js';\u000aimport a from 'bar.js'; ok 16857 sort-imports valid import a, * as b from 'foo.js';\u000aimport c from 'bar.js'; ok 16858 sort-imports valid import 'foo.js';\u000a import a from 'bar.js'; ok 16859 sort-imports valid import B from 'foo.js';\u000aimport a from 'bar.js'; ok 16860 sort-imports valid import a from 'foo.js';\u000aimport B from 'bar.js'; ok 16861 sort-imports valid import {a, b, c, d} from 'foo.js'; ok 16862 sort-imports valid import a from 'foo.js';\u000aimport B from 'bar.js'; ok 16863 sort-imports valid import {b, A, C, d} from 'foo.js'; ok 16864 sort-imports valid import {B, a, C, d} from 'foo.js'; ok 16865 sort-imports valid import {a, B, c, D} from 'foo.js'; ok 16866 sort-imports valid import a, * as b from 'foo.js'; ok 16867 sort-imports valid import * as a from 'foo.js';\u000a\u000aimport b from 'bar.js'; ok 16868 sort-imports valid import * as bar from 'bar.js';\u000aimport * as foo from 'foo.js'; ok 16869 sort-imports valid import 'foo';\u000aimport bar from 'bar'; ok 16870 sort-imports valid import React, {Component} from 'react'; ok 16871 sort-imports invalid import a from 'foo.js';\u000aimport A from 'bar.js'; ok 16872 sort-imports invalid import b from 'foo.js';\u000aimport a from 'bar.js'; ok 16873 sort-imports invalid import {b, c} from 'foo.js';\u000aimport {a, d} from 'bar.js'; ok 16874 sort-imports invalid import * as foo from 'foo.js';\u000aimport * as bar from 'bar.js'; ok 16875 sort-imports invalid import a from 'foo.js';\u000aimport {b, c} from 'bar.js'; ok 16876 sort-imports invalid import a from 'foo.js';\u000aimport * as b from 'bar.js'; ok 16877 sort-imports invalid import a from 'foo.js';\u000aimport 'bar.js'; ok 16878 sort-imports invalid import b from 'bar.js';\u000aimport * as a from 'foo.js'; ok 16879 sort-imports invalid import {b, a, d, c} from 'foo.js'; ok 16880 sort-imports invalid import {b, a, d, c} from 'foo.js';\u000aimport {e, f, g, h} from 'bar.js'; ok 16881 sort-imports invalid import {a, B, c, D} from 'foo.js'; ok 16882 sort-imports invalid import {zzzzz, /* comment */ aaaaa} from 'foo.js'; ok 16883 sort-imports invalid import {zzzzz /* comment */, aaaaa} from 'foo.js'; ok 16884 sort-imports invalid import {/* comment */ zzzzz, aaaaa} from 'foo.js'; ok 16885 sort-imports invalid import {zzzzz, aaaaa /* comment */} from 'foo.js'; ok 16886 sort-imports invalid \u000a import {\u000a boop,\u000a foo,\u000a zoo,\u000a baz as qux,\u000a bar,\u000a beep\u000a } from 'foo.js';\u000a ok 16887 sort-keys valid var obj = {'':1, [``]:2} ok 16888 sort-keys valid var obj = {[``]:1, '':2} ok 16889 sort-keys valid var obj = {'':1, a:2} ok 16890 sort-keys valid var obj = {[``]:1, a:2} ok 16891 sort-keys valid var obj = {_:2, a:1, b:3} // default ok 16892 sort-keys valid var obj = {a:1, b:3, c:2} ok 16893 sort-keys valid var obj = {a:2, b:3, b_:1} ok 16894 sort-keys valid var obj = {C:3, b_:1, c:2} ok 16895 sort-keys valid var obj = {$:1, A:3, _:2, a:4} ok 16896 sort-keys valid var obj = {1:1, '11':2, 2:4, A:3} ok 16897 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 16898 sort-keys valid var obj = {a:1, b:3, [a + b]: -1, c:2} ok 16899 sort-keys valid var obj = {'':1, [f()]:2, a:3} ok 16900 sort-keys valid var obj = {a:1, [b++]:2, '':3} ok 16901 sort-keys valid var obj = {a:1, ...z, b:1} ok 16902 sort-keys valid var obj = {b:1, ...z, a:1} ok 16903 sort-keys valid var obj = {...a, b:1, ...c, d:1} ok 16904 sort-keys valid var obj = {...a, b:1, ...d, ...c, e:2, z:5} ok 16905 sort-keys valid var obj = {b:1, ...c, ...d, e:2} ok 16906 sort-keys valid var obj = {a:1, ...z, '':2} ok 16907 sort-keys valid var obj = {'':1, ...z, 'a':2} ok 16908 sort-keys valid var obj = {...z, a:1, b:1} ok 16909 sort-keys valid var obj = {...z, ...c, a:1, b:1} ok 16910 sort-keys valid var obj = {a:1, b:1, ...z} ok 16911 sort-keys valid var obj = {...z, ...x, a:1, ...c, ...d, f:5, e:4} ok 16912 sort-keys valid function fn(...args) { return [...args].length; } ok 16913 sort-keys valid function g() {}; function f(...args) { return g(...args); } ok 16914 sort-keys valid let {a, b} = {} ok 16915 sort-keys valid var obj = {a:1, b:{x:1, y:1}, c:1} ok 16916 sort-keys valid var obj = {_:2, a:1, b:3} // asc ok 16917 sort-keys valid var obj = {a:1, b:3, c:2} ok 16918 sort-keys valid var obj = {a:2, b:3, b_:1} ok 16919 sort-keys valid var obj = {C:3, b_:1, c:2} ok 16920 sort-keys valid var obj = {$:1, A:3, _:2, a:4} ok 16921 sort-keys valid var obj = {1:1, '11':2, 2:4, A:3} ok 16922 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 16923 sort-keys valid var obj = {a:1, c:2, b:3} ok 16924 sort-keys valid var obj = {_:2, a:1, b:3} // asc, insensitive ok 16925 sort-keys valid var obj = {a:1, b:3, c:2} ok 16926 sort-keys valid var obj = {a:2, b:3, b_:1} ok 16927 sort-keys valid var obj = {b_:1, C:3, c:2} ok 16928 sort-keys valid var obj = {b_:1, c:3, C:2} ok 16929 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 16930 sort-keys valid var obj = {1:1, '11':2, 2:4, A:3} ok 16931 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 16932 sort-keys valid var obj = {$:1, A:3, _:2, a:4} ok 16933 sort-keys valid var obj = {_:2, a:1, b:3} // asc, natural ok 16934 sort-keys valid var obj = {a:1, b:3, c:2} ok 16935 sort-keys valid var obj = {a:2, b:3, b_:1} ok 16936 sort-keys valid var obj = {C:3, b_:1, c:2} ok 16937 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 16938 sort-keys valid var obj = {1:1, 2:4, '11':2, A:3} ok 16939 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 16940 sort-keys valid var obj = {b_:1, a:2, b:3} ok 16941 sort-keys valid var obj = {_:2, a:1, b:3} // asc, natural, insensitive ok 16942 sort-keys valid var obj = {a:1, b:3, c:2} ok 16943 sort-keys valid var obj = {a:2, b:3, b_:1} ok 16944 sort-keys valid var obj = {b_:1, C:3, c:2} ok 16945 sort-keys valid var obj = {b_:1, c:3, C:2} ok 16946 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 16947 sort-keys valid var obj = {1:1, 2:4, '11':2, A:3} ok 16948 sort-keys valid var obj = {'':1, 'Z':2, À:3, è:4} ok 16949 sort-keys valid var obj = {a:1, _:2, b:3} ok 16950 sort-keys valid var obj = {b:3, a:1, _:2} // desc ok 16951 sort-keys valid var obj = {c:2, b:3, a:1} ok 16952 sort-keys valid var obj = {b_:1, b:3, a:2} ok 16953 sort-keys valid var obj = {c:2, b_:1, C:3} ok 16954 sort-keys valid var obj = {a:4, _:2, A:3, $:1} ok 16955 sort-keys valid var obj = {A:3, 2:4, '11':2, 1:1} ok 16956 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 16957 sort-keys valid var obj = {a:1, c:2, b:3} ok 16958 sort-keys valid var obj = {b:3, a:1, _:2} // desc, insensitive ok 16959 sort-keys valid var obj = {c:2, b:3, a:1} ok 16960 sort-keys valid var obj = {b_:1, b:3, a:2} ok 16961 sort-keys valid var obj = {c:2, C:3, b_:1} ok 16962 sort-keys valid var obj = {C:2, c:3, b_:1} ok 16963 sort-keys valid var obj = {a:4, A:3, _:2, $:1} ok 16964 sort-keys valid var obj = {A:3, 2:4, '11':2, 1:1} ok 16965 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 16966 sort-keys valid var obj = {$:1, _:2, A:3, a:4} ok 16967 sort-keys valid var obj = {b:3, a:1, _:2} // desc, natural ok 16968 sort-keys valid var obj = {c:2, b:3, a:1} ok 16969 sort-keys valid var obj = {b_:1, b:3, a:2} ok 16970 sort-keys valid var obj = {c:2, b_:1, C:3} ok 16971 sort-keys valid var obj = {a:4, A:3, _:2, $:1} ok 16972 sort-keys valid var obj = {A:3, '11':2, 2:4, 1:1} ok 16973 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 16974 sort-keys valid var obj = {b_:1, a:2, b:3} ok 16975 sort-keys valid var obj = {b:3, a:1, _:2} // desc, natural, insensitive ok 16976 sort-keys valid var obj = {c:2, b:3, a:1} ok 16977 sort-keys valid var obj = {b_:1, b:3, a:2} ok 16978 sort-keys valid var obj = {c:2, C:3, b_:1} ok 16979 sort-keys valid var obj = {C:2, c:3, b_:1} ok 16980 sort-keys valid var obj = {a:4, A:3, _:2, $:1} ok 16981 sort-keys valid var obj = {A:3, '11':2, 2:4, 1:1} ok 16982 sort-keys valid var obj = {è:4, À:3, 'Z':2, '':1} ok 16983 sort-keys valid var obj = {a:1, _:2, b:3} ok 16984 sort-keys invalid var obj = {a:1, '':2} // default ok 16985 sort-keys invalid var obj = {a:1, [``]:2} // default ok 16986 sort-keys invalid var obj = {a:1, _:2, b:3} // default ok 16987 sort-keys invalid var obj = {a:1, c:2, b:3} ok 16988 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 16989 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 16990 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 16991 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 16992 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 16993 sort-keys invalid var obj = {...z, c:1, b:1} ok 16994 sort-keys invalid var obj = {...z, ...c, d:4, b:1, ...y, ...f, e:2, a:1} ok 16995 sort-keys invalid var obj = {c:1, b:1, ...a} ok 16996 sort-keys invalid var obj = {...z, ...a, c:1, b:1} ok 16997 sort-keys invalid var obj = {...z, b:1, a:1, ...d, ...c} ok 16998 sort-keys invalid var obj = {...z, a:2, b:0, ...x, ...c} ok 16999 sort-keys invalid var obj = {...z, a:2, b:0, ...x} ok 17000 sort-keys invalid var obj = {...z, '':1, a:2} ok 17001 sort-keys invalid var obj = {a:1, [b+c]:2, '':3} ok 17002 sort-keys invalid var obj = {'':1, [b+c]:2, a:3} ok 17003 sort-keys invalid var obj = {b:1, [f()]:2, '':3, a:4} ok 17004 sort-keys invalid var obj = {a:1, b:3, [a]: -1, c:2} ok 17005 sort-keys invalid var obj = {a:1, c:{y:1, x:1}, b:1} ok 17006 sort-keys invalid var obj = {a:1, _:2, b:3} // asc ok 17007 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17008 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17009 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 17010 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 17011 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 17012 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17013 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17014 sort-keys invalid var obj = {a:1, _:2, b:3} // asc, insensitive ok 17015 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17016 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17017 sort-keys invalid var obj = {$:1, A:3, _:2, a:4} ok 17018 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 17019 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17020 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17021 sort-keys invalid var obj = {a:1, _:2, b:3} // asc, natural ok 17022 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17023 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17024 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 17025 sort-keys invalid var obj = {$:1, A:3, _:2, a:4} ok 17026 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 17027 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17028 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17029 sort-keys invalid var obj = {a:1, _:2, b:3} // asc, natural, insensitive ok 17030 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17031 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17032 sort-keys invalid var obj = {$:1, A:3, _:2, a:4} ok 17033 sort-keys invalid var obj = {1:1, '11':2, 2:4, A:3} ok 17034 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17035 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17036 sort-keys invalid var obj = {'':1, a:'2'} // desc ok 17037 sort-keys invalid var obj = {[``]:1, a:'2'} // desc ok 17038 sort-keys invalid var obj = {a:1, _:2, b:3} // desc ok 17039 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17040 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17041 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 17042 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 17043 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 17044 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17045 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17046 sort-keys invalid var obj = {a:1, _:2, b:3} // desc, insensitive ok 17047 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17048 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17049 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 17050 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 17051 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 17052 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17053 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17054 sort-keys invalid var obj = {a:1, _:2, b:3} // desc, natural ok 17055 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17056 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17057 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 17058 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 17059 sort-keys invalid var obj = {1:1, 2:4, A:3, '11':2} ok 17060 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17061 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17062 sort-keys invalid var obj = {a:1, _:2, b:3} // desc, natural, insensitive ok 17063 sort-keys invalid var obj = {a:1, c:2, b:3} ok 17064 sort-keys invalid var obj = {b_:1, a:2, b:3} ok 17065 sort-keys invalid var obj = {b_:1, c:2, C:3} ok 17066 sort-keys invalid var obj = {$:1, _:2, A:3, a:4} ok 17067 sort-keys invalid var obj = {1:1, 2:4, '11':2, A:3} ok 17068 sort-keys invalid var obj = {'':1, À:3, 'Z':2, è:4} ok 17069 sort-keys invalid var obj = {a:1, _:2, b:3} ok 17070 sort-vars valid var a=10, b=4, c='abc' ok 17071 sort-vars valid var a, b, c, d ok 17072 sort-vars valid var b; var a; var d; ok 17073 sort-vars valid var _a, a ok 17074 sort-vars valid var A, a ok 17075 sort-vars valid var A, b ok 17076 sort-vars valid var a, A; ok 17077 sort-vars valid var A, a; ok 17078 sort-vars valid var a, B, c; ok 17079 sort-vars valid var A, b, C; ok 17080 sort-vars valid var {a, b, c} = x; ok 17081 sort-vars valid var {A, b, C} = x; ok 17082 sort-vars valid var test = [1,2,3]; ok 17083 sort-vars valid var {a,b} = [1,2]; ok 17084 sort-vars valid var [a, B, c] = [1, 2, 3]; ok 17085 sort-vars valid var [A, B, c] = [1, 2, 3]; ok 17086 sort-vars valid var [A, b, C] = [1, 2, 3]; ok 17087 sort-vars valid let {a, b, c} = x; ok 17088 sort-vars valid let [a, b, c] = [1, 2, 3]; ok 17089 sort-vars valid const {a, b, c} = {a: 1, b: true, c: "Moo"}; ok 17090 sort-vars valid const [a, b, c] = [1, true, "Moo"]; ok 17091 sort-vars valid const [c, a, b] = [1, true, "Moo"]; ok 17092 sort-vars valid var {a, x: {b, c}} = {}; ok 17093 sort-vars valid var {c, x: {a, c}} = {}; ok 17094 sort-vars valid var {a, x: [b, c]} = {}; ok 17095 sort-vars valid var [a, {b, c}] = {}; ok 17096 sort-vars valid var [a, {x: {b, c}}] = {}; ok 17097 sort-vars valid var a = 42, {b, c } = {}; ok 17098 sort-vars valid var b = 42, {a, c } = {}; ok 17099 sort-vars valid var [b, {x: {a, c}}] = {}; ok 17100 sort-vars valid var [b, d, a, c] = {}; ok 17101 sort-vars valid var e, [a, c, d] = {}; ok 17102 sort-vars valid var a, [E, c, D] = []; ok 17103 sort-vars valid var a, f, [e, c, d] = [1,2,3]; ok 17104 sort-vars valid export default class {\u000a render () {\u000a let {\u000a b\u000a } = this,\u000a a,\u000a c;\u000a }\u000a} ok 17105 sort-vars valid var {} = 1, a ok 17106 sort-vars invalid var b, a ok 17107 sort-vars invalid var b , a ok 17108 sort-vars invalid var b,\u000a a; ok 17109 sort-vars invalid var b=10, a=20; ok 17110 sort-vars invalid var b=10, a=20, c=30; ok 17111 sort-vars invalid var all=10, a = 1 ok 17112 sort-vars invalid var b, c, a, d ok 17113 sort-vars invalid var c, d, a, b ok 17114 sort-vars invalid var a, A; ok 17115 sort-vars invalid var a, B; ok 17116 sort-vars invalid var a, B, c; ok 17117 sort-vars invalid var B, a; ok 17118 sort-vars invalid var B, A, c; ok 17119 sort-vars invalid var d, a, [b, c] = {}; ok 17120 sort-vars invalid var d, a, [b, {x: {c, e}}] = {}; ok 17121 sort-vars invalid var {} = 1, b, a ok 17122 sort-vars invalid var b=10, a=f(); ok 17123 sort-vars invalid var b=10, a=b; ok 17124 sort-vars invalid var b = 0, a = `${b}`; ok 17125 sort-vars invalid var b = 0, a = `${f()}` ok 17126 sort-vars invalid var b = 0, c = b, a; ok 17127 sort-vars invalid var b = 0, c = 0, a = b + c; ok 17128 sort-vars invalid var b = f(), c, d, a; ok 17129 sort-vars invalid var b = `${f()}`, c, d, a; ok 17130 sort-vars invalid var c, a = b = 0 ok 17131 space-before-blocks valid if(a) {} ok 17132 space-before-blocks valid if(a) {} ok 17133 space-before-blocks valid if(a){} ok 17134 space-before-blocks valid if(a){} ok 17135 space-before-blocks valid if(a) {} ok 17136 space-before-blocks valid if(a){ function b() {} } ok 17137 space-before-blocks valid if(a) { function b(){} } ok 17138 space-before-blocks valid if(a)\u000a{} ok 17139 space-before-blocks valid if(a)\u000a{} ok 17140 space-before-blocks valid if(a) {}else {} ok 17141 space-before-blocks valid if(a){}else{} ok 17142 space-before-blocks valid if(a){}else{} ok 17143 space-before-blocks valid if(a) {} else {} ok 17144 space-before-blocks valid if(a){ function b() {} }else{} ok 17145 space-before-blocks valid if(a) { function b(){} } else {} ok 17146 space-before-blocks valid function a() {} ok 17147 space-before-blocks valid function a(){} ok 17148 space-before-blocks valid export default class{} ok 17149 space-before-blocks valid export default class {} ok 17150 space-before-blocks valid export default function a() {} ok 17151 space-before-blocks valid export default function a(){} ok 17152 space-before-blocks valid export function a(){} ok 17153 space-before-blocks valid export function a() {} ok 17154 space-before-blocks valid function a(){} ok 17155 space-before-blocks valid function a() {} ok 17156 space-before-blocks valid function a(){ if(b) {} } ok 17157 space-before-blocks valid function a() { if(b){} } ok 17158 space-before-blocks valid switch(a.b(c < d)) { case 'foo': foo(); break; default: if (a) { bar(); } } ok 17159 space-before-blocks valid switch(a) { } ok 17160 space-before-blocks valid switch(a) {} ok 17161 space-before-blocks valid switch(a.b(c < d)){ case 'foo': foo(); break; default: if (a){ bar(); } } ok 17162 space-before-blocks valid switch(a.b(c < d)){ case 'foo': foo(); break; default: if (a){ bar(); } } ok 17163 space-before-blocks valid switch(a){} ok 17164 space-before-blocks valid switch(a){} ok 17165 space-before-blocks valid switch(a) {} ok 17166 space-before-blocks valid try {}catch(a) {} ok 17167 space-before-blocks valid try{}catch(a){} ok 17168 space-before-blocks valid try{}catch(a){} ok 17169 space-before-blocks valid try {} catch(a) {} ok 17170 space-before-blocks valid try{ function b() {} }catch(a){} ok 17171 space-before-blocks valid try { function b(){} } catch(a) {} ok 17172 space-before-blocks valid for(;;) {} ok 17173 space-before-blocks valid for(;;){} ok 17174 space-before-blocks valid for(;;){} ok 17175 space-before-blocks valid for(;;) {} ok 17176 space-before-blocks valid for(;;){ function a() {} } ok 17177 space-before-blocks valid for(;;) { function a(){} } ok 17178 space-before-blocks valid while(a) {} ok 17179 space-before-blocks valid while(a){} ok 17180 space-before-blocks valid while(a){} ok 17181 space-before-blocks valid while(a) {} ok 17182 space-before-blocks valid while(a){ function b() {} } ok 17183 space-before-blocks valid while(a) { function b(){} } ok 17184 space-before-blocks valid class test { constructor() {} } ok 17185 space-before-blocks valid class test { constructor(){} } ok 17186 space-before-blocks valid class test{ constructor() {} } ok 17187 space-before-blocks valid class test {} ok 17188 space-before-blocks valid class test{} ok 17189 space-before-blocks valid class test{} ok 17190 space-before-blocks valid class test {} ok 17191 space-before-blocks valid function a(){if(b) {}} ok 17192 space-before-blocks valid function a() {if(b) {}} ok 17193 space-before-blocks valid function a() {if(b){}} ok 17194 space-before-blocks valid function a() {if(b) {}} ok 17195 space-before-blocks valid class test { constructor(){if(a){}} } ok 17196 space-before-blocks valid class test { constructor() {if(a){}} } ok 17197 space-before-blocks valid class test { constructor(){if(a) {}} } ok 17198 space-before-blocks valid class test { constructor() {if(a) {}} } ok 17199 space-before-blocks valid function a(){if(b){}} ok 17200 space-before-blocks valid function a() {if(b){}} ok 17201 space-before-blocks valid function a(){if(b){}} ok 17202 space-before-blocks valid function a(){if(b) {}} ok 17203 space-before-blocks valid class test{ constructor(){if(a){}} } ok 17204 space-before-blocks valid class test{ constructor() {if(a){}} } ok 17205 space-before-blocks valid class test{ constructor(){if(a) {}} } ok 17206 space-before-blocks valid class test{ constructor() {if(a) {}} } ok 17207 space-before-blocks valid ()=>{}; ok 17208 space-before-blocks valid () => {}; ok 17209 space-before-blocks valid if(a) {}else{} ok 17210 space-before-blocks valid if(a){}else {} ok 17211 space-before-blocks valid try {}catch(a){} ok 17212 space-before-blocks valid export default class{} ok 17213 space-before-blocks invalid if(a){} ok 17214 space-before-blocks invalid if(a){} ok 17215 space-before-blocks invalid if(a) {} ok 17216 space-before-blocks invalid if(a) { function a() {} } ok 17217 space-before-blocks invalid if(a) { function a() {} } ok 17218 space-before-blocks invalid if(a) {} ok 17219 space-before-blocks invalid function a(){} ok 17220 space-before-blocks invalid function a() {} ok 17221 space-before-blocks invalid function a() {} ok 17222 space-before-blocks invalid function a(){ if (a){} } ok 17223 space-before-blocks invalid function a() { if (a) {} } ok 17224 space-before-blocks invalid function a(){} ok 17225 space-before-blocks invalid function a() {} ok 17226 space-before-blocks invalid switch(a){} ok 17227 space-before-blocks invalid switch(a) {} ok 17228 space-before-blocks invalid switch(a){} ok 17229 space-before-blocks invalid switch(a) {} ok 17230 space-before-blocks invalid switch(a.b()){ case 'foo': foo(); break; default: if (a) { bar(); } } ok 17231 space-before-blocks invalid switch(a.b()) { case 'foo': foo(); break; default: if (a){ bar(); } } ok 17232 space-before-blocks invalid try{}catch(a){} ok 17233 space-before-blocks invalid try {}catch(a) {} ok 17234 space-before-blocks invalid try {} catch(a){} ok 17235 space-before-blocks invalid try { function b() {} } catch(a) {} ok 17236 space-before-blocks invalid try{ function b(){} }catch(a){} ok 17237 space-before-blocks invalid for(;;){} ok 17238 space-before-blocks invalid for(;;) {} ok 17239 space-before-blocks invalid for(;;){} ok 17240 space-before-blocks invalid for(;;) {} ok 17241 space-before-blocks invalid for(;;){ function a(){} } ok 17242 space-before-blocks invalid for(;;) { function a() {} } ok 17243 space-before-blocks invalid while(a){} ok 17244 space-before-blocks invalid while(a) {} ok 17245 space-before-blocks invalid while(a){} ok 17246 space-before-blocks invalid while(a) {} ok 17247 space-before-blocks invalid while(a){ function a(){} } ok 17248 space-before-blocks invalid while(a) { function a() {} } ok 17249 space-before-blocks invalid export function a() { if(b) {} } ok 17250 space-before-blocks invalid export function a(){ if(b){} } ok 17251 space-before-blocks invalid export function a(){} ok 17252 space-before-blocks invalid export default function (a) {} ok 17253 space-before-blocks invalid export function a() {} ok 17254 space-before-blocks invalid class test{} ok 17255 space-before-blocks invalid class test{} ok 17256 space-before-blocks invalid class test{ constructor(){} } ok 17257 space-before-blocks invalid class test { constructor() {} } ok 17258 space-before-blocks invalid class test {} ok 17259 space-before-blocks invalid class test {} ok 17260 space-before-blocks invalid if(a){ function a(){} } ok 17261 space-before-blocks invalid if(a) { function a(){} } ok 17262 space-before-blocks invalid if(a){ function a(){} } ok 17263 space-before-blocks invalid if(a){ function a() {} } ok 17264 space-before-blocks invalid class test{ constructor(){} } ok 17265 space-before-blocks invalid class test{ constructor() {} } ok 17266 space-before-blocks invalid if(a){ function a() {} } ok 17267 space-before-blocks invalid if(a) { function a() {} } ok 17268 space-before-blocks invalid if(a) { function a(){} } ok 17269 space-before-blocks invalid if(a) { function a() {} } ok 17270 space-before-blocks invalid class test { constructor(){} } ok 17271 space-before-blocks invalid class test { constructor() {} } ok 17272 space-before-function-paren valid function foo () {} ok 17273 space-before-function-paren valid var foo = function () {} ok 17274 space-before-function-paren valid var bar = function foo () {} ok 17275 space-before-function-paren valid var bar = function foo/**/ () {} ok 17276 space-before-function-paren valid var bar = function foo /**/() {} ok 17277 space-before-function-paren valid var bar = function foo/**/\u000a() {} ok 17278 space-before-function-paren valid var bar = function foo\u000a/**/() {} ok 17279 space-before-function-paren valid var bar = function foo//\u000a() {} ok 17280 space-before-function-paren valid var obj = { get foo () {}, set foo (val) {} }; ok 17281 space-before-function-paren valid var obj = { foo () {} }; ok 17282 space-before-function-paren valid function* foo () {} ok 17283 space-before-function-paren valid var foo = function *() {}; ok 17284 space-before-function-paren valid function foo() {} ok 17285 space-before-function-paren valid var foo = function() {} ok 17286 space-before-function-paren valid var foo = function/**/() {} ok 17287 space-before-function-paren valid var foo = function/* */() {} ok 17288 space-before-function-paren valid var foo = function/* *//* */() {} ok 17289 space-before-function-paren valid var bar = function foo() {} ok 17290 space-before-function-paren valid var obj = { get foo() {}, set foo(val) {} }; ok 17291 space-before-function-paren valid var obj = { foo() {} }; ok 17292 space-before-function-paren valid function* foo() {} ok 17293 space-before-function-paren valid var foo = function*() {}; ok 17294 space-before-function-paren valid function foo() {}\u000avar bar = function () {}\u000afunction* baz() {}\u000avar bat = function*() {};\u000avar obj = { get foo() {}, set foo(val) {}, bar() {} }; ok 17295 space-before-function-paren valid function foo () {}\u000avar bar = function() {}\u000afunction* baz () {}\u000avar bat = function* () {};\u000avar obj = { get foo () {}, set foo (val) {}, bar () {} }; ok 17296 space-before-function-paren valid class Foo { constructor() {} *method() {} } ok 17297 space-before-function-paren valid class Foo { constructor () {} *method () {} } ok 17298 space-before-function-paren valid var foo = function() {} ok 17299 space-before-function-paren valid var foo = function () {} ok 17300 space-before-function-paren valid var bar = function foo() {} ok 17301 space-before-function-paren valid var bar = function foo () {} ok 17302 space-before-function-paren valid type TransformFunction = (el: ASTElement, code: string) => string; ok 17303 space-before-function-paren valid () => 1 ok 17304 space-before-function-paren valid async a => a ok 17305 space-before-function-paren valid async a => a ok 17306 space-before-function-paren valid async a => a ok 17307 space-before-function-paren valid async () => 1 ok 17308 space-before-function-paren valid async() => 1 ok 17309 space-before-function-paren valid async () => 1 ok 17310 space-before-function-paren valid async() => 1 ok 17311 space-before-function-paren valid async () => 1 ok 17312 space-before-function-paren valid async () => 1 ok 17313 space-before-function-paren valid async() => 1 ok 17314 space-before-function-paren invalid function foo() {} ok 17315 space-before-function-paren invalid function foo/* */() {} ok 17316 space-before-function-paren invalid var foo = function() {} ok 17317 space-before-function-paren invalid var bar = function foo() {} ok 17318 space-before-function-paren invalid var obj = { get foo() {}, set foo(val) {} }; ok 17319 space-before-function-paren invalid var obj = { foo() {} }; ok 17320 space-before-function-paren invalid function* foo() {} ok 17321 space-before-function-paren invalid function foo () {} ok 17322 space-before-function-paren invalid function foo /* */ () {} ok 17323 space-before-function-paren invalid function foo/* block comment */ () {} ok 17324 space-before-function-paren invalid function foo/* 1 */ /* 2 */ \u000a /* 3 */\u000a/* 4 */ () {} ok 17325 space-before-function-paren invalid function foo//\u000a() {} ok 17326 space-before-function-paren invalid function foo // line comment \u000a () {} ok 17327 space-before-function-paren invalid function foo\u000a//\u000a() {} ok 17328 space-before-function-paren invalid var foo = function () {} ok 17329 space-before-function-paren invalid var bar = function foo () {} ok 17330 space-before-function-paren invalid var obj = { get foo () {}, set foo (val) {} }; ok 17331 space-before-function-paren invalid var obj = { foo () {} }; ok 17332 space-before-function-paren invalid function* foo () {} ok 17333 space-before-function-paren invalid function foo () {}\u000avar bar = function() {}\u000avar obj = { get foo () {}, set foo (val) {}, bar () {} }; ok 17334 space-before-function-paren invalid class Foo { constructor () {} *method () {} } ok 17335 space-before-function-paren invalid var foo = { bar () {} } ok 17336 space-before-function-paren invalid function foo() {}\u000avar bar = function () {}\u000avar obj = { get foo() {}, set foo(val) {}, bar() {} }; ok 17337 space-before-function-paren invalid var foo = function() {} ok 17338 space-before-function-paren invalid var foo = function () {} ok 17339 space-before-function-paren invalid var bar = function foo() {} ok 17340 space-before-function-paren invalid var bar = function foo () {} ok 17341 space-before-function-paren invalid async() => 1 ok 17342 space-before-function-paren invalid async () => 1 ok 17343 space-before-function-paren invalid async() => 1 ok 17344 space-before-function-paren invalid async() => 1 ok 17345 space-before-function-paren invalid async () => 1 ok 17346 space-in-parens valid foo() ok 17347 space-in-parens valid foo() ok 17348 space-in-parens valid foo( bar ) ok 17349 space-in-parens valid foo\u000a(\u000abar\u000a)\u000a ok 17350 space-in-parens valid foo\u000a( \u000abar\u000a )\u000a ok 17351 space-in-parens valid foo\u000a(\u000a bar \u000a)\u000a ok 17352 space-in-parens valid foo\u000a( \u000a bar \u000a )\u000a ok 17353 space-in-parens valid foo\u000a(\u0009\u000abar\u000a) ok 17354 space-in-parens valid \u0009foo(\u000a\u0009\u0009bar\u000a\u0009) ok 17355 space-in-parens valid \u0009foo\u000a(\u0009\u000a\u0009\u0009bar\u0009\u000a\u0009) ok 17356 space-in-parens valid var x = ( 1 + 2 ) * 3 ok 17357 space-in-parens valid var x = 'foo(bar)' ok 17358 space-in-parens valid var x = 'bar( baz )' ok 17359 space-in-parens valid var foo = `(bar)`; ok 17360 space-in-parens valid var foo = `(bar ${baz})`; ok 17361 space-in-parens valid var foo = `(bar ${( 1 + 2 )})`; ok 17362 space-in-parens valid bar(baz) ok 17363 space-in-parens valid var x = (4 + 5) * 6 ok 17364 space-in-parens valid foo\u000a(\u000abar\u000a)\u000a ok 17365 space-in-parens valid foo\u000a( \u000abar\u000a )\u000a ok 17366 space-in-parens valid foo\u000a(\u000a bar \u000a)\u000a ok 17367 space-in-parens valid foo\u000a( \u000a bar \u000a )\u000a ok 17368 space-in-parens valid var foo = `( bar )`; ok 17369 space-in-parens valid var foo = `( bar ${baz} )`; ok 17370 space-in-parens valid var foo = `(bar ${(1 + 2)})`; ok 17371 space-in-parens valid foo( /* bar */ ) ok 17372 space-in-parens valid foo( /* bar */baz ) ok 17373 space-in-parens valid foo( /* bar */ baz ) ok 17374 space-in-parens valid foo( baz/* bar */ ) ok 17375 space-in-parens valid foo( baz /* bar */ ) ok 17376 space-in-parens valid foo(/* bar */) ok 17377 space-in-parens valid foo(/* bar */ baz) ok 17378 space-in-parens valid foo( //some comment\u000abar\u000a)\u000a ok 17379 space-in-parens valid foo(//some comment\u000abar\u000a)\u000a ok 17380 space-in-parens valid foo( //some comment\u000abar\u000a)\u000a ok 17381 space-in-parens valid foo({ bar: 'baz' }) ok 17382 space-in-parens valid foo( { bar: 'baz' } ) ok 17383 space-in-parens valid ( (foo(bar() ) ) ); ok 17384 space-in-parens valid foo( 1, { bar: 'baz' }) ok 17385 space-in-parens valid foo({ bar: 'baz' }, 1 ) ok 17386 space-in-parens valid foo({\u000abar: 'baz',\u000abaz: 'bar'\u000a}) ok 17387 space-in-parens valid foo({ bar: 'baz' }) ok 17388 space-in-parens valid foo( { bar: 'baz' } ) ok 17389 space-in-parens valid foo(1, { bar: 'baz' } ) ok 17390 space-in-parens valid foo( { bar: 'baz' }, 1) ok 17391 space-in-parens valid foo( {\u000abar: 'baz',\u000abaz: 'bar'\u000a} ) ok 17392 space-in-parens valid foo([ 1, 2 ]) ok 17393 space-in-parens valid foo( [ 1, 2 ] ) ok 17394 space-in-parens valid foo( 1, [ 1, 2 ]) ok 17395 space-in-parens valid foo([ 1, 2 ], 1 ) ok 17396 space-in-parens valid foo([\u000a1,\u000a2\u000a]) ok 17397 space-in-parens valid foo([ 1, 2 ]) ok 17398 space-in-parens valid foo( [ 1, 2 ] ) ok 17399 space-in-parens valid foo(1, [ 1, 2 ] ) ok 17400 space-in-parens valid foo( [ 1, 2 ], 1) ok 17401 space-in-parens valid foo( [\u000a1,\u000a2\u000a] ) ok 17402 space-in-parens valid foo(( 1 + 2 )) ok 17403 space-in-parens valid foo( ( 1 + 2 ) ) ok 17404 space-in-parens valid foo( 1 / ( 1 + 2 )) ok 17405 space-in-parens valid foo(( 1 + 2 ) / 1 ) ok 17406 space-in-parens valid foo((\u000a1 + 2\u000a)) ok 17407 space-in-parens valid foo((1 + 2)) ok 17408 space-in-parens valid foo( (1 + 2) ) ok 17409 space-in-parens valid foo(1 / (1 + 2) ) ok 17410 space-in-parens valid foo( (1 + 2) / 1) ok 17411 space-in-parens valid foo( (\u000a1 + 2\u000a) ) ok 17412 space-in-parens valid foo() ok 17413 space-in-parens valid foo( ) ok 17414 space-in-parens valid foo() ok 17415 space-in-parens valid foo( ) ok 17416 space-in-parens valid foo(( x, {bar:'baz'} )) ok 17417 space-in-parens valid foo( [1, 2], 1 ) ok 17418 space-in-parens valid foo(\u000a1 + 2\u000a) ok 17419 space-in-parens valid foo( \u000a1 + 2\u000a ) ok 17420 space-in-parens valid foo({ bar: 'baz' }, [ 1, 2 ]) ok 17421 space-in-parens valid foo({\u000abar: 'baz'\u000a}, [\u000a1,\u000a2\u000a]) ok 17422 space-in-parens valid foo(); bar({bar:'baz'}); baz([1,2]) ok 17423 space-in-parens valid foo( { bar: 'baz' }, [ 1, 2 ] ) ok 17424 space-in-parens valid foo( {\u000abar: 'baz'\u000a}, [\u000a1,\u000a2\u000a] ) ok 17425 space-in-parens valid foo( ); bar( {bar:'baz'} ); baz( [1,2] ) ok 17426 space-in-parens valid foo( { bar: 'baz' } ) ok 17427 space-in-parens valid foo( { bar: 'baz' } ) ok 17428 space-in-parens invalid bar(baz ) ok 17429 space-in-parens invalid bar( baz ) ok 17430 space-in-parens invalid foo( ) ok 17431 space-in-parens invalid foo(bar() ) ok 17432 space-in-parens invalid foo\u000a(\u000abar ) ok 17433 space-in-parens invalid foo\u000a(bar\u000a)\u000a ok 17434 space-in-parens invalid foo( bar) ok 17435 space-in-parens invalid foo(bar) ok 17436 space-in-parens invalid var x = ( 1 + 2) * 3 ok 17437 space-in-parens invalid var x = (1 + 2 ) * 3 ok 17438 space-in-parens invalid var x = ( 4 + 5) * 6 ok 17439 space-in-parens invalid var x = (4 + 5 ) * 6 ok 17440 space-in-parens invalid foo(/* bar */) ok 17441 space-in-parens invalid foo(/* bar */baz ) ok 17442 space-in-parens invalid foo(/* bar */ baz ) ok 17443 space-in-parens invalid foo( baz/* bar */) ok 17444 space-in-parens invalid foo( baz /* bar */) ok 17445 space-in-parens invalid foo( /* bar */ ) ok 17446 space-in-parens invalid foo( /* bar */ baz) ok 17447 space-in-parens invalid foo() ok 17448 space-in-parens invalid foo( ) ok 17449 space-in-parens invalid foo( ) ok 17450 space-in-parens invalid foo( bar() ) ok 17451 space-in-parens invalid foo(bar()) ok 17452 space-in-parens invalid foo( bar() ) ok 17453 space-in-parens invalid foo([1,2], bar() ) ok 17454 space-in-parens invalid foo({ bar: 'baz' }) ok 17455 space-in-parens invalid foo( { bar: 'baz' } ) ok 17456 space-in-parens invalid foo({ bar: 'baz' }) ok 17457 space-in-parens invalid foo( { bar: 'baz' } ) ok 17458 space-in-parens invalid foo( { bar: 'baz' }) ok 17459 space-in-parens invalid foo( { bar: 'baz' }) ok 17460 space-in-parens invalid foo({ bar: 'baz' } ) ok 17461 space-in-parens invalid foo({ bar: 'baz' } ) ok 17462 space-in-parens invalid foo([ 1, 2 ]) ok 17463 space-in-parens invalid foo( [ 1, 2 ] ) ok 17464 space-in-parens invalid foo([ 1, 2 ]) ok 17465 space-in-parens invalid foo( [ 1, 2 ] ) ok 17466 space-in-parens invalid foo([ 1, 2 ] ) ok 17467 space-in-parens invalid foo([ 1, 2 ] ) ok 17468 space-in-parens invalid foo( [ 1, 2 ]) ok 17469 space-in-parens invalid foo( [ 1, 2 ]) ok 17470 space-in-parens invalid (( 1 + 2 )) ok 17471 space-in-parens invalid ( ( 1 + 2 ) ) ok 17472 space-in-parens invalid ( ( 1 + 2 ) ) ok 17473 space-in-parens invalid ( ( 1 + 2 ) ) ok 17474 space-in-parens invalid ((1 + 2)) ok 17475 space-in-parens invalid ((1 + 2)) ok 17476 space-in-parens invalid ((1 + 2) ) ok 17477 space-in-parens invalid var result = ( 1 / ( 1 + 2 ) ) + 3 ok 17478 space-in-parens invalid var result = (1 / (1 + 2)) + 3 ok 17479 space-in-parens invalid var result = (1 / ( 1 + 2) ) + 3 ok 17480 space-in-parens invalid var foo = `(bar ${( 1 + 2 )})`; ok 17481 space-in-parens invalid var foo = `(bar ${(1 + 2 )})`; ok 17482 space-infix-ops valid a + b ok 17483 space-infix-ops valid a + ++b ok 17484 space-infix-ops valid a++ + b ok 17485 space-infix-ops valid a++ + ++b ok 17486 space-infix-ops valid a + b ok 17487 space-infix-ops valid (a) + (b) ok 17488 space-infix-ops valid ((a)) + ((b)) ok 17489 space-infix-ops valid (((a))) + (((b))) ok 17490 space-infix-ops valid a + +b ok 17491 space-infix-ops valid a + (b) ok 17492 space-infix-ops valid a + +(b) ok 17493 space-infix-ops valid a + (+(b)) ok 17494 space-infix-ops valid (a + b) + (c + d) ok 17495 space-infix-ops valid a = b ok 17496 space-infix-ops valid a ? b : c ok 17497 space-infix-ops valid var a = b ok 17498 space-infix-ops valid const my_object = {key: 'value'}; ok 17499 space-infix-ops valid var {a = 0} = bar; ok 17500 space-infix-ops valid function foo(a = 0) { } ok 17501 space-infix-ops valid a ** b ok 17502 space-infix-ops valid a|0 ok 17503 space-infix-ops valid a |0 ok 17504 space-infix-ops valid function foo(a: number = 0) { } ok 17505 space-infix-ops valid function foo(): Bar { } ok 17506 space-infix-ops valid var foo: Bar = ''; ok 17507 space-infix-ops valid const foo = function(a: number = 0): Bar { }; ok 17508 space-infix-ops valid type Foo = T; ok 17509 space-infix-ops invalid a+b ok 17510 space-infix-ops invalid a +b ok 17511 space-infix-ops invalid a+ b ok 17512 space-infix-ops invalid a||b ok 17513 space-infix-ops invalid a ||b ok 17514 space-infix-ops invalid a|| b ok 17515 space-infix-ops invalid a=b ok 17516 space-infix-ops invalid a= b ok 17517 space-infix-ops invalid a =b ok 17518 space-infix-ops invalid a?b:c ok 17519 space-infix-ops invalid a?b : c ok 17520 space-infix-ops invalid a ? b:c ok 17521 space-infix-ops invalid a? b : c ok 17522 space-infix-ops invalid a ?b : c ok 17523 space-infix-ops invalid a ? b: c ok 17524 space-infix-ops invalid a ? b :c ok 17525 space-infix-ops invalid var a=b; ok 17526 space-infix-ops invalid var a= b; ok 17527 space-infix-ops invalid var a =b; ok 17528 space-infix-ops invalid var a = b, c=d; ok 17529 space-infix-ops invalid a| 0 ok 17530 space-infix-ops invalid var output = test || (test && test.value) ||(test2 && test2.value); ok 17531 space-infix-ops invalid var output = a ||(b && c.value) || (d && e.value); ok 17532 space-infix-ops invalid var output = a|| (b && c.value) || (d && e.value); ok 17533 space-infix-ops invalid const my_object={key: 'value'} ok 17534 space-infix-ops invalid var {a=0}=bar; ok 17535 space-infix-ops invalid function foo(a=0) { } ok 17536 space-infix-ops invalid a**b ok 17537 space-infix-ops invalid 'foo'in{} ok 17538 space-infix-ops invalid 'foo'instanceof{} ok 17539 space-infix-ops invalid var a: Foo= b; ok 17540 space-infix-ops invalid function foo(a: number=0): Foo { } ok 17541 space-unary-ops valid ++this.a ok 17542 space-unary-ops valid --this.a ok 17543 space-unary-ops valid this.a++ ok 17544 space-unary-ops valid this.a-- ok 17545 space-unary-ops valid foo .bar++ ok 17546 space-unary-ops valid foo.bar -- ok 17547 space-unary-ops valid delete foo.bar ok 17548 space-unary-ops valid delete foo["bar"] ok 17549 space-unary-ops valid delete foo.bar ok 17550 space-unary-ops valid delete(foo.bar) ok 17551 space-unary-ops valid new Foo ok 17552 space-unary-ops valid new Foo() ok 17553 space-unary-ops valid new [foo][0] ok 17554 space-unary-ops valid new[foo][0] ok 17555 space-unary-ops valid typeof foo ok 17556 space-unary-ops valid typeof{foo:true} ok 17557 space-unary-ops valid typeof {foo:true} ok 17558 space-unary-ops valid typeof (foo) ok 17559 space-unary-ops valid typeof(foo) ok 17560 space-unary-ops valid typeof!foo ok 17561 space-unary-ops valid void 0 ok 17562 space-unary-ops valid (void 0) ok 17563 space-unary-ops valid (void (0)) ok 17564 space-unary-ops valid void foo ok 17565 space-unary-ops valid void foo ok 17566 space-unary-ops valid void(foo) ok 17567 space-unary-ops valid -1 ok 17568 space-unary-ops valid !foo ok 17569 space-unary-ops valid !!foo ok 17570 space-unary-ops valid foo++ ok 17571 space-unary-ops valid foo ++ ok 17572 space-unary-ops valid ++foo ok 17573 space-unary-ops valid ++ foo ok 17574 space-unary-ops valid function *foo () { yield (0) } ok 17575 space-unary-ops valid function *foo() { yield +1 } ok 17576 space-unary-ops valid function *foo() { yield* 0 } ok 17577 space-unary-ops valid function *foo() { yield * 0 } ok 17578 space-unary-ops valid function *foo() { (yield)*0 } ok 17579 space-unary-ops valid function *foo() { (yield) * 0 } ok 17580 space-unary-ops valid function *foo() { yield*0 } ok 17581 space-unary-ops valid function *foo() { yield *0 } ok 17582 space-unary-ops valid async function foo() { await {foo: 1} } ok 17583 space-unary-ops valid async function foo() { await {bar: 2} } ok 17584 space-unary-ops valid async function foo() { await{baz: 3} } ok 17585 space-unary-ops valid async function foo() { await {qux: 4} } ok 17586 space-unary-ops valid async function foo() { await{foo: 5} } ok 17587 space-unary-ops valid foo++ ok 17588 space-unary-ops valid foo++ ok 17589 space-unary-ops valid ++foo ok 17590 space-unary-ops valid ++foo ok 17591 space-unary-ops valid !foo ok 17592 space-unary-ops valid !foo ok 17593 space-unary-ops valid new foo ok 17594 space-unary-ops valid new foo ok 17595 space-unary-ops valid function *foo () { yield(0) } ok 17596 space-unary-ops valid function *foo () { yield(0) } ok 17597 space-unary-ops invalid delete(foo.bar) ok 17598 space-unary-ops invalid delete(foo["bar"]); ok 17599 space-unary-ops invalid delete (foo.bar) ok 17600 space-unary-ops invalid new(Foo) ok 17601 space-unary-ops invalid new (Foo) ok 17602 space-unary-ops invalid new(Foo()) ok 17603 space-unary-ops invalid new [foo][0] ok 17604 space-unary-ops invalid typeof(foo) ok 17605 space-unary-ops invalid typeof (foo) ok 17606 space-unary-ops invalid typeof[foo] ok 17607 space-unary-ops invalid typeof [foo] ok 17608 space-unary-ops invalid typeof{foo:true} ok 17609 space-unary-ops invalid typeof {foo:true} ok 17610 space-unary-ops invalid typeof!foo ok 17611 space-unary-ops invalid void(0); ok 17612 space-unary-ops invalid void(foo); ok 17613 space-unary-ops invalid void[foo]; ok 17614 space-unary-ops invalid void{a:0}; ok 17615 space-unary-ops invalid void (foo) ok 17616 space-unary-ops invalid void [foo] ok 17617 space-unary-ops invalid ! foo ok 17618 space-unary-ops invalid !foo ok 17619 space-unary-ops invalid !! foo ok 17620 space-unary-ops invalid !!foo ok 17621 space-unary-ops invalid - 1 ok 17622 space-unary-ops invalid -1 ok 17623 space-unary-ops invalid foo++ ok 17624 space-unary-ops invalid foo ++ ok 17625 space-unary-ops invalid ++ foo ok 17626 space-unary-ops invalid ++foo ok 17627 space-unary-ops invalid foo .bar++ ok 17628 space-unary-ops invalid foo.bar -- ok 17629 space-unary-ops invalid + +foo ok 17630 space-unary-ops invalid + ++foo ok 17631 space-unary-ops invalid - -foo ok 17632 space-unary-ops invalid - --foo ok 17633 space-unary-ops invalid + -foo ok 17634 space-unary-ops invalid function *foo() { yield(0) } ok 17635 space-unary-ops invalid function *foo() { yield (0) } ok 17636 space-unary-ops invalid function *foo() { yield+0 } ok 17637 space-unary-ops invalid foo++ ok 17638 space-unary-ops invalid foo++ ok 17639 space-unary-ops invalid ++foo ok 17640 space-unary-ops invalid ++foo ok 17641 space-unary-ops invalid !foo ok 17642 space-unary-ops invalid !foo ok 17643 space-unary-ops invalid new(Foo) ok 17644 space-unary-ops invalid new(Foo) ok 17645 space-unary-ops invalid function *foo() { yield(0) } ok 17646 space-unary-ops invalid function *foo() { yield(0) } ok 17647 space-unary-ops invalid async function foo() { await{foo: 'bar'} } ok 17648 space-unary-ops invalid async function foo() { await{baz: 'qux'} } ok 17649 space-unary-ops invalid async function foo() { await {foo: 1} } ok 17650 space-unary-ops invalid async function foo() { await {bar: 2} } ok 17651 spaced-comment valid // A valid comment starting with space\u000avar a = 1; ok 17652 spaced-comment valid // A valid comment starting with tab\u000avar a = 1; ok 17653 spaced-comment valid //A valid comment NOT starting with space\u000avar a = 2; ok 17654 spaced-comment valid //-----------------------\u000a// A comment\u000a//----------------------- ok 17655 spaced-comment valid //-----------------------\u000a// A comment\u000a//----------------------- ok 17656 spaced-comment valid //===========\u000a// A comment\u000a//************* ok 17657 spaced-comment valid //\u000a// A comment ok 17658 spaced-comment valid //!@!@!@\u000a// A comment\u000a//!@ ok 17659 spaced-comment valid var a = 1; /**/ ok 17660 spaced-comment valid var a = 1; /**/ ok 17661 spaced-comment valid /*****************\u000a * A comment\u000a *****************/ ok 17662 spaced-comment valid /*++++++++++++++\u000a * A comment\u000a +++++++++++++++++*/ ok 17663 spaced-comment valid /*++++++++++++++\u000a + A comment\u000a * B comment\u000a - C comment\u000a----------------*/ ok 17664 spaced-comment valid //!< docblock style comment ok 17665 spaced-comment valid //!< docblock style comment ok 17666 spaced-comment valid //----\u000a// a comment\u000a//----\u000a/// xmldoc style comment\u000a//!< docblock style comment ok 17667 spaced-comment valid /*
x*/ ok 17668 spaced-comment valid ///xmldoc style comment ok 17669 spaced-comment valid var a = 1; /* This is an example of a marker in a block comment\u000asubsequent lines do not count*/ ok 17670 spaced-comment valid /*!\u000a *comment\u000a */ ok 17671 spaced-comment valid /*!\u000a *comment\u000a */ ok 17672 spaced-comment valid /**\u000a *jsdoc\u000a */ ok 17673 spaced-comment valid /*global ABC*/ ok 17674 spaced-comment valid /*eslint-env node*/ ok 17675 spaced-comment valid /*eslint eqeqeq:0, curly: 2*/ ok 17676 spaced-comment valid /*eslint-disable no-alert, no-console */\u000aalert()\u000aconsole.log()\u000a/*eslint-enable no-alert */ ok 17677 spaced-comment valid !/path/to/node\u000avar a = 3; ok 17678 spaced-comment valid !/path/to/node\u000avar a = 3; ok 17679 spaced-comment valid // ok 17680 spaced-comment valid //\u000a ok 17681 spaced-comment valid // space only at start; valid since balanced doesn't apply to line comments ok 17682 spaced-comment valid //space only at end; valid since balanced doesn't apply to line comments ok 17683 spaced-comment valid var a = 1; /* A valid comment starting with space */ ok 17684 spaced-comment valid var a = 1; /*A valid comment NOT starting with space */ ok 17685 spaced-comment valid function foo(/* height */a) { \u000a } ok 17686 spaced-comment valid function foo(/*height */a) { \u000a } ok 17687 spaced-comment valid function foo(a/* height */) { \u000a } ok 17688 spaced-comment valid /*\u000a * Test\u000a */ ok 17689 spaced-comment valid /*\u000a *Test\u000a */ ok 17690 spaced-comment valid /* \u000a *Test\u000a */ ok 17691 spaced-comment valid /*\u000d\u000a *Test\u000d\u000a */ ok 17692 spaced-comment valid /* \u000d\u000a *Test\u000d\u000a */ ok 17693 spaced-comment valid /**\u000a *jsdoc\u000a */ ok 17694 spaced-comment valid /**\u000d\u000a *jsdoc\u000d\u000a */ ok 17695 spaced-comment valid /**\u000a *jsdoc\u000a */ ok 17696 spaced-comment valid /** \u000a *jsdoc \u000a */ ok 17697 spaced-comment valid var a = 1; /* comment */ ok 17698 spaced-comment valid var a = 1; /*comment*/ ok 17699 spaced-comment valid function foo(/* height */a) { \u000a } ok 17700 spaced-comment valid function foo(/*height*/a) { \u000a } ok 17701 spaced-comment valid var a = 1; /**/ ok 17702 spaced-comment valid /*****************\u000a * A comment\u000a *****************/ ok 17703 spaced-comment valid /*! comment */ ok 17704 spaced-comment valid /*!comment*/ ok 17705 spaced-comment valid /*!\u000a *comment\u000a */ ok 17706 spaced-comment valid /*global ABC */ ok 17707 spaced-comment valid ///--------\u000d\u000a/// test\u000d\u000a///-------- ok 17708 spaced-comment valid ///--------\u000d\u000a/// test\u000d\u000a///--------\u000d\u000a/* blah */ ok 17709 spaced-comment valid /***
*/ ok 17710 spaced-comment invalid //An invalid comment NOT starting with space\u000avar a = 1; ok 17711 spaced-comment invalid // An invalid comment starting with space\u000avar a = 2; ok 17712 spaced-comment invalid // An invalid comment starting with tab\u000avar a = 2; ok 17713 spaced-comment invalid //*********************-\u000a// Comment Block 3\u000a//*********************** ok 17714 spaced-comment invalid //-=-=-=-=-=-=\u000a// A comment\u000a//-=-=-=-=-=-= ok 17715 spaced-comment invalid //! 1; ok 17746 strict valid var fn = x => { return; }; ok 17747 strict valid foo(); ok 17748 strict valid function foo() { return; } ok 17749 strict valid // Intentionally empty ok 17750 strict valid "use strict"; foo(); ok 17751 strict valid foo(); ok 17752 strict valid function foo() { return; } ok 17753 strict valid 'use strict'; function foo() { return; } ok 17754 strict valid 'use strict'; var foo = function() { return; }; ok 17755 strict valid 'use strict'; function foo() { bar(); 'use strict'; return; } ok 17756 strict valid 'use strict'; var foo = function() { bar(); 'use strict'; return; }; ok 17757 strict valid 'use strict'; function foo() { return function() { bar(); 'use strict'; return; }; } ok 17758 strict valid 'use strict'; var foo = () => { return () => { bar(); 'use strict'; return; }; } ok 17759 strict valid function foo() { 'use strict'; return; } ok 17760 strict valid function foo() { return; } ok 17761 strict valid function foo() { return; } ok 17762 strict valid var foo = function() { return; } ok 17763 strict valid var foo = function() { 'use strict'; return; } ok 17764 strict valid function foo() { 'use strict'; return; } var bar = function() { 'use strict'; bar(); }; ok 17765 strict valid var foo = function() { 'use strict'; function bar() { return; } bar(); }; ok 17766 strict valid var foo = () => { 'use strict'; var bar = () => 1; bar(); }; ok 17767 strict valid var foo = () => { var bar = () => 1; bar(); }; ok 17768 strict valid class A { constructor() { } } ok 17769 strict valid class A { foo() { } } ok 17770 strict valid class A { foo() { function bar() { } } } ok 17771 strict valid (function() { 'use strict'; function foo(a = 0) { } }()) ok 17772 strict valid function foo() { 'use strict'; return; } ok 17773 strict valid 'use strict'; function foo() { return; } ok 17774 strict valid function foo() { return; } ok 17775 strict valid function foo() { return; } ok 17776 strict valid function foo() { 'use strict'; return; } ok 17777 strict valid 'use strict'; function foo() { return; } ok 17778 strict valid function foo() { return; } ok 17779 strict valid function foo() { return; } ok 17780 strict invalid "use strict"; foo(); ok 17781 strict invalid function foo() { 'use strict'; return; } ok 17782 strict invalid var foo = function() { 'use strict'; return; }; ok 17783 strict invalid function foo() { return function() { 'use strict'; return; }; } ok 17784 strict invalid 'use strict'; function foo() { "use strict"; return; } ok 17785 strict invalid "use strict"; foo(); ok 17786 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17787 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17788 strict invalid foo(); ok 17789 strict invalid function foo() { 'use strict'; return; } ok 17790 strict invalid var foo = function() { 'use strict'; return; } ok 17791 strict invalid var foo = () => { 'use strict'; return () => 1; } ok 17792 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17793 strict invalid 'use strict'; var foo = function() { 'use strict'; return; }; ok 17794 strict invalid 'use strict'; 'use strict'; foo(); ok 17795 strict invalid 'use strict'; foo(); ok 17796 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17797 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17798 strict invalid 'use strict'; foo(); ok 17799 strict invalid 'use strict'; (function() { 'use strict'; return true; }()); ok 17800 strict invalid (function() { 'use strict'; function f() { 'use strict'; return } return true; }()); ok 17801 strict invalid (function() { return true; }()); ok 17802 strict invalid (() => { return true; })(); ok 17803 strict invalid (() => true)(); ok 17804 strict invalid var foo = function() { foo(); 'use strict'; return; }; function bar() { foo(); 'use strict'; } ok 17805 strict invalid function foo() { 'use strict'; 'use strict'; return; } ok 17806 strict invalid var foo = function() { 'use strict'; 'use strict'; return; } ok 17807 strict invalid var foo = function() { 'use strict'; return; } ok 17808 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17809 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17810 strict invalid function foo() { return function() { 'use strict'; return; }; } ok 17811 strict invalid var foo = function() { function bar() { 'use strict'; return; } return; } ok 17812 strict invalid function foo() { 'use strict'; return; } var bar = function() { return; }; ok 17813 strict invalid var foo = function() { 'use strict'; return; }; function bar() { return; }; ok 17814 strict invalid function foo() { 'use strict'; return function() { 'use strict'; 'use strict'; return; }; } ok 17815 strict invalid var foo = function() { 'use strict'; function bar() { 'use strict'; 'use strict'; return; } } ok 17816 strict invalid var foo = () => { return; }; ok 17817 strict invalid class A { constructor() { "use strict"; } } ok 17818 strict invalid class A { foo() { "use strict"; } } ok 17819 strict invalid class A { foo() { function bar() { "use strict"; } } } ok 17820 strict invalid 'use strict'; function foo() { return; } ok 17821 strict invalid function foo() { 'use strict'; return; } ok 17822 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17823 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17824 strict invalid 'use strict'; function foo() { return; } ok 17825 strict invalid function foo() { return; } ok 17826 strict invalid function foo() { 'use strict'; return; } ok 17827 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17828 strict invalid 'use strict'; function foo() { 'use strict'; return; } ok 17829 strict invalid function foo(a = 0) { 'use strict' } ok 17830 strict invalid (function() { 'use strict'; function foo(a = 0) { 'use strict' } }()) ok 17831 strict invalid function foo(a = 0) { 'use strict' } ok 17832 strict invalid 'use strict'; function foo(a = 0) { 'use strict' } ok 17833 strict invalid function foo(a = 0) { 'use strict' } ok 17834 strict invalid function foo(a = 0) { 'use strict' } ok 17835 strict invalid 'use strict'; function foo(a = 0) { 'use strict' } ok 17836 strict invalid function foo(a = 0) { 'use strict' } ok 17837 strict invalid (function() { 'use strict'; function foo(a = 0) { 'use strict' } }()) ok 17838 strict invalid function foo(a = 0) { } ok 17839 strict invalid (function() { function foo(a = 0) { } }()) ok 17840 switch-colon-spacing valid switch(a){} ok 17841 switch-colon-spacing valid ({foo:1,bar : 2}); ok 17842 switch-colon-spacing valid A:foo(); B : foo(); ok 17843 switch-colon-spacing valid switch(a){case 0: break;} ok 17844 switch-colon-spacing valid switch(a){case 0:} ok 17845 switch-colon-spacing valid switch(a){case 0\u000a:\u000abreak;} ok 17846 switch-colon-spacing valid switch(a){default: break;} ok 17847 switch-colon-spacing valid switch(a){default:} ok 17848 switch-colon-spacing valid switch(a){default\u000a:\u000abreak;} ok 17849 switch-colon-spacing valid switch(a){case 0:break;} ok 17850 switch-colon-spacing valid switch(a){case 0:} ok 17851 switch-colon-spacing valid switch(a){case 0\u000a:\u000abreak;} ok 17852 switch-colon-spacing valid switch(a){default:break;} ok 17853 switch-colon-spacing valid switch(a){default:} ok 17854 switch-colon-spacing valid switch(a){default\u000a:\u000abreak;} ok 17855 switch-colon-spacing valid switch(a){case 0: break;} ok 17856 switch-colon-spacing valid switch(a){case 0:} ok 17857 switch-colon-spacing valid switch(a){case 0\u000a:\u000abreak;} ok 17858 switch-colon-spacing valid switch(a){default: break;} ok 17859 switch-colon-spacing valid switch(a){default:} ok 17860 switch-colon-spacing valid switch(a){default\u000a:\u000abreak;} ok 17861 switch-colon-spacing valid switch(a){case 0 :break;} ok 17862 switch-colon-spacing valid switch(a){case 0 :} ok 17863 switch-colon-spacing valid switch(a){case 0\u000a:\u000abreak;} ok 17864 switch-colon-spacing valid switch(a){default :break;} ok 17865 switch-colon-spacing valid switch(a){default :} ok 17866 switch-colon-spacing valid switch(a){default\u000a:\u000abreak;} ok 17867 switch-colon-spacing valid switch(a){case 0 : break;} ok 17868 switch-colon-spacing valid switch(a){case 0 :} ok 17869 switch-colon-spacing valid switch(a){case 0\u000a:\u000abreak;} ok 17870 switch-colon-spacing valid switch(a){default : break;} ok 17871 switch-colon-spacing valid switch(a){default :} ok 17872 switch-colon-spacing valid switch(a){default\u000a:\u000abreak;} ok 17873 switch-colon-spacing invalid switch(a){case 0 :break;} ok 17874 switch-colon-spacing invalid switch(a){default :break;} ok 17875 switch-colon-spacing invalid switch(a){case 0 : break;} ok 17876 switch-colon-spacing invalid switch(a){default : break;} ok 17877 switch-colon-spacing invalid switch(a){case 0 :break;} ok 17878 switch-colon-spacing invalid switch(a){default :break;} ok 17879 switch-colon-spacing invalid switch(a){case 0: break;} ok 17880 switch-colon-spacing invalid switch(a){default: break;} ok 17881 switch-colon-spacing invalid switch(a){case 0:break;} ok 17882 switch-colon-spacing invalid switch(a){default:break;} ok 17883 switch-colon-spacing invalid switch(a){case 0 /**/ :break;} ok 17884 switch-colon-spacing invalid switch(a){case 0 :/**/break;} ok 17885 switch-colon-spacing invalid switch(a){case (0) :break;} ok 17886 symbol-description valid Symbol("Foo"); ok 17887 symbol-description valid var foo = "foo"; Symbol(foo); ok 17888 symbol-description valid var Symbol = function () {}; Symbol(); ok 17889 symbol-description valid Symbol(); var Symbol = function () {}; ok 17890 symbol-description valid function bar() { var Symbol = function () {}; Symbol(); } ok 17891 symbol-description valid function bar(Symbol) { Symbol(); } ok 17892 symbol-description invalid Symbol(); ok 17893 symbol-description invalid Symbol(); Symbol = function () {}; ok 17894 template-curly-spacing valid { foo } ok 17895 template-curly-spacing valid `${foo} ${bar}` ok 17896 template-curly-spacing valid `${foo} ${bar} ${\u000a baz\u000a}` ok 17897 template-curly-spacing valid `${ foo } ${ bar } ${\u000a baz\u000a}` ok 17898 template-curly-spacing valid tag`${foo} ${bar}` ok 17899 template-curly-spacing valid tag`${foo} ${bar} ${\u000a baz\u000a}` ok 17900 template-curly-spacing valid tag`${ foo } ${ bar } ${\u000a baz\u000a}` ok 17901 template-curly-spacing invalid `${ foo } ${ bar }` ok 17902 template-curly-spacing invalid `${ foo } ${ bar }` ok 17903 template-curly-spacing invalid `${foo} ${bar}` ok 17904 template-curly-spacing invalid tag`${ foo } ${ bar }` ok 17905 template-curly-spacing invalid tag`${ foo } ${ bar }` ok 17906 template-curly-spacing invalid tag`${foo} ${bar}` ok 17907 template-tag-spacing valid tag`name` ok 17908 template-tag-spacing valid tag`name` ok 17909 template-tag-spacing valid tag `name` ok 17910 template-tag-spacing valid tag`hello ${name}` ok 17911 template-tag-spacing valid tag`hello ${name}` ok 17912 template-tag-spacing valid tag `hello ${name}` ok 17913 template-tag-spacing valid tag/*here's a comment*/`Hello world` ok 17914 template-tag-spacing valid tag/*here's a comment*/`Hello world` ok 17915 template-tag-spacing valid tag /*here's a comment*/`Hello world` ok 17916 template-tag-spacing valid tag/*here's a comment*/ `Hello world` ok 17917 template-tag-spacing valid new tag`name` ok 17918 template-tag-spacing valid new tag`name` ok 17919 template-tag-spacing valid new tag `name` ok 17920 template-tag-spacing valid new tag`hello ${name}` ok 17921 template-tag-spacing valid new tag`hello ${name}` ok 17922 template-tag-spacing valid new tag `hello ${name}` ok 17923 template-tag-spacing valid (tag)`name` ok 17924 template-tag-spacing valid (tag)`name` ok 17925 template-tag-spacing valid (tag) `name` ok 17926 template-tag-spacing valid (tag)`hello ${name}` ok 17927 template-tag-spacing valid (tag)`hello ${name}` ok 17928 template-tag-spacing valid (tag) `hello ${name}` ok 17929 template-tag-spacing valid new (tag)`name` ok 17930 template-tag-spacing valid new (tag)`name` ok 17931 template-tag-spacing valid new (tag) `name` ok 17932 template-tag-spacing valid new (tag)`hello ${name}` ok 17933 template-tag-spacing valid new (tag)`hello ${name}` ok 17934 template-tag-spacing valid new (tag) `hello ${name}` ok 17935 template-tag-spacing invalid tag `name` ok 17936 template-tag-spacing invalid tag `name` ok 17937 template-tag-spacing invalid tag`name` ok 17938 template-tag-spacing invalid tag /*here's a comment*/`Hello world` ok 17939 template-tag-spacing invalid tag/*here's a comment*/ `Hello world` ok 17940 template-tag-spacing invalid tag/*here's a comment*/`Hello world` ok 17941 template-tag-spacing invalid tag // here's a comment \u000a`bar` ok 17942 template-tag-spacing invalid tag // here's a comment \u000a`bar` ok 17943 template-tag-spacing invalid tag `hello ${name}` ok 17944 template-tag-spacing invalid tag `hello ${name}` ok 17945 template-tag-spacing invalid tag`hello ${name}` ok 17946 template-tag-spacing invalid new tag `name` ok 17947 template-tag-spacing invalid new tag `name` ok 17948 template-tag-spacing invalid new tag`name` ok 17949 template-tag-spacing invalid new tag `hello ${name}` ok 17950 template-tag-spacing invalid new tag `hello ${name}` ok 17951 template-tag-spacing invalid new tag`hello ${name}` ok 17952 template-tag-spacing invalid (tag) `name` ok 17953 template-tag-spacing invalid (tag) `name` ok 17954 template-tag-spacing invalid (tag)`name` ok 17955 template-tag-spacing invalid (tag) `hello ${name}` ok 17956 template-tag-spacing invalid (tag) `hello ${name}` ok 17957 template-tag-spacing invalid (tag)`hello ${name}` ok 17958 template-tag-spacing invalid new (tag) `name` ok 17959 template-tag-spacing invalid new (tag) `name` ok 17960 template-tag-spacing invalid new (tag)`name` ok 17961 template-tag-spacing invalid new (tag) `hello ${name}` ok 17962 template-tag-spacing invalid new (tag) `hello ${name}` ok 17963 template-tag-spacing invalid new (tag)`hello ${name}` ok 17964 unicode-bom valid  var a = 123; ok 17965 unicode-bom valid var a = 123; ok 17966 unicode-bom valid var a = 123;  ok 17967 unicode-bom invalid var a = 123; ok 17968 unicode-bom invalid // here's a comment \u000avar a = 123; ok 17969 unicode-bom invalid  var a = 123; ok 17970 unicode-bom invalid  var a = 123; ok 17971 use-isnan valid var x = NaN; ok 17972 use-isnan valid isNaN(NaN) === true; ok 17973 use-isnan valid isNaN(123) !== true; ok 17974 use-isnan valid Number.isNaN(NaN) === true; ok 17975 use-isnan valid Number.isNaN(123) !== true; ok 17976 use-isnan valid foo(NaN + 1); ok 17977 use-isnan valid foo(1 + NaN); ok 17978 use-isnan valid foo(NaN - 1) ok 17979 use-isnan valid foo(1 - NaN) ok 17980 use-isnan valid foo(NaN * 2) ok 17981 use-isnan valid foo(2 * NaN) ok 17982 use-isnan valid foo(NaN / 2) ok 17983 use-isnan valid foo(2 / NaN) ok 17984 use-isnan valid var x; if (x = NaN) { } ok 17985 use-isnan invalid 123 == NaN; ok 17986 use-isnan invalid 123 === NaN; ok 17987 use-isnan invalid NaN === "abc"; ok 17988 use-isnan invalid NaN == "abc"; ok 17989 use-isnan invalid 123 != NaN; ok 17990 use-isnan invalid 123 !== NaN; ok 17991 use-isnan invalid NaN !== "abc"; ok 17992 use-isnan invalid NaN != "abc"; ok 17993 use-isnan invalid NaN < "abc"; ok 17994 use-isnan invalid "abc" < NaN; ok 17995 use-isnan invalid NaN > "abc"; ok 17996 use-isnan invalid "abc" > NaN; ok 17997 use-isnan invalid NaN <= "abc"; ok 17998 use-isnan invalid "abc" <= NaN; ok 17999 use-isnan invalid NaN >= "abc"; ok 18000 use-isnan invalid "abc" >= NaN; ok 18001 ast-utils isTokenOnSameLine should return false if the tokens are not on the same line ok 18002 ast-utils isTokenOnSameLine should return true if the tokens are on the same line ok 18003 ast-utils isNullOrUndefined should return true if the argument is null ok 18004 ast-utils isNullOrUndefined should return true if the argument is undefined ok 18005 ast-utils isNullOrUndefined should return false if the argument is a number ok 18006 ast-utils isNullOrUndefined should return false if the argument is a string ok 18007 ast-utils isNullOrUndefined should return false if the argument is a boolean ok 18008 ast-utils isNullOrUndefined should return false if the argument is an object ok 18009 ast-utils isNullOrUndefined should return false if the argument is a unicode regex ok 18010 ast-utils checkReference should return true if reference is assigned for catch ok 18011 ast-utils checkReference should return true if reference is assigned for const ok 18012 ast-utils checkReference should return false if reference is not assigned for const ok 18013 ast-utils checkReference should return true if reference is assigned for class ok 18014 ast-utils checkReference should return false if reference is not assigned for class ok 18015 ast-utils isDirectiveComment should return false if it is not a directive line comment ok 18016 ast-utils isDirectiveComment should return false if it is not a directive block comment ok 18017 ast-utils isDirectiveComment should return true if it is a directive line comment ok 18018 ast-utils isDirectiveComment should return true if it is a directive block comment ok 18019 ast-utils isParenthesised should return false for not parenthesised nodes ok 18020 ast-utils isParenthesised should return true for not parenthesised nodes ok 18021 ast-utils isFunction should return true for FunctionDeclaration ok 18022 ast-utils isFunction should return true for FunctionExpression ok 18023 ast-utils isFunction should return true for AllowFunctionExpression ok 18024 ast-utils isFunction should return false for Program, VariableDeclaration, BlockStatement ok 18025 ast-utils isLoop should return true for DoWhileStatement ok 18026 ast-utils isLoop should return true for ForInStatement ok 18027 ast-utils isLoop should return true for ForOfStatement ok 18028 ast-utils isLoop should return true for ForStatement ok 18029 ast-utils isLoop should return true for WhileStatement ok 18030 ast-utils isLoop should return false for Program, VariableDeclaration, BlockStatement ok 18031 ast-utils isInLoop should return true for a loop itself ok 18032 ast-utils isInLoop should return true for a loop condition ok 18033 ast-utils isInLoop should return true for a loop assignee ok 18034 ast-utils isInLoop should return true for a node within a loop body ok 18035 ast-utils isInLoop should return false for a node outside a loop body ok 18036 ast-utils isInLoop should return false when the loop is not in the current function ok 18037 ast-utils getStaticPropertyName should return 'b' for `a.b` ok 18038 ast-utils getStaticPropertyName should return 'b' for `a['b']` ok 18039 ast-utils getStaticPropertyName should return 'b' for `a[`b`]` ok 18040 ast-utils getStaticPropertyName should return '100' for `a[100]` ok 18041 ast-utils getStaticPropertyName should return null for `a[b]` ok 18042 ast-utils getStaticPropertyName should return null for `a['a' + 'b']` ok 18043 ast-utils getStaticPropertyName should return null for `a[tag`b`]` ok 18044 ast-utils getStaticPropertyName should return null for `a[`${b}`]` ok 18045 ast-utils getStaticPropertyName should return 'b' for `b: 1` ok 18046 ast-utils getStaticPropertyName should return 'b' for `b() {}` ok 18047 ast-utils getStaticPropertyName should return 'b' for `get b() {}` ok 18048 ast-utils getStaticPropertyName should return 'b' for `['b']: 1` ok 18049 ast-utils getStaticPropertyName should return 'b' for `['b']() {}` ok 18050 ast-utils getStaticPropertyName should return 'b' for `[`b`]: 1` ok 18051 ast-utils getStaticPropertyName should return '100' for` [100]: 1` ok 18052 ast-utils getStaticPropertyName should return null for `[b]: 1` ok 18053 ast-utils getStaticPropertyName should return null for `['a' + 'b']: 1` ok 18054 ast-utils getStaticPropertyName should return null for `[tag`b`]: 1` ok 18055 ast-utils getStaticPropertyName should return null for `[`${b}`]: 1` ok 18056 ast-utils getStaticPropertyName should return null for non member expressions ok 18057 ast-utils getDirectivePrologue should return empty array if node is not a Program, FunctionDeclaration, FunctionExpression, or ArrowFunctionExpression ok 18058 ast-utils getDirectivePrologue should return empty array if node is a braceless ArrowFunctionExpression node ok 18059 ast-utils getDirectivePrologue should return empty array if there are no directives in Program body ok 18060 ast-utils getDirectivePrologue should return empty array if there are no directives in FunctionDeclaration body ok 18061 ast-utils getDirectivePrologue should return empty array if there are no directives in FunctionExpression body ok 18062 ast-utils getDirectivePrologue should return empty array if there are no directives in ArrowFunctionExpression body ok 18063 ast-utils getDirectivePrologue should return directives in Program body ok 18064 ast-utils getDirectivePrologue should return directives in FunctionDeclaration body ok 18065 ast-utils getDirectivePrologue should return directives in FunctionExpression body ok 18066 ast-utils getDirectivePrologue should return directives in ArrowFunctionExpression body ok 18067 ast-utils isDecimalInteger should return true for 0 ok 18068 ast-utils isDecimalInteger should return true for 5 ok 18069 ast-utils isDecimalInteger should return false for 5. ok 18070 ast-utils isDecimalInteger should return false for 5.0 ok 18071 ast-utils isDecimalInteger should return false for 05 ok 18072 ast-utils isDecimalInteger should return false for 0x5 ok 18073 ast-utils isDecimalInteger should return false for 5e0 ok 18074 ast-utils isDecimalInteger should return false for 5e-0 ok 18075 ast-utils isDecimalInteger should return false for '5' ok 18076 ast-utils isDecimalIntegerNumericToken should return true for 0 ok 18077 ast-utils isDecimalIntegerNumericToken should return true for 5 ok 18078 ast-utils isDecimalIntegerNumericToken should return false for 5. ok 18079 ast-utils isDecimalIntegerNumericToken should return false for 5.0 ok 18080 ast-utils isDecimalIntegerNumericToken should return false for 05 ok 18081 ast-utils isDecimalIntegerNumericToken should return false for 0x5 ok 18082 ast-utils isDecimalIntegerNumericToken should return false for 5e0 ok 18083 ast-utils isDecimalIntegerNumericToken should return false for 5e-0 ok 18084 ast-utils isDecimalIntegerNumericToken should return false for '5' ok 18085 ast-utils getFunctionNameWithKind should return "function 'foo'" for "function foo() {}". ok 18086 ast-utils getFunctionNameWithKind should return "function 'foo'" for "(function foo() {})". ok 18087 ast-utils getFunctionNameWithKind should return "function" for "(function() {})". ok 18088 ast-utils getFunctionNameWithKind should return "generator function 'foo'" for "function* foo() {}". ok 18089 ast-utils getFunctionNameWithKind should return "generator function 'foo'" for "(function* foo() {})". ok 18090 ast-utils getFunctionNameWithKind should return "generator function" for "(function*() {})". ok 18091 ast-utils getFunctionNameWithKind should return "arrow function" for "() => {}". ok 18092 ast-utils getFunctionNameWithKind should return "async arrow function" for "async () => {}". ok 18093 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ foo: function foo() {} })". ok 18094 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ foo: function() {} })". ok 18095 ast-utils getFunctionNameWithKind should return "method ''" for "({ '': function() {} })". ok 18096 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ ['foo']: function() {} })". ok 18097 ast-utils getFunctionNameWithKind should return "method ''" for "({ ['']: function() {} })". ok 18098 ast-utils getFunctionNameWithKind should return "method" for "({ [foo]: function() {} })". ok 18099 ast-utils getFunctionNameWithKind should return "method 'foo'" for "({ foo() {} })". ok 18100 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ foo: function* foo() {} })". ok 18101 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ foo: function*() {} })". ok 18102 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ ['foo']: function*() {} })". ok 18103 ast-utils getFunctionNameWithKind should return "generator method" for "({ [foo]: function*() {} })". ok 18104 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "({ *foo() {} })". ok 18105 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ foo: async function foo() {} })". ok 18106 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ foo: async function() {} })". ok 18107 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ ['foo']: async function() {} })". ok 18108 ast-utils getFunctionNameWithKind should return "async method" for "({ [foo]: async function() {} })". ok 18109 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "({ async foo() {} })". ok 18110 ast-utils getFunctionNameWithKind should return "getter 'foo'" for "({ get foo() {} })". ok 18111 ast-utils getFunctionNameWithKind should return "setter 'foo'" for "({ set foo(a) {} })". ok 18112 ast-utils getFunctionNameWithKind should return "constructor" for "class A { constructor() {} }". ok 18113 ast-utils getFunctionNameWithKind should return "method 'foo'" for "class A { foo() {} }". ok 18114 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "class A { *foo() {} }". ok 18115 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "class A { async foo() {} }". ok 18116 ast-utils getFunctionNameWithKind should return "method 'foo'" for "class A { ['foo']() {} }". ok 18117 ast-utils getFunctionNameWithKind should return "generator method 'foo'" for "class A { *['foo']() {} }". ok 18118 ast-utils getFunctionNameWithKind should return "async method 'foo'" for "class A { async ['foo']() {} }". ok 18119 ast-utils getFunctionNameWithKind should return "method" for "class A { [foo]() {} }". ok 18120 ast-utils getFunctionNameWithKind should return "generator method" for "class A { *[foo]() {} }". ok 18121 ast-utils getFunctionNameWithKind should return "async method" for "class A { async [foo]() {} }". ok 18122 ast-utils getFunctionNameWithKind should return "getter 'foo'" for "class A { get foo() {} }". ok 18123 ast-utils getFunctionNameWithKind should return "setter 'foo'" for "class A { set foo(a) {} }". ok 18124 ast-utils getFunctionNameWithKind should return "static method 'foo'" for "class A { static foo() {} }". ok 18125 ast-utils getFunctionNameWithKind should return "static generator method 'foo'" for "class A { static *foo() {} }". ok 18126 ast-utils getFunctionNameWithKind should return "static async method 'foo'" for "class A { static async foo() {} }". ok 18127 ast-utils getFunctionNameWithKind should return "static getter 'foo'" for "class A { static get foo() {} }". ok 18128 ast-utils getFunctionNameWithKind should return "static setter 'foo'" for "class A { static set foo(a) {} }". ok 18129 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":0},"end":{"line":1,"column":12}}" for "function foo() {}". ok 18130 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":13}}" for "(function foo() {})". ok 18131 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":9}}" for "(function() {})". ok 18132 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}" for "function* foo() {}". ok 18133 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":14}}" for "(function* foo() {})". ok 18134 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":1},"end":{"line":1,"column":10}}" for "(function*() {})". ok 18135 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":5}}" for "() => {}". ok 18136 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":9},"end":{"line":1,"column":11}}" for "async () => {}". ok 18137 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":20}}" for "({ foo: function foo() {} })". ok 18138 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":16}}" for "({ foo: function() {} })". ok 18139 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":20}}" for "({ ['foo']: function() {} })". ok 18140 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":18}}" for "({ [foo]: function() {} })". ok 18141 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":6}}" for "({ foo() {} })". ok 18142 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":21}}" for "({ foo: function* foo() {} })". ok 18143 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":17}}" for "({ foo: function*() {} })". ok 18144 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":21}}" for "({ ['foo']: function*() {} })". ok 18145 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":19}}" for "({ [foo]: function*() {} })". ok 18146 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":7}}" for "({ *foo() {} })". ok 18147 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":26}}" for "({ foo: async function foo() {} })". ok 18148 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":22}}" for "({ foo: async function() {} })". ok 18149 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":26}}" for "({ ['foo']: async function() {} })". ok 18150 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":24}}" for "({ [foo]: async function() {} })". ok 18151 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":12}}" for "({ async foo() {} })". ok 18152 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":10}}" for "({ get foo() {} })". ok 18153 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":3},"end":{"line":1,"column":10}}" for "({ set foo(a) {} })". ok 18154 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}" for "class A { constructor() {} }". ok 18155 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":13}}" for "class A { foo() {} }". ok 18156 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":14}}" for "class A { *foo() {} }". ok 18157 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":19}}" for "class A { async foo() {} }". ok 18158 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}" for "class A { ['foo']() {} }". ok 18159 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":18}}" for "class A { *['foo']() {} }". ok 18160 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":23}}" for "class A { async ['foo']() {} }". ok 18161 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":15}}" for "class A { [foo]() {} }". ok 18162 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":16}}" for "class A { *[foo]() {} }". ok 18163 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}" for "class A { async [foo]() {} }". ok 18164 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}" for "class A { get foo() {} }". ok 18165 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":17}}" for "class A { set foo(a) {} }". ok 18166 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":20}}" for "class A { static foo() {} }". ok 18167 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}" for "class A { static *foo() {} }". ok 18168 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":26}}" for "class A { static async foo() {} }". ok 18169 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":24}}" for "class A { static get foo() {} }". ok 18170 ast-utils getFunctionHeadLoc should return "{"start":{"line":1,"column":10},"end":{"line":1,"column":24}}" for "class A { static set foo(a) {} }". ok 18171 ast-utils isEmptyBlock should return true for {} ok 18172 ast-utils isEmptyBlock should return false for { a } ok 18173 ast-utils isEmptyBlock should return false for a ok 18174 ast-utils isEmptyFunction should return true for (function foo() {}) ok 18175 ast-utils isEmptyFunction should return false for (function foo() { a }) ok 18176 ast-utils isEmptyFunction should return true for (a) => {} ok 18177 ast-utils isEmptyFunction should return false for (a) => { a } ok 18178 ast-utils isEmptyFunction should return false for (a) => a ok 18179 ast-utils getParenthesisedText should return (((foo))) for (((foo))); bar; ok 18180 ast-utils getParenthesisedText should return (/* comment */(((foo.bar())))) for (/* comment */(((foo.bar())))); baz(); ok 18181 ast-utils getParenthesisedText should return (foo, bar) for (foo, bar) ok 18182 ast-utils couldBeError returns false for 5 ok 18183 ast-utils couldBeError returns false for null ok 18184 ast-utils couldBeError returns false for true ok 18185 ast-utils couldBeError returns false for 'foo' ok 18186 ast-utils couldBeError returns false for `foo` ok 18187 ast-utils couldBeError returns true for foo ok 18188 ast-utils couldBeError returns true for new Foo ok 18189 ast-utils couldBeError returns true for Foo() ok 18190 ast-utils couldBeError returns true for foo`bar` ok 18191 ast-utils couldBeError returns true for foo.bar ok 18192 ast-utils couldBeError returns true for (foo = bar) ok 18193 ast-utils couldBeError returns false for (foo = 1) ok 18194 ast-utils couldBeError returns false for (1, 2, 3) ok 18195 ast-utils couldBeError returns false for (foo, 2, 3) ok 18196 ast-utils couldBeError returns true for (1, 2, foo) ok 18197 ast-utils couldBeError returns false for 1 && 2 ok 18198 ast-utils couldBeError returns true for 1 && foo ok 18199 ast-utils couldBeError returns true for foo && 2 ok 18200 ast-utils couldBeError returns false for foo ? 1 : 2 ok 18201 ast-utils couldBeError returns true for foo ? bar : 2 ok 18202 ast-utils couldBeError returns true for foo ? 1 : bar ok 18203 ast-utils couldBeError returns false for [1, 2, 3] ok 18204 ast-utils couldBeError returns false for ({ foo: 1 }) ok 18205 ast-utils isArrowToken should return false for '('. ok 18206 ast-utils isArrowToken should return false for ')'. ok 18207 ast-utils isArrowToken should return true for '=>'. ok 18208 ast-utils isArrowToken should return false for '5'. ok 18209 ast-utils isClosingBraceToken should return false for 'if'. ok 18210 ast-utils isClosingBraceToken should return false for '('. ok 18211 ast-utils isClosingBraceToken should return false for 'obj'. ok 18212 ast-utils isClosingBraceToken should return false for '&&'. ok 18213 ast-utils isClosingBraceToken should return false for 'foo'. ok 18214 ast-utils isClosingBraceToken should return false for ')'. ok 18215 ast-utils isClosingBraceToken should return false for '{'. ok 18216 ast-utils isClosingBraceToken should return false for 'obj'. ok 18217 ast-utils isClosingBraceToken should return false for '['. ok 18218 ast-utils isClosingBraceToken should return false for 'foo'. ok 18219 ast-utils isClosingBraceToken should return false for ']'. ok 18220 ast-utils isClosingBraceToken should return false for '('. ok 18221 ast-utils isClosingBraceToken should return false for ')'. ok 18222 ast-utils isClosingBraceToken should return false for ';'. ok 18223 ast-utils isClosingBraceToken should return true for '}'. ok 18224 ast-utils isNotClosingBraceToken should return false for 'if'. ok 18225 ast-utils isNotClosingBraceToken should return false for '('. ok 18226 ast-utils isNotClosingBraceToken should return false for 'obj'. ok 18227 ast-utils isNotClosingBraceToken should return false for '&&'. ok 18228 ast-utils isNotClosingBraceToken should return false for 'foo'. ok 18229 ast-utils isNotClosingBraceToken should return false for ')'. ok 18230 ast-utils isNotClosingBraceToken should return false for '{'. ok 18231 ast-utils isNotClosingBraceToken should return false for 'obj'. ok 18232 ast-utils isNotClosingBraceToken should return false for '['. ok 18233 ast-utils isNotClosingBraceToken should return false for 'foo'. ok 18234 ast-utils isNotClosingBraceToken should return false for ']'. ok 18235 ast-utils isNotClosingBraceToken should return false for '('. ok 18236 ast-utils isNotClosingBraceToken should return false for ')'. ok 18237 ast-utils isNotClosingBraceToken should return false for ';'. ok 18238 ast-utils isNotClosingBraceToken should return true for '}'. ok 18239 ast-utils isClosingBracketToken should return false for 'if'. ok 18240 ast-utils isClosingBracketToken should return false for '('. ok 18241 ast-utils isClosingBracketToken should return false for 'obj'. ok 18242 ast-utils isClosingBracketToken should return false for '&&'. ok 18243 ast-utils isClosingBracketToken should return false for 'foo'. ok 18244 ast-utils isClosingBracketToken should return false for ')'. ok 18245 ast-utils isClosingBracketToken should return false for '{'. ok 18246 ast-utils isClosingBracketToken should return false for 'obj'. ok 18247 ast-utils isClosingBracketToken should return false for '['. ok 18248 ast-utils isClosingBracketToken should return false for 'foo'. ok 18249 ast-utils isClosingBracketToken should return true for ']'. ok 18250 ast-utils isClosingBracketToken should return false for '('. ok 18251 ast-utils isClosingBracketToken should return false for ')'. ok 18252 ast-utils isClosingBracketToken should return false for ';'. ok 18253 ast-utils isClosingBracketToken should return false for '}'. ok 18254 ast-utils isNotClosingBracketToken should return false for 'if'. ok 18255 ast-utils isNotClosingBracketToken should return false for '('. ok 18256 ast-utils isNotClosingBracketToken should return false for 'obj'. ok 18257 ast-utils isNotClosingBracketToken should return false for '&&'. ok 18258 ast-utils isNotClosingBracketToken should return false for 'foo'. ok 18259 ast-utils isNotClosingBracketToken should return false for ')'. ok 18260 ast-utils isNotClosingBracketToken should return false for '{'. ok 18261 ast-utils isNotClosingBracketToken should return false for 'obj'. ok 18262 ast-utils isNotClosingBracketToken should return false for '['. ok 18263 ast-utils isNotClosingBracketToken should return false for 'foo'. ok 18264 ast-utils isNotClosingBracketToken should return true for ']'. ok 18265 ast-utils isNotClosingBracketToken should return false for '('. ok 18266 ast-utils isNotClosingBracketToken should return false for ')'. ok 18267 ast-utils isNotClosingBracketToken should return false for ';'. ok 18268 ast-utils isNotClosingBracketToken should return false for '}'. ok 18269 ast-utils isClosingParenToken should return false for 'if'. ok 18270 ast-utils isClosingParenToken should return false for '('. ok 18271 ast-utils isClosingParenToken should return false for 'obj'. ok 18272 ast-utils isClosingParenToken should return false for '&&'. ok 18273 ast-utils isClosingParenToken should return false for 'foo'. ok 18274 ast-utils isClosingParenToken should return true for ')'. ok 18275 ast-utils isClosingParenToken should return false for '{'. ok 18276 ast-utils isClosingParenToken should return false for 'obj'. ok 18277 ast-utils isClosingParenToken should return false for '['. ok 18278 ast-utils isClosingParenToken should return false for 'foo'. ok 18279 ast-utils isClosingParenToken should return false for ']'. ok 18280 ast-utils isClosingParenToken should return false for '('. ok 18281 ast-utils isClosingParenToken should return true for ')'. ok 18282 ast-utils isClosingParenToken should return false for ';'. ok 18283 ast-utils isClosingParenToken should return false for '}'. ok 18284 ast-utils isNotClosingParenToken should return false for 'if'. ok 18285 ast-utils isNotClosingParenToken should return false for '('. ok 18286 ast-utils isNotClosingParenToken should return false for 'obj'. ok 18287 ast-utils isNotClosingParenToken should return false for '&&'. ok 18288 ast-utils isNotClosingParenToken should return false for 'foo'. ok 18289 ast-utils isNotClosingParenToken should return true for ')'. ok 18290 ast-utils isNotClosingParenToken should return false for '{'. ok 18291 ast-utils isNotClosingParenToken should return false for 'obj'. ok 18292 ast-utils isNotClosingParenToken should return false for '['. ok 18293 ast-utils isNotClosingParenToken should return false for 'foo'. ok 18294 ast-utils isNotClosingParenToken should return false for ']'. ok 18295 ast-utils isNotClosingParenToken should return false for '('. ok 18296 ast-utils isNotClosingParenToken should return true for ')'. ok 18297 ast-utils isNotClosingParenToken should return false for ';'. ok 18298 ast-utils isNotClosingParenToken should return false for '}'. ok 18299 ast-utils isColonToken should return false for 'const'. ok 18300 ast-utils isColonToken should return false for 'obj'. ok 18301 ast-utils isColonToken should return false for '='. ok 18302 ast-utils isColonToken should return false for '{'. ok 18303 ast-utils isColonToken should return false for 'foo'. ok 18304 ast-utils isColonToken should return true for ':'. ok 18305 ast-utils isColonToken should return false for '1'. ok 18306 ast-utils isColonToken should return false for ','. ok 18307 ast-utils isColonToken should return false for 'bar'. ok 18308 ast-utils isColonToken should return true for ':'. ok 18309 ast-utils isColonToken should return false for '2'. ok 18310 ast-utils isColonToken should return false for '}'. ok 18311 ast-utils isColonToken should return false for ';'. ok 18312 ast-utils isNotColonToken should return false for 'const'. ok 18313 ast-utils isNotColonToken should return false for 'obj'. ok 18314 ast-utils isNotColonToken should return false for '='. ok 18315 ast-utils isNotColonToken should return false for '{'. ok 18316 ast-utils isNotColonToken should return false for 'foo'. ok 18317 ast-utils isNotColonToken should return true for ':'. ok 18318 ast-utils isNotColonToken should return false for '1'. ok 18319 ast-utils isNotColonToken should return false for ','. ok 18320 ast-utils isNotColonToken should return false for 'bar'. ok 18321 ast-utils isNotColonToken should return true for ':'. ok 18322 ast-utils isNotColonToken should return false for '2'. ok 18323 ast-utils isNotColonToken should return false for '}'. ok 18324 ast-utils isNotColonToken should return false for ';'. ok 18325 ast-utils isCommaToken should return false for 'const'. ok 18326 ast-utils isCommaToken should return false for 'obj'. ok 18327 ast-utils isCommaToken should return false for '='. ok 18328 ast-utils isCommaToken should return false for '{'. ok 18329 ast-utils isCommaToken should return false for 'foo'. ok 18330 ast-utils isCommaToken should return false for ':'. ok 18331 ast-utils isCommaToken should return false for '1'. ok 18332 ast-utils isCommaToken should return true for ','. ok 18333 ast-utils isCommaToken should return false for 'bar'. ok 18334 ast-utils isCommaToken should return false for ':'. ok 18335 ast-utils isCommaToken should return false for '2'. ok 18336 ast-utils isCommaToken should return false for '}'. ok 18337 ast-utils isCommaToken should return false for ';'. ok 18338 ast-utils isNotCommaToken should return false for 'const'. ok 18339 ast-utils isNotCommaToken should return false for 'obj'. ok 18340 ast-utils isNotCommaToken should return false for '='. ok 18341 ast-utils isNotCommaToken should return false for '{'. ok 18342 ast-utils isNotCommaToken should return false for 'foo'. ok 18343 ast-utils isNotCommaToken should return false for ':'. ok 18344 ast-utils isNotCommaToken should return false for '1'. ok 18345 ast-utils isNotCommaToken should return true for ','. ok 18346 ast-utils isNotCommaToken should return false for 'bar'. ok 18347 ast-utils isNotCommaToken should return false for ':'. ok 18348 ast-utils isNotCommaToken should return false for '2'. ok 18349 ast-utils isNotCommaToken should return false for '}'. ok 18350 ast-utils isNotCommaToken should return false for ';'. ok 18351 ast-utils isDotToken should return false for 'const'. ok 18352 ast-utils isDotToken should return false for 'obj'. ok 18353 ast-utils isDotToken should return false for '='. ok 18354 ast-utils isDotToken should return false for '{'. ok 18355 ast-utils isDotToken should return false for 'foo'. ok 18356 ast-utils isDotToken should return false for ':'. ok 18357 ast-utils isDotToken should return false for '1.5'. ok 18358 ast-utils isDotToken should return false for ','. ok 18359 ast-utils isDotToken should return false for 'bar'. ok 18360 ast-utils isDotToken should return false for ':'. ok 18361 ast-utils isDotToken should return false for 'a'. ok 18362 ast-utils isDotToken should return true for '.'. ok 18363 ast-utils isDotToken should return false for 'b'. ok 18364 ast-utils isDotToken should return false for '}'. ok 18365 ast-utils isDotToken should return false for ';'. ok 18366 ast-utils isNotDotToken should return true for 'const'. ok 18367 ast-utils isNotDotToken should return true for 'obj'. ok 18368 ast-utils isNotDotToken should return true for '='. ok 18369 ast-utils isNotDotToken should return true for '{'. ok 18370 ast-utils isNotDotToken should return true for 'foo'. ok 18371 ast-utils isNotDotToken should return true for ':'. ok 18372 ast-utils isNotDotToken should return true for '1.5'. ok 18373 ast-utils isNotDotToken should return true for ','. ok 18374 ast-utils isNotDotToken should return true for 'bar'. ok 18375 ast-utils isNotDotToken should return true for ':'. ok 18376 ast-utils isNotDotToken should return true for 'a'. ok 18377 ast-utils isNotDotToken should return false for '.'. ok 18378 ast-utils isNotDotToken should return true for 'b'. ok 18379 ast-utils isNotDotToken should return true for '}'. ok 18380 ast-utils isNotDotToken should return true for ';'. ok 18381 ast-utils isCommentToken should return false for 'const'. ok 18382 ast-utils isCommentToken should return false for 'obj'. ok 18383 ast-utils isCommentToken should return false for '='. ok 18384 ast-utils isCommentToken should return false for '{'. ok 18385 ast-utils isCommentToken should return false for 'foo'. ok 18386 ast-utils isCommentToken should return false for ':'. ok 18387 ast-utils isCommentToken should return false for '1'. ok 18388 ast-utils isCommentToken should return false for ','. ok 18389 ast-utils isCommentToken should return false for 'bar'. ok 18390 ast-utils isCommentToken should return false for ':'. ok 18391 ast-utils isCommentToken should return false for '2'. ok 18392 ast-utils isCommentToken should return false for '}'. ok 18393 ast-utils isCommentToken should return false for ';'. ok 18394 ast-utils isCommentToken should return true for 'block'. ok 18395 ast-utils isCommentToken should return true for 'line'. ok 18396 ast-utils isKeywordToken should return true for 'const'. ok 18397 ast-utils isKeywordToken should return false for 'obj'. ok 18398 ast-utils isKeywordToken should return false for '='. ok 18399 ast-utils isKeywordToken should return false for '{'. ok 18400 ast-utils isKeywordToken should return false for 'foo'. ok 18401 ast-utils isKeywordToken should return false for ':'. ok 18402 ast-utils isKeywordToken should return false for '1'. ok 18403 ast-utils isKeywordToken should return false for ','. ok 18404 ast-utils isKeywordToken should return false for 'bar'. ok 18405 ast-utils isKeywordToken should return false for ':'. ok 18406 ast-utils isKeywordToken should return false for '2'. ok 18407 ast-utils isKeywordToken should return false for '}'. ok 18408 ast-utils isKeywordToken should return false for ';'. ok 18409 ast-utils isOpeningBraceToken should return false for 'if'. ok 18410 ast-utils isOpeningBraceToken should return false for '('. ok 18411 ast-utils isOpeningBraceToken should return false for 'obj'. ok 18412 ast-utils isOpeningBraceToken should return false for '&&'. ok 18413 ast-utils isOpeningBraceToken should return false for 'foo'. ok 18414 ast-utils isOpeningBraceToken should return false for ')'. ok 18415 ast-utils isOpeningBraceToken should return true for '{'. ok 18416 ast-utils isOpeningBraceToken should return false for 'obj'. ok 18417 ast-utils isOpeningBraceToken should return false for '['. ok 18418 ast-utils isOpeningBraceToken should return false for 'foo'. ok 18419 ast-utils isOpeningBraceToken should return false for ']'. ok 18420 ast-utils isOpeningBraceToken should return false for '('. ok 18421 ast-utils isOpeningBraceToken should return false for ')'. ok 18422 ast-utils isOpeningBraceToken should return false for ';'. ok 18423 ast-utils isOpeningBraceToken should return false for '}'. ok 18424 ast-utils isNotOpeningBraceToken should return false for 'if'. ok 18425 ast-utils isNotOpeningBraceToken should return false for '('. ok 18426 ast-utils isNotOpeningBraceToken should return false for 'obj'. ok 18427 ast-utils isNotOpeningBraceToken should return false for '&&'. ok 18428 ast-utils isNotOpeningBraceToken should return false for 'foo'. ok 18429 ast-utils isNotOpeningBraceToken should return false for ')'. ok 18430 ast-utils isNotOpeningBraceToken should return true for '{'. ok 18431 ast-utils isNotOpeningBraceToken should return false for 'obj'. ok 18432 ast-utils isNotOpeningBraceToken should return false for '['. ok 18433 ast-utils isNotOpeningBraceToken should return false for 'foo'. ok 18434 ast-utils isNotOpeningBraceToken should return false for ']'. ok 18435 ast-utils isNotOpeningBraceToken should return false for '('. ok 18436 ast-utils isNotOpeningBraceToken should return false for ')'. ok 18437 ast-utils isNotOpeningBraceToken should return false for ';'. ok 18438 ast-utils isNotOpeningBraceToken should return false for '}'. ok 18439 ast-utils isOpeningBracketToken should return false for 'if'. ok 18440 ast-utils isOpeningBracketToken should return false for '('. ok 18441 ast-utils isOpeningBracketToken should return false for 'obj'. ok 18442 ast-utils isOpeningBracketToken should return false for '&&'. ok 18443 ast-utils isOpeningBracketToken should return false for 'foo'. ok 18444 ast-utils isOpeningBracketToken should return false for ')'. ok 18445 ast-utils isOpeningBracketToken should return false for '{'. ok 18446 ast-utils isOpeningBracketToken should return false for 'obj'. ok 18447 ast-utils isOpeningBracketToken should return true for '['. ok 18448 ast-utils isOpeningBracketToken should return false for 'foo'. ok 18449 ast-utils isOpeningBracketToken should return false for ']'. ok 18450 ast-utils isOpeningBracketToken should return false for '('. ok 18451 ast-utils isOpeningBracketToken should return false for ')'. ok 18452 ast-utils isOpeningBracketToken should return false for ';'. ok 18453 ast-utils isOpeningBracketToken should return false for '}'. ok 18454 ast-utils isNotOpeningBracketToken should return false for 'if'. ok 18455 ast-utils isNotOpeningBracketToken should return false for '('. ok 18456 ast-utils isNotOpeningBracketToken should return false for 'obj'. ok 18457 ast-utils isNotOpeningBracketToken should return false for '&&'. ok 18458 ast-utils isNotOpeningBracketToken should return false for 'foo'. ok 18459 ast-utils isNotOpeningBracketToken should return false for ')'. ok 18460 ast-utils isNotOpeningBracketToken should return false for '{'. ok 18461 ast-utils isNotOpeningBracketToken should return false for 'obj'. ok 18462 ast-utils isNotOpeningBracketToken should return true for '['. ok 18463 ast-utils isNotOpeningBracketToken should return false for 'foo'. ok 18464 ast-utils isNotOpeningBracketToken should return false for ']'. ok 18465 ast-utils isNotOpeningBracketToken should return false for '('. ok 18466 ast-utils isNotOpeningBracketToken should return false for ')'. ok 18467 ast-utils isNotOpeningBracketToken should return false for ';'. ok 18468 ast-utils isNotOpeningBracketToken should return false for '}'. ok 18469 ast-utils isOpeningParenToken should return false for 'if'. ok 18470 ast-utils isOpeningParenToken should return true for '('. ok 18471 ast-utils isOpeningParenToken should return false for 'obj'. ok 18472 ast-utils isOpeningParenToken should return false for '&&'. ok 18473 ast-utils isOpeningParenToken should return false for 'foo'. ok 18474 ast-utils isOpeningParenToken should return false for ')'. ok 18475 ast-utils isOpeningParenToken should return false for '{'. ok 18476 ast-utils isOpeningParenToken should return false for 'obj'. ok 18477 ast-utils isOpeningParenToken should return false for '['. ok 18478 ast-utils isOpeningParenToken should return false for 'foo'. ok 18479 ast-utils isOpeningParenToken should return false for ']'. ok 18480 ast-utils isOpeningParenToken should return true for '('. ok 18481 ast-utils isOpeningParenToken should return false for ')'. ok 18482 ast-utils isOpeningParenToken should return false for ';'. ok 18483 ast-utils isOpeningParenToken should return false for '}'. ok 18484 ast-utils isNotOpeningParenToken should return false for 'if'. ok 18485 ast-utils isNotOpeningParenToken should return true for '('. ok 18486 ast-utils isNotOpeningParenToken should return false for 'obj'. ok 18487 ast-utils isNotOpeningParenToken should return false for '&&'. ok 18488 ast-utils isNotOpeningParenToken should return false for 'foo'. ok 18489 ast-utils isNotOpeningParenToken should return false for ')'. ok 18490 ast-utils isNotOpeningParenToken should return false for '{'. ok 18491 ast-utils isNotOpeningParenToken should return false for 'obj'. ok 18492 ast-utils isNotOpeningParenToken should return false for '['. ok 18493 ast-utils isNotOpeningParenToken should return false for 'foo'. ok 18494 ast-utils isNotOpeningParenToken should return false for ']'. ok 18495 ast-utils isNotOpeningParenToken should return true for '('. ok 18496 ast-utils isNotOpeningParenToken should return false for ')'. ok 18497 ast-utils isNotOpeningParenToken should return false for ';'. ok 18498 ast-utils isNotOpeningParenToken should return false for '}'. ok 18499 ast-utils isSemicolonToken should return false for 'if'. ok 18500 ast-utils isSemicolonToken should return false for '('. ok 18501 ast-utils isSemicolonToken should return false for 'obj'. ok 18502 ast-utils isSemicolonToken should return false for '&&'. ok 18503 ast-utils isSemicolonToken should return false for 'foo'. ok 18504 ast-utils isSemicolonToken should return false for ')'. ok 18505 ast-utils isSemicolonToken should return false for '{'. ok 18506 ast-utils isSemicolonToken should return false for 'obj'. ok 18507 ast-utils isSemicolonToken should return false for '['. ok 18508 ast-utils isSemicolonToken should return false for 'foo'. ok 18509 ast-utils isSemicolonToken should return false for ']'. ok 18510 ast-utils isSemicolonToken should return false for '('. ok 18511 ast-utils isSemicolonToken should return false for ')'. ok 18512 ast-utils isSemicolonToken should return true for ';'. ok 18513 ast-utils isSemicolonToken should return false for '}'. ok 18514 ast-utils isNotSemicolonToken should return false for 'if'. ok 18515 ast-utils isNotSemicolonToken should return false for '('. ok 18516 ast-utils isNotSemicolonToken should return false for 'obj'. ok 18517 ast-utils isNotSemicolonToken should return false for '&&'. ok 18518 ast-utils isNotSemicolonToken should return false for 'foo'. ok 18519 ast-utils isNotSemicolonToken should return false for ')'. ok 18520 ast-utils isNotSemicolonToken should return false for '{'. ok 18521 ast-utils isNotSemicolonToken should return false for 'obj'. ok 18522 ast-utils isNotSemicolonToken should return false for '['. ok 18523 ast-utils isNotSemicolonToken should return false for 'foo'. ok 18524 ast-utils isNotSemicolonToken should return false for ']'. ok 18525 ast-utils isNotSemicolonToken should return false for '('. ok 18526 ast-utils isNotSemicolonToken should return false for ')'. ok 18527 ast-utils isNotSemicolonToken should return true for ';'. ok 18528 ast-utils isNotSemicolonToken should return false for '}'. ok 18529 ast-utils isNullLiteral returns false for 5 ok 18530 ast-utils isNullLiteral returns true for null ok 18531 ast-utils isNullLiteral returns false for /abc/u ok 18532 ast-utils isNullLiteral returns false for true ok 18533 ast-utils isNullLiteral returns false for 'null' ok 18534 ast-utils isNullLiteral returns false for foo ok 18535 ast-utils createGlobalLinebreakMatcher returns a regular expression with the g flag ok 18536 ast-utils createGlobalLinebreakMatcher returns unique objects on each call ok 18537 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo ok 18538 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo bar ok 18539 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo ok 18540 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo bar ok 18541 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo bar ok 18542 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo 
bar ok 18543 ast-utils createGlobalLinebreakMatcher correctly matches linebreaks foo
bar ok 18544 ast-utils canTokensBeAdjacent foo, bar ok 18545 ast-utils canTokensBeAdjacent ;foo, bar ok 18546 ast-utils canTokensBeAdjacent ;, bar ok 18547 ast-utils canTokensBeAdjacent ), bar ok 18548 ast-utils canTokensBeAdjacent foo0, bar ok 18549 ast-utils canTokensBeAdjacent foo;, bar ok 18550 ast-utils canTokensBeAdjacent foo, 0 ok 18551 ast-utils canTokensBeAdjacent of, .2 ok 18552 ast-utils canTokensBeAdjacent 2, .2 ok 18553 ast-utils canTokensBeAdjacent of, 'foo' ok 18554 ast-utils canTokensBeAdjacent foo, `bar` ok 18555 ast-utils canTokensBeAdjacent `foo`, in ok 18556 ast-utils canTokensBeAdjacent of, 0.2 ok 18557 ast-utils canTokensBeAdjacent of, 0. ok 18558 ast-utils canTokensBeAdjacent .2, foo ok 18559 ast-utils canTokensBeAdjacent 2., foo ok 18560 ast-utils canTokensBeAdjacent +, - ok 18561 ast-utils canTokensBeAdjacent ++, - ok 18562 ast-utils canTokensBeAdjacent +, -- ok 18563 ast-utils canTokensBeAdjacent ++, -- ok 18564 ast-utils canTokensBeAdjacent -, + ok 18565 ast-utils canTokensBeAdjacent --, + ok 18566 ast-utils canTokensBeAdjacent -, ++ ok 18567 ast-utils canTokensBeAdjacent --, ++ ok 18568 ast-utils canTokensBeAdjacent +, + ok 18569 ast-utils canTokensBeAdjacent -, - ok 18570 ast-utils canTokensBeAdjacent ++, + ok 18571 ast-utils canTokensBeAdjacent --, - ok 18572 ast-utils canTokensBeAdjacent +, ++ ok 18573 ast-utils canTokensBeAdjacent -, -- ok 18574 ast-utils equalTokens should return true if tokens are equal ok 18575 ast-utils equalTokens should return false if tokens are not equal ok 18576 ast-utils hasOctalEscapeSequence should return false for 0 ok 18577 ast-utils hasOctalEscapeSequence should return false for 1 ok 18578 ast-utils hasOctalEscapeSequence should return false for 8 ok 18579 ast-utils hasOctalEscapeSequence should return false for 12 ok 18580 ast-utils hasOctalEscapeSequence should return false for 80 ok 18581 ast-utils hasOctalEscapeSequence should return true for \1 ok 18582 ast-utils hasOctalEscapeSequence should return true for \2 ok 18583 ast-utils hasOctalEscapeSequence should return true for \7 ok 18584 ast-utils hasOctalEscapeSequence should return true for \00 ok 18585 ast-utils hasOctalEscapeSequence should return true for \01 ok 18586 ast-utils hasOctalEscapeSequence should return true for \02 ok 18587 ast-utils hasOctalEscapeSequence should return true for \07 ok 18588 ast-utils hasOctalEscapeSequence should return true for \08 ok 18589 ast-utils hasOctalEscapeSequence should return true for \09 ok 18590 ast-utils hasOctalEscapeSequence should return true for \10 ok 18591 ast-utils hasOctalEscapeSequence should return true for \12 ok 18592 ast-utils hasOctalEscapeSequence should return true for \1 ok 18593 ast-utils hasOctalEscapeSequence should return true for \1 ok 18594 ast-utils hasOctalEscapeSequence should return true for a\1 ok 18595 ast-utils hasOctalEscapeSequence should return true for \1a ok 18596 ast-utils hasOctalEscapeSequence should return true for a\1a ok 18597 ast-utils hasOctalEscapeSequence should return true for \01 ok 18598 ast-utils hasOctalEscapeSequence should return true for \01 ok 18599 ast-utils hasOctalEscapeSequence should return true for a\01 ok 18600 ast-utils hasOctalEscapeSequence should return true for \01a ok 18601 ast-utils hasOctalEscapeSequence should return true for a\01a ok 18602 ast-utils hasOctalEscapeSequence should return true for a\08a ok 18603 ast-utils hasOctalEscapeSequence should return true for \0\1 ok 18604 ast-utils hasOctalEscapeSequence should return true for \0\01 ok 18605 ast-utils hasOctalEscapeSequence should return true for \0\08 ok 18606 ast-utils hasOctalEscapeSequence should return true for \n\1 ok 18607 ast-utils hasOctalEscapeSequence should return true for \n\01 ok 18608 ast-utils hasOctalEscapeSequence should return true for \n\08 ok 18609 ast-utils hasOctalEscapeSequence should return true for \\\1 ok 18610 ast-utils hasOctalEscapeSequence should return true for \\\01 ok 18611 ast-utils hasOctalEscapeSequence should return true for \\\08 ok 18612 ast-utils hasOctalEscapeSequence should return false for \0 ok 18613 ast-utils hasOctalEscapeSequence should return false for \8 ok 18614 ast-utils hasOctalEscapeSequence should return false for \9 ok 18615 ast-utils hasOctalEscapeSequence should return false for \0 ok 18616 ast-utils hasOctalEscapeSequence should return false for \0 ok 18617 ast-utils hasOctalEscapeSequence should return false for a\0 ok 18618 ast-utils hasOctalEscapeSequence should return false for \0a ok 18619 ast-utils hasOctalEscapeSequence should return false for a\8a ok 18620 ast-utils hasOctalEscapeSequence should return false for \0\8 ok 18621 ast-utils hasOctalEscapeSequence should return false for \8\0 ok 18622 ast-utils hasOctalEscapeSequence should return false for \80 ok 18623 ast-utils hasOctalEscapeSequence should return false for \81 ok 18624 ast-utils hasOctalEscapeSequence should return false for \\ ok 18625 ast-utils hasOctalEscapeSequence should return false for \\0 ok 18626 ast-utils hasOctalEscapeSequence should return false for \\01 ok 18627 ast-utils hasOctalEscapeSequence should return false for \\08 ok 18628 ast-utils hasOctalEscapeSequence should return false for \\1 ok 18629 ast-utils hasOctalEscapeSequence should return false for \\12 ok 18630 ast-utils hasOctalEscapeSequence should return false for \\\0 ok 18631 ast-utils hasOctalEscapeSequence should return false for \\\8 ok 18632 ast-utils hasOctalEscapeSequence should return false for \0\\ ok 18633 ast-utils hasOctalEscapeSequence should return false for 01 ok 18634 ast-utils hasOctalEscapeSequence should return false for 08 ok 18635 ast-utils hasOctalEscapeSequence should return false for \a ok 18636 ast-utils hasOctalEscapeSequence should return false for \n ok 18637 FixTracker replaceTextRange should expand to include an explicitly retained range ok 18638 FixTracker replaceTextRange ignores a retained range that's smaller than the replaced range ok 18639 FixTracker replaceTextRange allows an unspecified retained range ok 18640 FixTracker remove should expand to include an explicitly retained range ok 18641 FixTracker retainEnclosingFunction handles a normal enclosing function ok 18642 FixTracker retainEnclosingFunction handles the case when there is no enclosing function ok 18643 FixTracker retainSurroungingTokens handles a change to a binary operator ok 18644 valid-jsdoc valid /**\u000a* Description\u000a * @param {Object[]} screenings Array of screenings.\u000a * @param {Number} screenings[].timestamp its a time stamp \u000a @return {void} */\u000afunction foo(){} ok 18645 valid-jsdoc valid /**\u000a* Description\u000a */\u000avar x = new Foo(function foo(){}) ok 18646 valid-jsdoc valid /**\u000a* Description\u000a* @returns {void} */\u000afunction foo(){} ok 18647 valid-jsdoc valid /**\u000a* Description\u000a* @returns {undefined} */\u000afunction foo(){} ok 18648 valid-jsdoc valid /**\u000a* Description\u000a* @alias Testtest\u000a* @returns {void} */\u000afunction foo(){} ok 18649 valid-jsdoc valid /**\u000a* Description\u000a*@extends MyClass\u000a* @returns {void} */\u000afunction foo(){} ok 18650 valid-jsdoc valid /**\u000a* Description\u000a* @constructor */\u000afunction Foo(){} ok 18651 valid-jsdoc valid /**\u000a* Description\u000a* @class */\u000afunction Foo(){} ok 18652 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p bar\u000a* @returns {string} desc */\u000afunction foo(p){} ok 18653 valid-jsdoc valid /**\u000a* Description\u000a* @arg {string} p bar\u000a* @returns {string} desc */\u000afunction foo(p){} ok 18654 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} p bar\u000a* @returns {string} desc */\u000afunction foo(p){} ok 18655 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} [p] bar\u000a* @returns {string} desc */\u000afunction foo(p){} ok 18656 valid-jsdoc valid /**\u000a* Description\u000a* @param {Object} p bar\u000a* @param {string} p.name bar\u000a* @returns {string} desc */\u000aFoo.bar = function(p){}; ok 18657 valid-jsdoc valid (function(){\u000a/**\u000a* Description\u000a* @param {string} p bar\u000a* @returns {string} desc */\u000afunction foo(p){}\u000a}()) ok 18658 valid-jsdoc valid var o = {\u000a/**\u000a* Description\u000a* @param {string} p bar\u000a* @returns {string} desc */\u000afoo: function(p){}\u000a}; ok 18659 valid-jsdoc valid /**\u000a* Description\u000a* @param {Object} p bar\u000a* @param {string[]} p.files qux\u000a* @param {Function} cb baz\u000a* @returns {void} */\u000afunction foo(p, cb){} ok 18660 valid-jsdoc valid /**\u000a* Description\u000a* @override */\u000afunction foo(arg1, arg2){ return ''; } ok 18661 valid-jsdoc valid /**\u000a* Description\u000a* @inheritdoc */\u000afunction foo(arg1, arg2){ return ''; } ok 18662 valid-jsdoc valid /**\u000a* Description\u000a* @inheritDoc */\u000afunction foo(arg1, arg2){ return ''; } ok 18663 valid-jsdoc valid /**\u000a* Description\u000a* @Returns {void} */\u000afunction foo(){} ok 18664 valid-jsdoc valid call(\u000a /**\u000a * Doc for a function expression in a call expression.\u000a * @param {string} argName This is the param description.\u000a * @return {string} This is the return description.\u000a */\u000a function(argName) {\u000a return 'the return';\u000a }\u000a);\u000a ok 18665 valid-jsdoc valid /**\u000a* Create a new thing.\u000a*/\u000avar thing = new Thing({\u000a foo: function() {\u000a return 'bar';\u000a }\u000a});\u000a ok 18666 valid-jsdoc valid /**\u000a* Create a new thing.\u000a*/\u000avar thing = new Thing({\u000a /**\u000a * @return {string} A string.\u000a */\u000a foo: function() {\u000a return 'bar';\u000a }\u000a});\u000a ok 18667 valid-jsdoc valid /**\u000a* Description\u000a* @return {void} */\u000afunction foo(){} ok 18668 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p bar\u000a*/\u000aFoo.bar = (p) => {}; ok 18669 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p bar\u000a*/\u000aFoo.bar = function({p}){}; ok 18670 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p bar\u000a*/\u000aFoo.bar = function(p){}; ok 18671 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a*/\u000aFoo.bar = function(p){var t = function(){return p;}}; ok 18672 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a*/\u000aFoo.bar = function(p){function func(){return p;}}; ok 18673 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a*/\u000aFoo.bar = function(p){var t = false; if(t){ return; }}; ok 18674 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a* @returns {void} */\u000aFoo.bar = function(p){var t = false; if(t){ return; }}; ok 18675 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a*/\u000aFoo.bar = function(p){var t = function(){function name(){return p;}}}; ok 18676 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a*/\u000aFoo.bar = function(p){var t = function(){function name(){}; return name;}}; ok 18677 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p\u000a* @returns {void}*/\u000aFoo.bar = function(p){var t = function(){function name(){}; return name;}}; ok 18678 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} p mytest\u000a* @returns {Object}*/\u000aFoo.bar = function(p){return name;}; ok 18679 valid-jsdoc valid var obj = {\u000a /**\u000a * Getter\u000a * @type {string}\u000a */\u000a get location() {\u000a return this._location;\u000a }\u000a } ok 18680 valid-jsdoc valid var obj = {\u000a /**\u000a * Setter\u000a * @param {string} value The location\u000a */\u000a set location(value) {\u000a this._location = value;\u000a }\u000a } ok 18681 valid-jsdoc valid /**\u000a * Description for A.\u000a */\u000a class A {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a /**\u000a * Description for this.xs;\u000a * @type {object[]}\u000a */\u000a this.xs = xs.filter(x => x != null);\u000a }\u000a} ok 18682 valid-jsdoc valid /** @returns {object} foo */ var foo = () => bar(); ok 18683 valid-jsdoc valid /** @returns {object} foo */ var foo = () => { return bar(); }; ok 18684 valid-jsdoc valid /** foo */ var foo = () => { bar(); }; ok 18685 valid-jsdoc valid /**\u000a* Start with caps and end with period.\u000a* @return {void} */\u000afunction foo(){} ok 18686 valid-jsdoc valid /** Foo \u000a@return {void} Foo\u000a */\u000afunction foo(){} ok 18687 valid-jsdoc valid /** Foo \u000a@return Foo\u000a */\u000afunction foo(){} ok 18688 valid-jsdoc valid /**\u000a* Description\u000a* @param p bar\u000a* @returns {void}*/\u000aFoo.bar = function(p){var t = function(){function name(){}; return name;}}; ok 18689 valid-jsdoc valid /**\u000a * A thing interface. \u000a * @interface\u000a */\u000afunction Thing() {} ok 18690 valid-jsdoc valid /**\u000a * Description for A.\u000a */\u000aclass A {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 18691 valid-jsdoc valid /**\u000a * Description for A.\u000a */\u000aclass A {\u000a /**\u000a * Description for method.\u000a * @param {object[]} xs - xs\u000a */\u000a print(xs) {\u000a this.a = xs; }\u000a} ok 18692 valid-jsdoc valid /**\u000a * Description for A.\u000a */\u000aclass A {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a * @returns {void}\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a /**\u000a * Description for method.\u000a * @param {object[]} xs - xs\u000a * @returns {void}\u000a */\u000a print(xs) {\u000a this.a = xs; }\u000a} ok 18693 valid-jsdoc valid /**\u000a * Use of this with a 'namepath'.\u000a * @this some.name\u000a */\u000afunction foo() {} ok 18694 valid-jsdoc valid /**\u000a * Use of this with a type expression.\u000a * @this {some.name}\u000a */\u000afunction foo() {} ok 18695 valid-jsdoc valid /**\u000a * An async function. Options requires return.\u000a * @returns {Promise} that is empty\u000a */\u000aasync function a() {} ok 18696 valid-jsdoc valid /**\u000a * An async function. Options do not require return.\u000a * @returns {Promise} that is empty\u000a */\u000aasync function a() {} ok 18697 valid-jsdoc valid /**\u000a * An async function. Options do not require return.\u000a */\u000aasync function a() {} ok 18698 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Array.<*>} hi - desc\u000a* @returns {*} returns a node\u000a*/\u000afunction foo(hi){} ok 18699 valid-jsdoc valid /**\u000a* Foo\u000a* @param {string} hi - desc\u000a* @returns {ASTNode} returns a node\u000a*/\u000afunction foo(hi){} ok 18700 valid-jsdoc valid /**\u000a* Foo\u000a* @param {{20:string}} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18701 valid-jsdoc valid /**\u000a* Foo\u000a* @param {{String:foo}} hi - desc\u000a* @returns {ASTNode} returns a node\u000a*/\u000afunction foo(hi){} ok 18702 valid-jsdoc valid /**\u000a* Foo\u000a* @param {String|number|Test} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18703 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Array.} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18704 valid-jsdoc valid /**\u000a * Test dash and slash.\u000a * @extends module:stb/emitter~Emitter\u000a */\u000afunction foo() {} ok 18705 valid-jsdoc valid /**\u000a * Test dash and slash.\u000a * @requires module:config\u000a * @requires module:modules/notifications\u000a */\u000afunction foo() {} ok 18706 valid-jsdoc valid /**\u000a * Foo\u000a * @module module-name\u000a */\u000afunction foo() {} ok 18707 valid-jsdoc valid /**\u000a * Foo\u000a * @alias module:module-name\u000a */\u000afunction foo() {} ok 18708 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Array.} hi - desc\u000a* @returns {Array.} desc\u000a*/\u000afunction foo(hi){} ok 18709 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Array.} hi - desc\u000a* @returns {Array.} desc\u000a*/\u000afunction foo(hi){} ok 18710 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Array.<{id: number, votes: number}>} hi - desc\u000a* @returns {Array.<{summary: string}>} desc\u000a*/\u000afunction foo(hi){} ok 18711 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Array.<[string, number]>} hi - desc\u000a* @returns {Array.<[string, string]>} desc\u000a*/\u000afunction foo(hi){} ok 18712 valid-jsdoc valid /**\u000a* Foo\u000a* @param {Object>} hi - because why not\u000a* @returns {Boolean} desc\u000a*/\u000afunction foo(hi){} ok 18713 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} a bar\u000a* @returns {string} desc */\u000afunction foo(a = 1){} ok 18714 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} b bar\u000a* @param {string} a bar\u000a* @returns {string} desc */\u000afunction foo(b, a = 1){} ok 18715 valid-jsdoc valid /**\u000a* Description\u000a* @abstract\u000a* @returns {Number} desc\u000a*/\u000afunction foo(){ throw new Error('Not Implemented'); } ok 18716 valid-jsdoc valid /**\u000a* Description\u000a* @return {Number} desc\u000a* @constructor \u000a* @override\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18717 valid-jsdoc valid /**\u000a* Description\u000a* @returns {Number} desc\u000a* @class \u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @param {string} hi - desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18718 valid-jsdoc valid /**\u000a* Description\u000a* @return {Number} desc\u000a* @constructor \u000a* @override\u000a* @abstract\u000a* @interface\u000a* @arg {string} hi - desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18719 valid-jsdoc valid /**\u000a* Description\u000a* @returns {Number} desc\u000a* @class \u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18720 valid-jsdoc valid /**\u000a* Description\u000a* @return {Number} desc\u000a* @constructor \u000a* @override\u000a* @abstract\u000a* @interface\u000a* @argument {string} hi - desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18721 valid-jsdoc valid /**\u000a* Description\u000a* @returns {Number} desc\u000a* @class \u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @argument {string} hi - desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18722 valid-jsdoc valid /**\u000a* Description\u000a* @constructor \u000a* @override\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18723 valid-jsdoc valid /**\u000a* Description\u000a* @class \u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @return {Number} desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18724 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @return {Number} desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18725 valid-jsdoc valid /**\u000a* Description\u000a* @constructor \u000a* @override\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a* @returns {Number} desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18726 valid-jsdoc valid /**\u000a* Description\u000a* @class \u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18727 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @returns {Number} desc\u000a*/\u000afunction foo(hi){ return 1; } ok 18728 valid-jsdoc valid /**\u000a* Description\u000a* @override\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @constructor\u000a*/\u000afunction foo(hi){ return 1; } ok 18729 valid-jsdoc valid /**\u000a* Description\u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @constructor\u000a*/\u000afunction foo(hi){ return 1; } ok 18730 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @constructor\u000a*/\u000afunction foo(hi){} ok 18731 valid-jsdoc valid /**\u000a* Description\u000a* @override\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @class\u000a*/\u000afunction foo(hi){ return 1; } ok 18732 valid-jsdoc valid /**\u000a* Description\u000a* @inheritdoc\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @class\u000a*/\u000afunction foo(hi){ return 1; } ok 18733 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @class \u000a*/\u000afunction foo(hi){} ok 18734 valid-jsdoc valid /**\u000a* Description\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @constructor\u000a* @override\u000a*/\u000afunction foo(hi){ return 1; } ok 18735 valid-jsdoc valid /**\u000a* Description\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @class\u000a* @override\u000a*/\u000afunction foo(hi){ return 1; } ok 18736 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @override\u000a*/\u000afunction foo(hi){} ok 18737 valid-jsdoc valid /**\u000a* Description\u000a* @abstract\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @constructor\u000a* @inheritdoc\u000a*/\u000afunction foo(hi){ return 1; } ok 18738 valid-jsdoc valid /**\u000a* Description\u000a* @virtual\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @class\u000a* @inheritdoc\u000a*/\u000afunction foo(hi){ return 1; } ok 18739 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @inheritdoc\u000a*/\u000afunction foo(hi){} ok 18740 valid-jsdoc valid /**\u000a* Description\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @constructor\u000a* @override\u000a* @abstract\u000a*/\u000afunction foo(hi){ return 1; } ok 18741 valid-jsdoc valid /**\u000a* Description\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @class\u000a* @override\u000a* @abstract\u000a*/\u000afunction foo(hi){ return 1; } ok 18742 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @abstract\u000a*/\u000afunction foo(hi){} ok 18743 valid-jsdoc valid /**\u000a* Description\u000a* @interface\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @constructor\u000a* @override\u000a* @virtual\u000a*/\u000afunction foo(hi){ return 1; } ok 18744 valid-jsdoc valid /**\u000a* Description\u000a* @interface\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @class\u000a* @override\u000a* @virtual\u000a*/\u000afunction foo(hi){ return 1; } ok 18745 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @virtual\u000a*/\u000afunction foo(hi){} ok 18746 valid-jsdoc valid /**\u000a* Description\u000a* @param {string} hi - desc\u000a* @return {Number} desc\u000a* @constructor \u000a* @override\u000a* @abstract\u000a* @interface\u000a*/\u000afunction foo(hi){ return 1; } ok 18747 valid-jsdoc valid /**\u000a* Description\u000a* @arg {string} hi - desc\u000a* @returns {Number} desc\u000a* @class\u000a* @override\u000a* @virtual\u000a* @interface\u000a*/\u000afunction foo(hi){ return 1; } ok 18748 valid-jsdoc valid /**\u000a* Description\u000a* @argument {string} hi - desc\u000a* @interface\u000a*/\u000afunction foo(hi){} ok 18749 valid-jsdoc valid /**\u000a* Description\u000a* @virtual\u000a* @returns {Number} desc\u000a*/\u000afunction foo(){ throw new Error('Not Implemented'); } ok 18750 valid-jsdoc valid /**\u000a* Description\u000a* @abstract\u000a* @returns {Number} desc\u000a*/\u000afunction foo(){ throw new Error('Not Implemented'); } ok 18751 valid-jsdoc valid /**\u000a* Description\u000a* @abstract\u000a* @returns {Number} desc\u000a*/\u000afunction foo(){} ok 18752 valid-jsdoc valid /**\u000a * @param {string} a - a.\u000a * @param {object} [obj] - obj.\u000a * @param {string} obj.b - b.\u000a * @param {string} obj.c - c.\u000a * @returns {void}\u000a */\u000afunction foo(a, {b, c} = {}) {\u000a // empty\u000a} ok 18753 valid-jsdoc valid /**\u000a * @param {string} a - a.\u000a * @param {any[]} [list] - list.\u000a * @returns {void}\u000a */\u000afunction foo(a, [b, c] = []) {\u000a // empty\u000a} ok 18754 valid-jsdoc valid /**\u000a* Foo\u000a* @param {{foo}} hi - desc\u000a* @returns {ASTNode} returns a node\u000a*/\u000afunction foo(hi){} ok 18755 valid-jsdoc valid /**\u000a* Foo\u000a* @param {{foo:String, bar, baz:Array}} hi - desc\u000a* @returns {ASTNode} returns a node\u000a*/\u000afunction foo(hi){} ok 18756 valid-jsdoc valid /**\u000a* Foo\u000a* @param {{String}} hi - desc\u000a* @returns {ASTNode} returns a node\u000a*/\u000afunction foo(hi){} ok 18757 valid-jsdoc valid /**\u000a* Foo\u000a* @param {{foo:string, astnode:Object, bar}} hi - desc\u000a* @returns {ASTNode} returns a node\u000a*/\u000afunction foo(hi){} ok 18758 valid-jsdoc invalid call(\u000a /**\u000a * Doc for a function expression in a call expression.\u000a * @param {string} bogusName This is the param description.\u000a * @return {string} This is the return description.\u000a */\u000a function(argName) {\u000a return 'the return';\u000a }\u000a);\u000a ok 18759 valid-jsdoc invalid /** @@foo */\u000afunction foo(){} ok 18760 valid-jsdoc invalid /**\u000a* Create a new thing.\u000a*/\u000avar thing = new Thing({\u000a /**\u000a * Missing return tag.\u000a */\u000a foo: function() {\u000a return 'bar';\u000a }\u000a});\u000a ok 18761 valid-jsdoc invalid /** @@returns {void} Foo */\u000afunction foo(){} ok 18762 valid-jsdoc invalid /** Foo \u000a@returns {void Foo\u000a */\u000afunction foo(){} ok 18763 valid-jsdoc invalid /** Foo \u000a@return {void} Foo\u000a */\u000afunction foo(){} ok 18764 valid-jsdoc invalid /** Foo \u000a@argument {int} bar baz\u000a */\u000afunction foo(bar){} ok 18765 valid-jsdoc invalid /** Foo \u000a */\u000afunction foo(){} ok 18766 valid-jsdoc invalid /** Foo \u000a@return {void} Foo\u000a */\u000afoo.bar = () => {} ok 18767 valid-jsdoc invalid /** Foo \u000a@param {void Foo\u000a */\u000afunction foo(){} ok 18768 valid-jsdoc invalid /** Foo \u000a@param {} p Bar\u000a */\u000afunction foo(){} ok 18769 valid-jsdoc invalid /** Foo \u000a@param {void Foo */\u000afunction foo(){} ok 18770 valid-jsdoc invalid /** Foo\u000a* @param p Desc \u000a*/\u000afunction foo(){} ok 18771 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} p \u000a*/\u000afunction foo(){} ok 18772 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} p \u000a*/\u000avar foo = function(){} ok 18773 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} p \u000a*/\u000avar foo = \u000afunction(){} ok 18774 valid-jsdoc invalid /**\u000a * Description for a\u000a */\u000avar A = \u000a class {\u000a /**\u000a * Description for method.\u000a * @param {object[]} xs - xs\u000a */\u000a print(xs) {\u000a this.a = xs; }\u000a}; ok 18775 valid-jsdoc invalid /**\u000a* Foo\u000a* @returns {string} \u000a*/\u000afunction foo(){} ok 18776 valid-jsdoc invalid /**\u000a* Foo\u000a* @returns {string} something \u000a*/\u000afunction foo(p){} ok 18777 valid-jsdoc invalid /**\u000a* Foo\u000a* @returns {string} something \u000a*/\u000avar foo = \u000afunction foo(a = 1){} ok 18778 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} a Description \u000a* @param {string} b Description \u000a* @returns {string} something \u000a*/\u000avar foo = \u000afunction foo(b, a = 1){} ok 18779 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} p desc\u000a* @param {string} p desc \u000a*/\u000afunction foo(){} ok 18780 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} a desc\u000a@returns {void}*/\u000afunction foo(b){} ok 18781 valid-jsdoc invalid /**\u000a* Foo\u000a* @override\u000a* @param {string} a desc\u000a */\u000afunction foo(b){} ok 18782 valid-jsdoc invalid /**\u000a* Foo\u000a* @inheritdoc\u000a* @param {string} a desc\u000a */\u000afunction foo(b){} ok 18783 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} a desc\u000a*/\u000afunction foo(a){var t = false; if(t) {return t;}} ok 18784 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} a desc\u000a*/\u000afunction foo(a){var t = false; if(t) {return null;}} ok 18785 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {string} a desc\u000a@returns {MyClass}*/\u000afunction foo(a){var t = false; if(t) {process(t);}} ok 18786 valid-jsdoc invalid /**\u000a * Does something. \u000a* @param {string} a - this is a \u000a* @return {Array} The result of doing it \u000a*/\u000a export function doSomething(a) { } ok 18787 valid-jsdoc invalid /**\u000a * Does something. \u000a* @param {string} a - this is a \u000a* @return {Array} The result of doing it \u000a*/\u000a export default function doSomething(a) { } ok 18788 valid-jsdoc invalid /** foo */ var foo = () => bar(); ok 18789 valid-jsdoc invalid /** foo */ var foo = () => { return bar(); }; ok 18790 valid-jsdoc invalid /** @returns {object} foo */ var foo = () => { bar(); }; ok 18791 valid-jsdoc invalid /**\u000a* @param fields [Array]\u000a */\u000a function foo(){} ok 18792 valid-jsdoc invalid /**\u000a* Start with caps and end with period\u000a* @return {void} */\u000afunction foo(){} ok 18793 valid-jsdoc invalid /** Foo \u000a@return Foo\u000a */\u000afunction foo(){} ok 18794 valid-jsdoc invalid /** Foo \u000a@return sdf\u000a */\u000afunction foo(){} ok 18795 valid-jsdoc invalid /**\u000a * Description for A\u000a */\u000aclass A {\u000a /**\u000a * Description for constructor\u000a * @param {object[]} xs - xs\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a} ok 18796 valid-jsdoc invalid /**\u000a * Description for a\u000a */\u000avar A = class {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a */\u000a print(xs) {\u000a this.a = xs; }\u000a}; ok 18797 valid-jsdoc invalid /**\u000a * Description for A.\u000a */\u000aclass A {\u000a /**\u000a * Description for constructor.\u000a * @param {object[]} xs - xs\u000a * @returns {void}\u000a */\u000a constructor(xs) {\u000a this.a = xs; }\u000a /**\u000a * Description for method.\u000a */\u000a print(xs) {\u000a this.a = xs; }\u000a} ok 18798 valid-jsdoc invalid /**\u000a * Use of this with an invalid type expression\u000a * @this {not.a.valid.type.expression\u000a */\u000afunction foo() {} ok 18799 valid-jsdoc invalid /**\u000a * Use of this with a type that is not a member expression\u000a * @this {Array}\u000a */\u000afunction foo() {} ok 18800 valid-jsdoc invalid /**\u000a * An async function. Options requires return.\u000a */\u000aasync function a() {} ok 18801 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {String} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18802 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {{20:String}} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18803 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {String|number|test} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18804 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {Array.} hi - desc\u000a* @returns {Astnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18805 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {Array.<{id: Number, votes: Number}>} hi - desc\u000a* @returns {Array.<{summary: String}>} desc\u000a*/\u000afunction foo(hi){} ok 18806 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {Array.<[String, Number]>} hi - desc\u000a* @returns {Array.<[String, String]>} desc\u000a*/\u000afunction foo(hi){} ok 18807 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {object>} hi - because why not\u000a* @returns {Boolean} desc\u000a*/\u000afunction foo(hi){} ok 18808 valid-jsdoc invalid /**\u000a* Foo\u000a* @param {{foo:String, astnode:Object, bar}} hi - desc\u000a* @returns {ASTnode} returns a node\u000a*/\u000afunction foo(hi){} ok 18809 valid-typeof valid typeof foo === 'string' ok 18810 valid-typeof valid typeof foo === 'object' ok 18811 valid-typeof valid typeof foo === 'function' ok 18812 valid-typeof valid typeof foo === 'undefined' ok 18813 valid-typeof valid typeof foo === 'boolean' ok 18814 valid-typeof valid typeof foo === 'number' ok 18815 valid-typeof valid typeof foo === 'bigint' ok 18816 valid-typeof valid 'string' === typeof foo ok 18817 valid-typeof valid 'object' === typeof foo ok 18818 valid-typeof valid 'function' === typeof foo ok 18819 valid-typeof valid 'undefined' === typeof foo ok 18820 valid-typeof valid 'boolean' === typeof foo ok 18821 valid-typeof valid 'number' === typeof foo ok 18822 valid-typeof valid typeof foo === typeof bar ok 18823 valid-typeof valid typeof foo === baz ok 18824 valid-typeof valid typeof foo !== someType ok 18825 valid-typeof valid typeof bar != someType ok 18826 valid-typeof valid someType === typeof bar ok 18827 valid-typeof valid someType == typeof bar ok 18828 valid-typeof valid typeof foo == 'string' ok 18829 valid-typeof valid typeof(foo) === 'string' ok 18830 valid-typeof valid typeof(foo) !== 'string' ok 18831 valid-typeof valid typeof(foo) == 'string' ok 18832 valid-typeof valid typeof(foo) != 'string' ok 18833 valid-typeof valid var oddUse = typeof foo + 'thing' ok 18834 valid-typeof valid typeof foo === 'number' ok 18835 valid-typeof valid typeof foo === "number" ok 18836 valid-typeof valid var baz = typeof foo + 'thing' ok 18837 valid-typeof valid typeof foo === typeof bar ok 18838 valid-typeof valid typeof foo === `string` ok 18839 valid-typeof valid `object` === typeof foo ok 18840 valid-typeof valid typeof foo === `str${somethingElse}` ok 18841 valid-typeof invalid typeof foo === 'strnig' ok 18842 valid-typeof invalid 'strnig' === typeof foo ok 18843 valid-typeof invalid if (typeof bar === 'umdefined') {} ok 18844 valid-typeof invalid typeof foo !== 'strnig' ok 18845 valid-typeof invalid 'strnig' !== typeof foo ok 18846 valid-typeof invalid if (typeof bar !== 'umdefined') {} ok 18847 valid-typeof invalid typeof foo != 'strnig' ok 18848 valid-typeof invalid 'strnig' != typeof foo ok 18849 valid-typeof invalid if (typeof bar != 'umdefined') {} ok 18850 valid-typeof invalid typeof foo == 'strnig' ok 18851 valid-typeof invalid 'strnig' == typeof foo ok 18852 valid-typeof invalid if (typeof bar == 'umdefined') {} ok 18853 valid-typeof invalid if (typeof bar === `umdefined`) {} ok 18854 valid-typeof invalid typeof foo == 'invalid string' ok 18855 valid-typeof invalid typeof foo == Object ok 18856 valid-typeof invalid typeof foo === undefined ok 18857 valid-typeof invalid undefined === typeof foo ok 18858 valid-typeof invalid undefined == typeof foo ok 18859 valid-typeof invalid typeof foo === `undefined${foo}` ok 18860 valid-typeof invalid typeof foo === `${string}` ok 18861 vars-on-top valid var first = 0;\u000afunction foo() {\u000a first = 2;\u000a} ok 18862 vars-on-top valid function foo() {\u000a} ok 18863 vars-on-top valid function foo() {\u000a var first;\u000a if (true) {\u000a first = true;\u000a } else {\u000a first = 1;\u000a }\u000a} ok 18864 vars-on-top valid function foo() {\u000a var first;\u000a var second = 1;\u000a var third;\u000a var fourth = 1, fifth, sixth = third;\u000a var seventh;\u000a if (true) {\u000a third = true;\u000a }\u000a first = second;\u000a} ok 18865 vars-on-top valid function foo() {\u000a var i;\u000a for (i = 0; i < 10; i++) {\u000a alert(i);\u000a }\u000a} ok 18866 vars-on-top valid function foo() {\u000a var outer;\u000a function inner() {\u000a var inner = 1;\u000a var outer = inner;\u000a }\u000a outer = 1;\u000a} ok 18867 vars-on-top valid function foo() {\u000a var first;\u000a //Hello\u000a var second = 1;\u000a first = second;\u000a} ok 18868 vars-on-top valid function foo() {\u000a var first;\u000a /*\u000a Hello Clarice\u000a */\u000a var second = 1;\u000a first = second;\u000a} ok 18869 vars-on-top valid function foo() {\u000a var first;\u000a var second = 1;\u000a function bar(){\u000a var first;\u000a first = 5;\u000a }\u000a first = second;\u000a} ok 18870 vars-on-top valid function foo() {\u000a var first;\u000a var second = 1;\u000a function bar(){\u000a var third;\u000a third = 5;\u000a }\u000a first = second;\u000a} ok 18871 vars-on-top valid function foo() {\u000a var first;\u000a var bar = function(){\u000a var third;\u000a third = 5;\u000a }\u000a first = 5;\u000a} ok 18872 vars-on-top valid function foo() {\u000a var first;\u000a first.onclick(function(){\u000a var third;\u000a third = 5;\u000a });\u000a first = 5;\u000a} ok 18873 vars-on-top valid function foo() {\u000a var i = 0;\u000a for (let j = 0; j < 10; j++) {\u000a alert(j);\u000a }\u000a i = i + 1;\u000a} ok 18874 vars-on-top valid 'use strict'; var x; f(); ok 18875 vars-on-top valid 'use strict'; 'directive'; var x; var y; f(); ok 18876 vars-on-top valid function f() { 'use strict'; var x; f(); } ok 18877 vars-on-top valid function f() { 'use strict'; 'directive'; var x; var y; f(); } ok 18878 vars-on-top valid import React from 'react'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18879 vars-on-top valid 'use strict'; import React from 'react'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18880 vars-on-top valid import React from 'react'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18881 vars-on-top valid import * as foo from 'mod.js'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18882 vars-on-top valid import { square, diag } from 'lib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18883 vars-on-top valid import { default as foo } from 'lib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18884 vars-on-top valid import 'src/mylib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18885 vars-on-top valid import theDefault, { named1, named2 } from 'src/mylib'; 'use strict'; var y; function f() { 'use strict'; var x; var y; f(); } ok 18886 vars-on-top valid export var x;\u000avar y;\u000avar z; ok 18887 vars-on-top valid var x;\u000aexport var y;\u000avar z; ok 18888 vars-on-top valid var x;\u000avar y;\u000aexport var z; ok 18889 vars-on-top invalid var first = 0;\u000afunction foo() {\u000a first = 2;\u000a second = 2;\u000a}\u000avar second = 0; ok 18890 vars-on-top invalid function foo() {\u000a var first;\u000a first = 1;\u000a first = 2;\u000a first = 3;\u000a first = 4;\u000a var second = 1;\u000a second = 2;\u000a first = second;\u000a} ok 18891 vars-on-top invalid function foo() {\u000a var first;\u000a if (true) {\u000a var second = true;\u000a }\u000a first = second;\u000a} ok 18892 vars-on-top invalid function foo() {\u000a for (var i = 0; i < 10; i++) {\u000a alert(i);\u000a }\u000a} ok 18893 vars-on-top invalid function foo() {\u000a var first = 10;\u000a var i;\u000a for (i = 0; i < first; i ++) {\u000a var second = i;\u000a }\u000a} ok 18894 vars-on-top invalid function foo() {\u000a var first = 10;\u000a var i;\u000a switch (first) {\u000a case 10:\u000a var hello = 1;\u000a break;\u000a }\u000a} ok 18895 vars-on-top invalid function foo() {\u000a var first = 10;\u000a var i;\u000a try {\u000a var hello = 1;\u000a } catch (e) {\u000a alert('error');\u000a }\u000a} ok 18896 vars-on-top invalid function foo() {\u000a var first = 10;\u000a var i;\u000a try {\u000a asdf;\u000a } catch (e) {\u000a var hello = 1;\u000a }\u000a} ok 18897 vars-on-top invalid function foo() {\u000a var first = 10;\u000a while (first) {\u000a var hello = 1;\u000a }\u000a} ok 18898 vars-on-top invalid function foo() {\u000a var first = 10;\u000a do {\u000a var hello = 1;\u000a } while (first == 10);\u000a} ok 18899 vars-on-top invalid function foo() {\u000a var first = [1,2,3];\u000a for (var item in first) {\u000a item++;\u000a }\u000a} ok 18900 vars-on-top invalid function foo() {\u000a var first = [1,2,3];\u000a var item;\u000a for (item in first) {\u000a var hello = item;\u000a }\u000a} ok 18901 vars-on-top invalid var foo = () => {\u000a var first = [1,2,3];\u000a var item;\u000a for (item in first) {\u000a var hello = item;\u000a }\u000a} ok 18902 vars-on-top invalid 'use strict'; 0; var x; f(); ok 18903 vars-on-top invalid 'use strict'; var x; 'directive'; var y; f(); ok 18904 vars-on-top invalid function f() { 'use strict'; 0; var x; f(); } ok 18905 vars-on-top invalid function f() { 'use strict'; var x; 'directive'; var y; f(); } ok 18906 vars-on-top invalid export function f() {}\u000avar x; ok 18907 vars-on-top invalid var x;\u000aexport function f() {}\u000avar y; ok 18908 vars-on-top invalid import {foo} from 'foo';\u000aexport {foo};\u000avar test = 1; ok 18909 vars-on-top invalid export {foo} from 'foo';\u000avar test = 1; ok 18910 vars-on-top invalid export * from 'foo';\u000avar test = 1; ok 18911 wrap-iife valid (function(){ }()); ok 18912 wrap-iife valid (function(){ })(); ok 18913 wrap-iife valid (function a(){ }()); ok 18914 wrap-iife valid (function a(){ })(); ok 18915 wrap-iife valid (function(){ }()) ok 18916 wrap-iife valid (function(){ })() ok 18917 wrap-iife valid (function a(){ }()); ok 18918 wrap-iife valid (function a(){ })(); ok 18919 wrap-iife valid foo.bar(); ok 18920 wrap-iife valid var a = function(){return 1;}; ok 18921 wrap-iife valid window.bar = (function() { return 3; }.call(this, arg1)); ok 18922 wrap-iife valid window.bar = (function() { return 3; }).call(this, arg1); ok 18923 wrap-iife valid window.bar = (function() { return 3; }.apply(this, arg1)); ok 18924 wrap-iife valid window.bar = (function() { return 3; }).apply(this, arg1); ok 18925 wrap-iife valid window.bar = function() { return 3; }.call(this, arg1); ok 18926 wrap-iife valid window.bar = function() { return 3; }.call(this, arg1); ok 18927 wrap-iife valid window.bar = function() { return 3; }[call](this, arg1); ok 18928 wrap-iife valid window.bar = function() { return 3; }[apply](this, arg1); ok 18929 wrap-iife valid window.bar = function() { return 3; }[foo](this, arg1); ok 18930 wrap-iife valid var a = function(){return 1;}.bind(this); ok 18931 wrap-iife valid var a = function(){return 1;}.bind(this).apply(that); ok 18932 wrap-iife invalid 0, function(){ }(); ok 18933 wrap-iife invalid [function(){ }()]; ok 18934 wrap-iife invalid var a = function(){ }(); ok 18935 wrap-iife invalid (function(){ }(), 0); ok 18936 wrap-iife invalid (function a(){ })(); ok 18937 wrap-iife invalid (function a(){ }()); ok 18938 wrap-iife invalid ( /* a */ function /* b */ foo /* c */ ( /* d */ bar /* e */ ) /* f */ { /* g */ return; /* h */ } /* i */ ( /* j */ baz /* k */) /* l */ ) /* m */ ; ok 18939 wrap-iife invalid ( /* a */ function /* b */ foo /* c */ ( /* d */ bar /* e */ ) /* f */ { /* g */ return; /* h */ } /* i */ ) /* j */ ( /* k */ baz /* l */) /* m */ ; ok 18940 wrap-iife invalid +function(){return 1;}() ok 18941 wrap-iife invalid +function(){return 1;}() ok 18942 wrap-iife invalid window.bar = function() { return 3; }.call(this, arg1); ok 18943 wrap-iife invalid window.bar = function() { return 3; }['call'](this, arg1); ok 18944 wrap-iife invalid window.bar = function() { return 3; }.call(this, arg1); ok 18945 wrap-iife invalid window.bar = (function() { return 3; }.call(this, arg1)); ok 18946 wrap-iife invalid window.bar = (function() { return 3; }).call(this, arg1); ok 18947 wrap-regex valid (/foo/).test(bar); ok 18948 wrap-regex valid (/foo/ig).test(bar); ok 18949 wrap-regex valid /foo/; ok 18950 wrap-regex valid var f = 0; ok 18951 wrap-regex valid a[/b/]; ok 18952 wrap-regex invalid /foo/.test(bar); ok 18953 wrap-regex invalid /foo/ig.test(bar); ok 18954 wrap-regex invalid if(/foo/ig.test(bar)); ok 18955 yield-star-spacing valid function *foo(){ yield foo; } ok 18956 yield-star-spacing valid function *foo(){ yield* foo; } ok 18957 yield-star-spacing valid function *foo(){ yield foo; } ok 18958 yield-star-spacing valid function *foo(){ yield* foo; } ok 18959 yield-star-spacing valid function *foo(){ yield* foo(); } ok 18960 yield-star-spacing valid function *foo(){ yield* 0 } ok 18961 yield-star-spacing valid function *foo(){ yield* []; } ok 18962 yield-star-spacing valid function *foo(){ var result = yield* foo(); } ok 18963 yield-star-spacing valid function *foo(){ var result = yield* (foo()); } ok 18964 yield-star-spacing valid function *foo(){ yield foo; } ok 18965 yield-star-spacing valid function *foo(){ yield *foo; } ok 18966 yield-star-spacing valid function *foo(){ yield *foo(); } ok 18967 yield-star-spacing valid function *foo(){ yield *0 } ok 18968 yield-star-spacing valid function *foo(){ yield *[]; } ok 18969 yield-star-spacing valid function *foo(){ var result = yield *foo(); } ok 18970 yield-star-spacing valid function *foo(){ yield foo; } ok 18971 yield-star-spacing valid function *foo(){ yield * foo; } ok 18972 yield-star-spacing valid function *foo(){ yield * foo(); } ok 18973 yield-star-spacing valid function *foo(){ yield * 0 } ok 18974 yield-star-spacing valid function *foo(){ yield * []; } ok 18975 yield-star-spacing valid function *foo(){ var result = yield * foo(); } ok 18976 yield-star-spacing valid function *foo(){ yield foo; } ok 18977 yield-star-spacing valid function *foo(){ yield*foo; } ok 18978 yield-star-spacing valid function *foo(){ yield*foo(); } ok 18979 yield-star-spacing valid function *foo(){ yield*0 } ok 18980 yield-star-spacing valid function *foo(){ yield*[]; } ok 18981 yield-star-spacing valid function *foo(){ var result = yield*foo(); } ok 18982 yield-star-spacing invalid function *foo(){ yield *foo1; } ok 18983 yield-star-spacing invalid function *foo(){ yield *foo1; } ok 18984 yield-star-spacing invalid function *foo(){ yield * foo; } ok 18985 yield-star-spacing invalid function *foo(){ yield*foo2; } ok 18986 yield-star-spacing invalid function *foo(){ yield* foo; } ok 18987 yield-star-spacing invalid function *foo(){ yield * foo; } ok 18988 yield-star-spacing invalid function *foo(){ yield*foo; } ok 18989 yield-star-spacing invalid function *foo(){ yield* foo; } ok 18990 yield-star-spacing invalid function *foo(){ yield *foo3; } ok 18991 yield-star-spacing invalid function *foo(){ yield*foo4; } ok 18992 yield-star-spacing invalid function *foo(){ yield* foo; } ok 18993 yield-star-spacing invalid function *foo(){ yield *foo; } ok 18994 yield-star-spacing invalid function *foo(){ yield * foo; } ok 18995 yoda valid if (value === "red") {} ok 18996 yoda valid if (value === value) {} ok 18997 yoda valid if (value != 5) {} ok 18998 yoda valid if (5 & foo) {} ok 18999 yoda valid if (5 === 4) {} ok 19000 yoda valid if ("blue" === value) {} ok 19001 yoda valid if (value === value) {} ok 19002 yoda valid if (4 != value) {} ok 19003 yoda valid if (foo & 4) {} ok 19004 yoda valid if (5 === 4) {} ok 19005 yoda valid if (0 < x && x <= 1) {} ok 19006 yoda valid if (x < 0 || 1 <= x) {} ok 19007 yoda valid if (0 <= x && x < 1) {} ok 19008 yoda valid if (x <= 'bar' || 'foo' < x) {} ok 19009 yoda valid if ('blue' < x.y && x.y < 'green') {} ok 19010 yoda valid if (0 < x[``] && x[``] < 100) {} ok 19011 yoda valid if (0 < x[''] && x[``] < 100) {} ok 19012 yoda valid if (0 <= x['y'] && x['y'] <= 100) {} ok 19013 yoda valid if (a < 0 && (0 < b && b < 1)) {} ok 19014 yoda valid if ((0 < a && a < 1) && b < 0) {} ok 19015 yoda valid if (a < 4 || (b[c[0]].d['e'] < 0 || 1 <= b[c[0]].d['e'])) {} ok 19016 yoda valid if (-1 < x && x < 0) {} ok 19017 yoda valid if (0 <= this.prop && this.prop <= 1) {} ok 19018 yoda valid if (0 <= index && index < list.length) {} ok 19019 yoda valid if (ZERO <= index && index < 100) {} ok 19020 yoda valid if (value <= MIN || 10 < value) {} ok 19021 yoda valid if (value <= 0 || MAX < value) {} ok 19022 yoda valid if (0 <= a.b && a["b"] <= 100) {} ok 19023 yoda valid if (0 < x && x <= 1) {} ok 19024 yoda valid if (x !== 'foo' && 'foo' !== x) {} ok 19025 yoda valid if (x < 2 && x !== -3) {} ok 19026 yoda invalid if ("red" == value) {} ok 19027 yoda invalid if (true === value) {} ok 19028 yoda invalid if (5 != value) {} ok 19029 yoda invalid if (null !== value) {} ok 19030 yoda invalid if ("red" <= value) {} ok 19031 yoda invalid if (true >= value) {} ok 19032 yoda invalid var foo = (5 < value) ? true : false ok 19033 yoda invalid function foo() { return (null > value); } ok 19034 yoda invalid if (-1 < str.indexOf(substr)) {} ok 19035 yoda invalid if (value == "red") {} ok 19036 yoda invalid if (value === true) {} ok 19037 yoda invalid if (a < 0 && 0 <= b && b < 1) {} ok 19038 yoda invalid if (0 <= a && a < 1 && b < 1) {} ok 19039 yoda invalid if (1 < a && a < 0) {} ok 19040 yoda invalid 0 < a && a < 1 ok 19041 yoda invalid var a = b < 0 || 1 <= b; ok 19042 yoda invalid if (0 <= x && x < -1) {} ok 19043 yoda invalid var a = (b < 0 && 0 <= b); ok 19044 yoda invalid if (0 <= a[b] && a['b'] < 1) {} ok 19045 yoda invalid if (0 <= a[b] && a.b < 1) {} ok 19046 yoda invalid if (0 <= a[''] && a.b < 1) {} ok 19047 yoda invalid if (0 <= a[''] && a[' '] < 1) {} ok 19048 yoda invalid if (0 <= a[''] && a[null] < 1) {} ok 19049 yoda invalid if (0 <= a[''] && a[b] < 1) {} ok 19050 yoda invalid if (0 <= a[''] && a[b()] < 1) {} ok 19051 yoda invalid if (0 <= a[b()] && a[b()] < 1) {} ok 19052 yoda invalid if (3 == a) {} ok 19053 yoda invalid foo(3 === a); ok 19054 yoda invalid foo(a === 3); ok 19055 yoda invalid if (0 <= x && x < 1) {} ok 19056 yoda invalid if ( /* a */ 0 /* b */ < /* c */ foo /* d */ ) {} ok 19057 yoda invalid if ( /* a */ foo /* b */ > /* c */ 0 /* d */ ) {} ok 19058 yoda invalid if (foo()===1) {} ok 19059 yoda invalid if (foo() === 1) {} ok 19060 yoda invalid while (0 === (a)); ok 19061 yoda invalid while (0 === (a = b)); ok 19062 yoda invalid while ((a) === 0); ok 19063 yoda invalid while ((a = b) === 0); ok 19064 yoda invalid if (((((((((((foo)))))))))) === ((((((5))))))); ok 19065 yoda invalid function *foo() { yield(1) < a } ok 19066 yoda invalid function *foo() { yield((1)) < a } ok 19067 yoda invalid function *foo() { yield 1 < a } ok 19068 yoda invalid function *foo() { yield/**/1 < a } ok 19069 yoda invalid function *foo() { yield(1) < ++a } ok 19070 yoda invalid function *foo() { yield(1) < (a) } ok 19071 yoda invalid x=1 < a ok 19072 yoda invalid function *foo() { yield++a < 1 } ok 19073 yoda invalid function *foo() { yield(a) < 1 } ok 19074 yoda invalid function *foo() { yield a < 1 } ok 19075 yoda invalid function *foo() { yield/**/a < 1 } ok 19076 yoda invalid function *foo() { yield++a < (1) } ok 19077 yoda invalid x=a < 1 ok 19078 ConfigOps getRuleSeverity() returns 0 for 0 ok 19079 ConfigOps getRuleSeverity() returns 1 for 1 ok 19080 ConfigOps getRuleSeverity() returns 2 for 2 ok 19081 ConfigOps getRuleSeverity() returns 0 for [ 0 ] ok 19082 ConfigOps getRuleSeverity() returns 1 for [ 1 ] ok 19083 ConfigOps getRuleSeverity() returns 2 for [ 2 ] ok 19084 ConfigOps getRuleSeverity() returns 0 for 'off' ok 19085 ConfigOps getRuleSeverity() returns 1 for 'warn' ok 19086 ConfigOps getRuleSeverity() returns 2 for 'error' ok 19087 ConfigOps getRuleSeverity() returns 0 for [ 'off' ] ok 19088 ConfigOps getRuleSeverity() returns 1 for [ 'warn' ] ok 19089 ConfigOps getRuleSeverity() returns 2 for [ 'error' ] ok 19090 ConfigOps getRuleSeverity() returns 0 for 'OFF' ok 19091 ConfigOps getRuleSeverity() returns 1 for 'wArN' ok 19092 ConfigOps getRuleSeverity() returns 2 for [ 'ErRoR' ] ok 19093 ConfigOps getRuleSeverity() returns 0 for 'invalid config' ok 19094 ConfigOps getRuleSeverity() returns 0 for [ 'invalid config' ] ok 19095 ConfigOps getRuleSeverity() returns 0 for 3 ok 19096 ConfigOps getRuleSeverity() returns 0 for [ 3 ] ok 19097 ConfigOps getRuleSeverity() returns 0 for 1.5 ok 19098 ConfigOps getRuleSeverity() returns 0 for [ 1.5 ] ok 19099 ConfigOps normalizeToStrings() should convert 2 rule setting to error when rule has just a severity ok 19100 ConfigOps normalizeToStrings() should convert 2 rule setting to error when rule has array with severity ok 19101 ConfigOps normalizeToStrings() should convert 1 rule setting to warn when rule has just a severity ok 19102 ConfigOps normalizeToStrings() should convert 1 rule setting to warn when rule has array with severity ok 19103 ConfigOps normalizeToStrings() should convert 0 rule setting to off when rule has just a severity ok 19104 ConfigOps normalizeToStrings() should convert 0 rule setting to off when rule has array with severity ok 19105 ConfigOps normalizeToStrings() should convert 256 rule setting to off when rule has just a severity ok 19106 ConfigOps normalizeToStrings() should convert 256 rule setting to off when rule has array with severity ok 19107 ConfigOps isError() should return truewhen passed error ok 19108 ConfigOps isError() should return truewhen passed Error ok 19109 ConfigOps isError() should return truewhen passed 2 ok 19110 ConfigOps isError() should return truewhen passed error ok 19111 ConfigOps isError() should return truewhen passed erRor ok 19112 ConfigOps isError() should return truewhen passed 2 ok 19113 ConfigOps isError() should return truewhen passed error,foo ok 19114 ConfigOps isError() should return truewhen passed eRror,bar ok 19115 ConfigOps isError() should return truewhen passed 2,baz ok 19116 ConfigOps normalizeConfigGlobal 'off' ok 19117 ConfigOps normalizeConfigGlobal true ok 19118 ConfigOps normalizeConfigGlobal 'true' ok 19119 ConfigOps normalizeConfigGlobal false ok 19120 ConfigOps normalizeConfigGlobal 'false' ok 19121 ConfigOps normalizeConfigGlobal null ok 19122 ConfigOps normalizeConfigGlobal 'writeable' ok 19123 ConfigOps normalizeConfigGlobal 'writable' ok 19124 ConfigOps normalizeConfigGlobal 'readable' ok 19125 ConfigOps normalizeConfigGlobal 'readonly' ok 19126 ConfigOps normalizeConfigGlobal 'writable' ok 19127 ConfigOps normalizeConfigGlobal throws on other inputs ok 19128 Validator validate should do nothing with an empty config ok 19129 Validator validate should do nothing with a valid eslint config ok 19130 Validator validate should throw with an unknown property ok 19131 Validator validate root should throw with a string value ok 19132 Validator validate root should throw with a numeric value ok 19133 Validator validate globals should throw with a string value ok 19134 Validator validate globals should throw with an array value ok 19135 Validator validate parser should not throw with a null value ok 19136 Validator validate env should throw with an array environment ok 19137 Validator validate env should throw with a primitive environment ok 19138 Validator validate env should catch invalid environments ok 19139 Validator validate env should catch disabled invalid environments ok 19140 Validator validate env should do nothing with an undefined environment ok 19141 Validator validate plugins should not throw with an empty array ok 19142 Validator validate plugins should throw with a string ok 19143 Validator validate settings should not throw with an empty object ok 19144 Validator validate settings should throw with an array ok 19145 Validator validate extends should not throw with an empty array ok 19146 Validator validate extends should not throw with a string ok 19147 Validator validate extends should throw with an object ok 19148 Validator validate parserOptions should not throw with an empty object ok 19149 Validator validate parserOptions should throw with an array ok 19150 Validator validate rules should do nothing with an empty rules object ok 19151 Validator validate rules should do nothing with a valid config with rules ok 19152 Validator validate rules should do nothing with a valid config when severity is off ok 19153 Validator validate rules should do nothing with an invalid config when severity is off ok 19154 Validator validate rules should do nothing with an invalid config when severity is an array with 'off' ok 19155 Validator validate rules should do nothing with a valid config when severity is warn ok 19156 Validator validate rules should do nothing with a valid config when severity is error ok 19157 Validator validate rules should do nothing with a valid config when severity is Off ok 19158 Validator validate rules should do nothing with a valid config when severity is Warn ok 19159 Validator validate rules should do nothing with a valid config when severity is Error ok 19160 Validator validate rules should catch invalid rule options ok 19161 Validator validate rules should allow for rules with no options ok 19162 Validator validate rules should not allow options for rules with no options ok 19163 Validator validate globals should disallow globals set to invalid values ok 19164 Validator validate overrides should not throw with an empty overrides array ok 19165 Validator validate overrides should not throw with a valid overrides array ok 19166 Validator validate overrides should throw if override does not specify files ok 19167 Validator validate overrides should throw if override has an empty files array ok 19168 Validator validate overrides should not throw if override has nested overrides ok 19169 Validator validate overrides should not throw if override extends ok 19170 Validator validate overrides should throw if override tries to set root ok 19171 Validator validate overrides env should catch invalid environments ok 19172 Validator validate overrides env should catch disabled invalid environments ok 19173 Validator validate overrides rules should catch invalid rule options ok 19174 Validator validate overrides rules should not allow options for rules with no options ok 19175 Validator getRuleOptionsSchema should return null for a missing rule ok 19176 Validator getRuleOptionsSchema should not modify object schema ok 19177 Validator validateRuleOptions should throw for incorrect warning level number ok 19178 Validator validateRuleOptions should throw for incorrect warning level string ok 19179 Validator validateRuleOptions should throw for invalid-type warning level ok 19180 Validator validateRuleOptions should only check warning level for nonexistent rules ok 19181 Validator validateRuleOptions should only check warning level for plugin rules ok 19182 Validator validateRuleOptions should throw for incorrect configuration values ok 19183 Validator validateRuleOptions should throw for too many configuration values ok 19184 naming normalizePackageName() should return eslint-config-foo when passed foo ok 19185 naming normalizePackageName() should return eslint-config-foo when passed eslint-config-foo ok 19186 naming normalizePackageName() should return @z/eslint-config-foo when passed @z/foo ok 19187 naming normalizePackageName() should return @z/eslint-config-foo when passed @z\foo ok 19188 naming normalizePackageName() should return @z/eslint-config-foo/bar.js when passed @z\foo\bar.js ok 19189 naming normalizePackageName() should return @z/eslint-config when passed @z/eslint-config ok 19190 naming normalizePackageName() should return @z/eslint-config-foo when passed @z/eslint-config-foo ok 19191 naming getShorthandName() should return foo when passed foo ok 19192 naming getShorthandName() should return foo when passed eslint-config-foo ok 19193 naming getShorthandName() should return @z when passed @z ok 19194 naming getShorthandName() should return @z when passed @z/eslint-config ok 19195 naming getShorthandName() should return @z/foo when passed @z/foo ok 19196 naming getShorthandName() should return @z/foo when passed @z/eslint-config-foo ok 19197 naming getNamespaceFromTerm() should remove namepace when passed with namepace ok 19198 Traverser traverses all keys except 'parent', 'leadingComments', and 'trailingComments' ok 19199 Traverser traverses AST as using 'visitorKeys' option if given ok 19200 SourceCode new SourceCode() should create a new instance when called with valid data ok 19201 SourceCode new SourceCode() should create a new instance when called with valid optional data ok 19202 SourceCode new SourceCode() should split text into lines when called with valid data ok 19203 SourceCode new SourceCode() should throw an error when called with an AST that's missing tokens ok 19204 SourceCode new SourceCode() should throw an error when called with an AST that's missing comments ok 19205 SourceCode new SourceCode() should throw an error when called with an AST that's missing location ok 19206 SourceCode new SourceCode() should throw an error when called with an AST that's missing range ok 19207 SourceCode new SourceCode() should store all tokens and comments sorted by range ok 19208 SourceCode new SourceCode() if a text has BOM, should has true at `hasBOM` property. ok 19209 SourceCode new SourceCode() if a text has BOM, should not has BOM in `text` property. ok 19210 SourceCode new SourceCode() if a text doesn't have BOM, should has false at `hasBOM` property. ok 19211 SourceCode new SourceCode() if a text doesn't have BOM, should not has BOM in `text` property. ok 19212 SourceCode new SourceCode() when a text has a shebang should change the type of the first comment to "Shebang" ok 19213 SourceCode new SourceCode() when a text does not have a shebang should not change the type of the first comment ok 19214 SourceCode new SourceCode() when it read a UTF-8 file (has BOM), SourceCode to be clear, check the file has UTF-8 BOM. ok 19215 SourceCode new SourceCode() when it read a UTF-8 file (has BOM), SourceCode should has true at `hasBOM` property. ok 19216 SourceCode new SourceCode() when it read a UTF-8 file (has BOM), SourceCode should not has BOM in `text` property. ok 19217 SourceCode getJSDocComment() should not take a JSDoc comment from a FunctionDeclaration parent node when the node is a FunctionExpression ok 19218 SourceCode getJSDocComment() should not take a JSDoc comment from a VariableDeclaration parent node when the node is a FunctionExpression inside a NewExpression ok 19219 SourceCode getJSDocComment() should not take a JSDoc comment from a FunctionExpression parent node when the node is a FunctionExpression ok 19220 SourceCode getJSDocComment() should get JSDoc comment for FunctionExpression in a CallExpression ok 19221 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionDeclaration ok 19222 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionDeclaration but its parent is an export ok 19223 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionDeclaration but not the first statement ok 19224 SourceCode getJSDocComment() should not get JSDoc comment for node when the node is a FunctionDeclaration inside of an IIFE without a JSDoc comment ok 19225 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionDeclaration and there are multiple comments ok 19226 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionDeclaration inside of an IIFE ok 19227 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionExpression inside of an object literal ok 19228 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a ArrowFunctionExpression inside of an object literal ok 19229 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionExpression in an assignment ok 19230 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a FunctionExpression in an assignment inside an IIFE ok 19231 SourceCode getJSDocComment() should not get JSDoc comment for node when the node is a FunctionExpression in an assignment inside an IIFE without a JSDoc comment ok 19232 SourceCode getJSDocComment() should not get JSDoc comment for node when the node is a FunctionExpression inside of a CallExpression ok 19233 SourceCode getJSDocComment() should not get JSDoc comment for node when the node is a FunctionExpression in an assignment inside an IIFE without a JSDoc comment ok 19234 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a ClassExpression ok 19235 SourceCode getJSDocComment() should get JSDoc comment for node when the node is a ClassDeclaration ok 19236 SourceCode getJSDocComment() should not get JSDoc comment for class method even if the class has jsdoc present ok 19237 SourceCode getJSDocComment() should get JSDoc comment for function expression even if function has blank lines on top ok 19238 SourceCode getJSDocComment() should not get JSDoc comment for function declaration when the function has blank lines on top ok 19239 SourceCode getComments() should return comments around nodes ok 19240 SourceCode getComments() should return trailing comments inside a block ok 19241 SourceCode getComments() should return comments within a conditional ok 19242 SourceCode getComments() should not return comments within a previous node ok 19243 SourceCode getComments() should return comments only for children of parent node ok 19244 SourceCode getComments() should return comments for an export default anonymous class ok 19245 SourceCode getComments() should return leading comments ok 19246 SourceCode getComments() should return shebang comments ok 19247 SourceCode getComments() should include shebang comment when program only contains shebang ok 19248 SourceCode getComments() should return mixture of line and block comments ok 19249 SourceCode getComments() should return comments surrounding a call expression ok 19250 SourceCode getComments() should return comments surrounding a debugger statement ok 19251 SourceCode getComments() should return comments surrounding a return statement ok 19252 SourceCode getComments() should return comments surrounding a throw statement ok 19253 SourceCode getComments() should return comments surrounding a while loop ok 19254 SourceCode getComments() should return switch case fallthrough comments in functions ok 19255 SourceCode getComments() should return switch case fallthrough comments ok 19256 SourceCode getComments() should return switch case no-default comments in functions ok 19257 SourceCode getComments() should return switch case no-default comments ok 19258 SourceCode getComments() should return switch case no-default comments in nested functions ok 19259 SourceCode getComments() should return leading comments if the code only contains comments ok 19260 SourceCode getComments() should return trailing comments if a block statement only contains comments ok 19261 SourceCode getComments() should return trailing comments if a class body only contains comments ok 19262 SourceCode getComments() should return trailing comments if an object only contains comments ok 19263 SourceCode getComments() should return trailing comments if an array only contains comments ok 19264 SourceCode getComments() should return trailing comments if a switch statement only contains comments ok 19265 SourceCode getComments() should return comments for multiple declarations with a single variable ok 19266 SourceCode getComments() should return comments when comments exist between var keyword and VariableDeclarator ok 19267 SourceCode getComments() should return attached comments between tokens to the correct nodes for empty function declarations ok 19268 SourceCode getComments() should return attached comments between tokens to the correct nodes for empty class declarations ok 19269 SourceCode getComments() should return attached comments between tokens to the correct nodes for empty switch statements ok 19270 SourceCode getLines() should get proper lines when using \n as a line break ok 19271 SourceCode getLines() should get proper lines when using \r\n as a line break ok 19272 SourceCode getLines() should get proper lines when using \r as a line break ok 19273 SourceCode getLines() should get proper lines when using \u2028 as a line break ok 19274 SourceCode getLines() should get proper lines when using \u2029 as a line break ok 19275 SourceCode getText() should retrieve all text when used without parameters ok 19276 SourceCode getText() should retrieve all text for root node ok 19277 SourceCode getText() should clamp to valid range when retrieving characters before start of source ok 19278 SourceCode getText() should retrieve all text for binary expression ok 19279 SourceCode getText() should retrieve all text plus two characters before for binary expression ok 19280 SourceCode getText() should retrieve all text plus one character after for binary expression ok 19281 SourceCode getText() should retrieve all text plus two characters before and one character after for binary expression ok 19282 SourceCode getText() when text begins with a shebang should retrieve unaltered shebang text ok 19283 SourceCode getNodeByRangeIndex() should retrieve a node starting at the given index ok 19284 SourceCode getNodeByRangeIndex() should retrieve a node containing the given index ok 19285 SourceCode getNodeByRangeIndex() should retrieve a node that is exactly the given index ok 19286 SourceCode getNodeByRangeIndex() should retrieve a node ending with the given index ok 19287 SourceCode getNodeByRangeIndex() should retrieve the deepest node containing the given index ok 19288 SourceCode getNodeByRangeIndex() should return null if the index is outside the range of any node ok 19289 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let foo ok 19290 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let foo ok 19291 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let foo ok 19292 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let foo ok 19293 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let /**/ foo ok 19294 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let /**/ foo ok 19295 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let/**/foo ok 19296 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let/**/foo ok 19297 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let/* */foo ok 19298 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let/* */foo ok 19299 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a+b ok 19300 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a+b ok 19301 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a +b ok 19302 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a +b ok 19303 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b ok 19304 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b ok 19305 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b ok 19306 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b ok 19307 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b ok 19308 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b ok 19309 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ /**/+b ok 19310 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ /**/+b ok 19311 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ /* */+b ok 19312 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ /* */+b ok 19313 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ /**/+b ok 19314 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ /**/+b ok 19315 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ /* */+b ok 19316 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ /* */+b ok 19317 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b/**/+c ok 19318 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b/**/+c ok 19319 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b/* */+c ok 19320 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b/* */+c ok 19321 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b /**/+c ok 19322 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b /**/+c ok 19323 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b /* */+c ok 19324 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b /* */+c ok 19325 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b/**/+c ok 19326 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b/**/+c ok 19327 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ +b/* */+c ok 19328 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ +b/* */+c ok 19329 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b /**/+c ok 19330 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b /**/+c ok 19331 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b /* */+c ok 19332 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b /* */+c ok 19333 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b/**/+c ok 19334 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b/**/+c ok 19335 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ +b/* */+c ok 19336 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ +b/* */+c ok 19337 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b /**/+c ok 19338 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b /**/+c ok 19339 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b /* */+c ok 19340 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b /* */+c ok 19341 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b/**/+c ok 19342 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b/**/+c ok 19343 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ +b/* */+c ok 19344 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ +b/* */+c ok 19345 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+' /**/ '/* */+c ok 19346 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+' /**/ '/* */+c ok 19347 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ' /**/ '/* */+c ok 19348 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ' /**/ '/* */+c ok 19349 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+' /**/ ' /* */+c ok 19350 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+' /**/ ' /* */+c ok 19351 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ' /**/ ' /* */+c ok 19352 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ' /**/ ' /* */+c ok 19353 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+` /* */ `/* */+c ok 19354 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+` /* */ `/* */+c ok 19355 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ` /* */ `/* */+c ok 19356 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ` /* */ `/* */+c ok 19357 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+` /* */ ` /* */+c ok 19358 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+` /* */ ` /* */+c ok 19359 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ` /* */ ` /* */+c ok 19360 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ` /* */ ` /* */+c ok 19361 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;let foo = bar ok 19362 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;let foo = bar ok 19363 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/let foo = bar ok 19364 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/let foo = bar ok 19365 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */let foo = bar ok 19366 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */let foo = bar ok 19367 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19368 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19369 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19370 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19371 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/let foo = bar ok 19372 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/let foo = bar ok 19373 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */let foo = bar ok 19374 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */let foo = bar ok 19375 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/ let foo = bar ok 19376 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/ let foo = bar ok 19377 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */ let foo = bar ok 19378 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */ let foo = bar ok 19379 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/ let foo = bar ok 19380 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/ let foo = bar ok 19381 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */ let foo = bar ok 19382 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */ let foo = bar ok 19383 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19384 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19385 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19386 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19387 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/let foo = bar ok 19388 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/let foo = bar ok 19389 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */let foo = bar ok 19390 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */let foo = bar ok 19391 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/ let foo = bar ok 19392 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/ let foo = bar ok 19393 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */ let foo = bar ok 19394 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */ let foo = bar ok 19395 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/ let foo = bar ok 19396 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/ let foo = bar ok 19397 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */ let foo = bar ok 19398 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */ let foo = bar ok 19399 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19400 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19401 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19402 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19403 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/let foo = bar ok 19404 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/let foo = bar ok 19405 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */let foo = bar ok 19406 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */let foo = bar ok 19407 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/ let foo = bar ok 19408 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/ let foo = bar ok 19409 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */ let foo = bar ok 19410 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */ let foo = bar ok 19411 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/ let foo = bar ok 19412 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/ let foo = bar ok 19413 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */ let foo = bar ok 19414 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */ let foo = bar ok 19415 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;; ok 19416 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;; ok 19417 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;;; ok 19418 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;;; ok 19419 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = 1; let bar = 2;; ok 19420 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = 1; let bar = 2;; ok 19421 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/; ok 19422 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/; ok 19423 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */; ok 19424 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */; ok 19425 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;;; ok 19426 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;;; ok 19427 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; ; ok 19428 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; ; ok 19429 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/; ok 19430 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/; ok 19431 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */; ok 19432 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */; ok 19433 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/ ; ok 19434 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/ ; ok 19435 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */ ; ok 19436 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */ ; ok 19437 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/ ; ok 19438 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/ ; ok 19439 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */ ; ok 19440 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */ ; ok 19441 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; ; ok 19442 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; ; ok 19443 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/; ok 19444 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/; ok 19445 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */; ok 19446 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */; ok 19447 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/ ; ok 19448 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/ ; ok 19449 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */ ; ok 19450 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */ ; ok 19451 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/ ; ok 19452 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/ ; ok 19453 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */ ; ok 19454 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */ ; ok 19455 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; ; ok 19456 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; ; ok 19457 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/; ok 19458 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/; ok 19459 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */; ok 19460 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */; ok 19461 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/ ; ok 19462 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/ ; ok 19463 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */ ; ok 19464 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */ ; ok 19465 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/ ; ok 19466 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/ ; ok 19467 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */ ; ok 19468 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */ ; ok 19469 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes JSXText tokens that contain only whitespaces should NOT be handled as space ok 19470 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes JSXText tokens that contain both letters and whitespaces should NOT be handled as space ok 19471 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes JSXText tokens that contain only letters should NOT be handled as space ok 19472 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;let baz = qux; ok 19473 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;let baz = qux; ok 19474 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/let baz = qux; ok 19475 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/let baz = qux; ok 19476 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */let baz = qux; ok 19477 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */let baz = qux; ok 19478 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; let baz = qux; ok 19479 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; let baz = qux; ok 19480 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/let baz = qux; ok 19481 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/let baz = qux; ok 19482 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */let baz = qux; ok 19483 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */let baz = qux; ok 19484 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/ let baz = qux; ok 19485 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/ let baz = qux; ok 19486 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */ let baz = qux; ok 19487 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */ let baz = qux; ok 19488 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/ let baz = qux; ok 19489 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/ let baz = qux; ok 19490 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */ let baz = qux; ok 19491 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */ let baz = qux; ok 19492 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; let baz = qux; ok 19493 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; let baz = qux; ok 19494 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/let baz = qux; ok 19495 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/let baz = qux; ok 19496 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */let baz = qux; ok 19497 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */let baz = qux; ok 19498 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/ let baz = qux; ok 19499 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/ let baz = qux; ok 19500 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */ let baz = qux; ok 19501 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */ let baz = qux; ok 19502 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/ let baz = qux; ok 19503 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/ let baz = qux; ok 19504 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */ let baz = qux; ok 19505 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */ let baz = qux; ok 19506 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; let baz = qux; ok 19507 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; let baz = qux; ok 19508 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/let baz = qux; ok 19509 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/let baz = qux; ok 19510 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */let baz = qux; ok 19511 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */let baz = qux; ok 19512 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/ let baz = qux; ok 19513 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/ let baz = qux; ok 19514 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */ let baz = qux; ok 19515 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */ let baz = qux; ok 19516 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/ let baz = qux; ok 19517 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/ let baz = qux; ok 19518 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */ let baz = qux; ok 19519 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */ let baz = qux; ok 19520 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = 1;let foo2 = 2; let foo3 = 3; ok 19521 SourceCode isSpaceBetween() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = 1;let foo2 = 2; let foo3 = 3; ok 19522 SourceCode isSpaceBetween() should return false either of the arguments' location is inside the other one let foo = bar; ok 19523 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let foo ok 19524 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let foo ok 19525 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let foo ok 19526 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let foo ok 19527 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let /**/ foo ok 19528 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let /**/ foo ok 19529 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let/**/foo ok 19530 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let/**/foo ok 19531 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second let/* */foo ok 19532 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second let/* */foo ok 19533 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a+b ok 19534 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a+b ok 19535 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a +b ok 19536 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a +b ok 19537 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b ok 19538 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b ok 19539 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b ok 19540 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b ok 19541 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b ok 19542 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b ok 19543 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ /**/+b ok 19544 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ /**/+b ok 19545 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ /* */+b ok 19546 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ /* */+b ok 19547 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ /**/+b ok 19548 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ /**/+b ok 19549 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ /* */+b ok 19550 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ /* */+b ok 19551 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b/**/+c ok 19552 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b/**/+c ok 19553 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b/* */+c ok 19554 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b/* */+c ok 19555 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b /**/+c ok 19556 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b /**/+c ok 19557 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b /* */+c ok 19558 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b /* */+c ok 19559 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b/**/+c ok 19560 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b/**/+c ok 19561 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ +b/* */+c ok 19562 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ +b/* */+c ok 19563 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b /**/+c ok 19564 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b /**/+c ok 19565 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b /* */+c ok 19566 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b /* */+c ok 19567 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b/**/+c ok 19568 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b/**/+c ok 19569 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ +b/* */+c ok 19570 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ +b/* */+c ok 19571 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/+b /**/+c ok 19572 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/+b /**/+c ok 19573 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+b /* */+c ok 19574 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+b /* */+c ok 19575 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/**/ +b/**/+c ok 19576 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/**/ +b/**/+c ok 19577 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */ +b/* */+c ok 19578 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */ +b/* */+c ok 19579 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+' /**/ '/* */+c ok 19580 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+' /**/ '/* */+c ok 19581 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ' /**/ '/* */+c ok 19582 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ' /**/ '/* */+c ok 19583 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+' /**/ ' /* */+c ok 19584 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+' /**/ ' /* */+c ok 19585 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ' /**/ ' /* */+c ok 19586 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ' /**/ ' /* */+c ok 19587 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+` /* */ `/* */+c ok 19588 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+` /* */ `/* */+c ok 19589 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ` /* */ `/* */+c ok 19590 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ` /* */ `/* */+c ok 19591 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+` /* */ ` /* */+c ok 19592 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+` /* */ ` /* */+c ok 19593 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located before the second a/* */+ ` /* */ ` /* */+c ok 19594 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two tokens when the first given is located after the second a/* */+ ` /* */ ` /* */+c ok 19595 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;let foo = bar ok 19596 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;let foo = bar ok 19597 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/let foo = bar ok 19598 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/let foo = bar ok 19599 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */let foo = bar ok 19600 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */let foo = bar ok 19601 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19602 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19603 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19604 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19605 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/let foo = bar ok 19606 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/let foo = bar ok 19607 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */let foo = bar ok 19608 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */let foo = bar ok 19609 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/ let foo = bar ok 19610 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/ let foo = bar ok 19611 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */ let foo = bar ok 19612 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */ let foo = bar ok 19613 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/ let foo = bar ok 19614 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/ let foo = bar ok 19615 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */ let foo = bar ok 19616 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */ let foo = bar ok 19617 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19618 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19619 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19620 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19621 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/let foo = bar ok 19622 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/let foo = bar ok 19623 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */let foo = bar ok 19624 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */let foo = bar ok 19625 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/ let foo = bar ok 19626 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/ let foo = bar ok 19627 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */ let foo = bar ok 19628 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */ let foo = bar ok 19629 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/ let foo = bar ok 19630 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/ let foo = bar ok 19631 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */ let foo = bar ok 19632 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */ let foo = bar ok 19633 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19634 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19635 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; let foo = bar ok 19636 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; let foo = bar ok 19637 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/let foo = bar ok 19638 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/let foo = bar ok 19639 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */let foo = bar ok 19640 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */let foo = bar ok 19641 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/**/ let foo = bar ok 19642 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/**/ let foo = bar ok 19643 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ;/* */ let foo = bar ok 19644 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ;/* */ let foo = bar ok 19645 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /**/ let foo = bar ok 19646 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /**/ let foo = bar ok 19647 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located before the second ; /* */ let foo = bar ok 19648 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a token and a node when the first given is located after the second ; /* */ let foo = bar ok 19649 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;; ok 19650 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;; ok 19651 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;;; ok 19652 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;;; ok 19653 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = 1; let bar = 2;; ok 19654 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = 1; let bar = 2;; ok 19655 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/; ok 19656 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/; ok 19657 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */; ok 19658 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */; ok 19659 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;;; ok 19660 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;;; ok 19661 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; ; ok 19662 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; ; ok 19663 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/; ok 19664 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/; ok 19665 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */; ok 19666 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */; ok 19667 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/ ; ok 19668 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/ ; ok 19669 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */ ; ok 19670 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */ ; ok 19671 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/ ; ok 19672 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/ ; ok 19673 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */ ; ok 19674 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */ ; ok 19675 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; ; ok 19676 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; ; ok 19677 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/; ok 19678 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/; ok 19679 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */; ok 19680 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */; ok 19681 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/ ; ok 19682 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/ ; ok 19683 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */ ; ok 19684 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */ ; ok 19685 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/ ; ok 19686 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/ ; ok 19687 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */ ; ok 19688 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */ ; ok 19689 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; ; ok 19690 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; ; ok 19691 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/; ok 19692 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/; ok 19693 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */; ok 19694 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */; ok 19695 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/**/ ; ok 19696 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/**/ ; ok 19697 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar;/* */ ; ok 19698 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar;/* */ ; ok 19699 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /**/ ; ok 19700 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /**/ ; ok 19701 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located before the second let foo = bar; /* */ ; ok 19702 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between a node and a token when the first given is located after the second let foo = bar; /* */ ; ok 19703 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes JSXText tokens that contain only whitespaces should be handled as space ok 19704 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes JSXText tokens that contain both letters and whitespaces should be handled as space ok 19705 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes JSXText tokens that contain only letters should NOT be handled as space ok 19706 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;let baz = qux; ok 19707 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;let baz = qux; ok 19708 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/let baz = qux; ok 19709 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/let baz = qux; ok 19710 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */let baz = qux; ok 19711 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */let baz = qux; ok 19712 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; let baz = qux; ok 19713 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; let baz = qux; ok 19714 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/let baz = qux; ok 19715 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/let baz = qux; ok 19716 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */let baz = qux; ok 19717 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */let baz = qux; ok 19718 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/ let baz = qux; ok 19719 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/ let baz = qux; ok 19720 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */ let baz = qux; ok 19721 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */ let baz = qux; ok 19722 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/ let baz = qux; ok 19723 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/ let baz = qux; ok 19724 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */ let baz = qux; ok 19725 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */ let baz = qux; ok 19726 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; let baz = qux; ok 19727 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; let baz = qux; ok 19728 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/let baz = qux; ok 19729 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/let baz = qux; ok 19730 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */let baz = qux; ok 19731 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */let baz = qux; ok 19732 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/ let baz = qux; ok 19733 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/ let baz = qux; ok 19734 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */ let baz = qux; ok 19735 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */ let baz = qux; ok 19736 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/ let baz = qux; ok 19737 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/ let baz = qux; ok 19738 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */ let baz = qux; ok 19739 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */ let baz = qux; ok 19740 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; let baz = qux; ok 19741 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; let baz = qux; ok 19742 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/let baz = qux; ok 19743 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/let baz = qux; ok 19744 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */let baz = qux; ok 19745 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */let baz = qux; ok 19746 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/**/ let baz = qux; ok 19747 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/**/ let baz = qux; ok 19748 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar;/* */ let baz = qux; ok 19749 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar;/* */ let baz = qux; ok 19750 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /**/ let baz = qux; ok 19751 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /**/ let baz = qux; ok 19752 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = bar; /* */ let baz = qux; ok 19753 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = bar; /* */ let baz = qux; ok 19754 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located before the second let foo = 1;let foo2 = 2; let foo3 = 3; ok 19755 SourceCode isSpaceBetweenTokens() should return true when there is at least one whitespace character between two nodes when the first given is located after the second let foo = 1;let foo2 = 2; let foo3 = 3; ok 19756 SourceCode isSpaceBetweenTokens() should return false either of the arguments' location is inside the other one let foo = bar; ok 19757 SourceCode linter.verify() should work when passed a SourceCode object without a config ok 19758 SourceCode linter.verify() should work when passed a SourceCode object containing ES6 syntax and config ok 19759 SourceCode linter.verify() should report an error when using let and ecmaVersion is 6 ok 19760 SourceCode getLocFromIndex() should return the location of a range index ok 19761 SourceCode getLocFromIndex() should throw if given a bad input ok 19762 SourceCode getLocFromIndex() should not throw if given sourceCode.text.length ok 19763 SourceCode getLocFromIndex() should throw if given an out-of-range input ok 19764 SourceCode getLocFromIndex() is symmetric with getIndexFromLoc() ok 19765 SourceCode getIndexFromLoc() should return the range index of a location ok 19766 SourceCode getIndexFromLoc() should throw a useful error if given a malformed location ok 19767 SourceCode getIndexFromLoc() should throw a useful error if `line` is out of range ok 19768 SourceCode getIndexFromLoc() should throw a useful error if `column` is out of range ok 19769 SourceCode getIndexFromLoc() should not throw if the location one spot past the last character is given ok 19770 TokenStore when calling getTokens should retrieve all tokens for root node ok 19771 TokenStore when calling getTokens should retrieve all tokens for binary expression ok 19772 TokenStore when calling getTokens should retrieve all tokens plus one before for binary expression ok 19773 TokenStore when calling getTokens should retrieve all tokens plus one after for binary expression ok 19774 TokenStore when calling getTokens should retrieve all tokens plus two before and one after for binary expression ok 19775 TokenStore when calling getTokens should retrieve all matched tokens for root node with filter ok 19776 TokenStore when calling getTokens should retrieve all tokens and comments in the node for root node with includeComments option ok 19777 TokenStore when calling getTokens should retrieve matched tokens and comments in the node for root node with includeComments and filter options ok 19778 TokenStore when calling getTokens should retrieve all tokens and comments in the node for binary expression with includeComments option ok 19779 TokenStore when calling getTokensBefore should retrieve zero tokens before a node ok 19780 TokenStore when calling getTokensBefore should retrieve one token before a node ok 19781 TokenStore when calling getTokensBefore should retrieve more than one token before a node ok 19782 TokenStore when calling getTokensBefore should retrieve all tokens before a node ok 19783 TokenStore when calling getTokensBefore should retrieve more than one token before a node with count option ok 19784 TokenStore when calling getTokensBefore should retrieve matched tokens before a node with count and filter options ok 19785 TokenStore when calling getTokensBefore should retrieve all matched tokens before a node with filter option ok 19786 TokenStore when calling getTokensBefore should retrieve no tokens before the root node ok 19787 TokenStore when calling getTokensBefore should retrieve tokens and comments before a node with count and includeComments option ok 19788 TokenStore when calling getTokensBefore should retrieve all tokens and comments before a node with includeComments option only ok 19789 TokenStore when calling getTokensBefore should retrieve all tokens and comments before a node with includeComments and filter options ok 19790 TokenStore when calling getTokenBefore should retrieve one token before a node ok 19791 TokenStore when calling getTokenBefore should skip a given number of tokens ok 19792 TokenStore when calling getTokenBefore should skip a given number of tokens with skip option ok 19793 TokenStore when calling getTokenBefore should retrieve matched token with filter option ok 19794 TokenStore when calling getTokenBefore should retrieve matched token with skip and filter options ok 19795 TokenStore when calling getTokenBefore should retrieve one token or comment before a node with includeComments option ok 19796 TokenStore when calling getTokenBefore should retrieve one token or comment before a node with includeComments and skip options ok 19797 TokenStore when calling getTokenBefore should retrieve one token or comment before a node with includeComments and skip and filter options ok 19798 TokenStore when calling getTokenBefore should retrieve the previous node if the comment at the end of source code is specified. ok 19799 TokenStore when calling getTokenBefore should retrieve the previous comment if the first token is specified. ok 19800 TokenStore when calling getTokenBefore should retrieve null if the first comment is specified. ok 19801 TokenStore when calling getTokensAfter should retrieve zero tokens after a node ok 19802 TokenStore when calling getTokensAfter should retrieve one token after a node ok 19803 TokenStore when calling getTokensAfter should retrieve more than one token after a node ok 19804 TokenStore when calling getTokensAfter should retrieve all tokens after a node ok 19805 TokenStore when calling getTokensAfter should retrieve more than one token after a node with count option ok 19806 TokenStore when calling getTokensAfter should retrieve all matched tokens after a node with filter option ok 19807 TokenStore when calling getTokensAfter should retrieve matched tokens after a node with count and filter options ok 19808 TokenStore when calling getTokensAfter should retrieve all tokens and comments after a node with includeComments option ok 19809 TokenStore when calling getTokensAfter should retrieve several tokens and comments after a node with includeComments and count options ok 19810 TokenStore when calling getTokensAfter should retrieve matched tokens and comments after a node with includeComments and count and filter options ok 19811 TokenStore when calling getTokenAfter should retrieve one token after a node ok 19812 TokenStore when calling getTokenAfter should skip a given number of tokens ok 19813 TokenStore when calling getTokenAfter should skip a given number of tokens with skip option ok 19814 TokenStore when calling getTokenAfter should retrieve matched token with filter option ok 19815 TokenStore when calling getTokenAfter should retrieve matched token with filter and skip options ok 19816 TokenStore when calling getTokenAfter should retrieve one token or comment after a node with includeComments option ok 19817 TokenStore when calling getTokenAfter should retrieve one token or comment after a node with includeComments and skip options ok 19818 TokenStore when calling getTokenAfter should retrieve one token or comment after a node with includeComments and skip and filter options ok 19819 TokenStore when calling getTokenAfter should retrieve the next node if the comment at the first of source code is specified. ok 19820 TokenStore when calling getTokenAfter should retrieve the next comment if the last token is specified. ok 19821 TokenStore when calling getTokenAfter should retrieve null if the last comment is specified. ok 19822 TokenStore when calling getFirstTokens should retrieve zero tokens from a node's token stream ok 19823 TokenStore when calling getFirstTokens should retrieve one token from a node's token stream ok 19824 TokenStore when calling getFirstTokens should retrieve more than one token from a node's token stream ok 19825 TokenStore when calling getFirstTokens should retrieve all tokens from a node's token stream ok 19826 TokenStore when calling getFirstTokens should retrieve more than one token from a node's token stream with count option ok 19827 TokenStore when calling getFirstTokens should retrieve matched tokens from a node's token stream with filter option ok 19828 TokenStore when calling getFirstTokens should retrieve matched tokens from a node's token stream with filter and count options ok 19829 TokenStore when calling getFirstTokens should retrieve all tokens and comments from a node's token stream with includeComments option ok 19830 TokenStore when calling getFirstTokens should retrieve several tokens and comments from a node's token stream with includeComments and count options ok 19831 TokenStore when calling getFirstTokens should retrieve several tokens and comments from a node's token stream with includeComments and count and filter options ok 19832 TokenStore when calling getFirstToken should retrieve the first token of a node's token stream ok 19833 TokenStore when calling getFirstToken should skip a given number of tokens ok 19834 TokenStore when calling getFirstToken should skip a given number of tokens with skip option ok 19835 TokenStore when calling getFirstToken should retrieve matched token with filter option ok 19836 TokenStore when calling getFirstToken should retrieve matched token with filter and skip options ok 19837 TokenStore when calling getFirstToken should retrieve the first token or comment of a node's token stream with includeComments option ok 19838 TokenStore when calling getFirstToken should retrieve the first matched token or comment of a node's token stream with includeComments and skip options ok 19839 TokenStore when calling getFirstToken should retrieve the first matched token or comment of a node's token stream with includeComments and skip and filter options ok 19840 TokenStore when calling getFirstToken should retrieve the first comment if the comment is at the last of nodes ok 19841 TokenStore when calling getFirstToken should retrieve the first token (without includeComments option) if the comment is at the last of nodes ok 19842 TokenStore when calling getLastTokens should retrieve zero tokens from the end of a node's token stream ok 19843 TokenStore when calling getLastTokens should retrieve one token from the end of a node's token stream ok 19844 TokenStore when calling getLastTokens should retrieve more than one token from the end of a node's token stream ok 19845 TokenStore when calling getLastTokens should retrieve all tokens from the end of a node's token stream ok 19846 TokenStore when calling getLastTokens should retrieve more than one token from the end of a node's token stream with count option ok 19847 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with filter option ok 19848 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with filter and count options ok 19849 TokenStore when calling getLastTokens should retrieve all tokens from the end of a node's token stream with includeComments option ok 19850 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with includeComments and count options ok 19851 TokenStore when calling getLastTokens should retrieve matched tokens from the end of a node's token stream with includeComments and count and filter options ok 19852 TokenStore when calling getLastToken should retrieve the last token of a node's token stream ok 19853 TokenStore when calling getLastToken should skip a given number of tokens ok 19854 TokenStore when calling getLastToken should skip a given number of tokens with skip option ok 19855 TokenStore when calling getLastToken should retrieve the last matched token of a node's token stream with filter option ok 19856 TokenStore when calling getLastToken should retrieve the last matched token of a node's token stream with filter and skip options ok 19857 TokenStore when calling getLastToken should retrieve the last token of a node's token stream with includeComments option ok 19858 TokenStore when calling getLastToken should retrieve the last token of a node's token stream with includeComments and skip options ok 19859 TokenStore when calling getLastToken should retrieve the last token of a node's token stream with includeComments and skip and filter options ok 19860 TokenStore when calling getLastToken should retrieve the last comment if the comment is at the last of nodes ok 19861 TokenStore when calling getLastToken should retrieve the last token (without includeComments option) if the comment is at the last of nodes ok 19862 TokenStore when calling getFirstTokensBetween should retrieve zero tokens between adjacent nodes ok 19863 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens between non-adjacent nodes with count option ok 19864 TokenStore when calling getFirstTokensBetween should retrieve matched tokens between non-adjacent nodes with filter option ok 19865 TokenStore when calling getFirstTokensBetween should retrieve all tokens between non-adjacent nodes with empty object option ok 19866 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens between non-adjacent nodes with includeComments option ok 19867 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens between non-adjacent nodes with includeComments and count options ok 19868 TokenStore when calling getFirstTokensBetween should retrieve multiple tokens and comments between non-adjacent nodes with includeComments and filter options ok 19869 TokenStore when calling getFirstTokenBetween should return null between adjacent nodes ok 19870 TokenStore when calling getFirstTokenBetween should retrieve one token between non-adjacent nodes with count option ok 19871 TokenStore when calling getFirstTokenBetween should retrieve one token between non-adjacent nodes with skip option ok 19872 TokenStore when calling getFirstTokenBetween should return null if it's skipped beyond the right token ok 19873 TokenStore when calling getFirstTokenBetween should retrieve the first matched token between non-adjacent nodes with filter option ok 19874 TokenStore when calling getFirstTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments option ok 19875 TokenStore when calling getFirstTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip options ok 19876 TokenStore when calling getFirstTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip and filter options ok 19877 TokenStore when calling getLastTokensBetween should retrieve zero tokens between adjacent nodes ok 19878 TokenStore when calling getLastTokensBetween should retrieve multiple tokens between non-adjacent nodes with count option ok 19879 TokenStore when calling getLastTokensBetween should retrieve matched tokens between non-adjacent nodes with filter option ok 19880 TokenStore when calling getLastTokensBetween should retrieve all tokens between non-adjacent nodes with empty object option ok 19881 TokenStore when calling getLastTokensBetween should retrieve all tokens and comments between non-adjacent nodes with includeComments option ok 19882 TokenStore when calling getLastTokensBetween should retrieve multiple tokens between non-adjacent nodes with includeComments and count options ok 19883 TokenStore when calling getLastTokensBetween should retrieve multiple tokens and comments between non-adjacent nodes with includeComments and filter options ok 19884 TokenStore when calling getLastTokenBetween should return null between adjacent nodes ok 19885 TokenStore when calling getLastTokenBetween should retrieve one token between non-adjacent nodes with count option ok 19886 TokenStore when calling getLastTokenBetween should retrieve one token between non-adjacent nodes with skip option ok 19887 TokenStore when calling getLastTokenBetween should return null if it's skipped beyond the right token ok 19888 TokenStore when calling getLastTokenBetween should retrieve the first matched token between non-adjacent nodes with filter option ok 19889 TokenStore when calling getLastTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments option ok 19890 TokenStore when calling getLastTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip options ok 19891 TokenStore when calling getLastTokenBetween should retrieve first token or comment between non-adjacent nodes with includeComments and skip and filter options ok 19892 TokenStore when calling getTokensBetween should retrieve zero tokens between adjacent nodes ok 19893 TokenStore when calling getTokensBetween should retrieve one token between nodes ok 19894 TokenStore when calling getTokensBetween should retrieve multiple tokens between non-adjacent nodes ok 19895 TokenStore when calling getTokensBetween should retrieve surrounding tokens when asked for padding ok 19896 TokenStore when calling getTokenByRangeStart should return identifier token ok 19897 TokenStore when calling getTokenByRangeStart should return null when token doesn't exist ok 19898 TokenStore when calling getTokenByRangeStart should return a comment token when includeComments is true ok 19899 TokenStore when calling getTokenByRangeStart should not return a comment token at the supplied index when includeComments is false ok 19900 TokenStore when calling getTokenByRangeStart should not return comment tokens by default ok 19901 TokenStore when calling getTokenOrCommentBefore should retrieve one token or comment before a node ok 19902 TokenStore when calling getTokenOrCommentBefore should skip a given number of tokens ok 19903 TokenStore when calling getTokenOrCommentAfter should retrieve one token or comment after a node ok 19904 TokenStore when calling getTokenOrCommentAfter should skip a given number of tokens ok 19905 TokenStore when calling getFirstToken & getTokenAfter should retrieve all tokens and comments in the node ok 19906 TokenStore when calling getFirstToken & getTokenAfter should retrieve all tokens and comments in the node (no spaces) ok 19907 TokenStore when calling getLastToken & getTokenBefore should retrieve all tokens and comments in the node ok 19908 TokenStore when calling getLastToken & getTokenBefore should retrieve all tokens and comments in the node (no spaces) ok 19909 TokenStore when calling commentsExistBetween should retrieve false if comments don't exist ok 19910 TokenStore when calling commentsExistBetween should retrieve true if comments exist ok 19911 TokenStore getCommentsBefore should retrieve comments before a node ok 19912 TokenStore getCommentsBefore should retrieve comments before a token ok 19913 TokenStore getCommentsBefore should retrieve multiple comments before a node ok 19914 TokenStore getCommentsBefore should retrieve comments before a Program node ok 19915 TokenStore getCommentsBefore should return an empty array if there are no comments before a node or token ok 19916 TokenStore getCommentsAfter should retrieve comments after a node ok 19917 TokenStore getCommentsAfter should retrieve comments after a token ok 19918 TokenStore getCommentsAfter should retrieve multiple comments after a node ok 19919 TokenStore getCommentsAfter should retrieve comments after a Program node ok 19920 TokenStore getCommentsAfter should return an empty array if there are no comments after a node or token ok 19921 TokenStore getCommentsInside should retrieve comments inside a node ok 19922 TokenStore getCommentsInside should return an empty array if a node does not contain any comments ok 19923 reduceBadExampleSize() extracts relevant part of deeply nested code ok 19924 reduceBadExampleSize() removes irrelevant parts of AST nodes with many children ok 19925 reduceBadExampleSize() removes irrelevant comments from the source code ok 19926 consistent-docs-description valid module.exports = function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a}; ok 19927 consistent-docs-description valid module.exports = {\u000a meta: {},\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19928 consistent-docs-description valid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'enforce some stuff'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19929 consistent-docs-description valid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'require some things'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19930 consistent-docs-description valid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'disallow bad things'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19931 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'do stuff'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19932 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'Require stuff'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19933 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'Enforce stuff'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19934 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'Disallow stuff'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19935 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: ' disallow (whitespace in the beginning)'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19936 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: ' disallow (whitespaces in the beginning)'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19937 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: ' '\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19938 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: ''\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19939 consistent-docs-description invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: true\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19940 consistent-docs-url valid module.exports = function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a}; ok 19941 consistent-docs-url valid module.exports = {\u000a meta: {\u000a docs: {\u000a url: 'https://eslint.org/docs/rules/'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19942 consistent-docs-url invalid module.exports = {\u000a meta: {\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19943 consistent-docs-url invalid module.exports = {\u000a meta: {\u000a docs: {}\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19944 consistent-docs-url invalid module.exports = {\u000a meta: {\u000a docs: {\u000a url: 'http://example.com/wrong-url'\u000a }\u000a },\u000a create: function(context) {\u000a return {};\u000a }\u000a}; ok 19945 consistent-meta-messages valid module.exports = {\u000a meta: {\u000a messages: {unexpected: "an error occurs."}\u000a }\u000a }; ok 19946 consistent-meta-messages invalid \u000a module.exports = {\u000a meta: {}\u000a }; ok 19947 internal-rules/multiline-comment-style valid \u000a //----------------\u000a // Rule Description\u000a //----------------\u000a ok 19948 internal-rules/multiline-comment-style valid \u000a /*\u000a * Block comment\u000a */\u000a ok 19949 internal-rules/multiline-comment-style valid \u000a // single-line comment\u000a ok 19950 internal-rules/multiline-comment-style invalid \u000a // foo\u000a // bar\u000a ok 19951 no-invalid-meta valid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'some rule',\u000a category: 'Internal',\u000a recommended: false\u000a },\u000a schema: []\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {\u000a context.report({\u000a node: node\u000a });\u000a }\u000a };\u000a }\u000a}; ok 19952 no-invalid-meta valid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'some rule',\u000a category: 'Internal',\u000a recommended: false\u000a },\u000a schema: []\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {\u000a context.report(node, 'Getter is not present');\u000a }\u000a };\u000a }\u000a}; ok 19953 no-invalid-meta valid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'some rule',\u000a category: 'Internal',\u000a recommended: false\u000a },\u000a schema: [],\u000a fixable: 'whitespace'\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {\u000a context.report({\u000a node: node,\u000a fix: function(fixer) {\u000a return fixer.insertTextAfter(node, ' ');\u000a }\u000a });\u000a }\u000a };\u000a }\u000a}; ok 19954 no-invalid-meta invalid module.exports = function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a}; ok 19955 no-invalid-meta invalid module.exports = {\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19956 no-invalid-meta invalid module.exports = {\u000a meta: [],\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19957 no-invalid-meta invalid module.exports = {\u000a meta: {\u000a schema: []\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19958 no-invalid-meta invalid module.exports = {\u000a meta: {\u000a docs: {\u000a category: 'Internal',\u000a recommended: false\u000a },\u000a schema: []\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19959 no-invalid-meta invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'some rule',\u000a recommended: false\u000a },\u000a schema: []\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19960 no-invalid-meta invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'some rule',\u000a category: 'Internal'\u000a },\u000a schema: []\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19961 no-invalid-meta invalid module.exports = {\u000a meta: {\u000a docs: {\u000a description: 'some rule',\u000a category: 'Internal',\u000a recommended: false\u000a }\u000a },\u000a create: function(context) {\u000a return {\u000a Program: function(node) {}\u000a };\u000a }\u000a}; ok 19962 no-invalid-meta invalid ok 19963 no-invalid-meta invalid foo(); ok 19964 no-invalid-meta invalid foo = bar; # tests 19964 # pass 19964 # fail 0 1..19964 NODE_PATH=packages:tools mocha --no-timeout --reporter tap tests/bin/eslint.js tests/lib/cli.js tests/lib/cli-engine/cli-engine.js tests/lib/cli-engine/file-enumerator.js tests/lib/cli-engine/ignored-paths.js tests/lib/init/npm-utils.js tests/lib/init/source-code-utils.js tests/lib/linter/linter.js tests/lib/linter/node-event-generator.js tests/lib/rules/camelcase.js tests/lib/rules/id-length.js tests/lib/rules/id-match.js tests/lib/rules/require-await.js | debian/tap-todo \ '^bin/eslint.js handling crashes prints the error message to stderr in the event of a crash$' \ '^bin/eslint.js handling crashes prints the error message exactly once to stderr in the event of a crash$' \ '^bin/eslint.js emitting a warning for ecmaFeatures does not emit a warning when it does not find an ecmaFeatures option$' \ '^bin/eslint.js emitting a warning for ecmaFeatures emits a warning when it finds an ecmaFeatures option$' \ '^cli execute\(\) should return no error when --ext \.js2 is specified$' \ '^cli when given a config file should load the specified config file$' \ '^cli when given a config file and a directory of files should load and execute without error$' \ '^cli when given a config with environment set to browser should execute without any errors$' \ '^cli when given a config with environment set to Node.js should execute without any errors$' \ '^cli when given a config with environment set to Nashorn should execute without any errors$' \ '^cli when given a config with environment set to WebExtensions should execute without any errors$' \ '^cli when given a valid built-in formatter name should execute without any errors$' \ '^cli when given a valid built-in formatter name that uses rules meta. should execute without any errors$' \ '^cli when given an invalid built-in formatter name should execute with error$' \ '^cli when given a valid formatter path should execute without any errors$' \ '^cli when given an invalid formatter path should execute with error$' \ '^cli when given a directory with eslint excluded files in the directory should throw an error and not process any files$' \ '^cli when given a file in excluded files list should not process the file$' \ '^cli when given a pattern to ignore should not process any files$' \ '^cli when loading a custom rule should return an error when rule isn.t found$' \ '^cli when the quiet option is enabled should print nothing if there are no errors$' \ '^cli when given the max-warnings flag should not change exit code if warning count under threshold$' \ '^cli when given the max-warnings flag should exit with exit code 1 if warning count exceeds threshold$' \ '^cli when given the max-warnings flag should not change exit code if warning count equals threshold$' \ '^cli when given the max-warnings flag should not change exit code if flag is not specified and there are warnings$' \ '^CLIEngine executeOnFiles\(\) should return one error message when given a config with rules with options and severity level set to error$' \ '^CLIEngine executeOnFiles\(\) should throw an error when given a directory with all eslint excluded files in the directory$' \ '^FileEnumerator .iterateFiles\(patterns\). method should iterate files and configs\. with .tests/fixtures/glob-utils. files listFilesToProcess\(\) should throw if only ignored files match a glob$' \ '^FileEnumerator .iterateFiles\(patterns\). method should iterate files and configs\. with .tests/fixtures/glob-utils. files listFilesToProcess\(\) should return an ignored file, if ignore option is turned off$' \ '^FileEnumerator .iterateFiles\(patterns\). method should iterate files and configs\. with .tests/fixtures/glob-utils. files listFilesToProcess\(\) should ignore a file from a glob if it matches a pattern in an ignore file$' \ '^IgnoredPaths contains should return false for files outside of the cwd \(with no ignore file provided\)$' \ '^npmUtils installSyncSaveDev\(\) should invoke npm to install a single desired package$' \ '^npmUtils installSyncSaveDev\(\) should accept an array of packages to install$' \ '^npmUtils installSyncSaveDev\(\) should log an error message if npm throws ENOENT error$' \ '^npmUtils fetchPeerDependencies\(\) should execute .npm show --json peerDependencies. command$' \ '^npmUtils fetchPeerDependencies\(\) should return null if npm throws ENOENT error$' \ '^SourceCodeUtil getSourceCodeOfFiles\(\) should accept a relative path to a file in a parent directory$' \ '^Linter when evaluating code with comments which have colon in its value should not parse errors, should report a violation$' \ '^NodeEventGenerator parsing an invalid selector throws a useful error$' \ '^camelcase valid var \{ category_id = 1 \} = query;$' \ '^camelcase invalid var \{ category_id = 1 \} = query;$' \ '^camelcase invalid function foo\(\{ no_camelcased = .default value. \}\) \{\};$' \ '^camelcase invalid const no_camelcased = 0; function foo\(\{ camelcased_value = no_camelcased\}\) \{\}$' \ '^camelcase invalid const \{ no_camelcased = false \} = bar;$' \ '^camelcase invalid const \{ no_camelcased = foo_bar \} = bar;$' \ '^id-length invalid var \{ x\} = \{\};$' \ '^id-match valid var \{ category_id = 1 \} = query;$' \ '^id-match invalid var \{ category_id \} = query;$' \ '^id-match invalid var \{ category_id = 1 \} = query;$' \ '^id-match invalid function foo\(\{ no_camelcased \}\) \{\};$' \ '^id-match invalid function foo\(\{ no_camelcased = .default value. \}\) \{\};$' \ '^id-match invalid const no_camelcased = 0; function foo\(\{ camelcased_value = no_camelcased \}\) \{\}$' \ '^id-match invalid const \{ no_camelcased = false \} = bar;$' \ '^require-await valid async function foo\(\) \{ await async \(\) => \{ await doSomething\(\) \} \}$' \ '^require-await invalid async function foo\(\) \{ await async \(\) => \{ doSomething\(\) \} \}$' \ ok 1 bin/eslint.js reading from stdin has exit code 0 if no linting errors are reported ok 2 bin/eslint.js reading from stdin has exit code 0 if no linting errors are reported ok 3 bin/eslint.js reading from stdin has exit code 1 if a syntax error is thrown ok 4 bin/eslint.js reading from stdin has exit code 1 if a linting error occurs ok 5 bin/eslint.js reading from stdin gives a detailed error message if no config file is found in / ok 6 bin/eslint.js reading from stdin successfully reads from an asynchronous pipe ok 7 bin/eslint.js running on files has exit code 0 if no linting errors occur ok 8 bin/eslint.js running on files has exit code 0 if a linting warning is reported ok 9 bin/eslint.js running on files has exit code 1 if a linting error is reported ok 10 bin/eslint.js running on files has exit code 1 if a syntax error is thrown ok 11 bin/eslint.js automatically fixing files has exit code 0 and fixes a file if all rules can be fixed ok 12 bin/eslint.js automatically fixing files has exit code 0, fixes errors in a file, and does not report or fix warnings if --quiet and --fix are used ok 13 bin/eslint.js automatically fixing files has exit code 1 and fixes a file if not all rules can be fixed ok 14 bin/eslint.js cache files when no cache file exists creates a cache file when the --cache flag is used ok 15 bin/eslint.js cache files when a valid cache file already exists can lint with an existing cache file and the --cache flag ok 16 bin/eslint.js cache files when a valid cache file already exists updates the cache file when the source file is modified ok 17 bin/eslint.js cache files when a valid cache file already exists deletes the cache file when run without the --cache argument ok 18 bin/eslint.js cache files when an invalid cache file already exists overwrites the invalid cache file with a valid one when the --cache argument is used ok 19 bin/eslint.js cache files when an invalid cache file already exists deletes the invalid cache file when the --cache argument is not used # TODO: not ok 20 bin/eslint.js handling crashes prints the error message to stderr in the event of a crash expected 'SyntaxError: Expected " " or [^ [\],(…' to include 'Syntax error in selector' AssertionError: expected 'SyntaxError: Expected " " or [^ [\],(…' to include 'Syntax error in selector' at /build/eslint-6.4.0~dfsg+~6.1.9/tests/bin/eslint.js:330:24 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Promise.all (index 1) # TODO: not ok 21 bin/eslint.js handling crashes prints the error message exactly once to stderr in the event of a crash expected 'SyntaxError: Expected " " or [^ [\],(…' to include 'Syntax error in selector' AssertionError: expected 'SyntaxError: Expected " " or [^ [\],(…' to include 'Syntax error in selector' at /build/eslint-6.4.0~dfsg+~6.1.9/tests/bin/eslint.js:343:24 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Promise.all (index 1) ok 22 bin/eslint.js handling crashes prints the error message pointing to line of code # TODO: not ok 23 bin/eslint.js emitting a warning for ecmaFeatures does not emit a warning when it does not find an ecmaFeatures option Expected an exit code of 0 but got 1.: expected 1 to equal +0 AssertionError: Expected an exit code of 0 but got 1.: expected 1 to equal +0 at /build/eslint-6.4.0~dfsg+~6.1.9/tests/bin/eslint.js:30:16 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Promise.all (index 0) # TODO: not ok 24 bin/eslint.js emitting a warning for ecmaFeatures emits a warning when it finds an ecmaFeatures option Expected an exit code of 0 but got 1.: expected 1 to equal +0 AssertionError: Expected an exit code of 0 but got 1.: expected 1 to equal +0 at /build/eslint-6.4.0~dfsg+~6.1.9/tests/bin/eslint.js:30:16 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Promise.all (index 0) ok 25 cli execute() should return error when text with incorrect quotes is passed as argument ok 26 cli execute() should not print debug info when passed the empty string as text # TODO: not ok 27 cli execute() should return no error when --ext .js2 is specified path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/files/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/files/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:110:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 28 cli execute() should exit with console error when passed unsupported arguments # TODO: not ok 29 cli when given a config file should load the specified config file path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:129:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 30 cli when there is a local config file should load the local config file ok 31 cli when given a config with rules with options and severity level set to error should exit with an error status (1) # TODO: not ok 32 cli when given a config file and a directory of files should load and execute without error path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/formatters/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/formatters/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:165:36) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 33 cli when given a config with environment set to browser should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-browser.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-browser.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:177:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 34 cli when given a config with environment set to Node.js should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-node.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-node.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:189:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 35 cli when given a config with environment set to Nashorn should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-nashorn.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-nashorn.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:201:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 36 cli when given a config with environment set to WebExtensions should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-webextensions.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/globals-webextensions.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:213:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 37 cli when given a valid built-in formatter name should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:222:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 38 cli when given a valid built-in formatter name that uses rules meta. should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:231:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 39 cli when given an invalid built-in formatter name should execute with error path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:250:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 40 cli when given a valid formatter path should execute without any errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:260:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 41 cli when given an invalid formatter path should execute with error path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:270:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 42 cli when executing a file with a lint error should exit with error ok 43 cli when using --fix-type without --fix or --fix-dry-run should exit with error ok 44 cli when executing a file with a syntax error should exit with error ok 45 cli when calling execute more than once should not print the results from previous execution ok 46 cli when executing with version flag should print out current version ok 47 cli when executing with help flag should print out help # TODO: not ok 48 cli when given a directory with eslint excluded files in the directory should throw an error and not process any files expected [Function] to throw error including 'All files matched by \'/tmp/eslint/fi…' but got 'path should be a `path.relative()`d s…' AssertionError: expected [Function] to throw error including 'All files matched by \'/tmp/eslint/fi…' but got 'path should be a `path.relative()`d s…' at Context. (tests/lib/cli.js:345:20) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 49 cli when given a file in excluded files list should not process the file path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/passing.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:356:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 50 cli when given a file in excluded files list should process the file when forced # TODO: not ok 51 cli when given a pattern to ignore should not process any files path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/cli/syntax-error.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/cli/syntax-error.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:378:30) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 52 cli when given patterns to ignore should not process any matching files ok 53 cli when executing a file with a shebang should execute without error # TODO: not ok 54 cli when loading a custom rule should return an error when rule isn't found expected [Function] to throw error matching /Error while loading rule 'custom-rul…/u but got 'Error while loading rule \'custom-rul…' AssertionError: expected [Function] to throw error matching /Error while loading rule 'custom-rul…/u but got 'Error while loading rule \'custom-rul…' at Context. (tests/lib/cli.js:418:20) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 55 cli when loading a custom rule should return a warning when rule is matched ok 56 cli when loading a custom rule should return warnings from multiple rules in different directories ok 57 cli when executing with no-eslintrc flag should ignore a local config file ok 58 cli when executing without no-eslintrc flag should load a local config file ok 59 cli when executing without env flag should not define environment-specific globals ok 60 cli when executing with global flag should default defined variables to read-only ok 61 cli when executing with global flag should allow defining writable global variables ok 62 cli when executing with global flag should allow defining variables with multiple flags ok 63 cli when supplied with rule flag and severity level set to error should exit with an error status (2) ok 64 cli when the quiet option is enabled should only print error # TODO: not ok 65 cli when the quiet option is enabled should print nothing if there are no errors path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/single-quoted.js" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/single-quoted.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:547:17) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 66 cli when supplied with report output file path should write the file and create dirs if they don't exist ok 67 cli when supplied with report output file path should return an error if the path is a directory ok 68 cli when supplied with report output file path should return an error if the path could not be written to ok 69 cli when supplied with a plugin should pass plugins to CLIEngine ok 70 cli when supplied with a plugin-loading path should pass the option to CLIEngine ok 71 cli when given an parser name should exit with a fatal error if parser is invalid ok 72 cli when given an parser name should exit with no error if parser is valid ok 73 cli when given parser options should exit with error if parser options are invalid ok 74 cli when given parser options should exit with no error if parser is valid ok 75 cli when given parser options should exit with an error on ecmaVersion 7 feature in ecmaVersion 6 ok 76 cli when given parser options should exit with no error on ecmaVersion 7 feature in ecmaVersion 7 ok 77 cli when given parser options should exit with no error on ecmaVersion 7 feature with config ecmaVersion 6 and command line ecmaVersion 7 # TODO: not ok 78 cli when given the max-warnings flag should not change exit code if warning count under threshold path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:348:40) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:448:47) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:674:34) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 79 cli when given the max-warnings flag should exit with exit code 1 if warning count exceeds threshold path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:348:40) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:448:47) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:681:34) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 80 cli when given the max-warnings flag should not change exit code if warning count equals threshold path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:348:40) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:448:47) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:690:34) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 81 cli when given the max-warnings flag should not change exit code if flag is not specified and there are warnings path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/fixtures/max-warnings/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Object.execute (lib/cli.js:209:111) at Context. (tests/lib/cli.js:697:34) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 82 cli when passed --no-inline-config should pass allowInlineConfig:true to CLIEngine when --no-inline-config is used ok 83 cli when passed --no-inline-config should not error and allowInlineConfig should be true by default ok 84 cli when passed --fix should pass fix:true to CLIEngine when executing on files ok 85 cli when passed --fix should rewrite files when in fix mode ok 86 cli when passed --fix should provide fix predicate and rewrite files when in fix mode and quiet mode ok 87 cli when passed --fix should not call CLIEngine and return 1 when executing on text ok 88 cli when passed --fix-dry-run should pass fix:true to CLIEngine when executing on files ok 89 cli when passed --fix-dry-run should pass fixTypes to CLIEngine when --fix-type is passed ok 90 cli when passed --fix-dry-run should not rewrite files when in fix-dry-run mode ok 91 cli when passed --fix-dry-run should provide fix predicate when in fix-dry-run mode and quiet mode ok 92 cli when passed --fix-dry-run should allow executing on text ok 93 cli when passed --fix-dry-run should not call CLIEngine and return 1 when used with --fix ok 94 cli when passing --print-config should print out the configuration ok 95 cli when passing --print-config should error if any positional file arguments are passed ok 96 cli when passing --print-config should error out when executing on text ok 97 CLIEngine new CLIEngine(options) the default value of 'options.cwd' should be the current working directory. ok 98 CLIEngine new CLIEngine(options) should report one fatal message when given a path by --ignore-path that is not a file when ignore is true. ok 99 CLIEngine new CLIEngine(options) should not modify baseConfig when format is specified ok 100 CLIEngine executeOnText() should report the total and per file errors when using local cwd .eslintrc ok 101 CLIEngine executeOnText() should report the total and per file warnings when using local cwd .eslintrc ok 102 CLIEngine executeOnText() should report one message when using specific config file ok 103 CLIEngine executeOnText() should report the filename when passed in ok 104 CLIEngine executeOnText() should return a warning when given a filename by --stdin-filename in excluded files list if warnIgnored is true ok 105 CLIEngine executeOnText() should not return a warning when given a filename by --stdin-filename in excluded files list if warnIgnored is false ok 106 CLIEngine executeOnText() should suppress excluded file warnings by default ok 107 CLIEngine executeOnText() should return a message when given a filename by --stdin-filename in excluded files list and ignore is off ok 108 CLIEngine executeOnText() should return a message and fixed text when in fix mode ok 109 CLIEngine executeOnText() correctly autofixes semicolon-conflicting-fixes ok 110 CLIEngine executeOnText() correctly autofixes return-conflicting-fixes ok 111 CLIEngine executeOnText() should return a message and omit fixed text when in fix mode and fixes aren't done ok 112 CLIEngine executeOnText() should not delete code if there is a syntax error after trying to autofix. ok 113 CLIEngine executeOnText() should not crash even if there are any syntax error since the first time. ok 114 CLIEngine executeOnText() should return source code of file in `source` property when errors are present ok 115 CLIEngine executeOnText() should return source code of file in `source` property when warnings are present ok 116 CLIEngine executeOnText() should not return a `source` property when no errors or warnings are present ok 117 CLIEngine executeOnText() should not return a `source` property when fixes are applied ok 118 CLIEngine executeOnText() should return a `source` property when a parsing error has occurred ok 119 CLIEngine executeOnText() should respect default ignore rules, even with --no-ignore ok 120 CLIEngine executeOnText() should warn when deprecated rules are found in a config ok 121 CLIEngine executeOnText() Fix Types should throw an error when an invalid fix type is specified ok 122 CLIEngine executeOnText() Fix Types should not fix any rules when fixTypes is used without fix ok 123 CLIEngine executeOnText() Fix Types should not fix non-style rules when fixTypes has only 'layout' ok 124 CLIEngine executeOnText() Fix Types should not fix style or problem rules when fixTypes has only 'suggestion' ok 125 CLIEngine executeOnText() Fix Types should fix both style and problem rules when fixTypes has 'suggestion' and 'layout' ok 126 CLIEngine executeOnText() Fix Types should not throw an error when a rule doesn't have a 'meta' property ok 127 CLIEngine executeOnText() Fix Types should not throw an error when a rule is loaded after initialization with executeOnFiles() ok 128 CLIEngine executeOnText() Fix Types should not throw an error when a rule is loaded after initialization with executeOnText() ok 129 CLIEngine executeOnText() (plugin shorthand) should resolve 'plugins:["@scope"]' to 'node_modules/@scope/eslint-plugin'. ok 130 CLIEngine executeOnText() (plugin shorthand) should resolve 'extends:["plugin:@scope/recommended"]' to 'node_modules/@scope/eslint-plugin'. ok 131 CLIEngine executeOnFiles() should use correct parser when custom parser is specified ok 132 CLIEngine executeOnFiles() should report zero messages when given a config file and a valid file ok 133 CLIEngine executeOnFiles() should handle multiple patterns with overlapping files ok 134 CLIEngine executeOnFiles() should report zero messages when given a config file and a valid file and espree as parser ok 135 CLIEngine executeOnFiles() should report zero messages when given a config file and a valid file and esprima as parser ok 136 CLIEngine executeOnFiles() should throw an error when given a config file and a valid file and invalid parser ok 137 CLIEngine executeOnFiles() should report zero messages when given a directory with a .js2 file ok 138 CLIEngine executeOnFiles() should report zero messages when given a directory with a .js and a .js2 file ok 139 CLIEngine executeOnFiles() should report zero messages when given a '**' pattern with a .js and a .js2 file ok 140 CLIEngine executeOnFiles() should resolve globs when 'globInputPaths' option is true ok 141 CLIEngine executeOnFiles() should not resolve globs when 'globInputPaths' option is false ok 142 CLIEngine executeOnFiles() should report on all files passed explicitly, even if ignored by default ok 143 CLIEngine executeOnFiles() should report on globs with explicit inclusion of dotfiles, even though ignored by default ok 144 CLIEngine executeOnFiles() should not check default ignored files without --no-ignore flag ok 145 CLIEngine executeOnFiles() should not check node_modules files even with --no-ignore flag ok 146 CLIEngine executeOnFiles() should not check .hidden files if they are passed explicitly without --no-ignore flag ok 147 CLIEngine executeOnFiles() should check .hidden files if they are passed explicitly with --no-ignore flag ok 148 CLIEngine executeOnFiles() should check .hidden files if they are unignored with an --ignore-pattern ok 149 CLIEngine executeOnFiles() should report zero messages when given a pattern with a .js and a .js2 file # TODO: not ok 150 CLIEngine executeOnFiles() should return one error message when given a config with rules with options and severity level set to error path should be a `path.relative()`d string, but got "../single-quoted.js" RangeError: path should be a `path.relative()`d string, but got "../single-quoted.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at CLIEngine.executeOnFiles (lib/cli-engine/cli-engine.js:747:48) at Context. (tests/lib/cli-engine/cli-engine.js:1070:35) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 151 CLIEngine executeOnFiles() should return 3 messages when given a config file and a directory of 3 valid files ok 152 CLIEngine executeOnFiles() should return the total number of errors when given multiple files ok 153 CLIEngine executeOnFiles() should process when file is given by not specifying extensions ok 154 CLIEngine executeOnFiles() should return zero messages when given a config with environment set to browser ok 155 CLIEngine executeOnFiles() should return zero messages when given an option to set environment to browser ok 156 CLIEngine executeOnFiles() should return zero messages when given a config with environment set to Node.js ok 157 CLIEngine executeOnFiles() should not return results from previous call when calling more than once # TODO: not ok 158 CLIEngine executeOnFiles() should throw an error when given a directory with all eslint excluded files in the directory expected [Function] to throw error including 'All files matched by \'/tmp/eslint/fi…' but got 'path should be a `path.relative()`d s…' AssertionError: expected [Function] to throw error including 'All files matched by \'/tmp/eslint/fi…' but got 'path should be a `path.relative()`d s…' at Context. (tests/lib/cli-engine/cli-engine.js:1235:20) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 159 CLIEngine executeOnFiles() should throw an error when all given files are ignored ok 160 CLIEngine executeOnFiles() should throw an error when all given files are ignored even with a `./` prefix ok 161 CLIEngine executeOnFiles() should ignore one-level down node_modules when ignore file has 'node_modules/' in it ok 162 CLIEngine executeOnFiles() should ignore all files and throw an error when tests/fixtures/ is in ignore file ok 163 CLIEngine executeOnFiles() should throw an error when all given files are ignored via ignore-pattern ok 164 CLIEngine executeOnFiles() should return a warning when an explicitly given file is ignored ok 165 CLIEngine executeOnFiles() should return two messages when given a file in excluded files list while ignore is off ok 166 CLIEngine executeOnFiles() should return zero messages when executing a file with a shebang ok 167 CLIEngine executeOnFiles() should give a warning when loading a custom rule that doesn't exist ok 168 CLIEngine executeOnFiles() should throw an error when loading a bad custom rule ok 169 CLIEngine executeOnFiles() should return one message when a custom rule matches a file ok 170 CLIEngine executeOnFiles() should load custom rule from the provided cwd ok 171 CLIEngine executeOnFiles() should return messages when multiple custom rules match a file ok 172 CLIEngine executeOnFiles() should return zero messages when executing without useEslintrc flag ok 173 CLIEngine executeOnFiles() should return zero messages when executing without useEslintrc flag in Node.js environment ok 174 CLIEngine executeOnFiles() should return zero messages when executing with base-config flag set to false ok 175 CLIEngine executeOnFiles() should return zero messages and ignore .eslintrc files when executing with no-eslintrc flag ok 176 CLIEngine executeOnFiles() should return zero messages and ignore package.json files when executing with no-eslintrc flag ok 177 CLIEngine executeOnFiles() should warn when deprecated rules are configured ok 178 CLIEngine executeOnFiles() should not warn when deprecated rules are not configured ok 179 CLIEngine executeOnFiles() should warn when deprecated rules are found in a config ok 180 CLIEngine executeOnFiles() Fix Mode should return fixed text on multiple files when in fix mode ok 181 CLIEngine executeOnFiles() Fix Mode should run autofix even if files are cached without autofix results ok 182 CLIEngine executeOnFiles() configuration hierarchy should return zero messages when executing with no .eslintrc ok 183 CLIEngine executeOnFiles() configuration hierarchy should return zero messages when executing with no .eslintrc in the Node.js environment ok 184 CLIEngine executeOnFiles() configuration hierarchy should return zero messages when executing with .eslintrc in the Node.js environment ok 185 CLIEngine executeOnFiles() configuration hierarchy should return zero messages when executing with .eslintrc in the Node.js environment ok 186 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with .eslintrc ok 187 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with local .eslintrc that overrides parent .eslintrc ok 188 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with local .eslintrc that overrides parent and grandparent .eslintrc ok 189 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with package.json ok 190 CLIEngine executeOnFiles() configuration hierarchy should return zero messages when executing with local package.json that overrides parent package.json ok 191 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with local package.json that overrides parent and grandparent package.json ok 192 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with .eslintrc that overrides a package.json in the same directory ok 193 CLIEngine executeOnFiles() configuration hierarchy should return two messages when executing with config file that adds to local .eslintrc ok 194 CLIEngine executeOnFiles() configuration hierarchy should return no messages when executing with config file that overrides local .eslintrc ok 195 CLIEngine executeOnFiles() configuration hierarchy should return two messages when executing with config file that adds to local and parent .eslintrc ok 196 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with config file that overrides local and parent .eslintrc ok 197 CLIEngine executeOnFiles() configuration hierarchy should return no messages when executing with config file that overrides local .eslintrc ok 198 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with command line rule and config file that overrides local .eslintrc ok 199 CLIEngine executeOnFiles() configuration hierarchy should return one message when executing with command line rule and config file that overrides local .eslintrc ok 200 CLIEngine executeOnFiles() plugins should return two messages when executing with config file that specifies a plugin ok 201 CLIEngine executeOnFiles() plugins should return two messages when executing with config file that specifies a plugin with namespace ok 202 CLIEngine executeOnFiles() plugins should return two messages when executing with config file that specifies a plugin without prefix ok 203 CLIEngine executeOnFiles() plugins should return two messages when executing with config file that specifies a plugin without prefix and with namespace ok 204 CLIEngine executeOnFiles() plugins should return two messages when executing with cli option that specifies a plugin ok 205 CLIEngine executeOnFiles() plugins should return two messages when executing with cli option that specifies preloaded plugin ok 206 CLIEngine executeOnFiles() plugins should load plugins from the `loadPluginsRelativeTo` directory, if specified ok 207 CLIEngine executeOnFiles() cache should create the cache file inside the provided directory using the cacheLocation option ok 208 CLIEngine executeOnFiles() cache should create the cache file inside cwd when no cacheLocation provided ok 209 CLIEngine executeOnFiles() cache should invalidate the cache if the configuration changed between executions ok 210 CLIEngine executeOnFiles() cache should remember the files from a previous run and do not operate on them if not changed ok 211 CLIEngine executeOnFiles() cache should remember the files from a previous run and do not operate on then if not changed ok 212 CLIEngine executeOnFiles() cache should store in the cache a file that failed the test ok 213 CLIEngine executeOnFiles() cache should not contain in the cache a file that was deleted ok 214 CLIEngine executeOnFiles() cache should contain files that were not visited in the cache provided they still exist ok 215 CLIEngine executeOnFiles() cache should not delete cache when executing on text ok 216 CLIEngine executeOnFiles() cache should not delete cache when executing on text with a provided filename ok 217 CLIEngine executeOnFiles() cache should not delete cache when executing on files with --cache flag ok 218 CLIEngine executeOnFiles() cache should delete cache when executing on files without --cache flag ok 219 CLIEngine executeOnFiles() cache when the cacheFile is a directory or looks like a directory should create the cache file inside the provided directory ok 220 CLIEngine executeOnFiles() cache cacheFile should use the specified cache file ok 221 CLIEngine executeOnFiles() processors should return two messages when executing with config file that specifies a processor ok 222 CLIEngine executeOnFiles() processors should return two messages when executing with config file that specifies preloaded processor ok 223 CLIEngine executeOnFiles() processors should run processors when calling executeOnFiles with config file that specifies a processor ok 224 CLIEngine executeOnFiles() processors should run processors when calling executeOnFiles with config file that specifies preloaded processor ok 225 CLIEngine executeOnFiles() processors should run processors when calling executeOnText with config file that specifies a processor ok 226 CLIEngine executeOnFiles() processors should run processors when calling executeOnText with config file that specifies preloaded processor ok 227 CLIEngine executeOnFiles() processors autofixing with processors should run in autofix mode when using a processor that supports autofixing ok 228 CLIEngine executeOnFiles() processors autofixing with processors should not run in autofix mode when using a processor that does not support autofixing ok 229 CLIEngine executeOnFiles() processors autofixing with processors should not run in autofix mode when `fix: true` is not provided, even if the processor supports autofixing ok 230 CLIEngine executeOnFiles() Patterns which match no file should throw errors. one file ok 231 CLIEngine executeOnFiles() Patterns which match no file should throw errors. should throw if the directory exists and is empty ok 232 CLIEngine executeOnFiles() Patterns which match no file should throw errors. one glob pattern ok 233 CLIEngine executeOnFiles() Patterns which match no file should throw errors. two files ok 234 CLIEngine executeOnFiles() Patterns which match no file should throw errors. a mix of an existing file and a non-existing file ok 235 CLIEngine executeOnFiles() overrides should recognize dotfiles ok 236 CLIEngine executeOnFiles() a config file setting should have higher priority than a shareable config file's settings always; https://github.com/eslint/eslint/issues/11510 should not report 'no-console' error. ok 237 CLIEngine executeOnFiles() configs of plugin rules should be validated even if 'plugins' key doesn't exist; https://github.com/eslint/eslint/issues/11559 should throw fatal error. ok 238 CLIEngine executeOnFiles() '--fix-type' should not crash even if plugin rules exist; https://github.com/eslint/eslint/issues/11586 should not crash. ok 239 CLIEngine executeOnFiles() multiple processors should lint only JavaScript blocks if '--ext' was not given. ok 240 CLIEngine executeOnFiles() multiple processors should fix only JavaScript blocks if '--ext' was not given. ok 241 CLIEngine executeOnFiles() multiple processors should lint HTML blocks as well with multiple processors if '--ext' option was given. ok 242 CLIEngine executeOnFiles() multiple processors should fix HTML blocks as well with multiple processors if '--ext' option was given. ok 243 CLIEngine executeOnFiles() multiple processors should use overriden processor; should report HTML blocks but not fix HTML blocks if the processor for '*.html' didn't support autofix. ok 244 CLIEngine executeOnFiles() multiple processors should use the config '**/*.html/*.js' to lint JavaScript blocks in HTML. ok 245 CLIEngine executeOnFiles() multiple processors should use the same config as one which has 'processor' property in order to lint blocks in HTML if the processor was legacy style. ok 246 CLIEngine executeOnFiles() multiple processors should throw an error if invalid processor was specified. ok 247 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with a message template when 'extends' property has a non-existence JavaScript config. ok 248 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with a message template when 'extends' property has a non-existence plugin config. ok 249 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with a message template when 'plugins' property has a non-existence plugin. ok 250 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with no message template when a JavaScript config threw a 'MODULE_NOT_FOUND' error. ok 251 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with no message template when 'extends' property has a JavaScript config that throws a 'MODULE_NOT_FOUND' error. ok 252 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with no message template when 'extends' property has a plugin config that throws a 'MODULE_NOT_FOUND' error. ok 253 CLIEngine executeOnFiles() MODULE_NOT_FOUND error handling should throw an error with no message template when 'plugins' property has a plugin config that throws a 'MODULE_NOT_FOUND' error. ok 254 CLIEngine executeOnFiles() with '--rulesdir' option should use the configured rules which are defined by '--rulesdir' option. ok 255 CLIEngine executeOnFiles() glob pattern '[ab].js' should match '[ab].js' if existed. ok 256 CLIEngine executeOnFiles() glob pattern '[ab].js' should match 'a.js' and 'b.js' if '[ab].js' didn't existed. ok 257 CLIEngine executeOnFiles() with 'noInlineConfig' setting should warn directive comments if 'noInlineConfig' was given. ok 258 CLIEngine executeOnFiles() with 'noInlineConfig' setting should show the config file what the 'noInlineConfig' came from. ok 259 CLIEngine executeOnFiles() with 'reportUnusedDisableDirectives' setting should warn unused 'eslint-disable' comments if 'reportUnusedDisableDirectives' was given. ok 260 CLIEngine executeOnFiles() with 'reportUnusedDisableDirectives' setting the runtime option overrides config files. should not warn unused 'eslint-disable' comments if 'reportUnusedDisableDirectives=off' was given in runtime. ok 261 CLIEngine executeOnFiles() with 'reportUnusedDisableDirectives' setting the runtime option overrides config files. should warn unused 'eslint-disable' comments as error if 'reportUnusedDisableDirectives=error' was given in runtime. ok 262 CLIEngine executeOnFiles() with 'overrides[*].extends' setting on deep locations should not throw. ok 263 CLIEngine getConfigForFile should return the info from ConfiggetConfig when called ok 264 CLIEngine getConfigForFile should return the config when run from within a subdir ok 265 CLIEngine getConfigForFile should throw an error if a directory path was given. ok 266 CLIEngine isPathIgnored should check if the given path is ignored ok 267 CLIEngine isPathIgnored should return false if ignoring is disabled ok 268 CLIEngine isPathIgnored should return true for default ignores even if ignoring is disabled ok 269 CLIEngine getFormatter() should return a function when a bundled formatter is requested ok 270 CLIEngine getFormatter() should return a function when no argument is passed ok 271 CLIEngine getFormatter() should return a function when a custom formatter is requested ok 272 CLIEngine getFormatter() should return a function when a custom formatter is requested, also if the path has backslashes ok 273 CLIEngine getFormatter() should return a function when a formatter prefixed with eslint-formatter is requested ok 274 CLIEngine getFormatter() should return a function when a formatter is requested, also when the eslint-formatter prefix is included in the format argument ok 275 CLIEngine getFormatter() should return a function when a formatter is requested within a scoped npm package ok 276 CLIEngine getFormatter() should return a function when a formatter is requested within a scoped npm package, also when the eslint-formatter prefix is included in the format argument ok 277 CLIEngine getFormatter() should return null when a custom formatter doesn't exist ok 278 CLIEngine getFormatter() should return null when a built-in formatter doesn't exist ok 279 CLIEngine getFormatter() should throw when a built-in formatter no longer exists ok 280 CLIEngine getFormatter() should throw if the required formatter exists but has an error ok 281 CLIEngine getFormatter() should return null when a non-string formatter name is passed ok 282 CLIEngine getFormatter() should return a function when called as a static function on CLIEngine ok 283 CLIEngine getFormatter() should return a function when called as a static function on CLIEngine and a custom formatter is requested ok 284 CLIEngine getErrorResults() should report 5 error messages when looking for errors only ok 285 CLIEngine getErrorResults() should not mutate passed report.results parameter ok 286 CLIEngine getErrorResults() should report a warningCount of 0 when looking for errors only ok 287 CLIEngine getErrorResults() should return 0 error or warning messages even when the file has warnings ok 288 CLIEngine getErrorResults() should return source code of file in the `source` property ok 289 CLIEngine getErrorResults() should contain `output` property after fixes ok 290 CLIEngine outputFixes() should call fs.writeFileSync() for each result with output ok 291 CLIEngine outputFixes() should call fs.writeFileSync() for each result with output and not at all for a result without output ok 292 CLIEngine getRules() should expose the list of rules ok 293 CLIEngine getRules() should expose the list of plugin rules ok 294 CLIEngine resolveFileGlobPatterns should correctly resolve . to **/*.{js} ok 295 CLIEngine resolveFileGlobPatterns should correctly resolve ./ to **/*.{js} ok 296 CLIEngine resolveFileGlobPatterns should correctly resolve ../ to ../**/*.{js} ok 297 CLIEngine resolveFileGlobPatterns should correctly resolve to ok 298 CLIEngine resolveFileGlobPatterns should convert a directory name with no provided extensions into a glob pattern ok 299 CLIEngine resolveFileGlobPatterns should not convert path with globInputPaths option false ok 300 CLIEngine resolveFileGlobPatterns should convert an absolute directory name with no provided extensions into a posix glob pattern ok 301 CLIEngine resolveFileGlobPatterns should convert a directory name with a single provided extension into a glob pattern ok 302 CLIEngine resolveFileGlobPatterns should convert a directory name with multiple provided extensions into a glob pattern ok 303 CLIEngine resolveFileGlobPatterns should convert multiple directory names into glob patterns ok 304 CLIEngine resolveFileGlobPatterns should remove leading './' from glob patterns ok 305 CLIEngine resolveFileGlobPatterns should convert a directory name with a trailing '/' into a glob pattern ok 306 CLIEngine resolveFileGlobPatterns should return filenames as they are ok 307 CLIEngine resolveFileGlobPatterns should convert backslashes into forward slashes ok 308 CLIEngine when evaluating code with comments to change config when allowInlineConfig is disabled should report a violation for disabling rules ok 309 CLIEngine when evaluating code with comments to change config when allowInlineConfig is disabled should not report a violation by default ok 310 CLIEngine when evaluating code when reportUnusedDisableDirectives is enabled should report problems for unused eslint-disable directives ok 311 CLIEngine when retreiving version number should return current version number ok 312 CLIEngine mutability plugins Loading plugin in one instance doesnt mutate to another instance ok 313 CLIEngine mutability rules Loading rules in one instance doesnt mutate to another instance ok 314 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' should ignore empty strings. ok 315 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' was given, should list two files. ok 316 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' was given, should list 'lib/one.js' and 'lib/two.js'. ok 317 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' was given, should use the config '.eslintrc.json' for both files. ok 318 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/**/*.js' was given, should list four files. ok 319 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/**/*.js' was given, should list 'lib/nested/one.js', 'lib/nested/two.js', 'lib/one.js', 'lib/two.js'. ok 320 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/**/*.js' was given, should use the merged config of '.eslintrc.json' and 'lib/nested/.eslintrc.yml' for 'lib/nested/one.js' and 'lib/nested/two.js'. ok 321 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/**/*.js' was given, should use the config '.eslintrc.json' for 'lib/one.js' and 'lib/two.js'. ok 322 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' and 'test/*.js' were given, should list four files. ok 323 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' and 'test/*.js' were given, should list 'lib/one.js', 'lib/two.js', 'test/one.js', 'test/two.js'. ok 324 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' and 'test/*.js' were given, should use the config '.eslintrc.json' for 'lib/one.js' and 'lib/two.js'. ok 325 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with three directories ('lib', 'lib/nested', 'test') that contains 'one.js' and 'two.js' if 'lib/*.js' and 'test/*.js' were given, should use the merged config of '.eslintrc.json' and 'test/.eslintrc.yml' for 'test/one.js' and 'test/two.js'. ok 326 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return an array with a resolved (absolute) filename ok 327 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return all files matching a glob pattern ok 328 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return all files matching multiple glob patterns ok 329 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should ignore hidden files for standard glob patterns ok 330 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return hidden files if included in glob pattern ok 331 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should ignore default ignored files if not passed explicitly ok 332 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should ignore and warn for default ignored files when passed explicitly ok 333 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should ignore default ignored files if not passed explicitly even if ignore is false ok 334 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should not ignore default ignored files when passed explicitly if ignore is false ok 335 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should throw an error for a file which does not exist ok 336 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should throw if a folder that does not have any applicable files is linted # TODO: not ok 337 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should throw if only ignored files match a glob expected [Function] to throw error including 'All files matched by \'/tmp/eslint/te…' but got 'path should be a `path.relative()`d s…' AssertionError: expected [Function] to throw error including 'All files matched by \'/tmp/eslint/te…' but got 'path should be a `path.relative()`d s…' at Context. (tests/lib/cli-engine/file-enumerator.js:362:28) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 338 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should throw an error if no files match a glob # TODO: not ok 339 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return an ignored file, if ignore option is turned off path should be a `path.relative()`d string, but got "../../tmp/eslint/tests/fixtures/glob-util/ignored/" RangeError: path should be a `path.relative()`d string, but got "../../tmp/eslint/tests/fixtures/glob-util/ignored/" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:348:40) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:448:47) at FileEnumerator._iterateFilesRecursive (lib/cli-engine/file-enumerator.js:383:18) at _iterateFilesRecursive.next () at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:49) at iterateFiles.next () at Function.from () at listFiles (tests/lib/cli-engine/file-enumerator.js:190:30) at Context. (tests/lib/cli-engine/file-enumerator.js:380:36) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 340 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should ignore a file from a glob if it matches a pattern in an ignore file expected [Function] to throw error including 'All files matched by \'/tmp/eslint/te…' but got 'path should be a `path.relative()`d s…' AssertionError: expected [Function] to throw error including 'All files matched by \'/tmp/eslint/te…' but got 'path should be a `path.relative()`d s…' at Context. (tests/lib/cli-engine/file-enumerator.js:389:28) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 341 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should ignore a file from a glob if matching a specified ignore pattern ok 342 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return a file only once if listed in more than 1 pattern ok 343 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should set 'ignored: true' for files that are explicitly specified but ignored ok 344 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should not return files from default ignored folders ok 345 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return unignored files from default ignored folders ok 346 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return unignored files from folders unignored in .eslintignore ok 347 FileEnumerator 'iterateFiles(patterns)' method should iterate files and configs. with 'tests/fixtures/glob-utils' files listFilesToProcess() should return unignored files from folders unignored in .eslintignore for explicitly specified folder ok 348 IgnoredPaths initialization should load .eslintignore from cwd when explicitly passed ok 349 IgnoredPaths initialization should set baseDir to cwd when no ignore file was loaded ok 350 IgnoredPaths initialization should not travel to parent directories to find .eslintignore when it's missing and cwd is provided ok 351 IgnoredPaths initialization should load empty array with ignorePath set to false ok 352 IgnoredPaths initialization should accept an array for options.ignorePattern ok 353 IgnoredPaths initialization should use package.json's eslintIgnore files if no specified .eslintignore file ok 354 IgnoredPaths initialization should use correct message template if failed to parse package.json ok 355 IgnoredPaths initialization should not use package.json's eslintIgnore files if specified .eslintignore file ok 356 IgnoredPaths initialization should error if package.json's eslintIgnore is not an array of file paths ok 357 IgnoredPaths caching file reads should cache readFileSync on same file paths ok 358 IgnoredPaths initialization with ignorePattern should ignore a normal pattern ok 359 IgnoredPaths initialization with ignorePath should set baseDir to directory containing ignorePath if provided ok 360 IgnoredPaths initialization with ignorePath should set the common ancestor directory of cwd and ignorePath to baseDir (in the case that 'ignoreFilePath' and 'cwd' are siblings) ok 361 IgnoredPaths initialization with ignorePath should set the common ancestor directory of cwd and ignorePath to baseDir ok 362 IgnoredPaths initialization with ignorePath file not named .eslintignore should work when cwd is a parent directory ok 363 IgnoredPaths initialization with ignorePath file not named .eslintignore should work when the file is in the cwd ok 364 IgnoredPaths initialization with ignorePath file not named .eslintignore should work when cwd is a subdirectory ok 365 IgnoredPaths initialization without ignorePath should not load an ignore file if none is in cwd ok 366 IgnoredPaths initialization with invalid file should throw error ok 367 IgnoredPaths contains should throw if initialized with invalid options ok 368 IgnoredPaths contains should not throw if given a relative filename ok 369 IgnoredPaths contains should return true for files which match an ignorePattern even if they do not exist on the filesystem # TODO: not ok 370 IgnoredPaths contains should return false for files outside of the cwd (with no ignore file provided) path should be a `path.relative()`d string, but got "../undef.js" RangeError: path should be a `path.relative()`d string, but got "../undef.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at Context. (tests/lib/cli-engine/ignored-paths.js:345:41) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 371 IgnoredPaths contains should return false for files outside of ignorePath's directory ok 372 IgnoredPaths contains should return true for file matching an ignore pattern exactly ok 373 IgnoredPaths contains should return false for file matching an invalid ignore pattern with leading './' ok 374 IgnoredPaths contains should return false for file in subfolder of cwd matching an ignore pattern with leading '/' ok 375 IgnoredPaths contains should return true for file matching a child of an ignore pattern ok 376 IgnoredPaths contains should return true for file matching a grandchild of an ignore pattern ok 377 IgnoredPaths contains should return true for file matching a child of an ignore pattern with windows line termination ok 378 IgnoredPaths contains should return false for file not matching any ignore pattern ok 379 IgnoredPaths contains should return false for ignored file when unignored with ignore pattern ok 380 IgnoredPaths contains should resolve relative paths from the ignorePath, not cwd ok 381 IgnoredPaths contains should resolve relative paths from the ignorePath when it's in a child directory ok 382 IgnoredPaths contains should resolve relative paths from the ignorePath when it contains negated globs ok 383 IgnoredPaths contains should resolve default ignore patterns from the CWD even when the ignorePath is in a subdirectory ok 384 IgnoredPaths contains should resolve default ignore patterns from the CWD even when the ignorePath is in a parent directory ok 385 IgnoredPaths contains should handle .eslintignore which contains CRLF correctly. ok 386 IgnoredPaths initialization with ignorePath containing commented lines should not include comments in ignore rules ok 387 IgnoredPaths initialization with ignorePath containing negations should ignore a non-negated pattern ok 388 IgnoredPaths initialization with ignorePath containing negations should not ignore a negated pattern ok 389 IgnoredPaths default ignores should contain /bower_components/* ok 390 IgnoredPaths default ignores should contain /node_modules/* ok 391 IgnoredPaths default ignores should always apply defaultPatterns if ignore option is true ok 392 IgnoredPaths default ignores should still apply defaultPatterns if ignore option is is false ok 393 IgnoredPaths default ignores should not ignore files in defaultPatterns within a subdirectory ok 394 IgnoredPaths default ignores should allow subfolders of defaultPatterns to be unignored by ignorePattern ok 395 IgnoredPaths default ignores should allow subfolders of defaultPatterns to be unignored by ignorePath ok 396 IgnoredPaths default ignores should ignore dotfiles ok 397 IgnoredPaths default ignores should ignore directories beginning with a dot ok 398 IgnoredPaths default ignores should still ignore dotfiles when ignore option disabled ok 399 IgnoredPaths default ignores should still ignore directories beginning with a dot when ignore option disabled ok 400 IgnoredPaths default ignores should not ignore absolute paths containing '..' ok 401 IgnoredPaths default ignores should ignore /node_modules/ at top level relative to .eslintignore when loaded ok 402 IgnoredPaths default ignores should ignore /node_modules/ at top level relative to cwd without an .eslintignore ok 403 IgnoredPaths two globstar '**' ignore pattern should ignore files in nested directories ok 404 IgnoredPaths dotfiles option should add at least one pattern when false ok 405 IgnoredPaths dotfiles option should add no patterns when true ok 406 IgnoredPaths dotfiles option should not ignore dotfiles when true ok 407 IgnoredPaths dotfiles option should not ignore directories beginning with a dot when true ok 408 npmUtils checkDevDeps() should not find a direct dependency of the project ok 409 npmUtils checkDevDeps() should find a dev dependency of the project ok 410 npmUtils checkDevDeps() should not find non-dependencies ok 411 npmUtils checkDevDeps() should not find nested dependencies ok 412 npmUtils checkDevDeps() should return false for a single, non-existent package ok 413 npmUtils checkDevDeps() should handle missing devDependencies key ok 414 npmUtils checkDevDeps() should throw with message when parsing invalid package.json ok 415 npmUtils checkDeps() should find a direct dependency of the project ok 416 npmUtils checkDeps() should not find a dev dependency of the project ok 417 npmUtils checkDeps() should not find non-dependencies ok 418 npmUtils checkDeps() should not find nested dependencies ok 419 npmUtils checkDeps() should return false for a single, non-existent package ok 420 npmUtils checkDeps() should throw if no package.json can be found ok 421 npmUtils checkDeps() should handle missing dependencies key ok 422 npmUtils checkDeps() should throw with message when parsing invalid package.json ok 423 npmUtils checkPackageJson() should return true if package.json exists ok 424 npmUtils checkPackageJson() should return false if package.json does not exist # TODO: not ok 425 npmUtils installSyncSaveDev() should invoke npm to install a single desired package sinon.stub(...).returns is not a function TypeError: sinon.stub(...).returns is not a function at Context. (tests/lib/init/npm-utils.js:175:48) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 426 npmUtils installSyncSaveDev() should accept an array of packages to install Attempted to wrap apply which is already wrapped TypeError: Attempted to wrap apply which is already wrapped at checkWrappedMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:64:21) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:135:13) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:185:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) -------------- Error: Stack Trace for original at extendObjectWithWrappedMethods (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:169:34) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:157:5) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:33:9) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:175:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate. (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 427 npmUtils installSyncSaveDev() should log an error message if npm throws ENOENT error Attempted to wrap apply which is already wrapped TypeError: Attempted to wrap apply which is already wrapped at checkWrappedMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:64:21) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:135:13) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:196:40) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) -------------- Error: Stack Trace for original at extendObjectWithWrappedMethods (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:169:34) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:157:5) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:33:9) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:175:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate. (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 428 npmUtils fetchPeerDependencies() should execute 'npm show --json peerDependencies' command Attempted to wrap apply which is already wrapped TypeError: Attempted to wrap apply which is already wrapped at checkWrappedMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:64:21) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:135:13) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:209:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) -------------- Error: Stack Trace for original at extendObjectWithWrappedMethods (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:169:34) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:157:5) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:33:9) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:175:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate. (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 429 npmUtils fetchPeerDependencies() should return null if npm throws ENOENT error Attempted to wrap apply which is already wrapped TypeError: Attempted to wrap apply which is already wrapped at checkWrappedMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:64:21) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:135:13) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:219:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) -------------- Error: Stack Trace for original at extendObjectWithWrappedMethods (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:169:34) at wrapMethod (/usr/share/nodejs/sinon/lib/sinon/util/core/wrap-method.js:157:5) at stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:126:44) at /usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:33:17 at /usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:27:22 at Array.forEach () at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:19:5) at walkInternal (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:33:9) at walk (/usr/share/nodejs/sinon/lib/sinon/util/core/walk.js:48:12) at walkObject (/usr/share/nodejs/sinon/lib/sinon/util/core/walk-object.js:18:5) at Function.stub (/usr/share/nodejs/sinon/lib/sinon/stub.js:99:16) at Sandbox.stub (/usr/share/nodejs/sinon/lib/sinon/sandbox.js:388:37) at Context. (tests/lib/init/npm-utils.js:175:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate. (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 430 SourceCodeUtil getSourceCodeOfFiles() should handle single string filename arguments ok 431 SourceCodeUtil getSourceCodeOfFiles() should accept an array of string filenames ok 432 SourceCodeUtil getSourceCodeOfFiles() should accept a glob argument ok 433 SourceCodeUtil getSourceCodeOfFiles() should accept a relative filename # TODO: not ok 434 SourceCodeUtil getSourceCodeOfFiles() should accept a relative path to a file in a parent directory path should be a `path.relative()`d string, but got "../foo.js" RangeError: path should be a `path.relative()`d string, but got "../foo.js" at throwError (/usr/share/nodejs/ignore/index.js:364:9) at checkPath (/usr/share/nodejs/ignore/index.js:383:12) at Ignore._test (/usr/share/nodejs/ignore/index.js:504:5) at Ignore.ignores (/usr/share/nodejs/ignore/index.js:549:17) at /usr/share/nodejs/ignore/index.js:553:26 at Array.filter () at Ignore.filter (/usr/share/nodejs/ignore/index.js:557:29) at IgnoredPaths.contains (lib/cli-engine/ignored-paths.js:344:38) at FileEnumerator._isIgnoredFile (lib/cli-engine/file-enumerator.js:447:35) at FileEnumerator._iterateFilesWithFile (lib/cli-engine/file-enumerator.js:322:30) at FileEnumerator._iterateFiles (lib/cli-engine/file-enumerator.js:302:25) at FileEnumerator.iterateFiles (lib/cli-engine/file-enumerator.js:254:59) at iterateFiles.next () at Function.from () at getSourceCodeOfFiles (lib/init/source-code-utils.js:84:15) at Context. (tests/lib/init/source-code-utils.js:113:32) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 435 SourceCodeUtil getSourceCodeOfFiles() should accept a callback ok 436 SourceCodeUtil getSourceCodeOfFiles() should call the callback with total number of files being processed ok 437 SourceCodeUtil getSourceCodeOfFiles() should create an object with located filenames as keys ok 438 SourceCodeUtil getSourceCodeOfFiles() should should not include non-existent filenames in results ok 439 SourceCodeUtil getSourceCodeOfFiles() should throw for files with parsing errors ok 440 SourceCodeUtil getSourceCodeOfFiles() should obtain the sourceCode of a file ok 441 SourceCodeUtil getSourceCodeOfFiles() should obtain the sourceCode of JSX files ok 442 SourceCodeUtil getSourceCodeOfFiles() should honor .eslintignore files by default ok 443 SourceCodeUtil getSourceCodeOfFiles() should obtain the sourceCode of all files in a specified folder ok 444 SourceCodeUtil getSourceCodeOfFiles() should accept cli options ok 445 SourceCodeUtil getSourceCodeOfFiles() should execute the callback function, if provided ok 446 SourceCodeUtil getSourceCodeOfFiles() should execute callback function once per file ok 447 SourceCodeUtil getSourceCodeOfFiles() should call callback function with total number of files with sourceCode ok 448 Linter Static Members version should return same version as instance property ok 449 Linter when using events an error should be thrown when an error occurs inside of an event handler ok 450 Linter when using events does not call rule listeners with a `this` value ok 451 Linter when using events does not allow listeners to use special EventEmitter values ok 452 Linter when using events has all the `parent` properties on nodes when the rule listeners are created ok 453 Linter context.getSourceLines() should get proper lines when using \n as a line break ok 454 Linter context.getSourceLines() should get proper lines when using \r\n as a line break ok 455 Linter context.getSourceLines() should get proper lines when using \r as a line break ok 456 Linter context.getSourceLines() should get proper lines when using \u2028 as a line break ok 457 Linter context.getSourceLines() should get proper lines when using \u2029 as a line break ok 458 Linter getSourceCode() should retrieve SourceCode object after reset ok 459 Linter getSourceCode() should retrieve SourceCode object without reset ok 460 Linter context.getSource() should retrieve all text when used without parameters ok 461 Linter context.getSource() should retrieve all text for root node ok 462 Linter context.getSource() should clamp to valid range when retrieving characters before start of source ok 463 Linter context.getSource() should retrieve all text for binary expression ok 464 Linter context.getSource() should retrieve all text plus two characters before for binary expression ok 465 Linter context.getSource() should retrieve all text plus one character after for binary expression ok 466 Linter context.getSource() should retrieve all text plus two characters before and one character after for binary expression ok 467 Linter when calling context.getAncestors should retrieve all ancestors when used ok 468 Linter when calling context.getAncestors should retrieve empty ancestors for root node ok 469 Linter when calling context.getNodeByRangeIndex should retrieve a node starting at the given index ok 470 Linter when calling context.getNodeByRangeIndex should retrieve a node containing the given index ok 471 Linter when calling context.getNodeByRangeIndex should retrieve a node that is exactly the given index ok 472 Linter when calling context.getNodeByRangeIndex should retrieve a node ending with the given index ok 473 Linter when calling context.getNodeByRangeIndex should retrieve the deepest node containing the given index ok 474 Linter when calling context.getNodeByRangeIndex should return null if the index is outside the range of any node ok 475 Linter when calling context.getScope should retrieve the global scope correctly from a Program ok 476 Linter when calling context.getScope should retrieve the function scope correctly from a FunctionDeclaration ok 477 Linter when calling context.getScope should retrieve the function scope correctly from a LabeledStatement ok 478 Linter when calling context.getScope should retrieve the function scope correctly from within an ArrowFunctionExpression ok 479 Linter when calling context.getScope should retrieve the function scope correctly from within an SwitchStatement ok 480 Linter when calling context.getScope should retrieve the function scope correctly from within a BlockStatement ok 481 Linter when calling context.getScope should retrieve the function scope correctly from within a nested block statement ok 482 Linter when calling context.getScope should retrieve the function scope correctly from within a FunctionDeclaration ok 483 Linter when calling context.getScope should retrieve the function scope correctly from within a FunctionExpression ok 484 Linter when calling context.getScope should retrieve the catch scope correctly from within a CatchClause ok 485 Linter when calling context.getScope should retrieve module scope correctly from an ES6 module ok 486 Linter when calling context.getScope should retrieve function scope correctly when globalReturn is true ok 487 Linter marking variables as used should mark variables in current scope as used ok 488 Linter marking variables as used should mark variables in function args as used ok 489 Linter marking variables as used should mark variables in higher scopes as used ok 490 Linter marking variables as used should mark variables in Node.js environment as used ok 491 Linter marking variables as used should mark variables in modules as used ok 492 Linter marking variables as used should return false if the given variable is not found ok 493 Linter when evaluating code events for each node type should fire ok 494 Linter when evaluating code should throw an error if a rule reports a problem without a message ok 495 Linter when config has shared settings for rules should pass settings to all rules ok 496 Linter when config has shared settings for rules should not have any settings if they were not passed in ok 497 Linter when config has parseOptions should pass ecmaFeatures to all rules when provided on config ok 498 Linter when config has parseOptions should pass parserOptions to all rules when default parserOptions is used ok 499 Linter when a custom parser is defined using defineParser should be able to define a custom parser ok 500 Linter when config has parser should pass parser as parserPath to all rules when provided on config ok 501 Linter when config has parser should use parseForESLint() in custom parser when custom parser is specified ok 502 Linter when config has parser should expose parser services when using parseForESLint() and services are specified ok 503 Linter when config has parser should use the same parserServices if source code object is reused ok 504 Linter when config has parser should pass parser as parserPath to all rules when default parser is used ok 505 Linter when passing in configuration values for rules should be configurable by only setting the integer value ok 506 Linter when passing in configuration values for rules should be configurable by only setting the string value ok 507 Linter when passing in configuration values for rules should be configurable by passing in values as an array ok 508 Linter when passing in configuration values for rules should be configurable by passing in string value as an array ok 509 Linter when passing in configuration values for rules should not be configurable by setting other value ok 510 Linter when passing in configuration values for rules should process empty config ok 511 Linter when evaluating code containing /*global */ and /*globals */ blocks variables should be available in global scope ok 512 Linter when evaluating code containing a /*global */ block with sloppy whitespace variables should be available in global scope ok 513 Linter when evaluating code containing a /*global */ block with specific variables should not throw an error if comment block has global variables which are Object.prototype contains ok 514 Linter when evaluating code containing /*eslint-env */ block variables should be available in global scope ok 515 Linter when evaluating code containing /*eslint-env */ block with sloppy whitespace variables should be available in global scope ok 516 Linter when evaluating code containing /*exported */ block we should behave nicely when no matching variable is found ok 517 Linter when evaluating code containing /*exported */ block variables should be exported ok 518 Linter when evaluating code containing /*exported */ block undefined variables should not be exported ok 519 Linter when evaluating code containing /*exported */ block variables should be exported in strict mode ok 520 Linter when evaluating code containing /*exported */ block variables should not be exported in the es6 module environment ok 521 Linter when evaluating code containing /*exported */ block variables should not be exported when in the node environment ok 522 Linter when evaluating code containing a line comment should not introduce a global variable ok 523 Linter when evaluating code containing normal block comments should not introduce a global variable ok 524 Linter when evaluating any code builtin global variables should be available in the global scope ok 525 Linter when evaluating any code ES6 global variables should not be available by default ok 526 Linter when evaluating any code ES6 global variables should be available in the es6 environment ok 527 Linter when evaluating any code ES6 global variables can be disabled when the es6 environment is enabled ok 528 Linter at any time can add a rule dynamically ok 529 Linter at any time can add multiple rules dynamically ok 530 Linter at any time has access to the filename ok 531 Linter at any time defaults filename to '' ok 532 Linter when evaluating code with comments to enable rules should report a violation ok 533 Linter when evaluating code with comments to enable rules rules should not change initial config ok 534 Linter when evaluating code with comments to enable rules rules should not change initial config ok 535 Linter when evaluating code with comments to enable rules rules should not change initial config ok 536 Linter when evaluating code with comments to enable rules rules should not change initial config ok 537 Linter when evaluating code with invalid comments to enable rules should report a violation when the config is not a valid rule configuration ok 538 Linter when evaluating code with invalid comments to enable rules should report a violation when the config violates a rule's schema ok 539 Linter when evaluating code with comments to disable rules should not report a violation ok 540 Linter when evaluating code with comments to disable rules should report an error when disabling a non-existent rule in inline comment ok 541 Linter when evaluating code with comments to disable rules should not report an error, when disabling a non-existent rule in config ok 542 Linter when evaluating code with comments to disable rules should report an error, when config a non-existent rule in config ok 543 Linter when evaluating code with comments to enable multiple rules should report a violation ok 544 Linter when evaluating code with comments to enable and disable multiple rules should report a violation ok 545 Linter when evaluating code with comments to disable and enable configurable rule as part of plugin should not report a violation when inline comment enables plugin rule and there's no violation ok 546 Linter when evaluating code with comments to disable and enable configurable rule as part of plugin should not report a violation when inline comment disables plugin rule ok 547 Linter when evaluating code with comments to disable and enable configurable rule as part of plugin should report a violation when the report is right before the comment ok 548 Linter when evaluating code with comments to disable and enable configurable rule as part of plugin should not report a violation when the report is right at the start of the comment ok 549 Linter when evaluating code with comments to disable and enable configurable rule as part of plugin rules should not change initial config ok 550 Linter when evaluating code with comments to enable and disable all reporting should report a violation ok 551 Linter when evaluating code with comments to enable and disable all reporting should not report a violation ok 552 Linter when evaluating code with comments to enable and disable all reporting should not report a violation ok 553 Linter when evaluating code with comments to enable and disable all reporting should report a violation ok 554 Linter when evaluating code with comments to enable and disable all reporting should not report a violation ok 555 Linter when evaluating code with comments to enable and disable all reporting should not report a violation ok 556 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should report a violation ok 557 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should report a violation ok 558 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should report a violation if eslint-disable-line in a block comment is not on a single line ok 559 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should not disable rule and add an extra report if eslint-disable-line in a block comment is not on a single line ok 560 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should not report a violation for eslint-disable-line in block comment ok 561 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should not report a violation ok 562 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should not report a violation ok 563 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should not report a violation ok 564 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-line should ignore violations of multiple rules when specified in mixed comments ok 565 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violation of specified rule on next line ok 566 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violation of specified rule if eslint-disable-next-line is a block comment ok 567 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violation of specified rule if eslint-disable-next-line is a block comment ok 568 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should not ignore violation if block comment is not on a single line ok 569 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violations only of specified rule ok 570 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violations of multiple rules when specified ok 571 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violations of multiple rules when specified in mixed comments ok 572 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violations of only the specified rule on next line ok 573 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violations of specified rule on next line only ok 574 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore all rule violations on next line if none specified ok 575 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should ignore violations if eslint-disable-next-line is a block comment ok 576 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should report a violation ok 577 Linter when evaluating code with comments to ignore reporting on specific rules on a specific line eslint-disable-next-line should not ignore violations if comment is of the type Shebang ok 578 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation ok 579 Linter when evaluating code with comments to enable and disable reporting of specific rules should report no violation ok 580 Linter when evaluating code with comments to enable and disable reporting of specific rules should report no violation ok 581 Linter when evaluating code with comments to enable and disable reporting of specific rules should report no violation ok 582 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation ok 583 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation ok 584 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation ok 585 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation ok 586 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation ok 587 Linter when evaluating code with comments to enable and disable reporting of specific rules should report a violation when severity is warn ok 588 Linter when evaluating code with comments to enable and disable multiple comma separated rules should report a violation ok 589 Linter when evaluating code with comments to enable configurable rule should report a violation ok 590 Linter when evaluating code with comments to enable configurable rule using string severity should report a violation ok 591 Linter when evaluating code with incorrectly formatted comments to disable rule should report a violation ok 592 Linter when evaluating code with incorrectly formatted comments to disable rule should report a violation ok 593 Linter when evaluating code with incorrectly formatted comments to disable rule should report a violation # TODO: not ok 594 Linter when evaluating code with comments which have colon in its value should not parse errors, should report a violation Error while loading rule 'max-len': Invalid regular expression: /data:image/|s*requires*(|^s*loader.lazy|-*-/: Unterminated group Occurred while linting filename.js SyntaxError: Error while loading rule 'max-len': Invalid regular expression: /data:image/|s*requires*(|^s*loader.lazy|-*-/: Unterminated group Occurred while linting filename.js at new RegExp () at Object.create (lib/rules/max-len.js:148:29) at createRuleListeners (lib/linter/linter.js:748:21) at /build/eslint-6.4.0~dfsg+~6.1.9/lib/linter/linter.js:916:31 at Array.forEach () at runRules (lib/linter/linter.js:861:34) at Linter._verifyWithoutProcessors (lib/linter/linter.js:1133:31) at Linter.verify (lib/linter/linter.js:1195:21) at Context. (tests/lib/linter/linter.js:2739:37) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 595 Linter when evaluating a file with a shebang should preserve line numbers ok 596 Linter when evaluating a file with a shebang should have a comment with the shebang in it ok 597 Linter when evaluating broken code should report a violation with a useful parse error prefix ok 598 Linter when evaluating broken code should report source code where the issue is present ok 599 Linter when using an invalid (undefined) rule should report a problem ok 600 Linter when using an invalid (undefined) rule should report that the rule does not exist ok 601 Linter when using an invalid (undefined) rule should report at the correct severity ok 602 Linter when using an invalid (undefined) rule should accept any valid rule configuration ok 603 Linter when using an invalid (undefined) rule should report multiple missing rules ok 604 Linter when using a rule which has been replaced should report the new rule ok 605 Linter when calling getRules should return all loaded rules ok 606 Linter when calling version should return current version number ok 607 Linter when evaluating an empty string runs rules ok 608 Linter when evaluating code without comments to environment should report a violation when using typed array ok 609 Linter when evaluating code without comments to environment should report a violation when using Promise ok 610 Linter when evaluating code with comments to environment should not support legacy config ok 611 Linter when evaluating code with comments to environment should not report a violation ok 612 Linter when evaluating code with comments to environment should not report a violation ok 613 Linter when evaluating code with comments to environment should not report a violation ok 614 Linter when evaluating code with comments to environment should not report a violation ok 615 Linter when evaluating code with comments to environment should not report a violation ok 616 Linter when evaluating code with comments to environment should not report a violation ok 617 Linter when evaluating code with comments to environment should not report a violation ok 618 Linter when evaluating code with comments to environment should not report a violation ok 619 Linter when evaluating code with comments to change config when allowInlineConfig is enabled should report a violation for disabling rules ok 620 Linter when evaluating code with comments to change config when allowInlineConfig is enabled should report a violation for global variable declarations ok 621 Linter when evaluating code with comments to change config when allowInlineConfig is enabled should report a violation for eslint-disable ok 622 Linter when evaluating code with comments to change config when allowInlineConfig is enabled should not report a violation for rule changes ok 623 Linter when evaluating code with comments to change config when allowInlineConfig is enabled should report a violation for disable-line ok 624 Linter when evaluating code with comments to change config when allowInlineConfig is enabled should report a violation for env changes ok 625 Linter when evaluating code with 'noInlineComment' should warn '/* globals foo */' if 'noInlineConfig' was given. ok 626 Linter when evaluating code with 'noInlineComment' should warn '/* global foo */' if 'noInlineConfig' was given. ok 627 Linter when evaluating code with 'noInlineComment' should warn '/* exported foo */' if 'noInlineConfig' was given. ok 628 Linter when evaluating code with 'noInlineComment' should warn '/* eslint eqeqeq: error */' if 'noInlineConfig' was given. ok 629 Linter when evaluating code with 'noInlineComment' should warn '/* eslint-disable eqeqeq */' if 'noInlineConfig' was given. ok 630 Linter when evaluating code with 'noInlineComment' should warn '/* eslint-disable-line eqeqeq */' if 'noInlineConfig' was given. ok 631 Linter when evaluating code with 'noInlineComment' should warn '/* eslint-disable-next-line eqeqeq */' if 'noInlineConfig' was given. ok 632 Linter when evaluating code with 'noInlineComment' should warn '/* eslint-enable eqeqeq */' if 'noInlineConfig' was given. ok 633 Linter when evaluating code with 'noInlineComment' should warn '/* eslint-env es6 */' if 'noInlineConfig' was given. ok 634 Linter when evaluating code with 'noInlineComment' should warn '// eslint-disable-line eqeqeq' if 'noInlineConfig' was given. ok 635 Linter when evaluating code with 'noInlineComment' should warn '// eslint-disable-next-line eqeqeq' if 'noInlineConfig' was given. ok 636 Linter when evaluating code with 'noInlineComment' should not warn if 'noInlineConfig' and '--no-inline-config' were given. ok 637 Linter reportUnusedDisable option reports problems for unused eslint-disable comments ok 638 Linter reportUnusedDisable option reports problems for unused eslint-disable comments (error) ok 639 Linter reportUnusedDisable option reports problems for unused eslint-disable comments (warn) ok 640 Linter reportUnusedDisable option reports problems for unused eslint-disable comments (in config) ok 641 Linter when evaluating code with comments to change config when allowInlineConfig is disabled should not report a violation ok 642 Linter when evaluating code with hashbang should comment hashbang without breaking offset ok 643 Linter verify() should report warnings in order by line and column when called ok 644 Linter verify() should properly parse object spread when ecmaVersion is 2018 ok 645 Linter verify() should properly parse global return when passed ecmaFeatures ok 646 Linter verify() should properly parse global return when in Node.js environment ok 647 Linter verify() should not parse global return when in Node.js environment with globalReturn explicitly off ok 648 Linter verify() should not parse global return when Node.js environment is false ok 649 Linter verify() should properly parse sloppy-mode code when impliedStrict is false ok 650 Linter verify() should not parse sloppy-mode code when impliedStrict is true ok 651 Linter verify() should properly parse valid code when impliedStrict is true ok 652 Linter verify() should properly parse JSX when passed ecmaFeatures ok 653 Linter verify() should report an error when JSX code is encountered and JSX is not enabled ok 654 Linter verify() should not report an error when JSX code is encountered and JSX is enabled ok 655 Linter verify() should not report an error when JSX code contains a spread operator and JSX is enabled ok 656 Linter verify() should be able to use es6 features if there is a comment which has "eslint-env es6" ok 657 Linter verify() should be able to return in global if there is a comment which enables the node environment with a comment ok 658 Linter verify() should attach a "/*global" comment node to declared variables ok 659 Linter verify() should report a linting error when a global is set to an invalid value ok 660 Linter verify() should not crash when we reuse the SourceCode object ok 661 Linter verify() should reuse the SourceCode object ok 662 Linter verify() should allow 'await' as a property name in modules ok 663 Linter verify() should not modify config object passed as argument ok 664 Linter verify() should pass 'id' to rule contexts with the rule id ok 665 Linter verify() filenames should allow filename to be passed on options object ok 666 Linter verify() filenames should allow filename to be passed as third argument ok 667 Linter verify() filenames should default filename to when options object doesn't have filename ok 668 Linter verify() filenames should default filename to when only two arguments are passed ok 669 Linter verify() ecmaVersion should fail to parse exponentiation operator when the ECMAScript version number is 2015 ok 670 Linter verify() ecmaVersion it should properly parse let declaration when the ECMAScript version number is 6 ok 671 Linter verify() ecmaVersion it should properly parse let declaration when the ECMAScript version number is 2015 ok 672 Linter verify() ecmaVersion should properly parse exponentiation operator when the ECMAScript version number is 7 ok 673 Linter verify() ecmaVersion should properly parse exponentiation operator when the ECMAScript version number is 2016 ok 674 Linter context.getScope() should return 'function' scope on FunctionDeclaration (ES5) ok 675 Linter context.getScope() should return 'function' scope on FunctionExpression (ES5) ok 676 Linter context.getScope() should return 'function' scope on the body of FunctionDeclaration (ES5) ok 677 Linter context.getScope() should return 'function' scope on the body of FunctionDeclaration (ES2015) ok 678 Linter context.getScope() should return 'function' scope on BlockStatement in functions (ES5) ok 679 Linter context.getScope() should return 'block' scope on BlockStatement in functions (ES2015) ok 680 Linter context.getScope() should return 'block' scope on nested BlockStatement in functions (ES2015) ok 681 Linter context.getScope() should return 'function' scope on SwitchStatement in functions (ES5) ok 682 Linter context.getScope() should return 'switch' scope on SwitchStatement in functions (ES2015) ok 683 Linter context.getScope() should return 'function' scope on SwitchCase in functions (ES5) ok 684 Linter context.getScope() should return 'switch' scope on SwitchCase in functions (ES2015) ok 685 Linter context.getScope() should return 'catch' scope on CatchClause in functions (ES5) ok 686 Linter context.getScope() should return 'catch' scope on CatchClause in functions (ES2015) ok 687 Linter context.getScope() should return 'catch' scope on the block of CatchClause in functions (ES5) ok 688 Linter context.getScope() should return 'block' scope on the block of CatchClause in functions (ES2015) ok 689 Linter context.getScope() should return 'function' scope on ForStatement in functions (ES5) ok 690 Linter context.getScope() should return 'for' scope on ForStatement in functions (ES2015) ok 691 Linter context.getScope() should return 'function' scope on the block body of ForStatement in functions (ES5) ok 692 Linter context.getScope() should return 'block' scope on the block body of ForStatement in functions (ES2015) ok 693 Linter context.getScope() should return 'function' scope on ForInStatement in functions (ES5) ok 694 Linter context.getScope() should return 'for' scope on ForInStatement in functions (ES2015) ok 695 Linter context.getScope() should return 'function' scope on the block body of ForInStatement in functions (ES5) ok 696 Linter context.getScope() should return 'block' scope on the block body of ForInStatement in functions (ES2015) ok 697 Linter context.getScope() should return 'for' scope on ForOfStatement in functions (ES2015) ok 698 Linter context.getScope() should return 'block' scope on the block body of ForOfStatement in functions (ES2015) ok 699 Linter context.getScope() should shadow the same name variable by the iteration variable. ok 700 Linter Variables and references Scopethrough should contain references of undefined variables ok 701 Linter Variables and references Scopevariables should contain global variables ok 702 Linter Variables and references Scopeset should contain global variables ok 703 Linter Variables and references Variablesreferences should contain their references ok 704 Linter Variables and references Referenceresolved should be their variable ok 705 Linter context.getDeclaredVariables(node) VariableDeclaration ok 706 Linter context.getDeclaredVariables(node) VariableDeclaration (on for-in/of loop) ok 707 Linter context.getDeclaredVariables(node) VariableDeclarator ok 708 Linter context.getDeclaredVariables(node) FunctionDeclaration ok 709 Linter context.getDeclaredVariables(node) FunctionExpression ok 710 Linter context.getDeclaredVariables(node) ArrowFunctionExpression ok 711 Linter context.getDeclaredVariables(node) ClassDeclaration ok 712 Linter context.getDeclaredVariables(node) ClassExpression ok 713 Linter context.getDeclaredVariables(node) CatchClause ok 714 Linter context.getDeclaredVariables(node) ImportDeclaration ok 715 Linter context.getDeclaredVariables(node) ImportSpecifier ok 716 Linter context.getDeclaredVariables(node) ImportDefaultSpecifier ok 717 Linter context.getDeclaredVariables(node) ImportNamespaceSpecifier ok 718 Linter mutability rules with no changes, same rules are loaded ok 719 Linter mutability rules loading rule in one doesnt change the other ok 720 Linter processors preprocessors should receive text and filename. ok 721 Linter processors preprocessors should apply a preprocessor to the code, and lint each code sample separately ok 722 Linter processors preprocessors should apply a preprocessor to the code even if the preprocessor returned code block objects. ok 723 Linter processors preprocessors should receive text even if a SourceCode object was given. ok 724 Linter processors preprocessors should receive text even if a SourceCode object was given (with BOM). ok 725 Linter processors postprocessors should receive result and filename. ok 726 Linter processors postprocessors should apply a postprocessor to the reported messages ok 727 Linter processors postprocessors should use postprocessed problem ranges when applying autofixes ok 728 Linter verifyAndFix Fixes the code ok 729 Linter verifyAndFix does not require a third argument ok 730 Linter verifyAndFix does not apply autofixes when fix argument is `false` ok 731 Linter verifyAndFix stops fixing after 10 passes ok 732 Linter verifyAndFix should throw an error if fix is passed but meta has no `fixable` property ok 733 Linter verifyAndFix should not throw an error if fix is passed and there is no metadata ok 734 Linter Edge cases should properly parse import statements when sourceType is module ok 735 Linter Edge cases should properly parse import all statements when sourceType is module ok 736 Linter Edge cases should properly parse default export statements when sourceType is module ok 737 Linter Edge cases should report an error when invalid parserOptions found ok 738 Linter Edge cases should not crash when invalid parentheses syntax is encountered ok 739 Linter Edge cases should not crash when let is used inside of switch case ok 740 Linter Edge cases should not crash when parsing destructured assignment ok 741 Linter Edge cases should report syntax error when a keyword exists in object property shorthand ok 742 Linter Edge cases should not rewrite env setting in core (https://github.com/eslint/eslint/issues/4814) ok 743 Linter Custom parser should have file path passed to it ok 744 Linter Custom parser should not report an error when JSX code contains a spread operator and JSX is enabled ok 745 Linter Custom parser should return an error when the custom parser can't be found ok 746 Linter Custom parser should not throw or report errors when the custom parser returns unrecognized operators (https://github.com/eslint/eslint/issues/10475) ok 747 Linter Custom parser should not throw or report errors when the custom parser returns nested unrecognized operators (https://github.com/eslint/eslint/issues/10560) ok 748 Linter Custom parser should strip leading line: prefix from parser error ok 749 Linter Custom parser should not modify a parser error message without a leading line: prefix ok 750 Linter Custom parser should not pass any default parserOptions to the parser ok 751 Linter Custom parser if a parser provides 'visitorKeys' Traverser should use the visitorKeys (so 'types' includes 'Decorator') ok 752 Linter Custom parser if a parser provides 'visitorKeys' eslint-scope should use the visitorKeys (so 'childVisitorKeys.ClassDeclaration' includes 'experimentalDecorators') ok 753 Linter Custom parser if a parser provides 'visitorKeys' should use the same visitorKeys if the source code object is reused ok 754 Linter Custom parser if a parser provides 'scope' should use the scope (so the global scope has the reference of '@foo') ok 755 Linter Custom parser if a parser provides 'scope' should use the same scope if the source code object is reused ok 756 NodeEventGenerator should implement EventGenerator interface should have `emitter` property. ok 757 NodeEventGenerator should implement EventGenerator interface should have `enterNode` property. ok 758 NodeEventGenerator should implement EventGenerator interface should have `leaveNode` property. ok 759 NodeEventGenerator entering a single AST node should generate events for entering AST node. ok 760 NodeEventGenerator entering a single AST node should generate events for exitting AST node. ok 761 NodeEventGenerator entering a single AST node should generate events for AST queries ok 762 NodeEventGenerator traversing the entire AST Program; Program:exit; ExpressionStatement; ExpressionStatement:exit; BinaryExpression; BinaryExpression:exit; Identifier; Identifier:exit ok 763 NodeEventGenerator traversing the entire AST BinaryExpression > Identifier; BinaryExpression; BinaryExpression Literal:exit; BinaryExpression > Identifier:exit; BinaryExpression:exit ok 764 NodeEventGenerator traversing the entire AST BinaryExpression > *[name='foo'] ok 765 NodeEventGenerator traversing the entire AST * ok 766 NodeEventGenerator traversing the entire AST *:not(ExpressionStatement) ok 767 NodeEventGenerator traversing the entire AST CallExpression[callee.name='foo'] ok 768 NodeEventGenerator traversing the entire AST CallExpression[callee.name='bar'] ok 769 NodeEventGenerator traversing the entire AST :not(*) ok 770 NodeEventGenerator traversing the entire AST :matches(Identifier[name='foo'], Identifier[name='bar'], Identifier[name='baz']) ok 771 NodeEventGenerator traversing the entire AST Identifier, Literal[value=5] ok 772 NodeEventGenerator traversing the entire AST Identifier + Literal ok 773 NodeEventGenerator traversing the entire AST Identifier + Literal; Identifier ~ Literal ok 774 NodeEventGenerator traversing the entire AST :expression; :statement ok 775 NodeEventGenerator traversing the entire AST *; :not(*); Identifier; ExpressionStatement > *; ExpressionStatement > Identifier; ExpressionStatement > [name='foo']; Identifier, ReturnStatement; FooStatement; [name = 'foo']; [name='foo']; [name ='foo']; Identifier[name='foo']; [name='foo'][name.length=3]; :not(Program, ExpressionStatement); :not(Program, Identifier) > [name.length=3] ok 776 NodeEventGenerator traversing the entire AST CallExpression, [name='bar'] ok 777 NodeEventGenerator traversing the entire AST [name.length=3]:exit # TODO: not ok 778 NodeEventGenerator parsing an invalid selector throws a useful error The input did not match the regular expression /Syntax error in selector "Foo >" at position 5: Expected " ", "!", .*/u. Input: 'SyntaxError: Expected " ", "!", "#", "*", ".", ":", ":first-child", ":has(", ":last-child", ":matches(", ":not(", ":nth-child(", ":nth-last-child(", "[", or [^ [\\],():#!=><~+.] but end of input found.' AssertionError [ERR_ASSERTION]: The input did not match the regular expression /Syntax error in selector "Foo >" at position 5: Expected " ", "!", .*/u. Input: 'SyntaxError: Expected " ", "!", "#", "*", ".", ":", ":first-child", ":has(", ":last-child", ":matches(", ":not(", ":nth-child(", ":nth-last-child(", "[", or [^ [\\],():#!=><~+.] but end of input found.' at Context. (tests/lib/linter/node-event-generator.js:316:20) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 779 camelcase valid firstName = "Nicholas" ok 780 camelcase valid FIRST_NAME = "Nicholas" ok 781 camelcase valid __myPrivateVariable = "Patrick" ok 782 camelcase valid myPrivateVariable_ = "Patrick" ok 783 camelcase valid function doSomething(){} ok 784 camelcase valid do_something() ok 785 camelcase valid new do_something ok 786 camelcase valid new do_something() ok 787 camelcase valid foo.do_something() ok 788 camelcase valid var foo = bar.baz_boom; ok 789 camelcase valid var foo = bar.baz_boom.something; ok 790 camelcase valid foo.boom_pow.qux = bar.baz_boom.something; ok 791 camelcase valid if (bar.baz_boom) {} ok 792 camelcase valid var obj = { key: foo.bar_baz }; ok 793 camelcase valid var arr = [foo.bar_baz]; ok 794 camelcase valid [foo.bar_baz] ok 795 camelcase valid var arr = [foo.bar_baz.qux]; ok 796 camelcase valid [foo.bar_baz.nesting] ok 797 camelcase valid if (foo.bar_baz === boom.bam_pow) { [foo.baz_boom] } ok 798 camelcase valid var o = {key: 1} ok 799 camelcase valid var o = {_leading: 1} ok 800 camelcase valid var o = {trailing_: 1} ok 801 camelcase valid var o = {bar_baz: 1} ok 802 camelcase valid var o = {_leading: 1} ok 803 camelcase valid var o = {trailing_: 1} ok 804 camelcase valid obj.a_b = 2; ok 805 camelcase valid obj._a = 2; ok 806 camelcase valid obj.a_ = 2; ok 807 camelcase valid obj._a = 2; ok 808 camelcase valid obj.a_ = 2; ok 809 camelcase valid var obj = {\u000a a_a: 1 \u000a};\u000a obj.a_b = 2; ok 810 camelcase valid obj.foo_bar = function(){}; ok 811 camelcase valid var { category_id } = query; ok 812 camelcase valid var { category_id: category_id } = query; # TODO: not ok 813 camelcase valid var { category_id = 1 } = query; Should have no errors but had 1: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have no errors but had 1: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] at testValidTemplate (lib/rule-tester/rule-tester.js:484:20) at Context. (lib/rule-tester/rule-tester.js:650:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 814 camelcase valid var { [{category_id} = query]: categoryId } = query; ok 815 camelcase valid var { category_id: category } = query; ok 816 camelcase valid var { _leading } = query; ok 817 camelcase valid var { trailing_ } = query; ok 818 camelcase valid import { camelCased } from "external module"; ok 819 camelcase valid import { _leading } from "external module"; ok 820 camelcase valid import { trailing_ } from "external module"; ok 821 camelcase valid import { no_camelcased as camelCased } from "external-module"; ok 822 camelcase valid import { no_camelcased as _leading } from "external-module"; ok 823 camelcase valid import { no_camelcased as trailing_ } from "external-module"; ok 824 camelcase valid import { no_camelcased as camelCased, anoterCamelCased } from "external-module"; ok 825 camelcase valid function foo({ no_camelcased: camelCased }) {}; ok 826 camelcase valid function foo({ no_camelcased: _leading }) {}; ok 827 camelcase valid function foo({ no_camelcased: trailing_ }) {}; ok 828 camelcase valid function foo({ camelCased = 'default value' }) {}; ok 829 camelcase valid function foo({ _leading = 'default value' }) {}; ok 830 camelcase valid function foo({ trailing_ = 'default value' }) {}; ok 831 camelcase valid function foo({ camelCased }) {}; ok 832 camelcase valid function foo({ _leading }) {} ok 833 camelcase valid function foo({ trailing_ }) {} ok 834 camelcase valid ignored_foo = 0; ok 835 camelcase valid ignored_foo = 0; ignored_bar = 1; ok 836 camelcase valid user_id = 0; ok 837 camelcase valid __option_foo__ = 0; ok 838 camelcase valid foo = { [computedBar]: 0 }; ok 839 camelcase invalid first_name = "Nicholas" ok 840 camelcase invalid __private_first_name = "Patrick" ok 841 camelcase invalid function foo_bar(){} ok 842 camelcase invalid obj.foo_bar = function(){}; ok 843 camelcase invalid bar_baz.foo = function(){}; ok 844 camelcase invalid [foo_bar.baz] ok 845 camelcase invalid if (foo.bar_baz === boom.bam_pow) { [foo_bar.baz] } ok 846 camelcase invalid foo.bar_baz = boom.bam_pow ok 847 camelcase invalid var foo = { bar_baz: boom.bam_pow } ok 848 camelcase invalid var foo = { bar_baz: boom.bam_pow } ok 849 camelcase invalid foo.qux.boom_pow = { bar: boom.bam_pow } ok 850 camelcase invalid var o = {bar_baz: 1} ok 851 camelcase invalid obj.a_b = 2; ok 852 camelcase invalid var { category_id: category_alias } = query; ok 853 camelcase invalid var { category_id: category_alias } = query; ok 854 camelcase invalid var { [category_id]: categoryId } = query; ok 855 camelcase invalid var { [category_id]: categoryId } = query; ok 856 camelcase invalid var { category_id: categoryId, ...other_props } = query; ok 857 camelcase invalid var { category_id } = query; ok 858 camelcase invalid var { category_id: category_id } = query; # TODO: not ok 859 camelcase invalid var { category_id = 1 } = query; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'category_id' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 18 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 860 camelcase invalid import no_camelcased from "external-module"; ok 861 camelcase invalid import * as no_camelcased from "external-module"; ok 862 camelcase invalid import { no_camelcased } from "external-module"; ok 863 camelcase invalid import { no_camelcased as no_camel_cased } from "external module"; ok 864 camelcase invalid import { camelCased as no_camel_cased } from "external module"; ok 865 camelcase invalid import { camelCased, no_camelcased } from "external-module"; ok 866 camelcase invalid import { no_camelcased as camelCased, another_no_camelcased } from "external-module"; ok 867 camelcase invalid import camelCased, { no_camelcased } from "external-module"; ok 868 camelcase invalid import no_camelcased, { another_no_camelcased as camelCased } from "external-module"; ok 869 camelcase invalid function foo({ no_camelcased }) {}; # TODO: not ok 870 camelcase invalid function foo({ no_camelcased = 'default value' }) {}; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 29 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 871 camelcase invalid const no_camelcased = 0; function foo({ camelcased_value = no_camelcased}) {} Should have 2 errors but had 3: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 20 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 } ] AssertionError [ERR_ASSERTION]: Should have 2 errors but had 3: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 20 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'camelcased_value' is not in camel case.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 57 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 872 camelcase invalid const { bar: no_camelcased } = foo; ok 873 camelcase invalid function foo({ value_1: my_default }) {} ok 874 camelcase invalid function foo({ isCamelcased: no_camelcased }) {}; ok 875 camelcase invalid var { foo: bar_baz = 1 } = quz; # TODO: not ok 876 camelcase invalid const { no_camelcased = false } = bar; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 877 camelcase invalid const { no_camelcased = foo_bar } = bar; Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 }, { ruleId: 'camelcase', severity: 1, message: "Identifier 'no_camelcased' is not in camel case.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notCamelCase', endLine: 1, endColumn: 22 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 878 camelcase invalid not_ignored_foo = 0; ok 879 camelcase invalid not_ignored_foo = 0; ok 880 camelcase invalid foo = { [computed_bar]: 0 }; ok 881 id-length valid var xyz; ok 882 id-length valid var xy = 1; ok 883 id-length valid function xyz() {}; ok 884 id-length valid function xyz(abc, de) {}; ok 885 id-length valid var obj = { abc: 1, de: 2 }; ok 886 id-length valid var obj = { 'a': 1, bc: 2 }; ok 887 id-length valid var obj = {}; obj['a'] = 2; ok 888 id-length valid abc = d; ok 889 id-length valid try { blah(); } catch (err) { /* pass */ } ok 890 id-length valid var handler = function ($e) {}; ok 891 id-length valid var _a = 2 ok 892 id-length valid var _ad$$ = new $; ok 893 id-length valid var xyz = new ΣΣ(); ok 894 id-length valid unrelatedExpressionThatNeedsToBeIgnored(); ok 895 id-length valid var obj = { 'a': 1, bc: 2 }; obj.tk = obj.a; ok 896 id-length valid var query = location.query.q || ''; ok 897 id-length valid var query = location.query.q ? location.query.q : '' ok 898 id-length valid var x = Foo(42) ok 899 id-length valid var x = Foo(42) ok 900 id-length valid foo.$x = Foo(42) ok 901 id-length valid var lalala = Foo(42) ok 902 id-length valid for (var q, h=0; h < 10; h++) { console.log(h); q++; } ok 903 id-length valid (num) => { num * num }; ok 904 id-length valid function foo(num = 0) { } ok 905 id-length valid class MyClass { } ok 906 id-length valid class Foo { method() {} } ok 907 id-length valid function foo(...args) { } ok 908 id-length valid var { prop } = {}; ok 909 id-length valid var { prop: a } = {}; ok 910 id-length valid var { prop: [x] } = {}; ok 911 id-length valid import something from 'y'; ok 912 id-length valid export var num = 0; ok 913 id-length valid ({ prop: obj.x.y.something } = {}); ok 914 id-length valid ({ prop: obj.longName } = {}); ok 915 id-length valid var obj = { a: 1, bc: 2 }; ok 916 id-length valid var obj = {}; obj.a = 1; obj.bc = 2; ok 917 id-length valid ({ a: obj.x.y.z } = {}); ok 918 id-length valid ({ prop: obj.x } = {}); ok 919 id-length valid var obj = { aaaaa: 1 }; ok 920 id-length valid var obj = {}; obj.aaaaa = 1; ok 921 id-length valid ({ a: obj.x.y.z } = {}); ok 922 id-length valid ({ prop: obj.xxxxx } = {}); ok 923 id-length invalid var x = 1; ok 924 id-length invalid var x; ok 925 id-length invalid obj.e = document.body; ok 926 id-length invalid function x() {}; ok 927 id-length invalid function xyz(a) {}; ok 928 id-length invalid var obj = { a: 1, bc: 2 }; ok 929 id-length invalid try { blah(); } catch (e) { /* pass */ } ok 930 id-length invalid var handler = function (e) {}; ok 931 id-length invalid for (var i=0; i < 10; i++) { console.log(i); } ok 932 id-length invalid var j=0; while (j > -10) { console.log(--j); } ok 933 id-length invalid var _$xt_$ = Foo(42) ok 934 id-length invalid var _$x$_t$ = Foo(42) ok 935 id-length invalid (a) => { a * a }; ok 936 id-length invalid function foo(x = 0) { } ok 937 id-length invalid class x { } ok 938 id-length invalid class Foo { x() {} } ok 939 id-length invalid function foo(...x) { } # TODO: not ok 940 id-length invalid var { x} = {}; Should have 2 errors but had 1: [ { ruleId: 'id-length', severity: 1, message: "Identifier name 'x' is too short (< 2).", line: 1, column: 7, nodeType: 'Identifier', messageId: 'tooShort', endLine: 1, endColumn: 8 } ] AssertionError [ERR_ASSERTION]: Should have 2 errors but had 1: [ { ruleId: 'id-length', severity: 1, message: "Identifier name 'x' is too short (< 2).", line: 1, column: 7, nodeType: 'Identifier', messageId: 'tooShort', endLine: 1, endColumn: 8 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 941 id-length invalid var { x: a} = {}; ok 942 id-length invalid var { a: [x]} = {}; ok 943 id-length invalid import x from 'y'; ok 944 id-length invalid export var x = 0; ok 945 id-length invalid ({ a: obj.x.y.z } = {}); ok 946 id-length invalid ({ prop: obj.x } = {}); ok 947 id-length invalid var x = 1; ok 948 id-match valid __foo = "Matthieu" ok 949 id-match valid firstname = "Matthieu" ok 950 id-match valid first_name = "Matthieu" ok 951 id-match valid firstname = "Matthieu" ok 952 id-match valid last_Name = "Larcher" ok 953 id-match valid param = "none" ok 954 id-match valid function noUnder(){} ok 955 id-match valid no_under() ok 956 id-match valid foo.no_under2() ok 957 id-match valid var foo = bar.no_under3; ok 958 id-match valid var foo = bar.no_under4.something; ok 959 id-match valid foo.no_under5.qux = bar.no_under6.something; ok 960 id-match valid if (bar.no_under7) {} ok 961 id-match valid var obj = { key: foo.no_under8 }; ok 962 id-match valid var arr = [foo.no_under9]; ok 963 id-match valid [foo.no_under10] ok 964 id-match valid var arr = [foo.no_under11.qux]; ok 965 id-match valid [foo.no_under12.nesting] ok 966 id-match valid if (foo.no_under13 === boom.no_under14) { [foo.no_under15] } ok 967 id-match valid var myArray = new Array(); var myDate = new Date(); ok 968 id-match valid var x = obj._foo; ok 969 id-match valid var obj = {key: no_under} ok 970 id-match valid var {key_no_under: key} = {} ok 971 id-match valid var { category_id } = query; ok 972 id-match valid var { category_id: category_id } = query; # TODO: not ok 973 id-match valid var { category_id = 1 } = query; Should have no errors but had 1: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have no errors but had 1: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] at testValidTemplate (lib/rule-tester/rule-tester.js:484:20) at Context. (lib/rule-tester/rule-tester.js:650:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 974 id-match valid var o = {key: 1} ok 975 id-match valid var o = {no_under16: 1} ok 976 id-match valid obj.no_under17 = 2; ok 977 id-match valid var obj = {\u000a no_under18: 1 \u000a};\u000a obj.no_under19 = 2; ok 978 id-match valid obj.no_under20 = function(){}; ok 979 id-match valid var x = obj._foo2; ok 980 id-match invalid var __foo = "Matthieu" ok 981 id-match invalid first_name = "Matthieu" ok 982 id-match invalid first_name = "Matthieu" ok 983 id-match invalid Last_Name = "Larcher" ok 984 id-match invalid var obj = {key: no_under} ok 985 id-match invalid function no_under21(){} ok 986 id-match invalid obj.no_under22 = function(){}; ok 987 id-match invalid no_under23.foo = function(){}; ok 988 id-match invalid [no_under24.baz] ok 989 id-match invalid if (foo.bar_baz === boom.bam_pow) { [no_under25.baz] } ok 990 id-match invalid foo.no_under26 = boom.bam_pow ok 991 id-match invalid var foo = { no_under27: boom.bam_pow } ok 992 id-match invalid foo.qux.no_under28 = { bar: boom.bam_pow } ok 993 id-match invalid var o = {no_under29: 1} ok 994 id-match invalid obj.no_under30 = 2; ok 995 id-match invalid var { category_id: category_alias } = query; ok 996 id-match invalid var { category_id: category_alias } = query; ok 997 id-match invalid var { category_id: categoryId, ...other_props } = query; # TODO: not ok 998 id-match invalid var { category_id } = query; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 999 id-match invalid var { category_id = 1 } = query; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'category_id' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 18 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 1000 id-match invalid import no_camelcased from "external-module"; ok 1001 id-match invalid import * as no_camelcased from "external-module"; ok 1002 id-match invalid import { no_camelcased } from "external-module"; ok 1003 id-match invalid import { no_camelcased as no_camel_cased } from "external module"; ok 1004 id-match invalid import { camelCased as no_camel_cased } from "external module"; ok 1005 id-match invalid import { camelCased, no_camelcased } from "external-module"; ok 1006 id-match invalid import { no_camelcased as camelCased, another_no_camelcased } from "external-module"; ok 1007 id-match invalid import camelCased, { no_camelcased } from "external-module"; ok 1008 id-match invalid import no_camelcased, { another_no_camelcased as camelCased } from "external-module"; # TODO: not ok 1009 id-match invalid function foo({ no_camelcased }) {}; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 1010 id-match invalid function foo({ no_camelcased = 'default value' }) {}; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 16, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 29 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # TODO: not ok 1011 id-match invalid const no_camelcased = 0; function foo({ camelcased_value = no_camelcased }) {} Should have 2 errors but had 3: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 20 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 } ] AssertionError [ERR_ASSERTION]: Should have 2 errors but had 3: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 7, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 20 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'camelcased_value' does not match the pattern '^[^_]+$'.", line: 1, column: 41, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 57 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 1012 id-match invalid const { bar: no_camelcased } = foo; ok 1013 id-match invalid function foo({ value_1: my_default }) {} ok 1014 id-match invalid function foo({ isCamelcased: no_camelcased }) {}; ok 1015 id-match invalid var { foo: bar_baz = 1 } = quz; # TODO: not ok 1016 id-match invalid const { no_camelcased = false } = bar; Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 } ] AssertionError [ERR_ASSERTION]: Should have 1 error but had 2: [ { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 }, { ruleId: 'id-match', severity: 1, message: "Identifier 'no_camelcased' does not match the pattern '^[^_]+$'.", line: 1, column: 9, nodeType: 'Identifier', messageId: 'notMatch', endLine: 1, endColumn: 22 } ] at testInvalidTemplate (lib/rule-tester/rule-tester.js:531:24) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 1017 require-await valid async function foo() { await doSomething() } ok 1018 require-await valid (async function() { await doSomething() }) ok 1019 require-await valid async () => { await doSomething() } ok 1020 require-await valid async () => await doSomething() ok 1021 require-await valid ({ async foo() { await doSomething() } }) ok 1022 require-await valid class A { async foo() { await doSomething() } } ok 1023 require-await valid (class { async foo() { await doSomething() } }) # TODO: not ok 1024 require-await valid async function foo() { await async () => { await doSomething() } } A fatal parsing error occurred: Parsing error: Unexpected token => AssertionError [ERR_ASSERTION]: A fatal parsing error occurred: Parsing error: Unexpected token => at runRuleForItem (lib/rule-tester/rule-tester.js:439:17) at testValidTemplate (lib/rule-tester/rule-tester.js:481:28) at Context. (lib/rule-tester/rule-tester.js:650:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) ok 1025 require-await valid async function foo() {} ok 1026 require-await valid async () => {} ok 1027 require-await valid function foo() { doSomething() } ok 1028 require-await valid async function foo() { for await (x of xs); } ok 1029 require-await invalid async function foo() { doSomething() } ok 1030 require-await invalid (async function() { doSomething() }) ok 1031 require-await invalid async () => { doSomething() } ok 1032 require-await invalid async () => doSomething() ok 1033 require-await invalid ({ async foo() { doSomething() } }) ok 1034 require-await invalid class A { async foo() { doSomething() } } ok 1035 require-await invalid (class { async foo() { doSomething() } }) ok 1036 require-await invalid (class { async ''() { doSomething() } }) ok 1037 require-await invalid async function foo() { async () => { await doSomething() } } # TODO: not ok 1038 require-await invalid async function foo() { await async () => { doSomething() } } A fatal parsing error occurred: Parsing error: Unexpected token => AssertionError [ERR_ASSERTION]: A fatal parsing error occurred: Parsing error: Unexpected token => at runRuleForItem (lib/rule-tester/rule-tester.js:439:17) at testInvalidTemplate (lib/rule-tester/rule-tester.js:523:28) at Context. (lib/rule-tester/rule-tester.js:658:25) at callFn (/usr/share/nodejs/mocha/lib/runnable.js:366:21) at Runnable.run (/usr/share/nodejs/mocha/lib/runnable.js:354:5) at Runner.runTest (/usr/share/nodejs/mocha/lib/runner.js:666:10) at /usr/share/nodejs/mocha/lib/runner.js:789:12 at next (/usr/share/nodejs/mocha/lib/runner.js:581:14) at /usr/share/nodejs/mocha/lib/runner.js:591:7 at next (/usr/share/nodejs/mocha/lib/runner.js:474:14) at Immediate._onImmediate (/usr/share/nodejs/mocha/lib/runner.js:559:5) at process.processImmediate (node:internal/timers:471:21) # tests 1038 # pass 983 # fail 55 1..1038 # skipped 55 # skip-patterns 55 make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' create-stamp debian/debhelper-build-stamp dh_prep dh_auto_install --destdir=debian/eslint/ debian/rules override_dh_install make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_install -X.eslintrc.yml make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' debian/rules override_dh_installdocs make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_installdocs --all -- README.html README.txt make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_installchangelogs -- CHANGELOG.html CHANGELOG.txt make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_installman dh_perl dh_link dh_strip_nondeterminism dh_compress dh_fixperms debian/rules execute_after_dh_fixperms make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' chmod --recursive a-x,a+X -- debian/*/usr/share/nodejs chmod --recursive a+x -- debian/*/usr/share/nodejs/eslint/bin/* make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_missing dh_installdeb debian/rules override_dh_gencontrol make[1]: Entering directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_gencontrol -- -V"types:Version=6.1.9~6.4.0~dfsg+~6.1.9-7" \ -V"config:Version=5.0.1~6.4.0~dfsg+~6.1.9-7" make[1]: Leaving directory '/build/eslint-6.4.0~dfsg+~6.1.9' dh_md5sums dh_builddeb dpkg-deb: building package 'eslint' in '../eslint_6.4.0~dfsg+~6.1.9-7_all.deb'. dpkg-genbuildinfo --build=binary -O../eslint_6.4.0~dfsg+~6.1.9-7_i386.buildinfo dpkg-genchanges --build=binary -O../eslint_6.4.0~dfsg+~6.1.9-7_i386.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: user script /srv/workspace/pbuilder/90582/tmp/hooks/B01_cleanup starting I: user script /srv/workspace/pbuilder/90582/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/90582 and its subdirectories I: Current time: Thu May 16 10:01:11 +14 2024 I: pbuilder-time-stamp: 1715803271