Compare commits
21 Commits
Author | SHA1 | Date | |
---|---|---|---|
7ed84a28ca | |||
40515a860d | |||
1e6410e432 | |||
f8e7ee18d9 | |||
|
9b2c55a531 | ||
|
6ed55fd9b3 | ||
b7700fd5fa | |||
|
800b787dcf | ||
|
00ae70e9dd | ||
|
b40011c6f7 | ||
d747eda300 | |||
c0e2e7a918 | |||
1a8758d592 | |||
bbb21eb173 | |||
d750710810 | |||
06fac2b063 | |||
844c43bc18 | |||
8fbfcfddc1 | |||
0239cceeda | |||
318cb4ebd4 | |||
b692b3f7df |
18
.eslintrc
Normal file
18
.eslintrc
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"env": { "shared-node-browser":true },
|
||||
"globals": {},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 3,
|
||||
},
|
||||
"plugins": [ "html", "json" ],
|
||||
"extends": "eslint:recommended",
|
||||
"rules": {
|
||||
"comma-style": [ 2, "last" ],
|
||||
"comma-dangle": [ 2, "never" ],
|
||||
"curly": 0,
|
||||
"no-bitwise": 0,
|
||||
"no-console": 0,
|
||||
"no-trailing-spaces": 2,
|
||||
"semi": [ 2, "always" ]
|
||||
}
|
||||
}
|
12
.flowconfig
12
.flowconfig
@ -9,9 +9,21 @@
|
||||
.*/misc/.*
|
||||
.*/perf/.*
|
||||
|
||||
.*/demo/browser.js
|
||||
.*/shim.js
|
||||
|
||||
[include]
|
||||
adler32.flow.js
|
||||
.*/bin/.*.njs
|
||||
.*/demo/browser.flow.js
|
||||
|
||||
[libs]
|
||||
bits/10_types.js
|
||||
misc/flow.js
|
||||
misc/flowdeps.js
|
||||
|
||||
[options]
|
||||
module.file_ext=.js
|
||||
module.file_ext=.njs
|
||||
module.ignore_non_literal_requires=true
|
||||
suppress_comment= \\(.\\|\n\\)*\\$FlowIgnore
|
||||
|
92
.github/workflows/node-4+.yml
vendored
Normal file
92
.github/workflows/node-4+.yml
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
name: 'Tests: node.js'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
latest: ${{ steps.set-matrix.outputs.requireds }}
|
||||
steps:
|
||||
- uses: ljharb/actions/node/matrix@main
|
||||
id: set-matrix
|
||||
with:
|
||||
versionsAsRoot: true
|
||||
type: 'majors'
|
||||
preset: '>=4'
|
||||
|
||||
latest:
|
||||
needs: [matrix]
|
||||
name: 'latest majors'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: ${{ fromJson(needs.matrix.outputs.latest) }}
|
||||
include:
|
||||
- node-version: '14.'
|
||||
env:
|
||||
TZ: America/New_York
|
||||
- node-version: '13.'
|
||||
env:
|
||||
TZ: Europe/London
|
||||
- node-version: '12.'
|
||||
env:
|
||||
TZ: Asia/Seoul
|
||||
- node-version: '11.'
|
||||
env:
|
||||
TZ: America/Los_Angeles
|
||||
FMTS: misc
|
||||
- node-version: '10.'
|
||||
env:
|
||||
TZ: Europe/Berlin
|
||||
FMTS: misc
|
||||
- node-version: '9.'
|
||||
env:
|
||||
TZ: Asia/Kolkata
|
||||
FMTS: misc
|
||||
- node-version: '8.'
|
||||
env:
|
||||
TZ: Asia/Shanghai
|
||||
FMTS: misc
|
||||
- node-version: '7.'
|
||||
env:
|
||||
TZ: America/Cancun
|
||||
FMTS: misc
|
||||
- node-version: '6.'
|
||||
env:
|
||||
TZ: Asia/Seoul
|
||||
FMTS: misc
|
||||
- node-version: '5.'
|
||||
env:
|
||||
TZ: America/Anchorage
|
||||
FMTS: misc
|
||||
- node-version: '4.'
|
||||
env:
|
||||
TZ: America/Barbados
|
||||
FMTS: misc
|
||||
- node-version: '4.4.7' # see GH issue #1150
|
||||
env:
|
||||
TZ: Asia/Tokyo
|
||||
FMTS: misc
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
- run: npm run test
|
||||
#- run: 'cd packages/ssf; npm install; npm run tests-only; cd -'
|
||||
|
||||
node:
|
||||
name: 'node 4+'
|
||||
needs: [latest]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: 'echo tests completed'
|
45
.github/workflows/node-iojs.yml
vendored
Normal file
45
.github/workflows/node-iojs.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
name: 'Tests: node.js (io.js)'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
latest: ${{ steps.set-matrix.outputs.requireds }}
|
||||
steps:
|
||||
- uses: ljharb/actions/node/matrix@main
|
||||
id: set-matrix
|
||||
with:
|
||||
type: 'majors'
|
||||
preset: 'iojs'
|
||||
|
||||
latest:
|
||||
needs: [matrix]
|
||||
name: 'latest majors'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{ fromJson(needs.matrix.outputs.latest) }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
skip-ls-check: true
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
- run: npm run test
|
||||
#- run: 'cd packages/ssf; npm run tests-only; cd -'
|
||||
|
||||
node:
|
||||
name: 'io.js'
|
||||
needs: [latest]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: 'echo tests completed'
|
32
.github/workflows/node-pretest.yml
vendored
Normal file
32
.github/workflows/node-pretest.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
name: 'Tests: pretest/posttest'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
pretest:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install lts/* && npm install'
|
||||
with:
|
||||
node-version: 'lts/*'
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
#- run: npm run pretest
|
||||
|
||||
# posttest:
|
||||
# runs-on: ubuntu-latest
|
||||
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ljharb/actions/node/install@main
|
||||
# name: 'nvm install lts/* && npm install'
|
||||
# with:
|
||||
# node-version: 'lts/*'
|
||||
# - run: make init
|
||||
# - run: 'cd test_files; make all; cd -'
|
||||
# - run: npm run posttest
|
88
.github/workflows/node-zero.yml
vendored
Normal file
88
.github/workflows/node-zero.yml
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
name: 'Tests: node.js (0.x)'
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
stable: ${{ steps.set-matrix.outputs.requireds }}
|
||||
# unstable: ${{ steps.set-matrix.outputs.optionals }}
|
||||
steps:
|
||||
- uses: ljharb/actions/node/matrix@main
|
||||
id: set-matrix
|
||||
with:
|
||||
versionsAsRoot: true
|
||||
preset: '0.x'
|
||||
|
||||
stable:
|
||||
needs: [matrix]
|
||||
name: 'stable minors'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: ${{ fromJson(needs.matrix.outputs.stable) }}
|
||||
include:
|
||||
- node-version: '0.12.'
|
||||
env:
|
||||
TZ: America/Cayman
|
||||
FMTS: misc
|
||||
- node-version: '0.10.'
|
||||
env:
|
||||
TZ: Pacific/Honolulu
|
||||
FMTS: misc
|
||||
#- node-version: '0.8.'
|
||||
# env:
|
||||
# TZ: America/Mexico_City
|
||||
# FMTS: misc
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ljharb/actions/node/install@main
|
||||
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }}
|
||||
skip-ls-check: true
|
||||
- run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
- run: sudo chmod a+x /usr/bin/rooster
|
||||
#- run: make init
|
||||
#- run: 'cd test_files; make all; cd -'
|
||||
- run: npm run test
|
||||
#- run: 'cd packages/ssf; npm run tests-only; cd -'
|
||||
|
||||
# unstable:
|
||||
# needs: [matrix, stable]
|
||||
# name: 'unstable minors'
|
||||
# continue-on-error: true
|
||||
# if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }}
|
||||
# runs-on: ubuntu-latest
|
||||
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# node-version: ${{ fromJson(needs.matrix.outputs.unstable) }}
|
||||
#
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ljharb/actions/node/install@main
|
||||
# name: 'nvm install ${{ matrix.node-version }} && npm install'
|
||||
# with:
|
||||
# node-version: ${{ matrix.node-version }}
|
||||
# cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }}
|
||||
# skip-ls-check: true
|
||||
# - run: sudo curl -Lo /usr/bin/rooster https://github.com/SheetJS/rooster/releases/download/v0.2.0/rooster-v0.2.0-linux-amd64
|
||||
# - run: sudo chmod a+x /usr/bin/rooster
|
||||
# - run: make init
|
||||
# - run: 'cd test_files; make all; cd -'
|
||||
# - run: npm run tests-only
|
||||
|
||||
node:
|
||||
name: 'node 0.x'
|
||||
# needs: [stable, unstable]
|
||||
needs: [stable]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: 'echo tests completed'
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,6 +1,7 @@
|
||||
node_modules
|
||||
*.tgz
|
||||
test_files/*.py
|
||||
test_files/*.js
|
||||
test_files/baseline*
|
||||
misc/coverage.html
|
||||
misc/*/
|
||||
ctest/sauce*
|
||||
|
@ -2,4 +2,3 @@
|
||||
"bitwise": false,
|
||||
"curly": false
|
||||
}
|
||||
|
||||
|
11
.spelling
Normal file
11
.spelling
Normal file
@ -0,0 +1,11 @@
|
||||
# adler32.js (C) 2014-present SheetJS -- http://sheetjs.com
|
||||
SheetJS
|
||||
31-bit
|
||||
32-bit
|
||||
ADLER-32
|
||||
UCS-2
|
||||
UTF-8
|
||||
adler32
|
||||
checksum
|
||||
nodejs
|
||||
npm
|
12
.travis.yml
12
.travis.yml
@ -1,13 +1,17 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "5.0"
|
||||
- "4.2"
|
||||
- "9"
|
||||
- "8"
|
||||
- "7"
|
||||
- "6"
|
||||
- "5"
|
||||
- "4"
|
||||
- "0.12"
|
||||
- "0.10"
|
||||
- "0.8"
|
||||
before_install:
|
||||
- "npm install -g npm@next"
|
||||
- "npm install -g mocha"
|
||||
- "npm install -g npm@4.3.0"
|
||||
- "npm install -g voc"
|
||||
- "npm install codepage"
|
||||
- "npm install blanket"
|
||||
- "npm install coveralls mocha-lcov-reporter"
|
||||
|
191
LICENSE
191
LICENSE
@ -1,4 +1,192 @@
|
||||
Copyright (C) 2014-present SheetJS
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright (C) 2014-present SheetJS LLC
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -11,4 +199,3 @@ Copyright (C) 2014-present SheetJS
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
|
119
Makefile
119
Makefile
@ -1,79 +1,114 @@
|
||||
LIB=adler32
|
||||
REQS=
|
||||
ADDONS=
|
||||
AUXTARGETS=
|
||||
AUXTARGETS=demo/browser.js
|
||||
CMDS=
|
||||
HTMLLINT=index.html
|
||||
|
||||
ULIB=$(shell echo $(LIB) | tr a-z A-Z)
|
||||
DEPS=$(sort $(wildcard bits/*.js))
|
||||
TARGET=$(LIB).js
|
||||
FLOWTARGET=$(LIB).flow.js
|
||||
FLOWTGTS=$(TARGET) $(AUXTARGETS)
|
||||
CLOSURE=/usr/local/lib/node_modules/google-closure-compiler/compiler.jar
|
||||
|
||||
## Main Targets
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGET) $(AUXTARGETS)
|
||||
all: $(TARGET) $(AUXTARGETS) ## Build library and auxiliary scripts
|
||||
|
||||
$(TARGET) $(AUXTARGETS): %.js : %.flow.js
|
||||
node -e 'process.stdout.write(require("fs").readFileSync("$<","utf8").replace(/^\s*\/\*:[^*]*\*\/\s*(\n)?/gm,"").replace(/\/\*:[^*]*\*\//gm,""))' > $@
|
||||
$(FLOWTGTS): %.js : %.flow.js
|
||||
node -e 'process.stdout.write(require("fs").readFileSync("$<","utf8").replace(/^[ \t]*\/\*[:#][^*]*\*\/\s*(\n)?/gm,"").replace(/\/\*[:#][^*]*\*\//gm,""))' > $@
|
||||
|
||||
$(LIB).flow.js: $(DEPS)
|
||||
$(FLOWTARGET): $(DEPS)
|
||||
cat $^ | tr -d '\15\32' > $@
|
||||
|
||||
bits/01_version.js: package.json
|
||||
echo "ADLER32.version = '"`grep version package.json | awk '{gsub(/[^0-9a-z\.-]/,"",$$2); print $$2}'`"';" > $@
|
||||
echo "$(ULIB).version = '"`grep version package.json | awk '{gsub(/[^0-9a-z\.-]/,"",$$2); print $$2}'`"';" > $@
|
||||
|
||||
.PHONY: clean
|
||||
clean: clean-baseline
|
||||
rm -f $(TARGET)
|
||||
clean: clean-baseline ## Remove targets and build artifacts
|
||||
rm -f $(TARGET) $(FLOWTARGET)
|
||||
|
||||
## Testing
|
||||
|
||||
.PHONY: test mocha
|
||||
test mocha: test.js $(TARGET) baseline
|
||||
mocha -R spec -t 20000
|
||||
test mocha: test.js $(TARGET) baseline ## Run test suite
|
||||
./node_modules/.bin/mocha -R spec -t 60000
|
||||
|
||||
.PHONY: ctest
|
||||
ctest:
|
||||
ctest: ## Build browser test (into ctest/ subdirectory)
|
||||
cat misc/*.js > ctest/fixtures.js
|
||||
cp -f test.js ctest/test.js
|
||||
cp -f shim.js ctest/shim.js
|
||||
cp -f $(TARGET) ctest/
|
||||
|
||||
.PHONY: ctestserv
|
||||
ctestserv: ## Start a test server on port 8000
|
||||
@cd ctest && python -mSimpleHTTPServer
|
||||
|
||||
.PHONY: baseline
|
||||
baseline: ## Build test baselines
|
||||
@bash ./misc/make_baseline.sh
|
||||
|
||||
.PHONY: clean-baseline
|
||||
clean-baseline: ## Remove test baselines
|
||||
@bash ./misc/make_baseline.sh clean
|
||||
|
||||
## Code Checking
|
||||
|
||||
.PHONY: fullint
|
||||
fullint: lint old-lint tslint flow mdlint ## Run all checks
|
||||
|
||||
.PHONY: lint
|
||||
lint: $(TARGET) $(AUXTARGETS)
|
||||
jshint --show-non-errors $(TARGET) $(AUXTARGETS)
|
||||
jshint --show-non-errors package.json
|
||||
jscs $(TARGET) $(AUXTARGETS)
|
||||
lint: $(TARGET) $(AUXTARGETS) ## Run eslint checks
|
||||
@eslint --ext .js,.njs,.json,.html,.htm $(TARGET) $(AUXTARGETS) $(CMDS) $(HTMLLINT) package.json
|
||||
if [ -e $(CLOSURE) ]; then java -jar $(CLOSURE) $(REQS) $(FLOWTARGET) --jscomp_warning=reportUnknownTypes >/dev/null; fi
|
||||
|
||||
.PHONY: old-lint
|
||||
old-lint: $(TARGET) $(AUXTARGETS) ## Run jshint and jscs checks
|
||||
@jshint --show-non-errors $(TARGET) $(AUXTARGETS)
|
||||
@jshint --show-non-errors $(CMDS)
|
||||
@jshint --show-non-errors package.json
|
||||
@jshint --show-non-errors --extract=always $(HTMLLINT)
|
||||
@jscs $(TARGET) $(AUXTARGETS)
|
||||
if [ -e $(CLOSURE) ]; then java -jar $(CLOSURE) $(REQS) $(FLOWTARGET) --jscomp_warning=reportUnknownTypes >/dev/null; fi
|
||||
|
||||
.PHONY: tslint
|
||||
tslint: $(TARGET) ## Run typescript checks
|
||||
#@npm install dtslint typescript
|
||||
#@npm run-script dtslint
|
||||
dtslint types
|
||||
|
||||
.PHONY: flow
|
||||
flow: lint
|
||||
flow check --all --show-all-errors
|
||||
flow: lint ## Run flow checker
|
||||
@flow check --all --show-all-errors
|
||||
|
||||
.PHONY: cov cov-spin
|
||||
cov: misc/coverage.html
|
||||
cov-spin:
|
||||
make cov & bash misc/spin.sh $$!
|
||||
|
||||
COVFMT=$(patsubst %,cov_%,$(FMT))
|
||||
.PHONY: $(COVFMT)
|
||||
$(COVFMT): cov_%:
|
||||
FMTS=$* make cov
|
||||
.PHONY: cov
|
||||
cov: misc/coverage.html ## Run coverage test
|
||||
|
||||
misc/coverage.html: $(TARGET) test.js
|
||||
mocha --require blanket -R html-cov -t 20000 > $@
|
||||
./node_modules/.bin/mocha --require blanket -R html-cov -t 30000 > $@
|
||||
|
||||
.PHONY: coveralls coveralls-spin
|
||||
coveralls:
|
||||
mocha --require blanket --reporter mocha-lcov-reporter -t 20000 | ./node_modules/coveralls/bin/coveralls.js
|
||||
.PHONY: coveralls
|
||||
coveralls: ## Coverage Test + Send to coveralls.io
|
||||
./node_modules/.bin/mocha --require blanket --reporter mocha-lcov-reporter -t 20000 | node ./node_modules/coveralls/bin/coveralls.js
|
||||
|
||||
coveralls-spin:
|
||||
make coveralls & bash misc/spin.sh $$!
|
||||
MDLINT=README.md
|
||||
.PHONY: mdlint
|
||||
mdlint: $(MDLINT) ## Check markdown documents
|
||||
alex $^
|
||||
mdspell -a -n -x -r --en-us $^
|
||||
|
||||
.PHONY: perf
|
||||
perf:
|
||||
bash perf/perf.sh
|
||||
perf: ## Run Performance Tests
|
||||
@bash perf/perf.sh
|
||||
|
||||
.PHONY: perf-all
|
||||
perf-all:
|
||||
bash misc/perf.sh
|
||||
|
||||
.PHONY: baseline clean-baseline
|
||||
baseline:
|
||||
./misc/make_baseline.sh
|
||||
.PHONY: help
|
||||
help:
|
||||
@grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST) | bash misc/help.sh
|
||||
|
||||
clean-baseline:
|
||||
rm -f test_files/*.*
|
||||
#* To show a spinner, append "-spin" to any target e.g. cov-spin
|
||||
%-spin:
|
||||
@make $* & bash misc/spin.sh $$!
|
||||
|
99
README.md
99
README.md
@ -1,39 +1,75 @@
|
||||
# adler32
|
||||
|
||||
Signed ADLER-32 algorithm implementation in JS (for the browser and nodejs).
|
||||
Emphasis on correctness and performance.
|
||||
Emphasis on correctness, performance, and IE6+ support.
|
||||
|
||||
## Installation
|
||||
|
||||
In [nodejs](https://www.npmjs.org/package/adler-32):
|
||||
With [npm](https://www.npmjs.org/package/adler-32):
|
||||
|
||||
npm install adler-32
|
||||
```bash
|
||||
$ npm install adler-32
|
||||
```
|
||||
|
||||
In the browser:
|
||||
|
||||
<script lang="javascript" src="adler32.js"></script>
|
||||
```html
|
||||
<script src="adler32.js"></script>
|
||||
```
|
||||
|
||||
The browser exposes a variable ADLER32
|
||||
The browser exposes a variable `ADLER32`.
|
||||
|
||||
When installed globally, npm installs a script `adler32` that computes the
|
||||
checksum for a specified file or standard input.
|
||||
|
||||
The script will manipulate `module.exports` if available . This is not always
|
||||
desirable. To prevent the behavior, define `DO_NOT_EXPORT_ADLER`.
|
||||
|
||||
## Usage
|
||||
|
||||
- `ADLER32.buf(byte array or buffer)` assumes the argument is a set of 8 bit
|
||||
unsigned integers (e.g. nodejs `Buffer` or simple array of ints)
|
||||
In all cases, the relevant function takes an argument representing data and an
|
||||
optional second argument representing the starting "seed" (for running hash).
|
||||
|
||||
- `ADLER32.bstr(binary string)` interprets the argument as a binary string where
|
||||
the `i`-th byte is `str.charCodeAt(i)`
|
||||
The return value is a signed 32-bit integer.
|
||||
|
||||
- `ADLER32.str(string)` interprets the argument as a standard JS string
|
||||
- `ADLER32.buf(byte array or buffer[, seed])` assumes the argument is a sequence
|
||||
of 8-bit unsigned integers (nodejs `Buffer`, `Uint8Array` or array of bytes).
|
||||
|
||||
- `ADLER32.bstr(binary string[, seed])` assumes the argument is a binary string
|
||||
where byte `i` is the low byte of the UCS-2 char: `str.charCodeAt(i) & 0xFF`
|
||||
|
||||
- `ADLER32.str(string)` assumes the argument is a standard JS string and
|
||||
calculates the hash of the UTF-8 encoding.
|
||||
|
||||
For example:
|
||||
|
||||
```js
|
||||
// var ADLER32 = require('adler-32'); // uncomment if in node
|
||||
ADLER32.str("SheetJS") // 176947863
|
||||
ADLER32.bstr("SheetJS") // 176947863
|
||||
ADLER32.buf([ 83, 104, 101, 101, 116, 74, 83 ]) // 176947863
|
||||
|
||||
adler32 = ADLER32.buf([83, 104]) // 17825980 "Sh"
|
||||
adler32 = ADLER32.str("eet", adler32) // 95486458 "Sheet"
|
||||
ADLER32.bstr("JS", adler32) // 176947863 "SheetJS"
|
||||
|
||||
[ADLER32.str("\u2603"), ADLER32.str("\u0003")] // [ 73138686, 262148 ]
|
||||
[ADLER32.bstr("\u2603"), ADLER32.bstr("\u0003")] // [ 262148, 262148 ]
|
||||
[ADLER32.buf([0x2603]), ADLER32.buf([0x0003])] // [ 262148, 262148 ]
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
`make test` will run the nodejs-based test. To run the in-browser tests, run a
|
||||
local server and go to the `ctest` directory. To update the browser artifacts,
|
||||
run `make ctest`.
|
||||
`make test` will run the nodejs-based test.
|
||||
|
||||
To generate the bits file, use the `adler32` function from python zlib:
|
||||
To run the in-browser tests, run a local server and go to the `ctest` directory.
|
||||
`make ctestserv` will start a python `SimpleHTTPServer` server on port 8000.
|
||||
|
||||
```
|
||||
To update the browser artifacts, run `make ctest`.
|
||||
|
||||
To generate the bits file, use the `adler32` function from python `zlib`:
|
||||
|
||||
```python
|
||||
>>> from zlib import adler32
|
||||
>>> x="foo bar baz٪☃🍣"
|
||||
>>> adler32(x)
|
||||
@ -44,14 +80,28 @@ To generate the bits file, use the `adler32` function from python zlib:
|
||||
2023497376
|
||||
```
|
||||
|
||||
The [`adler32-cli`](https://www.npmjs.com/package/adler32-cli) package includes
|
||||
scripts for processing files or text on standard input:
|
||||
|
||||
```bash
|
||||
$ echo "this is a test" > t.txt
|
||||
$ adler32-cli t.txt
|
||||
726861088
|
||||
```
|
||||
|
||||
For comparison, the `adler32.py` script in the subdirectory uses python `zlib`:
|
||||
|
||||
```bash
|
||||
$ packages/adler32-cli/bin/adler32.py t.txt
|
||||
726861088
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
`make perf` will run algorithmic performance tests (which should justify certain
|
||||
decisions in the code).
|
||||
decisions in the code).
|
||||
|
||||
[js-crc](http://git.io/crc32) has more performance notes
|
||||
|
||||
Bit twiddling is much faster than taking the mod on Safari and older Firefoxes.
|
||||
Bit twiddling is much faster than taking the mod in Safari and Firefox browsers.
|
||||
Instead of taking the literal mod 65521, it is faster to keep it in the integers
|
||||
by bit-shifting: `65536 ~ 15 mod 65521` so for nonnegative integer `a`:
|
||||
|
||||
@ -66,13 +116,13 @@ The mod is taken at the very end, since the intermediate result may exceed 65521
|
||||
|
||||
The magic numbers were chosen so as to not overflow a 31-bit integer:
|
||||
|
||||
```
|
||||
```mathematica
|
||||
F[n_] := Reduce[x*(x + 1)*n/2 + (x + 1)*(65521) < (2^31 - 1) && x > 0, x, Integers]
|
||||
F[255] (* bstr: x \[Element] Integers && 1 <= x <= 3854 *)
|
||||
F[127] (* ascii: x \[Element] Integers && 1 <= x <= 5321 *)
|
||||
```
|
||||
|
||||
Subtract up to 4 elements for the unicode case.
|
||||
Subtract up to 4 elements for the Unicode case.
|
||||
|
||||
## License
|
||||
|
||||
@ -81,9 +131,10 @@ granted by the Apache 2.0 license are reserved by the Original Author.
|
||||
|
||||
## Badges
|
||||
|
||||
[![Build Status](https://travis-ci.org/SheetJS/js-adler32.svg?branch=master)](https://travis-ci.org/SheetJS/js-adler32)
|
||||
[![Sauce Test Status](https://saucelabs.com/browser-matrix/adler32.svg)](https://saucelabs.com/u/adler32)
|
||||
|
||||
[![Coverage Status](https://coveralls.io/repos/SheetJS/js-adler32/badge.png?branch=master)](https://coveralls.io/r/SheetJS/js-adler32?branch=master)
|
||||
[![Build Status](https://img.shields.io/github/workflow/status/sheetjs/js-adler32/Tests:%20node.js)](https://github.com/SheetJS/js-adler32/actions)
|
||||
|
||||
[![Coverage Status](http://img.shields.io/coveralls/SheetJS/js-adler32/master.svg)](https://coveralls.io/r/SheetJS/js-adler32?branch=master)
|
||||
|
||||
[![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-adler32?pixel)](https://github.com/SheetJS/js-adler32)
|
||||
|
||||
|
@ -1,40 +1,44 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
var ADLER32;
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER: any; */
|
||||
/*:: declare var define: any; */
|
||||
(function (factory) {
|
||||
/*exported ADLER32 */
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER:?boolean; */
|
||||
/*:: declare function define(cb:()=>any):void; */
|
||||
var ADLER32/*:ADLER32Module*/;
|
||||
(function (factory/*:(a:any)=>void*/)/*:void*/ {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && define.amd) {
|
||||
} else if ('function' === typeof define && /*::(*/define/*:: :any)*/.amd) {
|
||||
define(function () {
|
||||
var module = {};
|
||||
var module/*:ADLER32Module*/ = /*::(*/{}/*:: :any)*/;
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
}(function(ADLER32) {
|
||||
ADLER32.version = '0.3.0';
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32/*:ADLER32Module*/) {
|
||||
ADLER32.version = '1.3.1';
|
||||
/*::
|
||||
type ADLER32Type = number;
|
||||
type ABuf = Array<number> | Buffer;
|
||||
type ABuf = Array<number> | Buffer | Uint8Array;
|
||||
*/
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr/*:string*/)/*:ADLER32Type*/ {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(new Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
/*# consult README.md for the magic number */
|
||||
/*# charCodeAt is the best approach for binary strings */
|
||||
function adler32_bstr(bstr/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -43,12 +47,13 @@ function adler32_bstr(bstr/*:string*/)/*:ADLER32Type*/ {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf/*:ABuf*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf/*:ABuf*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -57,35 +62,40 @@ function adler32_buf(buf/*:ABuf*/)/*:ADLER32Type*/ {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
/*# much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
}));
|
||||
|
55
adler32.js
55
adler32.js
@ -1,7 +1,10 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*exported ADLER32 */
|
||||
var ADLER32;
|
||||
(function (factory) {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
@ -17,18 +20,17 @@ var ADLER32;
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32) {
|
||||
ADLER32.version = '0.3.0';
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr) {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(new Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
ADLER32.version = '1.3.1';
|
||||
function adler32_bstr(bstr, seed) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -37,12 +39,13 @@ function adler32_bstr(bstr) {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf) {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf, seed) {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -51,35 +54,39 @@ function adler32_buf(buf) {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str) {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
function adler32_str(str, seed) {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
}));
|
||||
|
101
adler32.mjs
Normal file
101
adler32.mjs
Normal file
@ -0,0 +1,101 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*exported ADLER32 */
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER:?boolean; */
|
||||
/*:: declare function define(cb:()=>any):void; */
|
||||
var ADLER32/*:ADLER32Module*/;
|
||||
(function (factory/*:(a:any)=>void*/)/*:void*/ {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && /*::(*/define/*:: :any)*/.amd) {
|
||||
define(function () {
|
||||
var module/*:ADLER32Module*/ = /*::(*/{}/*:: :any)*/;
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32/*:ADLER32Module*/) {
|
||||
ADLER32.version = '1.3.0';
|
||||
/*::
|
||||
type ADLER32Type = number;
|
||||
type ABuf = Array<number> | Buffer | Uint8Array;
|
||||
*/
|
||||
/*# consult README.md for the magic number */
|
||||
/*# charCodeAt is the best approach for binary strings */
|
||||
function adler32_bstr(bstr/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf/*:ABuf*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/*# much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
}));
|
@ -1,22 +1,27 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
var ADLER32;
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER: any; */
|
||||
/*:: declare var define: any; */
|
||||
(function (factory) {
|
||||
/*exported ADLER32 */
|
||||
/*:: declare var DO_NOT_EXPORT_ADLER:?boolean; */
|
||||
/*:: declare function define(cb:()=>any):void; */
|
||||
var ADLER32/*:ADLER32Module*/;
|
||||
(function (factory/*:(a:any)=>void*/)/*:void*/ {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
} else if ('function' === typeof define && define.amd) {
|
||||
} else if ('function' === typeof define && /*::(*/define/*:: :any)*/.amd) {
|
||||
define(function () {
|
||||
var module = {};
|
||||
var module/*:ADLER32Module*/ = /*::(*/{}/*:: :any)*/;
|
||||
factory(module);
|
||||
return module;
|
||||
});
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
factory(ADLER32 = /*::(*/{}/*:: :any)*/);
|
||||
}
|
||||
}(function(ADLER32) {
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32/*:ADLER32Module*/) {
|
||||
|
@ -1 +1 @@
|
||||
ADLER32.version = '0.3.0';
|
||||
ADLER32.version = '1.3.1';
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*::
|
||||
type ADLER32Type = number;
|
||||
type ABuf = Array<number> | Buffer;
|
||||
type ABuf = Array<number> | Buffer | Uint8Array;
|
||||
*/
|
||||
|
@ -1,13 +1,12 @@
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr/*:string*/)/*:ADLER32Type*/ {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(new Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
/*# consult README.md for the magic number */
|
||||
/*# charCodeAt is the best approach for binary strings */
|
||||
function adler32_bstr(bstr/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -16,12 +15,13 @@ function adler32_bstr(bstr/*:string*/)/*:ADLER32Type*/ {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf/*:ABuf*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf/*:ABuf*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -30,31 +30,33 @@ function adler32_buf(buf/*:ABuf*/)/*:ADLER32Type*/ {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
/*# much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str/*:string*/, seed/*:?ADLER32Type*/)/*:ADLER32Type*/ {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
@ -1,3 +1,6 @@
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
|
@ -1,7 +1,10 @@
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*exported ADLER32 */
|
||||
var ADLER32;
|
||||
(function (factory) {
|
||||
/*jshint ignore:start */
|
||||
/*eslint-disable */
|
||||
if(typeof DO_NOT_EXPORT_ADLER === 'undefined') {
|
||||
if('object' === typeof exports) {
|
||||
factory(exports);
|
||||
@ -17,18 +20,17 @@ var ADLER32;
|
||||
} else {
|
||||
factory(ADLER32 = {});
|
||||
}
|
||||
/*eslint-enable */
|
||||
/*jshint ignore:end */
|
||||
}(function(ADLER32) {
|
||||
ADLER32.version = '0.3.0';
|
||||
/* consult README.md for the magic number */
|
||||
/* charCodeAt is the best approach for binary strings */
|
||||
var use_buffer = typeof Buffer !== 'undefined';
|
||||
function adler32_bstr(bstr) {
|
||||
if(bstr.length > 32768) if(use_buffer) return adler32_buf(new Buffer(bstr));
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
ADLER32.version = '1.3.0';
|
||||
function adler32_bstr(bstr, seed) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
a += bstr.charCodeAt(i)&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -37,12 +39,13 @@ function adler32_bstr(bstr) {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function adler32_buf(buf) {
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
function adler32_buf(buf, seed) {
|
||||
var a = 1, b = 0, L = buf.length, M = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = (seed >>> 16) & 0xFFFF; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += buf[i];
|
||||
a += buf[i]&0xFF;
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
@ -51,35 +54,39 @@ function adler32_buf(buf) {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
/* much much faster to intertwine utf8 and adler */
|
||||
function adler32_str(str) {
|
||||
var a = 1, b = 0, L = str.length, M, c, d;
|
||||
function adler32_str(str, seed) {
|
||||
var a = 1, b = 0, L = str.length, M = 0, c = 0, d = 0;
|
||||
if(typeof seed === 'number') { a = seed & 0xFFFF; b = seed >>> 16; }
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = str.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
if(c < 0x80) { a += c; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = str.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 128|(d&63);
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 128|(c&63);
|
||||
}
|
||||
b += a; --M;
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
a = (15*(a>>>16)+(a&65535));
|
||||
b = (15*(b>>>16)+(b&65535));
|
||||
}
|
||||
return (b << 16) | a;
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
// $FlowIgnore
|
||||
ADLER32.bstr = adler32_bstr;
|
||||
// $FlowIgnore
|
||||
ADLER32.buf = adler32_buf;
|
||||
// $FlowIgnore
|
||||
ADLER32.str = adler32_str;
|
||||
}));
|
||||
|
@ -1,2 +1,2 @@
|
||||
var assert = {};
|
||||
assert.equal = function(x,y) { if(x !== y) throw x + " !== " + y; };
|
||||
assert.equal = function(x,y) { if(x !== y) throw new Error(x + " !== " + y); };
|
||||
|
@ -1,11 +1,43 @@
|
||||
var o = "foo bar baz٪☃🍣";
|
||||
var m = "foobar"; for(var i = 0; i != 11; ++i) m+=m;
|
||||
var m1 = m + m, m2 = m1 + m1, m3 = m2 + m2, m4 = m3 + m3;
|
||||
var M1 = m + "𝑹" + m, M2 = M1 + "𝐀" + M1, M3 = M2 + "𝓜" + M2, M4 = M3 + "𝙖" + M3;
|
||||
var bits = [
|
||||
[ "Wikipedia", 300286872, 1 ],
|
||||
[ "foo bar baz", 398066679, 1 ],
|
||||
[ "foo bar baz٪", 570688890 ],
|
||||
[ "foo bar baz٪☃", 919275383],
|
||||
[ "foo bar baz٪☃🍣", 1543572022],
|
||||
[ "foo bar baz٪☃", 919275383 ],
|
||||
[ m, -747910882, 1 ],
|
||||
[ m1, 1286443594, 1],
|
||||
[ m2, 812328098, 1 ],
|
||||
[ m3, -1124316861, 1 ],
|
||||
[ m4, -357657979, 1 ],
|
||||
[ M1, -792947423 ],
|
||||
[ M2, -1841877779 ],
|
||||
[ M3, 869751957 ],
|
||||
[ M4, -1344947227 ],
|
||||
[ o, 1543572022 ],
|
||||
[ o+o, -2076896149 ],
|
||||
[ o+o+o, 2023497376 ]
|
||||
];
|
||||
if(typeof module !== "undefined") module.exports = bits;
|
||||
/*::
|
||||
declare class ADLER32Module {
|
||||
bstr(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
buf(b:ABuf, seed?:ADLER32Type):ADLER32Type;
|
||||
str(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
version:string;
|
||||
};
|
||||
*/
|
||||
/*::
|
||||
type _CB = {(data:Buffer):void;};
|
||||
declare module 'concat-stream' {declare function exports(f:_CB):stream$Duplex;};
|
||||
declare module 'exit-on-epipe' {};
|
||||
|
||||
declare module 'adler-32' { declare module.exports:ADLER32Module; };
|
||||
declare module '../' { declare module.exports:ADLER32Module; };
|
||||
|
||||
declare module 'printj' {
|
||||
declare function sprintf(fmt:string, ...args:any):string;
|
||||
};
|
||||
*/
|
||||
|
@ -8,6 +8,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script src="shim.js"></script>
|
||||
<script src="adler32.js"></script>
|
||||
<script src="fakeassert.js"></script>
|
||||
<script src="mocha.js"></script>
|
||||
|
237
ctest/shim.js
Normal file
237
ctest/shim.js
Normal file
@ -0,0 +1,237 @@
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
||||
if (!Object.keys) {
|
||||
Object.keys = (function () {
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
],
|
||||
dontEnumsLength = dontEnums.length;
|
||||
|
||||
return function (obj) {
|
||||
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
|
||||
|
||||
var result = [];
|
||||
|
||||
for (var prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) result.push(prop);
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (var i=0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter)
|
||||
{
|
||||
Array.prototype.filter = function(fun /*, thisp */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this == null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun != "function")
|
||||
throw new TypeError();
|
||||
|
||||
var res = [];
|
||||
var thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
{
|
||||
var val = t[i]; // in case fun mutates this
|
||||
if (fun.call(thisp, val, i, t))
|
||||
res.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
|
||||
if (!String.prototype.trim) {
|
||||
String.prototype.trim = function () {
|
||||
return this.replace(/^\s+|\s+$/g, '');
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
|
||||
if (!Array.prototype.forEach)
|
||||
{
|
||||
Array.prototype.forEach = function(fun /*, thisArg */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
fun.call(thisArg, t[i], i, t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Production steps of ECMA-262, Edition 5, 15.4.4.19
|
||||
// Reference: http://es5.github.com/#x15.4.4.19
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = function(callback, thisArg) {
|
||||
|
||||
var T, A, k;
|
||||
|
||||
if (this == null) {
|
||||
throw new TypeError(" this is null or not defined");
|
||||
}
|
||||
|
||||
// 1. Let O be the result of calling ToObject passing the |this| value as the argument.
|
||||
var O = Object(this);
|
||||
|
||||
// 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
|
||||
// 3. Let len be ToUint32(lenValue).
|
||||
var len = O.length >>> 0;
|
||||
|
||||
// 4. If IsCallable(callback) is false, throw a TypeError exception.
|
||||
// See: http://es5.github.com/#x9.11
|
||||
if (typeof callback !== "function") {
|
||||
throw new TypeError(callback + " is not a function");
|
||||
}
|
||||
|
||||
// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||||
if (thisArg) {
|
||||
T = thisArg;
|
||||
}
|
||||
|
||||
// 6. Let A be a new array created as if by the expression new Array(len) where Array is
|
||||
// the standard built-in constructor with that name and len is the value of len.
|
||||
A = new Array(len);
|
||||
|
||||
// 7. Let k be 0
|
||||
k = 0;
|
||||
|
||||
// 8. Repeat, while k < len
|
||||
while(k < len) {
|
||||
|
||||
var kValue, mappedValue;
|
||||
|
||||
// a. Let Pk be ToString(k).
|
||||
// This is implicit for LHS operands of the in operator
|
||||
// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
|
||||
// This step can be combined with c
|
||||
// c. If kPresent is true, then
|
||||
if (k in O) {
|
||||
|
||||
// i. Let kValue be the result of calling the Get internal method of O with argument Pk.
|
||||
kValue = O[ k ];
|
||||
|
||||
// ii. Let mappedValue be the result of calling the Call internal method of callback
|
||||
// with T as the this value and argument list containing kValue, k, and O.
|
||||
mappedValue = callback.call(T, kValue, k, O);
|
||||
|
||||
// iii. Call the DefineOwnProperty internal method of A with arguments
|
||||
// Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true},
|
||||
// and false.
|
||||
|
||||
// In browsers that support Object.defineProperty, use the following:
|
||||
// Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });
|
||||
|
||||
// For best browser support, use the following:
|
||||
A[ k ] = mappedValue;
|
||||
}
|
||||
// d. Increase k by 1.
|
||||
k++;
|
||||
}
|
||||
|
||||
// 9. return A
|
||||
return A;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function (searchElement, fromIndex) {
|
||||
if ( this === undefined || this === null ) {
|
||||
throw new TypeError( '"this" is null or not defined' );
|
||||
}
|
||||
|
||||
var length = this.length >>> 0; // Hack to convert object.length to a UInt32
|
||||
|
||||
fromIndex = +fromIndex || 0;
|
||||
|
||||
if (Math.abs(fromIndex) === Infinity) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
|
||||
if (fromIndex < 0) {
|
||||
fromIndex += length;
|
||||
if (fromIndex < 0) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (;fromIndex < length; fromIndex++) {
|
||||
if (this[fromIndex] === searchElement) {
|
||||
return fromIndex;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
|
||||
|
||||
if (! Array.isArray) {
|
||||
Array.isArray = function(obj) {
|
||||
return Object.prototype.toString.call(obj) === "[object Array]";
|
||||
};
|
||||
}
|
||||
|
||||
// https://github.com/ttaubert/node-arraybuffer-slice
|
||||
// (c) 2013 Tim Taubert <tim@timtaubert.de>
|
||||
// arraybuffer-slice may be freely distributed under the MIT license.
|
||||
|
||||
"use strict";
|
||||
|
||||
if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
|
||||
ArrayBuffer.prototype.slice = function (begin, end) {
|
||||
begin = (begin|0) || 0;
|
||||
var num = this.byteLength;
|
||||
end = end === (void 0) ? num : (end|0);
|
||||
|
||||
// Handle negative values.
|
||||
if (begin < 0) begin += num;
|
||||
if (end < 0) end += num;
|
||||
|
||||
if (num === 0 || begin >= num || begin >= end) {
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
var length = Math.min(num - begin, end - begin);
|
||||
var target = new ArrayBuffer(length);
|
||||
var targetArray = new Uint8Array(target);
|
||||
targetArray.set(new Uint8Array(this, begin, length));
|
||||
return target;
|
||||
};
|
||||
}
|
@ -7,17 +7,51 @@ if(typeof require !== 'undefined') {
|
||||
fs = require("fs");
|
||||
} else { X = ADLER32; }
|
||||
|
||||
function readlines(f) { return fs.readFileSync(f, "ascii").split("\n").filter(function(f) { return !!f; }); }
|
||||
function readlines(f) { return fs.readFileSync(f, "ascii").split("\n"); }
|
||||
|
||||
function msieversion()
|
||||
{
|
||||
if(typeof window == 'undefined') return Infinity;
|
||||
if(typeof window.navigator == 'undefined') return Infinity;
|
||||
var ua = window.navigator.userAgent
|
||||
var msie = ua.indexOf ( "MSIE " )
|
||||
if(msie < 0) return Infinity;
|
||||
return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )));
|
||||
}
|
||||
|
||||
var Buffer_from = function(){};
|
||||
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var nbfs = !Buffer.from;
|
||||
if(!nbfs) try { Buffer.from("foo", "utf8"); } catch(e) { nbfs = true; }
|
||||
Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);
|
||||
}
|
||||
|
||||
describe('adler32 bits', function() {
|
||||
bits.forEach(function(i) {
|
||||
var l = i[0].length;
|
||||
var msg = i[0];
|
||||
var msg = i[0], l = i[0].length, L = i[1]|0;
|
||||
if(l > 20) msg = i[0].substr(0,5) + "...(" + l + ")..." + i[0].substr(-5);
|
||||
if(l > 100 && msieversion() < 9) return;
|
||||
if(l > 20000 && typeof Buffer === 'undefined') return;
|
||||
it(msg, function() {
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), i[1]|0);
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), L);
|
||||
assert.equal(X.str(i[0]), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(new Buffer(i[0])), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(Buffer_from(i[0])), L);
|
||||
var len = i[0].length, step = len < 20000 ? 1 : len < 50000 ? Math.ceil(len / 20000) : Math.ceil(len / 2000);
|
||||
for(var x = 0; x < len; x += step) {
|
||||
if(i[0].charCodeAt(x) >= 0xD800 && i[0].charCodeAt(x) < 0xE000) continue;
|
||||
if(i[2] === 1) {
|
||||
var bstradl = X.bstr(i[0].substr(x), X.bstr(i[0].substr(0, x)));
|
||||
assert.equal(bstradl, L);
|
||||
}
|
||||
var stradl = X.str(i[0].substr(x), X.str(i[0].substr(0, x)));
|
||||
assert.equal(stradl, i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var buf = Buffer_from(i[0]);
|
||||
var bufadl = X.buf(buf.slice(x), X.buf(buf.slice(0, x)));
|
||||
assert.equal(bufadl, L);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -29,12 +63,27 @@ if(typeof require !== 'undefined') describe("unicode", function() {
|
||||
if(!fs.existsSync("./test_files/baseline." + cat + ".txt")) return;
|
||||
var corpus = readlines("./test_files/baseline." + cat + ".txt");
|
||||
var uctable = require("./test_files/uctable." + cat + ".js");
|
||||
uctable.forEach(function(c, i) {
|
||||
for(var ucidx = 0; ucidx < uctable.length; ++ucidx) {
|
||||
var c = uctable[ucidx];
|
||||
/* since the baselines are passed via utf8, discard invalid codes */
|
||||
if(c.charCodeAt(0) >= 0xD800 && c.charCodeAt(0) < 0xE000) return;
|
||||
var cc = corpus[i], dd = X.str(c);
|
||||
assert.equal(dd, cc, ":" + i + ":" + c + ":" + cc + ":" + dd);
|
||||
});
|
||||
if(c.charCodeAt(0) >= 0xD800 && c.charCodeAt(0) < 0xE000) continue;
|
||||
var cc = corpus[ucidx], dd = X.str(c);
|
||||
assert.equal(dd, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + dd);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var ee = X.buf(Buffer_from(c, "utf8"));
|
||||
assert.equal(ee, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ee);
|
||||
var ff = X.bstr(String.fromCharCode.apply(null, Buffer_from(c, "utf8")));
|
||||
assert.equal(ff, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ff);
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
if(typeof require !== 'undefined') describe("corpora", function() {
|
||||
require("./test_files/corpus.json").forEach(function(text) {
|
||||
if(!fs.existsSync(text[1])) return;
|
||||
it("should match '" + text[0] + "' (" + text[2] + ")", function() {
|
||||
assert.equal(text[2], X.buf(fs.readFileSync(text[1])));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
122
demo/browser.flow.js
Normal file
122
demo/browser.flow.js
Normal file
@ -0,0 +1,122 @@
|
||||
/*jshint browser:true */
|
||||
/*eslint-env browser */
|
||||
/*global ADLER32, Uint8Array */
|
||||
/*:: declare var ADLER32: ADLER32Module; */
|
||||
var X = ADLER32;
|
||||
|
||||
function console_log(/*:: ...args:Array<any> */) { if(typeof console !== 'undefined') console.log.apply(console, [].slice.call(arguments)); }
|
||||
|
||||
function lpad(s/*:string*/, len/*:number*/, chr/*:?string*/)/*:string*/{
|
||||
var L/*:number*/ = len - s.length, C/*:string*/ = chr || " ";
|
||||
if(L <= 0) return s;
|
||||
return new Array(L+1).join(C) + s;
|
||||
}
|
||||
|
||||
function is_defined(val/*:any*/, keys/*:Array<string>*/)/*:boolean*/ {
|
||||
if(typeof val === "undefined") return false;
|
||||
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||
}
|
||||
|
||||
/*# buffer to string; IE String.fromCharCode.apply limit, manual chunk */
|
||||
/*::
|
||||
type ArrayLike = any;
|
||||
type Stringifier = {(d:ArrayLike):string};
|
||||
*/
|
||||
function make_chunk_buf_to_str(BType/*:function*/)/*:Stringifier*/ {
|
||||
return function(data/*:any*/)/*:string*/ {
|
||||
var o = "", l = 0, w = 10240, L = data.byteLength/w;
|
||||
for(; l<L; ++l) o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w,l*w+w)))/*:any*/));
|
||||
o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w)))/*:any*/));
|
||||
return o;
|
||||
};
|
||||
}
|
||||
/*# buffer to binary string */
|
||||
var bstrify/*:Stringifier*/ = make_chunk_buf_to_str(typeof Uint8Array !== 'undefined' ? Uint8Array : Array);
|
||||
|
||||
/*# readAsBinaryString support */
|
||||
var rABS/*:boolean*/ = typeof FileReader !== 'undefined' && is_defined(FileReader, ['prototype', 'readAsBinaryString']);
|
||||
var userABS/*:HTMLInputElement*/ = (document.getElementsByName("userabs")[0]/*:any*/);
|
||||
if(!rABS) {
|
||||
userABS.disabled = true;
|
||||
userABS.checked = false;
|
||||
}
|
||||
|
||||
/*## Process Result */
|
||||
/*:: declare class HTMLPreElement extends HTMLElement { innerText?:string; } */
|
||||
function process_value(val/*:ADLER32Type*/) {
|
||||
var output = [];
|
||||
output[0] = "Signed : " + val;
|
||||
output[1] = "Unsigned : " + (val>>>0);
|
||||
output[2] = "Hex value : " + lpad((val>>>0).toString(16),8,'0');
|
||||
|
||||
var out/*:HTMLPreElement*/ = (document.getElementById('out')/*:any*/);
|
||||
var o = output.join("\n");
|
||||
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||
else out.innerText = o;
|
||||
console_log("output", new Date());
|
||||
}
|
||||
|
||||
/*## Raw Text */
|
||||
var dotxt/*:HTMLInputElement*/ = (document.getElementById('dotext')/*:any*/);
|
||||
dotxt.onclick = function() {
|
||||
var txt/*:HTMLTextAreaElement*/=(document.getElementById('rawdata')/*:any*/);
|
||||
console_log("onload", new Date());
|
||||
var wb/*:ADLER32Type*/ = X.str(txt.value);
|
||||
process_value(wb);
|
||||
};
|
||||
|
||||
/*# HTML5 */
|
||||
|
||||
var readcb = function(e/*:Event*/) {
|
||||
console_log("onload", new Date(), rABS, false);
|
||||
var target/*:FileReader*/ = (e.target/*:any*/);
|
||||
var data = target.result;
|
||||
var val/*:ADLER32Type*/ = rABS ? X.bstr(/*::(*/data/*:: :any)*/) : X.str(bstrify(data));
|
||||
process_value(val);
|
||||
};
|
||||
|
||||
/*## File Input */
|
||||
var handle_file = function(e/*:Event*/) {
|
||||
rABS = userABS.checked;
|
||||
var otarget/*:HTMLInputElement*/ = (e.target/*:any*/);
|
||||
var files/*:FileList*/ = otarget.files;
|
||||
var f/*:File*/ = files[0];
|
||||
|
||||
var reader/*:FileReader*/ = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader/*:any*/).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
};
|
||||
|
||||
var xlf/*:HTMLInputElement*/ = (document.getElementById('xlf')/*:any*/);
|
||||
if(xlf.addEventListener) xlf.addEventListener('change', handle_file, false);
|
||||
|
||||
/*## Drag and Drop File */
|
||||
var handle_drop/*:EventHandler*/ = (function(e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
rABS = userABS.checked;
|
||||
if(!e.dataTransfer) return;
|
||||
var files/*:FileList*/ = e.dataTransfer.files;
|
||||
var f/*:File*/ = files[0];
|
||||
|
||||
var reader/*:FileReader*/ = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader/*:any*/).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
}/*:any*/);
|
||||
|
||||
var handle_drag/*:EventHandler*/ = (function (e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||
}/*:any*/);
|
||||
|
||||
var drop/*:HTMLDivElement*/ = (document.getElementById('drop')/*:any*/);
|
||||
if(drop.addEventListener) {
|
||||
drop.addEventListener('dragenter', handle_drag, false);
|
||||
drop.addEventListener('dragover', handle_drag, false);
|
||||
drop.addEventListener('drop', handle_drop, false);
|
||||
}
|
107
demo/browser.js
Normal file
107
demo/browser.js
Normal file
@ -0,0 +1,107 @@
|
||||
/*jshint browser:true */
|
||||
/*eslint-env browser */
|
||||
/*global ADLER32, Uint8Array */
|
||||
var X = ADLER32;
|
||||
|
||||
function console_log() { if(typeof console !== 'undefined') console.log.apply(console, [].slice.call(arguments)); }
|
||||
|
||||
function lpad(s, len, chr){
|
||||
var L = len - s.length, C = chr || " ";
|
||||
if(L <= 0) return s;
|
||||
return new Array(L+1).join(C) + s;
|
||||
}
|
||||
|
||||
function is_defined(val, keys) {
|
||||
if(typeof val === "undefined") return false;
|
||||
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||
}
|
||||
|
||||
function make_chunk_buf_to_str(BType) {
|
||||
return function(data) {
|
||||
var o = "", l = 0, w = 10240, L = data.byteLength/w;
|
||||
for(; l<L; ++l) o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w,l*w+w)))));
|
||||
o+=String.fromCharCode.apply(null, ((new BType(data.slice(l*w)))));
|
||||
return o;
|
||||
};
|
||||
}
|
||||
var bstrify = make_chunk_buf_to_str(typeof Uint8Array !== 'undefined' ? Uint8Array : Array);
|
||||
|
||||
var rABS = typeof FileReader !== 'undefined' && is_defined(FileReader, ['prototype', 'readAsBinaryString']);
|
||||
var userABS = (document.getElementsByName("userabs")[0]);
|
||||
if(!rABS) {
|
||||
userABS.disabled = true;
|
||||
userABS.checked = false;
|
||||
}
|
||||
|
||||
function process_value(val) {
|
||||
var output = [];
|
||||
output[0] = "Signed : " + val;
|
||||
output[1] = "Unsigned : " + (val>>>0);
|
||||
output[2] = "Hex value : " + lpad((val>>>0).toString(16),8,'0');
|
||||
|
||||
var out = (document.getElementById('out'));
|
||||
var o = output.join("\n");
|
||||
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||
else out.innerText = o;
|
||||
console_log("output", new Date());
|
||||
}
|
||||
|
||||
var dotxt = (document.getElementById('dotext'));
|
||||
dotxt.onclick = function() {
|
||||
var txt=(document.getElementById('rawdata'));
|
||||
console_log("onload", new Date());
|
||||
var wb = X.str(txt.value);
|
||||
process_value(wb);
|
||||
};
|
||||
|
||||
var readcb = function(e) {
|
||||
console_log("onload", new Date(), rABS, false);
|
||||
var target = (e.target);
|
||||
var data = target.result;
|
||||
var val = rABS ? X.bstr(data) : X.str(bstrify(data));
|
||||
process_value(val);
|
||||
};
|
||||
|
||||
var handle_file = function(e) {
|
||||
rABS = userABS.checked;
|
||||
var otarget = (e.target);
|
||||
var files = otarget.files;
|
||||
var f = files[0];
|
||||
|
||||
var reader = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
};
|
||||
|
||||
var xlf = (document.getElementById('xlf'));
|
||||
if(xlf.addEventListener) xlf.addEventListener('change', handle_file, false);
|
||||
|
||||
var handle_drop = (function(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
rABS = userABS.checked;
|
||||
if(!e.dataTransfer) return;
|
||||
var files = e.dataTransfer.files;
|
||||
var f = files[0];
|
||||
|
||||
var reader = new FileReader();
|
||||
reader.onload = readcb;
|
||||
|
||||
if(rABS) (reader).readAsBinaryString(f);
|
||||
else reader.readAsArrayBuffer(f);
|
||||
});
|
||||
|
||||
var handle_drag = (function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||
});
|
||||
|
||||
var drop = (document.getElementById('drop'));
|
||||
if(drop.addEventListener) {
|
||||
drop.addEventListener('dragenter', handle_drag, false);
|
||||
drop.addEventListener('dragover', handle_drag, false);
|
||||
drop.addEventListener('drop', handle_drop, false);
|
||||
}
|
28
demo/work.js
Normal file
28
demo/work.js
Normal file
@ -0,0 +1,28 @@
|
||||
/* js-adler32 (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/*:: declare var ADLER32: ADLER32Module; */
|
||||
/*:: declare var self: DedicatedWorkerGlobalScope; */
|
||||
importScripts('../adler32.js');
|
||||
/*::self.*/postMessage({t:"ready"});
|
||||
|
||||
var readler = function(f, adler, l) {
|
||||
/*::self.*/postMessage({t:"iter", f:f, adler:adler, l:l, sz:f.size});
|
||||
if(l >= f.size) return /*::self.*/postMessage({t:"done"});
|
||||
var sz = 0x100000; if(l + sz > f.size) sz = f.size - l;
|
||||
var d = f.slice(l, l + sz);
|
||||
var r = new FileReader();
|
||||
r.onload = function(e) {
|
||||
var b = new Uint8Array((e.target/*:any*/).result);
|
||||
var newadler = ADLER32.buf(b, adler);
|
||||
/*::self.*/postMessage({t:"data", adler:newadler, bytes:l+sz});
|
||||
readler(f, newadler, l + sz);
|
||||
};
|
||||
r.readAsArrayBuffer(d);
|
||||
};
|
||||
|
||||
onmessage = function (oEvent) {
|
||||
/*::self.*/postMessage({t:"start"});
|
||||
var f/*:File*/ = oEvent.data;
|
||||
var seed = 1;
|
||||
readler(f, seed, 0);
|
||||
};
|
||||
|
69
demo/worker.flow.js
Normal file
69
demo/worker.flow.js
Normal file
@ -0,0 +1,69 @@
|
||||
/*jshint browser:true */
|
||||
|
||||
function lpad(s/*:string*/, len/*:number*/, chr/*:?string*/)/*:string*/{
|
||||
var L/*:number*/ = len - s.length, C/*:string*/ = chr || " ";
|
||||
if(L <= 0) return s;
|
||||
return new Array(L+1).join(C) + s;
|
||||
}
|
||||
|
||||
function is_defined(val/*:any*/, keys/*:Array<string>*/)/*:boolean*/ {
|
||||
if(typeof val === "undefined") return false;
|
||||
return keys.length === 0 || is_defined(val[keys[0]], keys.slice(1));
|
||||
}
|
||||
|
||||
/*## Process Result */
|
||||
/*:: declare class HTMLPreElement extends HTMLElement { innerText?:string; } */
|
||||
function process_value(val/*:ADLER32Type*/, progress/*:number*/) {
|
||||
var output = [];
|
||||
output[0] = "Progress : %" + lpad(progress.toFixed(2), 6, " ");
|
||||
output[1] = "Signed : " + val;
|
||||
output[2] = "Unsigned : " + (val>>>0);
|
||||
output[3] = "Hex value : " + lpad((val>>>0).toString(16),8,'0');
|
||||
|
||||
var out/*:HTMLPreElement*/ = (document.getElementById('out')/*:any*/);
|
||||
var o = output.join("\n");
|
||||
if(typeof out.innerText == "undefined") out.textContent = o;
|
||||
else out.innerText = o;
|
||||
}
|
||||
|
||||
/*::
|
||||
type WMessage = {
|
||||
t:string;
|
||||
f:File;
|
||||
adler:ADLER32Type;
|
||||
l:number;
|
||||
sz:number;
|
||||
bytes:number;
|
||||
};
|
||||
*/
|
||||
|
||||
/*# Drag and Drop File */
|
||||
var handle_drop/*:EventHandler*/ = (function(e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(!e.dataTransfer) return;
|
||||
var files/*:FileList*/ = e.dataTransfer.files;
|
||||
var f/*:File*/ = files[0];
|
||||
|
||||
var worker = new Worker("demo/work.js");
|
||||
worker.postMessage(f);
|
||||
worker.onmessage = function(M) { var m/*:WMessage*/ = (M.data/*:any*/); switch(m.t) {
|
||||
case 'ready': break;
|
||||
case 'start': break;
|
||||
case 'data': process_value(m.adler, 100 * m.bytes / f.size); break;
|
||||
case 'done': break;
|
||||
} };
|
||||
}/*:any*/);
|
||||
|
||||
var handle_drag/*:EventHandler*/ = (function (e/*:DragEvent*/) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if(e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
|
||||
}/*:any*/);
|
||||
|
||||
var drop/*:HTMLDivElement*/ = (document.getElementById('drop')/*:any*/);
|
||||
if(drop.addEventListener) {
|
||||
drop.addEventListener('dragenter', handle_drag, false);
|
||||
drop.addEventListener('dragover', handle_drag, false);
|
||||
drop.addEventListener('drop', handle_drop, false);
|
||||
}
|
60
index.html
Normal file
60
index.html
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- adler32.js (C) 2014-present SheetJS http://sheetjs.com -->
|
||||
<!-- vim: set ts=2: -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>JS-ADLER32 Live Demo</title>
|
||||
<style>
|
||||
#drop{
|
||||
border:2px dashed #bbb;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
padding:25px;
|
||||
text-align:center;
|
||||
font:20pt bold,"Vollkorn";color:#bbb
|
||||
}
|
||||
#rawdata{
|
||||
width:100%;
|
||||
}
|
||||
a { text-decoration: none }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
<b><a href="http://sheetjs.com/bits">SheetJS JS-ADLER32 Live Demo</a></b>
|
||||
(text works back to IE6; drag and drop works back to IE10)
|
||||
(<b>This demo loads the entire file at once!</b> For newer browsers, <a href="large.html">try the large file demo</a>)
|
||||
|
||||
<a href="https://github.com/SheetJS/js-adler32">Source Code Repo</a>
|
||||
<a href="https://github.com/SheetJS/js-adler32/issues">Issues? Something look weird? Click here and report an issue</a>
|
||||
<br />
|
||||
<div id="drop">Drop a text file to compute the ADLER-32 checksum</div>
|
||||
<input type="file" name="xlfile" id="xlf" /> ... or click here to select a file
|
||||
|
||||
<textarea id="rawdata">... or paste text here</textarea>
|
||||
<input type="button" id="dotext" value="Click here to process the text"/><br />
|
||||
<b>Advanced Demo Options:</b>
|
||||
Use readAsBinaryString: (when available) <input type="checkbox" name="userabs" checked><br />
|
||||
</pre>
|
||||
<pre id="out"></pre>
|
||||
<br />
|
||||
<script type="text/javascript">/* jshint browser: true */</script>
|
||||
<script src="shim.js"></script>
|
||||
<script src="adler32.js"></script>
|
||||
<script src="demo/browser.flow.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*eslint-env browser */
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-36810333-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
52
large.html
Normal file
52
large.html
Normal file
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- adler32.js (C) 2014-present SheetJS http://sheetjs.com -->
|
||||
<!-- vim: set ts=2: -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>JS-ADLER32 Live Demo</title>
|
||||
<style>
|
||||
#drop{
|
||||
border:2px dashed #bbb;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
padding:25px;
|
||||
text-align:center;
|
||||
font:20pt bold,"Vollkorn";color:#bbb
|
||||
}
|
||||
#rawdata{
|
||||
width:100%;
|
||||
}
|
||||
a { text-decoration: none }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
<b><a href="http://sheetjs.com/bits">SheetJS JS-ADLER32 Live Demo</a></b>
|
||||
(text works back to IE6; drag and drop works back to IE10)
|
||||
|
||||
<a href="https://github.com/SheetJS/js-adler32">Source Code Repo</a>
|
||||
<a href="https://github.com/SheetJS/js-adler32/issues">Issues? Something look weird? Click here and report an issue</a>
|
||||
<br />
|
||||
<div id="drop">Drop a text file to compute the ADLER-32 checksum</div>
|
||||
|
||||
<pre id="out"></pre>
|
||||
<br />
|
||||
<script type="text/javascript">/* jshint browser: true */</script>
|
||||
<script src="shim.js"></script>
|
||||
<script src="adler32.js"></script>
|
||||
<script src="demo/worker.flow.js"></script>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-36810333-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
16
misc/bits.js
16
misc/bits.js
@ -1,10 +1,22 @@
|
||||
var o = "foo bar baz٪☃🍣";
|
||||
var m = "foobar"; for(var i = 0; i != 11; ++i) m+=m;
|
||||
var m1 = m + m, m2 = m1 + m1, m3 = m2 + m2, m4 = m3 + m3;
|
||||
var M1 = m + "𝑹" + m, M2 = M1 + "𝐀" + M1, M3 = M2 + "𝓜" + M2, M4 = M3 + "𝙖" + M3;
|
||||
var bits = [
|
||||
[ "Wikipedia", 300286872, 1 ],
|
||||
[ "foo bar baz", 398066679, 1 ],
|
||||
[ "foo bar baz٪", 570688890 ],
|
||||
[ "foo bar baz٪☃", 919275383],
|
||||
[ "foo bar baz٪☃🍣", 1543572022],
|
||||
[ "foo bar baz٪☃", 919275383 ],
|
||||
[ m, -747910882, 1 ],
|
||||
[ m1, 1286443594, 1],
|
||||
[ m2, 812328098, 1 ],
|
||||
[ m3, -1124316861, 1 ],
|
||||
[ m4, -357657979, 1 ],
|
||||
[ M1, -792947423 ],
|
||||
[ M2, -1841877779 ],
|
||||
[ M3, 869751957 ],
|
||||
[ M4, -1344947227 ],
|
||||
[ o, 1543572022 ],
|
||||
[ o+o, -2076896149 ],
|
||||
[ o+o+o, 2023497376 ]
|
||||
];
|
||||
|
8
misc/flow.js
Normal file
8
misc/flow.js
Normal file
@ -0,0 +1,8 @@
|
||||
/*::
|
||||
declare class ADLER32Module {
|
||||
bstr(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
buf(b:ABuf, seed?:ADLER32Type):ADLER32Type;
|
||||
str(s:string, seed?:ADLER32Type):ADLER32Type;
|
||||
version:string;
|
||||
};
|
||||
*/
|
12
misc/flowdeps.js
Normal file
12
misc/flowdeps.js
Normal file
@ -0,0 +1,12 @@
|
||||
/*::
|
||||
type _CB = {(data:Buffer):void;};
|
||||
declare module 'concat-stream' {declare function exports(f:_CB):stream$Duplex;};
|
||||
declare module 'exit-on-epipe' {};
|
||||
|
||||
declare module 'adler-32' { declare module.exports:ADLER32Module; };
|
||||
declare module '../' { declare module.exports:ADLER32Module; };
|
||||
|
||||
declare module 'printj' {
|
||||
declare function sprintf(fmt:string, ...args:any):string;
|
||||
};
|
||||
*/
|
42
misc/help.sh
Executable file
42
misc/help.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# make_help.sh -- process listing of targets and special items in Makefile
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
#
|
||||
# usage in makefile: pipe the output of the following command:
|
||||
# @grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST)
|
||||
#
|
||||
# lines starting with "## " are treated as subtitles
|
||||
# lines starting with "#* " are treated as plaintext comments
|
||||
# multiple targets with "## " after the ":" are rendered as separate targets
|
||||
# if the presumed default target is labeled, it will be assigned a unique color
|
||||
|
||||
awk '
|
||||
BEGIN{recipes=0;}
|
||||
!/#[#*] .*$/ {next;}
|
||||
{multi=0; isrecipe=0;}
|
||||
/^[^#]*:/ {isrecipe=1; ++recipes;}
|
||||
/^[^ :]* .*:/ {multi=1}
|
||||
multi==0 && isrecipe>0 { if(recipes > 1) print; else print $0, "[default]"; next}
|
||||
isrecipe == 0 {print; next}
|
||||
multi>0 {
|
||||
k=split($0, msg, "##"); m=split($0, a, ":"); n=split(a[1], b, " ");
|
||||
for(i=1; i<=n; ++i) print b[i] ":", "##" msg[2], (recipes==1 && i==1 ? "[default]" : "")
|
||||
}
|
||||
END {}
|
||||
' | if [[ -t 1 ]]; then
|
||||
awk '
|
||||
BEGIN {FS = ":.*?## "}
|
||||
{color=36}
|
||||
/\[default\]/ {color=35}
|
||||
NF==1 && /^##/ {color=34}
|
||||
NF==1 && /^#\*/ {color=20; $1 = substr($1, 4)}
|
||||
{printf "\033[" color "m%-20s\033[0m %s\n", $1, $2;}
|
||||
END{}' -
|
||||
else
|
||||
awk '
|
||||
BEGIN {FS = ":.*?## "}
|
||||
/^#\* / {$1 = substr($1, 4)}
|
||||
{printf "%-20s %s\n", $1, $2;}
|
||||
END{}' -
|
||||
fi
|
||||
|
@ -5,35 +5,44 @@ OUTD=../test_files
|
||||
CATURL=https://mathias.html5.org/data/unicode/8.0.0/categories/
|
||||
CATF=$OUTD/uccat.txt
|
||||
|
||||
ECHORED() { echo -ne '\x1B[0;31m'; echo -n $1; echo -ne '\x1B[0m'; echo; }
|
||||
ECHORED() { echo -ne '\x1B[0;31m'; echo -n "$1"; echo -ne '\x1B[0m'; echo; }
|
||||
|
||||
if [[ "$1" == "clean" ]]; then
|
||||
if [ ! -d test_files ]; then cd ..; fi
|
||||
if [ -d test_files ]; then cd test_files; fi
|
||||
rm -f uccat.txt baseline.*.txt uctable.*.js uctable_*.py
|
||||
exit
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2164
|
||||
if [ -d misc ]; then cd misc; fi
|
||||
mkdir -p $OUTD
|
||||
if [ ! -e $CATF ]; then curl "$CATURL" | grep "code-points" | sed 's/.*="//g;s/-.*//g' > $CATF; fi
|
||||
|
||||
while read line; do
|
||||
while read -r line; do
|
||||
JSF=uctable.${line}.js
|
||||
PYF=uctable_${line}.py
|
||||
BLF=baseline.${line}.txt
|
||||
JSURL="https://mathias.html5.org/data/unicode/format?version=8.0.0&category=${line}&type=symbols&prepend=var+unicode%20%3D%20&append=%3Bif(typeof%20module%20!%3D%3D%20'undefined')%20module.exports%20%3D%20unicode%3B"
|
||||
if [[ ! -e $OUTD/$JSF || ! -e $OUTD/$PYF || ! -e $OUTD/$BLF ]]; then
|
||||
ECHORED "Processing ${line}"
|
||||
if [ ! -e $JSF ]; then
|
||||
rm -f $PYF $BLF ${PYF}c
|
||||
for i in $JSF $PYF $BLF; do if [[ ! -e $i && -e $OUTD/$i ]]; then mv $OUTD/"$i" .; fi done
|
||||
if [ ! -e "$JSF" ]; then
|
||||
rm -f "$PYF" "$BLF" "${PYF}c"
|
||||
echo "Downloading JS"
|
||||
</dev/null curl -o $JSF "$JSURL"
|
||||
</dev/null curl -o "$JSF" "$JSURL"
|
||||
fi
|
||||
if [ ! -e $PYF ]; then
|
||||
if [ ! -e "$PYF" ]; then
|
||||
echo "Building Python script"
|
||||
rm -f $BLF ${PYF}c
|
||||
</dev/null node make_unicode.njs ${line} | sed 's/\[ \[/uctable = \[ \[/' > $PYF
|
||||
rm -f "$BLF" "${PYF}c"
|
||||
</dev/null node make_unicode.njs "${line}" | sed 's/\[ \[/uctable = \[ \[/' > "$PYF"
|
||||
fi
|
||||
if [ ! -e $BLF ]; then
|
||||
if [ ! -e "$BLF" ]; then
|
||||
echo "Building Baseline text"
|
||||
python make_unicode_adler.py ${line} > baseline.${line}.txt
|
||||
python make_unicode_adler.py "${line}" > "baseline.${line}.txt"
|
||||
fi
|
||||
for i in $JSF $PYF $BLF; do if [ -e $i ]; then mv $i $OUTD/; fi; done
|
||||
rm -f uctable_${line}.pyc
|
||||
for i in $JSF $PYF $BLF; do if [ -e "$i" ]; then mv "$i" $OUTD/; fi; done
|
||||
rm -f "uctable_${line}.pyc"
|
||||
fi
|
||||
done < $CATF
|
||||
|
||||
|
@ -1,5 +1,14 @@
|
||||
#!/usr/bin/env node
|
||||
argv = process.argv.slice(2);
|
||||
/* make_unicode.njs -- generate baselines for tests
|
||||
* Copyright (C) 2016-present SheetJS
|
||||
* vim: set ft=javascript: */
|
||||
|
||||
var argv = process.argv.slice(2);
|
||||
var enc = require('codepage').utils.encode;
|
||||
function arr(x) { return [].slice.call(enc(65001, x)); }
|
||||
console.log(require('./uctable.' + argv[0]).map(arr));
|
||||
var o = require('./uctable.' + argv[0]).map(arr);
|
||||
|
||||
/* node 6 changed default behavior for arrays */
|
||||
if(+process.version.replace(/v(\d)+\..*/,"$1") >= 6) o = require("util").inspect(o, {maxArrayLength: null});
|
||||
|
||||
console.log(o);
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env python
|
||||
# make_unicode_crc.py -- generate baselines for tests
|
||||
# make_unicode_adler.py -- generate baselines for tests
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
|
||||
from zlib import adler32
|
||||
from zlib import adler32
|
||||
from array import array
|
||||
from sys import argv, stderr, exit
|
||||
from importlib import import_module
|
||||
|
25
package.json
25
package.json
@ -1,27 +1,34 @@
|
||||
{
|
||||
"name": "adler-32",
|
||||
"version": "0.3.0",
|
||||
"version": "1.3.1",
|
||||
"author": "sheetjs",
|
||||
"description": "Pure-JS ADLER-32",
|
||||
"keywords": [ "adler32", "checksum" ],
|
||||
"main": "./adler32",
|
||||
"types": "types/index.d.ts",
|
||||
"devDependencies": {
|
||||
"mocha":"",
|
||||
"xlsjs":"",
|
||||
"uglify-js":"",
|
||||
"codepage":""
|
||||
"mocha": "~2.5.3",
|
||||
"blanket": "~1.2.3",
|
||||
"codepage": "~1.10.0",
|
||||
"@sheetjs/uglify-js": "~2.7.3",
|
||||
"@types/node": "^8.0.7",
|
||||
"dtslint": "^0.1.2",
|
||||
"typescript": "2.2.0"
|
||||
},
|
||||
"repository": { "type":"git", "url":"git://github.com/SheetJS/js-adler32.git" },
|
||||
"repository": { "type": "git", "url": "git://github.com/SheetJS/js-adler32.git" },
|
||||
"scripts": {
|
||||
"pretest": "git submodule init && git submodule update",
|
||||
"test": "make test"
|
||||
"test": "make test",
|
||||
"build": "make",
|
||||
"lint": "make fullint",
|
||||
"dtslint": "dtslint types"
|
||||
},
|
||||
"config": {
|
||||
"blanket": {
|
||||
"pattern": "adler32.js"
|
||||
}
|
||||
},
|
||||
"files": ["adler32.js", "LICENSE", "README.md"],
|
||||
"homepage": "http://sheetjs.com/opensource",
|
||||
"files": ["adler32.js", "LICENSE", "README.md", "types/index.d.ts", "types/*.json"],
|
||||
"bugs": { "url": "https://github.com/SheetJS/js-adler32/issues" },
|
||||
"license": "Apache-2.0",
|
||||
"engines": { "node": ">=0.8" }
|
||||
|
2
packages/adler32-cli/.npmignore
Normal file
2
packages/adler32-cli/.npmignore
Normal file
@ -0,0 +1,2 @@
|
||||
*.tgz
|
||||
*.py
|
9
packages/adler32-cli/bin/adler32.njs
Executable file
9
packages/adler32-cli/bin/adler32.njs
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env node
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* eslint-env node */
|
||||
/* vim: set ts=2 ft=javascript: */
|
||||
/*jshint node:true */
|
||||
|
||||
var cli = require('../');
|
||||
|
||||
cli();
|
15
packages/adler32-cli/bin/adler32.py
Executable file
15
packages/adler32-cli/bin/adler32.py
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python
|
||||
# adler32.py -- calculate adler32 checksum of data
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
from zlib import adler32
|
||||
from sys import argv, stdin
|
||||
|
||||
args=argv[1:]
|
||||
payload=""
|
||||
if len(args) == 0 or args[0] == "-":
|
||||
payload = stdin.read()
|
||||
else:
|
||||
payload = open(args[0],"rb").read()
|
||||
|
||||
# NOTE: python 2 returns a signed value; python3 is unsigned
|
||||
print adler32(payload)
|
90
packages/adler32-cli/index.js
Normal file
90
packages/adler32-cli/index.js
Normal file
@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env node
|
||||
/* adler32.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
/* eslint-env node */
|
||||
/* vim: set ts=2 ft=javascript: */
|
||||
/*jshint node:true */
|
||||
|
||||
var X/*:ADLER32Module*/ = require('adler-32');
|
||||
|
||||
function help()/*:number*/ {
|
||||
[
|
||||
"usage: adler32 [options] [filename]",
|
||||
"",
|
||||
"Options:",
|
||||
" -h, --help output usage information",
|
||||
" -V, --version output the version number",
|
||||
" -S, --seed=<n> use integer seed as starting value (default 1)",
|
||||
" -H, --hex-seed=<h> use hex seed as starting value (default 1)",
|
||||
" -d, --signed print result with format `%d` (default)",
|
||||
" -u, --unsigned print result with format `%u`",
|
||||
" -x, --hex print result with format `%0.8x`",
|
||||
" -X, --HEX print result with format `%0.8X`",
|
||||
" -F, --format=<s> use specified printf format",
|
||||
"",
|
||||
"Set filename = '-' or pipe data into adler32 to read from stdin",
|
||||
"Default output mode is signed (-d)",
|
||||
""
|
||||
].forEach(function (l) { console.log(l); });
|
||||
return 0;
|
||||
}
|
||||
|
||||
function version()/*:number*/ { console.log(X.version); return 0; }
|
||||
|
||||
var fs = require('fs');
|
||||
require('exit-on-epipe');
|
||||
|
||||
function die(msg/*:string*/, ec/*:?number*/)/*:void*/ { console.error(msg); process.exit(ec || 0); }
|
||||
|
||||
function run() {
|
||||
var args/*:Array<string>*/ = process.argv.slice(2);
|
||||
var filename/*:string*/ = "";
|
||||
var fmt/*:string*/ = "";
|
||||
var seed = 1, r = 10;
|
||||
|
||||
for (var i = 0; i < args.length; ++i) {
|
||||
var arg = args[i];
|
||||
if (arg.charCodeAt(0) != 45) { if (filename === "") filename = arg; continue; }
|
||||
var m = arg.indexOf("=") == -1 ? arg : arg.substr(0, arg.indexOf("="));
|
||||
switch (m) {
|
||||
case "-": filename = "-"; break;
|
||||
|
||||
case "--help": case "-h": process.exit(help()); break;
|
||||
case "--version": case "-V": process.exit(version()); break;
|
||||
|
||||
case "--signed": case "-d": fmt = "%d"; break;
|
||||
case "--unsigned": case "-u": fmt = "%u"; break;
|
||||
case "--hex": case "-x": fmt = "%0.8x"; break;
|
||||
case "--HEX": case "-X": fmt = "%0.8X"; break;
|
||||
case "--format": case "-F":
|
||||
fmt = ((m != arg) ? arg.substr(m.length + 1) : args[++i]) || ""; break;
|
||||
|
||||
case "--hex-seed": case "-H": r = 16;
|
||||
/* falls through */
|
||||
case "--seed": case "-S":
|
||||
seed = parseInt((m != arg) ? arg.substr(m.length + 1) : args[++i], r) || 1; break;
|
||||
|
||||
default: die("adler32: unrecognized option `" + arg + "'", 22);
|
||||
}
|
||||
}
|
||||
|
||||
if (!process.stdin.isTTY) filename = filename || "-";
|
||||
if (filename.length === 0) die("adler32: must specify a filename ('-' for stdin)", 1);
|
||||
|
||||
var adler32 = seed;
|
||||
// $FlowIgnore -- Writable is callable but type sig disagrees
|
||||
var writable = require('stream').Writable();
|
||||
writable._write = function (chunk, e, cb) { adler32 = X.buf(chunk, adler32); cb(); };
|
||||
writable._writev = function (chunks, cb) {
|
||||
chunks.forEach(function (c) { adler32 = X.buf(c.chunk, adler32); });
|
||||
cb();
|
||||
};
|
||||
writable.on('finish', function () {
|
||||
console.log(fmt === "" ? adler32 : require("printj").sprintf(fmt, adler32));
|
||||
});
|
||||
|
||||
if (filename === "-") process.stdin.pipe(writable);
|
||||
else if (fs.existsSync(filename)) fs.createReadStream(filename).pipe(writable);
|
||||
else die("adler32: " + filename + ": No such file or directory", 2);
|
||||
}
|
||||
|
||||
module.exports = run;
|
15
packages/adler32-cli/package.json
Normal file
15
packages/adler32-cli/package.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "adler32-cli",
|
||||
"version": "1.0.3",
|
||||
"description": "Command-line interface for adler32",
|
||||
"main": "index.js",
|
||||
"bin": {
|
||||
"adler32-cli": "./bin/adler32.njs"
|
||||
},
|
||||
"author": "Garrett Luu",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"adler-32": "^1.3.0",
|
||||
"printj": "~1.2.2"
|
||||
}
|
||||
}
|
12
perf/bm.js
12
perf/bm.js
@ -1,10 +1,14 @@
|
||||
/* bm.js (C) 2014 SheetJS -- http://sheetjs.com */
|
||||
/* bm.js (C) 2014-present SheetJS -- http://sheetjs.com */
|
||||
var Benchmark = require('benchmark');
|
||||
var c = require('ansi')(process.stdout);
|
||||
|
||||
function test_end() { c.horizontalAbsolute(0).write("✓"); c.write('\n'); }
|
||||
|
||||
function suite_end() { console.log('Fastest is ' + this.filter('fastest').pluck('name')); }
|
||||
function suite_end() {
|
||||
var o = this.filter('fastest');
|
||||
var m = typeof o.pluck === 'undefined' ? o.map('name') : o.pluck('name');
|
||||
console.log('Fastest is ' + m);
|
||||
}
|
||||
|
||||
function test_cycle(e) { c.horizontalAbsolute(0); c.eraseLine(); c.write("→ "+e.target); }
|
||||
|
||||
@ -24,9 +28,9 @@ BM.prototype.run = function() {
|
||||
|
||||
BM.prototype.add = function(msg, test) {
|
||||
this.suites.push([msg, {
|
||||
onCycle: test_cycle,
|
||||
onCycle: test_cycle,
|
||||
onComplete: test_end,
|
||||
defer: false,
|
||||
defer: false,
|
||||
fn: test
|
||||
}]);
|
||||
this.maxlen = Math.max(this.maxlen, msg.length);
|
||||
|
50
perf/bstr.js
50
perf/bstr.js
@ -1,3 +1,6 @@
|
||||
var old = require('adler-32').bstr;
|
||||
var cur = require('../').bstr;
|
||||
|
||||
function sheetjs1(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length;
|
||||
for(var i = 0; i < L;) {
|
||||
@ -10,7 +13,21 @@ function sheetjs1(bstr) {
|
||||
}
|
||||
|
||||
function sheetjs2(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2654)+i;
|
||||
for(;i<M;i++) {
|
||||
a += bstr.charCodeAt(i);
|
||||
b += a;
|
||||
}
|
||||
a = (15*(a>>>16)+(a&65535))
|
||||
b = (15*(b>>>16)+(b&65535))
|
||||
}
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function sheetjs3(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850)+i;
|
||||
for(;i<M;i++) {
|
||||
@ -23,8 +40,8 @@ function sheetjs2(bstr) {
|
||||
return ((b%65521) << 16) | (a%65521);
|
||||
}
|
||||
|
||||
function sheetjs3(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M;
|
||||
function sheetjs4(bstr) {
|
||||
var a = 1, b = 0, L = bstr.length, M = 0;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 5552);
|
||||
for(;M>0;--M) {
|
||||
@ -37,28 +54,33 @@ function sheetjs3(bstr) {
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
var w = 6;
|
||||
var foobar = [255,255,255,255,255,255].map(function(x) { return String.fromCharCode(x); }).join("");
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
foobar += foobar;
|
||||
for(var ff = 0; ff < w; ++ff) foobar += foobar;
|
||||
foobar.charCodeAt(0);
|
||||
var m = 2048;
|
||||
|
||||
var assert = require('assert');
|
||||
var BM = require('./bm');
|
||||
for(var i = 0; i != 14; ++i) {
|
||||
for(var i = 0; i != 6; ++i) foobar += foobar;
|
||||
for(var i = 6; i != 14; ++i) {
|
||||
foobar += foobar;
|
||||
foobar.charCodeAt(0);
|
||||
assert.equal(sheetjs1(foobar), sheetjs3(foobar));
|
||||
assert.equal(sheetjs1(foobar), sheetjs2(foobar));
|
||||
//for(var j = 0; j != 200; ++j) assert.equal(sheetjs2(foobar), sheetjs3(foobar));
|
||||
var suite = new BM('binary string (' + foobar.length + ')');
|
||||
|
||||
var res = old(foobar);
|
||||
assert.equal(res, cur(foobar));
|
||||
assert.equal(res, sheetjs1(foobar));
|
||||
assert.equal(res, sheetjs2(foobar));
|
||||
assert.equal(res, sheetjs3(foobar));
|
||||
assert.equal(res, sheetjs4(foobar));
|
||||
|
||||
var suite = new BM('binary string (' + foobar.length + ')');
|
||||
if(i<3) suite.add('sheetjs 1', function() { for(var j = 0; j != m; ++j) sheetjs1(foobar); });
|
||||
suite.add('sheetjs 2', function() { for(var j = 0; j != m; ++j) sheetjs2(foobar); });
|
||||
suite.add('sheetjs 3', function() { for(var j = 0; j != m; ++j) sheetjs3(foobar); });
|
||||
suite.add('sheetjs 4', function() { for(var j = 0; j != m; ++j) sheetjs4(foobar); });
|
||||
suite.add('last vers', function() { for(var j = 0; j != m; ++j) old(foobar); });
|
||||
suite.add('current v', function() { for(var j = 0; j != m; ++j) cur(foobar); });
|
||||
suite.run();
|
||||
m>>>=1; if(m < 10) m = 10;
|
||||
}
|
||||
|
107
perf/utf8.js
107
perf/utf8.js
@ -1,7 +1,8 @@
|
||||
var table = require('../').table;
|
||||
var old = require('adler-32').str;
|
||||
var cur = require('../').str;
|
||||
|
||||
function sheetjs1(utf8) {
|
||||
var buf = Buffer(utf8);
|
||||
var buf = new Buffer(utf8);
|
||||
var a = 1, b = 0, L = buf.length, M;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3854);
|
||||
@ -12,46 +13,114 @@ function sheetjs1(utf8) {
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return b > 32767 ? (((b - 65536) * 65536) | a) : ((b * 65536) | a);
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
function sheetjs2(utf8) {
|
||||
var a = 1, b = 0, L = utf8.length, M, c, d;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
M = Math.min(L-i, 2654);
|
||||
while(M>0) {
|
||||
c = utf8.charCodeAt(i++);
|
||||
if(c < 0x80) { a += c; b += a; --M; }
|
||||
else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
if(c < 0x80) {
|
||||
a += c; b += a; --M;
|
||||
} else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = utf8.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|(c&3); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
}
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return b > 32767 ? (((b - 65536) * 65536) | a) : ((b * 65536) | a);
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
function sheetjs3(utf8) {
|
||||
var a = 1, b = 0, L = utf8.length, M, c, d;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 2918);
|
||||
while(M>0) {
|
||||
c = utf8.charCodeAt(i++);
|
||||
if(c < 0x80) {
|
||||
a += c; b += a; --M;
|
||||
} else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = utf8.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
}
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
function sheetjs4(utf8) {
|
||||
var a = 1, b = 0, L = utf8.length, M, c, d;
|
||||
for(var i = 0; i < L;) {
|
||||
M = Math.min(L-i, 3850);
|
||||
while(M>0) {
|
||||
c = utf8.charCodeAt(i++);
|
||||
if(c < 0x80) {
|
||||
a += c; b += a; --M;
|
||||
} else if(c < 0x800) {
|
||||
a += 192|((c>>6)&31); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
} else if(c >= 0xD800 && c < 0xE000) {
|
||||
c = (c&1023)+64; d = utf8.charCodeAt(i++) & 1023;
|
||||
a += 240|((c>>8)&7); b += a; --M;
|
||||
a += 128|((c>>2)&63); b += a; --M;
|
||||
a += 128|((d>>6)&15)|((c&3)<<4); b += a; --M;
|
||||
a += 128|(d&63); b += a; --M;
|
||||
} else {
|
||||
a += 224|((c>>12)&15); b += a; --M;
|
||||
a += 128|((c>>6)&63); b += a; --M;
|
||||
a += 128|(c&63); b += a; --M;
|
||||
}
|
||||
}
|
||||
a %= 65521;
|
||||
b %= 65521;
|
||||
}
|
||||
return (b << 16) | a;
|
||||
}
|
||||
|
||||
var foobar = "foo bar baz٪☃🍣";
|
||||
for(var i = 0; i != 11; ++i) foobar += " " + foobar;
|
||||
var assert = require('assert');
|
||||
sheetjs1(foobar); sheetjs2(foobar);
|
||||
assert.equal(sheetjs1(foobar), sheetjs2(foobar));
|
||||
|
||||
var res = old(foobar);
|
||||
assert.equal(res, cur(foobar));
|
||||
assert.equal(res, sheetjs1(foobar));
|
||||
assert.equal(res, sheetjs2(foobar));
|
||||
assert.equal(res, sheetjs3(foobar));
|
||||
assert.equal(res, sheetjs4(foobar));
|
||||
|
||||
|
||||
var BM = require('./bm');
|
||||
var suite = new BM('unicode string');
|
||||
|
||||
suite.add('sheetjs 1', function() { for(var j = 0; j != 1000; ++j) sheetjs1(foobar); });
|
||||
suite.add('sheetjs 2', function() { for(var j = 0; j != 1000; ++j) sheetjs2(foobar); });
|
||||
suite.add('sheetjs 3', function() { for(var j = 0; j != 1000; ++j) sheetjs3(foobar); });
|
||||
suite.add('sheetjs 4', function() { for(var j = 0; j != 1000; ++j) sheetjs4(foobar); });
|
||||
suite.add('last vers', function() { for(var j = 0; j != 1000; ++j) old(foobar); });
|
||||
suite.add('current v', function() { for(var j = 0; j != 1000; ++j) cur(foobar); });
|
||||
suite.run();
|
||||
|
237
shim.js
Normal file
237
shim.js
Normal file
@ -0,0 +1,237 @@
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
|
||||
if (!Object.keys) {
|
||||
Object.keys = (function () {
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
],
|
||||
dontEnumsLength = dontEnums.length;
|
||||
|
||||
return function (obj) {
|
||||
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
|
||||
|
||||
var result = [];
|
||||
|
||||
for (var prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) result.push(prop);
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (var i=0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter)
|
||||
{
|
||||
Array.prototype.filter = function(fun /*, thisp */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this == null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun != "function")
|
||||
throw new TypeError();
|
||||
|
||||
var res = [];
|
||||
var thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
{
|
||||
var val = t[i]; // in case fun mutates this
|
||||
if (fun.call(thisp, val, i, t))
|
||||
res.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
|
||||
if (!String.prototype.trim) {
|
||||
String.prototype.trim = function () {
|
||||
return this.replace(/^\s+|\s+$/g, '');
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
|
||||
if (!Array.prototype.forEach)
|
||||
{
|
||||
Array.prototype.forEach = function(fun /*, thisArg */)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
||||
for (var i = 0; i < len; i++)
|
||||
{
|
||||
if (i in t)
|
||||
fun.call(thisArg, t[i], i, t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Production steps of ECMA-262, Edition 5, 15.4.4.19
|
||||
// Reference: http://es5.github.com/#x15.4.4.19
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = function(callback, thisArg) {
|
||||
|
||||
var T, A, k;
|
||||
|
||||
if (this == null) {
|
||||
throw new TypeError(" this is null or not defined");
|
||||
}
|
||||
|
||||
// 1. Let O be the result of calling ToObject passing the |this| value as the argument.
|
||||
var O = Object(this);
|
||||
|
||||
// 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
|
||||
// 3. Let len be ToUint32(lenValue).
|
||||
var len = O.length >>> 0;
|
||||
|
||||
// 4. If IsCallable(callback) is false, throw a TypeError exception.
|
||||
// See: http://es5.github.com/#x9.11
|
||||
if (typeof callback !== "function") {
|
||||
throw new TypeError(callback + " is not a function");
|
||||
}
|
||||
|
||||
// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||||
if (thisArg) {
|
||||
T = thisArg;
|
||||
}
|
||||
|
||||
// 6. Let A be a new array created as if by the expression new Array(len) where Array is
|
||||
// the standard built-in constructor with that name and len is the value of len.
|
||||
A = new Array(len);
|
||||
|
||||
// 7. Let k be 0
|
||||
k = 0;
|
||||
|
||||
// 8. Repeat, while k < len
|
||||
while(k < len) {
|
||||
|
||||
var kValue, mappedValue;
|
||||
|
||||
// a. Let Pk be ToString(k).
|
||||
// This is implicit for LHS operands of the in operator
|
||||
// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
|
||||
// This step can be combined with c
|
||||
// c. If kPresent is true, then
|
||||
if (k in O) {
|
||||
|
||||
// i. Let kValue be the result of calling the Get internal method of O with argument Pk.
|
||||
kValue = O[ k ];
|
||||
|
||||
// ii. Let mappedValue be the result of calling the Call internal method of callback
|
||||
// with T as the this value and argument list containing kValue, k, and O.
|
||||
mappedValue = callback.call(T, kValue, k, O);
|
||||
|
||||
// iii. Call the DefineOwnProperty internal method of A with arguments
|
||||
// Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true},
|
||||
// and false.
|
||||
|
||||
// In browsers that support Object.defineProperty, use the following:
|
||||
// Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });
|
||||
|
||||
// For best browser support, use the following:
|
||||
A[ k ] = mappedValue;
|
||||
}
|
||||
// d. Increase k by 1.
|
||||
k++;
|
||||
}
|
||||
|
||||
// 9. return A
|
||||
return A;
|
||||
};
|
||||
}
|
||||
|
||||
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function (searchElement, fromIndex) {
|
||||
if ( this === undefined || this === null ) {
|
||||
throw new TypeError( '"this" is null or not defined' );
|
||||
}
|
||||
|
||||
var length = this.length >>> 0; // Hack to convert object.length to a UInt32
|
||||
|
||||
fromIndex = +fromIndex || 0;
|
||||
|
||||
if (Math.abs(fromIndex) === Infinity) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
|
||||
if (fromIndex < 0) {
|
||||
fromIndex += length;
|
||||
if (fromIndex < 0) {
|
||||
fromIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (;fromIndex < length; fromIndex++) {
|
||||
if (this[fromIndex] === searchElement) {
|
||||
return fromIndex;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
|
||||
|
||||
if (! Array.isArray) {
|
||||
Array.isArray = function(obj) {
|
||||
return Object.prototype.toString.call(obj) === "[object Array]";
|
||||
};
|
||||
}
|
||||
|
||||
// https://github.com/ttaubert/node-arraybuffer-slice
|
||||
// (c) 2013 Tim Taubert <tim@timtaubert.de>
|
||||
// arraybuffer-slice may be freely distributed under the MIT license.
|
||||
|
||||
"use strict";
|
||||
|
||||
if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
|
||||
ArrayBuffer.prototype.slice = function (begin, end) {
|
||||
begin = (begin|0) || 0;
|
||||
var num = this.byteLength;
|
||||
end = end === (void 0) ? num : (end|0);
|
||||
|
||||
// Handle negative values.
|
||||
if (begin < 0) begin += num;
|
||||
if (end < 0) end += num;
|
||||
|
||||
if (num === 0 || begin >= num || begin >= end) {
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
var length = Math.min(num - begin, end - begin);
|
||||
var target = new ArrayBuffer(length);
|
||||
var targetArray = new Uint8Array(target);
|
||||
targetArray.set(new Uint8Array(this, begin, length));
|
||||
return target;
|
||||
};
|
||||
}
|
69
test.js
69
test.js
@ -7,17 +7,51 @@ if(typeof require !== 'undefined') {
|
||||
fs = require("fs");
|
||||
} else { X = ADLER32; }
|
||||
|
||||
function readlines(f) { return fs.readFileSync(f, "ascii").split("\n").filter(function(f) { return !!f; }); }
|
||||
function readlines(f) { return fs.readFileSync(f, "ascii").split("\n"); }
|
||||
|
||||
function msieversion()
|
||||
{
|
||||
if(typeof window == 'undefined') return Infinity;
|
||||
if(typeof window.navigator == 'undefined') return Infinity;
|
||||
var ua = window.navigator.userAgent
|
||||
var msie = ua.indexOf ( "MSIE " )
|
||||
if(msie < 0) return Infinity;
|
||||
return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )));
|
||||
}
|
||||
|
||||
var Buffer_from = function(){};
|
||||
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var nbfs = !Buffer.from;
|
||||
if(!nbfs) try { Buffer.from("foo", "utf8"); } catch(e) { nbfs = true; }
|
||||
Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);
|
||||
}
|
||||
|
||||
describe('adler32 bits', function() {
|
||||
bits.forEach(function(i) {
|
||||
var l = i[0].length;
|
||||
var msg = i[0];
|
||||
var msg = i[0], l = i[0].length, L = i[1]|0;
|
||||
if(l > 20) msg = i[0].substr(0,5) + "...(" + l + ")..." + i[0].substr(-5);
|
||||
if(l > 100 && msieversion() < 9) return;
|
||||
if(l > 20000 && typeof Buffer === 'undefined') return;
|
||||
it(msg, function() {
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), i[1]|0);
|
||||
if(i[2] === 1) assert.equal(X.bstr(i[0]), L);
|
||||
assert.equal(X.str(i[0]), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(new Buffer(i[0])), i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') assert.equal(X.buf(Buffer_from(i[0])), L);
|
||||
var len = i[0].length, step = len < 20000 ? 1 : len < 50000 ? Math.ceil(len / 20000) : Math.ceil(len / 2000);
|
||||
for(var x = 0; x < len; x += step) {
|
||||
if(i[0].charCodeAt(x) >= 0xD800 && i[0].charCodeAt(x) < 0xE000) continue;
|
||||
if(i[2] === 1) {
|
||||
var bstradl = X.bstr(i[0].substr(x), X.bstr(i[0].substr(0, x)));
|
||||
assert.equal(bstradl, L);
|
||||
}
|
||||
var stradl = X.str(i[0].substr(x), X.str(i[0].substr(0, x)));
|
||||
assert.equal(stradl, i[1]|0);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var buf = Buffer_from(i[0]);
|
||||
var bufadl = X.buf(buf.slice(x), X.buf(buf.slice(0, x)));
|
||||
assert.equal(bufadl, L);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -29,12 +63,27 @@ if(typeof require !== 'undefined') describe("unicode", function() {
|
||||
if(!fs.existsSync("./test_files/baseline." + cat + ".txt")) return;
|
||||
var corpus = readlines("./test_files/baseline." + cat + ".txt");
|
||||
var uctable = require("./test_files/uctable." + cat + ".js");
|
||||
uctable.forEach(function(c, i) {
|
||||
for(var ucidx = 0; ucidx < uctable.length; ++ucidx) {
|
||||
var c = uctable[ucidx];
|
||||
/* since the baselines are passed via utf8, discard invalid codes */
|
||||
if(c.charCodeAt(0) >= 0xD800 && c.charCodeAt(0) < 0xE000) return;
|
||||
var cc = corpus[i], dd = X.str(c);
|
||||
assert.equal(dd, cc, ":" + i + ":" + c + ":" + cc + ":" + dd);
|
||||
});
|
||||
if(c.charCodeAt(0) >= 0xD800 && c.charCodeAt(0) < 0xE000) continue;
|
||||
var cc = corpus[ucidx], dd = X.str(c);
|
||||
assert.equal(dd, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + dd);
|
||||
if(typeof Buffer !== 'undefined') {
|
||||
var ee = X.buf(Buffer_from(c, "utf8"));
|
||||
assert.equal(ee, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ee);
|
||||
var ff = X.bstr(String.fromCharCode.apply(null, Buffer_from(c, "utf8")));
|
||||
assert.equal(ff, cc, ":" + ucidx + ":" + c + ":" + cc + ":" + ff);
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
if(typeof require !== 'undefined') describe("corpora", function() {
|
||||
require("./test_files/corpus.json").forEach(function(text) {
|
||||
if(!fs.existsSync(text[1])) return;
|
||||
it("should match '" + text[0] + "' (" + text[2] + ")", function() {
|
||||
assert.equal(text[2], X.buf(fs.readFileSync(text[1])));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
993590
test_files/baseline.C.txt
Normal file
993590
test_files/baseline.C.txt
Normal file
File diff suppressed because it is too large
Load Diff
65
test_files/baseline.Cc.txt
Normal file
65
test_files/baseline.Cc.txt
Normal file
@ -0,0 +1,65 @@
|
||||
65537
|
||||
131074
|
||||
196611
|
||||
262148
|
||||
327685
|
||||
393222
|
||||
458759
|
||||
524296
|
||||
589833
|
||||
655370
|
||||
720907
|
||||
786444
|
||||
851981
|
||||
917518
|
||||
983055
|
||||
1048592
|
||||
1114129
|
||||
1179666
|
||||
1245203
|
||||
1310740
|
||||
1376277
|
||||
1441814
|
||||
1507351
|
||||
1572888
|
||||
1638425
|
||||
1703962
|
||||
1769499
|
||||
1835036
|
||||
1900573
|
||||
1966110
|
||||
2031647
|
||||
2097184
|
||||
8388736
|
||||
33947971
|
||||
34013508
|
||||
34079045
|
||||
34144582
|
||||
34210119
|
||||
34275656
|
||||
34341193
|
||||
34406730
|
||||
34472267
|
||||
34537804
|
||||
34603341
|
||||
34668878
|
||||
34734415
|
||||
34799952
|
||||
34865489
|
||||
34931026
|
||||
34996563
|
||||
35062100
|
||||
35127637
|
||||
35193174
|
||||
35258711
|
||||
35324248
|
||||
35389785
|
||||
35455322
|
||||
35520859
|
||||
35586396
|
||||
35651933
|
||||
35717470
|
||||
35783007
|
||||
35848544
|
||||
35914081
|
||||
35979618
|
150
test_files/baseline.Cf.txt
Normal file
150
test_files/baseline.Cf.txt
Normal file
@ -0,0 +1,150 @@
|
||||
36897136
|
||||
36831577
|
||||
36897114
|
||||
36962651
|
||||
37028188
|
||||
37093725
|
||||
37159262
|
||||
38666613
|
||||
39125369
|
||||
38338924
|
||||
74711568
|
||||
70517230
|
||||
70582767
|
||||
70648304
|
||||
70713841
|
||||
70779378
|
||||
72548877
|
||||
72614414
|
||||
72679951
|
||||
72745488
|
||||
72811025
|
||||
72024580
|
||||
72090117
|
||||
72155654
|
||||
72221191
|
||||
72286728
|
||||
72417802
|
||||
72483339
|
||||
72548876
|
||||
72614413
|
||||
72679950
|
||||
72745487
|
||||
72811024
|
||||
72876561
|
||||
72942098
|
||||
73007635
|
||||
84214378
|
||||
84345448
|
||||
84410985
|
||||
84476522
|
||||
121111233
|
||||
127468254
|
||||
127533791
|
||||
127599328
|
||||
127664865
|
||||
123208390
|
||||
123273927
|
||||
123339464
|
||||
123405001
|
||||
123470538
|
||||
123536075
|
||||
123601612
|
||||
123667149
|
||||
120652437
|
||||
122684084
|
||||
122749621
|
||||
122815158
|
||||
122880695
|
||||
122946232
|
||||
123011769
|
||||
123077306
|
||||
123142843
|
||||
123208380
|
||||
123273917
|
||||
123339454
|
||||
123404991
|
||||
123470528
|
||||
123536065
|
||||
123601602
|
||||
123667139
|
||||
123732676
|
||||
123798213
|
||||
123863750
|
||||
123929287
|
||||
123994824
|
||||
124060361
|
||||
124125898
|
||||
124191435
|
||||
124256972
|
||||
124322509
|
||||
124388046
|
||||
124453583
|
||||
124519120
|
||||
124584657
|
||||
124650194
|
||||
124715731
|
||||
120717973
|
||||
120783510
|
||||
120849047
|
||||
120914584
|
||||
120980121
|
||||
121045658
|
||||
121111195
|
||||
121176732
|
||||
121242269
|
||||
121307806
|
||||
121373343
|
||||
121438880
|
||||
121504417
|
||||
121569954
|
||||
121635491
|
||||
121701028
|
||||
121766565
|
||||
121832102
|
||||
121897639
|
||||
121963176
|
||||
122028713
|
||||
122094250
|
||||
122159787
|
||||
122225324
|
||||
122290861
|
||||
122356398
|
||||
122421935
|
||||
122487472
|
||||
122553009
|
||||
122618546
|
||||
122684083
|
||||
122749620
|
||||
122815157
|
||||
122880694
|
||||
122946231
|
||||
123011768
|
||||
123077305
|
||||
123142842
|
||||
123208379
|
||||
123273916
|
||||
123339453
|
||||
123404990
|
||||
123470527
|
||||
123536064
|
||||
123601601
|
||||
123667138
|
||||
123732675
|
||||
123798212
|
||||
123863749
|
||||
123929286
|
||||
123994823
|
||||
124060360
|
||||
124125897
|
||||
124191434
|
||||
124256971
|
||||
124322508
|
||||
124388045
|
||||
124453582
|
||||
124519119
|
||||
124584656
|
||||
124650193
|
||||
124715730
|
||||
124781267
|
||||
124846804
|
853859
test_files/baseline.Cn.txt
Normal file
853859
test_files/baseline.Cn.txt
Normal file
File diff suppressed because it is too large
Load Diff
137468
test_files/baseline.Co.txt
Normal file
137468
test_files/baseline.Co.txt
Normal file
File diff suppressed because it is too large
Load Diff
2048
test_files/baseline.Cs.txt
Normal file
2048
test_files/baseline.Cs.txt
Normal file
File diff suppressed because it is too large
Load Diff
109591
test_files/baseline.L.txt
Normal file
109591
test_files/baseline.L.txt
Normal file
File diff suppressed because it is too large
Load Diff
3646
test_files/baseline.LC.txt
Normal file
3646
test_files/baseline.LC.txt
Normal file
File diff suppressed because it is too large
Load Diff
1984
test_files/baseline.Ll.txt
Normal file
1984
test_files/baseline.Ll.txt
Normal file
File diff suppressed because it is too large
Load Diff
248
test_files/baseline.Lm.txt
Normal file
248
test_files/baseline.Lm.txt
Normal file
@ -0,0 +1,248 @@
|
||||
38142331
|
||||
38207868
|
||||
38273405
|
||||
38338942
|
||||
38404479
|
||||
38470016
|
||||
38535553
|
||||
38601090
|
||||
38666627
|
||||
38732164
|
||||
38797701
|
||||
38863238
|
||||
38928775
|
||||
38994312
|
||||
39059849
|
||||
39125386
|
||||
35127628
|
||||
35193165
|
||||
35520850
|
||||
35586387
|
||||
35651924
|
||||
35717461
|
||||
35782998
|
||||
35848535
|
||||
35914072
|
||||
35979609
|
||||
36045146
|
||||
36110683
|
||||
36176220
|
||||
36241757
|
||||
37224812
|
||||
37290349
|
||||
37355886
|
||||
37421423
|
||||
37486960
|
||||
38011256
|
||||
38142330
|
||||
38797698
|
||||
39190920
|
||||
38076783
|
||||
36962650
|
||||
39649665
|
||||
39715202
|
||||
41157012
|
||||
41222549
|
||||
41550234
|
||||
75301403
|
||||
75956773
|
||||
76218921
|
||||
77464119
|
||||
77267488
|
||||
77529634
|
||||
73925153
|
||||
75170328
|
||||
74121734
|
||||
77660723
|
||||
79692363
|
||||
79757900
|
||||
79823437
|
||||
79888974
|
||||
79954511
|
||||
80020048
|
||||
79299138
|
||||
79364675
|
||||
79430212
|
||||
79495749
|
||||
79561286
|
||||
79626823
|
||||
79692360
|
||||
79757897
|
||||
79823434
|
||||
79888971
|
||||
79954508
|
||||
80020045
|
||||
80085582
|
||||
80151119
|
||||
80216656
|
||||
80282193
|
||||
80347730
|
||||
80413267
|
||||
80478804
|
||||
80544341
|
||||
76546583
|
||||
76612120
|
||||
76677657
|
||||
76743194
|
||||
76808731
|
||||
76874268
|
||||
76939805
|
||||
77005342
|
||||
77070879
|
||||
77136416
|
||||
77201953
|
||||
77267490
|
||||
77333027
|
||||
77398564
|
||||
77464101
|
||||
77529638
|
||||
77595175
|
||||
77660712
|
||||
77726249
|
||||
77791786
|
||||
77857323
|
||||
77922860
|
||||
77988397
|
||||
78053934
|
||||
78119471
|
||||
78185008
|
||||
78250545
|
||||
78316082
|
||||
78381619
|
||||
78447156
|
||||
78512693
|
||||
78578230
|
||||
78643767
|
||||
78709304
|
||||
78774841
|
||||
78840378
|
||||
78905915
|
||||
78971452
|
||||
79036989
|
||||
79102526
|
||||
79168063
|
||||
79233600
|
||||
79299137
|
||||
80216655
|
||||
78447155
|
||||
78512692
|
||||
78578229
|
||||
78643766
|
||||
78709303
|
||||
78774840
|
||||
78840377
|
||||
78905914
|
||||
78971451
|
||||
79036988
|
||||
79102525
|
||||
79168062
|
||||
79233599
|
||||
79299136
|
||||
79364673
|
||||
79430210
|
||||
79495747
|
||||
79561284
|
||||
79626821
|
||||
79692358
|
||||
79757895
|
||||
79823432
|
||||
79888969
|
||||
79954506
|
||||
80020043
|
||||
80085580
|
||||
80151117
|
||||
80216654
|
||||
80282191
|
||||
80347728
|
||||
80413265
|
||||
80478802
|
||||
80544339
|
||||
80609876
|
||||
80675413
|
||||
80740950
|
||||
80806487
|
||||
73138709
|
||||
74056227
|
||||
71107061
|
||||
71172598
|
||||
71238135
|
||||
71303672
|
||||
71369209
|
||||
71434746
|
||||
71500283
|
||||
71565820
|
||||
71631357
|
||||
71696894
|
||||
71762431
|
||||
71827968
|
||||
71893505
|
||||
80151120
|
||||
80216657
|
||||
79823431
|
||||
80216650
|
||||
70320617
|
||||
73204245
|
||||
73269782
|
||||
73335319
|
||||
73400856
|
||||
73466393
|
||||
73859615
|
||||
72155651
|
||||
72221188
|
||||
74318371
|
||||
74383908
|
||||
74449445
|
||||
72745472
|
||||
77529654
|
||||
77595191
|
||||
77660728
|
||||
77726265
|
||||
77791802
|
||||
77857339
|
||||
75301391
|
||||
78774851
|
||||
76612129
|
||||
76677666
|
||||
76546590
|
||||
76612127
|
||||
76677664
|
||||
76743201
|
||||
76808738
|
||||
76874275
|
||||
76939812
|
||||
77005349
|
||||
77070886
|
||||
78316088
|
||||
75825681
|
||||
79102530
|
||||
79168067
|
||||
77464097
|
||||
78971448
|
||||
79888964
|
||||
78905907
|
||||
80347721
|
||||
80413258
|
||||
79102516
|
||||
79168053
|
||||
79233590
|
||||
79299127
|
||||
83493469
|
||||
82444876
|
||||
82510413
|
||||
123732660
|
||||
123798197
|
||||
123863734
|
||||
123929271
|
||||
127206104
|
||||
127271641
|
||||
127337178
|
||||
127402715
|
||||
127468252
|
||||
127533789
|
||||
127599326
|
||||
127664863
|
||||
127730400
|
||||
127795937
|
||||
127861474
|
||||
127927011
|
||||
127992548
|
105697
test_files/baseline.Lo.txt
Normal file
105697
test_files/baseline.Lo.txt
Normal file
File diff suppressed because it is too large
Load Diff
31
test_files/baseline.Lt.txt
Normal file
31
test_files/baseline.Lt.txt
Normal file
@ -0,0 +1,31 @@
|
||||
34931021
|
||||
35127632
|
||||
35324243
|
||||
37880186
|
||||
78250536
|
||||
78316073
|
||||
78381610
|
||||
78447147
|
||||
78512684
|
||||
78578221
|
||||
78643758
|
||||
78709295
|
||||
79299128
|
||||
79364665
|
||||
79430202
|
||||
79495739
|
||||
79561276
|
||||
79626813
|
||||
79692350
|
||||
79757887
|
||||
80347720
|
||||
80413257
|
||||
80478794
|
||||
80544331
|
||||
80609868
|
||||
80675405
|
||||
80740942
|
||||
80806479
|
||||
81658460
|
||||
78643757
|
||||
81789533
|
1631
test_files/baseline.Lu.txt
Normal file
1631
test_files/baseline.Lu.txt
Normal file
File diff suppressed because it is too large
Load Diff
1963
test_files/baseline.M.txt
Normal file
1963
test_files/baseline.M.txt
Normal file
File diff suppressed because it is too large
Load Diff
383
test_files/baseline.Mc.txt
Normal file
383
test_files/baseline.Mc.txt
Normal file
@ -0,0 +1,383 @@
|
||||
74318344
|
||||
77988416
|
||||
78185027
|
||||
78250564
|
||||
74252806
|
||||
74842639
|
||||
74908176
|
||||
74973713
|
||||
75039250
|
||||
75170324
|
||||
75235861
|
||||
74514953
|
||||
74580490
|
||||
78447173
|
||||
78512710
|
||||
74514952
|
||||
74973711
|
||||
75039248
|
||||
75235859
|
||||
75301396
|
||||
76022303
|
||||
74842636
|
||||
78709319
|
||||
78774856
|
||||
74777098
|
||||
75104782
|
||||
78971465
|
||||
79037002
|
||||
75039244
|
||||
75629077
|
||||
75760151
|
||||
75825688
|
||||
75301391
|
||||
75366928
|
||||
79233611
|
||||
75301390
|
||||
75760149
|
||||
75825686
|
||||
76022297
|
||||
76087834
|
||||
76808741
|
||||
79495757
|
||||
79561294
|
||||
75629073
|
||||
75694610
|
||||
75956758
|
||||
76022295
|
||||
76087832
|
||||
76218906
|
||||
76284443
|
||||
76349980
|
||||
77070887
|
||||
75760146
|
||||
75825683
|
||||
75891220
|
||||
75891219
|
||||
75956756
|
||||
76022293
|
||||
76087830
|
||||
76087829
|
||||
76153366
|
||||
80020049
|
||||
76087828
|
||||
76153365
|
||||
76218902
|
||||
76284439
|
||||
76349976
|
||||
76546587
|
||||
76612124
|
||||
76743198
|
||||
76808735
|
||||
77464105
|
||||
77529642
|
||||
76349975
|
||||
76415512
|
||||
80282195
|
||||
80347732
|
||||
76349974
|
||||
76743196
|
||||
76808733
|
||||
76874270
|
||||
77005344
|
||||
77070881
|
||||
77136418
|
||||
77857325
|
||||
76612121
|
||||
76677658
|
||||
77595175
|
||||
77660712
|
||||
77726249
|
||||
78185008
|
||||
78250545
|
||||
78316082
|
||||
78381619
|
||||
78447156
|
||||
78512693
|
||||
78578230
|
||||
78643767
|
||||
79888970
|
||||
79954507
|
||||
81330779
|
||||
81396316
|
||||
81527389
|
||||
72417805
|
||||
72483342
|
||||
72811027
|
||||
73269786
|
||||
73466397
|
||||
73531934
|
||||
71172601
|
||||
71238138
|
||||
71959045
|
||||
72024582
|
||||
72090119
|
||||
72286730
|
||||
72352267
|
||||
72417804
|
||||
72483341
|
||||
72548878
|
||||
72614415
|
||||
72679952
|
||||
70058471
|
||||
70124008
|
||||
70320619
|
||||
70386156
|
||||
70451693
|
||||
70517230
|
||||
70582767
|
||||
70648304
|
||||
70844915
|
||||
71565822
|
||||
71631359
|
||||
71696896
|
||||
77070902
|
||||
77595198
|
||||
77660735
|
||||
73662977
|
||||
73728514
|
||||
73794051
|
||||
73859588
|
||||
73925125
|
||||
73990662
|
||||
74121736
|
||||
74187273
|
||||
76612137
|
||||
76677674
|
||||
76743211
|
||||
76808748
|
||||
77005359
|
||||
77070896
|
||||
77136433
|
||||
77464118
|
||||
77529655
|
||||
77660729
|
||||
77726266
|
||||
77791803
|
||||
77857340
|
||||
77922877
|
||||
77988414
|
||||
76481059
|
||||
76546596
|
||||
76349984
|
||||
76481058
|
||||
77136428
|
||||
77267502
|
||||
77333039
|
||||
77922872
|
||||
77988409
|
||||
78053946
|
||||
78119483
|
||||
78185020
|
||||
78250557
|
||||
75629074
|
||||
78840387
|
||||
79233609
|
||||
79364683
|
||||
79430220
|
||||
79495757
|
||||
75497999
|
||||
75563536
|
||||
75694610
|
||||
75760147
|
||||
75760146
|
||||
77791793
|
||||
78119478
|
||||
78185015
|
||||
78381626
|
||||
78316088
|
||||
78512699
|
||||
78578236
|
||||
78643773
|
||||
78774847
|
||||
79036995
|
||||
79102532
|
||||
78250550
|
||||
78316087
|
||||
78381624
|
||||
78447161
|
||||
78512698
|
||||
78578235
|
||||
78643772
|
||||
78709309
|
||||
79299142
|
||||
79364679
|
||||
78447158
|
||||
79561287
|
||||
79626824
|
||||
73007634
|
||||
73073171
|
||||
77857326
|
||||
77922863
|
||||
78119474
|
||||
75825677
|
||||
75891214
|
||||
79233601
|
||||
79299138
|
||||
79364675
|
||||
79430212
|
||||
79495749
|
||||
79561286
|
||||
79626823
|
||||
79692360
|
||||
79757897
|
||||
79823434
|
||||
79888971
|
||||
79954508
|
||||
75956750
|
||||
76022287
|
||||
76087824
|
||||
76153361
|
||||
77398562
|
||||
77464099
|
||||
76546580
|
||||
79757893
|
||||
79823430
|
||||
80151115
|
||||
80216652
|
||||
80347726
|
||||
80413263
|
||||
80478800
|
||||
76481042
|
||||
79692354
|
||||
79757891
|
||||
79954502
|
||||
80020039
|
||||
77595169
|
||||
80609871
|
||||
80740945
|
||||
79823425
|
||||
80020036
|
||||
80085573
|
||||
80478795
|
||||
79823421
|
||||
79888958
|
||||
80020032
|
||||
80085569
|
||||
80216643
|
||||
80282180
|
||||
80413254
|
||||
116851330
|
||||
116982404
|
||||
117244550
|
||||
120259252
|
||||
120324789
|
||||
120390326
|
||||
120718011
|
||||
120783548
|
||||
120259250
|
||||
117768842
|
||||
120980155
|
||||
121045692
|
||||
121111229
|
||||
121766599
|
||||
117768841
|
||||
120783542
|
||||
120849079
|
||||
120914616
|
||||
121176764
|
||||
121242301
|
||||
121373375
|
||||
120390317
|
||||
120455854
|
||||
120521391
|
||||
118555280
|
||||
118620817
|
||||
122487500
|
||||
122553037
|
||||
118620816
|
||||
118686353
|
||||
118751890
|
||||
118817427
|
||||
119014038
|
||||
119079575
|
||||
119276186
|
||||
119341723
|
||||
119407260
|
||||
120062630
|
||||
120783537
|
||||
120849074
|
||||
122356420
|
||||
122421957
|
||||
122487494
|
||||
122946253
|
||||
123077327
|
||||
123142864
|
||||
123208401
|
||||
123273938
|
||||
119407254
|
||||
122815175
|
||||
122880712
|
||||
122946249
|
||||
123405008
|
||||
123470545
|
||||
123536082
|
||||
123601619
|
||||
123798230
|
||||
123142858
|
||||
123208395
|
||||
123273932
|
||||
123863765
|
||||
123929302
|
||||
124060376
|
||||
123142856
|
||||
123273930
|
||||
123339467
|
||||
123798226
|
||||
122618558
|
||||
122684095
|
||||
123011780
|
||||
126943957
|
||||
127009494
|
||||
127075031
|
||||
127140568
|
||||
127206105
|
||||
127271642
|
||||
127337179
|
||||
127402716
|
||||
127468253
|
||||
127533790
|
||||
127599327
|
||||
127664864
|
||||
127730401
|
||||
127795938
|
||||
127861475
|
||||
127927012
|
||||
127992549
|
||||
128058086
|
||||
128123623
|
||||
128189160
|
||||
128254697
|
||||
128320234
|
||||
128385771
|
||||
128451308
|
||||
128516845
|
||||
128582382
|
||||
128647919
|
||||
128713456
|
||||
128778993
|
||||
128844530
|
||||
128910067
|
||||
128975604
|
||||
129041141
|
||||
129106678
|
||||
129172215
|
||||
129237752
|
||||
129303289
|
||||
129368826
|
||||
129434363
|
||||
129499900
|
||||
129565437
|
||||
129630974
|
||||
129696511
|
||||
129762048
|
||||
129827585
|
||||
129893122
|
||||
122290872
|
||||
122356409
|
||||
122815168
|
||||
122880705
|
||||
122946242
|
||||
123011779
|
||||
123077316
|
||||
123142853
|
13
test_files/baseline.Me.txt
Normal file
13
test_files/baseline.Me.txt
Normal file
@ -0,0 +1,13 @@
|
||||
36569435
|
||||
36634972
|
||||
79168074
|
||||
72090115
|
||||
72155652
|
||||
72221189
|
||||
72286726
|
||||
72417800
|
||||
72483337
|
||||
72548874
|
||||
77791796
|
||||
77857333
|
||||
77922870
|
1567
test_files/baseline.Mn.txt
Normal file
1567
test_files/baseline.Mn.txt
Normal file
File diff suppressed because it is too large
Load Diff
1433
test_files/baseline.N.txt
Normal file
1433
test_files/baseline.N.txt
Normal file
File diff suppressed because it is too large
Load Diff
550
test_files/baseline.Nd.txt
Normal file
550
test_files/baseline.Nd.txt
Normal file
@ -0,0 +1,550 @@
|
||||
3211313
|
||||
3276850
|
||||
3342387
|
||||
3407924
|
||||
3473461
|
||||
3538998
|
||||
3604535
|
||||
3670072
|
||||
3735609
|
||||
3801146
|
||||
39059834
|
||||
39125371
|
||||
39190908
|
||||
39256445
|
||||
39321982
|
||||
39387519
|
||||
39453056
|
||||
39518593
|
||||
39584130
|
||||
39649667
|
||||
40370572
|
||||
40436109
|
||||
40501646
|
||||
40567183
|
||||
40632720
|
||||
40698257
|
||||
40763794
|
||||
40829331
|
||||
40894868
|
||||
40960405
|
||||
37749088
|
||||
37814625
|
||||
37880162
|
||||
37945699
|
||||
38011236
|
||||
38076773
|
||||
38142310
|
||||
38207847
|
||||
38273384
|
||||
38338921
|
||||
76743212
|
||||
76808749
|
||||
76874286
|
||||
76939823
|
||||
77005360
|
||||
77070897
|
||||
77136434
|
||||
77201971
|
||||
77267508
|
||||
77333045
|
||||
77005358
|
||||
77070895
|
||||
77136432
|
||||
77201969
|
||||
77267506
|
||||
77333043
|
||||
77398580
|
||||
77464117
|
||||
77529654
|
||||
77595191
|
||||
77267504
|
||||
77333041
|
||||
77398578
|
||||
77464115
|
||||
77529652
|
||||
77595189
|
||||
77660726
|
||||
77726263
|
||||
77791800
|
||||
77857337
|
||||
77529650
|
||||
77595187
|
||||
77660724
|
||||
77726261
|
||||
77791798
|
||||
77857335
|
||||
77922872
|
||||
77988409
|
||||
78053946
|
||||
78119483
|
||||
77791796
|
||||
77857333
|
||||
77922870
|
||||
77988407
|
||||
78053944
|
||||
78119481
|
||||
78185018
|
||||
78250555
|
||||
78316092
|
||||
78381629
|
||||
78053942
|
||||
78119479
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
78578238
|
||||
78643775
|
||||
78316088
|
||||
78381625
|
||||
78447162
|
||||
78512699
|
||||
78578236
|
||||
78643773
|
||||
78709310
|
||||
78774847
|
||||
78840384
|
||||
78905921
|
||||
78578234
|
||||
78643771
|
||||
78709308
|
||||
78774845
|
||||
78840382
|
||||
78905919
|
||||
78971456
|
||||
79036993
|
||||
79102530
|
||||
79168067
|
||||
78840380
|
||||
78905917
|
||||
78971454
|
||||
79036991
|
||||
79102528
|
||||
79168065
|
||||
79233602
|
||||
79299139
|
||||
79364676
|
||||
79430213
|
||||
79102526
|
||||
79168063
|
||||
79233600
|
||||
79299137
|
||||
79364674
|
||||
79430211
|
||||
79495748
|
||||
79561285
|
||||
79626822
|
||||
79692359
|
||||
77922858
|
||||
77988395
|
||||
78053932
|
||||
78119469
|
||||
78185006
|
||||
78250543
|
||||
78316080
|
||||
78381617
|
||||
78447154
|
||||
78512691
|
||||
78185004
|
||||
78250541
|
||||
78316078
|
||||
78381615
|
||||
78447152
|
||||
78512689
|
||||
78578226
|
||||
78643763
|
||||
78709300
|
||||
78774837
|
||||
79364669
|
||||
79430206
|
||||
79495743
|
||||
79561280
|
||||
79626817
|
||||
79692354
|
||||
79757891
|
||||
79823428
|
||||
79888965
|
||||
79954502
|
||||
69730787
|
||||
69796324
|
||||
69861861
|
||||
69927398
|
||||
69992935
|
||||
70058472
|
||||
70124009
|
||||
70189546
|
||||
70255083
|
||||
70320620
|
||||
70910452
|
||||
70975989
|
||||
71041526
|
||||
71107063
|
||||
71172600
|
||||
71238137
|
||||
71303674
|
||||
71369211
|
||||
71434748
|
||||
71500285
|
||||
75760161
|
||||
75825698
|
||||
75891235
|
||||
75956772
|
||||
76022309
|
||||
76087846
|
||||
76153383
|
||||
76218920
|
||||
76284457
|
||||
76349994
|
||||
74842642
|
||||
74908179
|
||||
74973716
|
||||
75039253
|
||||
75104790
|
||||
75170327
|
||||
75235864
|
||||
75301401
|
||||
75366938
|
||||
75432475
|
||||
74842637
|
||||
74908174
|
||||
74973711
|
||||
75039248
|
||||
75104785
|
||||
75170322
|
||||
75235859
|
||||
75301396
|
||||
75366933
|
||||
75432470
|
||||
75760153
|
||||
75825690
|
||||
75891227
|
||||
75956764
|
||||
76022301
|
||||
76087838
|
||||
76153375
|
||||
76218912
|
||||
76284449
|
||||
76349986
|
||||
75104780
|
||||
75170317
|
||||
75235854
|
||||
75301391
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
75563539
|
||||
75629076
|
||||
75694613
|
||||
76153372
|
||||
76218909
|
||||
76284446
|
||||
76349983
|
||||
76415520
|
||||
76481057
|
||||
76546594
|
||||
76612131
|
||||
76677668
|
||||
76743205
|
||||
76546591
|
||||
76612128
|
||||
76677665
|
||||
76743202
|
||||
76808739
|
||||
76874276
|
||||
76939813
|
||||
77005350
|
||||
77070887
|
||||
77136424
|
||||
78774848
|
||||
78840385
|
||||
78905922
|
||||
78971459
|
||||
79036996
|
||||
79102533
|
||||
79168070
|
||||
79233607
|
||||
79299144
|
||||
79364681
|
||||
76022291
|
||||
76087828
|
||||
76153365
|
||||
76218902
|
||||
76284439
|
||||
76349976
|
||||
76415513
|
||||
76481050
|
||||
76546587
|
||||
76612124
|
||||
77070883
|
||||
77136420
|
||||
77201957
|
||||
77267494
|
||||
77333031
|
||||
77398568
|
||||
77464105
|
||||
77529642
|
||||
77595179
|
||||
77660716
|
||||
76612131
|
||||
76677668
|
||||
76743205
|
||||
76808742
|
||||
76874279
|
||||
76939816
|
||||
77005353
|
||||
77070890
|
||||
77136427
|
||||
77201964
|
||||
77005342
|
||||
77070879
|
||||
77136416
|
||||
77201953
|
||||
77267490
|
||||
77333027
|
||||
77398564
|
||||
77464101
|
||||
77529638
|
||||
77595175
|
||||
76087823
|
||||
76153360
|
||||
76218897
|
||||
76284434
|
||||
76349971
|
||||
76415508
|
||||
76481045
|
||||
76546582
|
||||
76612119
|
||||
76677656
|
||||
77529634
|
||||
77595171
|
||||
77660708
|
||||
77726245
|
||||
77791782
|
||||
77857319
|
||||
77922856
|
||||
77988393
|
||||
78053930
|
||||
78119467
|
||||
79626818
|
||||
79692355
|
||||
79757892
|
||||
79823429
|
||||
79888966
|
||||
79954503
|
||||
80020040
|
||||
80085577
|
||||
80151114
|
||||
80216651
|
||||
77791780
|
||||
77857317
|
||||
77922854
|
||||
77988391
|
||||
78053928
|
||||
78119465
|
||||
78185002
|
||||
78250539
|
||||
78316076
|
||||
78381613
|
||||
80675402
|
||||
80740939
|
||||
80806476
|
||||
80872013
|
||||
80937550
|
||||
81003087
|
||||
81068624
|
||||
81134161
|
||||
81199698
|
||||
81265235
|
||||
81265212
|
||||
81330749
|
||||
81396286
|
||||
81461823
|
||||
81527360
|
||||
81592897
|
||||
81658434
|
||||
81723971
|
||||
81789508
|
||||
81855045
|
||||
121111219
|
||||
121176756
|
||||
121242293
|
||||
121307830
|
||||
121373367
|
||||
121438904
|
||||
121504441
|
||||
121569978
|
||||
121635515
|
||||
121701052
|
||||
119472809
|
||||
119538346
|
||||
119603883
|
||||
119669420
|
||||
119734957
|
||||
119800494
|
||||
119866031
|
||||
119931568
|
||||
119997105
|
||||
120062642
|
||||
120390325
|
||||
120455862
|
||||
120521399
|
||||
120586936
|
||||
120652473
|
||||
120718010
|
||||
120783547
|
||||
120849084
|
||||
120914621
|
||||
120980158
|
||||
120914620
|
||||
120980157
|
||||
121045694
|
||||
121111231
|
||||
121176768
|
||||
121242305
|
||||
121307842
|
||||
121373379
|
||||
121438916
|
||||
121504453
|
||||
118817433
|
||||
118882970
|
||||
118948507
|
||||
119014044
|
||||
119079581
|
||||
119145118
|
||||
119210655
|
||||
119276192
|
||||
119341729
|
||||
119407266
|
||||
121438909
|
||||
121504446
|
||||
121569983
|
||||
121635520
|
||||
121701057
|
||||
121766594
|
||||
121832131
|
||||
121897668
|
||||
121963205
|
||||
122028742
|
||||
120390309
|
||||
120455846
|
||||
120521383
|
||||
120586920
|
||||
120652457
|
||||
120717994
|
||||
120783531
|
||||
120849068
|
||||
120914605
|
||||
120980142
|
||||
121176747
|
||||
121242284
|
||||
121307821
|
||||
121373358
|
||||
121438895
|
||||
121504432
|
||||
121569969
|
||||
121635506
|
||||
121701043
|
||||
121766580
|
||||
120390301
|
||||
120455838
|
||||
120521375
|
||||
120586912
|
||||
120652449
|
||||
120717986
|
||||
120783523
|
||||
120849060
|
||||
120914597
|
||||
120980134
|
||||
123667150
|
||||
123732687
|
||||
123798224
|
||||
123863761
|
||||
123929298
|
||||
123994835
|
||||
124060372
|
||||
124125909
|
||||
124191446
|
||||
124256983
|
||||
123536069
|
||||
123601606
|
||||
123667143
|
||||
123732680
|
||||
123798217
|
||||
123863754
|
||||
123929291
|
||||
123994828
|
||||
124060365
|
||||
124125902
|
||||
125305552
|
||||
125371089
|
||||
125436626
|
||||
125502163
|
||||
125567700
|
||||
125633237
|
||||
125698774
|
||||
125764311
|
||||
125829848
|
||||
125895385
|
||||
124781252
|
||||
124846789
|
||||
124912326
|
||||
124977863
|
||||
125043400
|
||||
125108937
|
||||
125174474
|
||||
125240011
|
||||
125305548
|
||||
125371085
|
||||
124191419
|
||||
124256956
|
||||
124322493
|
||||
124388030
|
||||
124453567
|
||||
124519104
|
||||
124584641
|
||||
124650178
|
||||
124715715
|
||||
124781252
|
||||
124846789
|
||||
124912326
|
||||
124977863
|
||||
125043400
|
||||
125108937
|
||||
125174474
|
||||
125240011
|
||||
125305548
|
||||
125371085
|
||||
125436622
|
||||
125502159
|
||||
125567696
|
||||
125633233
|
||||
125698770
|
||||
125764307
|
||||
125829844
|
||||
125895381
|
||||
125960918
|
||||
126026455
|
||||
126091992
|
||||
126157529
|
||||
126223066
|
||||
126288603
|
||||
126354140
|
||||
126419677
|
||||
126485214
|
||||
126550751
|
||||
126616288
|
||||
126681825
|
||||
126747362
|
||||
126812899
|
||||
126878436
|
||||
126943973
|
||||
127009510
|
||||
127075047
|
||||
127140584
|
||||
127206121
|
||||
127271658
|
||||
127337195
|
||||
127402732
|
236
test_files/baseline.Nl.txt
Normal file
236
test_files/baseline.Nl.txt
Normal file
@ -0,0 +1,236 @@
|
||||
76153387
|
||||
76218924
|
||||
76284461
|
||||
72548872
|
||||
72614409
|
||||
72679946
|
||||
72745483
|
||||
72811020
|
||||
72876557
|
||||
72942094
|
||||
73007631
|
||||
73073168
|
||||
73138705
|
||||
73204242
|
||||
73269779
|
||||
73335316
|
||||
73400853
|
||||
73466390
|
||||
73531927
|
||||
73597464
|
||||
73663001
|
||||
73728538
|
||||
73794075
|
||||
73859612
|
||||
73925149
|
||||
73990686
|
||||
74056223
|
||||
74121760
|
||||
74187297
|
||||
74252834
|
||||
74318371
|
||||
74383908
|
||||
74449445
|
||||
74514982
|
||||
74580519
|
||||
70582761
|
||||
70648298
|
||||
70713835
|
||||
70910446
|
||||
70975983
|
||||
71041520
|
||||
71107057
|
||||
70451691
|
||||
72155653
|
||||
72221190
|
||||
72286727
|
||||
72352264
|
||||
72417801
|
||||
72483338
|
||||
72548875
|
||||
72614412
|
||||
72679949
|
||||
73663004
|
||||
73728541
|
||||
73794078
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
77660720
|
||||
77726257
|
||||
77791794
|
||||
77857331
|
||||
77922868
|
||||
77988405
|
||||
117310086
|
||||
117375623
|
||||
117441160
|
||||
117506697
|
||||
117572234
|
||||
117637771
|
||||
117703308
|
||||
117768845
|
||||
117834382
|
||||
117899919
|
||||
117965456
|
||||
118030993
|
||||
118096530
|
||||
118162067
|
||||
118227604
|
||||
118293141
|
||||
118358678
|
||||
118424215
|
||||
118489752
|
||||
118555289
|
||||
118620826
|
||||
118686363
|
||||
118751900
|
||||
118817437
|
||||
118882974
|
||||
118948511
|
||||
119014048
|
||||
119079585
|
||||
119145122
|
||||
119210659
|
||||
119276196
|
||||
119341733
|
||||
119407270
|
||||
119472807
|
||||
119538344
|
||||
119603881
|
||||
119669418
|
||||
119734955
|
||||
119800492
|
||||
119866029
|
||||
119931566
|
||||
119997103
|
||||
120062640
|
||||
120128177
|
||||
120193714
|
||||
120259251
|
||||
120324788
|
||||
120390325
|
||||
120455862
|
||||
120521399
|
||||
120586936
|
||||
120652473
|
||||
120718010
|
||||
118424207
|
||||
119014040
|
||||
119734945
|
||||
119800482
|
||||
119866019
|
||||
119931556
|
||||
119997093
|
||||
119145107
|
||||
119210644
|
||||
119276181
|
||||
119341718
|
||||
119407255
|
||||
119472792
|
||||
119538329
|
||||
119603866
|
||||
119669403
|
||||
119734940
|
||||
119800477
|
||||
119866014
|
||||
119931551
|
||||
119997088
|
||||
120062625
|
||||
120128162
|
||||
120193699
|
||||
120259236
|
||||
120324773
|
||||
120390310
|
||||
120455847
|
||||
120521384
|
||||
120586921
|
||||
120652458
|
||||
120717995
|
||||
120783532
|
||||
120849069
|
||||
120914606
|
||||
120980143
|
||||
121045680
|
||||
121111217
|
||||
121176754
|
||||
121242291
|
||||
121307828
|
||||
121373365
|
||||
121438902
|
||||
121504439
|
||||
121569976
|
||||
121635513
|
||||
121701050
|
||||
121766587
|
||||
121832124
|
||||
121897661
|
||||
121963198
|
||||
122028735
|
||||
122094272
|
||||
122159809
|
||||
122225346
|
||||
122290883
|
||||
122356420
|
||||
122421957
|
||||
122487494
|
||||
122553031
|
||||
122618568
|
||||
122684105
|
||||
122749642
|
||||
122815179
|
||||
122880716
|
||||
122946253
|
||||
123011790
|
||||
123077327
|
||||
123142864
|
||||
123208401
|
||||
123273938
|
||||
119276180
|
||||
119341717
|
||||
119407254
|
||||
119472791
|
||||
119538328
|
||||
119603865
|
||||
119669402
|
||||
119734939
|
||||
119800476
|
||||
119866013
|
||||
119931550
|
||||
119997087
|
||||
120062624
|
||||
120128161
|
||||
120193698
|
||||
120259235
|
||||
120324772
|
||||
120390309
|
||||
120455846
|
||||
120521383
|
||||
120586920
|
||||
120652457
|
||||
120717994
|
||||
120783531
|
||||
120849068
|
||||
120914605
|
||||
120980142
|
||||
121045679
|
||||
121111216
|
||||
121176753
|
||||
121242290
|
||||
121307827
|
||||
121373364
|
||||
121438901
|
||||
121504438
|
||||
121569975
|
||||
121635512
|
||||
121701049
|
||||
121766586
|
||||
121832123
|
||||
121897660
|
||||
121963197
|
||||
122028734
|
||||
122094271
|
||||
122159808
|
||||
122225345
|
||||
122290882
|
647
test_files/baseline.No.txt
Normal file
647
test_files/baseline.No.txt
Normal file
@ -0,0 +1,647 @@
|
||||
37224821
|
||||
37290358
|
||||
37683580
|
||||
37880191
|
||||
37945728
|
||||
38011265
|
||||
77922876
|
||||
77988413
|
||||
78053950
|
||||
78119487
|
||||
78185024
|
||||
78250561
|
||||
78578240
|
||||
78643777
|
||||
78709314
|
||||
78774851
|
||||
78840388
|
||||
78905925
|
||||
78709312
|
||||
78774849
|
||||
78840386
|
||||
79495754
|
||||
79561291
|
||||
79626828
|
||||
79692365
|
||||
79757902
|
||||
79823439
|
||||
79888976
|
||||
79495750
|
||||
79561287
|
||||
79626824
|
||||
79692361
|
||||
79757898
|
||||
79823435
|
||||
80020039
|
||||
80085576
|
||||
80151113
|
||||
80216650
|
||||
80282187
|
||||
80347724
|
||||
80413261
|
||||
80478798
|
||||
80544335
|
||||
80609872
|
||||
73990680
|
||||
74056217
|
||||
74121754
|
||||
74187291
|
||||
74252828
|
||||
74318365
|
||||
74383902
|
||||
74449439
|
||||
74514976
|
||||
74580513
|
||||
74646050
|
||||
74711587
|
||||
74777124
|
||||
74842661
|
||||
74908198
|
||||
74973735
|
||||
75039272
|
||||
75104809
|
||||
75170346
|
||||
75235883
|
||||
76808753
|
||||
76874290
|
||||
76939827
|
||||
77005364
|
||||
77070901
|
||||
77136438
|
||||
77201975
|
||||
77267512
|
||||
77333049
|
||||
77398586
|
||||
76415523
|
||||
73073172
|
||||
73335320
|
||||
73400857
|
||||
73466394
|
||||
73531931
|
||||
73597468
|
||||
73663005
|
||||
70058469
|
||||
70124006
|
||||
70189543
|
||||
70255080
|
||||
70320617
|
||||
70386154
|
||||
70451691
|
||||
70517228
|
||||
70582765
|
||||
70648302
|
||||
71500280
|
||||
71565817
|
||||
71631354
|
||||
71696891
|
||||
71762428
|
||||
71827965
|
||||
71893502
|
||||
71959039
|
||||
72024576
|
||||
72090113
|
||||
72155650
|
||||
72221187
|
||||
72286724
|
||||
72352261
|
||||
72417798
|
||||
72483335
|
||||
71172594
|
||||
74121748
|
||||
74187285
|
||||
74252822
|
||||
74318359
|
||||
74383896
|
||||
74449433
|
||||
74514970
|
||||
74580507
|
||||
74646044
|
||||
74711581
|
||||
74777118
|
||||
74842655
|
||||
74908192
|
||||
74973729
|
||||
75039266
|
||||
75104803
|
||||
75170340
|
||||
75235877
|
||||
75301414
|
||||
75366951
|
||||
75432488
|
||||
75498025
|
||||
75563562
|
||||
75629099
|
||||
75694636
|
||||
75760173
|
||||
75825710
|
||||
75891247
|
||||
75956784
|
||||
76022321
|
||||
76087858
|
||||
76153395
|
||||
72155637
|
||||
72221174
|
||||
72286711
|
||||
72352248
|
||||
72417785
|
||||
72483322
|
||||
72548859
|
||||
72614396
|
||||
72679933
|
||||
72745470
|
||||
72811007
|
||||
72876544
|
||||
72942081
|
||||
73007618
|
||||
73073155
|
||||
73138692
|
||||
73204229
|
||||
73269766
|
||||
73335303
|
||||
73400840
|
||||
73466377
|
||||
73531914
|
||||
73597451
|
||||
73662988
|
||||
73728525
|
||||
73794062
|
||||
73859599
|
||||
73925136
|
||||
75039264
|
||||
75104801
|
||||
75170338
|
||||
75235875
|
||||
75301412
|
||||
75366949
|
||||
75432486
|
||||
75498023
|
||||
75563560
|
||||
75629097
|
||||
75694634
|
||||
75760171
|
||||
75825708
|
||||
75891245
|
||||
75956782
|
||||
76022319
|
||||
76087856
|
||||
76153393
|
||||
76218930
|
||||
76284467
|
||||
76350004
|
||||
76415541
|
||||
77136438
|
||||
77201975
|
||||
77267512
|
||||
77333049
|
||||
77398586
|
||||
77464123
|
||||
77529660
|
||||
77595197
|
||||
77660734
|
||||
77726271
|
||||
73728513
|
||||
73794050
|
||||
73859587
|
||||
73925124
|
||||
73990661
|
||||
74056198
|
||||
74121735
|
||||
74187272
|
||||
74252809
|
||||
74318346
|
||||
74383883
|
||||
74449420
|
||||
74514957
|
||||
74580494
|
||||
74646031
|
||||
74711568
|
||||
74777105
|
||||
74842642
|
||||
74908179
|
||||
74973716
|
||||
80478803
|
||||
71959036
|
||||
72024573
|
||||
72090110
|
||||
72155647
|
||||
73138700
|
||||
73204237
|
||||
73269774
|
||||
73335311
|
||||
73400848
|
||||
73466385
|
||||
73531922
|
||||
73597459
|
||||
73662996
|
||||
73728533
|
||||
71696885
|
||||
71762422
|
||||
71827959
|
||||
71893496
|
||||
71959033
|
||||
72024570
|
||||
72090107
|
||||
72155644
|
||||
72286718
|
||||
72352255
|
||||
72417792
|
||||
72483329
|
||||
72548866
|
||||
72614403
|
||||
72679940
|
||||
72745477
|
||||
72811014
|
||||
72876551
|
||||
72942088
|
||||
73007625
|
||||
73073162
|
||||
73138699
|
||||
73204236
|
||||
71303662
|
||||
71369199
|
||||
71434736
|
||||
71500273
|
||||
71565810
|
||||
71631347
|
||||
71696884
|
||||
71762421
|
||||
71827958
|
||||
71893495
|
||||
74514975
|
||||
74580512
|
||||
74646049
|
||||
74711586
|
||||
74777123
|
||||
74842660
|
||||
74908197
|
||||
74973734
|
||||
75039271
|
||||
75104808
|
||||
75170345
|
||||
75235882
|
||||
75301419
|
||||
75366956
|
||||
75432493
|
||||
78709307
|
||||
78774844
|
||||
78840381
|
||||
78905918
|
||||
78971455
|
||||
79036992
|
||||
117637772
|
||||
117703309
|
||||
117768846
|
||||
117834383
|
||||
117899920
|
||||
117965457
|
||||
118030994
|
||||
118096531
|
||||
118162068
|
||||
118227605
|
||||
118293142
|
||||
118358679
|
||||
118424216
|
||||
118489753
|
||||
118555290
|
||||
118620827
|
||||
118686364
|
||||
118751901
|
||||
118817438
|
||||
118882975
|
||||
118948512
|
||||
119014049
|
||||
119079586
|
||||
119145123
|
||||
119210660
|
||||
119276197
|
||||
119341734
|
||||
119407271
|
||||
119472808
|
||||
119538345
|
||||
119603882
|
||||
119669419
|
||||
119734956
|
||||
119800493
|
||||
119866030
|
||||
119931567
|
||||
119997104
|
||||
120062641
|
||||
120128178
|
||||
120193715
|
||||
120259252
|
||||
120324789
|
||||
120390326
|
||||
120455863
|
||||
120521400
|
||||
120783547
|
||||
120849084
|
||||
120914621
|
||||
120980158
|
||||
118096529
|
||||
118162066
|
||||
120259245
|
||||
120324782
|
||||
120390319
|
||||
120455856
|
||||
120521393
|
||||
120586930
|
||||
120652467
|
||||
120718004
|
||||
120783541
|
||||
120849078
|
||||
120914615
|
||||
120980152
|
||||
121045689
|
||||
121111226
|
||||
121176763
|
||||
121242300
|
||||
121307837
|
||||
121373374
|
||||
121438911
|
||||
121504448
|
||||
121569985
|
||||
121635522
|
||||
121701059
|
||||
121766596
|
||||
121832133
|
||||
121897670
|
||||
121963207
|
||||
120324781
|
||||
120390318
|
||||
120455855
|
||||
120521392
|
||||
122553018
|
||||
122618555
|
||||
122684092
|
||||
122749629
|
||||
122815166
|
||||
122880703
|
||||
122946240
|
||||
123011777
|
||||
124715739
|
||||
124781276
|
||||
124846813
|
||||
124912350
|
||||
124977887
|
||||
125043424
|
||||
125108961
|
||||
123667146
|
||||
123732683
|
||||
123798220
|
||||
123863757
|
||||
123929294
|
||||
123994831
|
||||
124060368
|
||||
124125905
|
||||
124191442
|
||||
125108959
|
||||
125174496
|
||||
125240033
|
||||
125305570
|
||||
125371107
|
||||
122815163
|
||||
122880700
|
||||
122946237
|
||||
123011774
|
||||
123077311
|
||||
123142848
|
||||
125567715
|
||||
125633252
|
||||
121766568
|
||||
121832105
|
||||
121897642
|
||||
121963179
|
||||
122028716
|
||||
122094253
|
||||
122159790
|
||||
122225327
|
||||
122290864
|
||||
122356401
|
||||
122421938
|
||||
122487475
|
||||
122553012
|
||||
122618549
|
||||
122684086
|
||||
122749623
|
||||
122946234
|
||||
123011771
|
||||
123077308
|
||||
123142845
|
||||
123208382
|
||||
123273919
|
||||
123339456
|
||||
123404993
|
||||
123470530
|
||||
123536067
|
||||
123601604
|
||||
123667141
|
||||
123732678
|
||||
123798215
|
||||
123863752
|
||||
123929289
|
||||
123994826
|
||||
124060363
|
||||
124125900
|
||||
124191437
|
||||
124256974
|
||||
124322511
|
||||
124388048
|
||||
124453585
|
||||
124519122
|
||||
124584659
|
||||
124650196
|
||||
124715733
|
||||
124781270
|
||||
124846807
|
||||
124912344
|
||||
124977881
|
||||
125043418
|
||||
125108955
|
||||
125174492
|
||||
125240029
|
||||
125305566
|
||||
125371103
|
||||
125436640
|
||||
125502177
|
||||
125567714
|
||||
125633251
|
||||
125698788
|
||||
125764325
|
||||
125829862
|
||||
125895399
|
||||
122028714
|
||||
122094251
|
||||
122159788
|
||||
122225325
|
||||
122290862
|
||||
122356399
|
||||
122421936
|
||||
122487473
|
||||
126026471
|
||||
126092008
|
||||
124060360
|
||||
124125897
|
||||
124191434
|
||||
125108951
|
||||
125174488
|
||||
125240025
|
||||
125305562
|
||||
125371099
|
||||
124125894
|
||||
124191431
|
||||
124256968
|
||||
124322505
|
||||
124388042
|
||||
124453579
|
||||
124519116
|
||||
124584653
|
||||
126223078
|
||||
126288615
|
||||
126354152
|
||||
126419689
|
||||
126485226
|
||||
126550763
|
||||
126616300
|
||||
126681837
|
||||
125371096
|
||||
125436633
|
||||
125502170
|
||||
125567707
|
||||
125633244
|
||||
125698781
|
||||
125764318
|
||||
127140590
|
||||
127206127
|
||||
127271664
|
||||
127337201
|
||||
127402738
|
||||
127468275
|
||||
126223066
|
||||
126288603
|
||||
126354140
|
||||
126419677
|
||||
126485214
|
||||
126550751
|
||||
126616288
|
||||
126681825
|
||||
126747362
|
||||
126812899
|
||||
126878436
|
||||
126943973
|
||||
127009510
|
||||
127075047
|
||||
127140584
|
||||
127206121
|
||||
127271658
|
||||
127337195
|
||||
127402732
|
||||
127468269
|
||||
127533806
|
||||
127599343
|
||||
127664880
|
||||
127730417
|
||||
127795954
|
||||
127861491
|
||||
127927028
|
||||
127992565
|
||||
128058102
|
||||
128123639
|
||||
128189176
|
||||
118162069
|
||||
118227606
|
||||
118293143
|
||||
118358680
|
||||
118424217
|
||||
118489754
|
||||
118555291
|
||||
118620828
|
||||
118686365
|
||||
118751902
|
||||
118817439
|
||||
118882976
|
||||
118948513
|
||||
119014050
|
||||
119079587
|
||||
119145124
|
||||
119210661
|
||||
119276198
|
||||
119341735
|
||||
119407272
|
||||
119931562
|
||||
119997099
|
||||
120062636
|
||||
120128173
|
||||
120193710
|
||||
120259247
|
||||
120324784
|
||||
120390321
|
||||
120455858
|
||||
120521395
|
||||
120586932
|
||||
120652469
|
||||
120718006
|
||||
120783543
|
||||
120849080
|
||||
120914617
|
||||
120980154
|
||||
121045691
|
||||
121111228
|
||||
121176765
|
||||
124322520
|
||||
124388057
|
||||
124191439
|
||||
124256976
|
||||
124322513
|
||||
124388050
|
||||
124453587
|
||||
124519124
|
||||
124584661
|
||||
124650198
|
||||
124715735
|
||||
125502159
|
||||
125567696
|
||||
125633233
|
||||
125698770
|
||||
125764307
|
||||
125829844
|
||||
125895381
|
||||
123011771
|
||||
123077308
|
||||
123142845
|
||||
123208382
|
||||
123273919
|
||||
123339456
|
||||
123404993
|
||||
123470530
|
||||
123536067
|
||||
123601604
|
||||
123667141
|
||||
123732678
|
||||
123798215
|
||||
123863752
|
||||
123929289
|
||||
123994826
|
||||
124060363
|
||||
124125900
|
||||
124453561
|
||||
124519098
|
||||
124584635
|
||||
124650172
|
||||
124715709
|
||||
124781246
|
||||
124846783
|
||||
124912320
|
||||
124977857
|
||||
120128148
|
||||
120193685
|
||||
120259222
|
||||
120324759
|
||||
120390296
|
||||
120455833
|
||||
120521370
|
||||
120586907
|
||||
120652444
|
||||
120717981
|
||||
120783518
|
||||
120849055
|
||||
120914592
|
717
test_files/baseline.P.txt
Normal file
717
test_files/baseline.P.txt
Normal file
@ -0,0 +1,717 @@
|
||||
2228258
|
||||
2293795
|
||||
2359332
|
||||
2490406
|
||||
2555943
|
||||
2621480
|
||||
2687017
|
||||
2752554
|
||||
2818091
|
||||
2949165
|
||||
3014702
|
||||
3080239
|
||||
3145776
|
||||
3866683
|
||||
3932220
|
||||
4194368
|
||||
4259905
|
||||
6029404
|
||||
6094941
|
||||
6160478
|
||||
6291552
|
||||
8126588
|
||||
8257662
|
||||
36110692
|
||||
36503914
|
||||
36766062
|
||||
37486969
|
||||
37552506
|
||||
37814654
|
||||
38076802
|
||||
39453068
|
||||
35979606
|
||||
38142320
|
||||
38207857
|
||||
38273394
|
||||
38338931
|
||||
38404468
|
||||
38470005
|
||||
37159264
|
||||
37224801
|
||||
40632725
|
||||
36700504
|
||||
36897115
|
||||
37093726
|
||||
40042891
|
||||
40108428
|
||||
37421410
|
||||
37486947
|
||||
37618021
|
||||
37683558
|
||||
38601076
|
||||
38797687
|
||||
38863224
|
||||
39715204
|
||||
39780741
|
||||
39846278
|
||||
39911815
|
||||
38535536
|
||||
37355869
|
||||
37421406
|
||||
37486943
|
||||
37552480
|
||||
37618017
|
||||
37683554
|
||||
37749091
|
||||
37814628
|
||||
37880165
|
||||
37945702
|
||||
38011239
|
||||
38076776
|
||||
38142313
|
||||
38207850
|
||||
41353623
|
||||
41419160
|
||||
41484697
|
||||
76743217
|
||||
76808754
|
||||
76874291
|
||||
76939828
|
||||
77005365
|
||||
77070902
|
||||
77136439
|
||||
77201976
|
||||
77267513
|
||||
77333050
|
||||
77398587
|
||||
77464124
|
||||
77529661
|
||||
77595198
|
||||
77660735
|
||||
75694624
|
||||
76612138
|
||||
76677675
|
||||
77398582
|
||||
78185020
|
||||
80020044
|
||||
77857321
|
||||
78578228
|
||||
78643765
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77726244
|
||||
77791781
|
||||
77857318
|
||||
77922855
|
||||
77988392
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78578225
|
||||
81068631
|
||||
81134168
|
||||
81199705
|
||||
81265242
|
||||
77857316
|
||||
78709296
|
||||
78774833
|
||||
78840370
|
||||
78905907
|
||||
78971444
|
||||
79299129
|
||||
79364666
|
||||
70386157
|
||||
70451694
|
||||
70517231
|
||||
70582768
|
||||
70648305
|
||||
70713842
|
||||
73859616
|
||||
73400847
|
||||
73466384
|
||||
73531921
|
||||
73597458
|
||||
73662995
|
||||
73728532
|
||||
73794069
|
||||
73859606
|
||||
73925143
|
||||
71696882
|
||||
75825704
|
||||
75891241
|
||||
74777111
|
||||
74842648
|
||||
75956776
|
||||
76022313
|
||||
76087850
|
||||
76743219
|
||||
76808756
|
||||
74973717
|
||||
75039254
|
||||
75104791
|
||||
75235865
|
||||
75301402
|
||||
75366939
|
||||
73794050
|
||||
73859587
|
||||
73925124
|
||||
73990661
|
||||
74056198
|
||||
74121735
|
||||
74187272
|
||||
74252809
|
||||
74318346
|
||||
74383883
|
||||
74449420
|
||||
74711563
|
||||
74777100
|
||||
76808744
|
||||
76874281
|
||||
77201964
|
||||
77267501
|
||||
77333038
|
||||
77398575
|
||||
77464112
|
||||
77529649
|
||||
77595186
|
||||
77726260
|
||||
77791797
|
||||
77857334
|
||||
77922871
|
||||
77988408
|
||||
78053945
|
||||
77201961
|
||||
77267498
|
||||
77333035
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
79692365
|
||||
79757902
|
||||
79823439
|
||||
79888976
|
||||
79757901
|
||||
79823438
|
||||
79888975
|
||||
79954512
|
||||
80020049
|
||||
80085585
|
||||
80151122
|
||||
76284437
|
||||
76349974
|
||||
76415511
|
||||
76481048
|
||||
76546585
|
||||
76612122
|
||||
76677659
|
||||
76743196
|
||||
77529640
|
||||
70844915
|
||||
70910452
|
||||
70975989
|
||||
71041526
|
||||
71107063
|
||||
71172600
|
||||
71238137
|
||||
71303674
|
||||
71369211
|
||||
71434748
|
||||
71500285
|
||||
71565822
|
||||
71631359
|
||||
71696896
|
||||
71762433
|
||||
71827970
|
||||
71893507
|
||||
71959044
|
||||
72024581
|
||||
72090118
|
||||
72155655
|
||||
72221192
|
||||
72286729
|
||||
72352266
|
||||
72942099
|
||||
73007636
|
||||
73073173
|
||||
73138710
|
||||
73204247
|
||||
73269784
|
||||
73335321
|
||||
73400858
|
||||
73466395
|
||||
73531932
|
||||
73597469
|
||||
73663006
|
||||
73728543
|
||||
73794080
|
||||
73859617
|
||||
73925154
|
||||
69927396
|
||||
69992933
|
||||
70058470
|
||||
70124007
|
||||
70255081
|
||||
70320618
|
||||
70386155
|
||||
70451692
|
||||
70517229
|
||||
70582766
|
||||
70648303
|
||||
70713840
|
||||
70779377
|
||||
70844914
|
||||
70910451
|
||||
70975988
|
||||
71041525
|
||||
71172599
|
||||
71238136
|
||||
71303673
|
||||
71369210
|
||||
71434747
|
||||
71500284
|
||||
71565821
|
||||
71631358
|
||||
71696895
|
||||
71762432
|
||||
71827969
|
||||
71893506
|
||||
73925153
|
||||
73990690
|
||||
70910450
|
||||
70975987
|
||||
71893495
|
||||
71959032
|
||||
72024569
|
||||
72090106
|
||||
74056216
|
||||
74121753
|
||||
76218920
|
||||
76284457
|
||||
76349994
|
||||
76415531
|
||||
76481068
|
||||
76546605
|
||||
76612142
|
||||
76677679
|
||||
76743216
|
||||
76808753
|
||||
76874290
|
||||
76939827
|
||||
77005364
|
||||
77070901
|
||||
74187271
|
||||
74252808
|
||||
76349992
|
||||
76415529
|
||||
76481066
|
||||
76546603
|
||||
76612140
|
||||
76677677
|
||||
76743214
|
||||
76808751
|
||||
76874288
|
||||
76939825
|
||||
74973708
|
||||
75039245
|
||||
75104782
|
||||
75170319
|
||||
75235856
|
||||
75301393
|
||||
75366930
|
||||
75432467
|
||||
75498004
|
||||
75563541
|
||||
75629078
|
||||
75694615
|
||||
75760152
|
||||
75825689
|
||||
75891226
|
||||
75956763
|
||||
76022300
|
||||
76087837
|
||||
76153374
|
||||
76218911
|
||||
76284448
|
||||
76349985
|
||||
76481058
|
||||
76546595
|
||||
76612132
|
||||
76677669
|
||||
78840390
|
||||
78905927
|
||||
80216655
|
||||
80282192
|
||||
80347729
|
||||
80413266
|
||||
80544340
|
||||
80609877
|
||||
79888968
|
||||
77136411
|
||||
77201948
|
||||
77267485
|
||||
77333022
|
||||
77398559
|
||||
77464096
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77726244
|
||||
77791781
|
||||
77857318
|
||||
77922855
|
||||
77988392
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78512688
|
||||
78578225
|
||||
78643762
|
||||
78709299
|
||||
78774836
|
||||
78840373
|
||||
78905910
|
||||
78971447
|
||||
79036984
|
||||
79102521
|
||||
79168058
|
||||
79233595
|
||||
79299132
|
||||
79364669
|
||||
79430206
|
||||
79495743
|
||||
79561280
|
||||
79626817
|
||||
79692354
|
||||
79757891
|
||||
79823428
|
||||
79888965
|
||||
79954502
|
||||
80020039
|
||||
80085576
|
||||
80151113
|
||||
80282187
|
||||
80347724
|
||||
80413261
|
||||
80478798
|
||||
80544335
|
||||
80609872
|
||||
80675409
|
||||
80740946
|
||||
80806483
|
||||
80872020
|
||||
80937557
|
||||
81003094
|
||||
81068631
|
||||
81134168
|
||||
81199705
|
||||
81265242
|
||||
77267484
|
||||
77333021
|
||||
77398558
|
||||
70058469
|
||||
70124006
|
||||
70189543
|
||||
70517228
|
||||
70582765
|
||||
70648302
|
||||
70713839
|
||||
70779376
|
||||
70844913
|
||||
70910450
|
||||
70975987
|
||||
71041524
|
||||
71107061
|
||||
71303672
|
||||
71369209
|
||||
71434746
|
||||
71500283
|
||||
71565820
|
||||
71631357
|
||||
71696894
|
||||
71762431
|
||||
71827968
|
||||
71893505
|
||||
71959042
|
||||
72024579
|
||||
73138708
|
||||
73990689
|
||||
72352262
|
||||
74252834
|
||||
77922876
|
||||
77988413
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
77988407
|
||||
78709314
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
79102528
|
||||
79168065
|
||||
79233602
|
||||
79299139
|
||||
76874268
|
||||
76939805
|
||||
79626822
|
||||
79692359
|
||||
79757896
|
||||
79888970
|
||||
79102525
|
||||
79168062
|
||||
78250543
|
||||
76546579
|
||||
76612116
|
||||
76677653
|
||||
76743190
|
||||
76808727
|
||||
76874264
|
||||
76939801
|
||||
77005338
|
||||
77070875
|
||||
77136412
|
||||
77201949
|
||||
77267486
|
||||
77333023
|
||||
78447152
|
||||
78512689
|
||||
78578224
|
||||
78643761
|
||||
78709298
|
||||
78774835
|
||||
78971444
|
||||
79036981
|
||||
80151110
|
||||
80216647
|
||||
80347717
|
||||
83231330
|
||||
83296867
|
||||
80740920
|
||||
80806457
|
||||
80871994
|
||||
80937531
|
||||
81003068
|
||||
81068605
|
||||
81134142
|
||||
81199679
|
||||
81265216
|
||||
81330753
|
||||
82838104
|
||||
82903641
|
||||
82969178
|
||||
83034715
|
||||
83100252
|
||||
83165789
|
||||
83231326
|
||||
83296863
|
||||
83362400
|
||||
83427937
|
||||
83493474
|
||||
83559011
|
||||
83624548
|
||||
83690085
|
||||
83755622
|
||||
83821159
|
||||
79823401
|
||||
79888938
|
||||
79954475
|
||||
80020012
|
||||
80085549
|
||||
80151086
|
||||
80216623
|
||||
80282160
|
||||
80347697
|
||||
80413234
|
||||
80478771
|
||||
80544308
|
||||
80609845
|
||||
80675382
|
||||
80740919
|
||||
80806456
|
||||
80871993
|
||||
80937530
|
||||
81003067
|
||||
81134141
|
||||
81199678
|
||||
81265215
|
||||
81330752
|
||||
81396289
|
||||
81461826
|
||||
81527363
|
||||
81592900
|
||||
81658437
|
||||
81723974
|
||||
81789511
|
||||
81855048
|
||||
81920585
|
||||
81986122
|
||||
82117196
|
||||
82444881
|
||||
82575955
|
||||
82641492
|
||||
80282157
|
||||
80347694
|
||||
80413231
|
||||
80544305
|
||||
80609842
|
||||
80675379
|
||||
80740916
|
||||
80806453
|
||||
80871990
|
||||
81003064
|
||||
81068601
|
||||
81134138
|
||||
81199675
|
||||
81920582
|
||||
81986119
|
||||
82248267
|
||||
82313804
|
||||
84083303
|
||||
84148840
|
||||
84214377
|
||||
84345451
|
||||
82117192
|
||||
82248266
|
||||
82379340
|
||||
82444877
|
||||
82510414
|
||||
82575951
|
||||
82641488
|
||||
82707025
|
||||
82772562
|
||||
117179013
|
||||
117244550
|
||||
117310087
|
||||
120521390
|
||||
119669408
|
||||
122487493
|
||||
122487481
|
||||
123404996
|
||||
125502180
|
||||
123077306
|
||||
123142843
|
||||
123208380
|
||||
123273917
|
||||
123339454
|
||||
123404991
|
||||
123470528
|
||||
123536065
|
||||
123601602
|
||||
126157545
|
||||
125436636
|
||||
125502173
|
||||
125567710
|
||||
125633247
|
||||
125698784
|
||||
125764321
|
||||
125829858
|
||||
126157542
|
||||
126223079
|
||||
126288616
|
||||
126354153
|
||||
126419690
|
||||
126485227
|
||||
126550764
|
||||
124322504
|
||||
124388041
|
||||
124453578
|
||||
124519115
|
||||
117441162
|
||||
117506699
|
||||
117572236
|
||||
117637773
|
||||
117703310
|
||||
117768847
|
||||
117834384
|
||||
120980159
|
||||
121045696
|
||||
121176770
|
||||
121242307
|
||||
117244549
|
||||
117310086
|
||||
117506695
|
||||
117572232
|
||||
117637769
|
||||
117703306
|
||||
120914619
|
||||
120980156
|
||||
118096526
|
||||
118162063
|
||||
118227600
|
||||
118293137
|
||||
118358674
|
||||
118620822
|
||||
119538340
|
||||
119669414
|
||||
119734951
|
||||
119800488
|
||||
121569986
|
||||
121635523
|
||||
121701060
|
||||
121766597
|
||||
121832134
|
||||
121897671
|
||||
120849077
|
||||
119734939
|
||||
119931546
|
||||
119997083
|
||||
120062620
|
||||
120128157
|
||||
120193694
|
||||
120259231
|
||||
120324768
|
||||
120390305
|
||||
120455842
|
||||
120521379
|
||||
120586916
|
||||
120652453
|
||||
120717990
|
||||
120783527
|
||||
120849064
|
||||
120914601
|
||||
120980138
|
||||
121045675
|
||||
121111212
|
||||
121176749
|
||||
121242286
|
||||
121307823
|
||||
121373360
|
||||
120193692
|
||||
120259229
|
||||
120324766
|
||||
124453594
|
||||
124519131
|
||||
124584668
|
||||
122421956
|
||||
122487493
|
||||
122553030
|
||||
122618567
|
||||
122684104
|
||||
126223070
|
||||
126288607
|
||||
126943975
|
||||
127206122
|
||||
127271659
|
||||
127337196
|
||||
127402733
|
||||
127468270
|
||||
123994808
|
||||
127402717
|
||||
125174463
|
||||
125240000
|
||||
125305537
|
||||
125371074
|
||||
125436611
|
10
test_files/baseline.Pc.txt
Normal file
10
test_files/baseline.Pc.txt
Normal file
@ -0,0 +1,10 @@
|
||||
6291552
|
||||
73925154
|
||||
69927396
|
||||
71238136
|
||||
83034715
|
||||
83100252
|
||||
80675382
|
||||
80740919
|
||||
80806456
|
||||
84345451
|
24
test_files/baseline.Pd.txt
Normal file
24
test_files/baseline.Pd.txt
Normal file
@ -0,0 +1,24 @@
|
||||
3014702
|
||||
37224801
|
||||
40632725
|
||||
71696882
|
||||
74187272
|
||||
70844915
|
||||
70910452
|
||||
70975989
|
||||
71041526
|
||||
71107063
|
||||
71172600
|
||||
78643762
|
||||
78840373
|
||||
80937557
|
||||
81003094
|
||||
77267484
|
||||
71827968
|
||||
73138708
|
||||
72352262
|
||||
82903641
|
||||
82969178
|
||||
81396289
|
||||
82117196
|
||||
81068601
|
73
test_files/baseline.Pe.txt
Normal file
73
test_files/baseline.Pe.txt
Normal file
@ -0,0 +1,73 @@
|
||||
2752554
|
||||
6160478
|
||||
8257662
|
||||
81134168
|
||||
81265242
|
||||
74842648
|
||||
70320618
|
||||
73990690
|
||||
70975987
|
||||
71959032
|
||||
72090106
|
||||
74121753
|
||||
76284457
|
||||
76415531
|
||||
76546605
|
||||
76677679
|
||||
76808753
|
||||
76939827
|
||||
77070901
|
||||
74252808
|
||||
76415529
|
||||
76546603
|
||||
76677677
|
||||
76808751
|
||||
76939825
|
||||
75039245
|
||||
75170319
|
||||
75301393
|
||||
75432467
|
||||
75563541
|
||||
75694615
|
||||
75825689
|
||||
75956763
|
||||
76087837
|
||||
76218911
|
||||
76349985
|
||||
76546595
|
||||
76677669
|
||||
78905927
|
||||
79430206
|
||||
79561280
|
||||
79692354
|
||||
79823428
|
||||
70582765
|
||||
70713839
|
||||
70844913
|
||||
70975987
|
||||
71107061
|
||||
71369209
|
||||
71500283
|
||||
71631357
|
||||
71762431
|
||||
71959042
|
||||
72024579
|
||||
83231330
|
||||
81265216
|
||||
83231326
|
||||
83362400
|
||||
83493474
|
||||
83624548
|
||||
83755622
|
||||
79823401
|
||||
79954475
|
||||
80085549
|
||||
80347697
|
||||
81527363
|
||||
81658437
|
||||
81789511
|
||||
80806453
|
||||
84214377
|
||||
82248266
|
||||
82444877
|
||||
82641488
|
10
test_files/baseline.Pf.txt
Normal file
10
test_files/baseline.Pf.txt
Normal file
@ -0,0 +1,10 @@
|
||||
37814654
|
||||
71434748
|
||||
71696896
|
||||
73597469
|
||||
77333022
|
||||
77464096
|
||||
77791781
|
||||
77988392
|
||||
79036984
|
||||
79299132
|
12
test_files/baseline.Pi.txt
Normal file
12
test_files/baseline.Pi.txt
Normal file
@ -0,0 +1,12 @@
|
||||
36766062
|
||||
71369211
|
||||
71565822
|
||||
71631359
|
||||
71827970
|
||||
73531932
|
||||
77267485
|
||||
77398559
|
||||
77726244
|
||||
77922855
|
||||
78971447
|
||||
79233595
|
513
test_files/baseline.Po.txt
Normal file
513
test_files/baseline.Po.txt
Normal file
@ -0,0 +1,513 @@
|
||||
2228258
|
||||
2293795
|
||||
2359332
|
||||
2490406
|
||||
2555943
|
||||
2621480
|
||||
2818091
|
||||
2949165
|
||||
3080239
|
||||
3145776
|
||||
3866683
|
||||
3932220
|
||||
4194368
|
||||
4259905
|
||||
6094941
|
||||
36110692
|
||||
36503914
|
||||
37486969
|
||||
37552506
|
||||
38076802
|
||||
39453068
|
||||
35979606
|
||||
38142320
|
||||
38207857
|
||||
38273394
|
||||
38338931
|
||||
38404468
|
||||
38470005
|
||||
37159264
|
||||
36700504
|
||||
36897115
|
||||
37093726
|
||||
40042891
|
||||
40108428
|
||||
37421410
|
||||
37486947
|
||||
37618021
|
||||
37683558
|
||||
38601076
|
||||
38797687
|
||||
38863224
|
||||
39715204
|
||||
39780741
|
||||
39846278
|
||||
39911815
|
||||
38535536
|
||||
37355869
|
||||
37421406
|
||||
37486943
|
||||
37552480
|
||||
37618017
|
||||
37683554
|
||||
37749091
|
||||
37814628
|
||||
37880165
|
||||
37945702
|
||||
38011239
|
||||
38076776
|
||||
38142313
|
||||
38207850
|
||||
41353623
|
||||
41419160
|
||||
41484697
|
||||
76743217
|
||||
76808754
|
||||
76874291
|
||||
76939828
|
||||
77005365
|
||||
77070902
|
||||
77136439
|
||||
77201976
|
||||
77267513
|
||||
77333050
|
||||
77398587
|
||||
77464124
|
||||
77529661
|
||||
77595198
|
||||
77660735
|
||||
75694624
|
||||
76612138
|
||||
76677675
|
||||
77398582
|
||||
78185020
|
||||
80020044
|
||||
77857321
|
||||
78578228
|
||||
78643765
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77726244
|
||||
77791781
|
||||
77857318
|
||||
77922855
|
||||
77988392
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78578225
|
||||
77857316
|
||||
78709296
|
||||
78774833
|
||||
78840370
|
||||
78905907
|
||||
78971444
|
||||
79299129
|
||||
79364666
|
||||
70386157
|
||||
70451694
|
||||
70517231
|
||||
70582768
|
||||
70648305
|
||||
70713842
|
||||
73859616
|
||||
73400847
|
||||
73466384
|
||||
73531921
|
||||
73597458
|
||||
73662995
|
||||
73728532
|
||||
73794069
|
||||
73859606
|
||||
73925143
|
||||
75825704
|
||||
75891241
|
||||
75956776
|
||||
76022313
|
||||
76087850
|
||||
76743219
|
||||
76808756
|
||||
74973717
|
||||
75039254
|
||||
75104791
|
||||
75235865
|
||||
75301402
|
||||
75366939
|
||||
73794050
|
||||
73859587
|
||||
73925124
|
||||
73990661
|
||||
74056198
|
||||
74121735
|
||||
74252809
|
||||
74318346
|
||||
74383883
|
||||
74449420
|
||||
74711563
|
||||
74777100
|
||||
76808744
|
||||
76874281
|
||||
77201964
|
||||
77267501
|
||||
77333038
|
||||
77398575
|
||||
77464112
|
||||
77529649
|
||||
77595186
|
||||
77726260
|
||||
77791797
|
||||
77857334
|
||||
77922871
|
||||
77988408
|
||||
78053945
|
||||
77201961
|
||||
77267498
|
||||
77333035
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
79692365
|
||||
79757902
|
||||
79823439
|
||||
79888976
|
||||
79757901
|
||||
79823438
|
||||
79888975
|
||||
79954512
|
||||
80020049
|
||||
80085585
|
||||
80151122
|
||||
76284437
|
||||
76349974
|
||||
76415511
|
||||
76481048
|
||||
76546585
|
||||
76612122
|
||||
76677659
|
||||
76743196
|
||||
77529640
|
||||
71238137
|
||||
71303674
|
||||
71893507
|
||||
71959044
|
||||
72024581
|
||||
72090118
|
||||
72155655
|
||||
72221192
|
||||
72286729
|
||||
72352266
|
||||
72942099
|
||||
73007636
|
||||
73073173
|
||||
73138710
|
||||
73204247
|
||||
73269784
|
||||
73335321
|
||||
73400858
|
||||
73466395
|
||||
73663006
|
||||
73728543
|
||||
73794080
|
||||
73859617
|
||||
69992933
|
||||
70058470
|
||||
70124007
|
||||
70386155
|
||||
70451692
|
||||
70517229
|
||||
70582766
|
||||
70648303
|
||||
70713840
|
||||
70779377
|
||||
70844914
|
||||
70910451
|
||||
70975988
|
||||
71041525
|
||||
71172599
|
||||
71303673
|
||||
71369210
|
||||
71434747
|
||||
71500284
|
||||
71565821
|
||||
71631358
|
||||
71696895
|
||||
71762432
|
||||
71827969
|
||||
71893506
|
||||
80216655
|
||||
80282192
|
||||
80347729
|
||||
80413266
|
||||
80544340
|
||||
80609877
|
||||
79888968
|
||||
77136411
|
||||
77201948
|
||||
77529633
|
||||
77595170
|
||||
77660707
|
||||
77857318
|
||||
78053929
|
||||
78119466
|
||||
78185003
|
||||
78250540
|
||||
78316077
|
||||
78381614
|
||||
78447151
|
||||
78512688
|
||||
78578225
|
||||
78709299
|
||||
78774836
|
||||
78905910
|
||||
79102521
|
||||
79168058
|
||||
79888965
|
||||
79954502
|
||||
80020039
|
||||
80085576
|
||||
80151113
|
||||
80282187
|
||||
80347724
|
||||
80413261
|
||||
80478798
|
||||
80544335
|
||||
80609872
|
||||
80675409
|
||||
80740946
|
||||
80806483
|
||||
80872020
|
||||
81068631
|
||||
81134168
|
||||
81199705
|
||||
81265242
|
||||
77333021
|
||||
70058469
|
||||
70124006
|
||||
70189543
|
||||
73990689
|
||||
74252834
|
||||
77922876
|
||||
77988413
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
77988407
|
||||
78709314
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
79102528
|
||||
79168065
|
||||
79233602
|
||||
79299139
|
||||
76874268
|
||||
76939805
|
||||
79626822
|
||||
79692359
|
||||
79757896
|
||||
79888970
|
||||
79102525
|
||||
79168062
|
||||
78250543
|
||||
76546579
|
||||
76612116
|
||||
76677653
|
||||
76743190
|
||||
76808727
|
||||
76874264
|
||||
76939801
|
||||
77005338
|
||||
77070875
|
||||
77136412
|
||||
77201949
|
||||
77267486
|
||||
77333023
|
||||
78447152
|
||||
78512689
|
||||
78578224
|
||||
78643761
|
||||
78709298
|
||||
78774835
|
||||
78971444
|
||||
79036981
|
||||
80151110
|
||||
80216647
|
||||
80347717
|
||||
80740920
|
||||
80806457
|
||||
80871994
|
||||
80937531
|
||||
81003068
|
||||
81068605
|
||||
81134142
|
||||
81330753
|
||||
82838104
|
||||
80151086
|
||||
80216623
|
||||
80413234
|
||||
80478771
|
||||
80544308
|
||||
80609845
|
||||
80871993
|
||||
80937530
|
||||
81003067
|
||||
81134141
|
||||
81199678
|
||||
81265215
|
||||
81330752
|
||||
81855048
|
||||
81920585
|
||||
81986122
|
||||
82444881
|
||||
82575955
|
||||
82641492
|
||||
80282157
|
||||
80347694
|
||||
80413231
|
||||
80544305
|
||||
80609842
|
||||
80675379
|
||||
80871990
|
||||
81003064
|
||||
81134138
|
||||
81199675
|
||||
81920582
|
||||
81986119
|
||||
82248267
|
||||
82313804
|
||||
84148840
|
||||
82510414
|
||||
82707025
|
||||
82772562
|
||||
117179013
|
||||
117244550
|
||||
117310087
|
||||
120521390
|
||||
119669408
|
||||
122487493
|
||||
122487481
|
||||
123404996
|
||||
125502180
|
||||
123077306
|
||||
123142843
|
||||
123208380
|
||||
123273917
|
||||
123339454
|
||||
123404991
|
||||
123470528
|
||||
123536065
|
||||
123601602
|
||||
126157545
|
||||
125436636
|
||||
125502173
|
||||
125567710
|
||||
125633247
|
||||
125698784
|
||||
125764321
|
||||
125829858
|
||||
126157542
|
||||
126223079
|
||||
126288616
|
||||
126354153
|
||||
126419690
|
||||
126485227
|
||||
126550764
|
||||
124322504
|
||||
124388041
|
||||
124453578
|
||||
124519115
|
||||
117441162
|
||||
117506699
|
||||
117572236
|
||||
117637773
|
||||
117703310
|
||||
117768847
|
||||
117834384
|
||||
120980159
|
||||
121045696
|
||||
121176770
|
||||
121242307
|
||||
117244549
|
||||
117310086
|
||||
117506695
|
||||
117572232
|
||||
117637769
|
||||
117703306
|
||||
120914619
|
||||
120980156
|
||||
118096526
|
||||
118162063
|
||||
118227600
|
||||
118293137
|
||||
118358674
|
||||
118620822
|
||||
119538340
|
||||
119669414
|
||||
119734951
|
||||
119800488
|
||||
121569986
|
||||
121635523
|
||||
121701060
|
||||
121766597
|
||||
121832134
|
||||
121897671
|
||||
120849077
|
||||
119734939
|
||||
119931546
|
||||
119997083
|
||||
120062620
|
||||
120128157
|
||||
120193694
|
||||
120259231
|
||||
120324768
|
||||
120390305
|
||||
120455842
|
||||
120521379
|
||||
120586916
|
||||
120652453
|
||||
120717990
|
||||
120783527
|
||||
120849064
|
||||
120914601
|
||||
120980138
|
||||
121045675
|
||||
121111212
|
||||
121176749
|
||||
121242286
|
||||
121307823
|
||||
121373360
|
||||
120193692
|
||||
120259229
|
||||
120324766
|
||||
124453594
|
||||
124519131
|
||||
124584668
|
||||
122421956
|
||||
122487493
|
||||
122553030
|
||||
122618567
|
||||
122684104
|
||||
126223070
|
||||
126288607
|
||||
126943975
|
||||
127206122
|
||||
127271659
|
||||
127337196
|
||||
127402733
|
||||
127468270
|
||||
123994808
|
||||
127402717
|
||||
125174463
|
||||
125240000
|
||||
125305537
|
||||
125371074
|
||||
125436611
|
75
test_files/baseline.Ps.txt
Normal file
75
test_files/baseline.Ps.txt
Normal file
@ -0,0 +1,75 @@
|
||||
2687017
|
||||
6029404
|
||||
8126588
|
||||
81068631
|
||||
81199705
|
||||
74777111
|
||||
71500285
|
||||
71762433
|
||||
70255081
|
||||
73925153
|
||||
70910450
|
||||
71893495
|
||||
72024569
|
||||
74056216
|
||||
76218920
|
||||
76349994
|
||||
76481068
|
||||
76612142
|
||||
76743216
|
||||
76874290
|
||||
77005364
|
||||
74187271
|
||||
76349992
|
||||
76481066
|
||||
76612140
|
||||
76743214
|
||||
76874288
|
||||
74973708
|
||||
75104782
|
||||
75235856
|
||||
75366930
|
||||
75498004
|
||||
75629078
|
||||
75760152
|
||||
75891226
|
||||
76022300
|
||||
76153374
|
||||
76284448
|
||||
76481058
|
||||
76612132
|
||||
78840390
|
||||
79364669
|
||||
79495743
|
||||
79626817
|
||||
79757891
|
||||
77398558
|
||||
70517228
|
||||
70648302
|
||||
70779376
|
||||
70910450
|
||||
71041524
|
||||
71303672
|
||||
71434746
|
||||
71565820
|
||||
71696894
|
||||
71893505
|
||||
83296867
|
||||
81199679
|
||||
83165789
|
||||
83296863
|
||||
83427937
|
||||
83559011
|
||||
83690085
|
||||
83821159
|
||||
79888938
|
||||
80020012
|
||||
80282160
|
||||
81461826
|
||||
81592900
|
||||
81723974
|
||||
80740916
|
||||
84083303
|
||||
82117192
|
||||
82379340
|
||||
82575951
|
6799
test_files/baseline.S.txt
Normal file
6799
test_files/baseline.S.txt
Normal file
File diff suppressed because it is too large
Load Diff
53
test_files/baseline.Sc.txt
Normal file
53
test_files/baseline.Sc.txt
Normal file
@ -0,0 +1,53 @@
|
||||
2424869
|
||||
36176229
|
||||
36241766
|
||||
36307303
|
||||
36372840
|
||||
37552486
|
||||
37552484
|
||||
77791802
|
||||
77857339
|
||||
78381635
|
||||
78250557
|
||||
79299145
|
||||
80872024
|
||||
75432476
|
||||
72155653
|
||||
72221190
|
||||
72286727
|
||||
72352264
|
||||
72417801
|
||||
72483338
|
||||
72548875
|
||||
72614412
|
||||
72679949
|
||||
72745486
|
||||
72811023
|
||||
72876560
|
||||
72942097
|
||||
73007634
|
||||
73073171
|
||||
73138708
|
||||
73204245
|
||||
73269782
|
||||
73335319
|
||||
73400856
|
||||
73466393
|
||||
73531930
|
||||
73597467
|
||||
73663004
|
||||
73728541
|
||||
73794078
|
||||
73859615
|
||||
73925152
|
||||
73990689
|
||||
74056226
|
||||
74121763
|
||||
79233603
|
||||
83493475
|
||||
82510418
|
||||
80478768
|
||||
82707023
|
||||
82772560
|
||||
83034708
|
||||
83100245
|
121
test_files/baseline.Sk.txt
Normal file
121
test_files/baseline.Sk.txt
Normal file
@ -0,0 +1,121 @@
|
||||
6226015
|
||||
6357089
|
||||
36569451
|
||||
37028210
|
||||
37355895
|
||||
37618043
|
||||
35258702
|
||||
35324239
|
||||
35389776
|
||||
35455313
|
||||
36307294
|
||||
36372831
|
||||
36438368
|
||||
36503905
|
||||
36569442
|
||||
36634979
|
||||
36700516
|
||||
36766053
|
||||
36831590
|
||||
36897127
|
||||
36962664
|
||||
37028201
|
||||
37093738
|
||||
37159275
|
||||
37552497
|
||||
37618034
|
||||
37683571
|
||||
37749108
|
||||
37814645
|
||||
37880182
|
||||
37945719
|
||||
38076793
|
||||
38207867
|
||||
38273404
|
||||
38338941
|
||||
38404478
|
||||
38470015
|
||||
38535552
|
||||
38601089
|
||||
38666626
|
||||
38732163
|
||||
38797700
|
||||
38863237
|
||||
38928774
|
||||
38994311
|
||||
39059848
|
||||
39125385
|
||||
39190922
|
||||
39256459
|
||||
38863235
|
||||
35782995
|
||||
35848532
|
||||
81723997
|
||||
81855071
|
||||
77857313
|
||||
77922850
|
||||
78709294
|
||||
78774831
|
||||
78840368
|
||||
79757886
|
||||
79823423
|
||||
79888960
|
||||
80806478
|
||||
80872015
|
||||
80937552
|
||||
81855070
|
||||
81920607
|
||||
72024577
|
||||
72090114
|
||||
75039239
|
||||
75104776
|
||||
75170313
|
||||
75235850
|
||||
75301387
|
||||
75366924
|
||||
75432461
|
||||
75497998
|
||||
75563535
|
||||
75629072
|
||||
75694609
|
||||
75760146
|
||||
75825683
|
||||
75891220
|
||||
75956757
|
||||
76022294
|
||||
76087831
|
||||
76153368
|
||||
76218905
|
||||
76284442
|
||||
76349979
|
||||
76415516
|
||||
76481053
|
||||
77136423
|
||||
77201960
|
||||
75891218
|
||||
75956755
|
||||
79036979
|
||||
81658448
|
||||
81723985
|
||||
81789522
|
||||
81855059
|
||||
81920596
|
||||
81986133
|
||||
82051670
|
||||
82117207
|
||||
82182744
|
||||
82248281
|
||||
82313818
|
||||
82379355
|
||||
82444892
|
||||
82510429
|
||||
78512671
|
||||
78578208
|
||||
84279914
|
||||
80347693
|
||||
82903634
|
||||
125436634
|
||||
125502171
|
||||
125567708
|
||||
125633245
|
||||
125698782
|
948
test_files/baseline.Sm.txt
Normal file
948
test_files/baseline.Sm.txt
Normal file
@ -0,0 +1,948 @@
|
||||
2883628
|
||||
3997757
|
||||
4063294
|
||||
4128831
|
||||
8192125
|
||||
8323199
|
||||
36831599
|
||||
37159284
|
||||
35586395
|
||||
37683579
|
||||
39190918
|
||||
37224799
|
||||
37290336
|
||||
37355873
|
||||
70189544
|
||||
71107062
|
||||
73728542
|
||||
73794079
|
||||
73859616
|
||||
70713839
|
||||
70779376
|
||||
70844913
|
||||
71893503
|
||||
70451688
|
||||
70517225
|
||||
70582762
|
||||
70648299
|
||||
70713836
|
||||
71172595
|
||||
71631353
|
||||
71696890
|
||||
71762427
|
||||
71827964
|
||||
71893501
|
||||
72286723
|
||||
72352260
|
||||
72679945
|
||||
72876556
|
||||
73073167
|
||||
73597463
|
||||
71631352
|
||||
71696889
|
||||
71893500
|
||||
72024574
|
||||
74121758
|
||||
74187295
|
||||
74252832
|
||||
74318369
|
||||
74383906
|
||||
74449443
|
||||
74514980
|
||||
74580517
|
||||
74646054
|
||||
74711591
|
||||
74777128
|
||||
74842665
|
||||
70844907
|
||||
70910444
|
||||
70975981
|
||||
71041518
|
||||
71107055
|
||||
71172592
|
||||
71238129
|
||||
71303666
|
||||
71369203
|
||||
71434740
|
||||
71500277
|
||||
71565814
|
||||
71631351
|
||||
71696888
|
||||
71762425
|
||||
71827962
|
||||
71893499
|
||||
71959036
|
||||
72024573
|
||||
72090110
|
||||
72155647
|
||||
72221184
|
||||
72286721
|
||||
72352258
|
||||
72417795
|
||||
72483332
|
||||
72548869
|
||||
72614406
|
||||
72679943
|
||||
72745480
|
||||
72811017
|
||||
72876554
|
||||
72942091
|
||||
73007628
|
||||
73073165
|
||||
73138702
|
||||
73204239
|
||||
73269776
|
||||
73335313
|
||||
73400850
|
||||
73466387
|
||||
73531924
|
||||
73597461
|
||||
73662998
|
||||
73728535
|
||||
73794072
|
||||
73859609
|
||||
73925146
|
||||
73990683
|
||||
74056220
|
||||
74121757
|
||||
74187294
|
||||
74252831
|
||||
74318368
|
||||
74383905
|
||||
74449442
|
||||
74514979
|
||||
74580516
|
||||
74646053
|
||||
74711590
|
||||
74777127
|
||||
74842664
|
||||
74908201
|
||||
74973738
|
||||
70975980
|
||||
71041517
|
||||
71107054
|
||||
71172591
|
||||
71238128
|
||||
71303665
|
||||
71369202
|
||||
71434739
|
||||
71500276
|
||||
71565813
|
||||
71631350
|
||||
71696887
|
||||
71762424
|
||||
71827961
|
||||
71893498
|
||||
71959035
|
||||
72024572
|
||||
72090109
|
||||
72155646
|
||||
72221183
|
||||
72286720
|
||||
72352257
|
||||
72417794
|
||||
72483331
|
||||
72548868
|
||||
72614405
|
||||
72679942
|
||||
72745479
|
||||
72811016
|
||||
72876553
|
||||
72942090
|
||||
73007627
|
||||
73073164
|
||||
73138701
|
||||
73204238
|
||||
73269775
|
||||
73335312
|
||||
73400849
|
||||
73466386
|
||||
73531923
|
||||
73597460
|
||||
73662997
|
||||
73728534
|
||||
73794071
|
||||
73859608
|
||||
73925145
|
||||
73990682
|
||||
74056219
|
||||
74121756
|
||||
74187293
|
||||
74252830
|
||||
74318367
|
||||
74383904
|
||||
74449441
|
||||
74514978
|
||||
74580515
|
||||
74646052
|
||||
74711589
|
||||
74777126
|
||||
74842663
|
||||
74908200
|
||||
74973737
|
||||
75039274
|
||||
75104811
|
||||
71107053
|
||||
71172590
|
||||
71238127
|
||||
71303664
|
||||
71369201
|
||||
71434738
|
||||
71500275
|
||||
71565812
|
||||
71631349
|
||||
71696886
|
||||
71762423
|
||||
71827960
|
||||
71893497
|
||||
71959034
|
||||
72024571
|
||||
72090108
|
||||
72155645
|
||||
72221182
|
||||
72286719
|
||||
72352256
|
||||
72417793
|
||||
72483330
|
||||
72548867
|
||||
72614404
|
||||
72679941
|
||||
72745478
|
||||
72811015
|
||||
72876552
|
||||
72942089
|
||||
73007626
|
||||
73073163
|
||||
73138700
|
||||
73204237
|
||||
73269774
|
||||
73335311
|
||||
73400848
|
||||
73466385
|
||||
73531922
|
||||
73597459
|
||||
73662996
|
||||
73728533
|
||||
73794070
|
||||
73859607
|
||||
73925144
|
||||
73990681
|
||||
74056218
|
||||
74121755
|
||||
74187292
|
||||
74252829
|
||||
74318366
|
||||
74383903
|
||||
74449440
|
||||
74514977
|
||||
74580514
|
||||
74646051
|
||||
74711588
|
||||
74777125
|
||||
74842662
|
||||
74908199
|
||||
74973736
|
||||
75039273
|
||||
75104810
|
||||
75170347
|
||||
75235884
|
||||
71238126
|
||||
71303663
|
||||
71369200
|
||||
71434737
|
||||
71500274
|
||||
71565811
|
||||
71631348
|
||||
71696885
|
||||
71762422
|
||||
71827959
|
||||
71893496
|
||||
71959033
|
||||
72024570
|
||||
72090107
|
||||
72155644
|
||||
72221181
|
||||
72286718
|
||||
72352255
|
||||
72417792
|
||||
72483329
|
||||
72548866
|
||||
72614403
|
||||
72679940
|
||||
72745477
|
||||
72811014
|
||||
72876551
|
||||
72942088
|
||||
73007625
|
||||
73073162
|
||||
73138699
|
||||
73204236
|
||||
73269773
|
||||
73335310
|
||||
73400847
|
||||
73466384
|
||||
73531921
|
||||
73597458
|
||||
73662995
|
||||
73728532
|
||||
73794069
|
||||
73859606
|
||||
73925143
|
||||
73990680
|
||||
74056217
|
||||
74121754
|
||||
74187291
|
||||
74252828
|
||||
74318365
|
||||
74383902
|
||||
74449439
|
||||
74514976
|
||||
74580513
|
||||
74646050
|
||||
74711587
|
||||
74777124
|
||||
74842661
|
||||
74908198
|
||||
74973735
|
||||
75039272
|
||||
75104809
|
||||
75170346
|
||||
75235883
|
||||
75301420
|
||||
75366957
|
||||
73466383
|
||||
73531920
|
||||
75432492
|
||||
73400844
|
||||
73466381
|
||||
73531918
|
||||
73597455
|
||||
73662992
|
||||
73728529
|
||||
73794066
|
||||
73859603
|
||||
73925140
|
||||
73990677
|
||||
74056214
|
||||
74121751
|
||||
74187288
|
||||
74252825
|
||||
74318362
|
||||
74383899
|
||||
74449436
|
||||
74514973
|
||||
74580510
|
||||
74646047
|
||||
74711584
|
||||
74777121
|
||||
74842658
|
||||
74908195
|
||||
74973732
|
||||
73597454
|
||||
73662991
|
||||
73728528
|
||||
73794065
|
||||
73859602
|
||||
73925139
|
||||
76284464
|
||||
72876539
|
||||
76481074
|
||||
76546611
|
||||
76612148
|
||||
76677685
|
||||
76743222
|
||||
76808759
|
||||
76874296
|
||||
76939833
|
||||
76153387
|
||||
73859586
|
||||
73925123
|
||||
73990660
|
||||
74056197
|
||||
74121734
|
||||
74318345
|
||||
74383882
|
||||
74449419
|
||||
74514956
|
||||
74580493
|
||||
74646030
|
||||
74711567
|
||||
74777104
|
||||
74842641
|
||||
74908178
|
||||
74973715
|
||||
75039252
|
||||
75104789
|
||||
75170326
|
||||
75235863
|
||||
75301400
|
||||
75366937
|
||||
75432474
|
||||
75498011
|
||||
75563548
|
||||
75629085
|
||||
75694622
|
||||
75760159
|
||||
75825696
|
||||
75891233
|
||||
75956770
|
||||
76022307
|
||||
76087844
|
||||
76153381
|
||||
76218918
|
||||
76284455
|
||||
77005362
|
||||
77070899
|
||||
77136436
|
||||
77201973
|
||||
77267510
|
||||
77333047
|
||||
77398584
|
||||
77464121
|
||||
77529658
|
||||
77595195
|
||||
77660732
|
||||
77726269
|
||||
77791806
|
||||
77857343
|
||||
77922880
|
||||
77988417
|
||||
74514951
|
||||
74580488
|
||||
74646025
|
||||
74711562
|
||||
74777099
|
||||
74842636
|
||||
74908173
|
||||
74973710
|
||||
75039247
|
||||
75104784
|
||||
75170321
|
||||
75235858
|
||||
75301395
|
||||
75366932
|
||||
75432469
|
||||
75498006
|
||||
75563543
|
||||
75629080
|
||||
75694617
|
||||
75760154
|
||||
75825691
|
||||
75891228
|
||||
75956765
|
||||
76022302
|
||||
76087839
|
||||
76153376
|
||||
76218913
|
||||
76284450
|
||||
76349987
|
||||
76415524
|
||||
76481061
|
||||
76546598
|
||||
76612135
|
||||
76677672
|
||||
76743209
|
||||
76808746
|
||||
76874283
|
||||
76939820
|
||||
77005357
|
||||
77070894
|
||||
77136431
|
||||
77201968
|
||||
77267505
|
||||
77333042
|
||||
77398579
|
||||
77464116
|
||||
77529653
|
||||
77595190
|
||||
77660727
|
||||
77726264
|
||||
77791801
|
||||
77857338
|
||||
77922875
|
||||
77988412
|
||||
78053949
|
||||
78119486
|
||||
78185023
|
||||
78250560
|
||||
78316097
|
||||
78381634
|
||||
78447171
|
||||
78512708
|
||||
78578245
|
||||
78643782
|
||||
74646024
|
||||
74711561
|
||||
74777098
|
||||
74842635
|
||||
74908172
|
||||
74973709
|
||||
75039246
|
||||
75104783
|
||||
75170320
|
||||
75235857
|
||||
75301394
|
||||
75366931
|
||||
75432468
|
||||
75498005
|
||||
75563542
|
||||
75629079
|
||||
75694616
|
||||
75760153
|
||||
75825690
|
||||
75891227
|
||||
75956764
|
||||
76022301
|
||||
76087838
|
||||
76153375
|
||||
76218912
|
||||
76284449
|
||||
76349986
|
||||
76415523
|
||||
76481060
|
||||
76546597
|
||||
76612134
|
||||
76677671
|
||||
76743208
|
||||
76808745
|
||||
76874282
|
||||
76939819
|
||||
77005356
|
||||
77070893
|
||||
77136430
|
||||
77201967
|
||||
77267504
|
||||
77333041
|
||||
77398578
|
||||
77464115
|
||||
77529652
|
||||
77595189
|
||||
77660726
|
||||
77726263
|
||||
77791800
|
||||
77857337
|
||||
77922874
|
||||
77988411
|
||||
78053948
|
||||
78119485
|
||||
78185022
|
||||
78250559
|
||||
78316096
|
||||
78381633
|
||||
78447170
|
||||
78512707
|
||||
78578244
|
||||
78643781
|
||||
78709318
|
||||
78774855
|
||||
74777097
|
||||
74842634
|
||||
74908171
|
||||
76415522
|
||||
76481059
|
||||
76546596
|
||||
76612133
|
||||
76677670
|
||||
76743207
|
||||
76808744
|
||||
76874281
|
||||
76939818
|
||||
77005355
|
||||
77070892
|
||||
77136429
|
||||
77201966
|
||||
77267503
|
||||
77333040
|
||||
77398577
|
||||
77464114
|
||||
77529651
|
||||
77595188
|
||||
77660725
|
||||
77726262
|
||||
77791799
|
||||
77857336
|
||||
77922873
|
||||
77988410
|
||||
78053947
|
||||
78119484
|
||||
78185021
|
||||
78250558
|
||||
78316095
|
||||
78381632
|
||||
78447169
|
||||
78512706
|
||||
78578243
|
||||
78643780
|
||||
78709317
|
||||
78774854
|
||||
78840391
|
||||
78905928
|
||||
74908170
|
||||
74973707
|
||||
75039244
|
||||
75104781
|
||||
75170318
|
||||
75235855
|
||||
75301392
|
||||
75366929
|
||||
75432466
|
||||
75498003
|
||||
75563540
|
||||
75629077
|
||||
75694614
|
||||
75760151
|
||||
75825688
|
||||
75891225
|
||||
75956762
|
||||
76022299
|
||||
76087836
|
||||
76153373
|
||||
76218910
|
||||
76284447
|
||||
76349984
|
||||
76415521
|
||||
76743206
|
||||
76808743
|
||||
76874280
|
||||
76939817
|
||||
77005354
|
||||
77070891
|
||||
77136428
|
||||
77201965
|
||||
77267502
|
||||
77333039
|
||||
77398576
|
||||
77464113
|
||||
77529650
|
||||
77595187
|
||||
77660724
|
||||
77726261
|
||||
77791798
|
||||
77857335
|
||||
77922872
|
||||
77988409
|
||||
78053946
|
||||
78119483
|
||||
78185020
|
||||
78250557
|
||||
78316094
|
||||
78381631
|
||||
78447168
|
||||
78512705
|
||||
78578242
|
||||
78643779
|
||||
78709316
|
||||
78774853
|
||||
78971464
|
||||
79037001
|
||||
75039243
|
||||
75104780
|
||||
75170317
|
||||
75235854
|
||||
75301391
|
||||
75366928
|
||||
75432465
|
||||
75498002
|
||||
75563539
|
||||
75629076
|
||||
75694613
|
||||
75760150
|
||||
75825687
|
||||
75891224
|
||||
75956761
|
||||
76022298
|
||||
76087835
|
||||
76153372
|
||||
76218909
|
||||
76284446
|
||||
76349983
|
||||
76415520
|
||||
76481057
|
||||
76546594
|
||||
76612131
|
||||
76677668
|
||||
76743205
|
||||
76808742
|
||||
76874279
|
||||
76939816
|
||||
77005353
|
||||
77070890
|
||||
77136427
|
||||
77201964
|
||||
77267501
|
||||
77333038
|
||||
77398575
|
||||
77464112
|
||||
77529649
|
||||
77595186
|
||||
77660723
|
||||
77726260
|
||||
77791797
|
||||
77857334
|
||||
77922871
|
||||
77988408
|
||||
78053945
|
||||
78119482
|
||||
78185019
|
||||
78250556
|
||||
78316093
|
||||
78381630
|
||||
78447167
|
||||
78512704
|
||||
78578241
|
||||
78643778
|
||||
78709315
|
||||
78774852
|
||||
78840389
|
||||
78905926
|
||||
78971463
|
||||
79037000
|
||||
79102537
|
||||
79168074
|
||||
75170316
|
||||
75235853
|
||||
75301390
|
||||
75366927
|
||||
75432464
|
||||
75498001
|
||||
75563538
|
||||
75629075
|
||||
75694612
|
||||
75760149
|
||||
75825686
|
||||
75891223
|
||||
75956760
|
||||
76022297
|
||||
76087834
|
||||
76153371
|
||||
76218908
|
||||
76284445
|
||||
76349982
|
||||
76415519
|
||||
76481056
|
||||
76546593
|
||||
76612130
|
||||
76677667
|
||||
76743204
|
||||
76808741
|
||||
76874278
|
||||
76939815
|
||||
77005352
|
||||
77070889
|
||||
77136426
|
||||
77201963
|
||||
77267500
|
||||
77333037
|
||||
77398574
|
||||
77464111
|
||||
77529648
|
||||
77595185
|
||||
77660722
|
||||
77726259
|
||||
77791796
|
||||
77857333
|
||||
77922870
|
||||
77988407
|
||||
78053944
|
||||
78119481
|
||||
78185018
|
||||
78250555
|
||||
78316092
|
||||
78381629
|
||||
78447166
|
||||
78512703
|
||||
78578240
|
||||
78643777
|
||||
78709314
|
||||
78774851
|
||||
78840388
|
||||
78905925
|
||||
78971462
|
||||
79036999
|
||||
79102536
|
||||
79168073
|
||||
79233610
|
||||
79299147
|
||||
75301389
|
||||
75366926
|
||||
75432463
|
||||
75498000
|
||||
75563537
|
||||
75629074
|
||||
75694611
|
||||
75760148
|
||||
75825685
|
||||
75891222
|
||||
75956759
|
||||
76022296
|
||||
76087833
|
||||
76153370
|
||||
76218907
|
||||
76284444
|
||||
76349981
|
||||
76415518
|
||||
76481055
|
||||
76546592
|
||||
76612129
|
||||
76677666
|
||||
76743203
|
||||
76808740
|
||||
76874277
|
||||
76939814
|
||||
77005351
|
||||
77070888
|
||||
77136425
|
||||
77201962
|
||||
77267499
|
||||
77333036
|
||||
77398573
|
||||
77464110
|
||||
77529647
|
||||
77595184
|
||||
77660721
|
||||
77726258
|
||||
77791795
|
||||
77857332
|
||||
77922869
|
||||
77988406
|
||||
78053943
|
||||
78119480
|
||||
78185017
|
||||
78250554
|
||||
78316091
|
||||
78381628
|
||||
78447165
|
||||
78512702
|
||||
78578239
|
||||
78643776
|
||||
78709313
|
||||
78774850
|
||||
78840387
|
||||
78905924
|
||||
78971461
|
||||
79036998
|
||||
79102535
|
||||
79168072
|
||||
79233609
|
||||
79299146
|
||||
79364683
|
||||
79430220
|
||||
75432462
|
||||
75497999
|
||||
75563536
|
||||
75629073
|
||||
75694610
|
||||
75760147
|
||||
75825684
|
||||
75891221
|
||||
75956758
|
||||
76022295
|
||||
76087832
|
||||
76153369
|
||||
76218906
|
||||
76284443
|
||||
76349980
|
||||
76415517
|
||||
76481054
|
||||
76546591
|
||||
76612128
|
||||
76677665
|
||||
76743202
|
||||
76808739
|
||||
76874276
|
||||
76939813
|
||||
77005350
|
||||
77070887
|
||||
77136424
|
||||
77201961
|
||||
77267498
|
||||
77333035
|
||||
77398572
|
||||
77464109
|
||||
77529646
|
||||
77595183
|
||||
77660720
|
||||
77726257
|
||||
77791794
|
||||
77857331
|
||||
77922868
|
||||
77988405
|
||||
78053942
|
||||
78119479
|
||||
78185016
|
||||
78250553
|
||||
78316090
|
||||
78381627
|
||||
78447164
|
||||
78512701
|
||||
78578238
|
||||
78643775
|
||||
78709312
|
||||
78774849
|
||||
78840386
|
||||
78905923
|
||||
78971460
|
||||
79036997
|
||||
79102534
|
||||
79168071
|
||||
79233608
|
||||
79299145
|
||||
79364682
|
||||
79430219
|
||||
79495756
|
||||
79561293
|
||||
78709311
|
||||
78774848
|
||||
78840385
|
||||
78905922
|
||||
78971459
|
||||
79036996
|
||||
79102533
|
||||
79168070
|
||||
79233607
|
||||
79299144
|
||||
79364681
|
||||
79430218
|
||||
79495755
|
||||
79561292
|
||||
79626829
|
||||
79692366
|
||||
75694608
|
||||
75760145
|
||||
75825682
|
||||
75891219
|
||||
75956756
|
||||
76153367
|
||||
76218904
|
||||
76284441
|
||||
76349978
|
||||
76415515
|
||||
76481052
|
||||
80806469
|
||||
82051659
|
||||
82182733
|
||||
82248270
|
||||
82313807
|
||||
80937527
|
||||
82051656
|
||||
82117193
|
||||
82182730
|
||||
82182729
|
||||
82313803
|
||||
82838097
|
||||
83296856
|
||||
83362393
|
||||
83427930
|
||||
83493467
|
||||
122815146
|
||||
124519108
|
||||
126616292
|
||||
124256959
|
||||
126354143
|
||||
123994810
|
||||
126091994
|
||||
123732661
|
||||
125829845
|
||||
123470512
|
||||
130286330
|
||||
130351867
|
5677
test_files/baseline.So.txt
Normal file
5677
test_files/baseline.So.txt
Normal file
File diff suppressed because it is too large
Load Diff
19
test_files/baseline.Z.txt
Normal file
19
test_files/baseline.Z.txt
Normal file
@ -0,0 +1,19 @@
|
||||
2162721
|
||||
36045155
|
||||
73007612
|
||||
69796323
|
||||
69861860
|
||||
69927397
|
||||
69992934
|
||||
70058471
|
||||
70124008
|
||||
70189545
|
||||
70255082
|
||||
70320619
|
||||
70386156
|
||||
70451693
|
||||
72417803
|
||||
72483340
|
||||
72876562
|
||||
71959043
|
||||
69992932
|
1
test_files/baseline.Zl.txt
Normal file
1
test_files/baseline.Zl.txt
Normal file
@ -0,0 +1 @@
|
||||
72417803
|
1
test_files/baseline.Zp.txt
Normal file
1
test_files/baseline.Zp.txt
Normal file
@ -0,0 +1 @@
|
||||
72483340
|
17
test_files/baseline.Zs.txt
Normal file
17
test_files/baseline.Zs.txt
Normal file
@ -0,0 +1,17 @@
|
||||
2162721
|
||||
36045155
|
||||
73007612
|
||||
69796323
|
||||
69861860
|
||||
69927397
|
||||
69992934
|
||||
70058471
|
||||
70124008
|
||||
70189545
|
||||
70255082
|
||||
70320619
|
||||
70386156
|
||||
70451693
|
||||
72876562
|
||||
71959043
|
||||
69992932
|
3
test_files/corpus.json
Normal file
3
test_files/corpus.json
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
["UTF-8 Corpus", "./test_files/utf8.corpus", 555857393]
|
||||
]
|
993592
test_files/uctable.C.js
Normal file
993592
test_files/uctable.C.js
Normal file
File diff suppressed because it is too large
Load Diff
67
test_files/uctable.Cc.js
Normal file
67
test_files/uctable.Cc.js
Normal file
@ -0,0 +1,67 @@
|
||||
var unicode = [
|
||||
'\x00',
|
||||
'\x01',
|
||||
'\x02',
|
||||
'\x03',
|
||||
'\x04',
|
||||
'\x05',
|
||||
'\x06',
|
||||
'\x07',
|
||||
'\x08',
|
||||
'\x09',
|
||||
'\x0A',
|
||||
'\x0B',
|
||||
'\x0C',
|
||||
'\x0D',
|
||||
'\x0E',
|
||||
'\x0F',
|
||||
'\x10',
|
||||
'\x11',
|
||||
'\x12',
|
||||
'\x13',
|
||||
'\x14',
|
||||
'\x15',
|
||||
'\x16',
|
||||
'\x17',
|
||||
'\x18',
|
||||
'\x19',
|
||||
'\x1A',
|
||||
'\x1B',
|
||||
'\x1C',
|
||||
'\x1D',
|
||||
'\x1E',
|
||||
'\x1F',
|
||||
'\x7F',
|
||||
'\x80',
|
||||
'\x81',
|
||||
'\x82',
|
||||
'\x83',
|
||||
'\x84',
|
||||
'\x85',
|
||||
'\x86',
|
||||
'\x87',
|
||||
'\x88',
|
||||
'\x89',
|
||||
'\x8A',
|
||||
'\x8B',
|
||||
'\x8C',
|
||||
'\x8D',
|
||||
'\x8E',
|
||||
'\x8F',
|
||||
'\x90',
|
||||
'\x91',
|
||||
'\x92',
|
||||
'\x93',
|
||||
'\x94',
|
||||
'\x95',
|
||||
'\x96',
|
||||
'\x97',
|
||||
'\x98',
|
||||
'\x99',
|
||||
'\x9A',
|
||||
'\x9B',
|
||||
'\x9C',
|
||||
'\x9D',
|
||||
'\x9E',
|
||||
'\x9F'
|
||||
];if(typeof module !== 'undefined') module.exports = unicode;
|
152
test_files/uctable.Cf.js
Normal file
152
test_files/uctable.Cf.js
Normal file
@ -0,0 +1,152 @@
|
||||
var unicode = [
|
||||
'\xAD',
|
||||
'\u0600',
|
||||
'\u0601',
|
||||
'\u0602',
|
||||
'\u0603',
|
||||
'\u0604',
|
||||
'\u0605',
|
||||
'\u061C',
|
||||
'\u06DD',
|
||||
'\u070F',
|
||||
'\u180E',
|
||||
'\u200B',
|
||||
'\u200C',
|
||||
'\u200D',
|
||||
'\u200E',
|
||||
'\u200F',
|
||||
'\u202A',
|
||||
'\u202B',
|
||||
'\u202C',
|
||||
'\u202D',
|
||||
'\u202E',
|
||||
'\u2060',
|
||||
'\u2061',
|
||||
'\u2062',
|
||||
'\u2063',
|
||||
'\u2064',
|
||||
'\u2066',
|
||||
'\u2067',
|
||||
'\u2068',
|
||||
'\u2069',
|
||||
'\u206A',
|
||||
'\u206B',
|
||||
'\u206C',
|
||||
'\u206D',
|
||||
'\u206E',
|
||||
'\u206F',
|
||||
'\uFEFF',
|
||||
'\uFFF9',
|
||||
'\uFFFA',
|
||||
'\uFFFB',
|
||||
'\uD804\uDCBD',
|
||||
'\uD82F\uDCA0',
|
||||
'\uD82F\uDCA1',
|
||||
'\uD82F\uDCA2',
|
||||
'\uD82F\uDCA3',
|
||||
'\uD834\uDD73',
|
||||
'\uD834\uDD74',
|
||||
'\uD834\uDD75',
|
||||
'\uD834\uDD76',
|
||||
'\uD834\uDD77',
|
||||
'\uD834\uDD78',
|
||||
'\uD834\uDD79',
|
||||
'\uD834\uDD7A',
|
||||
'\uDB40\uDC01',
|
||||
'\uDB40\uDC20',
|
||||
'\uDB40\uDC21',
|
||||
'\uDB40\uDC22',
|
||||
'\uDB40\uDC23',
|
||||
'\uDB40\uDC24',
|
||||
'\uDB40\uDC25',
|
||||
'\uDB40\uDC26',
|
||||
'\uDB40\uDC27',
|
||||
'\uDB40\uDC28',
|
||||
'\uDB40\uDC29',
|
||||
'\uDB40\uDC2A',
|
||||
'\uDB40\uDC2B',
|
||||
'\uDB40\uDC2C',
|
||||
'\uDB40\uDC2D',
|
||||
'\uDB40\uDC2E',
|
||||
'\uDB40\uDC2F',
|
||||
'\uDB40\uDC30',
|
||||
'\uDB40\uDC31',
|
||||
'\uDB40\uDC32',
|
||||
'\uDB40\uDC33',
|
||||
'\uDB40\uDC34',
|
||||
'\uDB40\uDC35',
|
||||
'\uDB40\uDC36',
|
||||
'\uDB40\uDC37',
|
||||
'\uDB40\uDC38',
|
||||
'\uDB40\uDC39',
|
||||
'\uDB40\uDC3A',
|
||||
'\uDB40\uDC3B',
|
||||
'\uDB40\uDC3C',
|
||||
'\uDB40\uDC3D',
|
||||
'\uDB40\uDC3E',
|
||||
'\uDB40\uDC3F',
|
||||
'\uDB40\uDC40',
|
||||
'\uDB40\uDC41',
|
||||
'\uDB40\uDC42',
|
||||
'\uDB40\uDC43',
|
||||
'\uDB40\uDC44',
|
||||
'\uDB40\uDC45',
|
||||
'\uDB40\uDC46',
|
||||
'\uDB40\uDC47',
|
||||
'\uDB40\uDC48',
|
||||
'\uDB40\uDC49',
|
||||
'\uDB40\uDC4A',
|
||||
'\uDB40\uDC4B',
|
||||
'\uDB40\uDC4C',
|
||||
'\uDB40\uDC4D',
|
||||
'\uDB40\uDC4E',
|
||||
'\uDB40\uDC4F',
|
||||
'\uDB40\uDC50',
|
||||
'\uDB40\uDC51',
|
||||
'\uDB40\uDC52',
|
||||
'\uDB40\uDC53',
|
||||
'\uDB40\uDC54',
|
||||
'\uDB40\uDC55',
|
||||
'\uDB40\uDC56',
|
||||
'\uDB40\uDC57',
|
||||
'\uDB40\uDC58',
|
||||
'\uDB40\uDC59',
|
||||
'\uDB40\uDC5A',
|
||||
'\uDB40\uDC5B',
|
||||
'\uDB40\uDC5C',
|
||||
'\uDB40\uDC5D',
|
||||
'\uDB40\uDC5E',
|
||||
'\uDB40\uDC5F',
|
||||
'\uDB40\uDC60',
|
||||
'\uDB40\uDC61',
|
||||
'\uDB40\uDC62',
|
||||
'\uDB40\uDC63',
|
||||
'\uDB40\uDC64',
|
||||
'\uDB40\uDC65',
|
||||
'\uDB40\uDC66',
|
||||
'\uDB40\uDC67',
|
||||
'\uDB40\uDC68',
|
||||
'\uDB40\uDC69',
|
||||
'\uDB40\uDC6A',
|
||||
'\uDB40\uDC6B',
|
||||
'\uDB40\uDC6C',
|
||||
'\uDB40\uDC6D',
|
||||
'\uDB40\uDC6E',
|
||||
'\uDB40\uDC6F',
|
||||
'\uDB40\uDC70',
|
||||
'\uDB40\uDC71',
|
||||
'\uDB40\uDC72',
|
||||
'\uDB40\uDC73',
|
||||
'\uDB40\uDC74',
|
||||
'\uDB40\uDC75',
|
||||
'\uDB40\uDC76',
|
||||
'\uDB40\uDC77',
|
||||
'\uDB40\uDC78',
|
||||
'\uDB40\uDC79',
|
||||
'\uDB40\uDC7A',
|
||||
'\uDB40\uDC7B',
|
||||
'\uDB40\uDC7C',
|
||||
'\uDB40\uDC7D',
|
||||
'\uDB40\uDC7E',
|
||||
'\uDB40\uDC7F'
|
||||
];if(typeof module !== 'undefined') module.exports = unicode;
|
853861
test_files/uctable.Cn.js
Normal file
853861
test_files/uctable.Cn.js
Normal file
File diff suppressed because it is too large
Load Diff
137470
test_files/uctable.Co.js
Normal file
137470
test_files/uctable.Co.js
Normal file
File diff suppressed because it is too large
Load Diff
2050
test_files/uctable.Cs.js
Normal file
2050
test_files/uctable.Cs.js
Normal file
File diff suppressed because it is too large
Load Diff
109593
test_files/uctable.L.js
Normal file
109593
test_files/uctable.L.js
Normal file
File diff suppressed because it is too large
Load Diff
3648
test_files/uctable.LC.js
Normal file
3648
test_files/uctable.LC.js
Normal file
File diff suppressed because it is too large
Load Diff
1986
test_files/uctable.Ll.js
Normal file
1986
test_files/uctable.Ll.js
Normal file
File diff suppressed because it is too large
Load Diff
250
test_files/uctable.Lm.js
Normal file
250
test_files/uctable.Lm.js
Normal file
@ -0,0 +1,250 @@
|
||||
var unicode = [
|
||||
'\u02B0',
|
||||
'\u02B1',
|
||||
'\u02B2',
|
||||
'\u02B3',
|
||||
'\u02B4',
|
||||
'\u02B5',
|
||||
'\u02B6',
|
||||
'\u02B7',
|
||||
'\u02B8',
|
||||
'\u02B9',
|
||||
'\u02BA',
|
||||
'\u02BB',
|
||||
'\u02BC',
|
||||
'\u02BD',
|
||||
'\u02BE',
|
||||
'\u02BF',
|
||||
'\u02C0',
|
||||
'\u02C1',
|
||||
'\u02C6',
|
||||
'\u02C7',
|
||||
'\u02C8',
|
||||
'\u02C9',
|
||||
'\u02CA',
|
||||
'\u02CB',
|
||||
'\u02CC',
|
||||
'\u02CD',
|
||||
'\u02CE',
|
||||
'\u02CF',
|
||||
'\u02D0',
|
||||
'\u02D1',
|
||||
'\u02E0',
|
||||
'\u02E1',
|
||||
'\u02E2',
|
||||
'\u02E3',
|
||||
'\u02E4',
|
||||
'\u02EC',
|
||||
'\u02EE',
|
||||
'\u0374',
|
||||
'\u037A',
|
||||
'\u0559',
|
||||
'\u0640',
|
||||
'\u06E5',
|
||||
'\u06E6',
|
||||
'\u07F4',
|
||||
'\u07F5',
|
||||
'\u07FA',
|
||||
'\u081A',
|
||||
'\u0824',
|
||||
'\u0828',
|
||||
'\u0971',
|
||||
'\u0E46',
|
||||
'\u0EC6',
|
||||
'\u10FC',
|
||||
'\u17D7',
|
||||
'\u1843',
|
||||
'\u1AA7',
|
||||
'\u1C78',
|
||||
'\u1C79',
|
||||
'\u1C7A',
|
||||
'\u1C7B',
|
||||
'\u1C7C',
|
||||
'\u1C7D',
|
||||
'\u1D2C',
|
||||
'\u1D2D',
|
||||
'\u1D2E',
|
||||
'\u1D2F',
|
||||
'\u1D30',
|
||||
'\u1D31',
|
||||
'\u1D32',
|
||||
'\u1D33',
|
||||
'\u1D34',
|
||||
'\u1D35',
|
||||
'\u1D36',
|
||||
'\u1D37',
|
||||
'\u1D38',
|
||||
'\u1D39',
|
||||
'\u1D3A',
|
||||
'\u1D3B',
|
||||
'\u1D3C',
|
||||
'\u1D3D',
|
||||
'\u1D3E',
|
||||
'\u1D3F',
|
||||
'\u1D40',
|
||||
'\u1D41',
|
||||
'\u1D42',
|
||||
'\u1D43',
|
||||
'\u1D44',
|
||||
'\u1D45',
|
||||
'\u1D46',
|
||||
'\u1D47',
|
||||
'\u1D48',
|
||||
'\u1D49',
|
||||
'\u1D4A',
|
||||
'\u1D4B',
|
||||
'\u1D4C',
|
||||
'\u1D4D',
|
||||
'\u1D4E',
|
||||
'\u1D4F',
|
||||
'\u1D50',
|
||||
'\u1D51',
|
||||
'\u1D52',
|
||||
'\u1D53',
|
||||
'\u1D54',
|
||||
'\u1D55',
|
||||
'\u1D56',
|
||||
'\u1D57',
|
||||
'\u1D58',
|
||||
'\u1D59',
|
||||
'\u1D5A',
|
||||
'\u1D5B',
|
||||
'\u1D5C',
|
||||
'\u1D5D',
|
||||
'\u1D5E',
|
||||
'\u1D5F',
|
||||
'\u1D60',
|
||||
'\u1D61',
|
||||
'\u1D62',
|
||||
'\u1D63',
|
||||
'\u1D64',
|
||||
'\u1D65',
|
||||
'\u1D66',
|
||||
'\u1D67',
|
||||
'\u1D68',
|
||||
'\u1D69',
|
||||
'\u1D6A',
|
||||
'\u1D78',
|
||||
'\u1D9B',
|
||||
'\u1D9C',
|
||||
'\u1D9D',
|
||||
'\u1D9E',
|
||||
'\u1D9F',
|
||||
'\u1DA0',
|
||||
'\u1DA1',
|
||||
'\u1DA2',
|
||||
'\u1DA3',
|
||||
'\u1DA4',
|
||||
'\u1DA5',
|
||||
'\u1DA6',
|
||||
'\u1DA7',
|
||||
'\u1DA8',
|
||||
'\u1DA9',
|
||||
'\u1DAA',
|
||||
'\u1DAB',
|
||||
'\u1DAC',
|
||||
'\u1DAD',
|
||||
'\u1DAE',
|
||||
'\u1DAF',
|
||||
'\u1DB0',
|
||||
'\u1DB1',
|
||||
'\u1DB2',
|
||||
'\u1DB3',
|
||||
'\u1DB4',
|
||||
'\u1DB5',
|
||||
'\u1DB6',
|
||||
'\u1DB7',
|
||||
'\u1DB8',
|
||||
'\u1DB9',
|
||||
'\u1DBA',
|
||||
'\u1DBB',
|
||||
'\u1DBC',
|
||||
'\u1DBD',
|
||||
'\u1DBE',
|
||||
'\u1DBF',
|
||||
'\u2071',
|
||||
'\u207F',
|
||||
'\u2090',
|
||||
'\u2091',
|
||||
'\u2092',
|
||||
'\u2093',
|
||||
'\u2094',
|
||||
'\u2095',
|
||||
'\u2096',
|
||||
'\u2097',
|
||||
'\u2098',
|
||||
'\u2099',
|
||||
'\u209A',
|
||||
'\u209B',
|
||||
'\u209C',
|
||||
'\u2C7C',
|
||||
'\u2C7D',
|
||||
'\u2D6F',
|
||||
'\u2E2F',
|
||||
'\u3005',
|
||||
'\u3031',
|
||||
'\u3032',
|
||||
'\u3033',
|
||||
'\u3034',
|
||||
'\u3035',
|
||||
'\u303B',
|
||||
'\u309D',
|
||||
'\u309E',
|
||||
'\u30FC',
|
||||
'\u30FD',
|
||||
'\u30FE',
|
||||
'\uA015',
|
||||
'\uA4F8',
|
||||
'\uA4F9',
|
||||
'\uA4FA',
|
||||
'\uA4FB',
|
||||
'\uA4FC',
|
||||
'\uA4FD',
|
||||
'\uA60C',
|
||||
'\uA67F',
|
||||
'\uA69C',
|
||||
'\uA69D',
|
||||
'\uA717',
|
||||
'\uA718',
|
||||
'\uA719',
|
||||
'\uA71A',
|
||||
'\uA71B',
|
||||
'\uA71C',
|
||||
'\uA71D',
|
||||
'\uA71E',
|
||||
'\uA71F',
|
||||
'\uA770',
|
||||
'\uA788',
|
||||
'\uA7F8',
|
||||
'\uA7F9',
|
||||
'\uA9CF',
|
||||
'\uA9E6',
|
||||
'\uAA70',
|
||||
'\uAADD',
|
||||
'\uAAF3',
|
||||
'\uAAF4',
|
||||
'\uAB5C',
|
||||
'\uAB5D',
|
||||
'\uAB5E',
|
||||
'\uAB5F',
|
||||
'\uFF70',
|
||||
'\uFF9E',
|
||||
'\uFF9F',
|
||||
'\uD81A\uDF40',
|
||||
'\uD81A\uDF41',
|
||||
'\uD81A\uDF42',
|
||||
'\uD81A\uDF43',
|
||||
'\uD81B\uDF93',
|
||||
'\uD81B\uDF94',
|
||||
'\uD81B\uDF95',
|
||||
'\uD81B\uDF96',
|
||||
'\uD81B\uDF97',
|
||||
'\uD81B\uDF98',
|
||||
'\uD81B\uDF99',
|
||||
'\uD81B\uDF9A',
|
||||
'\uD81B\uDF9B',
|
||||
'\uD81B\uDF9C',
|
||||
'\uD81B\uDF9D',
|
||||
'\uD81B\uDF9E',
|
||||
'\uD81B\uDF9F'
|
||||
];if(typeof module !== 'undefined') module.exports = unicode;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user