Showing preview only (3,040K chars total). Download the full file or copy to clipboard to get everything.
Repository: seninp/saxpy
Branch: master
Commit: 93da33f16594
Files: 56
Total size: 2.9 MB
Directory structure:
gitextract_qiq5bcio/
├── .github/
│ └── workflows/
│ └── build.yml
├── .gitignore
├── .travis.yml
├── AUTHORS
├── LICENSE
├── MANIFEST.in
├── README.md
├── README.rst
├── conda.recipe/
│ └── meta.yaml
├── data/
│ ├── ecg0606_1.csv
│ └── insect.txt
├── jupyter/
│ ├── discord.ipynb
│ ├── distance.ipynb
│ ├── hotsax.ipynb
│ ├── insect.ipynb
│ ├── paa.ipynb
│ ├── sax.ipynb
│ ├── str_func.ipynb
│ ├── tinkah.ipynb
│ ├── visit_registry.ipynb
│ ├── vsm.ipynb
│ └── znorm.ipynb
├── requirements.txt
├── resources/
│ └── data/
│ ├── Gun_Point/
│ │ ├── Gun_Point_TEST
│ │ └── Gun_Point_TRAIN
│ └── cbf/
│ ├── CBF_TEST
│ └── CBF_TRAIN
├── saxpy/
│ ├── __init__.py
│ ├── alphabet.py
│ ├── discord.py
│ ├── distance.py
│ ├── hotsax.py
│ ├── paa.py
│ ├── sax.py
│ ├── saxvsm.py
│ ├── strfunc.py
│ ├── util.py
│ ├── visit_registry.py
│ └── znorm.py
├── setup.cfg
├── setup.py
├── site/
│ └── citation.bib
├── tests/
│ ├── test_cuts.py
│ ├── test_discord_bruteforce.py
│ ├── test_discord_hotsax.py
│ ├── test_distance.py
│ ├── test_doctests.py
│ ├── test_paa.py
│ ├── test_registry.py
│ ├── test_sax_chunking.py
│ ├── test_sax_window.py
│ ├── test_str.py
│ ├── test_ts2string.py
│ ├── test_vsm.py
│ └── test_znorm.py
└── tox.ini
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/build.yml
================================================
name: Python package
on:
- push
- pull_request
jobs:
build:
runs-on: ${{ matrix.platform }}
strategy:
matrix:
platform: [ubuntu-latest, macOS-15, windows-latest]
python-version: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install tox tox-gh-actions
- name: Test with tox
run: tox
env:
PLATFORM: ${{ matrix.platform }}
================================================
FILE: .gitignore
================================================
.idea/workspace.xml
build/
dist/
_build/
_generate/
.cache*
.tox*
.eggs*
ChangeLog
*.so
*.py[cod]
*.egg-info
.coverage
.pypirc
jupyter/.ipynb*
/.venv/
/.vscode/
.idea/
================================================
FILE: .travis.yml
================================================
sudo: false
language: python
python:
- "3.7"
install: pip install tox-travis numpy pytest-cov codecov sklearn scipy
script:
tox
after_success:
- codecov
#deploy:
# provider: pypi
# user: "seninp"
# password:
# secure: "ko6k7dTrXb6x53Eipa9nQ1HnewD3SM7jeWw7CYVYWL11xjc5C2+CAv6vNIlD+HfXJbcQtljNUm7SlBDN5GJdBXY5S13/R9gKlqN8N+HZ29d7cBwmYuKaQglKLxpSaAajDHsqc+h/QeDEuvJGRcmdnINxE4MkfJU981/0lbwEPSDtaQaMletQQaBol1BeJKmJDK/kxulPX+2AwCsKS/+o3FMnu+OhwgFjk589dTLmKpuPEpJBpG2ItHe/iWw9qydXE8wSm1wmrSx4A0QcNZOE19iaMxo3GuiQxqMFCtdQcoogxsX4CCxd6MxcjqPvTYHCIZCcRQFak3dLBRqF9wEIL/mz3nQ7ZTXPFNDEFSQD6om5ni9TnqEybMtNYR2QKu4fUhs5dG0y+5HxACyw7nWdLx0Wf6SfxjqpyDfd7rsSmPIUtKjzihgdWPSpESqP0TiYR7btZmue6ympQGcbeTSJ/cHOv+oL+mXhjdU/cRM625vN29ogXG8FwzDXICca4sKtEtXL/utAxF3fEUYkJecAP1p71+99Jhq2h/fbayAjViVe7m7H9fvahkgFT5MLQfiBIVWu6DD2+vnZJoYWbu6fG8HZTRTjfBGVXIiDVusxEKMc77bCJtHkM+McxCmG1gm+gYhiAp44BmidqfryKfaHQi2THfHRs1VpsbBb5FjKjw0="
notifications:
email:
on_success: never # default: change
on_failure: always # default: always
================================================
FILE: AUTHORS
================================================
Ameya Daigavane <ameya.d.98@gmail.com>
Ameya Daigavane <ameya.s.daigavane@jpl.nasa.gov>
Pavel Senin <ps1000258515@c02tt2vrhtd5.hgst.com>
Pavel Senin <seninp@gmail.com>
seninp <seninp@gmail.com>
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
================================================
FILE: MANIFEST.in
================================================
include LICENSE
================================================
FILE: README.md
================================================
Time series symbolic discretization with SAX
====
[](https://pypi.python.org/pypi/saxpy)
[](https://travis-ci.org/seninp/saxpy)
[](https://codecov.io/gh/seninp/saxpy)
[](http://www.gnu.org/licenses/gpl-2.0.html)
This code is released under [GPL v.2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) and implements in Python:
* Symbolic Aggregate approXimation (SAX) (with z-normalization and PAA) [1]
* EMMA -- an algorithm for time series motif discovery [2]
* HOT-SAX - a time series anomaly (discord) discovery algorithm [3]
* SAX-ZSCORE - an extension to SAX for multi-dimensional time-series SAX that modifies the z-normalization to multi-dimensional sequences and PAA aggregation with the average along data-dimensions. [4]
* SAX-REPEAT - an extension to SAX for multi-dimensional time-series that performs standard SAX on individual dimensions, then clusters to map multi-dimensional words into strings from the required alphabet size. [4]
Note that all of the library's functionality is also available in [R](https://github.com/jMotif/jmotif-R) and [Java](https://github.com/jMotif/SAX).
## References
[1] Lin, J., Keogh, E., Patel, P., and Lonardi, S.,
[*Finding Motifs in Time Series*](http://cs.gmu.edu/~jessica/Lin_motif.pdf),
The 2nd Workshop on Temporal Data Mining, the 8th ACM Int'l Conference on KDD (2002)
[2] Patel, P., Keogh, E., Lin, J., Lonardi, S.,
[*Mining Motifs in Massive Time Series Databases*](http://www.cs.gmu.edu/~jessica/publications/motif_icdm02.pdf),
In Proc. ICDM (2002)
[3] Keogh, E., Lin, J., Fu, A.,
[*HOT SAX: Efficiently finding the most unusual time series subsequence*](http://www.cs.ucr.edu/~eamonn/HOT%20SAX%20%20long-ver.pdf),
In Proc. ICDM (2005)
[4] Mohammad, Y., Nishida T.,
[*Robust learning from demonstrations using multidimensional SAX*](https://ieeexplore.ieee.org/document/6987960),
2014 14th International Conference on Control, Automation and Systems (ICCAS 2014)
## Citing this work
If you are using this implementation for you academic work, please cite our [Grammarviz 2.0 paper](http://link.springer.com/chapter/10.1007/978-3-662-44845-8_37):
[[Citation]](https://raw.githubusercontent.com/jMotif/SAX/master/citation.bib) Senin, P., Lin, J., Wang, X., Oates, T., Gandhi, S., Boedihardjo, A.P., Chen, C., Frankenstein, S., Lerner, M., [*GrammarViz 2.0: a tool for grammar-based pattern discovery in time series*](http://csdl.ics.hawaii.edu/techreports/2014/14-06/14-06.pdf), ECML/PKDD Conference, 2014.
SAX in a nutshell
------------
SAX is used to transform a sequence of rational numbers (i.e., a time series) into a sequence of letters (i.e., a string). An illustration of a time series of 128 points converted into the word of 8 letters:

As discretization is probably the most used transformation in data mining, SAX has been widely used throughout the field. Find more information about SAX at its authors pages: [SAX overview by Jessica Lin](http://cs.gmu.edu/~jessica/sax.htm), [Eamonn Keogh's SAX page](http://www.cs.ucr.edu/~eamonn/SAX.htm), or at [sax-vsm wiki page](http://jmotif.github.io/sax-vsm_site/morea/algorithm/SAX.html).
Building
------------
The code is written in Python and hosted on PyPi, so use `pip` to install it. This is what happens in my clean test environment:
$ pip install saxpy
Collecting saxpy
Downloading saxpy-1.0.0.dev154.tar.gz (180kB)
100% |████████████████████████████████| 184kB 778kB/s
Requirement already satisfied: numpy in /home/psenin/anaconda3/lib/python3.6/site-packages (from saxpy)
Requirement already satisfied: pytest in /home/psenin/anaconda3/lib/python3.6/site-packages (from saxpy)
...
Installing collected packages: coverage, pytest-cov, codecov, saxpy
Successfully installed codecov-2.0.15 coverage-4.5.1 pytest-cov-2.5.1 saxpy-1.0.0.dev154
Simple time series to SAX conversion
------------
To convert a time series of an arbitrary length to SAX we need to define the alphabet cuts. Saxpy retrieves cuts for a normal alphabet (we use size 3 here) via `cuts_for_asize` function:
from saxpy.alphabet import cuts_for_asize
cuts_for_asize(3)
which yields an array:
array([ -inf, -0.4307273, 0.4307273])
To convert a time series to letters with SAX we use `ts_to_string` function but not forgetting to z-normalize the input time series (we use Normal alphabet):
import numpy as np
from saxpy.znorm import znorm
from saxpy.sax import ts_to_string
ts_to_string(znorm(np.array([-2, 0, 2, 0, -1])), cuts_for_asize(3))
this produces a string:
'abcba'
Time series to SAX conversion with PAA aggregation (by "chunking")
------------
In order to reduce dimensionality further, the PAA (Piecewise Aggregate Approximation) is usually applied prior to SAX:
import numpy as np
from saxpy.znorm import znorm
from saxpy.paa import paa
from saxpy.sax import ts_to_string
dat = np.array([-2, 0, 2, 0, -1])
dat_znorm = znorm(dat)
dat_paa_3 = paa(dat_znorm, 3)
ts_to_string(dat_paa_3, cuts_for_asize(3))
and a string with three letters is produced:
'acb'
Time series to SAX conversion via sliding window
------------
Typically, in order to investigate the input time series structure in order to discover anomalous (i.e., discords) and recurrent (i.e., motifs) patterns we employ time series to SAX conversion via sliding window. Saxpy implements this workflow:
import numpy as np
from saxpy.sax import sax_via_window
dat = np.array([0., 0., 0., 0., 0., -0.270340178359072, -0.367828308500142,
0.666980581124872, 1.87088147328446, 2.14548907684624,
-0.480859313143032, -0.72911654245842, -0.490308602315934,
-0.66152028906509, -0.221049033806403, 0.367003418871239,
0.631073992586373, 0.0487728723414486, 0.762655178750436,
0.78574757843331, 0.338239686422963, 0.784206454089066,
-2.14265084073625, 2.11325193044223, 0.186018356196443,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.519132472499234,
-2.604783141655, -0.244519550114012, -1.6570790528784,
3.34184602886343, 2.10361226260999, 1.9796808733979,
-0.822247322003058, 1.06850578033292, -0.678811824405992,
0.804225748913681, 0.57363964388698, 0.437113583759113,
0.437208643628268, 0.989892093383503, 1.76545983424176,
0.119483882364649, -0.222311941138971, -0.74669456611669,
-0.0663660879732063, 0., 0., 0., 0., 0.,])
sax_none = sax_via_window(dat, win_size=6, paa_size=3, alphabet_size=3, nr_strategy=None, znorm_threshold=0.01)
sax1
the result is represented as a data structure of resulting words and their respective positions on time series:
defaultdict(list,
{'aac': [4, 10, 11, 30, 35],
'abc': [12, 14, 36, 44],
'acb': [5, 16, 21, 37, 43],
'acc': [13, 52, 53],
'bac': [3, 19, 34, 45, 51],
'bba': [31],
'bbb': [15, 18, 20, 22, 25, 26, 27, 28, 29, 41, 42, 46],
'bbc': [2],
'bca': [6, 17, 32, 38, 47, 48],
'caa': [8, 23, 24, 40],
'cab': [9, 50],
'cba': [7, 39, 49],
'cbb': [33],
'cca': [0, 1]})
`sax_via_window` is parameterised with a sliding window size, desired PAA aggregation, alphabet size, a numerosity reduction strategy, z-normalization threshold, and a SAX type ('unidim' for unidimensional SAX (default), 'zscore' for SAX-ZSCORE, 'repeat' for SAX-REPEAT):
def sax_via_window(series, win_size, paa_size, alphabet_size=3,
nr_strategy='exact', z_threshold=0.01, sax_type='unidim')
Time series discord discovery with HOT-SAX
------------
Saxpy implements HOT-SAX discord discovery algorithm in `find_discords_hotsax` function which can be used as follows:
import numpy as np
from saxpy.hotsax import find_discords_hotsax
from numpy import genfromtxt
dd = genfromtxt("data/ecg0606_1.csv", delimiter=',')
discords = find_discords_hotsax(dd)
discords
and discovers anomalies easily:
[(430, 5.2790800061718386), (318, 4.1757563573086953)]
The function has a similar parameterization: sliding window size, PAA and alphabet sizes, z-normalization threshold, and a parameter specifying how many discords are desired to be found:
def find_discords_hotsax(series, win_size=100, num_discords=2, a_size=3,
paa_size=3, z_threshold=0.01)
Saxpy also provides a brute-force implementation of the discord search if you'd like to verify discords or evaluate the speed-up:
find_discords_brute_force(series, win_size, num_discords=2,
z_threshold=0.01)
which can be called as follows:
discords = find_discords_brute_force(dd[100:500], 100, 4)
discords
[(73, 6.198555329625453), (219, 5.5636923991016136)]
Time series motif discovery with EMMA
------------
ToDo...
## Made with Aloha!

================================================
FILE: README.rst
================================================
Time series symbolic discretization with SAX
=============================================
.. image:: https://img.shields.io/pypi/v/saxpy.svg
:target: https://pypi.python.org/pypi/saxpy
:alt: Latest PyPI version
.. image:: https://travis-ci.org/seninp/saxpy.png
:target: https://travis-ci.org/seninp/saxpy
:alt: Latest Travis CI build status
.. image:: https://codecov.io/gh/seninp/saxpy/branch/master/graph/badge.svg
:target: https://codecov.io/gh/seninp/saxpy
.. image:: http://img.shields.io/:license-gpl2-green.svg
:target: http://www.gnu.org/licenses/gpl-2.0.html
This code is released under `GPL v.2.0 <https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html>`_ and implements in Python:
* Symbolic Aggregate approXimation (i.e., SAX) stack [LIN2002]
* a simple function for time series motif discovery [PATEL2001]
* HOT-SAX - a time series anomaly (discord) discovery algorithm [KEOGH2005]
.. [LIN2002] Lin, J., Keogh, E., Patel, P., and Lonardi, S., `Finding Motifs in Time Series <http://cs.gmu.edu/~jessica/Lin_motif.pdf>`_, The 2nd Workshop on Temporal Data Mining, the 8th ACM Int'l Conference on KDD (2002)
.. [PATEL2001] Patel, P., Keogh, E., Lin, J., Lonardi, S., `Mining Motifs in Massive Time Series Databases <http://www.cs.gmu.edu/~jessica/publications/motif_icdm02.pdf>`__, In Proc. ICDM (2002)
.. [KEOGH2005] Keogh, E., Lin, J., Fu, A., `HOT SAX: Efficiently finding the most unusual time series subsequence <http://www.cs.ucr.edu/~eamonn/HOT%20SAX%20%20long-ver.pdf>`__, In Proc. ICDM (2005)
Note that the most of the library's functionality is also available in `R <https://github.com/jMotif/jmotif-R>`__ and `Java <https://github.com/jMotif/SAX>`__
Citing this work:
------------------
If you are using this implementation for you academic work, please cite our `Grammarviz 2.0
paper <http://link.springer.com/chapter/10.1007/978-3-662-44845-8_37>`__:
.. [SENIN2014] Senin, P., Lin, J., Wang, X., Oates, T., Gandhi, S., Boedihardjo, A.P., Chen, C., Frankenstein, S., Lerner, M., `GrammarViz 2.0: a tool for grammar-based pattern discovery in time series <http://csdl.ics.hawaii.edu/techreports/2014/14-06/14-06.pdf>`__, ECML/PKDD, 2014.
In a nutshell
--------------
SAX is used to transform a sequence of rational numbers (i.e., a time series) into a sequence of letters (i.e., a string) which is (typically) much shorterthan the input time series. Thus, SAX transform addresses a chief problem in time-series analysis -- the dimensionality curse.
This is an illustration of a time series of 128 points converted into the word of 8 letters:
.. figure:: https://raw.githubusercontent.com/jMotif/SAX/master/src/resources/sax_transform.png
:alt: SAX in a nutshell
SAX in a nutshell
As discretization is probably the most used transformation in data
mining, SAX has been widely used throughout the field. Find more
information about SAX at its authors pages: `SAX overview by Jessica
Lin <http://cs.gmu.edu/~jessica/sax.htm>`__, `Eamonn Keogh's SAX
page <http://www.cs.ucr.edu/~eamonn/SAX.htm>`__, or at `sax-vsm wiki
page <http://jmotif.github.io/sax-vsm_site/morea/algorithm/SAX.html>`__.
Installation
-------------
::
$ pip install saxpy
Requirements
^^^^^^^^^^^^
Compatibility
-------------
Licence
-------
GNU General Public License v2.0
Authors
-------
`saxpy` was written by `Pavel Senin <senin@hawaii.edu>`_.
================================================
FILE: conda.recipe/meta.yaml
================================================
package:
name: saxpy
version: 0.1.0
build:
# If the installation is complex, or different between Unix and Windows, use
# separate bld.bat and build.sh files instead of this key. Add the line
# "skip: True # [py<35]" (for example) to limit to Python 3.5 and newer, or
# "skip: True # [not win]" to limit to Windows.
script: python setup.py install --single-version-externally-managed --record=record.txt
source:
path: ..
requirements:
build:
- python
- setuptools
- numpy
run:
- python
test:
imports:
- saxpy
about:
summary: SAX: time series symbolic discretization stack
license_file: LICENSE
================================================
FILE: data/ecg0606_1.csv
================================================
-6.095
-6.095
-6.1
-6.1
-6.095
-6.095
-6.1
-6.105
-6.105
-6.115
-6.105
-6.1
-6.095
-6.09
-6.08
-6.075
-6.065
-6.06
-6.035
-6.015
-6
-5.975
-5.955
-5.92
-5.89
-5.865
-5.83
-5.805
-5.775
-5.75
-5.725
-5.705
-5.695
-5.68
-5.67
-5.655
-5.64
-5.635
-5.635
-5.64
-5.64
-5.64
-5.65
-5.66
-5.68
-5.7
-5.71
-5.71
-5.715
-5.72
-5.73
-5.735
-5.74
-5.77
-5.78
-5.775
-5.78
-5.79
-5.785
-5.79
-5.8
-5.81
-5.815
-5.8
-5.805
-5.815
-5.82
-5.82
-5.82
-5.825
-5.82
-5.83
-5.83
-5.82
-5.81
-5.815
-5.82
-5.82
-5.815
-5.815
-5.8
-5.79
-5.78
-5.77
-5.76
-5.755
-5.76
-5.765
-5.76
-5.76
-5.75
-5.74
-5.72
-5.7
-5.69
-5.695
-5.7
-5.695
-5.7
-5.71
-5.71
-5.72
-5.735
-5.755
-5.775
-5.79
-5.8
-5.825
-5.84
-5.845
-5.85
-5.86
-5.875
-5.865
-5.86
-5.855
-5.84
-5.84
-5.84
-5.84
-5.835
-5.855
-5.855
-5.815
-5.695
-5.555
-5.345
-5.015
-4.62
-4.265
-4.055
-3.985
-4
-4.175
-4.455
-4.87
-5.32
-5.775
-6.1
-6.245
-6.245
-6.245
-6.245
-6.245
-6.21
-6.155
-6.105
-6.07
-6.065
-6.06
-6.045
-6.02
-6.01
-6.005
-6.015
-6.015
-6.01
-6.01
-6.01
-6.01
-6
-5.985
-5.98
-5.975
-5.96
-5.96
-5.94
-5.905
-5.875
-5.865
-5.825
-5.77
-5.73
-5.69
-5.655
-5.62
-5.61
-5.585
-5.57
-5.55
-5.52
-5.485
-5.465
-5.46
-5.465
-5.48
-5.5
-5.52
-5.53
-5.55
-5.565
-5.575
-5.595
-5.61
-5.635
-5.66
-5.695
-5.72
-5.725
-5.75
-5.76
-5.775
-5.785
-5.8
-5.8
-5.81
-5.81
-5.825
-5.845
-5.865
-5.87
-5.86
-5.87
-5.865
-5.875
-5.87
-5.875
-5.88
-5.87
-5.86
-5.85
-5.845
-5.84
-5.83
-5.82
-5.81
-5.81
-5.805
-5.805
-5.8
-5.8
-5.795
-5.785
-5.76
-5.75
-5.75
-5.745
-5.755
-5.755
-5.74
-5.72
-5.705
-5.69
-5.69
-5.7
-5.715
-5.715
-5.715
-5.72
-5.74
-5.76
-5.78
-5.795
-5.815
-5.835
-5.86
-5.89
-5.89
-5.88
-5.885
-5.885
-5.89
-5.895
-5.885
-5.885
-5.88
-5.875
-5.87
-5.88
-5.895
-5.9
-5.855
-5.735
-5.595
-5.4
-5.105
-4.71
-4.34
-4.105
-4.01
-4.02
-4.2
-4.505
-4.935
-5.395
-5.84
-6.15
-6.25
-6.24
-6.24
-6.235
-6.215
-6.17
-6.12
-6.085
-6.075
-6.065
-6.06
-6.055
-6.055
-6.055
-6.05
-6.045
-6.035
-6.03
-6.025
-6.015
-6.015
-6.005
-6
-5.99
-5.99
-5.97
-5.955
-5.94
-5.915
-5.885
-5.865
-5.84
-5.8
-5.765
-5.725
-5.68
-5.635
-5.615
-5.58
-5.56
-5.545
-5.52
-5.515
-5.505
-5.51
-5.505
-5.5
-5.51
-5.52
-5.54
-5.55
-5.565
-5.58
-5.6
-5.62
-5.64
-5.665
-5.69
-5.71
-5.725
-5.74
-5.755
-5.765
-5.775
-5.78
-5.79
-5.8
-5.81
-5.815
-5.81
-5.815
-5.82
-5.835
-5.835
-5.835
-5.835
-5.835
-5.83
-5.825
-5.82
-5.81
-5.81
-5.805
-5.805
-5.8
-5.795
-5.785
-5.77
-5.76
-5.76
-5.76
-5.745
-5.735
-5.725
-5.715
-5.695
-5.685
-5.68
-5.68
-5.68
-5.68
-5.67
-5.65
-5.63
-5.625
-5.635
-5.635
-5.635
-5.635
-5.64
-5.66
-5.68
-5.7
-5.715
-5.725
-5.74
-5.76
-5.78
-5.795
-5.805
-5.825
-5.845
-5.865
-5.895
-5.92
-5.925
-5.885
-5.805
-5.705
-5.58
-5.425
-5.23
-4.97
-4.65
-4.36
-4.14
-4
-3.94
-3.96
-4.075
-4.34
-4.8
-5.27
-5.64
-5.835
-6.005
-6.13
-6.2
-6.215
-6.165
-6.075
-6.025
-6.005
-6.005
-6.005
-6.005
-6.005
-6.015
-6.015
-6.02
-6.025
-6.035
-6.045
-6.045
-6.05
-6.05
-6.055
-6.06
-6.065
-6.065
-6.07
-6.07
-6.065
-6.065
-6.055
-6.045
-6.035
-6.01
-5.99
-5.965
-5.935
-5.905
-5.88
-5.85
-5.825
-5.795
-5.76
-5.735
-5.7
-5.68
-5.66
-5.64
-5.635
-5.625
-5.625
-5.615
-5.61
-5.615
-5.615
-5.62
-5.615
-5.625
-5.63
-5.635
-5.64
-5.655
-5.66
-5.67
-5.68
-5.69
-5.7
-5.715
-5.72
-5.735
-5.74
-5.75
-5.755
-5.76
-5.765
-5.775
-5.785
-5.795
-5.8
-5.8
-5.8
-5.8
-5.8
-5.8
-5.8
-5.795
-5.795
-5.79
-5.785
-5.785
-5.78
-5.78
-5.77
-5.77
-5.76
-5.755
-5.74
-5.73
-5.72
-5.705
-5.695
-5.69
-5.69
-5.7
-5.69
-5.68
-5.655
-5.635
-5.62
-5.625
-5.63
-5.63
-5.63
-5.635
-5.645
-5.665
-5.685
-5.7
-5.725
-5.75
-5.76
-5.79
-5.805
-5.81
-5.81
-5.815
-5.815
-5.815
-5.81
-5.805
-5.8
-5.8
-5.805
-5.805
-5.805
-5.825
-5.835
-5.785
-5.665
-5.525
-5.36
-5.06
-4.665
-4.3
-4.08
-4
-4.04
-4.24
-4.555
-4.965
-5.44
-5.855
-6.115
-6.19
-6.18
-6.18
-6.17
-6.13
-6.07
-6.015
-5.985
-5.98
-5.975
-5.97
-5.97
-5.96
-5.955
-5.955
-5.96
-5.96
-5.96
-5.96
-5.955
-5.95
-5.945
-5.94
-5.93
-5.915
-5.895
-5.88
-5.855
-5.825
-5.795
-5.76
-5.73
-5.695
-5.66
-5.625
-5.59
-5.56
-5.535
-5.515
-5.495
-5.465
-5.445
-5.43
-5.415
-5.405
-5.4
-5.4
-5.41
-5.425
-5.44
-5.46
-5.475
-5.495
-5.52
-5.55
-5.575
-5.6
-5.62
-5.645
-5.665
-5.685
-5.7
-5.72
-5.735
-5.75
-5.765
-5.775
-5.79
-5.805
-5.815
-5.82
-5.825
-5.83
-5.835
-5.835
-5.835
-5.835
-5.83
-5.82
-5.82
-5.82
-5.815
-5.805
-5.805
-5.8
-5.8
-5.795
-5.79
-5.78
-5.765
-5.75
-5.74
-5.73
-5.725
-5.725
-5.725
-5.71
-5.695
-5.67
-5.645
-5.635
-5.635
-5.645
-5.645
-5.645
-5.65
-5.66
-5.675
-5.69
-5.71
-5.73
-5.755
-5.78
-5.8
-5.82
-5.835
-5.84
-5.85
-5.855
-5.855
-5.86
-5.865
-5.87
-5.87
-5.87
-5.865
-5.86
-5.87
-5.885
-5.89
-5.825
-5.695
-5.555
-5.355
-5.03
-4.63
-4.3
-4.12
-4.08
-4.135
-4.355
-4.665
-5.08
-5.525
-5.93
-6.2
-6.3
-6.285
-6.28
-6.28
-6.255
-6.19
-6.12
-6.065
-6.045
-6.04
-6.035
-6.03
-6.025
-6.025
-6.03
-6.03
-6.025
-6.02
-6.02
-6.02
-6.015
-6.015
-6
-5.995
-5.98
-5.965
-5.945
-5.93
-5.91
-5.88
-5.85
-5.82
-5.795
-5.755
-5.72
-5.685
-5.66
-5.625
-5.6
-5.58
-5.565
-5.55
-5.54
-5.535
-5.53
-5.53
-5.53
-5.54
-5.555
-5.57
-5.58
-5.6
-5.625
-5.64
-5.66
-5.67
-5.69
-5.715
-5.73
-5.75
-5.77
-5.785
-5.8
-5.815
-5.825
-5.835
-5.84
-5.85
-5.855
-5.865
-5.875
-5.88
-5.885
-5.89
-5.885
-5.88
-5.895
-5.895
-5.905
-5.915
-5.915
-5.9
-5.89
-5.88
-5.875
-5.87
-5.865
-5.86
-5.85
-5.84
-5.83
-5.82
-5.805
-5.8
-5.795
-5.79
-5.795
-5.8
-5.79
-5.77
-5.745
-5.73
-5.73
-5.73
-5.72
-5.73
-5.735
-5.74
-5.755
-5.775
-5.785
-5.8
-5.825
-5.845
-5.865
-5.88
-5.89
-5.89
-5.895
-5.905
-5.9
-5.895
-5.895
-5.895
-5.9
-5.905
-5.91
-5.91
-5.92
-5.955
-5.945
-5.865
-5.73
-5.575
-5.34
-4.99
-4.6
-4.29
-4.14
-4.1
-4.17
-4.39
-4.73
-5.17
-5.635
-6.015
-6.25
-6.31
-6.3
-6.3
-6.3
-6.27
-6.22
-6.165
-6.12
-6.105
-6.11
-6.105
-6.095
-6.07
-6.055
-6.05
-6.045
-6.04
-6.03
-6.025
-6.02
-6.02
-6.01
-6
-6
-5.985
-5.97
-5.945
-5.92
-5.895
-5.87
-5.84
-5.81
-5.78
-5.745
-5.715
-5.695
-5.67
-5.64
-5.62
-5.59
-5.575
-5.56
-5.555
-5.545
-5.535
-5.54
-5.545
-5.54
-5.555
-5.57
-5.6
-5.615
-5.63
-5.65
-5.665
-5.685
-5.715
-5.735
-5.755
-5.78
-5.805
-5.82
-5.83
-5.825
-5.825
-5.835
-5.845
-5.855
-5.87
-5.88
-5.885
-5.89
-5.895
-5.885
-5.87
-5.87
-5.87
-5.87
-5.875
-5.875
-5.87
-5.86
-5.85
-5.84
-5.84
-5.845
-5.85
-5.835
-5.825
-5.815
-5.805
-5.795
-5.785
-5.78
-5.785
-5.78
-5.76
-5.72
-5.7
-5.695
-5.71
-5.71
-5.71
-5.715
-5.74
-5.755
-5.77
-5.79
-5.815
-5.835
-5.845
-5.88
-5.89
-5.905
-5.92
-5.91
-5.905
-5.895
-5.9
-5.9
-5.9
-5.9
-5.9
-5.89
-5.885
-5.89
-5.91
-5.915
-5.865
-5.745
-5.6
-5.395
-5.075
-4.67
-4.325
-4.135
-4.075
-4.125
-4.335
-4.68
-5.12
-5.58
-5.98
-6.24
-6.3
-6.29
-6.295
-6.28
-6.26
-6.2
-6.145
-6.105
-6.09
-6.085
-6.085
-6.085
-6.095
-6.095
-6.095
-6.085
-6.08
-6.07
-6.065
-6.07
-6.065
-6.05
-6.035
-6.015
-6.005
-5.99
-5.97
-5.945
-5.92
-5.88
-5.845
-5.805
-5.77
-5.735
-5.71
-5.7
-5.675
-5.64
-5.61
-5.59
-5.58
-5.58
-5.575
-5.565
-5.56
-5.56
-5.565
-5.58
-5.595
-5.615
-5.63
-5.64
-5.66
-5.68
-5.7
-5.715
-5.725
-5.755
-5.78
-5.805
-5.815
-5.815
-5.825
-5.84
-5.85
-5.875
-5.88
-5.885
-5.905
-5.9
-5.9
-5.895
-5.895
-5.91
-5.905
-5.9
-5.905
-5.905
-5.89
-5.88
-5.88
-5.875
-5.86
-5.865
-5.865
-5.865
-5.855
-5.84
-5.83
-5.805
-5.8
-5.785
-5.775
-5.775
-5.78
-5.78
-5.755
-5.74
-5.715
-5.71
-5.72
-5.715
-5.72
-5.73
-5.74
-5.755
-5.775
-5.79
-5.8
-5.81
-5.835
-5.85
-5.88
-5.89
-5.89
-5.89
-5.9
-5.905
-5.9
-5.905
-5.92
-5.915
-5.9
-5.89
-5.89
-5.895
-5.91
-5.905
-5.855
-5.705
-5.565
-5.335
-4.985
-4.595
-4.25
-4.07
-4.01
-4.08
-4.3
-4.64
-5.08
-5.55
-5.955
-6.2
-6.25
-6.24
-6.245
-6.24
-6.21
-6.175
-6.135
-6.11
-6.09
-6.09
-6.07
-6.065
-6.065
-6.07
-6.06
-6.05
-6.055
-6.05
-6.045
-6.035
-6.025
-6.025
-6.03
-6.03
-6.02
-6
-5.98
-5.96
-5.935
-5.905
-5.88
-5.845
-5.815
-5.78
-5.75
-5.715
-5.675
-5.635
-5.61
-5.585
-5.565
-5.55
-5.535
-5.525
-5.525
-5.525
-5.535
-5.555
-5.565
-5.575
-5.59
-5.605
-5.625
-5.64
-5.67
-5.695
-5.72
-5.74
-5.755
-5.77
-5.775
-5.785
-5.8
-5.81
-5.82
-5.82
-5.825
-5.84
-5.85
-5.86
-5.86
-5.865
-5.87
-5.875
-5.88
-5.88
-5.88
-5.87
-5.87
-5.875
-5.875
-5.87
-5.865
-5.855
-5.845
-5.84
-5.825
-5.82
-5.81
-5.805
-5.785
-5.77
-5.76
-5.74
-5.74
-5.74
-5.735
-5.73
-5.72
-5.7
-5.68
-5.67
-5.67
-5.675
-5.675
-5.67
-5.685
-5.695
-5.71
-5.73
-5.75
-5.77
-5.785
-5.815
-5.84
-5.86
-5.86
-5.85
-5.855
-5.86
-5.86
-5.87
-5.875
-5.865
-5.86
-5.86
-5.85
-5.85
-5.87
-5.885
-5.865
-5.775
-5.64
-5.48
-5.215
-4.825
-4.425
-4.13
-3.985
-3.955
-4.065
-4.315
-4.68
-5.14
-5.6
-5.975
-6.19
-6.215
-6.2
-6.2
-6.19
-6.155
-6.1
-6.045
-6.03
-6.025
-6.02
-6.015
-6.015
-6.015
-6.015
-6.01
-6
-5.995
-5.99
-5.99
-5.99
-5.99
-5.98
-5.975
-5.965
-5.955
-5.935
-5.92
-5.9
-5.88
-5.86
-5.82
-5.79
-5.765
-5.73
-5.695
-5.66
-5.625
-5.6
-5.58
-5.56
-5.535
-5.51
-5.49
-5.48
-5.47
-5.47
-5.465
-5.465
-5.48
-5.49
-5.505
-5.52
-5.53
-5.55
-5.575
-5.6
-5.625
-5.65
-5.67
-5.69
-5.71
-5.715
-5.735
-5.745
-5.76
-5.765
-5.78
-5.79
-5.785
-5.795
-5.8
-5.8
-5.81
-5.815
-5.815
-5.81
-5.805
-5.81
-5.82
-5.82
-5.82
-5.815
-5.81
-5.81
-5.805
-5.8
-5.8
-5.795
-5.79
-5.785
-5.78
-5.77
-5.76
-5.745
-5.73
-5.71
-5.71
-5.7
-5.7
-5.7
-5.695
-5.68
-5.655
-5.64
-5.635
-5.64
-5.645
-5.65
-5.655
-5.655
-5.665
-5.68
-5.7
-5.72
-5.735
-5.76
-5.775
-5.8
-5.82
-5.825
-5.83
-5.83
-5.83
-5.83
-5.835
-5.84
-5.84
-5.835
-5.83
-5.825
-5.83
-5.84
-5.865
-5.845
-5.76
-5.62
-5.46
-5.215
-4.845
-4.445
-4.15
-4.005
-3.98
-4.08
-4.31
-4.675
-5.11
-5.57
-5.955
-6.165
-6.2
-6.19
-6.185
-6.18
-6.14
-6.09
-6.04
-6.01
-6.01
-6.005
-6
-6
-6
-5.995
-5.99
-5.995
-6
-6
-5.995
-5.99
-5.98
-5.97
-5.965
-5.96
-5.955
-5.94
-5.92
-5.9
-5.88
-5.86
-5.835
-5.8
-5.76
-5.735
-5.7
-5.67
-5.64
-5.61
-5.585
-5.56
-5.54
-5.52
-5.51
-5.485
-5.475
-5.465
-5.465
-5.47
-5.475
-5.49
-5.505
-5.525
-5.545
-5.565
-5.59
-5.61
-5.635
-5.65
-5.675
-5.695
-5.71
-5.73
-5.745
-5.76
-5.775
-5.785
-5.8
-5.81
-5.81
-5.82
-5.825
-5.825
-5.83
-5.84
-5.84
-5.835
-5.835
-5.835
-5.835
-5.83
-5.825
-5.825
-5.815
-5.815
-5.815
-5.81
-5.805
-5.8
-5.79
-5.785
-5.785
-5.78
-5.775
-5.76
-5.745
-5.72
-5.71
-5.7
-5.7
-5.705
-5.7
-5.685
-5.66
-5.64
-5.635
-5.64
-5.64
-5.645
-5.655
-5.66
-5.68
-5.695
-5.705
-5.725
-5.75
-5.77
-5.795
-5.82
-5.84
-5.84
-5.84
-5.84
-5.84
-5.84
-5.84
-5.84
-5.84
-5.835
-5.835
-5.83
-5.835
-5.85
-5.86
-5.825
-5.72
-5.58
-5.42
-5.15
-4.76
-4.37
-4.115
-4.01
-4.01
-4.17
-4.45
-4.84
-5.29
-5.74
-6.055
-6.2
-6.195
-6.195
-6.19
-6.165
-6.115
-6.055
-6.01
-6
-5.995
-5.99
-5.99
-5.99
-5.985
-5.985
-5.98
-5.975
-5.97
-5.965
-5.965
-5.965
-5.955
-5.945
-5.935
-5.925
-5.91
-5.89
-5.875
-5.855
-5.835
-5.81
-5.785
-5.75
-5.715
-5.68
-5.65
-5.62
-5.59
-5.56
-5.535
-5.51
-5.49
-5.48
-5.47
-5.465
-5.455
-5.45
-5.45
-5.46
-5.47
-5.485
-5.5
-5.52
-5.54
-5.565
-5.585
-5.61
-5.635
-5.66
-5.68
-5.705
-5.72
-5.745
-5.76
-5.77
-5.78
-5.79
-5.8
-5.805
-5.82
-5.82
-5.83
-5.835
-5.84
-5.84
-5.84
-5.84
-5.84
-5.845
-5.845
-5.84
-5.84
-5.84
-5.84
-5.84
-5.835
-5.83
-5.83
-5.82
-5.82
-5.815
-5.805
-5.8
-5.78
-5.765
-5.76
-5.75
-5.74
-5.74
-5.74
-5.725
-5.71
-5.685
-5.67
-5.67
-5.68
-5.68
-5.68
-5.685
-5.69
-5.7
-5.72
-5.735
-5.75
-5.775
-5.8
-5.82
-5.84
-5.85
-5.86
-5.865
-5.875
-5.88
-5.88
-5.88
-5.875
-5.875
-5.87
-5.87
-5.87
-5.875
-5.895
-5.89
-5.815
-5.69
-5.555
-5.35
-5.015
-4.615
-4.265
-4.075
-4.025
-4.105
-4.345
-4.68
-5.115
-5.575
-5.97
-6.205
-6.265
-6.255
-6.245
-6.235
-6.195
-6.13
-6.075
-6.04
-6.04
-6.035
-6.025
-6.02
-6.01
-6.005
-6
-6
-5.995
-5.99
-5.985
-5.98
-5.98
-5.98
-5.975
-5.965
-5.96
-5.945
-5.925
-5.905
-5.875
-5.845
-5.815
-5.78
-5.75
-5.72
-5.68
-5.655
-5.625
-5.6
-5.58
-5.555
-5.54
-5.52
-5.505
-5.495
-5.485
-5.48
-5.48
-5.49
-5.5
-5.515
-5.525
-5.54
-5.555
-5.575
-5.595
-5.62
-5.645
-5.67
-5.69
-5.705
-5.725
-5.745
-5.76
-5.775
-5.79
-5.8
-5.81
-5.815
-5.825
-5.83
-5.835
-5.84
-5.84
-5.845
-5.86
-5.86
-5.86
-5.865
-5.865
-5.865
-5.86
-5.85
-5.845
-5.84
-5.84
-5.835
-5.825
-5.82
-5.815
-5.8
-5.795
-5.77
-5.76
-5.76
-5.75
-5.755
-5.75
-5.745
-5.735
-5.71
-5.69
-5.685
-5.69
-5.685
-5.68
-5.675
-5.685
-5.695
-5.715
-5.73
-5.745
-5.765
-5.79
-5.81
-5.835
-5.85
-5.86
-5.86
-5.86
-5.87
-5.875
-5.875
-5.875
-5.87
-5.87
-5.87
-5.875
-5.88
-5.89
-5.915
-5.905
-5.825
-5.69
-5.55
-5.33
-4.98
-4.575
-4.245
-4.07
-4.025
-4.135
-4.385
-4.74
-5.165
-5.615
-6
-6.23
-6.28
-6.275
-6.265
-6.27
-6.235
-6.18
-6.12
-6.08
-6.07
-6.06
-6.04
-6.03
-6.02
-6.01
-6.005
-6
-5.995
-6
-6
-5.99
-5.985
-5.985
-5.97
-5.96
-5.945
-5.935
-5.92
-5.895
-5.875
-5.85
-5.82
-5.795
-5.76
-5.73
-5.705
-5.67
-5.645
-5.61
-5.585
-5.565
-5.55
-5.535
-5.52
-5.52
-5.52
-5.515
-5.52
-5.52
-5.53
-5.54
-5.55
-5.565
-5.58
-5.6
-5.62
-5.64
-5.67
-5.69
-5.71
-5.735
-5.755
-5.77
-5.78
-5.79
-5.795
-5.805
-5.815
-5.82
-5.83
-5.835
-5.84
-5.85
-5.85
-5.855
-5.855
-5.86
-5.86
-5.86
-5.86
-5.86
-5.855
-5.855
-5.85
-5.85
-5.85
-5.85
-5.85
-5.845
-5.83
-5.82
-5.8
-5.795
-5.785
-5.785
-5.785
-5.77
-5.75
-5.725
-5.705
-5.7
-5.705
-5.715
-5.72
-5.715
-5.73
-5.74
-5.76
-5.775
-5.79
-5.805
-5.83
-5.85
-5.87
-5.89
-5.895
-5.885
-5.88
-5.88
-5.88
-5.88
-5.88
-5.88
-5.88
-5.88
-5.875
-5.875
-5.89
-5.91
-5.895
-5.8
-5.67
-5.525
-5.28
-4.905
-4.51
-4.22
-4.085
-4.075
-4.23
-4.5
-4.88
-5.315
-5.76
-6.09
-6.28
-6.295
-6.28
-6.28
-6.265
-6.215
-6.155
-6.095
-6.065
-6.065
-6.06
-6.055
-6.05
-6.04
-6.035
-6.035
-6.035
-6.025
-6.02
-6.02
-6.01
-5.995
-5.99
-5.975
-5.955
-5.93
-5.92
-5.91
-5.895
-5.88
-5.84
-5.8
-5.765
-5.735
-5.705
-5.67
-5.64
-5.61
-5.58
-5.56
-5.54
-5.52
-5.515
-5.5
-5.495
-5.49
-5.495
-5.5
-5.515
-5.525
-5.54
-5.555
-5.57
-5.585
-5.605
-5.625
-5.645
-5.665
-5.685
-5.705
-5.725
-5.745
-5.76
-5.775
-5.79
-5.8
-5.815
-5.825
-5.83
-5.84
-5.84
-5.845
-5.85
-5.85
-5.85
-5.845
-5.84
-5.835
-5.83
-5.825
-5.82
-5.815
-5.805
-5.805
-5.8
-5.79
-5.78
-5.76
-5.745
-5.74
-5.735
-5.74
-5.74
-5.735
-5.72
-5.695
-5.68
-5.665
-5.67
-5.68
-5.685
-5.68
-5.69
-5.705
-5.72
-5.74
-5.76
-5.765
-5.795
-5.81
-5.84
-5.86
-5.87
-5.875
-5.875
-5.875
-5.88
-5.885
-5.885
-5.875
-5.87
-5.875
-5.89
-5.875
-5.89
-5.91
-5.89
-5.795
-5.66
-5.52
-5.315
-4.98
-4.585
-4.255
-4.08
-4.04
-4.14
-4.385
-4.73
-5.16
-5.615
-5.995
-6.22
-6.27
-6.255
-6.25
-6.245
-6.205
-6.15
-6.09
-6.055
-6.055
-6.055
-6.045
-6.04
-6.025
-6.02
-6.01
-6
-5.995
-5.985
-5.985
-5.975
-5.965
-5.96
-5.95
-5.935
-5.93
-5.91
-5.895
-5.88
-5.86
-5.83
-5.8
-5.775
-5.745
-5.71
-5.68
-5.655
-5.625
-5.59
-5.56
-5.54
-5.525
-5.51
-5.5
-5.485
-5.49
-5.49
-5.49
-5.495
-5.51
-5.525
-5.54
-5.555
-5.57
-5.59
-5.605
-5.625
-5.65
-5.67
-5.695
-5.72
-5.74
-5.765
-5.785
-5.8
-5.815
-5.825
-5.83
-5.835
-5.84
-5.84
-5.845
-5.85
-5.85
-5.85
-5.855
-5.855
-5.855
-5.85
-5.845
-5.84
-5.835
-5.83
-5.825
-5.815
-5.8
-5.78
-5.775
-5.77
-5.76
-5.755
-5.74
-5.73
-5.705
-5.685
-5.665
-5.66
-5.67
-5.67
-5.665
-5.67
-5.68
-5.695
-5.715
-5.735
-5.755
================================================
FILE: data/insect.txt
================================================
629.000000
1217.000000
833.000000
1173.000000
965.000000
961.000000
1105.000000
981.000000
1141.000000
1057.000000
1377.000000
913.000000
917.000000
953.000000
905.000000
893.000000
769.000000
865.000000
901.000000
841.000000
877.000000
769.000000
865.000000
889.000000
825.000000
841.000000
673.000000
937.000000
949.000000
897.000000
925.000000
813.000000
913.000000
897.000000
901.000000
925.000000
881.000000
1009.000000
957.000000
981.000000
1017.000000
993.000000
925.000000
961.000000
977.000000
997.000000
981.000000
965.000000
969.000000
989.000000
1021.000000
1069.000000
1045.000000
941.000000
869.000000
989.000000
1017.000000
981.000000
925.000000
973.000000
897.000000
981.000000
989.000000
901.000000
921.000000
1001.000000
981.000000
889.000000
905.000000
921.000000
981.000000
981.000000
997.000000
949.000000
969.000000
1001.000000
941.000000
865.000000
789.000000
857.000000
881.000000
969.000000
853.000000
793.000000
813.000000
849.000000
913.000000
849.000000
817.000000
721.000000
709.000000
701.000000
673.000000
653.000000
589.000000
665.000000
681.000000
673.000000
565.000000
569.000000
625.000000
657.000000
661.000000
577.000000
569.000000
553.000000
629.000000
613.000000
561.000000
537.000000
553.000000
617.000000
589.000000
557.000000
485.000000
529.000000
601.000000
585.000000
505.000000
501.000000
513.000000
549.000000
585.000000
517.000000
493.000000
541.000000
617.000000
537.000000
493.000000
361.000000
465.000000
1177.000000
1505.000000
1317.000000
1525.000000
2029.000000
1425.000000
1429.000000
1289.000000
809.000000
1357.000000
1549.000000
1205.000000
1761.000000
1845.000000
1557.000000
1905.000000
1645.000000
1341.000000
1345.000000
1353.000000
1365.000000
1153.000000
1261.000000
1229.000000
1177.000000
1201.000000
1049.000000
1137.000000
1081.000000
1009.000000
1205.000000
1161.000000
1113.000000
1041.000000
1093.000000
997.000000
1045.000000
1009.000000
997.000000
1013.000000
861.000000
1021.000000
969.000000
981.000000
1041.000000
1065.000000
801.000000
1041.000000
1029.000000
1057.000000
1105.000000
1073.000000
901.000000
985.000000
1065.000000
1081.000000
1065.000000
1029.000000
985.000000
921.000000
1069.000000
1069.000000
1045.000000
989.000000
1041.000000
1013.000000
957.000000
969.000000
965.000000
1029.000000
1061.000000
905.000000
957.000000
965.000000
1033.000000
1081.000000
1069.000000
993.000000
857.000000
953.000000
1013.000000
1057.000000
1013.000000
985.000000
917.000000
1021.000000
1037.000000
961.000000
1001.000000
1005.000000
1061.000000
1049.000000
981.000000
981.000000
1001.000000
1081.000000
1061.000000
1061.000000
989.000000
1033.000000
1089.000000
1069.000000
1041.000000
973.000000
1021.000000
1065.000000
1045.000000
1009.000000
993.000000
1029.000000
1021.000000
1017.000000
989.000000
957.000000
1021.000000
1021.000000
1049.000000
961.000000
937.000000
965.000000
1001.000000
1025.000000
985.000000
949.000000
961.000000
993.000000
985.000000
905.000000
861.000000
881.000000
929.000000
929.000000
861.000000
825.000000
861.000000
905.000000
913.000000
845.000000
845.000000
869.000000
913.000000
933.000000
865.000000
857.000000
881.000000
893.000000
897.000000
853.000000
829.000000
853.000000
909.000000
917.000000
777.000000
685.000000
737.000000
765.000000
793.000000
733.000000
757.000000
857.000000
1285.000000
1549.000000
1817.000000
1621.000000
1909.000000
2389.000000
2209.000000
2049.000000
1953.000000
1841.000000
1737.000000
1809.000000
1757.000000
1661.000000
1577.000000
1713.000000
1741.000000
1521.000000
1353.000000
1513.000000
1633.000000
1609.000000
1505.000000
1257.000000
1393.000000
1465.000000
1441.000000
1321.000000
1237.000000
1085.000000
1385.000000
1385.000000
1273.000000
1265.000000
1241.000000
1457.000000
1361.000000
1269.000000
1113.000000
1245.000000
1301.000000
1285.000000
1189.000000
1101.000000
1141.000000
1157.000000
1201.000000
1125.000000
969.000000
1141.000000
1189.000000
1173.000000
1101.000000
941.000000
1101.000000
1153.000000
1145.000000
1121.000000
1013.000000
1017.000000
1125.000000
1133.000000
1093.000000
1041.000000
1053.000000
1065.000000
1085.000000
1053.000000
1081.000000
1089.000000
1133.000000
1141.000000
1065.000000
1033.000000
1037.000000
1113.000000
1025.000000
1077.000000
1013.000000
1069.000000
1113.000000
993.000000
1001.000000
973.000000
1145.000000
1765.000000
1777.000000
2461.000000
2337.000000
2293.000000
2369.000000
2081.000000
1945.000000
1817.000000
1761.000000
1765.000000
1765.000000
1621.000000
1597.000000
1553.000000
1581.000000
1553.000000
1485.000000
1401.000000
1389.000000
1417.000000
1385.000000
1357.000000
1273.000000
1277.000000
1321.000000
1329.000000
1281.000000
1177.000000
1165.000000
1197.000000
1209.000000
1161.000000
1077.000000
1101.000000
1141.000000
1157.000000
1101.000000
1021.000000
1009.000000
1069.000000
985.000000
857.000000
825.000000
873.000000
997.000000
1013.000000
1665.000000
1309.000000
1861.000000
1817.000000
2325.000000
2005.000000
1721.000000
1713.000000
1701.000000
1661.000000
1521.000000
1501.000000
1481.000000
1533.000000
1521.000000
1269.000000
1353.000000
1353.000000
1377.000000
1337.000000
1129.000000
1225.000000
1257.000000
1285.000000
1285.000000
1085.000000
1161.000000
1241.000000
1229.000000
1285.000000
1089.000000
1157.000000
1181.000000
1233.000000
1285.000000
1041.000000
1161.000000
1173.000000
1233.000000
1253.000000
1125.000000
1165.000000
1145.000000
1197.000000
1173.000000
1233.000000
1177.000000
1173.000000
1245.000000
1289.000000
1197.000000
1049.000000
1129.000000
1229.000000
1249.000000
1201.000000
1109.000000
1169.000000
1225.000000
1269.000000
1237.000000
1117.000000
1125.000000
1241.000000
1257.000000
1221.000000
1205.000000
1201.000000
1245.000000
1177.000000
1209.000000
1169.000000
1161.000000
1225.000000
1253.000000
1257.000000
1181.000000
1209.000000
1269.000000
1261.000000
1273.000000
1213.000000
1201.000000
1257.000000
1265.000000
1233.000000
1205.000000
1177.000000
1205.000000
1261.000000
1229.000000
1173.000000
1169.000000
1217.000000
1261.000000
1229.000000
1157.000000
1169.000000
1221.000000
1245.000000
1225.000000
1169.000000
1149.000000
1205.000000
1281.000000
1217.000000
1169.000000
1109.000000
1197.000000
1213.000000
1221.000000
1157.000000
1117.000000
1197.000000
1201.000000
1177.000000
1113.000000
1129.000000
1157.000000
1221.000000
1217.000000
1133.000000
1101.000000
1181.000000
1193.000000
1161.000000
1145.000000
1133.000000
1189.000000
1213.000000
1189.000000
1129.000000
1101.000000
997.000000
977.000000
745.000000
909.000000
989.000000
1085.000000
1157.000000
1141.000000
1073.000000
1301.000000
1213.000000
1401.000000
2029.000000
1549.000000
2109.000000
1993.000000
1861.000000
1805.000000
1725.000000
1401.000000
1625.000000
1689.000000
1633.000000
1389.000000
1553.000000
1653.000000
1633.000000
1557.000000
1497.000000
1533.000000
1485.000000
1449.000000
1529.000000
1473.000000
1385.000000
1409.000000
1445.000000
1385.000000
1401.000000
1381.000000
1381.000000
1457.000000
1429.000000
1417.000000
1325.000000
1373.000000
1413.000000
1465.000000
1401.000000
1373.000000
1417.000000
1253.000000
1429.000000
1405.000000
1421.000000
1453.000000
1421.000000
1469.000000
1413.000000
1417.000000
1421.000000
1417.000000
1473.000000
1445.000000
1453.000000
1489.000000
1357.000000
1473.000000
1489.000000
1433.000000
1473.000000
1533.000000
1517.000000
1377.000000
1373.000000
1481.000000
1493.000000
1489.000000
1437.000000
1293.000000
1429.000000
1457.000000
1485.000000
1397.000000
1397.000000
1425.000000
1497.000000
1485.000000
1413.000000
1409.000000
1445.000000
1481.000000
1453.000000
1417.000000
1353.000000
1433.000000
1449.000000
1489.000000
1405.000000
1349.000000
1377.000000
1393.000000
1445.000000
1361.000000
1341.000000
1353.000000
1409.000000
1405.000000
1337.000000
1309.000000
1309.000000
1405.000000
1365.000000
1341.000000
1317.000000
1341.000000
1385.000000
1357.000000
1309.000000
1261.000000
1305.000000
1357.000000
1357.000000
1257.000000
1273.000000
1273.000000
1309.000000
1321.000000
1269.000000
1245.000000
1233.000000
1329.000000
1321.000000
1253.000000
1241.000000
1249.000000
1345.000000
1313.000000
1289.000000
1229.000000
1237.000000
1217.000000
1169.000000
1141.000000
1045.000000
1105.000000
1149.000000
1193.000000
1157.000000
1181.000000
1205.000000
1225.000000
1257.000000
1333.000000
1249.000000
1249.000000
1305.000000
1297.000000
1213.000000
1209.000000
1237.000000
1321.000000
1209.000000
1193.000000
1161.000000
1161.000000
1373.000000
1249.000000
1297.000000
1321.000000
1329.000000
1293.000000
1313.000000
1393.000000
1281.000000
1229.000000
1449.000000
1561.000000
1501.000000
1473.000000
1457.000000
1389.000000
1545.000000
1533.000000
1497.000000
1525.000000
1569.000000
1505.000000
1525.000000
1481.000000
1457.000000
1533.000000
1517.000000
1437.000000
1389.000000
1449.000000
1473.000000
1493.000000
1397.000000
1265.000000
1417.000000
1481.000000
1533.000000
1425.000000
1413.000000
1321.000000
1473.000000
1493.000000
1461.000000
1429.000000
1393.000000
1449.000000
1393.000000
1473.000000
1437.000000
1445.000000
1473.000000
1497.000000
1377.000000
1393.000000
1489.000000
1501.000000
1549.000000
1457.000000
1449.000000
1465.000000
1461.000000
1525.000000
1461.000000
1453.000000
1449.000000
1517.000000
1529.000000
1489.000000
1465.000000
1461.000000
1509.000000
1517.000000
1497.000000
1441.000000
1461.000000
1489.000000
1485.000000
1489.000000
1409.000000
1425.000000
1473.000000
1521.000000
1445.000000
1401.000000
1329.000000
1365.000000
1369.000000
1297.000000
1229.000000
1241.000000
1305.000000
1301.000000
1401.000000
1785.000000
1849.000000
2293.000000
2429.000000
2517.000000
2161.000000
2017.000000
2865.000000
2597.000000
3129.000000
2749.000000
2781.000000
2781.000000
2869.000000
2197.000000
1981.000000
1793.000000
1789.000000
1765.000000
1697.000000
1581.000000
1541.000000
1577.000000
1541.000000
1525.000000
1417.000000
1433.000000
1473.000000
1461.000000
1413.000000
1321.000000
1353.000000
1345.000000
1405.000000
1297.000000
1253.000000
1253.000000
1289.000000
1337.000000
1281.000000
1225.000000
1213.000000
1253.000000
1301.000000
1237.000000
1185.000000
1201.000000
1241.000000
1245.000000
1157.000000
1093.000000
1025.000000
1081.000000
1049.000000
1065.000000
1025.000000
1133.000000
1177.000000
1545.000000
1849.000000
1749.000000
2521.000000
2585.000000
3133.000000
2945.000000
2729.000000
2577.000000
2517.000000
2517.000000
2413.000000
2281.000000
2293.000000
2289.000000
2293.000000
2193.000000
2085.000000
2097.000000
1945.000000
2097.000000
2081.000000
1989.000000
1881.000000
2049.000000
2041.000000
2025.000000
1909.000000
1861.000000
1945.000000
1989.000000
1913.000000
1665.000000
1797.000000
1881.000000
1941.000000
1877.000000
1685.000000
1761.000000
1821.000000
1877.000000
1837.000000
1677.000000
1757.000000
1845.000000
1881.000000
1733.000000
1733.000000
1765.000000
1837.000000
1877.000000
1673.000000
1761.000000
1757.000000
1825.000000
1897.000000
1657.000000
1753.000000
1781.000000
1853.000000
1877.000000
1713.000000
1753.000000
1777.000000
1833.000000
1889.000000
1837.000000
1665.000000
1741.000000
1833.000000
1857.000000
1841.000000
1709.000000
1737.000000
1837.000000
1893.000000
1837.000000
1617.000000
1725.000000
1789.000000
1837.000000
1817.000000
1661.000000
1701.000000
1773.000000
1837.000000
1805.000000
1709.000000
1697.000000
1737.000000
1677.000000
1689.000000
1653.000000
1641.000000
1677.000000
1713.000000
1681.000000
1649.000000
1605.000000
1693.000000
1733.000000
1725.000000
1669.000000
1629.000000
1701.000000
1713.000000
1697.000000
1629.000000
1609.000000
1673.000000
1677.000000
1669.000000
1573.000000
1593.000000
1601.000000
1645.000000
1625.000000
1581.000000
1553.000000
1581.000000
1629.000000
1597.000000
1565.000000
1537.000000
1573.000000
1637.000000
1597.000000
1545.000000
1497.000000
1573.000000
1577.000000
1545.000000
1497.000000
1445.000000
1529.000000
1545.000000
1569.000000
1449.000000
1465.000000
1497.000000
1537.000000
1509.000000
1429.000000
1433.000000
1457.000000
1505.000000
1501.000000
1449.000000
1417.000000
1449.000000
1489.000000
1477.000000
1421.000000
1393.000000
1457.000000
1489.000000
1481.000000
1409.000000
1401.000000
1445.000000
1473.000000
1333.000000
1301.000000
1289.000000
1313.000000
1341.000000
1385.000000
1333.000000
1329.000000
1409.000000
1429.000000
1441.000000
1349.000000
1313.000000
1377.000000
1369.000000
1341.000000
1337.000000
1329.000000
1381.000000
1321.000000
1341.000000
1301.000000
1285.000000
1225.000000
1313.000000
1297.000000
1253.000000
1129.000000
1161.000000
1233.000000
1237.000000
1153.000000
1173.000000
1261.000000
1313.000000
1293.000000
1141.000000
1325.000000
1373.000000
1389.000000
1273.000000
1389.000000
1397.000000
1445.000000
1449.000000
1449.000000
1429.000000
1421.000000
1441.000000
1501.000000
1501.000000
1477.000000
1445.000000
1369.000000
1509.000000
1493.000000
1477.000000
1437.000000
1421.000000
1509.000000
1525.000000
1453.000000
1449.000000
1437.000000
1489.000000
1521.000000
1477.000000
1453.000000
1513.000000
1541.000000
1541.000000
1369.000000
1421.000000
1501.000000
1525.000000
1525.000000
1473.000000
1433.000000
1381.000000
1505.000000
1557.000000
1513.000000
1481.000000
1489.000000
1541.000000
1557.000000
1493.000000
1477.000000
1489.000000
1533.000000
1561.000000
1501.000000
1465.000000
1505.000000
1561.000000
1545.000000
1477.000000
1449.000000
1481.000000
1537.000000
1517.000000
1465.000000
1409.000000
1401.000000
1489.000000
1477.000000
1445.000000
1381.000000
1425.000000
1469.000000
1449.000000
1429.000000
1377.000000
1421.000000
1469.000000
1469.000000
1401.000000
1357.000000
1393.000000
1433.000000
1449.000000
1401.000000
1365.000000
1389.000000
1441.000000
1441.000000
1385.000000
1329.000000
1333.000000
1417.000000
1409.000000
1321.000000
1321.000000
1337.000000
1433.000000
1377.000000
1333.000000
1237.000000
1257.000000
1317.000000
1321.000000
1273.000000
1241.000000
1297.000000
1349.000000
1385.000000
1325.000000
1301.000000
1345.000000
1753.000000
1933.000000
1849.000000
1633.000000
2005.000000
2073.000000
2045.000000
1965.000000
1761.000000
1853.000000
1909.000000
1881.000000
1721.000000
1817.000000
1869.000000
1921.000000
1869.000000
1829.000000
1773.000000
1821.000000
1769.000000
1825.000000
1745.000000
1681.000000
1737.000000
1653.000000
1749.000000
1693.000000
1669.000000
1677.000000
1697.000000
1649.000000
1645.000000
1629.000000
1617.000000
1677.000000
1653.000000
1485.000000
1569.000000
1581.000000
1625.000000
1617.000000
1493.000000
1545.000000
1605.000000
1661.000000
1633.000000
1605.000000
1553.000000
1589.000000
1605.000000
1585.000000
1613.000000
1577.000000
1637.000000
1681.000000
1681.000000
1589.000000
1541.000000
1653.000000
1721.000000
1749.000000
1665.000000
1633.000000
1625.000000
1665.000000
1669.000000
1641.000000
1609.000000
1621.000000
1665.000000
1665.000000
1621.000000
1561.000000
1605.000000
1621.000000
1641.000000
1581.000000
1553.000000
1601.000000
1613.000000
1669.000000
1557.000000
1553.000000
1593.000000
1605.000000
1633.000000
1565.000000
1545.000000
1537.000000
1625.000000
1589.000000
1553.000000
1533.000000
1537.000000
1625.000000
1557.000000
1569.000000
1485.000000
1533.000000
1553.000000
1537.000000
1505.000000
1465.000000
1489.000000
1509.000000
1549.000000
1453.000000
1421.000000
1813.000000
2017.000000
2245.000000
2461.000000
2265.000000
2693.000000
2485.000000
2305.000000
2729.000000
2825.000000
2889.000000
3069.000000
2921.000000
3113.000000
2921.000000
2669.000000
2357.000000
2181.000000
2041.000000
1845.000000
1865.000000
1789.000000
1797.000000
1637.000000
1605.000000
1585.000000
1613.000000
1557.000000
1393.000000
1377.000000
1341.000000
1417.000000
1393.000000
1373.000000
1333.000000
1345.000000
1513.000000
1537.000000
1509.000000
1473.000000
1513.000000
1509.000000
1453.000000
1453.000000
1373.000000
1377.000000
1413.000000
1413.000000
1329.000000
1225.000000
1241.000000
1229.000000
1189.000000
1221.000000
1209.000000
1253.000000
1225.000000
1389.000000
1385.000000
1361.000000
1357.000000
1469.000000
1465.000000
1401.000000
1617.000000
1657.000000
1685.000000
1629.000000
1421.000000
1521.000000
1545.000000
1573.000000
1393.000000
1513.000000
1501.000000
1501.000000
1393.000000
1605.000000
1565.000000
1521.000000
1513.000000
1569.000000
1625.000000
1581.000000
1497.000000
1621.000000
1669.000000
1677.000000
1637.000000
1549.000000
1617.000000
1681.000000
1593.000000
1621.000000
1633.000000
1653.000000
1709.000000
1701.000000
1637.000000
1489.000000
1557.000000
1617.000000
1649.000000
1557.000000
1521.000000
1561.000000
1613.000000
1605.000000
1525.000000
1477.000000
1513.000000
1545.000000
1565.000000
1485.000000
1441.000000
1449.000000
1497.000000
1513.000000
1473.000000
1405.000000
1405.000000
1505.000000
1481.000000
1457.000000
1393.000000
1433.000000
1521.000000
1489.000000
1449.000000
1393.000000
1413.000000
1445.000000
1449.000000
1429.000000
1369.000000
1413.000000
1445.000000
1461.000000
1373.000000
1353.000000
1469.000000
1685.000000
1713.000000
1621.000000
1613.000000
1569.000000
1677.000000
1633.000000
1617.000000
1581.000000
1569.000000
1641.000000
1573.000000
1577.000000
1465.000000
1529.000000
1561.000000
1577.000000
1553.000000
1505.000000
1409.000000
1357.000000
1397.000000
1317.000000
1309.000000
1317.000000
1277.000000
1317.000000
1265.000000
1209.000000
1197.000000
1289.000000
1321.000000
1265.000000
1289.000000
1305.000000
1445.000000
1413.000000
1745.000000
1753.000000
1461.000000
1529.000000
1521.000000
1449.000000
1309.000000
1325.000000
1325.000000
1417.000000
1329.000000
1349.000000
1369.000000
1373.000000
1577.000000
1477.000000
1473.000000
1477.000000
1581.000000
1569.000000
1469.000000
1541.000000
1561.000000
1629.000000
1549.000000
1597.000000
1525.000000
1501.000000
1661.000000
1657.000000
1601.000000
1513.000000
1613.000000
1649.000000
1681.000000
1589.000000
1585.000000
1617.000000
1641.000000
1577.000000
1633.000000
1601.000000
1609.000000
1629.000000
1713.000000
1705.000000
1569.000000
1633.000000
1721.000000
1733.000000
1705.000000
1521.000000
1677.000000
1737.000000
1757.000000
1721.000000
1661.000000
1701.000000
1693.000000
1757.000000
1697.000000
1649.000000
1649.000000
1721.000000
1765.000000
1685.000000
1673.000000
1673.000000
1649.000000
1693.000000
1633.000000
1629.000000
1665.000000
1729.000000
1697.000000
1661.000000
1617.000000
1629.000000
1693.000000
1677.000000
1657.000000
1585.000000
1605.000000
1677.000000
1673.000000
1629.000000
1565.000000
1613.000000
1657.000000
1677.000000
1625.000000
1585.000000
1613.000000
1653.000000
1673.000000
1593.000000
1557.000000
1553.000000
1605.000000
1649.000000
1609.000000
1585.000000
1569.000000
1625.000000
1641.000000
1589.000000
1557.000000
1553.000000
1617.000000
1653.000000
1609.000000
1533.000000
1553.000000
1625.000000
1641.000000
1605.000000
1569.000000
1577.000000
1597.000000
1649.000000
1569.000000
1509.000000
1533.000000
1585.000000
1625.000000
1589.000000
1525.000000
1517.000000
1569.000000
1597.000000
1549.000000
1497.000000
1517.000000
1577.000000
1585.000000
1493.000000
1413.000000
1417.000000
1445.000000
1477.000000
1473.000000
1405.000000
1481.000000
1505.000000
1553.000000
1505.000000
1469.000000
1537.000000
1657.000000
2137.000000
1941.000000
1673.000000
1705.000000
1717.000000
1697.000000
1521.000000
1633.000000
1669.000000
1749.000000
1829.000000
1761.000000
1597.000000
1797.000000
1861.000000
1849.000000
1821.000000
1773.000000
1793.000000
1753.000000
1853.000000
1805.000000
1705.000000
1801.000000
1841.000000
1757.000000
1821.000000
1837.000000
1681.000000
1901.000000
1905.000000
1841.000000
1793.000000
1853.000000
1945.000000
1741.000000
1929.000000
1893.000000
1913.000000
1781.000000
1925.000000
1953.000000
1849.000000
1805.000000
1933.000000
1977.000000
1905.000000
1641.000000
1857.000000
1933.000000
1989.000000
1805.000000
1857.000000
1853.000000
1913.000000
1861.000000
1873.000000
1865.000000
1817.000000
1861.000000
1909.000000
1885.000000
1833.000000
1829.000000
1861.000000
1837.000000
1869.000000
1797.000000
1805.000000
1865.000000
1869.000000
1829.000000
1785.000000
1801.000000
1813.000000
1853.000000
1797.000000
1757.000000
1729.000000
1805.000000
1797.000000
1741.000000
1725.000000
1677.000000
1777.000000
1753.000000
1721.000000
1673.000000
1657.000000
1733.000000
1717.000000
1701.000000
1621.000000
1621.000000
1697.000000
1681.000000
1637.000000
1581.000000
1605.000000
1657.000000
1673.000000
1657.000000
1577.000000
1609.000000
1633.000000
1689.000000
1589.000000
1561.000000
1561.000000
1609.000000
1645.000000
1593.000000
1537.000000
1533.000000
1597.000000
1621.000000
1621.000000
1541.000000
1541.000000
1593.000000
1621.000000
1597.000000
1533.000000
1577.000000
1581.000000
1629.000000
1573.000000
1525.000000
1505.000000
1573.000000
1533.000000
1477.000000
1413.000000
1429.000000
1481.000000
1529.000000
1509.000000
1461.000000
1505.000000
1553.000000
1621.000000
1753.000000
1917.000000
1741.000000
2049.000000
1969.000000
2133.000000
1949.000000
1949.000000
2001.000000
1993.000000
1981.000000
1913.000000
1869.000000
1985.000000
2017.000000
1777.000000
1873.000000
1921.000000
1985.000000
1937.000000
1953.000000
1805.000000
1809.000000
1909.000000
1937.000000
1653.000000
1825.000000
1833.000000
1865.000000
1853.000000
1893.000000
1857.000000
1657.000000
1865.000000
1917.000000
1709.000000
1873.000000
1877.000000
1745.000000
1909.000000
1933.000000
1885.000000
1809.000000
1909.000000
1957.000000
1909.000000
1737.000000
1837.000000
1869.000000
1689.000000
1849.000000
1845.000000
1817.000000
1721.000000
1857.000000
1869.000000
1817.000000
1669.000000
1865.000000
1909.000000
1865.000000
1721.000000
1809.000000
1913.000000
1893.000000
1761.000000
1797.000000
1849.000000
1817.000000
1921.000000
1857.000000
1793.000000
1825.000000
1841.000000
1889.000000
1745.000000
1717.000000
1689.000000
1745.000000
1781.000000
1745.000000
1737.000000
1657.000000
1765.000000
1761.000000
1733.000000
1693.000000
1693.000000
1733.000000
1733.000000
1717.000000
1641.000000
1641.000000
1701.000000
1709.000000
1673.000000
1597.000000
1597.000000
1657.000000
1681.000000
1653.000000
1585.000000
1613.000000
1609.000000
1681.000000
1597.000000
1581.000000
1529.000000
1605.000000
1621.000000
1589.000000
1561.000000
1525.000000
1609.000000
1617.000000
1609.000000
1513.000000
1521.000000
1585.000000
1609.000000
1613.000000
2173.000000
2033.000000
2141.000000
2489.000000
2401.000000
2469.000000
2321.000000
2529.000000
3153.000000
2853.000000
3025.000000
3237.000000
3197.000000
3181.000000
3049.000000
2897.000000
2733.000000
2657.000000
2593.000000
2453.000000
2345.000000
2297.000000
2309.000000
2265.000000
2169.000000
2085.000000
1993.000000
2025.000000
2045.000000
1969.000000
1885.000000
1893.000000
1941.000000
1993.000000
2065.000000
2353.000000
2385.000000
2961.000000
2681.000000
2401.000000
2353.000000
2141.000000
2089.000000
1929.000000
2097.000000
1949.000000
1789.000000
2125.000000
2105.000000
1837.000000
1989.000000
2005.000000
1809.000000
2033.000000
1969.000000
1801.000000
1809.000000
1877.000000
1925.000000
1789.000000
1801.000000
1805.000000
1773.000000
1901.000000
1841.000000
1777.000000
1801.000000
1881.000000
1861.000000
1797.000000
1809.000000
1777.000000
1685.000000
1889.000000
1873.000000
1825.000000
1777.000000
1945.000000
1961.000000
1773.000000
1865.000000
1925.000000
1949.000000
1829.000000
1949.000000
1905.000000
1721.000000
1973.000000
2049.000000
2013.000000
1781.000000
1925.000000
2017.000000
2065.000000
1909.000000
1909.000000
1933.000000
1993.000000
1845.000000
1933.000000
1917.000000
1905.000000
1969.000000
1981.000000
1973.000000
1857.000000
1857.000000
1925.000000
1925.000000
1941.000000
1845.000000
1821.000000
1853.000000
1905.000000
1841.000000
1805.000000
1773.000000
1809.000000
1881.000000
1817.000000
1785.000000
1721.000000
2169.000000
2333.000000
2153.000000
2789.000000
2849.000000
3497.000000
3097.000000
2957.000000
2721.000000
3153.000000
3681.000000
3585.000000
3605.000000
3841.000000
3741.000000
3325.000000
3525.000000
2905.000000
2801.000000
2665.000000
2613.000000
2557.000000
2461.000000
2349.000000
2269.000000
2233.000000
2185.000000
2113.000000
2013.000000
1933.000000
1957.000000
1953.000000
1945.000000
1801.000000
1809.000000
1833.000000
1821.000000
1781.000000
1653.000000
1661.000000
1661.000000
1721.000000
1685.000000
1593.000000
1549.000000
1573.000000
1641.000000
1557.000000
1537.000000
1497.000000
1521.000000
1545.000000
1509.000000
1481.000000
1441.000000
1509.000000
1513.000000
1509.000000
1445.000000
1353.000000
1381.000000
1369.000000
1397.000000
1313.000000
1309.000000
1361.000000
1409.000000
1397.000000
1257.000000
1237.000000
1253.000000
1341.000000
1277.000000
1253.000000
1201.000000
1149.000000
1257.000000
1229.000000
1281.000000
1605.000000
1621.000000
2181.000000
2429.000000
1881.000000
1841.000000
1725.000000
1577.000000
1525.000000
1477.000000
1481.000000
1397.000000
1717.000000
1669.000000
1469.000000
1653.000000
1681.000000
1561.000000
1765.000000
1661.000000
1473.000000
1713.000000
1753.000000
1481.000000
1673.000000
1713.000000
1493.000000
1813.000000
1785.000000
1533.000000
1725.000000
1801.000000
1637.000000
1801.000000
1789.000000
1693.000000
1753.000000
1829.000000
1773.000000
1621.000000
1709.000000
1789.000000
1745.000000
1797.000000
1765.000000
1445.000000
1765.000000
1829.000000
1797.000000
1641.000000
1729.000000
1785.000000
1589.000000
1837.000000
1817.000000
1745.000000
1809.000000
1913.000000
1909.000000
1757.000000
1869.000000
1953.000000
1845.000000
1945.000000
1909.000000
1853.000000
1865.000000
1913.000000
1841.000000
1733.000000
1801.000000
1849.000000
1909.000000
1841.000000
1777.000000
1745.000000
1773.000000
1817.000000
1757.000000
1717.000000
1685.000000
1729.000000
1765.000000
1705.000000
1649.000000
1597.000000
1653.000000
1685.000000
1689.000000
1601.000000
1585.000000
1621.000000
1649.000000
1637.000000
1593.000000
1545.000000
1573.000000
1633.000000
1613.000000
1525.000000
1505.000000
1553.000000
1617.000000
1577.000000
1525.000000
1497.000000
1529.000000
1609.000000
1557.000000
1545.000000
1461.000000
1545.000000
1593.000000
1569.000000
1541.000000
1489.000000
1565.000000
1545.000000
1581.000000
1509.000000
1481.000000
1529.000000
1573.000000
1561.000000
1453.000000
1421.000000
1465.000000
1561.000000
1545.000000
1501.000000
1473.000000
1497.000000
1521.000000
1469.000000
1437.000000
1377.000000
1477.000000
1517.000000
1521.000000
1497.000000
1453.000000
1537.000000
1561.000000
1717.000000
1649.000000
1937.000000
2189.000000
1837.000000
1937.000000
1829.000000
1761.000000
1709.000000
1893.000000
1857.000000
1777.000000
1849.000000
1857.000000
1857.000000
1897.000000
1817.000000
1605.000000
1849.000000
1869.000000
1729.000000
1781.000000
1753.000000
1789.000000
1789.000000
1893.000000
1725.000000
1741.000000
1833.000000
1889.000000
1841.000000
1901.000000
1881.000000
1637.000000
1953.000000
1941.000000
1757.000000
1829.000000
1945.000000
1989.000000
1793.000000
1993.000000
1949.000000
1753.000000
2053.000000
2117.000000
2037.000000
1805.000000
2061.000000
2109.000000
2089.000000
1957.000000
2009.000000
2057.000000
1857.000000
2089.000000
2065.000000
1817.000000
2005.000000
2129.000000
2113.000000
2025.000000
1869.000000
2033.000000
2105.000000
2041.000000
2009.000000
1977.000000
1985.000000
1981.000000
1969.000000
1897.000000
1841.000000
1889.000000
1897.000000
1877.000000
1777.000000
1749.000000
1789.000000
1817.000000
2289.000000
2157.000000
2073.000000
2865.000000
2857.000000
3473.000000
3001.000000
2793.000000
3097.000000
3049.000000
3613.000000
3217.000000
3361.000000
2917.000000
3273.000000
3285.000000
3177.000000
2713.000000
2573.000000
2517.000000
2397.000000
2285.000000
2145.000000
2177.000000
2181.000000
2133.000000
2045.000000
1949.000000
1993.000000
2005.000000
1993.000000
1897.000000
1853.000000
1885.000000
1889.000000
1925.000000
1805.000000
1777.000000
1753.000000
1833.000000
1833.000000
1721.000000
1717.000000
1725.000000
1789.000000
1733.000000
1693.000000
1633.000000
1681.000000
1725.000000
1741.000000
1649.000000
1537.000000
1585.000000
1581.000000
1605.000000
1565.000000
1605.000000
1809.000000
1809.000000
1817.000000
1745.000000
1737.000000
2061.000000
2361.000000
2433.000000
2809.000000
2997.000000
2961.000000
2929.000000
2621.000000
2689.000000
2617.000000
2317.000000
2445.000000
2325.000000
2121.000000
2113.000000
2125.000000
2009.000000
2105.000000
2053.000000
1845.000000
2077.000000
2073.000000
1917.000000
2113.000000
2109.000000
2097.000000
2137.000000
2205.000000
2109.000000
2093.000000
2165.000000
2233.000000
2113.000000
2169.000000
2137.000000
1989.000000
2181.000000
2201.000000
2149.000000
2005.000000
2137.000000
2181.000000
1909.000000
2061.000000
2069.000000
2101.000000
1905.000000
2121.000000
2061.000000
1817.000000
2061.000000
2145.000000
1885.000000
2013.000000
2045.000000
2057.000000
1909.000000
2101.000000
2117.000000
2061.000000
2041.000000
1945.000000
2049.000000
2089.000000
2021.000000
2069.000000
2101.000000
2077.000000
2029.000000
1945.000000
2009.000000
1993.000000
2029.000000
1925.000000
1893.000000
1905.000000
1937.000000
1953.000000
1853.000000
1857.000000
1841.000000
1905.000000
1893.000000
1829.000000
1797.000000
1801.000000
1889.000000
1857.000000
1825.000000
1745.000000
1797.000000
1853.000000
1857.000000
1829.000000
1737.000000
1785.000000
1797.000000
1841.000000
1749.000000
1705.000000
1753.000000
1785.000000
1821.000000
1721.000000
1697.000000
1713.000000
1789.000000
1781.000000
1689.000000
1673.000000
1633.000000
1717.000000
1689.000000
1633.000000
1605.000000
1661.000000
1737.000000
1721.000000
1653.000000
1685.000000
1821.000000
1853.000000
1753.000000
1713.000000
1461.000000
1569.000000
1641.000000
1389.000000
1389.000000
1369.000000
1209.000000
1541.000000
1621.000000
1313.000000
1613.000000
1697.000000
1597.000000
1725.000000
1669.000000
1445.000000
1645.000000
1709.000000
1465.000000
1685.000000
1661.000000
1521.000000
1737.000000
1777.000000
1725.000000
1509.000000
1757.000000
1853.000000
1833.000000
1713.000000
1793.000000
1821.000000
1741.000000
1913.000000
1897.000000
1641.000000
1845.000000
1985.000000
1973.000000
1781.000000
1869.000000
1929.000000
1969.000000
1829.000000
1945.000000
1901.000000
1917.000000
1761.000000
1917.000000
1945.000000
1913.000000
1949.000000
1961.000000
1969.000000
1909.000000
1837.000000
1873.000000
1905.000000
1917.000000
1833.000000
1801.000000
1817.000000
1825.000000
1845.000000
1785.000000
1741.000000
1749.000000
1797.000000
1841.000000
1761.000000
1733.000000
1733.000000
1817.000000
1801.000000
1769.000000
1693.000000
1709.000000
1781.000000
1769.000000
1741.000000
1665.000000
1729.000000
1737.000000
1793.000000
1685.000000
1637.000000
1681.000000
1733.000000
1793.000000
1673.000000
1673.000000
1709.000000
1733.000000
1745.000000
1661.000000
1641.000000
1645.000000
1713.000000
1721.000000
1693.000000
1637.000000
1653.000000
1697.000000
1705.000000
1609.000000
1545.000000
1553.000000
1589.000000
1645.000000
1597.000000
1557.000000
1621.000000
1633.000000
1689.000000
1585.000000
1629.000000
1677.000000
2081.000000
1933.000000
1569.000000
1573.000000
1501.000000
1493.000000
1621.000000
1521.000000
1573.000000
1673.000000
1729.000000
1721.000000
1785.000000
1709.000000
1625.000000
1829.000000
1837.000000
1649.000000
1709.000000
1761.000000
1669.000000
1837.000000
1797.000000
1613.000000
1801.000000
1849.000000
1817.000000
1825.000000
1817.000000
1697.000000
1925.000000
1909.000000
1785.000000
1857.000000
1889.000000
1913.000000
1865.000000
1937.000000
1861.000000
1853.000000
1989.000000
2033.000000
1709.000000
1897.000000
1977.000000
1993.000000
1961.000000
1961.000000
1929.000000
1841.000000
1917.000000
2009.000000
1933.000000
1909.000000
1909.000000
1945.000000
1925.000000
1877.000000
1793.000000
1793.000000
1869.000000
1861.000000
1821.000000
1701.000000
1721.000000
1737.000000
1749.000000
1717.000000
1657.000000
1681.000000
1693.000000
1733.000000
1649.000000
1613.000000
1621.000000
1673.000000
1721.000000
1633.000000
1601.000000
1589.000000
1657.000000
1637.000000
1601.000000
1565.000000
1577.000000
1625.000000
1633.000000
1605.000000
1553.000000
1549.000000
1637.000000
1633.000000
1589.000000
1505.000000
1561.000000
1597.000000
1621.000000
1605.000000
1521.000000
1577.000000
1589.000000
1569.000000
1489.000000
1449.000000
1469.000000
1525.000000
1589.000000
1573.000000
1565.000000
1593.000000
1673.000000
2173.000000
1817.000000
2101.000000
2233.000000
2609.000000
2481.000000
2357.000000
2061.000000
2193.000000
2261.000000
2177.000000
2141.000000
2133.000000
2073.000000
2161.000000
2141.000000
1853.000000
2009.000000
2025.000000
1845.000000
2077.000000
2093.000000
1805.000000
2081.000000
2145.000000
2041.000000
2097.000000
2033.000000
1877.000000
2117.000000
2185.000000
1901.000000
2053.000000
2093.000000
1961.000000
2157.000000
2105.000000
1925.000000
2013.000000
2117.000000
2149.000000
1937.000000
2009.000000
2053.000000
2077.000000
2009.000000
2045.000000
2009.000000
1997.000000
1841.000000
2021.000000
1989.000000
1953.000000
1949.000000
2005.000000
1985.000000
1921.000000
1845.000000
1857.000000
1889.000000
1893.000000
1837.000000
1761.000000
1817.000000
1837.000000
1845.000000
1777.000000
1717.000000
1745.000000
1765.000000
1821.000000
1713.000000
1669.000000
1681.000000
1705.000000
1741.000000
1669.000000
1621.000000
1637.000000
1705.000000
1901.000000
2397.000000
2137.000000
2189.000000
2861.000000
2673.000000
2865.000000
2481.000000
2389.000000
2677.000000
3165.000000
2941.000000
3013.000000
3045.000000
3069.000000
3493.000000
2985.000000
2749.000000
2561.000000
2929.000000
3173.000000
3301.000000
3277.000000
3681.000000
3353.000000
3609.000000
3049.000000
2805.000000
2673.000000
2689.000000
2553.000000
2465.000000
2293.000000
2257.000000
2253.000000
2201.000000
2145.000000
2009.000000
2033.000000
2021.000000
2053.000000
1945.000000
1869.000000
1893.000000
2033.000000
2109.000000
2369.000000
3177.000000
2485.000000
2449.000000
2285.000000
1989.000000
2185.000000
2293.000000
2281.000000
2101.000000
2345.000000
2209.000000
2113.000000
2265.000000
2233.000000
2021.000000
2029.000000
2017.000000
1997.000000
2161.000000
1881.000000
1985.000000
2061.000000
1889.000000
2117.000000
2125.000000
2077.000000
1937.000000
2105.000000
2141.000000
1981.000000
2053.000000
2037.000000
2009.000000
2097.000000
2101.000000
1793.000000
2025.000000
2101.000000
1829.000000
2041.000000
2029.000000
1765.000000
2065.000000
2145.000000
2053.000000
1905.000000
2041.000000
2001.000000
2029.000000
2013.000000
1881.000000
1893.000000
2053.000000
2077.000000
1713.000000
1909.000000
1921.000000
1909.000000
1905.000000
1937.000000
1861.000000
1861.000000
1905.000000
1897.000000
1853.000000
1725.000000
1753.000000
1769.000000
1781.000000
1701.000000
1637.000000
1645.000000
1661.000000
1709.000000
1597.000000
1553.000000
1553.000000
1589.000000
1605.000000
1533.000000
1469.000000
1449.000000
1525.000000
1525.000000
1477.000000
1413.000000
1401.000000
1461.000000
1489.000000
1417.000000
1357.000000
1373.000000
1421.000000
1441.000000
1373.000000
1329.000000
1313.000000
1381.000000
1385.000000
1365.000000
1305.000000
1333.000000
1389.000000
1385.000000
1349.000000
1301.000000
1301.000000
1317.000000
1381.000000
1325.000000
1281.000000
1269.000000
1337.000000
1349.000000
1269.000000
1209.000000
1205.000000
1273.000000
1269.000000
1257.000000
1213.000000
1225.000000
1297.000000
1345.000000
1293.000000
1301.000000
1353.000000
1321.000000
1333.000000
1341.000000
1205.000000
1213.000000
1241.000000
1137.000000
1229.000000
1149.000000
1213.000000
1373.000000
1165.000000
1437.000000
1453.000000
1153.000000
1477.000000
1533.000000
1261.000000
1473.000000
1461.000000
1397.000000
1557.000000
1545.000000
1257.000000
1497.000000
1581.000000
1413.000000
1633.000000
1561.000000
1457.000000
1705.000000
1745.000000
1581.000000
1689.000000
1713.000000
1569.000000
1797.000000
1781.000000
1421.000000
1769.000000
1841.000000
1689.000000
1849.000000
1821.000000
1457.000000
1881.000000
1945.000000
1641.000000
1849.000000
1893.000000
1585.000000
1905.000000
1997.000000
1725.000000
1849.000000
1965.000000
2017.000000
1941.000000
1597.000000
1829.000000
1929.000000
1989.000000
1893.000000
1853.000000
1761.000000
1853.000000
1829.000000
1785.000000
1737.000000
1697.000000
1793.000000
1749.000000
1741.000000
1657.000000
1657.000000
1697.000000
1713.000000
1673.000000
1589.000000
1609.000000
1609.000000
1677.000000
1609.000000
1573.000000
1549.000000
1569.000000
1669.000000
1573.000000
1565.000000
1497.000000
1577.000000
1589.000000
1557.000000
1505.000000
1481.000000
1577.000000
1545.000000
1537.000000
1461.000000
1465.000000
1525.000000
1541.000000
1533.000000
1425.000000
1461.000000
1465.000000
1557.000000
1481.000000
1425.000000
1437.000000
1485.000000
1521.000000
1465.000000
1453.000000
1425.000000
1485.000000
1521.000000
1453.000000
1353.000000
1349.000000
1401.000000
1445.000000
1433.000000
1389.000000
1429.000000
1501.000000
1489.000000
1525.000000
1717.000000
2069.000000
1733.000000
2041.000000
2385.000000
2265.000000
1977.000000
2173.000000
2237.000000
2029.000000
2141.000000
2081.000000
1957.000000
2101.000000
2065.000000
1793.000000
1953.000000
2053.000000
1841.000000
2053.000000
1941.000000
1821.000000
2005.000000
1961.000000
2033.000000
2077.000000
2009.000000
1997.000000
2173.000000
1729.000000
2001.000000
2053.000000
1717.000000
2081.000000
2081.000000
1705.000000
2033.000000
2125.000000
1865.000000
2041.000000
2001.000000
1653.000000
2045.000000
2125.000000
2077.000000
1869.000000
1993.000000
2085.000000
2053.000000
1929.000000
2029.000000
2021.000000
1945.000000
2109.000000
2037.000000
1837.000000
2029.000000
2093.000000
1909.000000
2009.000000
2021.000000
2025.000000
2017.000000
2045.000000
1965.000000
1881.000000
1873.000000
1925.000000
1929.000000
1877.000000
1829.000000
1785.000000
1873.000000
1873.000000
1853.000000
1785.000000
1765.000000
1833.000000
1829.000000
1781.000000
1733.000000
1737.000000
1793.000000
1793.000000
1785.000000
1713.000000
1717.000000
1737.000000
1765.000000
1745.000000
1665.000000
1689.000000
1717.000000
1769.000000
1681.000000
1653.000000
1633.000000
1689.000000
1729.000000
1673.000000
1653.000000
1617.000000
1701.000000
1717.000000
1673.000000
1601.000000
1613.000000
1653.000000
1685.000000
1657.000000
1569.000000
1573.000000
1621.000000
1685.000000
1629.000000
1593.000000
1577.000000
1613.000000
1633.000000
1541.000000
1513.000000
1525.000000
1521.000000
1605.000000
1585.000000
1537.000000
1569.000000
1657.000000
1701.000000
2045.000000
1669.000000
1573.000000
1397.000000
1521.000000
1465.000000
1441.000000
1677.000000
1669.000000
1741.000000
1793.000000
1725.000000
1689.000000
1813.000000
1641.000000
1773.000000
1781.000000
1373.000000
1797.000000
1841.000000
1481.000000
1717.000000
1677.000000
1449.000000
1713.000000
1773.000000
1381.000000
1689.000000
1733.000000
1561.000000
1757.000000
1681.000000
1509.000000
1781.000000
1885.000000
1545.000000
1825.000000
1865.000000
1629.000000
1973.000000
1953.000000
1873.000000
1793.000000
2005.000000
1653.000000
1937.000000
1989.000000
1969.000000
1885.000000
2013.000000
2029.000000
1621.000000
1909.000000
2009.000000
2025.000000
1833.000000
1833.000000
1937.000000
1957.000000
1953.000000
2389.000000
2149.000000
2617.000000
2593.000000
2957.000000
2829.000000
2609.000000
2597.000000
2825.000000
2809.000000
3221.000000
2969.000000
3329.000000
3233.000000
3249.000000
2993.000000
2761.000000
2637.000000
2597.000000
2497.000000
2397.000000
2277.000000
2225.000000
2225.000000
2233.000000
2145.000000
2045.000000
2009.000000
2029.000000
2069.000000
1965.000000
1913.000000
1861.000000
1925.000000
1933.000000
1893.000000
1817.000000
1817.000000
1861.000000
1853.000000
1833.000000
1741.000000
1733.000000
1813.000000
1837.000000
1789.000000
1745.000000
1725.000000
1765.000000
1757.000000
1725.000000
1693.000000
1665.000000
1701.000000
1701.000000
1645.000000
1597.000000
1605.000000
1685.000000
1745.000000
1665.000000
1621.000000
1585.000000
1673.000000
1757.000000
1809.000000
1833.000000
2201.000000
1997.000000
1881.000000
1709.000000
1389.000000
1741.000000
1805.000000
1553.000000
1861.000000
1813.000000
1569.000000
1849.000000
1889.000000
1689.000000
1765.000000
1505.000000
1805.000000
1921.000000
1697.000000
1893.000000
1625.000000
1981.000000
2053.000000
1813.000000
1993.000000
2045.000000
1913.000000
2137.000000
2085.000000
2041.000000
2137.000000
1985.000000
2165.000000
2205.000000
1825.000000
2177.000000
2277.000000
2021.000000
2281.000000
2249.000000
1905.000000
2285.000000
2389.000000
2001.000000
2229.000000
2253.000000
1969.000000
2289.000000
2277.000000
2065.000000
2241.000000
2329.000000
2073.000000
2289.000000
2265.000000
2249.000000
2029.000000
2289.000000
2293.000000
2233.000000
2205.000000
2217.000000
2229.000000
2205.000000
2125.000000
2093.000000
1917.000000
2165.000000
2189.000000
2077.000000
2101.000000
2121.000000
2149.000000
2093.000000
2021.000000
2005.000000
2025.000000
2041.000000
1989.000000
1961.000000
1937.000000
1989.000000
1993.000000
1941.000000
1865.000000
1881.000000
1937.000000
1933.000000
1909.000000
1817.000000
1841.000000
1845.000000
1897.000000
1857.000000
1777.000000
1789.000000
1829.000000
1901.000000
1825.000000
1777.000000
1729.000000
1805.000000
1841.000000
1777.000000
1757.000000
1713.000000
1773.000000
1793.000000
1741.000000
1701.000000
1701.000000
1773.000000
1789.000000
1709.000000
1621.000000
1633.000000
1693.000000
1701.000000
1725.000000
1661.000000
1669.000000
1681.000000
1789.000000
1777.000000
1593.000000
1605.000000
1613.000000
1617.000000
1573.000000
1185.000000
1413.000000
1513.000000
1637.000000
1761.000000
1493.000000
1705.000000
1809.000000
1525.000000
1773.000000
1713.000000
1621.000000
1789.000000
1721.000000
1689.000000
1753.000000
1777.000000
1729.000000
1845.000000
1529.000000
1765.000000
1841.000000
1653.000000
1985.000000
1957.000000
1605.000000
1913.000000
2013.000000
1897.000000
2093.000000
2061.000000
1841.000000
2129.000000
1785.000000
2153.000000
2153.000000
2141.000000
2117.000000
2273.000000
2261.000000
2053.000000
2225.000000
2285.000000
2081.000000
2265.000000
2225.000000
1925.000000
2221.000000
2325.000000
2017.000000
2141.000000
2213.000000
2261.000000
2281.000000
2229.000000
2157.000000
2117.000000
2109.000000
2121.000000
2081.000000
2009.000000
1985.000000
2061.000000
2065.000000
2021.000000
1957.000000
1921.000000
1989.000000
1977.000000
1965.000000
1873.000000
1853.000000
1921.000000
1957.000000
1909.000000
1833.000000
1845.000000
1893.000000
1937.000000
1885.000000
1809.000000
1821.000000
1853.000000
1857.000000
1825.000000
1793.000000
1797.000000
1845.000000
1857.000000
1817.000000
1745.000000
1741.000000
1821.000000
1853.000000
1817.000000
1729.000000
1725.000000
1793.000000
1813.000000
1757.000000
1717.000000
1705.000000
1733.000000
1789.000000
1733.000000
1601.000000
1621.000000
1669.000000
1701.000000
1673.000000
1625.000000
1645.000000
1705.000000
1725.000000
1649.000000
1689.000000
1617.000000
1733.000000
1741.000000
1481.000000
1557.000000
1517.000000
1445.000000
1597.000000
1453.000000
1649.000000
1725.000000
1701.000000
1881.000000
1693.000000
1829.000000
1597.000000
1733.000000
1833.000000
1833.000000
1617.000000
1725.000000
1469.000000
1789.000000
1849.000000
1549.000000
1729.000000
1425.000000
1801.000000
1865.000000
1601.000000
1809.000000
1581.000000
1929.000000
1969.000000
1681.000000
1973.000000
1697.000000
2033.000000
2045.000000
1957.000000
1869.000000
2029.000000
2029.000000
1957.000000
2053.000000
1993.000000
2085.000000
2217.000000
2173.000000
2041.000000
2169.000000
2309.000000
1877.000000
2169.000000
2137.000000
1769.000000
2205.000000
2293.000000
2061.000000
2093.000000
2245.000000
2249.000000
2289.000000
2225.000000
2133.000000
2141.000000
2141.000000
2165.000000
2081.000000
2041.000000
2037.000000
1841.000000
2081.000000
2109.000000
2077.000000
2065.000000
2109.000000
2125.000000
2061.000000
1985.000000
1997.000000
2041.000000
2049.000000
1993.000000
1917.000000
1909.000000
1961.000000
1981.000000
2045.000000
2361.000000
2297.000000
2145.000000
2569.000000
2645.000000
2693.000000
2601.000000
2745.000000
2909.000000
3485.000000
3341.000000
3525.000000
3449.000000
3325.000000
2849.000000
2621.000000
2545.000000
2473.000000
2393.000000
2321.000000
2193.000000
2185.000000
2201.000000
2193.000000
2093.000000
2001.000000
2013.000000
2013.000000
2033.000000
1937.000000
1873.000000
1873.000000
1897.000000
1901.000000
1821.000000
1793.000000
1745.000000
1821.000000
1817.000000
1765.000000
1713.000000
1709.000000
1777.000000
1765.000000
1713.000000
1653.000000
1657.000000
1677.000000
1681.000000
1633.000000
1609.000000
1641.000000
1677.000000
1769.000000
1689.000000
1717.000000
2045.000000
2749.000000
2393.000000
3337.000000
2905.000000
3017.000000
3029.000000
2713.000000
2789.000000
2633.000000
2505.000000
2621.000000
2285.000000
2393.000000
2117.000000
2237.000000
2377.000000
2117.000000
2389.000000
2377.000000
2205.000000
2429.000000
2477.000000
2301.000000
2393.000000
2009.000000
2433.000000
2505.000000
2145.000000
2389.000000
2425.000000
2233.000000
2457.000000
2429.000000
2109.000000
2277.000000
1861.000000
2221.000000
2229.000000
1989.000000
2133.000000
1981.000000
2189.000000
2237.000000
1741.000000
2161.000000
2277.000000
1965.000000
2197.000000
2213.000000
1997.000000
2261.000000
1945.000000
2217.000000
2257.000000
1901.000000
2293.000000
2285.000000
2269.000000
2309.000000
1793.000000
2341.000000
2449.000000
2205.000000
2289.000000
2357.000000
2133.000000
2381.000000
2369.000000
2329.000000
2041.000000
2341.000000
2369.000000
2313.000000
2257.000000
2257.000000
1869.000000
2205.000000
2233.000000
2177.000000
2169.000000
2197.000000
2225.000000
2149.000000
2081.000000
2101.000000
2125.000000
2149.000000
2045.000000
2013.000000
1997.000000
2069.000000
2053.000000
2021.000000
1981.000000
2121.000000
2453.000000
2937.000000
2785.000000
3405.000000
3261.000000
3477.000000
3285.000000
3417.000000
3157.000000
3677.000000
3341.000000
3609.000000
3349.000000
3169.000000
3089.000000
2913.000000
2809.000000
2617.000000
2461.000000
2409.000000
2437.000000
2389.000000
2281.000000
2201.000000
2173.000000
2209.000000
2161.000000
2153.000000
2005.000000
2045.000000
2045.000000
2053.000000
1989.000000
1889.000000
1945.000000
1929.000000
1997.000000
1901.000000
1845.000000
1853.000000
1873.000000
1905.000000
1813.000000
1789.000000
1773.000000
1857.000000
1841.000000
1777.000000
1697.000000
1689.000000
1745.000000
1769.000000
1745.000000
1669.000000
1697.000000
1749.000000
1741.000000
1569.000000
1677.000000
1773.000000
1653.000000
1705.000000
1589.000000
1413.000000
1373.000000
1481.000000
1677.000000
1369.000000
1701.000000
1721.000000
1565.000000
1821.000000
1517.000000
1621.000000
1701.000000
1449.000000
1689.000000
1709.000000
1517.000000
1741.000000
1413.000000
1805.000000
1853.000000
1473.000000
1881.000000
1929.000000
1597.000000
1873.000000
1873.000000
1613.000000
1977.000000
2057.000000
1933.000000
2073.000000
1929.000000
2073.000000
2173.000000
1981.000000
1985.000000
2097.000000
1777.000000
2145.000000
2205.000000
1773.000000
2121.000000
2221.000000
1893.000000
2193.000000
2201.000000
1865.000000
2257.000000
2225.000000
2125.000000
2213.000000
1865.000000
2205.000000
2301.000000
1777.000000
2117.000000
2193.000000
2297.000000
2049.000000
2109.000000
2177.000000
2145.000000
2213.000000
2169.000000
2097.000000
2005.000000
2013.000000
1997.000000
2029.000000
1965.000000
1869.000000
1937.000000
1949.000000
1965.000000
1869.000000
1833.000000
1825.000000
1857.000000
1913.000000
1817.000000
1781.000000
1753.000000
1793.000000
1821.000000
1753.000000
1701.000000
1741.000000
1769.000000
2121.000000
2505.000000
2561.000000
3189.000000
3005.000000
3573.000000
3269.000000
3033.000000
3245.000000
3993.000000
3841.000000
3765.000000
3593.000000
3193.000000
3233.000000
2685.000000
2509.000000
2357.000000
2345.000000
2317.000000
2321.000000
2217.000000
2117.000000
2097.000000
2097.000000
2125.000000
2009.000000
1981.000000
1953.000000
2013.000000
2005.000000
1929.000000
1865.000000
1833.000000
1861.000000
1869.000000
1813.000000
1729.000000
1753.000000
1789.000000
1785.000000
1733.000000
1645.000000
1669.000000
1705.000000
1757.000000
1681.000000
1645.000000
1633.000000
1677.000000
1713.000000
1613.000000
1597.000000
1589.000000
1637.000000
1685.000000
1581.000000
1553.000000
1553.000000
1597.000000
1641.000000
1573.000000
1533.000000
1513.000000
1541.000000
1601.000000
1621.000000
1525.000000
1545.000000
1601.000000
1613.000000
1605.000000
1561.000000
1577.000000
1609.000000
1609.000000
1657.000000
1665.000000
2489.000000
2145.000000
2601.000000
2561.000000
2169.000000
2457.000000
2509.000000
2289.000000
2481.000000
1989.000000
2253.000000
2309.000000
2009.000000
2233.000000
1853.000000
2029.000000
2117.000000
2021.000000
2097.000000
1589.000000
2137.000000
2285.000000
2045.000000
2249.000000
2333.000000
1965.000000
2349.000000
2417.000000
2117.000000
2313.000000
1893.000000
2297.000000
2317.000000
1925.000000
2185.000000
2217.000000
2265.000000
2377.000000
1969.000000
2217.000000
2333.000000
1889.000000
2365.000000
2345.000000
1913.000000
2253.000000
2329.000000
2253.000000
2353.000000
2329.000000
2169.000000
2381.000000
2305.000000
2217.000000
2317.000000
2225.000000
2221.000000
2353.000000
2325.000000
2033.000000
2237.000000
2305.000000
2069.000000
2265.000000
2169.000000
1873.000000
2129.000000
2221.000000
2149.000000
2081.000000
2061.000000
1925.000000
2141.000000
2065.000000
1997.000000
1953.000000
1997.000000
2013.000000
1901.000000
1841.000000
1825.000000
1869.000000
1861.000000
1805.000000
1745.000000
1753.000000
1793.000000
1781.000000
1745.000000
1657.000000
1689.000000
1721.000000
1741.000000
1689.000000
1645.000000
1641.000000
1685.000000
1697.000000
1625.000000
1605.000000
1585.000000
1657.000000
1653.000000
1577.000000
1549.000000
1537.000000
1605.000000
1633.000000
1593.000000
1509.000000
1529.000000
1589.000000
1589.000000
1545.000000
1453.000000
1509.000000
1557.000000
1569.000000
1513.000000
1493.000000
1489.000000
1505.000000
1505.000000
1445.000000
1425.000000
1429.000000
1509.000000
1529.000000
1481.000000
1449.000000
1465.000000
1457.000000
1557.000000
1565.000000
1397.000000
1425.000000
1297.000000
1397.000000
1301.000000
1237.000000
1357.000000
1161.000000
1613.000000
1685.000000
1521.000000
1665.000000
1445.000000
1685.000000
1225.000000
1529.000000
1689.000000
1613.000000
1805.000000
1725.000000
1545.000000
1753.000000
1481.000000
1869.000000
1857.000000
1741.000000
1925.000000
1881.000000
1961.000000
1997.000000
1741.000000
1985.000000
2061.000000
1961.000000
2065.000000
1673.000000
2013.000000
2141.000000
2097.000000
2029.000000
2081.000000
1693.000000
2085.000000
2249.000000
2217.000000
1777.000000
2137.000000
2173.000000
2169.000000
1997.000000
2097.000000
2089.000000
2117.000000
2137.000000
2009.000000
1977.000000
1929.000000
1993.000000
1997.000000
1901.000000
1873.000000
1825.000000
1901.000000
1881.000000
1825.000000
1749.000000
1781.000000
1817.000000
1833.000000
1781.000000
1697.000000
1769.000000
2073.000000
2565.000000
2377.000000
2497.000000
2865.000000
2885.000000
2993.000000
2781.000000
2889.000000
2977.000000
3373.000000
3281.000000
3345.000000
3221.000000
3153.000000
3389.000000
3137.000000
2961.000000
2793.000000
2721.000000
2689.000000
2641.000000
2501.000000
2389.000000
2381.000000
2345.000000
2393.000000
2253.000000
2181.000000
2181.000000
2193.000000
2225.000000
2101.000000
2037.000000
2021.000000
2077.000000
2073.000000
2017.000000
1961.000000
1957.000000
2033.000000
1969.000000
1897.000000
1853.000000
1893.000000
1921.000000
1945.000000
1913.000000
1805.000000
1837.000000
1841.000000
2001.000000
1961.000000
1797.000000
1821.000000
1593.000000
1769.000000
1641.000000
1457.000000
1757.000000
1597.000000
1965.000000
1917.000000
1481.000000
1805.000000
1829.000000
1753.000000
1853.000000
1613.000000
1941.000000
1529.000000
1997.000000
2053.000000
1629.000000
1993.000000
2121.000000
1893.000000
2113.000000
1765.000000
2045.000000
2145.000000
1901.000000
2057.000000
2109.000000
1725.000000
2161.000000
2165.000000
2041.000000
2081.000000
1617.000000
2181.000000
2189.000000
1889.000000
2037.000000
2117.000000
1817.000000
2169.000000
2109.000000
1949.000000
2245.000000
2289.000000
2189.000000
2289.000000
2165.000000
2161.000000
2357.000000
2385.000000
2009.000000
2257.000000
2293.000000
2313.000000
1893.000000
2217.000000
2185.000000
2261.000000
2253.000000
2305.000000
2117.000000
2089.000000
1961.000000
2053.000000
2153.000000
2073.000000
2061.000000
2017.000000
2089.000000
2077.000000
2013.000000
1949.000000
1945.000000
1965.000000
1985.000000
1921.000000
1849.000000
1873.000000
1885.000000
1913.000000
1841.000000
1797.000000
1797.000000
1865.000000
1881.000000
1817.000000
1777.000000
1741.000000
1793.000000
1809.000000
1757.000000
1733.000000
1745.000000
1781.000000
1869.000000
1733.000000
1701.000000
1625.000000
1741.000000
1745.000000
1681.000000
1725.000000
1677.000000
1693.000000
1733.000000
1669.000000
1525.000000
1629.000000
1637.000000
1677.000000
1637.000000
1553.000000
1637.000000
1637.000000
1661.000000
1377.000000
1629.000000
1397.000000
1653.000000
1709.000000
1689.000000
1577.000000
1845.000000
1705.000000
1637.000000
1553.000000
1301.000000
1281.000000
1657.000000
1489.000000
1357.000000
1457.000000
1337.000000
1357.000000
1437.000000
1229.000000
1433.000000
1089.000000
1677.000000
1741.000000
1493.000000
1665.000000
1681.000000
1613.000000
1725.000000
1077.000000
1545.000000
1753.000000
1613.000000
1433.000000
1273.000000
1705.000000
1941.000000
1909.000000
2053.000000
2033.000000
1653.000000
1957.000000
1957.000000
1953.000000
1989.000000
1593.000000
2013.000000
2109.000000
1753.000000
2077.000000
2085.000000
1953.000000
2233.000000
1865.000000
2125.000000
2185.000000
1685.000000
2209.000000
2261.000000
1841.000000
2089.000000
2225.000000
1993.000000
2329.000000
2253.000000
2025.000000
2261.000000
2309.000000
2125.000000
2213.000000
2201.000000
2205.000000
2225.000000
2073.000000
2177.000000
2169.000000
2117.000000
2177.000000
1997.000000
2053.000000
2085.000000
2093.000000
1921.000000
2677.000000
2377.000000
2809.000000
2513.000000
3333.000000
2873.000000
2977.000000
3053.000000
2969.000000
3601.000000
3441.000000
3189.000000
3141.000000
2905.000000
3441.000000
3273.000000
3061.000000
2977.000000
2873.000000
2877.000000
2805.000000
2713.000000
2597.000000
2601.000000
2621.000000
2589.000000
2525.000000
2409.000000
2481.000000
2473.000000
2497.000000
2397.000000
2329.000000
2349.000000
2365.000000
2393.000000
2321.000000
2277.000000
2241.000000
2321.000000
2305.000000
2209.000000
2193.000000
2189.000000
2261.000000
2245.000000
2173.000000
2085.000000
2129.000000
2153.000000
2153.000000
2101.000000
2021.000000
2053.000000
2081.000000
2153.000000
2077.000000
2049.000000
2057.000000
2085.000000
2105.000000
2037.000000
1997.000000
2013.000000
2029.000000
2037.000000
1989.000000
1913.000000
1957.000000
1997.000000
2013.000000
1953.000000
1857.000000
1869.000000
1921.000000
1953.000000
1909.000000
1873.000000
1881.000000
1985.000000
1965.000000
1985.000000
1721.000000
1929.000000
2121.000000
2513.000000
2501.000000
2137.000000
2489.000000
2569.000000
2465.000000
2421.000000
1909.000000
2293.000000
2349.000000
2097.000000
2213.000000
1661.000000
2181.000000
2269.000000
2129.000000
2257.000000
2093.000000
2173.000000
2325.000000
1913.000000
2329.000000
2309.000000
2117.000000
2409.000000
1901.000000
2309.000000
2373.000000
1977.000000
2413.000000
2465.000000
2221.000000
2297.000000
1853.000000
2409.000000
2493.000000
2241.000000
2413.000000
1989.000000
2449.000000
2481.000000
1865.000000
2357.000000
2417.000000
2097.000000
2485.000000
2473.000000
2205.000000
2465.000000
2341.000000
2421.000000
2501.000000
2485.000000
2153.000000
2517.000000
2553.000000
2133.000000
2397.000000
2437.000000
2329.000000
2397.000000
2385.000000
2345.000000
2345.000000
2361.000000
2373.000000
2265.000000
2233.000000
2197.000000
2269.000000
2185.000000
2165.000000
2085.000000
2081.000000
2141.000000
2109.000000
2081.000000
1973.000000
2013.000000
2057.000000
2049.000000
1993.000000
1941.000000
1957.000000
2045.000000
2557.000000
2701.000000
2493.000000
3269.000000
3317.000000
3877.000000
3469.000000
3249.000000
3553.000000
3805.000000
3985.000000
3445.000000
3273.000000
3181.000000
3241.000000
2781.000000
2681.000000
2489.000000
2441.000000
2445.000000
2385.000000
2285.000000
2225.000000
2177.000000
2177.000000
2185.000000
2077.000000
2005.000000
1997.000000
2021.000000
2017.000000
1957.000000
1893.000000
1841.000000
1889.000000
1897.000000
1841.000000
1757.000000
1813.000000
1829.000000
1833.000000
1773.000000
1693.000000
1697.000000
1749.000000
1773.000000
1713.000000
1649.000000
1665.000000
1697.000000
1705.000000
1665.000000
1613.000000
1597.000000
1673.000000
1657.000000
1637.000000
1561.000000
1577.000000
1629.000000
1621.000000
1589.000000
1501.000000
1545.000000
1593.000000
1613.000000
1561.000000
1485.000000
1537.000000
1565.000000
1597.000000
1557.000000
1505.000000
1529.000000
1561.000000
1605.000000
1489.000000
1441.000000
1469.000000
1517.000000
1553.000000
1513.000000
1485.000000
1485.000000
1573.000000
1573.000000
1417.000000
1545.000000
1673.000000
2317.000000
1977.000000
1625.000000
1653.000000
1425.000000
1945.000000
1837.000000
1953.000000
1913.000000
1745.000000
1961.000000
1933.000000
1805.000000
1849.000000
1533.000000
1829.000000
1833.000000
1709.000000
1757.000000
1485.000000
1849.000000
1717.000000
1829.000000
1877.000000
1477.000000
1889.000000
2005.000000
1745.000000
1925.000000
1869.000000
1901.000000
2017.000000
1741.000000
1949.000000
1853.000000
1969.000000
2101.000000
1897.000000
2073.000000
1953.000000
2017.000000
2201.000000
1849.000000
2085.000000
2125.000000
2077.000000
2185.000000
2037.000000
2009.000000
2077.000000
1813.000000
2133.000000
2085.000000
1849.000000
2053.000000
1901.000000
2093.000000
2145.000000
1713.000000
2065.000000
2193.000000
2209.000000
1781.000000
2053.000000
2149.000000
2145.000000
1897.000000
2149.000000
2105.000000
2117.000000
2129.000000
1933.000000
1993.000000
2021.000000
2033.000000
2057.000000
2085.000000
2025.000000
1925.000000
1937.000000
1933.000000
1985.000000
1897.000000
1841.000000
1865.000000
1877.000000
1913.000000
1829.000000
1801.000000
1789.000000
1809.000000
1825.000000
1777.000000
1717.000000
1725.000000
1785.000000
1817.000000
1769.000000
1665.000000
1729.000000
1729.000000
1785.000000
1717.000000
1689.000000
1685.000000
1733.000000
1761.000000
1685.000000
1685.000000
1625.000000
1717.000000
1717.000000
1669.000000
1637.000000
1621.000000
1713.000000
1697.000000
1705.000000
1621.000000
1625.000000
1665.000000
1661.000000
1625.000000
1541.000000
1609.000000
1609.000000
1705.000000
1645.000000
1589.000000
1593.000000
1657.000000
1661.000000
1681.000000
1385.000000
1489.000000
1433.000000
1489.000000
1449.000000
1353.000000
1513.000000
1453.000000
1733.000000
1349.000000
1669.000000
1737.000000
1589.000000
1793.000000
1357.000000
1653.000000
1705.000000
1597.000000
1857.000000
1325.000000
1701.000000
1765.000000
1385.000000
1813.000000
1817.000000
1557.000000
1773.000000
1873.000000
1817.000000
1945.000000
1633.000000
1825.000000
2001.000000
1677.000000
2041.000000
2033.000000
1829.000000
2125.000000
1925.000000
2085.000000
2093.000000
1761.000000
2161.000000
2245.000000
1893.000000
2157.000000
2197.000000
1993.000000
2277.000000
2249.000000
2017.000000
2177.000000
1889.000000
2229.000000
2161.000000
2033.000000
2177.000000
1945.000000
2157.000000
2241.000000
2201.000000
1821.000000
2169.000000
2209.000000
2201.000000
2085.000000
2041.000000
2069.000000
2089.000000
2017.000000
1961.000000
1913.000000
1949.000000
1993.000000
1921.000000
1869.000000
1841.000000
1917.000000
1921.000000
1881.000000
1829.000000
1801.000000
1849.000000
1845.000000
1861.000000
1753.000000
1781.000000
1805.000000
1857.000000
1813.000000
1761.000000
1753.000000
2557.000000
2381.000000
2269.000000
2813.000000
2621.000000
3129.000000
2993.000000
2829.000000
3013.000000
2981.000000
3533.000000
3465.000000
3365.000000
3361.000000
3221.000000
3257.000000
3021.000000
2857.000000
2677.000000
2569.000000
2521.000000
2465.000000
2401.000000
2269.000000
2225.000000
2245.000000
2241.000000
2173.000000
2057.000000
2021.000000
2049.000000
2069.000000
2013.000000
1945.000000
1889.000000
1949.000000
1953.000000
1897.000000
1825.000000
1761.000000
1837.000000
1817.000000
1837.000000
1741.000000
1701.000000
1741.000000
1721.000000
1749.000000
1697.000000
1677.000000
1697.000000
1721.000000
1745.000000
1637.000000
1633.000000
1709.000000
1745.000000
1753.000000
1641.000000
1481.000000
1717.000000
1785.000000
1693.000000
1649.000000
1393.000000
1557.000000
1553.000000
1569.000000
1669.000000
1505.000000
1817.000000
1513.000000
1841.000000
1829.000000
1641.000000
1829.000000
1645.000000
1889.000000
1609.000000
1781.000000
1913.000000
1609.000000
1937.000000
1941.000000
1725.000000
1961.000000
1685.000000
1949.000000
1969.000000
1709.000000
1985.000000
2069.000000
1997.000000
2077.000000
1953.000000
1953.000000
2165.000000
1697.000000
2069.000000
2089.000000
1841.000000
2137.000000
2157.000000
1989.000000
2049.000000
1537.000000
2117.000000
2237.000000
1721.000000
2145.000000
2201.000000
2141.000000
2309.000000
1825.000000
2165.000000
2245.000000
2109.000000
2305.000000
2261.000000
2053.000000
2309.000000
2041.000000
2229.000000
2317.000000
1809.000000
2285.000000
2365.000000
1909.000000
2241.000000
2217.000000
2265.000000
2217.000000
2141.000000
2181.000000
2157.000000
2149.000000
2173.000000
2157.000000
2057.000000
2005.000000
1977.000000
2061.000000
2009.000000
1953.000000
1869.000000
1909.000000
1941.000000
1893.000000
1857.000000
1793.000000
1825.000000
1837.000000
1873.000000
1789.000000
1733.000000
1785.000000
1785.000000
1821.000000
1713.000000
1701.000000
1717.000000
1789.000000
1761.000000
1681.000000
1685.000000
1633.000000
1765.000000
1729.000000
1693.000000
1633.000000
1649.000000
1741.000000
1673.000000
1645.000000
1557.000000
1617.000000
1649.000000
1677.000000
1633.000000
1541.000000
1617.000000
1605.000000
1657.000000
1573.000000
1533.000000
1577.000000
1593.000000
1641.000000
1569.000000
1521.000000
1521.000000
1609.000000
1605.000000
1577.000000
1525.000000
1497.000000
1541.000000
1545.000000
1497.000000
1461.000000
1521.000000
1569.000000
1613.000000
1533.000000
1321.000000
1513.000000
1485.000000
1805.000000
1885.000000
1813.000000
2301.000000
2053.000000
2385.000000
1925.000000
2201.000000
2253.000000
1997.000000
2213.000000
2153.000000
1933.000000
2045.000000
1609.000000
1989.000000
2005.000000
1769.000000
2061.000000
1821.000000
2217.000000
2157.000000
1877.000000
2117.000000
2209.000000
2113.000000
2189.000000
1637.000000
2133.000000
2229.000000
2017.000000
2193.000000
1749.000000
2137.000000
2225.000000
2069.000000
2221.000000
1661.000000
2153.000000
2261.000000
1901.000000
2197.000000
1977.000000
2089.000000
2213.000000
1825.000000
2181.000000
2169.000000
1821.000000
2237.000000
2329.000000
2081.000000
2209.000000
1873.000000
2181.000000
2325.000000
1649.000000
2141.000000
2217.000000
2105.000000
2301.000000
2201.000000
2041.000000
2141.000000
2237.000000
2093.000000
2185.000000
2137.000000
2089.000000
2105.000000
2069.000000
2041.000000
1953.000000
1941.000000
1989.000000
1993.000000
1957.000000
1853.000000
1857.000000
1905.000000
1917.000000
1881.000000
1769.000000
1789.000000
1805.000000
1853.000000
1785.000000
1753.000000
1741.000000
1757.000000
1833.000000
1757.000000
1709.000000
1693.000000
1757.000000
1781.000000
1721.000000
1669.000000
1661.000000
1713.000000
1745.000000
1697.000000
1645.000000
1641.000000
1685.000000
1713.000000
1677.000000
1613.000000
1609.000000
1653.000000
1725.000000
1673.000000
1601.000000
1597.000000
1645.000000
1709.000000
1637.000000
1573.000000
1565.000000
1641.000000
1701.000000
1629.000000
1601.000000
1541.000000
1617.000000
1637.000000
1569.000000
1561.000000
1509.000000
1589.000000
1617.000000
1625.000000
1545.000000
1525.000000
1597.000000
1661.000000
1517.000000
1585.000000
1365.000000
1485.000000
1589.000000
1397.000000
1405.000000
1297.000000
1629.000000
1505.000000
1709.000000
1777.000000
1509.000000
1837.000000
1685.000000
1745.000000
1777.000000
1861.000000
1965.000000
1689.000000
1825.000000
1817.000000
1661.000000
1921.000000
1457.000000
1961.000000
1997.000000
1765.000000
2069.000000
1605.000000
2069.000000
2145.000000
1757.000000
2185.000000
2117.000000
2061.000000
2177.000000
1805.000000
2213.000000
1897.000000
2213.000000
2241.000000
1889.000000
2289.000000
2289.000000
1977.000000
2169.000000
1893.000000
2153.000000
2317.000000
1921.000000
2173.000000
2277.000000
1853.000000
2361.000000
2249.000000
2133.000000
2257.000000
1857.000000
2313.000000
2305.000000
1949.000000
2201.000000
2269.000000
2285.000000
2189.000000
1769.000000
2077.000000
2161.000000
2149.000000
2121.000000
2029.000000
1981.000000
1981.000000
1985.000000
1969.000000
1897.000000
1837.000000
1881.000000
1933.000000
1893.000000
1845.000000
1785.000000
1825.000000
1869.000000
1833.000000
1781.000000
1737.000000
1741.000000
2193.000000
2401.000000
2089.000000
2105.000000
2685.000000
2449.000000
2849.000000
2721.000000
2553.000000
2609.000000
3029.000000
2857.000000
3377.000000
3277.000000
3229.000000
3189.000000
2977.000000
2789.000000
2633.000000
2553.000000
2541.000000
2441.000000
2333.000000
2265.000000
2253.000000
2265.000000
2237.000000
2137.000000
2097.000000
2097.000000
2125.000000
2109.000000
2005.000000
1949.000000
1969.000000
1993.000000
1973.000000
1893.000000
1829.000000
1873.000000
1929.000000
1917.000000
1841.000000
1781.000000
1833.000000
1877.000000
1845.000000
1781.000000
1737.000000
1769.000000
1793.000000
1797.000000
1765.000000
1697.000000
1749.000000
1789.000000
1773.000000
1729.000000
1677.000000
1729.000000
1745.000000
1741.000000
1677.000000
1637.000000
1685.000000
1705.000000
1729.000000
1633.000000
1621.000000
1673.000000
1709.000000
1693.000000
1573.000000
1581.000000
1585.000000
1657.000000
1669.000000
1657.000000
1617.000000
1633.000000
1661.000000
1749.000000
1617.000000
2333.000000
2057.000000
3257.000000
2885.000000
2897.000000
2821.000000
2601.000000
2757.000000
2361.000000
2565.000000
2545.000000
2197.000000
2461.000000
2121.000000
2281.000000
2357.000000
1981.000000
2361.000000
2093.000000
2277.000000
2329.000000
1929.000000
2413.000000
2245.000000
2369.000000
2461.000000
2237.000000
2569.000000
2569.000000
2401.000000
2449.000000
2101.000000
2485.000000
2557.000000
2221.000000
2433.000000
2045.000000
2493.000000
2577.000000
2317.000000
2449.000000
1917.000000
2445.000000
2541.000000
2181.000000
2453.000000
2045.000000
2473.000000
2545.000000
2237.000000
2429.000000
2237.000000
2417.000000
2509.000000
2053.000000
2405.000000
1957.000000
2489.000000
2569.000000
2193.000000
2425.000000
2421.000000
2301.000000
2537.000000
2281.000000
2297.000000
2405.000000
2433.000000
2281.000000
2409.000000
2369.000000
2325.000000
2197.000000
2389.000000
2377.000000
2277.000000
2273.000000
2333.000000
2277.000000
2245.000000
2161.000000
2173.000000
2205.000000
2229.000000
2157.000000
2077.000000
2105.000000
2149.000000
2185.000000
2077.000000
2029.000000
2049.000000
2113.000000
2093.000000
2065.000000
1989.000000
1989.000000
2033.000000
2073.000000
2021.000000
1941.000000
1961.000000
2017.000000
2025.000000
1985.000000
1913.000000
1945.000000
1981.000000
2001.000000
1957.000000
1905.000000
1929.000000
1953.000000
1981.000000
1917.000000
1893.000000
1861.000000
1929.000000
1929.000000
1909.000000
1869.000000
1849.000000
1913.000000
1921.000000
1865.000000
1793.000000
1833.000000
1905.000000
1865.000000
1829.000000
1789.000000
1781.000000
1849.000000
1893.000000
1849.000000
1801.000000
1813.000000
1761.000000
1833.000000
1913.000000
1585.000000
1681.000000
1773.000000
1585.000000
1577.000000
1513.000000
1737.000000
1541.000000
1945.000000
1837.000000
1733.000000
1889.000000
1609.000000
1893.000000
1833.000000
1669.000000
1833.000000
1497.000000
1857.000000
1905.000000
1525.000000
1849.000000
1649.000000
1937.000000
2037.000000
1485.000000
1913.000000
2049.000000
1725.000000
2017.000000
1861.000000
1833.000000
2053.000000
1885.000000
2093.000000
1553.000000
2033.000000
2181.000000
1817.000000
2161.000000
2177.000000
1949.000000
2201.000000
1753.000000
2165.000000
2193.000000
1737.000000
2257.000000
2225.000000
2121.000000
2197.000000
1705.000000
2261.000000
2369.000000
1965.000000
2253.000000
2285.000000
2053.000000
2349.000000
1725.000000
2165.000000
2229.000000
2029.000000
2321.000000
2245.000000
1821.000000
2217.000000
2329.000000
2317.000000
2237.000000
2125.000000
2105.000000
2181.000000
2157.000000
2129.000000
2009.000000
2021.000000
2061.000000
2065.000000
2001.000000
1909.000000
1949.000000
1993.000000
2017.000000
1949.000000
1925.000000
1881.000000
1941.000000
1973.000000
1897.000000
1873.000000
1841.000000
1921.000000
1909.000000
1893.000000
1789.000000
1817.000000
1853.000000
1849.000000
2253.000000
2329.000000
2237.000000
2729.000000
2773.000000
2369.000000
2245.000000
2229.000000
2497.000000
2529.000000
2437.000000
3261.000000
3089.000000
3369.000000
3397.000000
3209.000000
2957.000000
3073.000000
3321.000000
3481.000000
3189.000000
3865.000000
3537.000000
3393.000000
3377.000000
2965.000000
2741.000000
2665.000000
2625.000000
2585.000000
2485.000000
2393.000000
2369.000000
2353.000000
2345.000000
2225.000000
2197.000000
2141.000000
2161.000000
2181.000000
2109.000000
2057.000000
1985.000000
2065.000000
2025.000000
1973.000000
1897.000000
1885.000000
1933.000000
1933.000000
1905.000000
1853.000000
1853.000000
1869.000000
1881.000000
1861.000000
1849.000000
2869.000000
2457.000000
2337.000000
2069.000000
1585.000000
2065.000000
2065.000000
1973.000000
2173.000000
1985.000000
1993.000000
1737.000000
2085.000000
2061.000000
1769.000000
1961.000000
1673.000000
2029.000000
1745.000000
1825.000000
1989.000000
1665.000000
2077.000000
1973.000000
1965.000000
2109.000000
1949.000000
2117.000000
2161.000000
1769.000000
2101.000000
1737.000000
2221.000000
2213.000000
1881.000000
2085.000000
1641.000000
2117.000000
2177.000000
1621.000000
2085.000000
2157.000000
2005.000000
2197.000000
1849.000000
2021.000000
2169.000000
1633.000000
2129.000000
2109.000000
1817.000000
2153.000000
1729.000000
2185.000000
2153.000000
1777.000000
2189.000000
2253.000000
2029.000000
2185.000000
2169.000000
2073.000000
2313.000000
1741.000000
2173.000000
2221.000000
1785.000000
2281.000000
2293.000000
1953.000000
2205.000000
2029.000000
2161.000000
2245.000000
2153.000000
1997.000000
2229.000000
2249.000000
1781.000000
2085.000000
2113.000000
2113.000000
2129.000000
2037.000000
1949.000000
1949.000000
1709.000000
1997.000000
2013.000000
1925.000000
1877.000000
1897.000000
2229.000000
2453.000000
2293.000000
2881.000000
2937.000000
2889.000000
2817.000000
2733.000000
2665.000000
2901.000000
3169.000000
2793.000000
3185.000000
2933.000000
3109.000000
2981.000000
2769.000000
2561.000000
2481.000000
2449.000000
2409.000000
2321.000000
2217.000000
2161.000000
2169.000000
2205.000000
2129.000000
2053.000000
2013.000000
2045.000000
2061.000000
1993.000000
1933.000000
1885.000000
1969.000000
1961.000000
1941.000000
1849.000000
1829.000000
1885.000000
1897.000000
1869.000000
1781.000000
1813.000000
1837.000000
1865.000000
1825.000000
1773.000000
1765.000000
1773.000000
1801.000000
1769.000000
1677.000000
1661.000000
1745.000000
1757.000000
1753.000000
1685.000000
1637.000000
1845.000000
1741.000000
2537.000000
2121.000000
2569.000000
2193.000000
2621.000000
2545.000000
2141.000000
2361.000000
2025.000000
2337.000000
2197.000000
1993.000000
2105.000000
1809.000000
2265.000000
1905.000000
2245.000000
2277.000000
1921.000000
2305.000000
2365.000000
1985.000000
2197.000000
1953.000000
2169.000000
2265.000000
1777.000000
2189.000000
2257.000000
2201.000000
2373.000000
1789.000000
2181.000000
2301.000000
1789.000000
2305.000000
2201.000000
2113.000000
2345.000000
1937.000000
2349.000000
2365.000000
2077.000000
2329.000000
1861.000000
2149.000000
2229.000000
1773.000000
2221.000000
1769.000000
2257.000000
2069.000000
2165.000000
2353.000000
1801.000000
2333.000000
2137.000000
2189.000000
2369.000000
1865.000000
2385.000000
2389.000000
2141.000000
2397.000000
2441.000000
2201.000000
2413.000000
1761.000000
2429.000000
2521.000000
2185.000000
2381.000000
2325.000000
2277.000000
2437.000000
2269.000000
2181.000000
2293.000000
2345.000000
2013.000000
2249.000000
2249.000000
2213.000000
2213.000000
2229.000000
2165.000000
2069.000000
2041.000000
2065.000000
2101.000000
2037.000000
1993.000000
1933.000000
1965.000000
2001.000000
1949.000000
1865.000000
1813.000000
1885.000000
1913.000000
1849.000000
1801.000000
1805.000000
1841.000000
1849.000000
1853.000000
1753.000000
1761.000000
1777.000000
1805.000000
1789.000000
1721.000000
1701.000000
1753.000000
1773.000000
1757.000000
1701.000000
1661.000000
1721.000000
1737.000000
1733.000000
1661.000000
1661.000000
1689.000000
1717.000000
1681.000000
1637.000000
1613.000000
1673.000000
1701.000000
1653.000000
1621.000000
1585.000000
1649.000000
1657.000000
1645.000000
1577.000000
1569.000000
1625.000000
1633.000000
1601.000000
1509.000000
1517.000000
1553.000000
1613.000000
1593.000000
1545.000000
1469.000000
1561.000000
1705.000000
1249.000000
1417.000000
1709.000000
2033.000000
2265.000000
1953.000000
2033.000000
1989.000000
1889.000000
2025.000000
1565.000000
1877.000000
1837.000000
1733.000000
1977.000000
1489.000000
1909.000000
1793.000000
1933.000000
2093.000000
1605.000000
1993.000000
1905.000000
1993.000000
2133.000000
1605.000000
2065.000000
2101.000000
1881.000000
2197.000000
1597.000000
2025.000000
2029.000000
1633.000000
2085.000000
2005.000000
1957.000000
2073.000000
1573.000000
2137.000000
2241.000000
1733.000000
2113.000000
2269.000000
1753.000000
2281.000000
2217.000000
2097.000000
2309.000000
2297.000000
2173.000000
2285.000000
1845.000000
2289.000000
2401.000000
1861.000000
2277.000000
2253.000000
2313.000000
2281.000000
2221.000000
2021.000000
2157.000000
2213.000000
2197.000000
2137.000000
2045.000000
2013.000000
2005.000000
2041.000000
1989.000000
1905.000000
1877.000000
1897.000000
1969.000000
1889.000000
1837.000000
1793.000000
1825.000000
1861.000000
1825.000000
1797.000000
1701.000000
2085.000000
2537.000000
2257.000000
2753.000000
2869.000000
2957.000000
3185.000000
3053.000000
3041.000000
2949.000000
3657.000000
3477.000000
3581.000000
3365.000000
3041.000000
3201.000000
3069.000000
3165.000000
3525.000000
3861.000000
3929.000000
3913.000000
3553.000000
3801.000000
3373.000000
2925.000000
2885.000000
2845.000000
2701.000000
2597.000000
2609.000000
2593.000000
2541.000000
2401.000000
2365.000000
2365.000000
2365.000000
2337.000000
2229.000000
2189.000000
2185.000000
2229.000000
2181.000000
2101.000000
2021.000000
2049.000000
2089.000000
2077.000000
2009.000000
1921.000000
1977.000000
1989.000000
1969.000000
1917.000000
1829.000000
1877.000000
1893.000000
1881.000000
1829.000000
1765.000000
1805.000000
1801.000000
1833.000000
1737.000000
1721.000000
1741.000000
1793.000000
1773.000000
1669.000000
1653.000000
1701.000000
1729.000000
1769.000000
2149.000000
2141.000000
3693.000000
3729.000000
3969.000000
3573.000000
3157.000000
2569.000000
2573.000000
3425.000000
3433.000000
3337.000000
2909.000000
1925.000000
1225.000000
1585.000000
1389.000000
1121.000000
1245.000000
1237.000000
1133.000000
1193.000000
901.000000
1285.000000
1345.000000
1165.000000
1293.000000
985.000000
1349.000000
1261.000000
1249.000000
1313.000000
1033.000000
1377.000000
1213.000000
1361.000000
1433.000000
1245.000000
1477.000000
1617.000000
1133.000000
1461.000000
1573.000000
1157.000000
1613.000000
1621.000000
1405.000000
1621.000000
1149.000000
1665.000000
1665.000000
1453.000000
1685.000000
1173.000000
1697.000000
1697.000000
1137.000000
1649.000000
1753.000000
1573.000000
1705.000000
1345.000000
1613.000000
1709.000000
1553.000000
1693.000000
1493.000000
1605.000000
1757.000000
1221.000000
1601.000000
1637.000000
1093.000000
1689.000000
1789.000000
1153.000000
1633.000000
1713.000000
1569.000000
1789.000000
1529.000000
1613.000000
1709.000000
1749.000000
1617.000000
1789.000000
1261.000000
1717.000000
1825.000000
1553.000000
1745.000000
1257.000000
1717.000000
1349.000000
1709.000000
1741.000000
1101.000000
1677.000000
1777.000000
1465.000000
1677.000000
1325.000000
1621.000000
1753.000000
1325.000000
1669.000000
1633.000000
1609.000000
1661.000000
1421.000000
1629.000000
1577.000000
1565.000000
1597.000000
1573.000000
1537.000000
1433.000000
1477.000000
1501.000000
1497.000000
1441.000000
1381.000000
1429.000000
1441.000000
1461.000000
1393.000000
1349.000000
1393.000000
1421.000000
1405.000000
1353.000000
1325.000000
1333.000000
1425.000000
1429.000000
1353.000000
1305.000000
1341.000000
1385.000000
1417.000000
1357.000000
1293.000000
1313.000000
1377.000000
1405.000000
1357.000000
1285.000000
1305.000000
1345.000000
1381.000000
1317.000000
1309.000000
1297.000000
1321.000000
1385.000000
1313.000000
1305.000000
1313.000000
1405.000000
1405.000000
1353.000000
1053.000000
1301.000000
1441.000000
1265.000000
1301.000000
1057.000000
1161.000000
1165.000000
1533.000000
1157.000000
1529.000000
1469.000000
1497.000000
1661.000000
1201.000000
1473.000000
1421.000000
1461.000000
1645.000000
1333.000000
1581.000000
1569.000000
1625.000000
1729.000000
1437.000000
1669.000000
1649.000000
1665.000000
1801.000000
1329.000000
1725.000000
1641.000000
1729.000000
1913.000000
1397.000000
1761.000000
1617.000000
1833.000000
1969.000000
1609.000000
1845.000000
1385.000000
1889.000000
1977.000000
1753.000000
1873.000000
1385.000000
1909.000000
2005.000000
1533.000000
1837.000000
1893.000000
1829.000000
1981.000000
1341.000000
1845.000000
1941.000000
1465.000000
1961.000000
1969.000000
1481.000000
1897.000000
1993.000000
1949.000000
1481.000000
1821.000000
1865.000000
1873.000000
1889.000000
1805.000000
1721.000000
1729.000000
1745.000000
1745.000000
1677.000000
1637.000000
1625.000000
1677.000000
1677.000000
1589.000000
1529.000000
1565.000000
1605.000000
1609.000000
1537.000000
1505.000000
1493.000000
1565.000000
1553.000000
1533.000000
1465.000000
1485.000000
1533.000000
1537.000000
1517.000000
1433.000000
1477.000000
1509.000000
1533.000000
1497.000000
1441.000000
1461.000000
1473.000000
1513.000000
1473.000000
1429.000000
1425.000000
1501.000000
1513.000000
1429.000000
1417.000000
1425.000000
1485.000000
1473.000000
1457.000000
1381.000000
1405.000000
1453.000000
1481.000000
1413.000000
1345.000000
1369.000000
1425.000000
1457.000000
1409.000000
1365.000000
1373.000000
1373.000000
1417.000000
1373.000000
1349.000000
1333.000000
1437.000000
1429.000000
1413.000000
1149.000000
1309.000000
1525.000000
2089.000000
1909.000000
1613.000000
2225.000000
1885.000000
2257.000000
2225.000000
1993.000000
2153.000000
1797.000000
2181.000000
2085.000000
1893.000000
2009.000000
1653.000000
2097.000000
1921.000000
1901.000000
2013.000000
1849.000000
2013.000000
2089.000000
1565.000000
2005.000000
1961.000000
1993.000000
2129.000000
1573.000000
2025.000000
1493.000000
2061.000000
2097.000000
1605.000000
2029.000000
1533.000000
2077.000000
2085.000000
1705.000000
1981.000000
1529.000000
2105.000000
1801.000000
1945.000000
2025.000000
1701.000000
2049.000000
1997.000000
1749.000000
1969.000000
1633.000000
1977.000000
1865.000000
1801.000000
1973.000000
1513.000000
2009.000000
2041.000000
1501.000000
1973.000000
2041.000000
1873.000000
2033.000000
1493.000000
1969.000000
1697.000000
2017.000000
2073.000000
1557.000000
1985.000000
2077.000000
1621.000000
1989.000000
1985.000000
1965.000000
1753.000000
2033.000000
1981.000000
1917.000000
1881.000000
1925.000000
1965.000000
1677.000000
1821.000000
1825.000000
1841.000000
1873.000000
1813.000000
1741.000000
1725.000000
1753.000000
1773.000000
1717.000000
1657.000000
1653.000000
1701.000000
1705.000000
1673.000000
1605.000000
1577.000000
1645.000000
1637.000000
1653.000000
1545.000000
1557.000000
1601.000000
1629.000000
1589.000000
1517.000000
1537.000000
1553.000000
1617.000000
1557.000000
1493.000000
1485.000000
1533.000000
1585.000000
1525.000000
1477.000000
1457.000000
1501.000000
1533.000000
1513.000000
1449.000000
1441.000000
1513.000000
1525.000000
1489.000000
1453.000000
1433.000000
1473.000000
1501.000000
1453.000000
1401.000000
1413.000000
1437.000000
1505.000000
1461.000000
1401.000000
1381.000000
1425.000000
1465.000000
1433.000000
1373.000000
1377.000000
1433.000000
1469.000000
1405.000000
1317.000000
1281.000000
1369.000000
1421.000000
1409.000000
1369.000000
1357.000000
1445.000000
1525.000000
2753.000000
2113.000000
1837.000000
1469.000000
1281.000000
1109.000000
1401.000000
1169.000000
1613.000000
1669.000000
1501.000000
1601.000000
1253.000000
1613.000000
1397.000000
1585.000000
1601.000000
1445.000000
1717.000000
1265.000000
1673.000000
1577.000000
1661.000000
1817.000000
1477.000000
1833.000000
1681.000000
1729.000000
1957.000000
1453.000000
1905.000000
1421.000000
1757.000000
1881.000000
1741.000000
1897.000000
1357.000000
1781.000000
1921.000000
1601.000000
1893.000000
1205.000000
1753.000000
1897.000000
1297.000000
1857.000000
1913.000000
1669.000000
1909.000000
1301.000000
1897.000000
1929.000000
1517.000000
1981.000000
1753.000000
1937.000000
1985.000000
1733.000000
2033.000000
1801.000000
1977.000000
1989.000000
1709.000000
2005.000000
1845.000000
1993.000000
2029.000000
1493.000000
2045.000000
2125.000000
1653.000000
2005.000000
2001.000000
2021.000000
2017.000000
1945.000000
1737.000000
1765.000000
1933.000000
1945.000000
1889.000000
1813.000000
1765.000000
1813.000000
1825.000000
1817.000000
1737.000000
1705.000000
1737.000000
1757.000000
1745.000000
1617.000000
1653.000000
1633.000000
1689.000000
1645.000000
1613.000000
1573.000000
1613.000000
1669.000000
1597.000000
1609.000000
1525.000000
1601.000000
1601.000000
1605.000000
1521.000000
1501.000000
1593.000000
1601.000000
1605.000000
1505.000000
1521.000000
1529.000000
1597.000000
1537.000000
1489.000000
1485.000000
1497.000000
1573.000000
1501.000000
1513.000000
1449.000000
1497.000000
1553.000000
1517.000000
1481.000000
1425.000000
1501.000000
1525.000000
1489.000000
1445.000000
1401.000000
1505.000000
1493.000000
1493.000000
1385.000000
1377.000000
1421.000000
1477.000000
1489.000000
1421.000000
1437.000000
1433.000000
1417.000000
1349.000000
1461.000000
1129.000000
1281.000000
1393.000000
1165.000000
1329.000000
1261.000000
1629.000000
1317.000000
1669.000000
1629.000000
1353.000000
1633.000000
1249.000000
1689.000000
1189.000000
1681.000000
1753.000000
1393.000000
1777.000000
1709.000000
1557.000000
1813.000000
1441.000000
1821.000000
1905.000000
1449.000000
1881.000000
1873.000000
1717.000000
1957.000000
1773.000000
1897.000000
2029.000000
1697.000000
1969.000000
1913.000000
1865.000000
2065.000000
1841.000000
1981.000000
1281.000000
1921.000000
2057.000000
1521.000000
1993.000000
1977.000000
1837.000000
2053.000000
1589.000000
1957.000000
1889.000000
1809.000000
2041.000000
1545.000000
1993.000000
1961.000000
1617.000000
2025.000000
2013.000000
1789.000000
1965.000000
1801.000000
1953.000000
2065.000000
1653.000000
1909.000000
2025.000000
2025.000000
2001.000000
1873.000000
1777.000000
1917.000000
1937.000000
1905.000000
1629.000000
2233.000000
2005.000000
2369.000000
2309.000000
2069.000000
1973.000000
1897.000000
1929.000000
1869.000000
1773.000000
1685.000000
1697.000000
1741.000000
1837.000000
1749.000000
2173.000000
2517.000000
2269.000000
2821.000000
2833.000000
2573.000000
2577.000000
3149.000000
3341.000000
3085.000000
3453.000000
3465.000000
4101.000000
3917.000000
3661.000000
3505.000000
3365.000000
3349.000000
3249.000000
3093.000000
2997.000000
2957.000000
2969.000000
2893.000000
2773.000000
2669.000000
2701.000000
2677.000000
2673.000000
2561.000000
2465.000000
2493.000000
2469.000000
2457.000000
2345.000000
2321.000000
2321.000000
2345.000000
2337.000000
2225.000000
2189.000000
2197.000000
2229.000000
2221.000000
2141.000000
2097.000000
2073.000000
2149.000000
2089.000000
2009.000000
1953.000000
2001.000000
2045.000000
2033.000000
1981.000000
1941.000000
1997.000000
1961.000000
2065.000000
2033.000000
2229.000000
2345.000000
1973.000000
2093.000000
1717.000000
2233.000000
2225.000000
2073.000000
2325.000000
1737.000000
2189.000000
1881.000000
2201.000000
2245.000000
1889.000000
2177.000000
1689.000000
2245.000000
2289.000000
2049.000000
2193.000000
1789.000000
2241.000000
1729.000000
2177.000000
2313.000000
2025.000000
2313.000000
2405.000000
2065.000000
2321.000000
1985.000000
2477.000000
2093.000000
2441.000000
1945.000000
2305.000000
2477.000000
1981.000000
2305.000000
1661.000000
2245.000000
2285.000000
2097.000000
2309.000000
1757.000000
2353.000000
2421.000000
2265.000000
2429.000000
1749.000000
2413.000000
2505.000000
2225.000000
2481.000000
1913.000000
2441.000000
2557.000000
2305.000000
2533.000000
1805.000000
2485.000000
2625.000000
2337.000000
2561.000000
1837.000000
2501.000000
2593.000000
2053.000000
2545.000000
2521.000000
2125.000000
2465.000000
2517.000000
2425.000000
2345.000000
2333.000000
2337.000000
2309.000000
2209.000000
2149.000000
2141.000000
2165.000000
2161.000000
2105.000000
2053.000000
2037.000000
2093.000000
2081.000000
2005.000000
1929.000000
1981.000000
2017.000000
2009.000000
1957.000000
1885.000000
1897.000000
1949.000000
1957.000000
1869.000000
1837.000000
1861.000000
1913.000000
1885.000000
1829.000000
1809.000000
1805.000000
1877.000000
1865.000000
1801.000000
1749.000000
1765.000000
1833.000000
1841.000000
1761.000000
1717.000000
1757.000000
1797.000000
1825.000000
1757.000000
1693.000000
1717.000000
1757.000000
1769.000000
1713.000000
1665.000000
1685.000000
1741.000000
1761.000000
1697.000000
1625.000000
1641.000000
1737.000000
1745.000000
1677.000000
1645.000000
1641.000000
1693.000000
1701.000000
1633.000000
1589.000000
1633.000000
1685.000000
1697.000000
1629.000000
1581.000000
1601.000000
1653.000000
1641.000000
1577.000000
1537.000000
1569.000000
1641.000000
1641.000000
1621.000000
1557.000000
1593.000000
1649.000000
1513.000000
1621.000000
1405.000000
1365.000000
1501.000000
1169.000000
1457.000000
1101.000000
1685.000000
1289.000000
1733.000000
1549.000000
1657.000000
1797.000000
1617.000000
1893.000000
1361.000000
1781.000000
1797.000000
1813.000000
2005.000000
1497.000000
1893.000000
1489.000000
1993.000000
2137.000000
1717.000000
2021.000000
1525.000000
2049.000000
2213.000000
1637.000000
2065.000000
1697.000000
2037.000000
2173.000000
1801.000000
1993.000000
1109.000000
1893.000000
2081.000000
1729.000000
2013.000000
1421.000000
2089.000000
2229.000000
1925.000000
2145.000000
1557.000000
2129.000000
2249.000000
1985.000000
2205.000000
1781.000000
2177.000000
2117.000000
2013.000000
2133.000000
1589.000000
2165.000000
2049.000000
2073.000000
2173.000000
1469.000000
2201.000000
2273.000000
1749.000000
2197.000000
1829.000000
2229.000000
2393.000000
2005.000000
2165.000000
2277.000000
2121.000000
2241.000000
2317.000000
2233.000000
1825.000000
2205.000000
2313.000000
2201.000000
2153.000000
2133.000000
2161.000000
2169.000000
2077.000000
2037.000000
2013.000000
2061.000000
2061.000000
2013.000000
1937.000000
1925.000000
2001.000000
1985.000000
1941.000000
1877.000000
1897.000000
1949.000000
1949.000000
1909.000000
1845.000000
1857.000000
1881.000000
1929.000000
1833.000000
1797.000000
1793.000000
1857.000000
1877.000000
1793.000000
1753.000000
1741.000000
1829.000000
1821.000000
1833.000000
2517.000000
2265.000000
2381.000000
2829.000000
2645.000000
2701.000000
2601.000000
2701.000000
2741.000000
3305.000000
3397.000000
3341.000000
3661.000000
3641.000000
3437.000000
3021.000000
2861.000000
2761.000000
2661.000000
2505.000000
2393.000000
2289.000000
2349.000000
2293.000000
2213.000000
2117.000000
2081.000000
2141.000000
2089.000000
2037.000000
1933.000000
1953.000000
2001.000000
1989.000000
1913.000000
1837.000000
1857.000000
1905.000000
1873.000000
1825.000000
1769.000000
1781.000000
1817.000000
1825.000000
1753.000000
1713.000000
1721.000000
1765.000000
1793.000000
1713.000000
1665.000000
1677.000000
1737.000000
1769.000000
1681.000000
1645.000000
1669.000000
1725.000000
1741.000000
1677.000000
1589.000000
1625.000000
1681.000000
1701.000000
1665.000000
1581.000000
1593.000000
1657.000000
1673.000000
1617.000000
1581.000000
1581.000000
1617.000000
1669.000000
1565.000000
1533.000000
1501.000000
1597.000000
1609.000000
1573.000000
1529.000000
1537.000000
1605.000000
1525.000000
1577.000000
1629.000000
1373.000000
1565.000000
1493.000000
1321.000000
1377.000000
1513.000000
1805.000000
1429.000000
1833.000000
1577.000000
1777.000000
1909.000000
1593.000000
1897.000000
1341.000000
1857.000000
1985.000000
1877.000000
2029.000000
1685.000000
1977.000000
1425.000000
1977.000000
1925.000000
1753.000000
1929.000000
1717.000000
2025.000000
1589.000000
1949.000000
1397.000000
2049.000000
2021.000000
1965.000000
2037.000000
1337.000000
1981.000000
2133.000000
1629.000000
2017.000000
1561.000000
2085.000000
1481.000000
2109.000000
2145.000000
1853.000000
2141.000000
1413.000000
2013.000000
1813.000000
1981.000000
2241.000000
1869.000000
2189.000000
1553.000000
2157.000000
2165.000000
2157.000000
2285.000000
1905.000000
2257.000000
2201.000000
2181.000000
2261.000000
1557.000000
2209.000000
2293.000000
2153.000000
2269.000000
1585.000000
2217.000000
2277.000000
1925.000000
2249.000000
2065.000000
2077.000000
2305.000000
2241.000000
2073.000000
2177.000000
2145.000000
2209.000000
2157.000000
1793.000000
2001.000000
2069.000000
2093.000000
2093.000000
2013.000000
1949.000000
1949.000000
1977.000000
1973.000000
1893.000000
1849.000000
1837.000000
1885.000000
1873.000000
1849.000000
1777.000000
1765.000000
1805.000000
1829.000000
1809.000000
1737.000000
1737.000000
1773.000000
1813.000000
1773.000000
1697.000000
1705.000000
1757.000000
1777.000000
1717.000000
1653.000000
1677.000000
1701.000000
1761.000000
1661.000000
1641.000000
1649.000000
1685.000000
1725.000000
1649.000000
1613.000000
1585.000000
1685.000000
1689.000000
1653.000000
1589.000000
1565.000000
1653.000000
1673.000000
1633.000000
1577.000000
1573.000000
1629.000000
1701.000000
1597.000000
1573.000000
1553.000000
1617.000000
1645.000000
1585.000000
1517.000000
1529.000000
1597.000000
1613.000000
1545.000000
1497.000000
1529.000000
1585.000000
1621.000000
1557.000000
1517.000000
1473.000000
1569.000000
1549.000000
1557.000000
1493.000000
1501.000000
1573.000000
1641.000000
1553.000000
1457.000000
1505.000000
1545.000000
1569.000000
1549.000000
1481.000000
1521.000000
1525.000000
1569.000000
1541.000000
1477.000000
1521.000000
1545.000000
1581.000000
1509.000000
1469.000000
1485.000000
1517.000000
1561.000000
1461.000000
1429.000000
1405.000000
1485.000000
1489.000000
1457.000000
1477.000000
1429.000000
1325.000000
1477.000000
1549.000000
2093.000000
1949.000000
2041.000000
2289.000000
2061.000000
2129.000000
1769.000000
2209.000000
2313.000000
2101.000000
2217.000000
1757.000000
2205.000000
2281.000000
1993.000000
2197.000000
2001.000000
2185.000000
2301.000000
1941.000000
2193.000000
1805.000000
2125.000000
2229.000000
1941.000000
2077.000000
1517.000000
2117.000000
2165.000000
2041.000000
2173.000000
1869.000000
2249.000000
2121.000000
2097.000000
2205.000000
1701.000000
2205.000000
2029.000000
2077.000000
2117.000000
1789.000000
2137.000000
1517.000000
2081.000000
1945.000000
1993.000000
2177.000000
1789.000000
2217.000000
2077.000000
2009.000000
2285.000000
1809.000000
2221.000000
1909.000000
2113.000000
2265.000000
2049.000000
2261.000000
1681.000000
2153.000000
2081.000000
2197.000000
2289.000000
1629.000000
2193.000000
2213.000000
2165.000000
2309.000000
1633.000000
2177.000000
2125.000000
2189.000000
2313.000000
1761.000000
2237.000000
2289.000000
2001.000000
2245.000000
2137.000000
1857.000000
2185.000000
2233.000000
2113.000000
2053.000000
2013.000000
1993.000000
1765.000000
1965.000000
1973.000000
1917.000000
1965.000000
1953.000000
1921.000000
1873.000000
1817.000000
1901.000000
1885.000000
1869.000000
1765.000000
1773.000000
1829.000000
1833.000000
1801.000000
1725.000000
1969.000000
2581.000000
2509.000000
2365.000000
2841.000000
2829.000000
2637.000000
2569.000000
2413.000000
2565.000000
2577.000000
2541.000000
3181.000000
3077.000000
2885.000000
3185.000000
2825.000000
2657.000000
2497.000000
2305.000000
2333.000000
2657.000000
2753.000000
3369.000000
3101.000000
3201.000000
3849.000000
3857.000000
3929.000000
3613.000000
3377.000000
3273.000000
3145.000000
2945.000000
2785.000000
2681.000000
2673.000000
2629.000000
2509.000000
2393.000000
2349.000000
2341.000000
2305.000000
2233.000000
2121.000000
2121.000000
2133.000000
2113.000000
2057.000000
1969.000000
1941.000000
1981.000000
1981.000000
1925.000000
1857.000000
1837.000000
1881.000000
1877.000000
1829.000000
1761.000000
1753.000000
1781.000000
1825.000000
1753.000000
1681.000000
1665.000000
1725.000000
1741.000000
1689.000000
1629.000000
1669.000000
1689.000000
1681.000000
1633.000000
1529.000000
1573.000000
1581.000000
1649.000000
1617.000000
1565.000000
1577.000000
1601.000000
1417.000000
1581.000000
1561.000000
1445.000000
1557.000000
1257.000000
1329.000000
1065.000000
1625.000000
1601.000000
1709.000000
1777.000000
1557.000000
1749.000000
1417.000000
1821.000000
1297.000000
1765.000000
1613.000000
1789.000000
1881.000000
1789.000000
1901.000000
1545.000000
1933.000000
1477.000000
1893.000000
1837.000000
1749.000000
1977.000000
1561.000000
2005.000000
1897.000000
1737.000000
2025.000000
1673.000000
2049.000000
1185.000000
1889.000000
2085.000000
1825.000000
2093.000000
1485.000000
2025.000000
2149.000000
1825.000000
2201.000000
1937.000000
1989.000000
2173.000000
1913.000000
2197.000000
1421.000000
2029.000000
1733.000000
2157.000000
2181.000000
1877.000000
2165.000000
1549.000000
2177.000000
2245.000000
1925.000000
2181.000000
1521.000000
2297.000000
2293.000000
1785.000000
2237.000000
2061.000000
2221.000000
2309.000000
1525.000000
2209.000000
2317.000000
2061.000000
2309.000000
2233.000000
2133.000000
2141.000000
2245.000000
2201.000000
2081.000000
2073.000000
2061.000000
2109.000000
2045.000000
1921.000000
1913.000000
1941.000000
1985.000000
1909.000000
1857.000000
1817.000000
1869.000000
1869.000000
1845.000000
1753.000000
1741.000000
1817.000000
1809.000000
1813.000000
1725.000000
1729.000000
1789.000000
1801.000000
1789.000000
1665.000000
1693.000000
1729.000000
1777.000000
1717.000000
1665.000000
1649.000000
1673.000000
1737.000000
1677.000000
1633.000000
1601.000000
1641.000000
1673.000000
1629.000000
1577.000000
1573.000000
1629.000000
1653.000000
1613.000000
1557.000000
1537.000000
1593.000000
1633.000000
1617.000000
1525.000000
1565.000000
1565.000000
1625.000000
1581.000000
1541.000000
1513.000000
1537.000000
1573.000000
1545.000000
1485.000000
1457.000000
1525.000000
1589.000000
1549.000000
1529.000000
1509.000000
1341.000000
1533.000000
1569.000000
1837.000000
1617.000000
1773.000000
1997.000000
1881.000000
2021.000000
1633.000000
1977.000000
1605.000000
1957.000000
1353.000000
1881.000000
1961.000000
1729.000000
1961.000000
1445.000000
1905.000000
1541.000000
1889.000000
2005.000000
1685.000000
2001.000000
1525.000000
2077.000000
2125.000000
1689.000000
2037.000000
1561.000000
2117.000000
1869.000000
1933.000000
2089.000000
1637.000000
2189.000000
1961.000000
1905.000000
2141.000000
1973.000000
2261.000000
1637.000000
2157.000000
1561.000000
2217.000000
2321.000000
2029.000000
2249.000000
1589.000000
2253.000000
2377.000000
1545.000000
2277.000000
2229.000000
2185.000000
2421.000000
1721.000000
2313.000000
2257.000000
2149.000000
2357.000000
1533.000000
2217.000000
2269.000000
2249.000000
2245.000000
2193.000000
2057.000000
2021.000000
2005.000000
2061.000000
1961.000000
1913.000000
1857.000000
1885.000000
1925.000000
1853.000000
1793.000000
1737.000000
1817.000000
1837.000000
1785.000000
1729.000000
1689.000000
1753.000000
1793.000000
1781.000000
1717.000000
1661.000000
1693.000000
1737.000000
1729.000000
1653.000000
1641.000000
1677.000000
1701.000000
1665.000000
1625.000000
1597.000000
1661.000000
1685.000000
1677.000000
1597.000000
1585.000000
1617.000000
1653.000000
1617.000000
1565.000000
1533.000000
1633.000000
1637.000000
1625.000000
1557.000000
1537.000000
1597.000000
1597.000000
1601.000000
1521.000000
1557.000000
1577.000000
1609.000000
1585.000000
1541.000000
1541.000000
1561.000000
1613.000000
1557.000000
1493.000000
1485.000000
1521.000000
1617.000000
1529.000000
1537.000000
1485.000000
1557.000000
1553.000000
1621.000000
1401.000000
1437.000000
1189.000000
1393.000000
1117.000000
1333.000000
1473.000000
1593.000000
1845.000000
1573.000000
1733.000000
1193.000000
1721.000000
1477.000000
1757.000000
1821.000000
1493.000000
1833.000000
1369.000000
1857.000000
1721.000000
1741.000000
1965.000000
1749.000000
2077.000000
1525.000000
1909.000000
1941.000000
2045.000000
2141.000000
1529.000000
2037.000000
1957.000000
2041.000000
2181.000000
1697.000000
2041.000000
1657.000000
2049.000000
2125.000000
1873.000000
2137.000000
1577.000000
2193.000000
1941.000000
1977.000000
2181.000000
1677.000000
2201.000000
1501.000000
2109.000000
2113.000000
2069.000000
2273.000000
1889.000000
2209.000000
1429.000000
2201.000000
2261.000000
2089.000000
2225.000000
1701.000000
2241.000000
1961.000000
2173.000000
2249.000000
1521.000000
2265.000000
2305.000000
2125.000000
2237.000000
1341.000000
2253.000000
2317.000000
2285.000000
1849.000000
2169.000000
2177.000000
2189.000000
2149.000000
2025.000000
1973.000000
1985.000000
2005.000000
1961.000000
1877.000000
1829.000000
1841.000000
1889.000000
1881.000000
1813.000000
1789.000000
1813.000000
1841.000000
1821.000000
1733.000000
1937.000000
1957.000000
2681.000000
2397.000000
2321.000000
2717.000000
2593.000000
2481.000000
2437.000000
2625.000000
3117.000000
3133.000000
2945.000000
3517.000000
3293.000000
2845.000000
2781.000000
2665.000000
2613.000000
2445.000000
2401.000000
2357.000000
2325.000000
2281.000000
2149.000000
2125.000000
2105.000000
2129.000000
2053.000000
1969.000000
1909.000000
1941.000000
1977.000000
1881.000000
1845.000000
1785.000000
1813.000000
1837.000000
1785.000000
1749.000000
1709.000000
1717.000000
1757.000000
1709.000000
1629.000000
1585.000000
1621.000000
1657.000000
1637.000000
1545.000000
1557.000000
1553.000000
1625.000000
1597.000000
1545.000000
1477.000000
1521.000000
1593.000000
1565.000000
1525.000000
1445.000000
1485.000000
1505.000000
1485.000000
1477.000000
1453.000000
1545.000000
1553.000000
1425.000000
1453.000000
1533.000000
1277.000000
1453.000000
1033.000000
1281.000000
977.000000
1685.000000
1477.000000
1713.000000
1213.000000
1589.000000
1693.000000
1617.000000
1777.000000
1445.000000
1741.000000
1205.000000
1861.000000
1925.000000
1649.000000
1889.000000
1433.000000
1977.000000
1649.000000
1841.000000
2013.000000
1705.000000
2105.000000
1569.000000
2037.000000
1909.000000
1965.000000
2221.000000
1529.000000
2121.000000
2145.000000
1789.000000
2245.000000
1601.000000
2181.000000
2057.000000
2073.000000
2233.000000
1869.000000
2165.000000
1677.000000
2121.000000
2237.000000
1861.000000
2173.000000
1473.000000
2197.000000
2077.000000
2145.000000
2213.000000
1905.000000
2177.000000
1701.000000
2241.000000
2233.000000
1925.000000
2241.000000
1633.000000
2205.000000
2225.000000
1909.000000
2253.000000
1857.000000
2293.000000
1609.000000
2153.000000
2317.000000
1809.000000
2301.000000
2249.000000
2173.000000
2005.000000
2073.000000
2225.000000
2181.000000
2097.000000
2109.000000
2149.000000
2125.000000
1733.000000
2001.000000
2021.000000
2077.000000
2061.000000
2025.000000
1885.000000
1941.000000
1969.000000
1941.000000
1793.000000
1809.000000
1877.000000
1921.000000
1881.000000
1817.000000
1785.000000
1817.000000
1849.000000
1805.000000
1773.000000
1709.000000
1737.000000
1785.000000
1745.000000
1693.000000
1669.000000
1697.000000
1737.000000
1725.000000
1677.000000
1641.000000
1685.000000
1725.000000
1685.000000
1633.000000
1585.000000
1641.000000
1669.000000
1701.000000
1617.000000
1569.000000
1609.000000
1637.000000
1649.000000
1545.000000
1517.000000
1545.000000
1597.000000
1605.000000
1553.000000
1525.000000
1517.000000
1573.000000
1549.000000
1497.000000
1505.000000
1537.000000
1597.000000
1577.000000
1533.000000
1317.000000
1549.000000
1289.000000
1505.000000
1097.000000
1293.000000
1369.000000
1717.000000
1389.000000
1701.000000
1165.000000
1701.000000
1309.000000
1761.000000
1757.000000
1545.000000
1813.000000
1613.000000
1913.000000
1337.000000
1837.000000
1973.000000
1825.000000
2033.000000
1545.000000
1949.000000
1373.000000
2005.000000
1989.000000
1817.000000
1993.000000
1505.000000
2061.000000
1373.000000
2013.000000
2049.000000
1777.000000
2173.000000
1585.000000
2145.000000
1957.000000
2009.000000
2277.000000
1797.000000
2153.000000
1433.000000
2081.000000
1961.000000
2073.000000
2085.000000
1993.000000
2337.000000
1489.000000
2061.000000
2005.000000
1953.000000
2077.000000
1813.000000
2073.000000
1461.000000
2033.000000
1853.000000
2085.000000
2285.000000
1509.000000
2201.000000
2177.000000
2149.000000
2349.000000
1637.000000
2253.000000
2341.000000
2145.000000
2369.000000
1989.000000
2153.000000
2337.000000
1785.000000
2357.000000
2273.000000
2193.000000
2189.000000
2197.000000
2165.000000
2041.000000
1997.000000
2041.000000
2097.000000
2033.000000
1957.000000
1865.000000
1937.000000
1969.000000
1873.000000
1833.000000
1837.000000
1849.000000
1913.000000
1825.000000
1805.000000
1741.000000
1801.000000
1841.000000
1825.000000
1713.000000
1713.000000
1757.000000
1769.000000
1765.000000
1673.000000
1665.000000
1733.000000
1753.000000
1753.000000
1973.000000
2593.000000
2341.000000
2449.000000
2857.000000
2613.000000
2269.000000
2793.000000
2753.000000
2921.000000
3153.000000
2921.000000
3049.000000
3209.000000
3733.000000
3521.000000
3345.000000
3581.000000
3097.000000
3529.000000
3201.000000
2985.000000
2869.000000
2785.000000
2669.000000
2473.000000
2417.000000
2393.000000
2425.000000
2361.000000
2289.000000
2253.000000
2205.000000
2257.000000
2185.000000
2141.000000
2077.000000
2109.000000
2141.000000
2105.000000
2049.000000
1977.000000
2009.000000
2021.000000
2025.000000
1953.000000
1925.000000
1945.000000
1989.000000
1945.000000
1885.000000
1869.000000
1877.000000
1937.000000
1901.000000
1849.000000
1789.000000
1821.000000
1869.000000
1821.000000
1785.000000
1737.000000
1805.000000
1853.000000
1817.000000
1805.000000
1689.000000
1685.000000
1789.000000
1473.000000
1585.000000
1341.000000
1837.000000
1641.000000
2025.000000
1709.000000
1941.000000
1509.000000
2033.000000
1485.000000
1905.000000
1749.000000
1897.000000
2125.000000
1677.000000
2029.000000
1433.000000
2049.000000
2013.000000
2041.000000
2149.000000
1885.000000
2225.000000
1721.000000
2265.000000
1477.000000
2085.000000
2069.000000
2049.000000
2269.000000
1685.000000
2097.000000
1777.000000
2153.000000
2229.000000
2097.000000
2245.000000
1549.000000
2233.000000
1661.000000
2129.000000
1849.000000
2077.000000
2357.000000
1893.000000
2237.000000
1929.000000
2157.000000
2361.000000
1969.000000
2277.000000
1601.000000
2293.000000
2201.000000
2241.000000
2369.000000
1641.000000
2321.000000
2413.000000
2221.000000
2369.000000
1777.000000
2373.000000
2409.000000
2217.000000
2401.000000
1589.000000
2369.000000
2529.000000
2197.000000
2417.000000
1581.000000
2309.000000
2409.000000
2085.000000
2325.000000
2301.000000
1929.000000
2381.000000
2321.000000
2217.000000
2177.000000
2053.000000
2277.000000
2177.000000
2097.000000
2017.000000
2065.000000
2053.000000
2033.000000
1961.000000
1873.000000
1909.000000
1917.000000
1897.000000
1841.000000
1757.000000
1809.000000
1833.000000
1845.000000
1741.000000
1737.000000
1757.000000
1797.000000
1789.000000
1685.000000
1665.000000
1689.000000
1737.000000
1729.000000
1681.000000
1645.000000
1653.000000
1689.000000
1685.000000
1621.000000
1605.000000
1645.000000
1689.000000
1649.000000
1581.000000
1549.000000
1589.000000
1657.000000
1613.000000
1561.000000
1509.000000
1577.000000
1597.000000
1593.000000
1509.000000
1481.000000
1553.000000
1585.000000
1593.000000
1481.000000
1481.000000
1493.000000
1541.000000
1537.000000
1509.000000
1465.000000
1501.000000
1549.000000
1497.000000
1457.000000
1437.000000
1477.000000
1537.000000
1541.000000
1469.000000
1473.000000
1501.000000
1385.000000
1505.000000
1213.000000
1277.000000
1049.000000
1193.000000
1401.000000
1465.000000
1633.000000
1513.000000
1717.000000
1565.000000
1513.000000
1569.000000
1745.000000
1505.000000
1805.000000
1233.000000
1769.000000
1693.000000
1849.000000
1957.000000
1601.000000
1905.000000
1409.000000
1993.000000
1589.000000
1797.000000
1953.000000
1857.000000
2117.000000
1749.000000
2005.000000
1349.000000
1969.000000
2097.000000
1881.000000
2097.000000
1721.000000
2109.000000
1509.000000
2065.000000
1613.000000
1937.000000
2133.000000
2009.000000
2157.000000
1621.000000
2057.000000
1369.000000
2133.000000
1653.000000
1977.000000
2089.000000
1801.000000
2181.000000
1593.000000
2033.000000
2097.000000
1997.000000
2197.000000
1649.000000
2105.000000
1681.000000
2101.000000
2261.000000
1689.000000
2153.000000
1893.000000
2109.000000
2321.000000
2153.000000
2073.000000
2193.000000
2209.000000
1973.000000
2217.000000
2161.000000
2061.000000
2097.000000
2113.000000
2073.000000
1973.000000
1921.000000
1949.000000
1961.000000
1957.000000
1829.000000
1809.000000
1821.000000
1849.000000
1849.000000
1753.000000
1753.000000
1749.000000
1805.000000
1761.000000
1733.000000
1657.000000
1717.000000
1769.000000
1705.000000
1685.000000
1633.000000
1669.000000
1709.000000
1693.000000
1665.000000
1613.000000
1677.000000
1689.000000
1697.000000
1921.000000
1921.000000
2713.000000
2409.000000
2825.000000
2965.000000
2849.000000
3029.000000
2929.000000
2897.000000
2953.000000
3425.000000
3321.000000
3561.000000
3465.000000
3025.000000
3005.000000
2689.000000
2617.000000
2517.000000
2365.000000
2241.000000
2233.000000
2277.000000
2173.000000
2069.000000
2001.000000
2041.000000
2073.000000
2001.000000
1921.000000
1845.000000
1877.000000
1929.000000
1905.000000
1845.000000
1765.000000
1821.000000
1829.000000
1805.000000
1761.000000
1717.000000
1769.000000
1813.000000
1797.000000
1721.000000
1673.000000
1705.000000
1741.000000
1737.000000
1633.000000
1605.000000
1653.000000
1701.000000
1697.000000
1645.000000
1645.000000
1657.000000
1693.000000
1625.000000
1717.000000
1997.000000
1985.000000
1673.000000
1869.000000
1461.000000
1997.000000
1505.000000
2061.000000
2057.000000
1917.000000
2029.000000
1813.000000
2085.000000
1553.000000
1997.000000
1969.000000
1877.000000
1753.000000
1897.000000
2021.000000
1809.000000
2093.000000
1709.000000
2117.000000
2069.000000
1925.000000
2157.000000
1773.000000
2097.000000
1425.000000
1949.000000
2049.000000
1845.000000
2077.000000
1625.000000
1997.000000
1729.000000
2053.000000
2165.000000
2009.000000
2141.000000
1589.000000
2213.000000
2273.000000
1781.000000
2169.000000
1577.000000
2117.000000
2233.000000
1605.000000
2157.000000
1445.000000
2137.000000
2293.000000
1637.000000
2193.000000
1741.000000
2145.000000
2217.000000
2017.000000
2169.000000
1609.000000
2181.000000
2025.000000
2021.000000
2037.000000
1785.000000
2189.000000
1621.000000
2161.000000
1937.000000
2001.000000
2245.000000
1597.000000
2201.000000
2093.000000
2125.000000
2293.000000
1837.000000
2209.000000
1969.000000
2077.000000
2297.000000
1621.000000
2165.000000
2237.000000
2021.000000
2309.000000
1785.000000
2125.000000
2225.000000
1901.000000
2197.000000
2301.000000
2205.000000
2125.000000
1765.000000
2145.000000
2177.000000
2097.000000
2037.000000
2105.000000
2057.000000
2041.000000
1949.000000
1913.000000
1929.000000
1957.000000
1921.000000
1857.000000
1833.000000
1837.000000
1865.000000
1865.000000
1801.000000
1725.000000
1753.000000
1837.000000
1805.000000
1741.000000
1693.000000
1733.000000
1769.000000
1765.000000
1705.000000
1657.000000
1685.000000
1713.000000
1729.000000
1621.000000
1605.000000
1649.000000
1709.000000
1653.000000
1633.000000
1581.000000
1605.000000
1677.000000
1641.000000
1633.000000
1545.000000
1589.000000
1637.000000
1625.000000
1557.000000
1501.000000
1597.000000
1601.000000
1621.000000
1513.000000
1481.000000
1529.000000
1557.000000
1573.000000
1485.000000
1505.000000
1513.000000
1677.000000
1405.000000
1553.000000
1229.000000
1369.000000
1149.000000
1317.000000
1221.000000
1589.000000
1241.000000
1737.000000
1613.000000
1585.000000
1585.000000
1545.000000
1625.000000
1593.000000
1761.000000
1353.000000
1813.000000
1349.000000
1845.000000
1425.000000
1793.000000
1945.000000
1453.000000
1933.000000
1613.000000
1773.000000
1953.000000
1677.000000
1961.000000
1329.000000
1893.000000
1325.000000
1973.000000
2065.000000
1553.000000
1965.000000
1409.000000
2073.000000
1513.000000
2009.000000
2073.000000
1709.000000
2145.000000
1629.000000
2005.000000
2013.000000
1829.000000
2109.000000
1457.000000
2005.000000
1397.000000
1941.000000
2157.000000
1873.000000
2105.000000
1633.000000
2053.000000
2169.000000
1833.000000
2169.000000
1405.000000
2149.000000
2261.000000
1917.000000
2197.000000
1433.000000
2177.000000
2317.000000
1749.000000
2205.000000
2197.000000
1933.000000
2293.000000
2085.000000
2097.000000
2173.000000
2197.000000
2149.000000
2049.000000
2129.000000
2057.000000
2057.000000
2077.000000
2061.000000
1953.000000
1889.000000
1913.000000
1937.000000
1921.000000
1861.000000
1805.000000
1841.000000
1853.000000
1841.000000
1777.000000
1737.000000
1773.000000
1797.000000
1821.000000
1725.000000
1681.000000
1709.000000
1757.000000
1765.000000
1661.000000
1673.000000
1665.000000
1713.000000
1693.000000
1649.000000
1593.000000
1621.000000
1689.000000
1641.000000
1633.000000
1565.000000
1629.000000
1665.000000
1637.000000
1613.000000
1533.000000
1593.000000
1633.000000
1641.000000
1565.000000
1533.000000
1601.000000
1593.000000
1601.000000
1517.000000
1493.000000
1529.000000
1577.000000
1589.000000
1541.000000
1309.000000
1477.000000
1221.000000
1357.000000
825.000000
1221.000000
1449.000000
1581.000000
1461.000000
1645.000000
1709.000000
1441.000000
1797.000000
1285.000000
1741.000000
1453.000000
1677.000000
1797.000000
1733.000000
1833.000000
1445.000000
1893.000000
1377.000000
1917.000000
1969.000000
1689.000000
2021.000000
1345.000000
2069.000000
1925.000000
1889.000000
2125.000000
1893.000000
2125.000000
1649.000000
1969.000000
1321.000000
1989.000000
1401.000000
1737.000000
1917.000000
1865.000000
1881.000000
1425.000000
1817.000000
1977.000000
1405.000000
2033.000000
1645.000000
1973.000000
2069.000000
1601.000000
2133.000000
1977.000000
1957.000000
2089.000000
1421.000000
2045.000000
2197.000000
1577.000000
2005.000000
2057.000000
1913.000000
2149.000000
1401.000000
2041.000000
2149.000000
1517.000000
2169.000000
2181.000000
1817.000000
2177.000000
1669.000000
2181.000000
2233.000000
1945.000000
2233.000000
1717.000000
2209.000000
2229.000000
1425.000000
2185.000000
2265.000000
2233.000000
1581.000000
2041.000000
2141.000000
2145.000000
2137.000000
2029.000000
1961.000000
1965.000000
1949.000000
2021.000000
1857.000000
1829.000000
1845.000000
1893.000000
1901.000000
1793.000000
1773.000000
1773.000000
1845.000000
1817.000000
1737.000000
2389.000000
2293.000000
2189.000000
2589.000000
2497.000000
2149.000000
2149.000000
2105.000000
2061.000000
1933.000000
2161.000000
2061.000000
2833.000000
2877.000000
2701.000000
3237.000000
3261.000000
2921.000000
2777.000000
2581.000000
2493.000000
2417.000000
2417.000000
2337.000000
2249.000000
2169.000000
2181.000000
2185.000000
2145.000000
2069.000000
1973.000000
1993.000000
1981.000000
2001.000000
1889.000000
1849.000000
1833.000000
1865.000000
1869.000000
1769.000000
1757.000000
1761.000000
1817.000000
1777.000000
1693.000000
1653.000000
1681.000000
1749.000000
1725.000000
1625.000000
1597.000000
1633.000000
1669.000000
1637.000000
1553.000000
1509.000000
1545.000000
1593.000000
1617.000000
1517.000000
1537.000000
1457.000000
1561.000000
1577.000000
2021.000000
1805.000000
2469.000000
2085.000000
2481.000000
1961.000000
2249.000000
1861.000000
2221.000000
2197.000000
2005.000000
2049.000000
2057.000000
2257.000000
2069.000000
2081.000000
2017.000000
2241.000000
1701.000000
2245.000000
2165.000000
2113.000000
2301.000000
2089.000000
2325.000000
1829.000000
2197.000000
1641.000000
2241.000000
1813.000000
2097.000000
2213.000000
1829.000000
2229.000000
1473.000000
2133.000000
2097.000000
1989.000000
2313.000000
1501.000000
2165.000000
1933.000000
2085.000000
2301.000000
2001.000000
2209.000000
1553.000000
2205.000000
1645.000000
2225.000000
2193.000000
2009.000000
2277.000000
1877.000000
2269.000000
1605.000000
2121.000000
2265.000000
1901.000000
2349.000000
1781.000000
2113.000000
2261.000000
2057.000000
2313.000000
1589.000000
2157.000000
2273.000000
1593.000000
2285.000000
2233.000000
1937.000000
2245.000000
2305.000000
2197.000000
2057.000000
2105.000000
2141.000000
2141.000000
2125.000000
2101.000000
2001.000000
1993.000000
2009.000000
1965.000000
1913.000000
1845.000000
1877.000000
1925.000000
1865.000000
1829.000000
1773.000000
1821.000000
1853.000000
1833.000000
1769.000000
1713.000000
1765.000000
1781.000000
1753.000000
1681.000000
1661.000000
1701.000000
1729.000000
1713.000000
1657.000000
1645.000000
1677.000000
1689.000000
1697.000000
1625.000000
1605.000000
1625.000000
1653.000000
1641.000000
1593.000000
1593.000000
1565.000000
1641.000000
1621.000000
1573.000000
1529.000000
1569.000000
1633.000000
1577.000000
1549.000000
1501.000000
1565.000000
1573.000000
1569.000000
1481.000000
1449.000000
1553.000000
1521.000000
1533.000000
1457.000000
1485.000000
1497.000000
1553.000000
1521.000000
1473.000000
1457.000000
1449.000000
1537.000000
1465.000000
1437.000000
1393.000000
1461.000000
1549.000000
1521.000000
1501.000000
1221.000000
1449.000000
1329.000000
1285.000000
1345.000000
929.000000
1425.000000
1385.000000
1737.000000
1325.000000
1693.000000
1397.000000
1769.000000
1185.000000
1685.000000
1741.000000
1509.000000
1865.000000
1305.000000
1765.000000
1213.000000
1853.000000
1405.000000
1877.000000
1945.000000
1661.000000
2017.000000
1581.000000
2025.000000
1289.000000
1877.000000
1385.000000
1917.000000
1713.000000
1857.000000
2009.000000
1769.000000
2125.000000
1565.000000
2077.000000
1809.000000
1961.000000
2221.000000
1865.000000
2121.000000
1529.000000
2097.000000
1345.000000
2069.000000
2117.000000
1853.000000
2129.000000
1461.000000
2109.000000
2113.000000
1873.000000
2205.000000
1593.000000
2157.000000
2173.000000
1977.000000
2237.000000
1513.000000
2233.000000
2237.000000
1837.000000
2237.000000
1533.000000
2209.000000
2233.000000
1757.000000
2225.000000
2257.000000
1573.000000
2133.000000
2097.000000
2153.000000
2137.000000
2093.000000
1997.000000
1941.000000
1969.000000
1941.000000
1941.000000
1853.000000
1829.000000
1829.000000
1893.000000
1857.000000
1753.000000
1753.000000
1761.000000
1829.000000
1765.000000
1725.000000
1649.000000
1713.000000
1737.000000
1725.000000
1665.000000
1625.000000
1661.000000
1697.000000
1685.000000
1849.000000
2633.000000
2453.000000
2441.000000
3101.000000
2877.000000
2569.000000
2497.000000
2389.000000
2617.000000
2533.000000
2781.000000
3561.000000
3293.000000
3453.000000
3605.000000
3185.000000
3057.000000
2949.000000
2825.000000
2621.000000
2557.000000
2481.000000
2489.000000
2349.000000
2217.000000
2161.000000
2157.000000
2169.000000
2069.000000
1993.000000
1893.000000
1917.000000
1949.000000
1885.000000
1849.000000
1789.000000
1813.000000
1845.000000
1781.000000
1697.000000
1657.000000
1693.000000
1745.000000
1669.000000
1605.000000
1561.000000
1629.000000
1649.000000
1597.000000
1561.000000
1529.000000
1553.000000
1617.000000
1573.000000
1509.000000
1453.000000
1521.000000
1521.000000
1509.000000
1437.000000
1345.000000
1449.000000
1461.000000
1453.000000
1389.000000
1397.000000
1441.000000
1501.000000
1349.000000
1417.000000
1149.000000
1289.000000
1033.000000
1241.000000
1213.000000
1613.000000
1353.000000
1693.000000
1357.000000
1629.000000
1093.000000
1677.000000
1821.000000
1561.000000
1785.000000
1281.000000
1813.000000
1373.000000
1853.000000
1265.000000
1813.000000
1873.000000
1817.000000
2037.000000
1533.000000
1965.000000
1449.000000
2089.000000
1449.000000
1969.000000
2009.000000
1845.000000
2153.000000
1673.000000
2117.000000
1285.000000
2037.000000
2121.000000
1949.000000
2097.000000
1633.000000
2057.000000
1421.000000
2017.000000
1525.000000
1865.000000
2033.000000
1833.000000
2113.000000
1429.000000
2017.000000
1789.000000
1957.000000
2169.000000
1701.000000
2061.000000
1365.000000
2217.000000
1913.000000
1857.000000
2061.000000
1633.000000
2229.000000
1301.000000
2037.000000
1933.000000
2129.000000
2253.000000
1885.000000
2121.000000
1261.000000
2033.000000
2225.000000
1973.000000
2149.000000
1617.000000
2213.000000
2225.000000
1841.000000
2181.000000
1465.000000
2193.000000
2253.000000
1929.000000
2169.000000
1401.000000
2161.000000
2281.000000
1925.000000
2157.000000
2113.000000
1937.000000
2225.000000
2177.000000
2065.000000
2001.000000
2037.000000
2017.000000
1989.000000
1865.000000
1833.000000
1853.000000
1889.000000
1845.000000
1773.000000
1737.000000
1769.000000
1817.000000
1749.000000
1689.000000
1677.000000
1717.000000
1737.000000
1665.000000
1657.000000
1601.000000
1681.000000
1689.000000
1657.000000
1577.000000
1549.000000
1589.000000
1633.000000
1589.000000
1545.000000
1501.000000
1561.000000
1577.000000
1545.000000
1497.000000
1481.000000
1529.000000
1565.000000
1501.000000
1457.000000
1449.000000
1505.000000
1521.000000
1509.000000
1433.000000
1417.000000
1477.000000
1505.000000
1473.000000
1413.000000
1401.000000
1473.000000
1501.000000
1477.000000
1421.000000
1405.000000
1437.000000
1473.000000
1457.000000
1425.000000
1393.000000
1437.000000
1497.000000
1445.000000
1385.000000
1381.000000
1421.000000
1485.000000
1413.000000
1353.000000
1337.000000
1381.000000
1429.000000
1417.000000
1369.000000
1365.000000
1417.000000
1453.000000
1237.000000
1253.000000
1129.000000
1185.000000
1305.000000
1117.000000
1013.000000
1465.000000
1657.000000
1525.000000
1685.000000
1325.000000
1629.000000
1193.000000
1729.000000
1101.000000
1677.000000
1537.000000
1705.000000
1781.000000
1713.000000
1869.000000
1357.000000
1925.000000
1401.000000
1957.000000
1709.000000
1841.000000
2045.000000
1793.000000
2073.000000
1653.000000
2021.000000
1193.000000
1989.000000
2033.000000
1729.000000
2057.000000
1485.000000
2097.000000
1321.000000
2045.000000
1881.000000
1793.000000
2121.000000
1577.000000
2021.000000
1345.000000
1945.000000
2121.000000
1761.000000
2025.000000
1237.000000
2017.000000
2021.000000
1965.000000
2101.000000
1445.000000
2077.000000
2173.000000
1881.000000
2097.000000
1645.000000
2065.000000
2249.000000
1769.000000
2129.000000
1985.000000
2045.000000
2221.000000
2193.000000
1957.000000
2093.000000
2097.000000
2093.000000
2013.000000
1925.000000
1873.000000
1925.000000
1925.000000
1869.000000
1781.000000
1745.000000
1797.000000
1801.000000
1785.000000
1689.000000
1649.000000
1713.000000
1737.000000
1701.000000
1629.000000
1633.000000
1649.000000
1693.000000
1629.000000
1581.000000
1581.000000
1625.000000
1669.000000
1605.000000
1585.000000
1549.000000
1593.000000
1625.000000
1593.000000
1533.000000
1505.000000
1565.000000
1581.000000
1549.000000
1493.000000
1477.000000
1529.000000
1549.000000
1549.000000
1469.000000
1469.000000
1481.000000
1533.000000
1493.000000
1441.000000
1425.000000
1489.000000
1525.000000
1477.000000
1417.000000
1369.000000
1465.000000
1473.000000
1441.000000
1397.000000
1389.000000
1461.000000
1449.000000
1445.000000
1385.000000
1389.000000
1449.000000
1465.000000
1449.000000
1389.000000
1365.000000
1389.000000
1413.000000
1421.000000
1365.000000
1385.000000
1433.000000
1485.000000
1241.000000
1305.000000
1017.000000
1193.000000
1169.000000
1185.000000
1289.000000
1525.000000
1697.000000
1549.000000
1681.000000
1161.000000
1633.000000
1473.000000
1757.000000
1765.000000
1445.000000
1753.000000
1277.000000
1813.000000
1361.000000
1725.000000
1077.000000
1753.000000
1733.000000
1645.000000
1809.000000
1413.000000
1881.000000
1357.000000
1897.000000
1261.000000
1869.000000
1953.000000
1893.000000
2073.000000
1589.000000
2025.000000
1437.000000
2057.000000
1733.000000
1773.000000
2017.000000
1545.000000
2021.000000
1377.000000
1869.000000
1917.000000
1885.000000
2101.000000
1525.000000
1969.000000
1873.000000
1881.000000
2153.000000
1369.000000
2013.000000
2017.000000
1925.000000
2197.000000
1845.000000
2105.000000
1689.000000
2029.000000
2213.000000
1589.000000
2117.000000
2033.000000
2009.000000
2265.000000
1549.000000
2077.000000
2129.000000
1961.000000
2101.000000
1105.000000
1797.000000
1997.000000
2101.000000
2213.000000
1809.000000
2037.000000
2069.000000
2097.000000
2037.000000
2013.000000
1997.000000
1877.000000
1897.000000
2321.000000
2329.000000
2109.000000
2045.000000
2221.000000
2305.000000
2261.000000
2033.000000
2253.000000
2813.000000
2625.000000
2665.000000
2949.000000
2661.000000
2685.000000
2649.000000
2537.000000
2373.000000
2341.000000
2401.000000
2397.000000
2221.000000
2145.000000
2073.000000
2161.000000
2121.000000
2121.000000
1933.000000
1949.000000
2013.000000
1941.000000
1893.000000
1693.000000
1837.000000
1921.000000
1845.000000
1833.000000
1749.000000
1753.000000
1785.000000
1773.000000
1881.000000
1649.000000
1673.000000
1745.000000
1741.000000
1673.000000
1601.000000
1621.000000
1677.000000
1693.000000
1629.000000
1585.000000
1549.000000
1621.000000
1629.000000
1561.000000
1493.000000
1525.000000
1589.000000
1593.000000
1549.000000
1501.000000
1497.000000
1541.000000
1557.000000
1533.000000
1493.000000
1457.000000
1509.000000
1525.000000
1501.000000
1473.000000
1265.000000
1545.000000
1097.000000
1357.000000
901.000000
1157.000000
1061.000000
1633.000000
1445.000000
1633.000000
1697.000000
1545.000000
1773.000000
1581.000000
1749.000000
1449.000000
1857.000000
1277.000000
1793.000000
1637.000000
1721.000000
1901.000000
1801.000000
1941.000000
1273.000000
1893.000000
1409.000000
1897.000000
1965.000000
1585.000000
1889.000000
1385.000000
1977.000000
1749.000000
1853.000000
1969.000000
1925.000000
2085.000000
1629.000000
1993.000000
1533.000000
2105.000000
1505.000000
2041.000000
2113.000000
1593.000000
2177.000000
1681.000000
2049.000000
2129.000000
1853.000000
2213.000000
1569.000000
2161.000000
2169.000000
1877.000000
2217.000000
1669.000000
2169.000000
2209.000000
1801.000000
2261.000000
1997.000000
2153.000000
2277.000000
1925.000000
2361.000000
2077.000000
2217.000000
2253.000000
2257.000000
2265.000000
2069.000000
2105.000000
2153.000000
2149.000000
2197.000000
2205.000000
2081.000000
1985.000000
2069.000000
2117.000000
2109.000000
2037.000000
1957.000000
1989.000000
1997.000000
2021.000000
1917.000000
1873.000000
1865.000000
1929.000000
1949.000000
1869.000000
1781.000000
1809.000000
1853.000000
1865.000000
1813.000000
1741.000000
1765.000000
1793.000000
1809.000000
1749.000000
1685.000000
1693.000000
1753.000000
1773.000000
1725.000000
1649.000000
1689.000000
1733.000000
1757.000000
1673.000000
1621.000000
1645.000000
1665.000000
1681.000000
1613.000000
1589.000000
1601.000000
1629.000000
1649.000000
1613.000000
1573.000000
1549.000000
1609.000000
1629.000000
1597.000000
1513.000000
1533.000000
1581.000000
1581.000000
1529.000000
1481.000000
1493.000000
1605.000000
1573.000000
1489.000000
1449.000000
1481.000000
1545.000000
1553.000000
1557.000000
1497.000000
1457.000000
1425.000000
1229.000000
1257.000000
1365.000000
1157.000000
1381.000000
1505.000000
1745.000000
1453.000000
1629.000000
1369.000000
1773.000000
1245.000000
1753.000000
1193.000000
1849.000000
1501.000000
1809.000000
1821.000000
1701.000000
1933.000000
1509.000000
1893.000000
1417.000000
1829.000000
2045.000000
1685.000000
1989.000000
1229.000000
1901.000000
2073.000000
1829.000000
2085.000000
1429.000000
2049.000000
1397.000000
2121.000000
2057.000000
1921.000000
2129.000000
1793.000000
2217.000000
1557.000000
2137.000000
1525.000000
2149.000000
2253.000000
1897.000000
2149.000000
1341.000000
2121.000000
2141.000000
1965.000000
2109.000000
1669.000000
2145.000000
1761.000000
2137.000000
1461.000000
2133.000000
2197.000000
2141.000000
2245.000000
1493.000000
2169.000000
2269.000000
2105.000000
2293.000000
1621.000000
2213.000000
2293.000000
2113.000000
2269.000000
1489.000000
2201.000000
2313.000000
2021.000000
2261.000000
2225.000000
2181.000000
2217.000000
2197.000000
2109.000000
1897.000000
1961.000000
2117.000000
2129.000000
2077.000000
1993.000000
1981.000000
2017.000000
2025.000000
1949.000000
1905.000000
1893.000000
1953.000000
1925.000000
1901.000000
1809.000000
1837.000000
1869.000000
1893.000000
1853.000000
1769.000000
1801.000000
1817.000000
1829.000000
1765.000000
1705.000000
1725.000000
1797.000000
1825.000000
1701.000000
1721.000000
1713.000000
1753.000000
1769.000000
1745.000000
1685.000000
1661.000000
1729.000000
1741.000000
1689.000000
1605.000000
1625.000000
1713.000000
1721.000000
1661.000000
1593.000000
1621.000000
1721.000000
1753.000000
1649.000000
1625.000000
1633.000000
1665.000000
1697.000000
1633.000000
1601.000000
1597.000000
1653.000000
1673.000000
1645.000000
1561.000000
1593.000000
1633.000000
1661.000000
1617.000000
1541.000000
1589.000000
1633.000000
1669.000000
1597.000000
1557.000000
1545.000000
1581.000000
1617.000000
1565.000000
1533.000000
1525.000000
1377.000000
1525.000000
1549.000000
2309.000000
1913.000000
1945.000000
2345.000000
2289.000000
2317.000000
1793.000000
2281.000000
1877.000000
2217.000000
2173.000000
2061.000000
1865.000000
2229.000000
2249.000000
1977.000000
2221.000000
2073.000000
2349.000000
1933.000000
2209.000000
1861.000000
2201.000000
2349.000000
1909.000000
2229.000000
1565.000000
2265.000000
2117.000000
2197.000000
2281.000000
1805.000000
2301.000000
1721.000000
2265.000000
1589.000000
2181.000000
2321.000000
2177.000000
2353.000000
1869.000000
2265.000000
1521.000000
2293.000000
2305.000000
2001.000000
2305.000000
1653.000000
2305.000000
2097.000000
2141.000000
2261.000000
2009.000000
2385.000000
1397.000000
2045.000000
2173.000000
2053.000000
2289.000000
1465.000000
2137.000000
2153.000000
2137.000000
2345.000000
1725.000000
2225.000000
2029.000000
2249.000000
2365.000000
1845.000000
2253.000000
1433.000000
2289.000000
2401.000000
1537.000000
2241.000000
2313.000000
2077.000000
2361.000000
2313.000000
2173.000000
2169.000000
2061.000000
2229.000000
2121.000000
2049.000000
2021.000000
2049.000000
2053.000000
1989.000000
1929.000000
1897.000000
1965.000000
1949.000000
1893.000000
1813.000000
1837.000000
1873.000000
1893.000000
1861.000000
1873.000000
2053.000000
2601.000000
2401.000000
2353.000000
2925.000000
2753.000000
2589.000000
2513.000000
2369.000000
2257.000000
2213.000000
2193.000000
2461.000000
2313.000000
2817.000000
3125.000000
3009.000000
3197.000000
3281.000000
3085.000000
2941.000000
2733.000000
2813.000000
2881.000000
2693.000000
3257.000000
3349.000000
3281.000000
3441.000000
3545.000000
3265.000000
3717.000000
3537.000000
3193.000000
2933.000000
2801.000000
2737.000000
2677.000000
2525.000000
2381.000000
2317.000000
2333.000000
2301.000000
2237.000000
2121.000000
2073.000000
2089.000000
2069.000000
2033.000000
1917.000000
1877.000000
1941.000000
1945.000000
1849.000000
1797.000000
1777.000000
1777.000000
1817.000000
1741.000000
1665.000000
1661.000000
1705.000000
1733.000000
1661.000000
1585.000000
1553.000000
1613.000000
1593.000000
1597.000000
1557.000000
1525.000000
1565.000000
1605.000000
1357.000000
1453.000000
1197.000000
1421.000000
1065.000000
1281.000000
1041.000000
1637.000000
1165.000000
1745.000000
1337.000000
1685.000000
1301.000000
1785.000000
1441.000000
1721.000000
1209.000000
1737.000000
1665.000000
1729.000000
1893.000000
1577.000000
1885.000000
1381.000000
1929.000000
1477.000000
1841.000000
1897.000000
1897.000000
2089.000000
1637.000000
2001.000000
1185.000000
2021.000000
2117.000000
1933.000000
2121.000000
1881.000000
2177.000000
1621.000000
1857.000000
1969.000000
1685.000000
2037.000000
1701.000000
2069.000000
1405.000000
1961.000000
1533.000000
2049.000000
2081.000000
1813.000000
2037.000000
1761.000000
2149.000000
1377.000000
2005.000000
1325.000000
1913.000000
1733.000000
1921.000000
2005.000000
1825.000000
2065.000000
1569.000000
2049.000000
1277.000000
1969.000000
2021.000000
2005.000000
2137.000000
1521.000000
2057.000000
1845.000000
2117.000000
2177.000000
1661.000000
2085.000000
2001.000000
2041.000000
2161.000000
1765.000000
2101.000000
1489.000000
2177.000000
2109.000000
1953.000000
2109.000000
1565.000000
2157.000000
2173.000000
1849.000000
2085.000000
2109.000000
2121.000000
1877.000000
1925.000000
1977.000000
1997.000000
2041.000000
1949.000000
1877.000000
1801.000000
1837.000000
1849.000000
1805.000000
1749.000000
1705.000000
1765.000000
1737.000000
1737.000000
1621.000000
1601.000000
1681.000000
1673.000000
1669.000000
1581.000000
1909.000000
1633.000000
2689.000000
2701.000000
2545.000000
2997.000000
2817.000000
2657.000000
2669.000000
3189.000000
3101.000000
3009.000000
3277.000000
3109.000000
3097.000000
3233.000000
3053.000000
2853.000000
2713.000000
2521.000000
2405.000000
2385.000000
2313.000000
2261.000000
2121.000000
2061.000000
2057.000000
2081.000000
2005.000000
1865.000000
1825.000000
1849.000000
1893.000000
1821.000000
1745.000000
1705.000000
1721.000000
1777.000000
1717.000000
1665.000000
1625.000000
1649.000000
1665.000000
1653.000000
1553.000000
1533.000000
1593.000000
1613.000000
1577.000000
1497.000000
1485.000000
1517.000000
1585.000000
1537.000000
1477.000000
1441.000000
1505.000000
1553.000000
1529.000000
1477.000000
1441.000000
1473.000000
1553.000000
1509.000000
1437.000000
1433.000000
1537.000000
1505.000000
1493.000000
1449.000000
1417.000000
1481.000000
1521.000000
1525.000000
1429.000000
1405.000000
1549.000000
1369.000000
1465.000000
1117.000000
1301.000000
1421.000000
1729.000000
1569.000000
1705.000000
1329.000000
1685.000000
1393.000000
1729.000000
1289.000000
1661.000000
1341.000000
1813.000000
1529.000000
1845.000000
1397.000000
1853.000000
1941.000000
1753.000000
1797.000000
1721.000000
1949.000000
1485.000000
1893.000000
1177.000000
1813.000000
1969.000000
1837.000000
2061.000000
1621.000000
2001.000000
1737.000000
1969.000000
1973.000000
1877.000000
2085.000000
1429.000000
2041.000000
1529.000000
1877.000000
1933.000000
1741.000000
2061.000000
1597.000000
2025.000000
1273.000000
1993.000000
2081.000000
1725.000000
1993.000000
1289.000000
2001.000000
1461.000000
2025.000000
1641.000000
1849.000000
2129.000000
1677.000000
2101.000000
1649.000000
2009.000000
1209.000000
2049.000000
2161.000000
1825.000000
2081.000000
1805.000000
2121.000000
1729.000000
1969.000000
1885.000000
2013.000000
2213.000000
1829.000000
2085.000000
1297.000000
2085.000000
2221.000000
1869.000000
2173.000000
1393.000000
2161.000000
1953.000000
2161.000000
2213.000000
1737.000000
2237.000000
1813.000000
2213.000000
2209.000000
2161.000000
1969.000000
2133.000000
2165.000000
2069.000000
1957.000000
1977.000000
2037.000000
1997.000000
1897.000000
1837.000000
1881.000000
1901.000000
1865.000000
1797.000000
1765.000000
1781.000000
1813.000000
1797.000000
1713.000000
1669.000000
1721.000000
1753.000000
1725.000000
1641.000000
1625.000000
1641.000000
1693.000000
1689.000000
1609.000000
1565.000000
1577.000000
1657.000000
1609.000000
1569.000000
1537.000000
1597.000000
1601.000000
1593.000000
1537.000000
1517.000000
1545.000000
1589.000000
1597.000000
1553.000000
1493.000000
1521.000000
1553.000000
1569.000000
1501.000000
1489.000000
1505.000000
1577.000000
1557.000000
1493.000000
1485.000000
1509.000000
1537.000000
1525.000000
1449.000000
1417.000000
1465.000000
1517.000000
1561.000000
1437.000000
1213.000000
1417.000000
1113.000000
1289.000000
689.000000
1225.000000
1237.000000
1705.000000
1185.000000
1617.000000
1257.000000
1577.000000
1745.000000
1513.000000
1633.000000
1373.000000
1757.000000
1277.000000
1837.000000
1785.000000
1709.000000
1825.000000
1769.000000
2013.000000
1613.000000
1941.000000
1645.000000
2069.000000
1373.000000
1829.000000
1841.000000
1829.000000
2085.000000
1329.000000
1897.000000
1441.000000
1869.000000
1609.000000
1897.000000
1981.000000
1361.000000
1969.000000
1493.000000
1917.000000
1969.000000
1565.000000
1989.000000
1225.000000
2097.000000
1729.000000
1989.000000
2093.000000
1729.000000
2129.000000
1305.000000
2001.000000
1961.000000
2001.000000
2101.000000
1961.000000
2093.000000
1785.000000
2241.000000
1601.000000
2209.000000
1537.000000
2189.000000
2329.000000
1777.000000
2225.000000
1501.000000
2181.000000
2417.000000
1933.000000
2265.000000
1457.000000
2277.000000
2373.000000
2017.000000
2265.000000
2173.000000
2081.000000
2269.000000
2213.000000
2129.000000
1921.000000
2049.000000
2093.000000
2049.000000
1965.000000
1913.000000
1925.000000
1949.000000
1929.000000
1841.000000
1773.000000
1813.000000
1869.000000
1841.000000
1777.000000
1693.000000
1725.000000
1781.000000
1785.000000
1693.000000
1677.000000
1701.000000
1745.000000
1741.000000
1649.000000
1621.000000
1609.000000
1689.000000
1697.000000
1629.000000
1589.000000
1613.000000
1661.000000
1669.000000
1573.000000
1577.000000
1593.000000
1661.000000
1613.000000
1585.000000
1517.000000
1585.000000
1593.000000
1585.000000
1565.000000
1513.000000
1529.000000
1573.000000
1593.000000
1529.000000
1485.000000
1533.000000
1577.000000
1569.000000
1509.000000
1481.000000
1501.000000
1549.000000
1549.000000
1497.000000
1481.000000
1465.000000
1533.000000
1561.000000
1457.000000
1449.000000
1409.000000
1497.000000
1493.000000
1497.000000
1449.000000
1481.000000
1553.000000
1253.000000
1417.000000
1001.000000
1233.000000
937.000000
1313.000000
1293.000000
1613.000000
1373.000000
1717.000000
1433.000000
1677.000000
1217.000000
1709.000000
1365.000000
1809.000000
1245.000000
1705.000000
1373.000000
1837.000000
1685.000000
1761.000000
1825.000000
1429.000000
1893.000000
1585.000000
1993.000000
1073.000000
1893.000000
2077.000000
1569.000000
1941.000000
1185.000000
1929.000000
1961.000000
1997.000000
2021.000000
1745.000000
2005.000000
1549.000000
2077.000000
1449.000000
1861.000000
2005.000000
1901.000000
2109.000000
1653.000000
2001.000000
1541.000000
2021.000000
1905.000000
1869.000000
2057.000000
1333.000000
2053.000000
1717.000000
1953.000000
2061.000000
1697.000000
2117.000000
1613.000000
2081.000000
2005.000000
1773.000000
2149.000000
1945.000000
2029.000000
2077.000000
1457.000000
2137.000000
2161.000000
1949.000000
2085.000000
1429.000000
2161.000000
2217.000000
1809.000000
2125.000000
1577.000000
2141.000000
2241.000000
2033.000000
1993.000000
2105.000000
2133.000000
1765.000000
2053.000000
2013.000000
1993.000000
2053.000000
1937.000000
1989.000000
1949.000000
1909.000000
1933.000000
1949.000000
1881.000000
1789.000000
1821.000000
2053.000000
2445.000000
2357.000000
2181.000000
2621.000000
2501.000000
2293.000000
2133.000000
2061.000000
1973.000000
1997.000000
1985.000000
1885.000000
1965.000000
1997.000000
2077.000000
2793.000000
2793.000000
2521.000000
2777.000000
2689.000000
2489.000000
2269.000000
2157.000000
2105.000000
2149.000000
2089.000000
1985.000000
1945.000000
1921.000000
1973.000000
1993.000000
1909.000000
1829.000000
1829.000000
1869.000000
1889.000000
1801.000000
1745.000000
1753.000000
1797.000000
1785.000000
1737.000000
1673.000000
1689.000000
1701.000000
1753.000000
1689.000000
1629.000000
1641.000000
1665.000000
1717.000000
1633.000000
1593.000000
1585.000000
1649.000000
1657.000000
1601.000000
1573.000000
1561.000000
1613.000000
1629.000000
1557.000000
1509.000000
1541.000000
1577.000000
1597.000000
1529.000000
1485.000000
1469.000000
1529.000000
1569.000000
1513.000000
1477.000000
1501.000000
1597.000000
1385.000000
1561.000000
1133.000000
1341.000000
1077.000000
1401.000000
1397.000000
1685.000000
1485.000000
1729.000000
1553.000000
1733.000000
1381.000000
1713.000000
1257.000000
1833.000000
1269.000000
1777.000000
1349.000000
1841.000000
1529.000000
1761.000000
1733.000000
1693.000000
1593.000000
1865.000000
1973.000000
1705.000000
1913.000000
1573.000000
2037.000000
1453.000000
1917.000000
1337.000000
1961.000000
1897.000000
1753.000000
1913.000000
1349.000000
1917.000000
1301.000000
1985.000000
1909.000000
1873.000000
1981.000000
1969.000000
2069.000000
1421.000000
2037.000000
1577.000000
2053.000000
1977.000000
1797.000000
2029.000000
1681.000000
2153.000000
1493.000000
2049.000000
1917.000000
1953.000000
2169.000000
1661.000000
2017.000000
1333.000000
2013.000000
2173.000000
2025.000000
2161.000000
1601.000000
2177.000000
1793.000000
2177.000000
2185.000000
1977.000000
2301.000000
1477.000000
2189.000000
1989.000000
2101.000000
2341.000000
1549.000000
2257.000000
2245.000000
1993.000000
2281.000000
2073.000000
2125.000000
2189.000000
2169.000000
2177.000000
2213.000000
2109.000000
2025.000000
2001.000000
2025.000000
2037.000000
1969.000000
1917.000000
1873.000000
1921.000000
1929.000000
1901.000000
1837.000000
1797.000000
1857.000000
1885.000000
1865.000000
1753.000000
1773.000000
1781.000000
1801.000000
1761.000000
1721.000000
1737.000000
1753.000000
1813.000000
1737.000000
1665.000000
1653.000000
1693.000000
1733.000000
1685.000000
1641.000000
1617.000000
1681.000000
1689.000000
1661.000000
1593.000000
1573.000000
1637.000000
1673.000000
1657.000000
1577.000000
1605.000000
1593.000000
1873.000000
2185.000000
2769.000000
2545.000000
2909.000000
3289.000000
2989.000000
2741.000000
2565.000000
2573.000000
2837.000000
2917.000000
3785.000000
3581.000000
3441.000000
3953.000000
3813.000000
3201.000000
3025.000000
2977.000000
2889.000000
2773.000000
2581.000000
2533.000000
2489.000000
2469.000000
2385.000000
2257.000000
2229.000000
2205.000000
2217.000000
2145.000000
2053.000000
1997.000000
2029.000000
2045.000000
1973.000000
1901.000000
1833.000000
1865.000000
1873.000000
1845.000000
1749.000000
1753.000000
1737.000000
1765.000000
1717.000000
1621.000000
1637.000000
1661.000000
1741.000000
1693.000000
1473.000000
1465.000000
1493.000000
1365.000000
1341.000000
1169.000000
1209.000000
1669.000000
1737.000000
1769.000000
1657.000000
1529.000000
1721.000000
1757.000000
1761.000000
1709.000000
1813.000000
1665.000000
1965.000000
1501.000000
1893.000000
1389.000000
1897.000000
1265.000000
1837.000000
1417.000000
1733.000000
1889.000000
1805.000000
2001.000000
1617.000000
1945.000000
1305.000000
1977.000000
1669.000000
1833.000000
1929.000000
1833.000000
2069.000000
1617.000000
1925.000000
1097.000000
1941.000000
1649.000000
1885.000000
1985.000000
1749.000000
2077.000000
1825.000000
2141.000000
1301.000000
1997.000000
1529.000000
2005.000000
1793.000000
1941.000000
2025.000000
1625.000000
2041.000000
1529.000000
2077.000000
1269.000000
2001.000000
2069.000000
2057.000000
2145.000000
1581.000000
2133.000000
1653.000000
21
gitextract_qiq5bcio/ ├── .github/ │ └── workflows/ │ └── build.yml ├── .gitignore ├── .travis.yml ├── AUTHORS ├── LICENSE ├── MANIFEST.in ├── README.md ├── README.rst ├── conda.recipe/ │ └── meta.yaml ├── data/ │ ├── ecg0606_1.csv │ └── insect.txt ├── jupyter/ │ ├── discord.ipynb │ ├── distance.ipynb │ ├── hotsax.ipynb │ ├── insect.ipynb │ ├── paa.ipynb │ ├── sax.ipynb │ ├── str_func.ipynb │ ├── tinkah.ipynb │ ├── visit_registry.ipynb │ ├── vsm.ipynb │ └── znorm.ipynb ├── requirements.txt ├── resources/ │ └── data/ │ ├── Gun_Point/ │ │ ├── Gun_Point_TEST │ │ └── Gun_Point_TRAIN │ └── cbf/ │ ├── CBF_TEST │ └── CBF_TRAIN ├── saxpy/ │ ├── __init__.py │ ├── alphabet.py │ ├── discord.py │ ├── distance.py │ ├── hotsax.py │ ├── paa.py │ ├── sax.py │ ├── saxvsm.py │ ├── strfunc.py │ ├── util.py │ ├── visit_registry.py │ └── znorm.py ├── setup.cfg ├── setup.py ├── site/ │ └── citation.bib ├── tests/ │ ├── test_cuts.py │ ├── test_discord_bruteforce.py │ ├── test_discord_hotsax.py │ ├── test_distance.py │ ├── test_doctests.py │ ├── test_paa.py │ ├── test_registry.py │ ├── test_sax_chunking.py │ ├── test_sax_window.py │ ├── test_str.py │ ├── test_ts2string.py │ ├── test_vsm.py │ └── test_znorm.py └── tox.ini
SYMBOL INDEX (52 symbols across 24 files)
FILE: saxpy/alphabet.py
function cuts_for_asize (line 5) | def cuts_for_asize(a_size):
FILE: saxpy/discord.py
function find_discords_brute_force (line 8) | def find_discords_brute_force(series, win_size, num_discords=2, znorm_th...
function find_best_discord_brute_force (line 34) | def find_best_discord_brute_force(series, win_size, global_registry, zno...
FILE: saxpy/distance.py
function euclidean (line 5) | def euclidean(a, b):
function early_abandoned_euclidean (line 10) | def early_abandoned_euclidean(a, b, upper_limit):
FILE: saxpy/hotsax.py
function find_discords_hotsax (line 8) | def find_discords_hotsax(series, win_size=100, num_discords=2, alphabet_...
function find_best_discord_hotsax (line 48) | def find_best_discord_hotsax(series, win_size, global_registry, sax_data...
FILE: saxpy/paa.py
function paa (line 6) | def paa(series, paa_segment_size, sax_type='unidim'):
FILE: saxpy/sax.py
function get_sax_list (line 12) | def get_sax_list(series, cuts):
function ts_to_string (line 45) | def ts_to_string(series, cuts):
function is_mindist_zero (line 78) | def is_mindist_zero(a, b):
function sax_by_chunking (line 89) | def sax_by_chunking(series, paa_size, alphabet_size=3, znorm_threshold=0...
function sax_via_window (line 96) | def sax_via_window(series, win_size, paa_size, alphabet_size=3,
FILE: saxpy/saxvsm.py
function series_to_wordbag (line 7) | def series_to_wordbag(series, win_size, paa_size, alphabet_size=3,
function manyseries_to_wordbag (line 20) | def manyseries_to_wordbag(series_npmatrix, win_size, paa_size, alphabet_...
function bags_to_tfidf (line 38) | def bags_to_tfidf(bags_dict):
function tfidf_to_vector (line 91) | def tfidf_to_vector(tfidf, vector_label):
function cosine_measure (line 103) | def cosine_measure(weight_vec, test_bag):
function cosine_similarity (line 118) | def cosine_similarity(tfidf, test_bag):
function class_for_bag (line 127) | def class_for_bag(similarity_dict):
FILE: saxpy/strfunc.py
function idx2letter (line 4) | def idx2letter(idx):
FILE: saxpy/util.py
function read_ucr_data (line 5) | def read_ucr_data(fname):
FILE: saxpy/visit_registry.py
class VisitRegistry (line 6) | class VisitRegistry:
method __init__ (line 9) | def __init__(self, capacity=0):
method get_unvisited_count (line 15) | def get_unvisited_count(self):
method mark_visited (line 19) | def mark_visited(self, index):
method mark_visited_range (line 23) | def mark_visited_range(self, start, stop):
method get_next_unvisited (line 28) | def get_next_unvisited(self):
method clone (line 35) | def clone(self):
FILE: saxpy/znorm.py
function l2norm (line 9) | def l2norm(array):
function znorm (line 25) | def znorm(series, znorm_threshold=0.01):
FILE: tests/test_cuts.py
function test_sizing (line 5) | def test_sizing():
FILE: tests/test_discord_bruteforce.py
function test_brute_force (line 6) | def test_brute_force():
FILE: tests/test_discord_hotsax.py
function test_brute_force (line 6) | def test_brute_force():
FILE: tests/test_distance.py
function test_euclidean (line 7) | def test_euclidean():
function test_early_abandoned (line 17) | def test_early_abandoned():
FILE: tests/test_doctests.py
function run_doctests (line 6) | def run_doctests(module):
function test_paa_doctests (line 21) | def test_paa_doctests():
function test_sax_doctests (line 25) | def test_sax_doctests():
function test_znorm_doctests (line 29) | def test_znorm_doctests():
FILE: tests/test_paa.py
function test_paa1 (line 6) | def test_paa1():
function test_paa2 (line 15) | def test_paa2():
function test_paa3 (line 27) | def test_paa3():
FILE: tests/test_registry.py
function test_sizing (line 6) | def test_sizing():
FILE: tests/test_sax_chunking.py
function test_chunking (line 6) | def test_chunking():
FILE: tests/test_sax_window.py
function test_via_window (line 6) | def test_via_window():
FILE: tests/test_str.py
function test_sizing (line 6) | def test_sizing():
FILE: tests/test_ts2string.py
function test_stringing (line 7) | def test_stringing():
function test_mindist (line 22) | def test_mindist():
FILE: tests/test_vsm.py
function test_series_to_wordbag (line 9) | def test_series_to_wordbag():
function test_vsm (line 44) | def test_vsm():
FILE: tests/test_znorm.py
function test_znorm (line 7) | def test_znorm():
Condensed preview — 56 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,089K chars).
[
{
"path": ".github/workflows/build.yml",
"chars": 673,
"preview": "name: Python package\n\non:\n - push\n - pull_request\n\njobs:\n build:\n runs-on: ${{ matrix.platform }}\n strategy:\n "
},
{
"path": ".gitignore",
"chars": 168,
"preview": ".idea/workspace.xml\nbuild/\ndist/\n_build/\n_generate/\n.cache*\n.tox*\n.eggs*\nChangeLog\n*.so\n*.py[cod]\n*.egg-info\n.coverage\n."
},
{
"path": ".travis.yml",
"chars": 1027,
"preview": "sudo: false\nlanguage: python\npython:\n\n - \"3.7\"\ninstall: pip install tox-travis numpy pytest-cov codecov sklearn scipy\n\n"
},
{
"path": "AUTHORS",
"chars": 194,
"preview": "Ameya Daigavane <ameya.d.98@gmail.com>\nAmeya Daigavane <ameya.s.daigavane@jpl.nasa.gov>\nPavel Senin <ps1000258515@c02tt2"
},
{
"path": "LICENSE",
"chars": 18026,
"preview": "GNU GENERAL PUBLIC LICENSE\n Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundati"
},
{
"path": "MANIFEST.in",
"chars": 16,
"preview": "include LICENSE\n"
},
{
"path": "README.md",
"chars": 9456,
"preview": "Time series symbolic discretization with SAX\n====\n[](http"
},
{
"path": "README.rst",
"chars": 3394,
"preview": "Time series symbolic discretization with SAX\n=============================================\n\n.. image:: https://img.shiel"
},
{
"path": "conda.recipe/meta.yaml",
"chars": 648,
"preview": "package:\n name: saxpy\n version: 0.1.0\n\nbuild:\n # If the installation is complex, or different between Unix and Window"
},
{
"path": "data/ecg0606_1.csv",
"chars": 14602,
"preview": "-6.095\n-6.095\n-6.1\n-6.1\n-6.095\n-6.095\n-6.1\n-6.105\n-6.105\n-6.115\n-6.105\n-6.1\n-6.095\n-6.09\n-6.08\n-6.075\n-6.065\n-6.06\n-6.03"
},
{
"path": "data/insect.txt",
"chars": 242456,
"preview": "629.000000\r\n1217.000000\r\n833.000000\r\n1173.000000\r\n965.000000\r\n961.000000\r\n1105.000000\r\n981.000000\r\n1141.000000\r\n1057.000"
},
{
"path": "jupyter/discord.ipynb",
"chars": 36579,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\":"
},
{
"path": "jupyter/distance.ipynb",
"chars": 3217,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\":"
},
{
"path": "jupyter/hotsax.ipynb",
"chars": 36608,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\":"
},
{
"path": "jupyter/insect.ipynb",
"chars": 59084,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 5,\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\":"
},
{
"path": "jupyter/paa.ipynb",
"chars": 13256,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "jupyter/sax.ipynb",
"chars": 28803,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\":"
},
{
"path": "jupyter/str_func.ipynb",
"chars": 2995,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\":"
},
{
"path": "jupyter/tinkah.ipynb",
"chars": 4808,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "jupyter/visit_registry.ipynb",
"chars": 2235,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"metadata\": {},\n \"outputs\": [],\n \"source\": "
},
{
"path": "jupyter/vsm.ipynb",
"chars": 97796,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": false\n },\n \"out"
},
{
"path": "jupyter/znorm.ipynb",
"chars": 3725,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"collapsed\": true\n },\n \"outp"
},
{
"path": "requirements.txt",
"chars": 51,
"preview": "numpy\npytest\npytest-cov\ncodecov\nscikit-learn\nscipy\n"
},
{
"path": "resources/data/Gun_Point/Gun_Point_TEST",
"chars": 362696,
"preview": "1.0000000e+000 -1.1250133e+000 -1.1313383e+000 -1.1382884e+000 -1.1466873e+000 -1.1386387e+000 -1.1414312e+000 -1.143690"
},
{
"path": "resources/data/Gun_Point/Gun_Point_TRAIN",
"chars": 120898,
"preview": " 2.0000000e+000 -6.4788540e-001 -6.4199155e-001 -6.3818632e-001 -6.3825875e-001 -6.3834515e-001 -6.3869741e-001 -6.4304"
},
{
"path": "resources/data/cbf/CBF_TEST",
"chars": 1859396,
"preview": "2.0000000e+000 -1.5172029e+000 -3.3271582e-001 -1.2521944e-001 -3.1039752e-001 -1.3724254e-001 2.8504921e-001 -1.116706"
},
{
"path": "resources/data/cbf/CBF_TRAIN",
"chars": 61978,
"preview": " 1.0000000e+000 -4.6427649e-001 -5.5504787e-001 -8.4284310e-001 -8.6589548e-001 -9.3639631e-001 -8.1726995e-001 -2.6361"
},
{
"path": "saxpy/__init__.py",
"chars": 114,
"preview": "\"\"\"SAX stack implementation.\"\"\"\n\n__version__ = '0.1.0'\n__author__ = 'Pavel Senin <seninp@gmail.com>'\n__all__ = []\n"
},
{
"path": "saxpy/alphabet.py",
"chars": 5746,
"preview": "\"\"\"Implements Alphabet cuts.\"\"\"\nimport numpy as np\n\n\ndef cuts_for_asize(a_size):\n \"\"\"Generate a set of alphabet cuts "
},
{
"path": "saxpy/discord.py",
"chars": 2356,
"preview": "\"\"\"Discord discovery routines.\"\"\"\nimport numpy as np\nfrom saxpy.visit_registry import VisitRegistry\nfrom saxpy.distance "
},
{
"path": "saxpy/distance.py",
"chars": 479,
"preview": "\"\"\"Distance computation.\"\"\"\nimport numpy as np\n\n\ndef euclidean(a, b):\n \"\"\"Compute a Euclidean distance value.\"\"\"\n "
},
{
"path": "saxpy/hotsax.py",
"chars": 4857,
"preview": "\"\"\"Implements HOT-SAX.\"\"\"\nimport numpy as np\nfrom saxpy.znorm import znorm\nfrom saxpy.sax import sax_via_window\nfrom sax"
},
{
"path": "saxpy/paa.py",
"chars": 1646,
"preview": "\"\"\"Implements PAA.\"\"\"\nfrom __future__ import division\nimport numpy as np\n\n\ndef paa(series, paa_segment_size, sax_type='u"
},
{
"path": "saxpy/sax.py",
"chars": 8892,
"preview": "\"\"\"Converts a normlized timeseries to SAX symbols.\"\"\"\nfrom collections import defaultdict\nfrom saxpy.strfunc import idx2"
},
{
"path": "saxpy/saxvsm.py",
"chars": 3567,
"preview": "\"\"\"Implements VSM.\"\"\"\nimport math\nimport numpy as np\nfrom saxpy.sax import sax_via_window\n\n\ndef series_to_wordbag(series"
},
{
"path": "saxpy/strfunc.py",
"chars": 240,
"preview": "\"\"\"Convert a normlized timeseries to SAX symbols.\"\"\"\n\n\ndef idx2letter(idx):\n \"\"\"Convert a numerical index to a char.\""
},
{
"path": "saxpy/util.py",
"chars": 766,
"preview": "\"\"\"Some helpers.\"\"\"\nimport re\n\n\ndef read_ucr_data(fname):\n data = []\n\n with open(fname, 'r') as fp:\n read_l"
},
{
"path": "saxpy/visit_registry.py",
"chars": 1058,
"preview": "\"\"\"Keeps visited indexes in check.\"\"\"\nimport numpy as np\nimport random\n\n\nclass VisitRegistry:\n \"\"\"A straightforward v"
},
{
"path": "saxpy/znorm.py",
"chars": 1808,
"preview": "\"\"\"Implements znorm.\"\"\"\n\nfrom __future__ import division\nimport numpy as np\nfrom scipy.linalg import sqrtm\nfrom scipy.li"
},
{
"path": "setup.cfg",
"chars": 522,
"preview": "[metadata]\nname = saxpy\nversion=1.0.1\nauthor = Pavel Senin\nauthor-email = seninp@gmail.org\nsummary = SAX, HOTSAX, EMMA i"
},
{
"path": "setup.py",
"chars": 157,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"building saxpy.\"\"\"\n\nfrom setuptools import setup\n\nsetup(\n setup_requires=['pbr>=5.8.0', 's"
},
{
"path": "site/citation.bib",
"chars": 683,
"preview": "@article{senin2018grammarviz,\n author = {Senin, Pavel and Lin, Jessica and Wang, Xing and Oates, Tim and Gandhi, Sunil a"
},
{
"path": "tests/test_cuts.py",
"chars": 192,
"preview": "\"\"\"Testing PAA implementation.\"\"\"\nfrom saxpy import alphabet\n\n\ndef test_sizing():\n \"\"\"Test alphabet sizes.\"\"\"\n for"
},
{
"path": "tests/test_discord_bruteforce.py",
"chars": 383,
"preview": "\"\"\"Testing brute force discord search implementation.\"\"\"\nimport numpy as np\nfrom saxpy.discord import find_discords_brut"
},
{
"path": "tests/test_discord_hotsax.py",
"chars": 471,
"preview": "\"\"\"Testing HOTSAX discord search implementation.\"\"\"\nimport numpy as np\nfrom saxpy.hotsax import find_discords_hotsax\n\n\nd"
},
{
"path": "tests/test_distance.py",
"chars": 937,
"preview": "\"\"\"Testing PAA implementation.\"\"\"\nimport pytest\nimport numpy as np\nfrom saxpy import distance\n\n\ndef test_euclidean():\n "
},
{
"path": "tests/test_doctests.py",
"chars": 887,
"preview": "import doctest\nimport warnings\nfrom sklearn.exceptions import ConvergenceWarning\nfrom saxpy import paa, sax, znorm\n\ndef "
},
{
"path": "tests/test_paa.py",
"chars": 1611,
"preview": "\"\"\"Testing PAA implementation.\"\"\"\nimport numpy as np\nfrom saxpy import paa\n\n\ndef test_paa1():\n \"\"\"Test points to poin"
},
{
"path": "tests/test_registry.py",
"chars": 675,
"preview": "\"\"\"Testing PAA implementation.\"\"\"\nimport numpy as np\nfrom saxpy.visit_registry import VisitRegistry\n\n\ndef test_sizing():"
},
{
"path": "tests/test_sax_chunking.py",
"chars": 925,
"preview": "\"\"\"Testing SAX implementation.\"\"\"\nimport numpy as np\nfrom saxpy.sax import sax_by_chunking\n\n\ndef test_chunking():\n \"\""
},
{
"path": "tests/test_sax_window.py",
"chars": 2001,
"preview": "\"\"\"Testing SAX implementation.\"\"\"\nimport numpy as np\nfrom saxpy.sax import sax_via_window\n\n\ndef test_via_window():\n \""
},
{
"path": "tests/test_str.py",
"chars": 383,
"preview": "\"\"\"Testing STR functions.\"\"\"\nimport pytest\nfrom saxpy.strfunc import idx2letter\n\n\ndef test_sizing():\n \"\"\"Test idx to "
},
{
"path": "tests/test_ts2string.py",
"chars": 1020,
"preview": "\"\"\"Testing PAA implementation.\"\"\"\nimport numpy as np\nfrom saxpy import alphabet\nfrom saxpy import sax\n\n\ndef test_stringi"
},
{
"path": "tests/test_vsm.py",
"chars": 2420,
"preview": "\"\"\"Testing SAX implementation.\"\"\"\nimport numpy as np\nfrom saxpy.sax import sax_via_window\nfrom saxpy.saxvsm import serie"
},
{
"path": "tests/test_znorm.py",
"chars": 733,
"preview": "\"\"\"Testing znorm implementation.\"\"\"\nimport pytest\nfrom numpy import array, std, mean\nfrom saxpy import znorm\n\n\ndef test_"
},
{
"path": "tox.ini",
"chars": 337,
"preview": "[tox]\nenvlist = py{310,311,312}-{linux,macos,windows}\n\n[gh-actions]\npython =\n 3.10: py310\n 3.11: py311, mypy\n 3"
}
]
About this extraction
This page contains the full source code of the seninp/saxpy GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 56 files (2.9 MB), approximately 760.0k tokens, and a symbol index with 52 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.