Showing preview only (5,931K chars total). Download the full file or copy to clipboard to get everything.
Repository: urschrei/simplification
Branch: master
Commit: 0d8ed7f793ba
Files: 23
Total size: 5.7 MB
Directory structure:
gitextract_w7ya3lpo/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── dependabot.yml
│ └── workflows/
│ └── wheels.yml
├── .gitignore
├── CITATION.cff
├── CMakeLists.txt
├── LICENSE.md
├── README.md
├── benchmark_runner.py
├── pyproject.toml
├── src/
│ └── simplification/
│ ├── __init__.py
│ ├── cutil.pyx
│ ├── rdp_p.pxd
│ ├── stdbool.h
│ └── util.py
└── tests/
├── coords.json
├── coords_complex.json
├── cprofile_rust_cython.py
├── cprofile_rust_cython_complex.py
├── cprofile_rust_cython_shapely.py
└── test_simplification.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
*.sh linguist-language=Java
ci/* linguist-vendored
cutil.cpp linguist-vendored
cutil.html linguist-vendored
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Report a bug
title: ''
labels: ''
assignees: ''
---
# Describe the bug
A clear and concise description of what the bug is.
# To Reproduce
Steps to reproduce the behavior:
1. …
2. …
3. …
# Expected behaviour
A clear and concise description of what you expected to happen
# Screenshots
If applicable, add screenshots to help explain your problem.
# System (please complete the following information)
- OS: [e.g. macOS]
- Architecture [e.g. x86_64, aarch64 etc]
- Library version
# Additional context
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
# Please don't open an issue for a feature request
I don't have time to implement new features. If you want a new feature, open a PR.
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
ignore:
# Optional: Official actions have moving tags like v1;
# if you use those, you don't need updates.
- dependency-name: "actions/*"
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "monthly"
open-pull-requests-limit: 20
groups:
# Specify a name for the group, which will be used in pull request titles
# and branch names
python-non-security-dependencies:
# Define patterns to include dependencies in the group (based on
# dependency name)
applies-to: version-updates # Applies the group rule to version updates
patterns:
- "*"
================================================
FILE: .github/workflows/wheels.yml
================================================
name: Build and test wheels, release on new tag
permissions:
id-token: write
attestations: write
contents: read
env:
rustlib: rdp
wheelname: simplification
CIBW_BUILD_FRONTEND: build[uv]
on:
pull_request:
push:
branches:
- master
tags:
- 'v*'
jobs:
get_latest_lib_tag:
name: Get latest Rust lib tag
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.latest-tag.outputs.tag}}
steps:
- id: latest-tag
uses: oprypin/find-latest-tag@v1
with:
repository: urschrei/${{ env.rustlib }} # The repository to scan.
releases-only: true # We know that all relevant tags have a GitHub release for them.
- run: echo "Latest lib tag ${{ steps.latest-tag.outputs.tag }}"
build_wheels:
name: Build wheels on ${{ matrix.os }} ${{ matrix.arch }}
needs: get_latest_lib_tag
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
pybuilds: cp3{10,11,12,13,14}-manylinux_x86_64
arch: x86_64
id: linux
- os: ubuntu-24.04-arm
pybuilds: cp3{10,11,12,13,14}-manylinux_aarch64
arch: aarch64
id: linux_arm64
- os: macos-latest
pybuilds: cp3{10,11,12,13,14}-macosx_x86_64
arch: x86_64
id: macos_x86
- os: macos-latest
pybuilds: cp3{10,11,12,13,14}-macosx_arm64
arch: arm64
id: macos_arm64
- os: windows-latest
pybuilds: cp3{10,11,12,13,14}-win_amd64
arch: x86_64
id: windows
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0 # Optional, use if you use setuptools_scm
submodules: true # Optional, use if you have submodules
name: Check out repo
- id: set-filename
name: Set compressed Rust lib filename to retrieve based on OS
run: |
if [ "${{ matrix.id }}" == "linux" ]; then
echo "filename=${{ env.rustlib }}-${{ needs.get_latest_lib_tag.outputs.tag }}-x86_64-unknown-linux-gnu.tar.gz" >> $GITHUB_ENV
elif [ "${{ matrix.id }}" == "linux_arm64" ]; then
echo "filename=${{ env.rustlib }}-${{ needs.get_latest_lib_tag.outputs.tag }}-aarch64-unknown-linux-gnu.tar.gz" >> $GITHUB_ENV
elif [ "${{ matrix.id }}" == "windows" ]; then
echo "filename=${{ env.rustlib }}-${{ needs.get_latest_lib_tag.outputs.tag }}-x86_64-pc-windows-msvc.tar.gz" >> $GITHUB_ENV
elif [ "${{ matrix.id }}" == "macos_arm64" ]; then
echo "filename=${{ env.rustlib }}-${{ needs.get_latest_lib_tag.outputs.tag }}-aarch64-apple-darwin.tar.gz" >> $GITHUB_ENV
elif [ "${{ matrix.id }}" == "macos_x86" ]; then
echo "filename=${{ env.rustlib }}-${{ needs.get_latest_lib_tag.outputs.tag }}-x86_64-apple-darwin.tar.gz" >> $GITHUB_ENV
fi
shell: bash
- id: get-rust-lib
uses: robinraju/release-downloader@v1.13
name: Download latest Rust lib release
with:
token: ${{ secrets.RDP_RETRIEVAL }}
repository: urschrei/${{ env.rustlib }}
tag: ${{ needs.get_latest_lib_tag.outputs.tag }}
fileName: ${{ env.filename }}
out-file-path: rustlib
- name: Extract downloaded lib
run: |
tar -xvf "rustlib/${{ env.filename }}" -C src/${{ env.wheelname }}
mkdir wheelhouse
git status
shell: bash
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
with:
version: "latest"
- name: Build and Test Wheels
uses: pypa/cibuildwheel@v3.4.0
env:
CIBW_BUILD_FRONTEND: build[uv]
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: 'pytest {package}'
CIBW_BUILD: ${{ matrix.pybuilds }}
CIBW_ARCHS_MACOS: ${{ matrix.arch }}
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0
- id: attest
name: Attest Build Provenance
uses: actions/attest-build-provenance@v1
with:
subject-path: "./wheelhouse/*.whl"
- uses: actions/upload-artifact@v4
name: Upload repaired wheels as artifact
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: |
${{ steps.attest.outputs.bundle-path }}
./wheelhouse/*.whl
./wheelhouse/*.so
./wheelhouse/*.dylib
./wheelhouse/*.lib
./wheelhouse/*.dll
make_sdist:
name: Make SDist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0 # Optional, use if you use setuptools_scm
submodules: true # Optional, use if you have submodules
- name: Build SDist
run: pipx run build --sdist
- uses: actions/upload-artifact@v4
with:
path: dist/*.tar.gz
release_artifacts:
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
name: Release repaired and tested wheels
needs: build_wheels
runs-on: ubuntu-latest
environment: release
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
contents: write
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0 # Optional, use if you use setuptools_scm
submodules: true # Optional, use if you have submodules
- name: Download compressed artifacts
id: download
uses: actions/download-artifact@v4
with:
path: ./artifacts
merge-multiple: true
- name: Remove attestation dir, copy wheels into main dir, remove subdirs
run: |
rm -rf "${{ steps.download.outputs.download-path }}"/_temp
cp "${{ steps.download.outputs.download-path }}"/"${{ env.wheelname }}"/"${{ env.wheelname }}"/wheelhouse/*.whl ${{ steps.download.outputs.download-path }}
rm -rf "${{ steps.download.outputs.download-path }}"/"${{ env.wheelname }}"
shell: bash
- name: Display structure of downloaded files
run: ls -R ./artifacts
- name: Create release and upload wheels
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: "${{ steps.download.outputs.download-path }}/*.whl,${{ steps.download.outputs.download-path }}/*.gz,${{ steps.download.outputs.download-path }}/*.so,${{ steps.download.outputs.download-path }}/*.dylib,${{ steps.download.outputs.download-path }}/*.lib,${{ steps.download.outputs.download-path }}/*.dll"
token: ${{ secrets.GITHUB_TOKEN }}
- name: PyPI Publish
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: ${{ steps.download.outputs.download-path }}
================================================
FILE: .gitignore
================================================
tests/output_*
================================================
FILE: CITATION.cff
================================================
cff-version: 1.1.0
message: "If you use this software, please cite it using these metadata."
abstract: "Simplification: a Python library for line simplification using the Ramer-Douglas-Peucker or Visvaligam-Whyatt algorithms"
authors:
-
family-names: "Hügel"
given-names: Stephan
orcid: "https://orcid.org/0000-0003-4379-2450"
title: "Simplification"
date-released: 2021-12-12
doi: "10.5281/zenodo.5774852"
keywords:
- geo
- gis
- ramer-douglas-peucker
- visvalingam-whyatt
license: BlueOak-1.0.0
repository-code: "https://github.com/urschrei/simplification"
version: "0.5.21"
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.21)
project(${SKBUILD_PROJECT_NAME} LANGUAGES C)
# Define source directory
set(SIMPLIFICATION_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/simplification")
# Find Python
find_package(
Python
COMPONENTS Interpreter Development.Module NumPy
REQUIRED)
include(UseCython)
# Get NumPy include directory
message(STATUS "NumPy include directory: ${Python_NumPy_INCLUDE_DIRS}")
cython_transpile(
"${SIMPLIFICATION_SRC_DIR}/cutil.pyx"
LANGUAGE C
OUTPUT_VARIABLE cutil
CYTHON_ARGS -I "${SIMPLIFICATION_SRC_DIR}"
)
# Create the extension module
python_add_library(cutil MODULE "${cutil}" WITH_SOABI)
# Set include directories
target_include_directories(cutil PRIVATE
${SIMPLIFICATION_SRC_DIR}
${Python_NumPy_INCLUDE_DIRS}
)
# Link against the rdp library
# The library is pre-built and located in src/simplification/
find_library(RDP_LIBRARY
NAMES rdp librdp
PATHS ${SIMPLIFICATION_SRC_DIR}
NO_DEFAULT_PATH
REQUIRED
)
message(STATUS "Found RDP library: ${RDP_LIBRARY}")
target_link_libraries(cutil PRIVATE ${RDP_LIBRARY})
# Set RPATH for different platforms
if(APPLE)
set_target_properties(cutil PROPERTIES
INSTALL_RPATH "@loader_path"
BUILD_WITH_INSTALL_RPATH TRUE
)
elseif(UNIX)
set_target_properties(cutil PROPERTIES
INSTALL_RPATH "$ORIGIN"
BUILD_WITH_INSTALL_RPATH TRUE
)
endif()
# Install the extension module
install(TARGETS cutil DESTINATION simplification)
# Install the shared library
if(APPLE)
set(RDP_LIB_NAME "librdp.dylib")
elseif(UNIX)
set(RDP_LIB_NAME "librdp.so")
elseif(WIN32)
set(RDP_LIB_NAME "rdp.dll")
endif()
install(FILES ${SIMPLIFICATION_SRC_DIR}/${RDP_LIB_NAME}
DESTINATION simplification)
# Install header file
install(FILES ${SIMPLIFICATION_SRC_DIR}/header.h
DESTINATION simplification)
================================================
FILE: LICENSE.md
================================================
# Blue Oak Model License
Version 1.0.0
## Purpose
This license gives everyone as much permission to work with this software as possible, while protecting contributors from liability.
## Acceptance
In order to receive this license, you must agree to its rules. The rules of this license are both obligations under that agreement and conditions to your license. You must not do anything with this software that triggers a rule that you cannot or will not follow.
## Copyright
Each contributor licenses you to do everything with this software that would otherwise infringe that contributor's copyright in it.
## Notices
You must ensure that everyone who gets a copy of any part of this software from you, with or without changes, also gets the text of this license or a link to <https://blueoakcouncil.org/license/1.0.0>.
## Excuse
If anyone notifies you in writing that you have not complied with [Notices](#notices), you can keep your license by taking all practical steps to comply within 30 days after the notice. If you do not do so, your license ends immediately.
## Patent
Each contributor licenses you to do everything with this software that would otherwise infringe any patent claims they can license or become able to license.
## Reliability
No contributor can revoke this license.
## No Liability
***As far as the law allows, this software comes as is, without any warranty or condition, and no contributor will be liable to anyone for any damages related to this software or this license, under any kind of legal claim.***
================================================
FILE: README.md
================================================
[](https://github.com/urschrei/simplification/actions/workflows/wheels.yml) [](https://coveralls.io/github/urschrei/simplification?branch=master) [](https://pepy.tech/project/simplification) [](https://zenodo.org/badge/latestdoi/65199659) [](https://anaconda.org/conda-forge/simplification)
# Simplification
Simplify a LineString using the [Ramer–Douglas–Peucker](https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm) or [Visvalingam-Whyatt](https://bost.ocks.org/mike/simplify/) algorithms

# Installation
`uv add simplification` OR
`pip install simplification` OR
`conda install conda-forge::simplification`
### Installing for local development
1. Ensure you have a copy of `librdp` and `header.h` from https://github.com/urschrei/rdp/releases, and it's in the `src/simplification` subdir
2. run `uv sync --dev`
3. run `pytest .`
Changes in `pyx` and `pxd` files, and the Rust library and header will bust the cache, triggering a rebuild when `uv` commands are run.
## Building SDist and Wheels
1. Ensure that `librdp` and header are present, as above
2. Run `uv build --sdist --wheel`
### Supported Python Versions
Simplification supports all [_currently_ supported Python versions](https://devguide.python.org/versions/).
### Supported Platforms
- Linux (`manylinux`-compatible) x86_64 and aarch64
- macOS Darwin x86_64 and arm64
- Windows 64-bit
## Usage
```python
from simplification.cutil import (
simplify_coords,
simplify_coords_idx,
simplify_coords_vw,
simplify_coords_vw_idx,
simplify_coords_vwp,
)
# Using Ramer–Douglas–Peucker
coords = [
[0.0, 0.0],
[5.0, 4.0],
[11.0, 5.5],
[17.3, 3.2],
[27.8, 0.1]
]
# For RDP, Try an epsilon of 1.0 to start with. Other sensible values include 0.01, 0.001
simplified = simplify_coords(coords, 1.0)
# simplified is [[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [27.8, 0.1]]
# Using Visvalingam-Whyatt
# You can also pass numpy arrays, in which case you'll get numpy arrays back
import numpy as np
coords_vw = np.array([
[5.0, 2.0],
[3.0, 8.0],
[6.0, 20.0],
[7.0, 25.0],
[10.0, 10.0]
])
simplified_vw = simplify_coords_vw(coords_vw, 30.0)
# simplified_vw is [[5.0, 2.0], [7.0, 25.0], [10.0, 10.0]]
```
Passing empty and/or 1-element lists will return them unaltered.
## But I only want the simplified **Indices**
`simplification` now has:
- `cutil.simplify_coords_idx`
- `cutil.simplify_coords_vw_idx`
The values returned by these functions are the **retained** indices. In order to use them as e.g. a [masked array](https://docs.scipy.org/doc/numpy/reference/maskedarray.generic.html#what-is-a-masked-array) in Numpy, something like the following will work:
import numpy as np
from simplification.cutil import simplify_coords_idx
# assume an array of coordinates: orig
simplified = simplify_coords_idx(orig, 1.0)
# build new geometry using only retained coordinates
orig_simplified = orig[simplified]
## But I need to ensure that the resulting geometries are valid
You can use the topology-preserving variant of `VW` for this: `simplify_coords_vwp`. It's slower, but has a far greater likelihood of producing a valid geometry.
## But I Want to Simplify Polylines
No problem; [Decode them to LineStrings](https://github.com/urschrei/pypolyline) first.
``` python
# pip install pypolyline before you do this
from pypolyline.cutil import decode_polyline
# an iterable of Google-encoded Polylines, so precision is 5. For OSRM &c., it's 6
decoded = (decode_polyline(line, 5) for line in polylines)
simplified = [simplify_coords(line, 1.0) for line in decoded]
```
## How it Works
FFI and a [Rust binary](https://github.com/urschrei/rdp)
## Is It Fast
I should think so.
### What does that mean
Using `numpy` arrays for input and output, the library can be reasonably expected to process around 2500 1000-point LineStrings per second on a Core i7 or equivalent, for a 98%+ reduction in size.
A larger LineString, containing 200k+ points can be reduced to around 3k points (98.5%+) in around 50ms using RDP.
This is based on a test harness available [here](benchmark_runner.py).
#### Disclaimer
All benchmarks are subjective, and pathological input will greatly increase processing time. Error-checking is non-existent at this point.
## License
[Blue Oak Model Licence 1.0.0](LICENSE.md)
## Citing `Simplification`
If Simplification has been significant in your research, and you would like to acknowledge the project in your academic publication, we suggest citing it as follows (example in APA style, 7th edition):
> Hügel, S. (2021). Simplification (Version X.Y.Z) [Computer software]. https://doi.org/10.5281/zenodo.5774852
In Bibtex format:
@software{Hugel_Simplification_2021,
author = {Hügel, Stephan},
doi = {10.5281/zenodo.5774852},
license = {MIT},
month = {12},
title = {{Simplification}},
url = {https://github.com/urschrei/simplification},
version = {X.Y.Z},
year = {2021}
}
================================================
FILE: benchmark_runner.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Standalone benchmark runner
"""
import cProfile
import pstats
import profile
import numpy as np
print("Running Rust + Cython benchmarks")
# calibrate
pr = profile.Profile()
calibration = np.mean([pr.calibrate(100000) for x in range(5)])
# add the bias
profile.Profile.bias = calibration
with open("tests/cprofile_rust_cython.py", "rb") as f1:
c1 = f1.read()
with open("tests/cprofile_rust_cython_complex.py", "rb") as f2:
c2 = f2.read()
with open("tests/cprofile_rust_cython_shapely.py", "rb") as f3:
c3 = f3.read()
cProfile.run(c1, "tests/output_stats_rust_cython")
rust_cython = pstats.Stats("tests/output_stats_rust_cython")
cProfile.run(c2, "tests/output_stats_rust_cython_complex")
rust_cython_c = pstats.Stats("tests/output_stats_rust_cython_complex")
cProfile.run(c3, "tests/output_stats_rust_cython_shapely")
shapely = pstats.Stats("tests/output_stats_rust_cython_shapely")
print("Rust Cython Benchmarks\n")
rust_cython.sort_stats("cumulative").print_stats(5)
rust_cython_c.sort_stats("cumulative").print_stats(5)
shapely.sort_stats("cumulative").print_stats(20)
================================================
FILE: pyproject.toml
================================================
[project]
name = "simplification"
version = "0.7.15"
description = "Fast linestring simplification using RDP or Visvalingam-Whyatt and a Rust binary"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"numpy >= 2.0.0",
]
authors = [{ name = "Stephan Hügel", email = "urschrei@gmail.com" }]
license = "BlueOak-1.0.0"
license-files = ["LICENSE.md"]
keywords = ["Geo", "Polyline", "Linestring", "Ramer-Douglas-Peucker", "Douglas-Peucker", "Visvalingam-Whyatt"]
classifiers = [
"Programming Language :: Python",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Intended Audience :: Education",
"Operating System :: OS Independent",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Scientific/Engineering :: GIS"
]
[project.urls]
Repository = "https://github.com/urschrei/simplification"
Tracker = "https://github.com/urschrei/simplification/issues"
[dependency-groups]
dev = [
"pytest>=8.4.1",
]
[tool.scikit-build]
minimum-version = "build-system.requires"
wheel.packages = ["src/simplification"]
[build-system]
requires = [
"scikit-build-core>=0.10",
"numpy >= 2.0.0",
"cython >= 3.1.0",
"cython-cmake"
]
build-backend = "scikit_build_core.build"
[tool.uv]
cache-keys = [{ file = "pyproject.toml" }, { file = "src/**/*.{h,c,pyx,pxd,dylib,so,dll}" }, { file = "CMakeLists.txt" }]
[tool.pytest.ini_options]
minversion = "8.4.1"
addopts = [
"--import-mode=importlib",
]
testpaths = [
"tests",
]
================================================
FILE: src/simplification/__init__.py
================================================
import importlib.metadata
try:
# __package__ allows for the case where __name__ is "__main__"
__version__ = importlib.metadata.version(__package__ or __name__)
except importlib.metadata.PackageNotFoundError:
__version__ = "0.0.0"
================================================
FILE: src/simplification/cutil.pyx
================================================
#cython: boundscheck=False
#cython: wraparound=False
#cython: optimize.use_switch=True
#cython: optimize.unpack_method_calls=True
# -*- coding: utf-8 -*-
"""
cutil.pyx
Created by Stephan Hügel on 2016-08-08
This file is part of simplification.
"""
__author__ = u"Stephan Hügel"
import numpy as np
import numpy
from cython cimport view
from rdp_p cimport (
ExternalArray,
InternalArray,
simplify_rdp_ffi,
simplify_rdp_idx_ffi,
simplify_visvalingam_ffi,
simplify_visvalingam_idx_ffi,
simplify_visvalingamp_ffi,
drop_float_array,
drop_usize_array,
)
cpdef simplify_coords(coords, double epsilon):
"""
Simplify a LineString using the Douglas-Ramer-Peucker algorithm.
Input: a list of lat, lon coordinates, and an epsilon float (Try 1.0 to begin with, reducing by orders of magnitude)
Output: a simplified list of coordinates
Example: simplify_coords([
[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [17.3, 3.2], [27.8, 0.1]],
1.0)
Result: [[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [27.8, 0.1]]
"""
if not len(coords):
return coords
arr = np.array(coords, dtype=np.float64)
if not arr.flags['C_CONTIGUOUS']:
arr = np.ascontiguousarray(arr)
cdef double[:,::1] ncoords = np.array(arr, dtype=np.float64)
cdef ExternalArray coords_ffi
coords_ffi.data = <void*>&ncoords[0, 0]
coords_ffi.len = ncoords.shape[0]
cdef InternalArray result = simplify_rdp_ffi(coords_ffi, epsilon)
cdef double* incoming_ptr = <double*>(result.data)
cdef double[:, ::1] view = <double[:result.len,:2:1]>incoming_ptr
if isinstance(coords, numpy.ndarray):
outgoing = np.copy(view)
else:
outgoing = np.copy(view).tolist()
try:
return outgoing
finally:
drop_float_array(result)
cpdef simplify_coords_idx(coords, double epsilon):
"""
Simplify a LineString using the Douglas-Ramer-Peucker algorithm.
Input: a list of lat, lon coordinates, and an epsilon float (Try 1.0 to begin with, reducing by orders of magnitude)
Output: a simplified list of coordinate indices
Example: simplify_coords([
[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [17.3, 3.2], [27.8, 0.1]],
1.0)
Result: [[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [27.8, 0.1]]
"""
if not len(coords):
return coords
cdef double[:,::1] ncoords = np.array(coords, dtype=np.float64)
cdef ExternalArray coords_ffi
coords_ffi.data = <void*>&ncoords[0, 0]
coords_ffi.len = ncoords.shape[0]
cdef InternalArray result = simplify_rdp_idx_ffi(coords_ffi, epsilon)
cdef size_t* incoming_ptr = <size_t*>(result.data)
cdef size_t[::1] view = <size_t[:result.len]>incoming_ptr
if isinstance(coords, numpy.ndarray):
outgoing = np.copy(view)
else:
outgoing = np.copy(view).tolist()
try:
return outgoing
finally:
drop_usize_array(result)
cpdef simplify_coords_vw(coords, double epsilon):
"""
Simplify a LineString using the Visvalingam-Whyatt algorithm.
Input: a list of lat, lon coordinates, and an epsilon float
Output: a simplified list of coordinates
Example:
simplify_coords([
[5.0, 2.0], [3.0, 8.0], [6.0, 20.0], [7.0, 25.0], [10.0, 10.0]],
30.0
)
Result: [[5.0, 2.0], [7.0, 25.0], [10.0, 10.0]]
"""
if not len(coords):
return coords
cdef double[:,::1] ncoords = np.array(coords, dtype=np.float64)
cdef ExternalArray coords_ffi
coords_ffi.data = <void*>&ncoords[0, 0]
coords_ffi.len = ncoords.shape[0]
cdef InternalArray result = simplify_visvalingam_ffi(coords_ffi, epsilon)
cdef double* incoming_ptr = <double*>(result.data)
cdef double[:, ::1] view = <double[:result.len,:2:1]>incoming_ptr
if isinstance(coords, numpy.ndarray):
outgoing = np.copy(view)
else:
outgoing = np.copy(view).tolist()
try:
return outgoing
finally:
drop_float_array(result)
cpdef simplify_coords_vw_idx(coords, double epsilon):
"""
Simplify a LineString using the Visvalingam-Whyatt algorithm.
Input: a list of lat, lon coordinates, and an epsilon float
Output: a simplified list of coordinate indices
Example: simplify_coords([
[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [17.3, 3.2], [27.8, 0.1]],
1.0)
Result: [[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [27.8, 0.1]]
"""
if not len(coords):
return coords
cdef double[:,::1] ncoords = np.array(coords, dtype=np.float64)
cdef ExternalArray coords_ffi
coords_ffi.data = <void*>&ncoords[0, 0]
coords_ffi.len = ncoords.shape[0]
cdef InternalArray result = simplify_visvalingam_idx_ffi(coords_ffi, epsilon)
cdef size_t* incoming_ptr = <size_t*>(result.data)
cdef size_t[::1] view = <size_t[:result.len]>incoming_ptr
if isinstance(coords, numpy.ndarray):
outgoing = np.copy(view)
else:
outgoing = np.copy(view).tolist()
try:
return outgoing
finally:
drop_usize_array(result)
cpdef simplify_coords_vwp(coords, double epsilon):
"""
Simplify a LineString using a topology-preserving variant of the
Visvalingam-Whyatt algorithm.
Input: a list of lat, lon coordinates, and an epsilon float
Output: a simplified list of coordinates
Example:
simplify_coords([
[5.0, 2.0], [3.0, 8.0], [6.0, 20.0], [7.0, 25.0], [10.0, 10.0]],
30.0
)
Result: [[5.0, 2.0], [7.0, 25.0], [10.0, 10.0]]
"""
if not len(coords):
return coords
cdef double[:,::1] ncoords = np.array(coords, dtype=np.float64)
cdef ExternalArray coords_ffi
coords_ffi.data = <void*>&ncoords[0, 0]
coords_ffi.len = ncoords.shape[0]
cdef InternalArray result = simplify_visvalingamp_ffi(coords_ffi, epsilon)
cdef double* incoming_ptr = <double*>(result.data)
cdef double[:, ::1] view = <double[:result.len,:2:1]>incoming_ptr
if isinstance(coords, numpy.ndarray):
outgoing = np.copy(view)
else:
outgoing = np.copy(view).tolist()
try:
return outgoing
finally:
drop_float_array(result)
================================================
FILE: src/simplification/rdp_p.pxd
================================================
cdef extern from "header.h":
struct ExternalArray:
void* data
size_t len
cdef extern from "header.h":
struct InternalArray:
void* data
size_t len
cdef InternalArray simplify_rdp_ffi(ExternalArray, double epsilon);
cdef InternalArray simplify_rdp_idx_ffi(ExternalArray, double epsilon);
cdef InternalArray simplify_visvalingam_ffi(ExternalArray, double epsilon);
cdef InternalArray simplify_visvalingam_idx_ffi(ExternalArray, double epsilon);
cdef InternalArray simplify_visvalingamp_ffi(ExternalArray, double epsilon);
cdef void drop_float_array(InternalArray coords);
cdef void drop_usize_array(InternalArray coords);
================================================
FILE: src/simplification/stdbool.h
================================================
#pragma once
#define false 0
#define true 1
#define bool int
================================================
FILE: src/simplification/util.py
================================================
# -*- coding: utf-8 -*-
"""
ffi.py
Created by Stephan Hügel on 2016-08-3
This file is part of simplification.
"""
import os
from ctypes import POINTER, Structure, c_double, c_size_t, c_void_p, cast, cdll
from sys import platform, version_info
numpy_installed = True
try:
import numpy as np
except ImportError:
numpy_installed = False
__author__ = "Stephan Hügel"
file_path = os.path.dirname(__file__)
prefix = {"win32": ""}.get(platform, "lib")
extension = {"darwin": ".dylib", "win32": ".dll"}.get(platform, ".so")
fpath = {"darwin": "", "win32": ""}.get(platform, os.path.join(file_path, ".libs"))
# Python 3 check
if version_info > (3, 0):
from subprocess import getoutput as spop
py3 = True
else:
from subprocess import check_output as spop
py3 = False
try:
lib = cdll.LoadLibrary(os.path.join(file_path, prefix + "rdp" + extension))
except OSError:
# the Rust lib's been grafted by manylinux1
if not py3:
fname = spop(["ls", fpath]).split()[0]
else:
fname = spop(["ls %s" % fpath]).split()[0]
lib = cdll.LoadLibrary(os.path.join(file_path, ".libs", fname))
class _FFIArray(Structure):
"""
Convert sequence of float lists to a C-compatible void array
example: [[1.0, 2.0], [3.0, 4.0]]
"""
_fields_ = [("data", c_void_p), ("len", c_size_t)]
@classmethod
def from_param(cls, seq):
"""Allow implicit conversions"""
return seq if isinstance(seq, cls) else cls(seq)
# noinspection PyPep8Naming
def __init__(self, seq, data_type=c_double):
if numpy_installed:
self.data = cast(
np.array(seq, dtype=np.float64).ctypes.data_as(POINTER(data_type)),
c_void_p,
)
else:
Coords = data_type * (2 * len(seq))
arr = Coords(*[item for sublist in seq for item in sublist])
self.data = cast(arr, c_void_p)
self.len = len(seq)
class _CoordResult(Structure):
"""Container for returned FFI coordinate data"""
_fields_ = [("coords", _FFIArray)]
def _void_array_to_nested_list(res, _func, _args):
"""Dereference the FFI result to a list of coordinates"""
try:
ptr = cast(res.coords.data, POINTER(c_double))
if numpy_installed:
shape = res.coords.len, 2
array = np.ctypeslib.as_array(ptr, shape)
return array.tolist()
else:
return list(
zip(ptr[0 : res.coords.len * 2 : 2], ptr[1 : res.coords.len * 2 : 2])
)
finally:
drop_array(res.coords)
simplify_coords = lib.simplify_rdp_ffi
simplify_coords.argtypes = (_FFIArray, c_double)
simplify_coords.restype = _CoordResult
simplify_coords.errcheck = _void_array_to_nested_list
simplify_coords.__doc__ = """
Simplify a LineString using the Ramer-Douglas-Peucker algorithm.
Input: a list of lat, lon coordinates, and an epsilon float (Try 1.0 to begin with,
reducing by orders of magnitude)
Output: a simplified list of coordinates
Example:
simplify_coords([
[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [17.3, 3.2], [27.8, 0.1]],
1.0
)
Result: [[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [27.8, 0.1]]
"""
simplify_coords_vw = lib.simplify_visvalingam_ffi
simplify_coords_vw.argtypes = (_FFIArray, c_double)
simplify_coords_vw.restype = _CoordResult
simplify_coords_vw.errcheck = _void_array_to_nested_list
simplify_coords_vw.__doc__ = """
Simplify a LineString using the Visvalingam-Whyatt algorithm.
Input: a list of lat, lon coordinates, and an epsilon float
Output: a simplified list of coordinates
Example:
simplify_coords_vw([
[5.0, 2.0], [3.0, 8.0], [6.0, 20.0], [7.0, 25.0], [10.0, 10.0]],
30.0
)
Result: [[5.0, 2.0], [7.0, 25.0], [10.0, 10.0]]
"""
simplify_coords_vwp = lib.simplify_visvalingamp_ffi
simplify_coords_vwp.argtypes = (_FFIArray, c_double)
simplify_coords_vwp.restype = _CoordResult
simplify_coords_vwp.errcheck = _void_array_to_nested_list
simplify_coords_vwp.__doc__ = """
Simplify a LineString using a topology-preserving variant of
the Visvalingam-Whyatt algorithm.
Input: a list of lat, lon coordinates, and an epsilon float
Output: a simplified list of coordinates
Example:
simplify_coords_vwp([
[5.0, 2.0], [3.0, 8.0], [6.0, 20.0], [7.0, 25.0], [10.0, 10.0]],
30.0
)
Result: [[5.0, 2.0], [7.0, 25.0], [10.0, 10.0]]
"""
drop_array = lib.drop_float_array
drop_array.argtypes = (_FFIArray,)
drop_array.restype = None
================================================
FILE: tests/coords.json
================================================
[
[
-94.043147,
32.69303
],
[
-94.043147,
32.693031
],
[
-94.042947,
32.767991
],
[
-94.043027,
32.776863
],
[
-94.042938,
32.780558
],
[
-94.042829,
32.785277
],
[
-94.042747,
32.786973
],
[
-94.043026,
32.797476
],
[
-94.042785,
32.871486
],
[
-94.043025,
32.880446
],
[
-94.042886,
32.880965
],
[
-94.042886,
32.881089
],
[
-94.042859,
32.892771
],
[
-94.042885,
32.898911
],
[
-94.043092,
32.910021
],
[
-94.043067,
32.937903
],
[
-94.043088,
32.955592
],
[
-94.042964,
33.019219
],
[
-94.041444,
33.019188
],
[
-94.035839,
33.019145
],
[
-94.027983,
33.019139
],
[
-94.024475,
33.019207
],
[
-93.814553,
33.019372
],
[
-93.80493,
33.019347
],
[
-93.531499,
33.018643
],
[
-93.524916,
33.018637
],
[
-93.520994,
33.018616
],
[
-93.520971,
33.018616
],
[
-93.490893,
33.018442
],
[
-93.49052,
33.018442
],
[
-93.489506,
33.018443
],
[
-93.467042,
33.018611
],
[
-93.377134,
33.018234
],
[
-93.340353,
33.018337
],
[
-93.308398,
33.018179
],
[
-93.308181,
33.018156
],
[
-93.238607,
33.017992
],
[
-93.197402,
33.017951
],
[
-93.154351,
33.017856
],
[
-93.101443,
33.01774
],
[
-93.100981,
33.017786
],
[
-93.081428,
33.017928
],
[
-93.073167,
33.017898
],
[
-93.070686,
33.017792
],
[
-92.988708,
33.017298
],
[
-92.971137,
33.017192
],
[
-92.946553,
33.016807
],
[
-92.86751,
33.016062
],
[
-92.854167,
33.016132
],
[
-92.844286,
33.01607
],
[
-92.844073,
33.016034
],
[
-92.830798,
33.015661
],
[
-92.733197,
33.014347
],
[
-92.724994,
33.014351
],
[
-92.724743,
33.014347
],
[
-92.723553,
33.014328
],
[
-92.715884,
33.014398
],
[
-92.711289,
33.014307
],
[
-92.503776,
33.012161
],
[
-92.501383,
33.01216
],
[
-92.469762,
33.01201
],
[
-92.37029,
33.010717
],
[
-92.362865,
33.010628
],
[
-92.335893,
33.010349
],
[
-92.292664,
33.010103
],
[
-92.222825,
33.00908
],
[
-92.069105,
33.008163
],
[
-91.951958,
33.007428
],
[
-91.950001,
33.00752
],
[
-91.62667,
33.006639
],
[
-91.617615,
33.006717
],
[
-91.609001,
33.006556
],
[
-91.579802,
33.006518
],
[
-91.579639,
33.006472
],
[
-91.572326,
33.006908
],
[
-91.559494,
33.00684
],
[
-91.46037,
33.006246
],
[
-91.435782,
33.006099
],
[
-91.425466,
33.006016
],
[
-91.376016,
33.005794
],
[
-91.333011,
33.005529
],
[
-91.329767,
33.005421
],
[
-91.326396,
33.005376
],
[
-91.325037,
33.005364
],
[
-91.322506,
33.005341
],
[
-91.312016,
33.005262
],
[
-91.284398,
33.005007
],
[
-91.265018,
33.005084
],
[
-91.166073,
33.004106
],
[
-91.201842,
32.961212
],
[
-91.214027,
32.93032
],
[
-91.212837,
32.922104
],
[
-91.208263,
32.915354
],
[
-91.196785,
32.906784
],
[
-91.175405,
32.899998
],
[
-91.159975,
32.899879
],
[
-91.145076,
32.905494
],
[
-91.134041,
32.917676
],
[
-91.132115,
32.923122
],
[
-91.130947,
32.963815
],
[
-91.138585,
32.971352
],
[
-91.134414,
32.980533
],
[
-91.125107,
32.984669
],
[
-91.106581,
32.988938
],
[
-91.094265,
32.984371
],
[
-91.086802,
32.976266
],
[
-91.063974,
32.924113
],
[
-91.063809,
32.903709
],
[
-91.070602,
32.888659
],
[
-91.086683,
32.873392
],
[
-91.105631,
32.858396
],
[
-91.116091,
32.855641
],
[
-91.127886,
32.855059
],
[
-91.145002,
32.84287
],
[
-91.158336,
32.822304
],
[
-91.161669,
32.812465
],
[
-91.164397,
32.785821
],
[
-91.165328,
32.751301
],
[
-91.163389,
32.747009
],
[
-91.154461,
32.742339
],
[
-91.123152,
32.742798
],
[
-91.077176,
32.732534
],
[
-91.060766,
32.727494
],
[
-91.054481,
32.722259
],
[
-91.057043,
32.712576
],
[
-91.063946,
32.702926
],
[
-91.076061,
32.693751
],
[
-91.098762,
32.685291
],
[
-91.118258,
32.674075
],
[
-91.152081,
32.641508
],
[
-91.153821,
32.631282
],
[
-91.151318,
32.615919
],
[
-91.146204,
32.604144
],
[
-91.141148,
32.597209
],
[
-91.127912,
32.586493
],
[
-91.119854,
32.584795
],
[
-91.104111,
32.584657
],
[
-91.096774,
32.576652
],
[
-91.090771,
32.563978
],
[
-91.090611,
32.562705
],
[
-91.089436,
32.553306
],
[
-91.093741,
32.549128
],
[
-91.097878,
32.544752
],
[
-91.116708,
32.500139
],
[
-91.116008,
32.48314
],
[
-91.108808,
32.47204
],
[
-91.095308,
32.458741
],
[
-91.070207,
32.445141
],
[
-91.052907,
32.438442
],
[
-91.029606,
32.433542
],
[
-90.99408,
32.403862
],
[
-91.004506,
32.368144
],
[
-91.003506,
32.362145
],
[
-91.000106,
32.357695
],
[
-90.986672,
32.35176
],
[
-90.912363,
32.339454
],
[
-90.901511,
32.337864
],
[
-90.898588,
32.329094
],
[
-90.905173,
32.315497
],
[
-91.004557,
32.215381
],
[
-91.006306,
32.22415
],
[
-91.021507,
32.236149
],
[
-91.039007,
32.242349
],
[
-91.046507,
32.241149
],
[
-91.122602,
32.216929
],
[
-91.133587,
32.213432
],
[
-91.158026,
32.201956
],
[
-91.164171,
32.196888
],
[
-91.171046,
32.176526
],
[
-91.174552,
32.154978
],
[
-91.171702,
32.14425
],
[
-91.165452,
32.13429
],
[
-91.162822,
32.132694
],
[
-91.131403,
32.126213
],
[
-91.067004,
32.132144
],
[
-91.057487,
32.135515
],
[
-91.052342,
32.137337
],
[
-91.046615,
32.138768
],
[
-91.040531,
32.137337
],
[
-91.034447,
32.134832
],
[
-91.030152,
32.129821
],
[
-91.026931,
32.123737
],
[
-91.027125,
32.120434
],
[
-91.027535,
32.113431
],
[
-91.027946,
32.112722
],
[
-91.034707,
32.101053
],
[
-91.128009,
31.985857
],
[
-91.248144,
31.869848
],
[
-91.293413,
31.86016
],
[
-91.326914,
31.854961
],
[
-91.338414,
31.851261
],
[
-91.345714,
31.842861
],
[
-91.359514,
31.799362
],
[
-91.363714,
31.780363
],
[
-91.365614,
31.760763
],
[
-91.365084,
31.752743
],
[
-91.369375,
31.746903
],
[
-91.379935,
31.733013
],
[
-91.397915,
31.709364
],
[
-91.400115,
31.688164
],
[
-91.398059,
31.655922
],
[
-91.404668,
31.637898
],
[
-91.42209,
31.63129
],
[
-91.441315,
31.63129
],
[
-91.45273,
31.63129
],
[
-91.464746,
31.628886
],
[
-91.474959,
31.621677
],
[
-91.477963,
31.610863
],
[
-91.477963,
31.604855
],
[
-91.477963,
31.598247
],
[
-91.477362,
31.592239
],
[
-91.470754,
31.58563
],
[
-91.458679,
31.583226
],
[
-91.44862,
31.583032
],
[
-91.437711,
31.580824
],
[
-91.425094,
31.57782
],
[
-91.415482,
31.567006
],
[
-91.416683,
31.561599
],
[
-91.422691,
31.55439
],
[
-91.437616,
31.546166
],
[
-91.450017,
31.539666
],
[
-91.479718,
31.530366
],
[
-91.511217,
31.532612
],
[
-91.51581,
31.530894
],
[
-91.52292,
31.519841
],
[
-91.51513,
31.449206
],
[
-91.510356,
31.438928
],
[
-91.505301,
31.432945
],
[
-91.500406,
31.419008
],
[
-91.505093,
31.400933
],
[
-91.513795,
31.386875
],
[
-91.525386,
31.378904
],
[
-91.541242,
31.35675
],
[
-91.539904,
31.337336
],
[
-91.531201,
31.326625
],
[
-91.51982,
31.311228
],
[
-91.508858,
31.291644
],
[
-91.515614,
31.27821
],
[
-91.522397,
31.273423
],
[
-91.547588,
31.264444
],
[
-91.574493,
31.261289
],
[
-91.59849,
31.205485
],
[
-91.599965,
31.192318
],
[
-91.604197,
31.154545
],
[
-91.577373,
31.078179
],
[
-91.56415,
31.06683
],
[
-91.561283,
31.060906
],
[
-91.559907,
31.054119
],
[
-91.562468,
31.043213
],
[
-91.571695,
31.029782
],
[
-91.58467,
31.020185
],
[
-91.636942,
30.999416
],
[
-91.625118,
30.999167
],
[
-91.538727,
30.999388
],
[
-91.425749,
30.999007
],
[
-91.423621,
30.998984
],
[
-91.224839,
30.999183
],
[
-91.224068,
30.999183
],
[
-91.176209,
30.999144
],
[
-91.17614,
30.999144
],
[
-91.108291,
30.99888
],
[
-91.108114,
30.998857
],
[
-91.080814,
30.998909
],
[
-91.06827,
30.99892
],
[
-91.060217,
30.998935
],
[
-90.826027,
30.99936
],
[
-90.825829,
30.99936
],
[
-90.783745,
30.999447
],
[
-90.779858,
30.999457
],
[
-90.775981,
30.999491
],
[
-90.769333,
30.999374
],
[
-90.758775,
30.999583
],
[
-90.734552,
30.999222
],
[
-90.734473,
30.999214
],
[
-90.651193,
30.99951
],
[
-90.648721,
30.999486
],
[
-90.588676,
30.99965
],
[
-90.587373,
30.999604
],
[
-90.584448,
30.999698
],
[
-90.583518,
30.999698
],
[
-90.567195,
30.999733
],
[
-90.547615,
30.999723
],
[
-90.486749,
30.999693
],
[
-90.485876,
30.99974
],
[
-90.477284,
30.999717
],
[
-90.475928,
30.99974
],
[
-90.474094,
30.999798
],
[
-90.442479,
30.999722
],
[
-90.441725,
30.999729
],
[
-90.437351,
30.99973
],
[
-90.426849,
30.999776
],
[
-90.422117,
30.99981
],
[
-90.369371,
31.000335
],
[
-90.347241,
31.000359
],
[
-90.34723,
31.000359
],
[
-90.346007,
31.000363
],
[
-90.259555,
31.000657
],
[
-90.164676,
31.00098
],
[
-90.164278,
31.001025
],
[
-90.131395,
31.000924
],
[
-90.128406,
31.001047
],
[
-90.050706,
31.001215
],
[
-90.029574,
31.00119
],
[
-90.022185,
31.001302
],
[
-90.005332,
31.001364
],
[
-89.97543,
31.001692
],
[
-89.972802,
31.001392
],
[
-89.927161,
31.001437
],
[
-89.923119,
31.001446
],
[
-89.897516,
31.001913
],
[
-89.892708,
31.001759
],
[
-89.856862,
31.002075
],
[
-89.835908,
31.002059
],
[
-89.835542,
31.002059
],
[
-89.824617,
31.00206
],
[
-89.816429,
31.002084
],
[
-89.752642,
31.001853
],
[
-89.732504,
31.004831
],
[
-89.728147,
31.002431
],
[
-89.728148,
31.0023
],
[
-89.728382,
30.971141
],
[
-89.744789,
30.918933
],
[
-89.756543,
30.900431
],
[
-89.770931,
30.899432
],
[
-89.77341,
30.897693
],
[
-89.789863,
30.851527
],
[
-89.826175,
30.736594
],
[
-89.842596,
30.666038
],
[
-89.842585,
30.666005
],
[
-89.823384,
30.608535
],
[
-89.806843,
30.572039
],
[
-89.76057,
30.515761
],
[
-89.732577,
30.492502
],
[
-89.724614,
30.491902
],
[
-89.69058,
30.458773
],
[
-89.68341,
30.451793
],
[
-89.629941,
30.339449
],
[
-89.629877,
30.321017
],
[
-89.640694,
30.301313
],
[
-89.643575,
30.293099
],
[
-89.64344,
30.287682
],
[
-89.607655,
30.217096
],
[
-89.580754,
30.186197
],
[
-89.572654,
30.180897
],
[
-89.524504,
30.180753
],
[
-89.531213,
30.177099
],
[
-89.537493,
30.171745
],
[
-89.555013,
30.170798
],
[
-89.562825,
30.168667
],
[
-89.56827,
30.163932
],
[
-89.572093,
30.160362
],
[
-89.587062,
30.150648
],
[
-89.595021,
30.149891
],
[
-89.598027,
30.152409
],
[
-89.617542,
30.156422
],
[
-89.62288,
30.152368
],
[
-89.625053,
30.150717
],
[
-89.640989,
30.138612
],
[
-89.64455,
30.134108
],
[
-89.650467,
30.126625
],
[
-89.656986,
30.118381
],
[
-89.658594,
30.117364
],
[
-89.668164,
30.111311
],
[
-89.668638,
30.111011
],
[
-89.669157,
30.110683
],
[
-89.669182,
30.110667
],
[
-89.672881,
30.11049
],
[
-89.674124,
30.11043
],
[
-89.674633,
30.110406
],
[
-89.674956,
30.110212
],
[
-89.675762,
30.109728
],
[
-89.676117,
30.109515
],
[
-89.678156,
30.10829
],
[
-89.678163,
30.108286
],
[
-89.678293,
30.107746
],
[
-89.678457,
30.107059
],
[
-89.678499,
30.106886
],
[
-89.679655,
30.102067
],
[
-89.679823,
30.101367
],
[
-89.679838,
30.101304
],
[
-89.680042,
30.100452
],
[
-89.68035,
30.099171
],
[
-89.680485,
30.098605
],
[
-89.681265,
30.095355
],
[
-89.681906,
30.092682
],
[
-89.682057,
30.092052
],
[
-89.682181,
30.091536
],
[
-89.682181,
30.091531
],
[
-89.682277,
30.090565
],
[
-89.68228,
30.090531
],
[
-89.682331,
30.090015
],
[
-89.682371,
30.089607
],
[
-89.682393,
30.089391
],
[
-89.682409,
30.089225
],
[
-89.682691,
30.086365
],
[
-89.683051,
30.082718
],
[
-89.683168,
30.08153
],
[
-89.683712,
30.076018
],
[
-89.697556,
30.070842
],
[
-89.698461,
30.070504
],
[
-89.698496,
30.070491
],
[
-89.698909,
30.070451
],
[
-89.699144,
30.070428
],
[
-89.699629,
30.070381
],
[
-89.711848,
30.069194
],
[
-89.712942,
30.069088
],
[
-89.713003,
30.069061
],
[
-89.714085,
30.068582
],
[
-89.714827,
30.068253
],
[
-89.715494,
30.067958
],
[
-89.715884,
30.067785
],
[
-89.716237,
30.067628
],
[
-89.716425,
30.067545
],
[
-89.71675,
30.067402
],
[
-89.716887,
30.067341
],
[
-89.721992,
30.06508
],
[
-89.724433,
30.063999
],
[
-89.72633,
30.063158
],
[
-89.727453,
30.062661
],
[
-89.728026,
30.061841
],
[
-89.72957,
30.059628
],
[
-89.72968,
30.05947
],
[
-89.72979,
30.059314
],
[
-89.729911,
30.059139
],
[
-89.73099,
30.057594
],
[
-89.730999,
30.057581
],
[
-89.731208,
30.054558
],
[
-89.731428,
30.051377
],
[
-89.731452,
30.05104
],
[
-89.731545,
30.049694
],
[
-89.731545,
30.049691
],
[
-89.731544,
30.04969
],
[
-89.7163,
30.02811
],
[
-89.7163,
30.028106
],
[
-89.716301,
30.028088
],
[
-89.716328,
30.027415
],
[
-89.716336,
30.02723
],
[
-89.716358,
30.026686
],
[
-89.716377,
30.026222
],
[
-89.724649,
30.022454
],
[
-89.724669,
30.022453
],
[
-89.72576,
30.022403
],
[
-89.733323,
30.022054
],
[
-89.734361,
30.022884
],
[
-89.739028,
30.026618
],
[
-89.739574,
30.027055
],
[
-89.740886,
30.028104
],
[
-89.745827,
30.032056
],
[
-89.746313,
30.032445
],
[
-89.746505,
30.032599
],
[
-89.746506,
30.0326
],
[
-89.757138,
30.03865
],
[
-89.763216,
30.042108
],
[
-89.782534,
30.045372
],
[
-89.78463,
30.045253
],
[
-89.813684,
30.043605
],
[
-89.818561,
30.043328
],
[
-89.829762,
30.033275
],
[
-89.830442,
30.032664
],
[
-89.832213,
30.031075
],
[
-89.832965,
30.0304
],
[
-89.833794,
30.029656
],
[
-89.834644,
30.028893
],
[
-89.835202,
30.028393
],
[
-89.839926,
30.024153
],
[
-89.839933,
30.024146
],
[
-89.840963,
30.022995
],
[
-89.841739,
30.022127
],
[
-89.854533,
30.007821
],
[
-89.857558,
30.004439
],
[
-89.852312,
29.97765
],
[
-89.844202,
29.955645
],
[
-89.8385,
29.945816
],
[
-89.829023,
29.939228
],
[
-89.81803,
29.934145
],
[
-89.804463,
29.932588
],
[
-89.775459,
29.937416
],
[
-89.748492,
29.945831
],
[
-89.727933,
29.95878
],
[
-89.719067,
29.953699
],
[
-89.71291,
29.946349
],
[
-89.736311,
29.936263
],
[
-89.742727,
29.935894
],
[
-89.746273,
29.928221
],
[
-89.742479,
29.90817
],
[
-89.711158,
29.879287
],
[
-89.692004,
29.868722
],
[
-89.671555,
29.867535
],
[
-89.660568,
29.862909
],
[
-89.638016,
29.864065
],
[
-89.613159,
29.87216
],
[
-89.598129,
29.881409
],
[
-89.591194,
29.897018
],
[
-89.592346,
29.917253
],
[
-89.583099,
29.931705
],
[
-89.583099,
29.945581
],
[
-89.574997,
29.959455
],
[
-89.574425,
29.983738
],
[
-89.58136,
29.994722
],
[
-89.571533,
29.999926
],
[
-89.551292,
30.005709
],
[
-89.501587,
30.034037
],
[
-89.494064,
30.040972
],
[
-89.494637,
30.0508
],
[
-89.499275,
30.058893
],
[
-89.493484,
30.072191
],
[
-89.481926,
30.079128
],
[
-89.458946,
30.06345
],
[
-89.444618,
30.060959
],
[
-89.429047,
30.05224
],
[
-89.418465,
30.049747
],
[
-89.372375,
30.054729
],
[
-89.368637,
30.047256
],
[
-89.372375,
30.036671
],
[
-89.381096,
30.030441
],
[
-89.393555,
30.029818
],
[
-89.41597,
30.020477
],
[
-89.422813,
30.015495
],
[
-89.432785,
30.008022
],
[
-89.433411,
29.991205
],
[
-89.432785,
29.978752
],
[
-89.40538,
29.965672
],
[
-89.393555,
29.966295
],
[
-89.379227,
29.963804
],
[
-89.378601,
29.919588
],
[
-89.368019,
29.911491
],
[
-89.331894,
29.91585
],
[
-89.315453,
29.923208
],
[
-89.283562,
29.97332
],
[
-89.273315,
29.99382
],
[
-89.250534,
30.002361
],
[
-89.243706,
29.997236
],
[
-89.249969,
29.975597
],
[
-89.218071,
29.97275
],
[
-89.22377,
29.961929
],
[
-89.231178,
29.925484
],
[
-89.244843,
29.93004
],
[
-89.263062,
29.929472
],
[
-89.280144,
29.924915
],
[
-89.318306,
29.898149
],
[
-89.322289,
29.887333
],
[
-89.311462,
29.881636
],
[
-89.289253,
29.880499
],
[
-89.272179,
29.886763
],
[
-89.241425,
29.88961
],
[
-89.236298,
29.886763
],
[
-89.236298,
29.877081
],
[
-89.254517,
29.864552
],
[
-89.269897,
29.859997
],
[
-89.294952,
29.857149
],
[
-89.317726,
29.850885
],
[
-89.363289,
29.84576
],
[
-89.383789,
29.838928
],
[
-89.383217,
29.830385
],
[
-89.372971,
29.82526
],
[
-89.345634,
29.820135
],
[
-89.342781,
29.798496
],
[
-89.33197,
29.790524
],
[
-89.318306,
29.788815
],
[
-89.293251,
29.803053
],
[
-89.277298,
29.807608
],
[
-89.277298,
29.799635
],
[
-89.284134,
29.795649
],
[
-89.284706,
29.770021
],
[
-89.269325,
29.760912
],
[
-89.271034,
29.756355
],
[
-89.305199,
29.756926
],
[
-89.316025,
29.760912
],
[
-89.325134,
29.772301
],
[
-89.337662,
29.779135
],
[
-89.354179,
29.781412
],
[
-89.367271,
29.775148
],
[
-89.386063,
29.788815
],
[
-89.394608,
29.784828
],
[
-89.399162,
29.770592
],
[
-89.414536,
29.752371
],
[
-89.428207,
29.74155
],
[
-89.42421,
29.697638
],
[
-89.44812,
29.703316
],
[
-89.471992,
29.718597
],
[
-89.486961,
29.72592
],
[
-89.506065,
29.731651
],
[
-89.530258,
29.74375
],
[
-89.540131,
29.74375
],
[
-89.560181,
29.735472
],
[
-89.572922,
29.746616
],
[
-89.598068,
29.74757
],
[
-89.634048,
29.752981
],
[
-89.651237,
29.749479
],
[
-89.649651,
29.719872
],
[
-89.644562,
29.710957
],
[
-89.618446,
29.700768
],
[
-89.59903,
29.704908
],
[
-89.592979,
29.702042
],
[
-89.599663,
29.690262
],
[
-89.596802,
29.684212
],
[
-89.573883,
29.674025
],
[
-89.55732,
29.670204
],
[
-89.53376,
29.670204
],
[
-89.487915,
29.630405
],
[
-89.485367,
29.624357
],
[
-89.486709,
29.621003
],
[
-89.486931,
29.620447
],
[
-89.504738,
29.631508
],
[
-89.523018,
29.639427
],
[
-89.535202,
29.648567
],
[
-89.583336,
29.652834
],
[
-89.608925,
29.657707
],
[
-89.621109,
29.657101
],
[
-89.62355,
29.662584
],
[
-89.632698,
29.671724
],
[
-89.644272,
29.675381
],
[
-89.64975,
29.672941
],
[
-89.641228,
29.647961
],
[
-89.641228,
29.635773
],
[
-89.647324,
29.625414
],
[
-89.657677,
29.624195
],
[
-89.674736,
29.626633
],
[
-89.684486,
29.624804
],
[
-89.688141,
29.615055
],
[
-89.684486,
29.602867
],
[
-89.671082,
29.588243
],
[
-89.668648,
29.580322
],
[
-89.684486,
29.563263
],
[
-89.684486,
29.551073
],
[
-89.681092,
29.534487
],
[
-89.69623,
29.525004
],
[
-89.699698,
29.523423
],
[
-89.700845,
29.520785
],
[
-89.700501,
29.515967
],
[
-89.693877,
29.508559
],
[
-89.665813,
29.49002
],
[
-89.644039,
29.492343
],
[
-89.63533,
29.489294
],
[
-89.617558,
29.468298
],
[
-89.596533,
29.456303
],
[
-89.592474,
29.449822
],
[
-89.589536,
29.437662
],
[
-89.577096,
29.433692
],
[
-89.574635,
29.435734
],
[
-89.574653,
29.4411
],
[
-89.548686,
29.465723
],
[
-89.528429,
29.454702
],
[
-89.53215,
29.434567
],
[
-89.531943,
29.425679
],
[
-89.518368,
29.40023
],
[
-89.508551,
29.386168
],
[
-89.505038,
29.38604
],
[
-89.487308,
29.393346
],
[
-89.484354,
29.397471
],
[
-89.482318,
29.406222
],
[
-89.47714,
29.411241
],
[
-89.470142,
29.401471
],
[
-89.457303,
29.393148
],
[
-89.42238,
29.390628
],
[
-89.380001,
29.391785
],
[
-89.373109,
29.387175
],
[
-89.355528,
29.381569
],
[
-89.340304,
29.381412
],
[
-89.336589,
29.378228
],
[
-89.347615,
29.365
],
[
-89.350694,
29.349544
],
[
-89.32317,
29.343982
],
[
-89.303766,
29.357455
],
[
-89.283028,
29.356467
],
[
-89.272543,
29.351195
],
[
-89.2653,
29.345352
],
[
-89.257852,
29.336872
],
[
-89.253545,
29.322802
],
[
-89.24087,
29.310081
],
[
-89.224192,
29.313792
],
[
-89.223444,
29.318066
],
[
-89.219734,
29.324412
],
[
-89.204703,
29.338674
],
[
-89.200389,
29.344418
],
[
-89.200599,
29.347672
],
[
-89.189354,
29.345061
],
[
-89.179547,
29.339608
],
[
-89.177351,
29.33521
],
[
-89.178221,
29.32697
],
[
-89.165015,
29.303039
],
[
-89.157593,
29.296691
],
[
-89.140275,
29.291085
],
[
-89.134337,
29.27934
],
[
-89.136979,
29.275239
],
[
-89.129688,
29.265632
],
[
-89.100106,
29.25022
],
[
-89.096173,
29.24293
],
[
-89.095544,
29.238028
],
[
-89.098389,
29.232963
],
[
-89.105833,
29.231608
],
[
-89.106244,
29.215912
],
[
-89.10065,
29.206314
],
[
-89.090724,
29.199992
],
[
-89.068265,
29.204166
],
[
-89.067371,
29.208636
],
[
-89.029103,
29.220956
],
[
-89.02185,
29.218162
],
[
-89.015192,
29.211561
],
[
-89.000674,
29.180091
],
[
-89.00529,
29.164949
],
[
-89.013254,
29.16328
],
[
-89.018344,
29.165046
],
[
-89.024269,
29.170043
],
[
-89.043919,
29.162528
],
[
-89.047233,
29.157833
],
[
-89.03873,
29.14238
],
[
-89.032004,
29.144747
],
[
-89.024149,
29.137298
],
[
-89.023942,
29.1337
],
[
-89.026031,
29.130126
],
[
-89.051953,
29.106554
],
[
-89.055475,
29.084167
],
[
-89.062335,
29.070234
],
[
-89.09126,
29.066931
],
[
-89.098068,
29.067984
],
[
-89.105009,
29.073641
],
[
-89.121542,
29.069074
],
[
-89.143453,
29.047591
],
[
-89.156339,
29.028782
],
[
-89.162,
29.01586
],
[
-89.162326,
29.011713
],
[
-89.164788,
29.008703
],
[
-89.16985,
29.008703
],
[
-89.175732,
29.012123
],
[
-89.186061,
29.017993
],
[
-89.18215,
29.025486
],
[
-89.189893,
29.032635
],
[
-89.197871,
29.029701
],
[
-89.202563,
29.031603
],
[
-89.211144,
29.040813
],
[
-89.216101,
29.056371
],
[
-89.215531,
29.06141
],
[
-89.217201,
29.067275
],
[
-89.225865,
29.07866
],
[
-89.23631,
29.084605
],
[
-89.254726,
29.083261
],
[
-89.257283,
29.081086
],
[
-89.256869,
29.0738
],
[
-89.25364,
29.064954
],
[
-89.259354,
29.058358
],
[
-89.283215,
29.053325
],
[
-89.29109,
29.053097
],
[
-89.304888,
29.046379
],
[
-89.315389,
29.039081
],
[
-89.318102,
29.035342
],
[
-89.315182,
29.032662
],
[
-89.32485,
29.013805
],
[
-89.335228,
29.015003
],
[
-89.338249,
29.012935
],
[
-89.383814,
28.947434
],
[
-89.41148,
28.925011
],
[
-89.419865,
28.929709
],
[
-89.412388,
28.957504
],
[
-89.408157,
28.965341
],
[
-89.398104,
28.977016
],
[
-89.382106,
28.981525
],
[
-89.375049,
28.985368
],
[
-89.334735,
29.040335
],
[
-89.339828,
29.052221
],
[
-89.354798,
29.072543
],
[
-89.374522,
29.084174
],
[
-89.405654,
29.086936
],
[
-89.411154,
29.105838
],
[
-89.409371,
29.127855
],
[
-89.417718,
29.13869
],
[
-89.428965,
29.14451
],
[
-89.432932,
29.149023
],
[
-89.447472,
29.178576
],
[
-89.455829,
29.190991
],
[
-89.47231,
29.20755
],
[
-89.482844,
29.215053
],
[
-89.5366,
29.236212
],
[
-89.606651,
29.252023
],
[
-89.671781,
29.289028
],
[
-89.697258,
29.296679
],
[
-89.726162,
29.304026
],
[
-89.782149,
29.311132
],
[
-89.819859,
29.310241
],
[
-89.850305,
29.311768
],
[
-89.855109,
29.334997
],
[
-89.853699,
29.34064
],
[
-89.847124,
29.349186
],
[
-89.835,
29.359043
],
[
-89.820824,
29.377486
],
[
-89.816916,
29.384385
],
[
-89.816155,
29.393518
],
[
-89.816916,
29.398845
],
[
-89.819199,
29.404173
],
[
-89.822243,
29.4095
],
[
-89.826049,
29.415589
],
[
-89.835392,
29.418538
],
[
-89.843553,
29.421677
],
[
-89.845075,
29.434615
],
[
-89.836773,
29.45404
],
[
-89.833659,
29.456686
],
[
-89.833659,
29.459731
],
[
-89.832898,
29.463536
],
[
-89.833659,
29.467341
],
[
-89.83442,
29.470386
],
[
-89.840509,
29.47343
],
[
-89.849642,
29.477996
],
[
-89.86258,
29.476474
],
[
-89.876224,
29.472168
],
[
-89.902179,
29.460011
],
[
-89.918999,
29.444254
],
[
-89.932598,
29.429288
],
[
-89.95543,
29.428527
],
[
-89.96195,
29.432874
],
[
-89.964563,
29.434615
],
[
-89.972934,
29.443748
],
[
-89.991961,
29.463536
],
[
-90.01251,
29.462775
],
[
-90.018598,
29.45212
],
[
-90.022404,
29.444509
],
[
-90.029466,
29.432015
],
[
-90.032298,
29.427005
],
[
-90.031536,
29.412545
],
[
-90.033295,
29.393274
],
[
-90.029468,
29.388136
],
[
-90.029614,
29.386658
],
[
-90.029967,
29.383087
],
[
-90.030761,
29.375043
],
[
-90.030764,
29.375008
],
[
-90.030855,
29.374876
],
[
-90.033604,
29.370851
],
[
-90.035415,
29.368201
],
[
-90.036374,
29.363661
],
[
-90.032842,
29.348624
],
[
-90.031815,
29.344251
],
[
-90.034275,
29.322661
],
[
-90.028536,
29.307083
],
[
-90.013778,
29.30271
],
[
-90.009678,
29.294785
],
[
-90.016288,
29.284257
],
[
-90.019517,
29.282213
],
[
-90.032088,
29.280027
],
[
-90.043293,
29.282487
],
[
-90.057094,
29.281331
],
[
-90.061057,
29.276748
],
[
-90.059691,
29.272648
],
[
-90.060511,
29.267729
],
[
-90.070622,
29.262537
],
[
-90.086747,
29.259257
],
[
-90.091119,
29.261443
],
[
-90.097678,
29.26199
],
[
-90.101231,
29.259804
],
[
-90.096038,
29.240673
],
[
-90.073355,
29.227282
],
[
-90.073355,
29.210611
],
[
-90.070622,
29.208698
],
[
-90.06361,
29.209474
],
[
-90.04291,
29.211765
],
[
-90.019772,
29.231903
],
[
-90.005718,
29.240627
],
[
-89.969981,
29.255753
],
[
-89.965667,
29.259126
],
[
-89.959509,
29.267677
],
[
-89.951175,
29.266124
],
[
-89.949925,
29.263154
],
[
-89.950756,
29.260801
],
[
-89.95646,
29.253744
],
[
-90.022029,
29.216065
],
[
-90.058512,
29.183687
],
[
-90.079276,
29.16997
],
[
-90.088684,
29.162574
],
[
-90.104162,
29.150407
],
[
-90.174273,
29.105301
],
[
-90.223587,
29.085075
],
[
-90.231984,
29.08773
],
[
-90.245283,
29.085824
],
[
-90.343293,
29.057062
],
[
-90.348768,
29.057817
],
[
-90.349891,
29.063681
],
[
-90.325514,
29.075138
],
[
-90.304129,
29.077332
],
[
-90.29293,
29.078761
],
[
-90.282983,
29.082326
],
[
-90.26629,
29.089421
],
[
-90.258145,
29.091627
],
[
-90.253141,
29.093772
],
[
-90.249806,
29.100919
],
[
-90.250044,
29.108067
],
[
-90.243849,
29.11045
],
[
-90.234235,
29.110268
],
[
-90.234405,
29.128824
],
[
-90.243435,
29.136311
],
[
-90.248629,
29.13837
],
[
-90.26901,
29.139242
],
[
-90.280516,
29.142521
],
[
-90.27832,
29.150691
],
[
-90.297,
29.171317
],
[
-90.302846,
29.175098
],
[
-90.302948,
29.187948
],
[
-90.300885,
29.196171
],
[
-90.293183,
29.199789
],
[
-90.2828,
29.192545
],
[
-90.275851,
29.193668
],
[
-90.271251,
29.204639
],
[
-90.286621,
29.225694
],
[
-90.300304,
29.231241
],
[
-90.311663,
29.237954
],
[
-90.311523,
29.256374
],
[
-90.316093,
29.264777
],
[
-90.332796,
29.276956
],
[
-90.367166,
29.274128
],
[
-90.368154,
29.270736
],
[
-90.367012,
29.264956
],
[
-90.372565,
29.258923
],
[
-90.387924,
29.252786
],
[
-90.383857,
29.235606
],
[
-90.399465,
29.201046
],
[
-90.408578,
29.196421
],
[
-90.409416,
29.196135
],
[
-90.432912,
29.188132
],
[
-90.435907,
29.188449
],
[
-90.443954,
29.19583
],
[
-90.472489,
29.192688
],
[
-90.473273,
29.195224
],
[
-90.468773,
29.198469
],
[
-90.467233,
29.202549
],
[
-90.485786,
29.209843
],
[
-90.494928,
29.216713
],
[
-90.490987,
29.220883
],
[
-90.46832,
29.227532
],
[
-90.465764,
29.242951
],
[
-90.462866,
29.249809
],
[
-90.450674,
29.263739
],
[
-90.452186,
29.26625
],
[
-90.472779,
29.272556
],
[
-90.495299,
29.287277
],
[
-90.510555,
29.290925
],
[
-90.517277,
29.282719
],
[
-90.526216,
29.276492
],
[
-90.552005,
29.278512
],
[
-90.565436,
29.285111
],
[
-90.582525,
29.276037
],
[
-90.589724,
29.248521
],
[
-90.58847,
29.245863
],
[
-90.583924,
29.242886
],
[
-90.576506,
29.243986
],
[
-90.565378,
29.242475
],
[
-90.544547,
29.230683
],
[
-90.543245,
29.227843
],
[
-90.544311,
29.224292
],
[
-90.556501,
29.219913
],
[
-90.55739,
29.207881
],
[
-90.560889,
29.204261
],
[
-90.575277,
29.206827
],
[
-90.618413,
29.20329
],
[
-90.624161,
29.210366
],
[
-90.62742,
29.211004
],
[
-90.633819,
29.209128
],
[
-90.640223,
29.196554
],
[
-90.645612,
29.175867
],
[
-90.645169,
29.172958
],
[
-90.640863,
29.171261
],
[
-90.636973,
29.164572
],
[
-90.647042,
29.12858
],
[
-90.677724,
29.118742
],
[
-90.691109,
29.121722
],
[
-90.700893,
29.12147
],
[
-90.718035,
29.116611
],
[
-90.731239,
29.122886
],
[
-90.764189,
29.113374
],
[
-90.773458,
29.100133
],
[
-90.799444,
29.087377
],
[
-90.802053,
29.083322
],
[
-90.803699,
29.063709
],
[
-90.79872,
29.054841
],
[
-90.781981,
29.049431
],
[
-90.765188,
29.049403
],
[
-90.750092,
29.053247
],
[
-90.7253,
29.066616
],
[
-90.709105,
29.064305
],
[
-90.70535,
29.062679
],
[
-90.702102,
29.060275
],
[
-90.692205,
29.059607
],
[
-90.683645,
29.060944
],
[
-90.676958,
29.063619
],
[
-90.665589,
29.06723
],
[
-90.652348,
29.069237
],
[
-90.644189,
29.07151
],
[
-90.641247,
29.072313
],
[
-90.63924,
29.072848
],
[
-90.637623,
29.072084
],
[
-90.636033,
29.069792
],
[
-90.637495,
29.066608
],
[
-90.648058,
29.062649
],
[
-90.730899,
29.042259
],
[
-90.755677,
29.038997
],
[
-90.79768,
29.039741
],
[
-90.811473,
29.03658
],
[
-90.839345,
29.039167
],
[
-90.842762,
29.042947
],
[
-90.844849,
29.048721
],
[
-90.841226,
29.054266
],
[
-90.844593,
29.06728
],
[
-90.862757,
29.094863
],
[
-90.867766,
29.095434
],
[
-90.877583,
29.104891
],
[
-90.885351,
29.117016
],
[
-90.898215,
29.131342
],
[
-90.925797,
29.153116
],
[
-90.941877,
29.162373
],
[
-90.948091,
29.174104
],
[
-90.961278,
29.180817
],
[
-90.981458,
29.171211
],
[
-91.000096,
29.169481
],
[
-91.023955,
29.174784
],
[
-91.031786,
29.182188
],
[
-91.05863,
29.181734
],
[
-91.094015,
29.187711
],
[
-91.11476,
29.207918
],
[
-91.129141,
29.215863
],
[
-91.199647,
29.221287
],
[
-91.219032,
29.226051
],
[
-91.278792,
29.247776
],
[
-91.302677,
29.265958
],
[
-91.334885,
29.298775
],
[
-91.33275,
29.305816
],
[
-91.309314,
29.305698
],
[
-91.299054,
29.309017
],
[
-91.291821,
29.311357
],
[
-91.29042,
29.313062
],
[
-91.279742,
29.326058
],
[
-91.276647,
29.329825
],
[
-91.276187,
29.332783
],
[
-91.274308,
29.344878
],
[
-91.270582,
29.355415
],
[
-91.270053,
29.356912
],
[
-91.26994,
29.357231
],
[
-91.266589,
29.361218
],
[
-91.265479,
29.361767
],
[
-91.251546,
29.368659
],
[
-91.251232,
29.368814
],
[
-91.249517,
29.369662
],
[
-91.249109,
29.369864
],
[
-91.245558,
29.37058
],
[
-91.238515,
29.371999
],
[
-91.235348,
29.370638
],
[
-91.222377,
29.360703
],
[
-91.207299,
29.360703
],
[
-91.197465,
29.369882
],
[
-91.200087,
29.38955
],
[
-91.218463,
29.407235
],
[
-91.215976,
29.412505
],
[
-91.214284,
29.416089
],
[
-91.211999,
29.420931
],
[
-91.2151,
29.427542
],
[
-91.217448,
29.432549
],
[
-91.218067,
29.433193
],
[
-91.219242,
29.434418
],
[
-91.221166,
29.436421
],
[
-91.24164,
29.441021
],
[
-91.251319,
29.444483
],
[
-91.258226,
29.446954
],
[
-91.259537,
29.458001
],
[
-91.259844,
29.460582
],
[
-91.259988,
29.461803
],
[
-91.260024,
29.462102
],
[
-91.261588,
29.464954
],
[
-91.265649,
29.472362
],
[
-91.2813,
29.481547
],
[
-91.294325,
29.476894
],
[
-91.335742,
29.485886
],
[
-91.343567,
29.492593
],
[
-91.34588,
29.504538
],
[
-91.356625,
29.515191
],
[
-91.402214,
29.511914
],
[
-91.420449,
29.515745
],
[
-91.42713,
29.520215
],
[
-91.432337,
29.53283
],
[
-91.439941,
29.540434
],
[
-91.447345,
29.544749
],
[
-91.468748,
29.544299
],
[
-91.517274,
29.52974
],
[
-91.531021,
29.531543
],
[
-91.531471,
29.535374
],
[
-91.52584,
29.545946
],
[
-91.525523,
29.551904
],
[
-91.529217,
29.558598
],
[
-91.537445,
29.565888
],
[
-91.541974,
29.594353
],
[
-91.553537,
29.632766
],
[
-91.560908,
29.63735
],
[
-91.570589,
29.638312
],
[
-91.581843,
29.637165
],
[
-91.600179,
29.631156
],
[
-91.625114,
29.626195
],
[
-91.643832,
29.630625
],
[
-91.648941,
29.633635
],
[
-91.648657,
29.636713
],
[
-91.646478,
29.639427
],
[
-91.643198,
29.640274
],
[
-91.637344,
29.647217
],
[
-91.627286,
29.662132
],
[
-91.625114,
29.671679
],
[
-91.626826,
29.684753
],
[
-91.623829,
29.69924
],
[
-91.618479,
29.710816
],
[
-91.61809,
29.720694
],
[
-91.621512,
29.735429
],
[
-91.632829,
29.742576
],
[
-91.667128,
29.745822
],
[
-91.710935,
29.738993
],
[
-91.737253,
29.74937
],
[
-91.752259,
29.748264
],
[
-91.783674,
29.740689
],
[
-91.830499,
29.718918
],
[
-91.845962,
29.708763
],
[
-91.85864,
29.703121
],
[
-91.866516,
29.70715
],
[
-91.88075,
29.710839
],
[
-91.880999,
29.713338
],
[
-91.878331,
29.716087
],
[
-91.875637,
29.722316
],
[
-91.87557,
29.722471
],
[
-91.87557,
29.728043
],
[
-91.878355,
29.735007
],
[
-91.879748,
29.742668
],
[
-91.878355,
29.751025
],
[
-91.874761,
29.760083
],
[
-91.859151,
29.783331
],
[
-91.854677,
29.807436
],
[
-91.869998,
29.828328
],
[
-91.889118,
29.836023
],
[
-91.90689,
29.83094
],
[
-91.915989,
29.815654
],
[
-91.919143,
29.815379
],
[
-91.940723,
29.817008
],
[
-91.96123,
29.810221
],
[
-91.970443,
29.80431
],
[
-91.978381,
29.799217
],
[
-91.983871,
29.794516
],
[
-92.035666,
29.781662
],
[
-92.056398,
29.772313
],
[
-92.107486,
29.744429
],
[
-92.144431,
29.716418
],
[
-92.149349,
29.697052
],
[
-92.134347,
29.669516
],
[
-92.132804,
29.660462
],
[
-92.111787,
29.62177
],
[
-92.093419,
29.618694
],
[
-92.06564,
29.619967
],
[
-92.04767,
29.624527
],
[
-92.02532,
29.625647
],
[
-92.01627,
29.618741
],
[
-92.000371,
29.613143
],
[
-92.000003,
29.613013
],
[
-91.965031,
29.608019
],
[
-91.939903,
29.610291
],
[
-91.935024,
29.612239
],
[
-91.929567,
29.61884
],
[
-91.922825,
29.633173
],
[
-91.898996,
29.63701
],
[
-91.896763,
29.634618
],
[
-91.882318,
29.62977
],
[
-91.866113,
29.631583
],
[
-91.863018,
29.633739
],
[
-91.841294,
29.62962
],
[
-91.838981,
29.624475
],
[
-91.840921,
29.619913
],
[
-91.838297,
29.616041
],
[
-91.821693,
29.606049
],
[
-91.803831,
29.599562
],
[
-91.784976,
29.595204
],
[
-91.7785,
29.58922
],
[
-91.774805,
29.582113
],
[
-91.774686,
29.576387
],
[
-91.74632,
29.574337
],
[
-91.719102,
29.565568
],
[
-91.715642,
29.565844
],
[
-91.712002,
29.56474
],
[
-91.709205,
29.561012
],
[
-91.711654,
29.55427
],
[
-91.733956,
29.539504
],
[
-91.747058,
29.535144
],
[
-91.765448,
29.520844
],
[
-91.771927,
29.504871
],
[
-91.772529,
29.499016
],
[
-91.770069,
29.493812
],
[
-91.770516,
29.488953
],
[
-91.782387,
29.482882
],
[
-91.789119,
29.482081
],
[
-91.800121,
29.486828
],
[
-91.803448,
29.486851
],
[
-91.814609,
29.482061
],
[
-91.821576,
29.473925
],
[
-91.8385,
29.478874
],
[
-91.848665,
29.484144
],
[
-91.852598,
29.494984
],
[
-91.862324,
29.502393
],
[
-91.878746,
29.502937
],
[
-91.886815,
29.505577
],
[
-91.906175,
29.518052
],
[
-91.915322,
29.518513
],
[
-91.947007,
29.53316
],
[
-91.969312,
29.536893
],
[
-91.985726,
29.547708
],
[
-92.02681,
29.566805
],
[
-92.035462,
29.57864
],
[
-92.041168,
29.581648
],
[
-92.046316,
29.584362
],
[
-92.066533,
29.583842
],
[
-92.105923,
29.586335
],
[
-92.158624,
29.581616
],
[
-92.21259,
29.562479
],
[
-92.25186,
29.539354
],
[
-92.280392,
29.533434
],
[
-92.309357,
29.533026
],
[
-92.347236,
29.539394
],
[
-92.402165,
29.551269
],
[
-92.473585,
29.561081
],
[
-92.558602,
29.569935
],
[
-92.61627,
29.578729
],
[
-92.617725,
29.579092
],
[
-92.653651,
29.588065
],
[
-92.744126,
29.617608
],
[
-92.871232,
29.670028
],
[
-92.940455,
29.701033
],
[
-92.974305,
29.71398
],
[
-93.065354,
29.740966
],
[
-93.088182,
29.749125
],
[
-93.17693,
29.770487
],
[
-93.226934,
29.777519
],
[
-93.267456,
29.778113
],
[
-93.295573,
29.775071
],
[
-93.342104,
29.763402
],
[
-93.344993,
29.759618
],
[
-93.347331,
29.759046
],
[
-93.372029,
29.763049
],
[
-93.438973,
29.768949
],
[
-93.475252,
29.769242
],
[
-93.538462,
29.763299
],
[
-93.590786,
29.755649
],
[
-93.635304,
29.752806
],
[
-93.68364,
29.747153
],
[
-93.741948,
29.736343
],
[
-93.766048,
29.7295
],
[
-93.79925,
29.71526
],
[
-93.818995,
29.704076
],
[
-93.837971,
29.690619
],
[
-93.892246,
29.765241
],
[
-93.89847,
29.771577
],
[
-93.890679,
29.843159
],
[
-93.840799,
29.914423
],
[
-93.789431,
29.987812
],
[
-93.75663,
30.014163
],
[
-93.752038,
30.016403
],
[
-93.722481,
30.050898
],
[
-93.721589,
30.051939
],
[
-93.712101,
30.067346
],
[
-93.695684,
30.135729
],
[
-93.695252,
30.1476
],
[
-93.712008,
30.194304
],
[
-93.716223,
30.244318
],
[
-93.720575,
30.295961
],
[
-93.723586,
30.294951
],
[
-93.735896,
30.29944
],
[
-93.765822,
30.333318
],
[
-93.757654,
30.390423
],
[
-93.751437,
30.396288
],
[
-93.741701,
30.403007
],
[
-93.702665,
30.429947
],
[
-93.698302,
30.438657
],
[
-93.697828,
30.443838
],
[
-93.710117,
30.5064
],
[
-93.740045,
30.538765
],
[
-93.727844,
30.57407
],
[
-93.578395,
30.802047
],
[
-93.563292,
30.818503
],
[
-93.558672,
30.868829
],
[
-93.558617,
30.869424
],
[
-93.55497,
30.876685
],
[
-93.554576,
30.87747
],
[
-93.530936,
30.924534
],
[
-93.540354,
31.008135
],
[
-93.527644,
31.074509
],
[
-93.531744,
31.180817
],
[
-93.535097,
31.185614
],
[
-93.548931,
31.186601
],
[
-93.55254,
31.185605
],
[
-93.552649,
31.185575
],
[
-93.579215,
31.167422
],
[
-93.588503,
31.165581
],
[
-93.598828,
31.174679
],
[
-93.599705,
31.176456
],
[
-93.602315,
31.181742
],
[
-93.607243,
31.204806
],
[
-93.608158,
31.227835
],
[
-93.614402,
31.260869
],
[
-93.620829,
31.271299
],
[
-93.644407,
31.27711
],
[
-93.671676,
31.299586
],
[
-93.640805,
31.372546
],
[
-93.670182,
31.387184
],
[
-93.695866,
31.409392
],
[
-93.729613,
31.487922
],
[
-93.798087,
31.534044
],
[
-93.818582,
31.554826
],
[
-93.834923,
31.58621
],
[
-93.834924,
31.586211
],
[
-93.82629,
31.614903
],
[
-93.817059,
31.671694
],
[
-93.812477,
31.715246
],
[
-93.840029,
31.800596
],
[
-93.878225,
31.844276
],
[
-93.889193,
31.856819
],
[
-93.92029,
31.888651
],
[
-93.932135,
31.893672
],
[
-93.975377,
31.92366
],
[
-94.01563,
31.979856
],
[
-94.04272,
31.999265
],
[
-94.0427,
32.056012
],
[
-94.042337,
32.119914
],
[
-94.042681,
32.137956
],
[
-94.042591,
32.158097
],
[
-94.042539,
32.166826
],
[
-94.042566,
32.166894
],
[
-94.042621,
32.196005
],
[
-94.042662,
32.218146
],
[
-94.042732,
32.26962
],
[
-94.042733,
32.269696
],
[
-94.042739,
32.363559
],
[
-94.042763,
32.373332
],
[
-94.042901,
32.392283
],
[
-94.042923,
32.399918
],
[
-94.042899,
32.400659
],
[
-94.042986,
32.435507
],
[
-94.042908,
32.439891
],
[
-94.042903,
32.470386
],
[
-94.042875,
32.471348
],
[
-94.042902,
32.472906
],
[
-94.042995,
32.478004
],
[
-94.042955,
32.480261
],
[
-94.043072,
32.4843
],
[
-94.043089,
32.486561
],
[
-94.042911,
32.492852
],
[
-94.042885,
32.505145
],
[
-94.043081,
32.513613
],
[
-94.043142,
32.559502
],
[
-94.043083,
32.564261
],
[
-94.042919,
32.610142
],
[
-94.042929,
32.61826
],
[
-94.042926,
32.622015
],
[
-94.042824,
32.640305
],
[
-94.04278,
32.643466
],
[
-94.042913,
32.655127
],
[
-94.043147,
32.69303
]
]
================================================
FILE: tests/coords_complex.json
================================================
[[3369.0, 1994.25], [3368.25, 1995.0], [3368.0714285714284, 1996.0], [3368.027027027027, 1997.0], [3368.0142857142855, 1998.0], [3368.0108695652175, 1999.0], [3368.0066666666667, 2000.0], [3368.0041152263375, 2001.0], [3368.0, 2001.090909090909], [3367.090909090909, 2002.0], [3367.0158730158732, 2003.0], [3367.006711409396, 2004.0], [3367.0042016806724, 2005.0], [3367.0, 2005.111111111111], [3366.1111111111113, 2006.0], [3366.0204081632655, 2007.0], [3366.010101010101, 2008.0], [3366.004739336493, 2009.0], [3366.0, 2009.076923076923], [3365.076923076923, 2010.0], [3365.0073529411766, 2011.0], [3365.0, 2012.0], [3364.021739130435, 2013.0], [3364.0057142857145, 2014.0], [3364.0, 2014.1666666666667], [3363.1666666666665, 2015.0], [3363.0163934426228, 2016.0], [3363.005347593583, 2017.0], [3363.0, 2017.111111111111], [3362.1111111111113, 2018.0], [3362.0054945054944, 2019.0], [3362.0, 2019.03125], [3361.03125, 2020.0], [3361.0048543689322, 2021.0], [3361.0, 2021.0238095238096], [3360.0238095238096, 2022.0], [3360.0045662100456, 2023.0], [3360.0, 2023.0188679245282], [3359.0188679245284, 2024.0], [3359.004424778761, 2025.0], [3359.0, 2025.025], [3358.025, 2026.0], [3358.0, 2026.111111111111], [3357.1111111111113, 2027.0], [3357.0, 2027.5], [3356.5, 2028.0], [3356.007633587786, 2029.0], [3356.0, 2029.0192307692307], [3355.019230769231, 2030.0], [3355.0, 2030.1666666666667], [3354.1666666666665, 2031.0], [3354.00625, 2032.0], [3354.0, 2032.010752688172], [3353.010752688172, 2033.0], [3353.0, 2033.0075187969924], [3352.0075187969924, 2034.0], [3352.0, 2034.0071428571428], [3351.0071428571428, 2035.0], [3351.0, 2035.0069444444443], [3350.0069444444443, 2036.0], [3350.0, 2036.009090909091], [3349.009090909091, 2037.0], [3349.0, 2037.0058479532163], [3348.0, 2037.111111111111], [3347.1111111111113, 2038.0], [3347.0, 2038.012048192771], [3346.012048192771, 2039.0], [3346.0, 2039.0061728395062], [3345.0, 2039.3333333333333], [3344.3333333333335, 2040.0], [3344.0, 2040.0089285714287], [3343.0, 2040.0588235294117], [3342.0588235294117, 2041.0], [3342.0, 2041.0052083333333], [3341.0, 2041.0384615384614], [3340.0384615384614, 2042.0], [3340.0, 2042.0052631578947], [3339.0, 2042.0106382978724], [3338.0, 2042.0185185185185], [3337.0, 2042.1], [3336.1, 2043.0], [3336.0, 2043.0046728971963], [3335.0, 2043.0093457943926], [3334.0, 2043.02], [3333.0, 2043.0188679245282], [3332.0, 2043.02], [3331.0, 2043.0294117647059], [3330.0, 2043.111111111111], [3329.0, 2043.3333333333333], [3328.0, 2043.142857142857], [3327.0, 2043.0384615384614], [3326.0, 2043.017857142857], [3325.0, 2043.0119047619048], [3324.0, 2043.0084745762713], [3323.0, 2043.0076335877864], [3322.0, 2043.005], [3321.5, 2043.0], [3321.0, 2042.5], [3320.0, 2042.0212765957447], [3319.0, 2042.0081967213114], [3318.0, 2042.0044843049327], [3317.6666666666665, 2042.0], [3317.0, 2041.3333333333333], [3316.0, 2041.047619047619], [3315.0, 2041.0105263157895], [3314.0, 2041.0], [3313.0, 2040.017543859649], [3312.0, 2040.0050761421319], [3311.923076923077, 2040.0], [3311.0, 2039.076923076923], [3310.0, 2039.008547008547], [3309.0, 2039.0041841004183], [3308.9565217391305, 2039.0], [3308.0, 2038.0434782608695], [3307.0, 2038.004854368932], [3306.983333333333, 2038.0], [3306.0, 2037.0166666666667], [3305.0, 2037.0], [3304.0, 2036.0135135135135], [3303.0, 2036.0041666666666], [3302.9803921568628, 2036.0], [3302.0, 2035.0196078431372], [3301.0, 2035.0], [3300.0, 2034.00625], [3299.980769230769, 2034.0], [3299.0, 2033.0192307692307], [3298.75, 2033.0], [3298.0, 2032.25], [3297.0, 2032.0066666666667], [3296.9565217391305, 2032.0], [3296.0, 2031.0434782608695], [3295.5, 2031.0], [3295.0, 2030.5], [3294.0, 2030.0], [3293.0, 2029.0071942446043], [3292.9868421052633, 2029.0], [3292.0, 2028.0131578947369], [3291.9285714285716, 2028.0], [3291.0, 2027.0714285714287], [3290.5, 2027.0], [3290.0, 2026.5], [3289.8, 2026.0], [3289.0, 2025.2], [3288.8571428571427, 2025.0], [3288.0, 2024.142857142857], [3287.75, 2024.0], [3287.0, 2023.25], [3286.0, 2023.0], [3285.75, 2022.0], [3285.0, 2021.25], [3284.9565217391305, 2021.0], [3284.0, 2020.0434782608695], [3283.972972972973, 2020.0], [3283.0, 2019.027027027027], [3282.9777777777776, 2019.0], [3282.0, 2018.0222222222221], [3281.9930555555557, 2018.0], [3281.8, 2017.0], [3281.0, 2016.2], [3280.9821428571427, 2016.0], [3280.0, 2015.017857142857], [3279.9908256880735, 2015.0], [3279.0, 2014.0], [3278.9861111111113, 2013.0], [3278.5, 2012.0], [3278.0, 2011.5], [3277.9777777777776, 2011.0], [3277.0, 2010.0222222222221], [3276.9936305732485, 2010.0], [3276.9615384615386, 2009.0], [3276.0, 2008.0384615384614], [3275.9953917050693, 2008.0], [3275.9875, 2007.0], [3275.0, 2006.0], [3274.9836065573772, 2005.0], [3274.8, 2004.0], [3274.0, 2003.2], [3273.9950980392155, 2003.0], [3273.987012987013, 2002.0], [3273.0, 2001.0], [3272.993288590604, 2000.0], [3272.9814814814813, 1999.0], [3272.9166666666665, 1998.0], [3272.0, 1997.0833333333333], [3271.995575221239, 1997.0], [3271.99, 1996.0], [3271.9375, 1995.0], [3271.5, 1994.0], [3271.0, 1993.5], [3270.9954954954956, 1993.0], [3270.9910714285716, 1992.0], [3270.96, 1991.0], [3270.8571428571427, 1990.0], [3270.0, 1989.0], [3269.9945652173915, 1988.0], [3269.9850746268658, 1987.0], [3269.9523809523807, 1986.0], [3269.875, 1985.0], [3269.0, 1984.125], [3268.9958847736625, 1984.0], [3268.9942857142855, 1983.0], [3268.9811320754716, 1982.0], [3268.9583333333335, 1981.0], [3268.875, 1980.0], [3268.0, 1979.125], [3267.9958847736625, 1979.0], [3267.991150442478, 1978.0], [3267.9756097560976, 1977.0], [3267.923076923077, 1976.0], [3267.0, 1975.076923076923], [3266.9958333333334, 1975.0], [3266.9928571428572, 1974.0], [3266.962962962963, 1973.0], [3266.75, 1972.0], [3266.0, 1971.25], [3265.994764397906, 1971.0], [3265.978723404255, 1970.0], [3265.0, 1969.0212765957447], [3264.9958847736625, 1969.0], [3264.9894736842107, 1968.0], [3264.0, 1967.0], [3263.974358974359, 1966.0], [3263.0, 1965.025641025641], [3262.9942528735633, 1965.0], [3262.875, 1964.0], [3262.0, 1963.125], [3261.9473684210525, 1963.0], [3261.0, 1962.0526315789473], [3260.989898989899, 1962.0], [3260.0, 1961.010101010101], [3259.964285714286, 1961.0], [3259.0, 1960.0357142857142], [3258.8, 1960.0], [3258.0, 1959.2], [3257.0, 1959.0058479532163], [3256.962962962963, 1959.0], [3256.0, 1958.037037037037], [3255.0, 1958.0045454545455], [3254.9821428571427, 1958.0], [3254.0, 1957.017857142857], [3253.0, 1957.0051282051281], [3252.8, 1957.0], [3252.0, 1956.2], [3251.0, 1956.0113636363637], [3250.0, 1956.0045454545455], [3249.8, 1956.0], [3249.0, 1955.2], [3248.0, 1955.025], [3247.0, 1955.0073529411766], [3246.0, 1955.0045454545455], [3245.0, 1955.0], [3244.0, 1954.1], [3243.0, 1954.0181818181818], [3242.0, 1954.0081967213114], [3241.0, 1954.0081967213114], [3240.0, 1954.0060975609756], [3239.0, 1954.0046296296296], [3238.0, 1954.0042194092828], [3237.0, 1954.0], [3236.0, 1954.0], [3235.0, 1953.5], [3234.0, 1953.2], [3233.0, 1953.0714285714287], [3232.0, 1953.111111111111], [3231.0, 1953.25], [3230.0, 1953.2], [3229.0, 1953.1], [3228.0, 1953.111111111111], [3227.0, 1953.3333333333333], [3226.0, 1953.5], [3225.0, 1953.25], [3224.0, 1953.5], [3223.5, 1954.0], [3223.0, 1954.003984063745], [3222.0, 1954.004048582996], [3221.0, 1954.004608294931], [3220.0, 1954.0051546391753], [3219.0, 1954.0064516129032], [3218.0, 1954.0106382978724], [3217.0, 1954.0188679245282], [3216.0, 1954.025641025641], [3215.0, 1954.0357142857142], [3214.0, 1954.5], [3213.5, 1955.0], [3213.0, 1955.0042016806722], [3212.0, 1955.0056818181818], [3211.0, 1955.009523809524], [3210.0, 1955.0263157894738], [3209.0, 1955.5], [3208.5, 1956.0], [3208.0, 1956.004424778761], [3207.0, 1956.0068965517241], [3206.0, 1956.0526315789473], [3205.0526315789475, 1957.0], [3205.0, 1957.004132231405], [3204.0, 1957.0076923076922], [3203.0, 1957.0434782608695], [3202.0434782608695, 1958.0], [3202.0, 1958.004854368932], [3201.0, 1958.027027027027], [3200.0, 1959.0], [3199.0, 1959.027027027027], [3198.027027027027, 1960.0], [3198.0, 1960.0048076923076], [3197.0, 1960.0526315789473], [3196.0526315789475, 1961.0], [3196.0, 1961.0106382978724], [3195.0106382978724, 1962.0], [3195.0, 1962.0060240963855], [3194.0, 1962.3333333333333], [3193.3333333333335, 1963.0], [3193.0, 1963.0285714285715], [3192.0285714285715, 1964.0], [3192.0, 1964.027027027027], [3191.027027027027, 1965.0], [3191.0, 1965.014705882353], [3190.014705882353, 1966.0], [3190.0, 1966.0133333333333], [3189.0133333333333, 1967.0], [3189.0, 1967.0153846153846], [3188.0153846153844, 1968.0], [3188.0, 1968.0123456790122], [3187.0123456790125, 1969.0], [3187.0, 1969.0204081632653], [3186.0204081632655, 1970.0], [3186.0, 1970.0555555555557], [3185.0555555555557, 1971.0], [3185.0, 1971.0212765957447], [3184.021276595745, 1972.0], [3184.0, 1972.3333333333333], [3183.3333333333335, 1973.0], [3183.0, 1973.125], [3182.125, 1974.0], [3182.0, 1974.047619047619], [3181.0476190476193, 1975.0], [3181.0, 1975.1], [3180.1, 1976.0], [3180.0, 1976.111111111111], [3179.1111111111113, 1977.0], [3179.0, 1977.0151515151515], [3178.0151515151515, 1978.0], [3178.0, 1978.0140845070423], [3177.0140845070423, 1979.0], [3177.0, 1979.0043859649122], [3176.0, 1979.0166666666667], [3175.016666666667, 1980.0], [3175.0, 1980.0063694267517], [3174.0, 1980.25], [3173.25, 1981.0], [3173.0, 1981.0058823529412], [3172.0, 1981.0294117647059], [3171.029411764706, 1982.0], [3171.0, 1982.0041841004183], [3170.0, 1982.0060240963855], [3169.0, 1982.0078125], [3168.0, 1982.0181818181818], [3167.0, 1982.1666666666667], [3166.1666666666665, 1983.0], [3166.0, 1983.0039215686274], [3165.0, 1983.0], [3164.0, 1983.0], [3163.0, 1983.004048582996], [3162.5, 1983.0], [3162.0, 1982.5], [3161.0, 1982.04], [3160.0, 1982.0166666666667], [3159.0, 1982.0133333333333], [3158.0, 1982.0105263157895], [3157.0, 1982.0055555555555], [3156.6666666666665, 1982.0], [3156.0, 1981.3333333333333], [3155.0, 1981.0416666666667], [3154.0, 1981.0112359550562], [3153.0, 1981.004347826087], [3152.9714285714285, 1981.0], [3152.0, 1980.0285714285715], [3151.0, 1980.0071942446043], [3150.0, 1980.0041841004183], [3149.95, 1980.0], [3149.0, 1979.05], [3148.0, 1979.0051282051281], [3147.875, 1979.0], [3147.0, 1978.125], [3146.0, 1978.0172413793102], [3145.0, 1978.0], [3144.0, 1977.0196078431372], [3143.0, 1977.004975124378], [3142.909090909091, 1977.0], [3142.0, 1976.090909090909], [3141.0, 1976.0075757575758], [3140.8, 1976.0], [3140.0, 1975.2], [3139.0, 1975.0135135135135], [3138.0, 1975.0042372881355], [3137.98, 1975.0], [3137.0, 1974.02], [3136.0, 1974.005988023952], [3135.0, 1974.0], [3134.0, 1973.0357142857142], [3133.0, 1973.0060975609756], [3132.0, 1973.004016064257], [3131.8333333333335, 1973.0], [3131.0, 1972.1666666666667], [3130.0, 1972.0185185185185], [3129.0, 1972.0077519379845], [3128.0, 1972.0052083333333], [3127.0, 1972.004], [3126.5, 1972.0], [3126.0, 1971.5], [3125.0, 1971.1], [3124.0, 1971.090909090909], [3123.0, 1971.0555555555557], [3122.0, 1971.0333333333333], [3121.0, 1971.0357142857142], [3120.0, 1971.076923076923], [3119.0, 1971.125], [3118.0, 1971.142857142857], [3117.0, 1971.5], [3116.5, 1972.0], [3116.0, 1972.0042194092828], [3115.0, 1972.0067567567567], [3114.0, 1972.0108695652175], [3113.0, 1972.030303030303], [3112.0, 1972.5], [3111.5, 1973.0], [3111.0, 1973.0051813471503], [3110.0, 1973.0108695652175], [3109.0, 1973.03125], [3108.03125, 1974.0], [3108.0, 1974.004608294931], [3107.0, 1974.0169491525423], [3106.0, 1974.5], [3105.5, 1975.0], [3105.0, 1975.0086956521739], [3104.0, 1975.125], [3103.125, 1976.0], [3103.0, 1976.0088495575221], [3102.0, 1976.1666666666667], [3101.1666666666665, 1977.0], [3101.0, 1977.0151515151515], [3100.0151515151515, 1978.0], [3100.0, 1978.0075757575758], [3099.0, 1978.2], [3098.2, 1979.0], [3098.0, 1979.032258064516], [3097.032258064516, 1980.0], [3097.0, 1980.0357142857142], [3096.035714285714, 1981.0], [3096.0, 1981.027027027027], [3095.027027027027, 1982.0], [3095.0, 1982.0588235294117], [3094.0588235294117, 1983.0], [3094.0, 1984.0], [3093.0, 1985.0], [3092.025641025641, 1986.0], [3092.0066666666667, 1987.0], [3092.0, 1987.3333333333333], [3091.3333333333335, 1988.0], [3091.0172413793102, 1989.0], [3091.005882352941, 1990.0], [3091.0039215686274, 1991.0], [3091.0, 1991.2], [3090.2, 1992.0], [3090.125, 1993.0], [3090.125, 1994.0], [3090.090909090909, 1995.0], [3090.1666666666665, 1996.0], [3091.0, 1997.0], [3091.0039215686274, 1998.0], [3091.0046511627907, 1999.0], [3091.0080645161293, 2000.0], [3091.0434782608695, 2001.0], [3091.5, 2002.0], [3092.0, 2002.5], [3092.004761904762, 2003.0], [3092.008547008547, 2004.0], [3092.05, 2005.0], [3093.0, 2005.95], [3093.0041841004186, 2006.0], [3093.0065789473683, 2007.0], [3093.0125, 2008.0], [3093.1666666666665, 2009.0], [3094.0, 2009.8333333333333], [3094.0063694267515, 2010.0], [3094.0135135135133, 2011.0], [3094.021739130435, 2012.0], [3094.1, 2013.0], [3095.0, 2013.9], [3095.0043103448274, 2014.0], [3095.0080645161293, 2015.0], [3095.0185185185187, 2016.0], [3095.030303030303, 2017.0], [3095.035714285714, 2018.0], [3095.1428571428573, 2019.0], [3095.3333333333335, 2020.0], [3095.0714285714284, 2021.0], [3095.016129032258, 2022.0], [3095.0081967213114, 2023.0], [3095.0071428571428, 2024.0], [3095.005128205128, 2025.0], [3095.0, 2025.0714285714287], [3094.0714285714284, 2026.0], [3094.0067567567567, 2027.0], [3094.004385964912, 2028.0], [3094.0, 2028.016393442623], [3093.0163934426228, 2029.0], [3093.0, 2029.0285714285715], [3092.0285714285715, 2030.0], [3092.0, 2030.3333333333333], [3091.3333333333335, 2031.0], [3091.0060240963853, 2032.0], [3091.0, 2032.0055555555555], [3090.0, 2032.090909090909], [3089.090909090909, 2033.0], [3089.0, 2033.0277777777778], [3088.027777777778, 2034.0], [3088.0, 2034.0042735042734], [3087.0, 2034.009523809524], [3086.0, 2034.1666666666667], [3085.1666666666665, 2035.0], [3085.0, 2035.0084033613446], [3084.0, 2035.0384615384614], [3083.0, 2035.2], [3082.2, 2036.0], [3082.0, 2036.004048582996], [3081.0, 2036.0062111801242], [3080.0, 2036.0113636363637], [3079.0, 2036.012658227848], [3078.0, 2036.016393442623], [3077.0, 2036.030303030303], [3076.0, 2036.142857142857], [3075.0, 2036.3333333333333], [3074.0, 2036.2], [3073.0, 2036.3333333333333], [3072.3333333333335, 2037.0], [3072.0, 2037.004016064257], [3071.0, 2037.0046296296296], [3070.0, 2037.0063694267517], [3069.0, 2037.009523809524], [3068.0, 2037.0196078431372], [3067.0, 2037.125], [3066.0, 2038.0], [3065.0, 2038.0058479532163], [3064.0, 2038.04], [3063.04, 2039.0], [3063.0, 2039.0047619047618], [3062.0, 2039.027027027027], [3061.027027027027, 2040.0], [3061.0, 2040.0065789473683], [3060.0, 2041.0], [3059.005882352941, 2042.0], [3059.0, 2042.0086956521739], [3058.008695652174, 2043.0], [3058.0, 2043.0434782608695], [3057.0434782608695, 2044.0], [3057.005128205128, 2045.0], [3057.0, 2045.0204081632653], [3056.0204081632655, 2046.0], [3056.0059523809523, 2047.0], [3056.0, 2048.0], [3055.03125, 2049.0], [3055.0096153846152, 2050.0], [3055.005917159763, 2051.0], [3055.0041841004186, 2052.0], [3055.0, 2052.3333333333335], [3054.3333333333335, 2053.0], [3054.0588235294117, 2054.0], [3054.035714285714, 2055.0], [3054.0588235294117, 2056.0], [3054.1, 2057.0], [3054.1111111111113, 2058.0], [3054.3333333333335, 2059.0], [3055.0, 2059.6666666666665], [3055.0039215686274, 2060.0], [3055.0046948356808, 2061.0], [3055.0051813471505, 2062.0], [3055.0153846153844, 2063.0], [3055.5, 2064.0], [3056.0, 2064.5], [3056.0064935064934, 2065.0], [3056.04, 2066.0], [3057.0, 2066.96], [3057.0055555555555, 2067.0], [3057.027777777778, 2068.0], [3058.0, 2068.972222222222], [3058.008333333333, 2069.0], [3059.0, 2070.0], [3059.05, 2071.0], [3060.0, 2071.95], [3060.03125, 2072.0], [3061.0, 2072.96875], [3061.018181818182, 2073.0], [3062.0, 2073.981818181818], [3062.008547008547, 2074.0], [3063.0, 2074.991452991453], [3063.0285714285715, 2075.0], [3064.0, 2075.9714285714285], [3064.019230769231, 2076.0], [3065.0, 2076.980769230769], [3065.0204081632655, 2077.0], [3066.0, 2077.9795918367345], [3066.0588235294117, 2078.0], [3067.0, 2078.9411764705883], [3067.030303030303, 2079.0], [3068.0, 2079.969696969697], [3068.0158730158732, 2080.0], [3069.0, 2080.9841269841268], [3069.035714285714, 2081.0], [3070.0, 2081.964285714286], [3070.014492753623, 2082.0], [3071.0, 2082.985507246377], [3071.0098039215686, 2083.0], [3072.0, 2083.9901960784314], [3072.01, 2084.0], [3073.0, 2085.0], [3073.0238095238096, 2086.0], [3074.0, 2086.9761904761904], [3074.0078125, 2087.0], [3075.0, 2087.9921875], [3075.005025125628, 2088.0], [3075.03125, 2089.0], [3076.0, 2089.96875], [3076.0044052863436, 2090.0], [3076.027027027027, 2091.0], [3077.0, 2091.972972972973], [3077.004098360656, 2092.0], [3077.0067567567567, 2093.0], [3077.0208333333335, 2094.0], [3077.25, 2095.0], [3078.0, 2095.75], [3078.0057471264367, 2096.0], [3078.015625, 2097.0], [3078.03125, 2098.0], [3078.0625, 2099.0], [3079.0, 2100.0], [3079.0039215686274, 2101.0], [3079.0039215686274, 2102.0], [3079.003937007874, 2103.0], [3079.0041152263375, 2104.0], [3079.004081632653, 2105.0], [3079.004048582996, 2106.0], [3079.004255319149, 2107.0], [3079.0, 2107.3333333333335], [3078.3333333333335, 2108.0], [3078.0476190476193, 2109.0], [3078.0384615384614, 2110.0], [3078.0227272727275, 2111.0], [3078.0095238095237, 2112.0], [3078.004366812227, 2113.0], [3078.0, 2113.1111111111113], [3077.1111111111113, 2114.0], [3077.0204081632655, 2115.0], [3077.0104166666665, 2116.0], [3077.005291005291, 2117.0], [3077.0, 2117.1111111111113], [3076.1111111111113, 2118.0], [3076.0098039215686, 2119.0], [3076.004524886878, 2120.0], [3076.0, 2120.0204081632655], [3075.0204081632655, 2121.0], [3075.0, 2121.3333333333335], [3074.3333333333335, 2122.0], [3074.0089285714284, 2123.0], [3074.0, 2123.1428571428573], [3073.1428571428573, 2124.0], [3073.009009009009, 2125.0], [3073.0, 2125.1], [3072.1, 2126.0], [3072.0, 2126.1428571428573], [3071.1428571428573, 2127.0], [3071.005347593583, 2128.0], [3071.0, 2128.014705882353], [3070.014705882353, 2129.0], [3070.0, 2129.0175438596493], [3069.0175438596493, 2130.0], [3069.0, 2130.007042253521], [3068.0, 2131.0], [3067.0, 2131.5], [3066.5, 2132.0], [3066.0, 2132.1428571428573], [3065.1428571428573, 2133.0], [3065.0, 2133.0060606060606], [3064.0, 2133.05], [3063.05, 2134.0], [3063.0, 2134.0091743119265], [3062.0, 2134.0344827586205], [3061.0, 2134.1111111111113], [3060.0, 2135.0], [3059.0, 2135.007462686567], [3058.0, 2135.0232558139537], [3057.0, 2135.0416666666665], [3056.0, 2135.029411764706], [3055.0, 2135.027027027027], [3054.0, 2135.0454545454545], [3053.0, 2135.0333333333333], [3052.0, 2135.0112359550562], [3051.0, 2135.005882352941], [3050.0, 2135.004366812227], [3049.0, 2135.0039215686274], [3048.9285714285716, 2135.0], [3048.0, 2134.0714285714284], [3047.0, 2134.008], [3046.0, 2134.004385964912], [3045.909090909091, 2134.0], [3045.0, 2133.090909090909], [3044.0, 2133.0123456790125], [3043.6666666666665, 2133.0], [3043.0, 2132.3333333333335], [3042.0, 2132.014492753623], [3041.0, 2132.004761904762], [3040.9166666666665, 2132.0], [3040.0, 2131.0833333333335], [3039.0, 2131.008695652174], [3038.9333333333334, 2131.0], [3038.0, 2130.0666666666666], [3037.0, 2130.0069444444443], [3036.6666666666665, 2130.0], [3036.0, 2129.3333333333335], [3035.0, 2129.0071942446043], [3034.975, 2129.0], [3034.0, 2128.025], [3033.0, 2128.005], [3032.972222222222, 2128.0], [3032.0, 2127.027777777778], [3031.0, 2127.005347593583], [3030.9848484848485, 2127.0], [3030.0, 2126.0151515151515], [3029.875, 2126.0], [3029.0, 2125.125], [3028.0, 2125.009009009009], [3027.75, 2125.0], [3027.0, 2124.25], [3026.0, 2124.0057471264367], [3025.9803921568628, 2124.0], [3025.0, 2123.0196078431372], [3024.0, 2123.0], [3023.0, 2122.0151515151515], [3022.5, 2122.0], [3022.0, 2121.5], [3021.0, 2121.0074074074073], [3020.9375, 2121.0], [3020.0, 2120.0625], [3019.0, 2120.006134969325], [3018.974358974359, 2120.0], [3018.0, 2119.025641025641], [3017.0, 2119.0], [3016.0, 2118.0117647058823], [3015.5, 2118.0], [3015.0, 2117.5], [3014.0, 2117.0133333333333], [3013.75, 2117.0], [3013.0, 2116.25], [3012.0, 2116.009259259259], [3011.6666666666665, 2116.0], [3011.0, 2115.3333333333335], [3010.0, 2115.008333333333], [3009.8571428571427, 2115.0], [3009.0, 2114.1428571428573], [3008.0, 2114.0093457943926], [3007.0, 2114.0], [3006.0, 2113.0135135135133], [3005.0, 2113.0042735042734], [3004.95, 2113.0], [3004.0, 2112.05], [3003.0, 2112.0060606060606], [3002.875, 2112.0], [3002.0, 2111.125], [3001.0, 2111.0117647058823], [3000.0, 2111.0049261083745], [2999.75, 2111.0], [2999.0, 2110.25], [2998.0, 2110.0128205128203], [2997.0, 2110.0058139534885], [2996.0, 2110.0], [2995.0, 2109.04], [2994.0, 2109.010752688172], [2993.0, 2109.0052631578947], [2992.0, 2109.0040322580644], [2991.875, 2109.0], [2991.0, 2108.125], [2990.0, 2108.021276595745], [2989.0, 2108.0133333333333], [2988.0, 2108.007692307692], [2987.0, 2108.0045662100456], [2986.0, 2108.004081632653], [2985.75, 2108.0], [2985.0, 2107.25], [2984.0, 2107.125], [2983.0, 2107.05], [2982.0, 2107.0169491525426], [2981.0, 2107.009259259259], [2980.0, 2107.0108695652175], [2979.0, 2107.0113636363635], [2978.0, 2107.0077519379847], [2977.0, 2107.006711409396], [2976.0, 2107.0063694267515], [2975.0, 2107.0065789473683], [2974.0, 2107.007692307692], [2973.0, 2107.00625], [2972.0, 2107.005917159763], [2971.0, 2107.0087719298244], [2970.0, 2107.0149253731342], [2969.0, 2107.0188679245284], [2968.0, 2107.027777777778], [2967.0, 2107.1666666666665], [2966.1666666666665, 2108.0], [2966.0, 2108.00395256917], [2965.0, 2108.0041841004186], [2964.0, 2108.0091743119265], [2963.0, 2108.125], [2962.125, 2109.0], [2962.0, 2109.0057142857145], [2961.0, 2109.027777777778], [2960.027777777778, 2110.0], [2960.0, 2110.0054054054053], [2959.0, 2110.090909090909], [2958.090909090909, 2111.0], [2958.0, 2111.018181818182], [2957.018181818182, 2112.0], [2957.0, 2112.0104166666665], [2956.0104166666665, 2113.0], [2956.0, 2113.0113636363635], [2955.0113636363635, 2114.0], [2955.0, 2114.032258064516], [2954.032258064516, 2115.0], [2954.0, 2115.1111111111113], [2953.1111111111113, 2116.0], [2953.0084033613443, 2117.0], [2953.0, 2117.1666666666665], [2952.1666666666665, 2118.0], [2952.0089285714284, 2119.0], [2952.0, 2120.0], [2951.0526315789475, 2121.0], [2951.0072463768115, 2122.0], [2951.0041152263375, 2123.0], [2951.0, 2124.0], [2950.076923076923, 2125.0], [2950.025641025641, 2126.0], [2950.0185185185187, 2127.0], [2950.013698630137, 2128.0], [2950.008695652174, 2129.0], [2950.0068027210887, 2130.0], [2950.0128205128203, 2131.0], [2950.03125, 2132.0], [2950.076923076923, 2133.0], [2951.0, 2133.923076923077], [2951.003968253968, 2134.0], [2951.005128205128, 2135.0], [2951.014705882353, 2136.0], [2951.0714285714284, 2137.0], [2952.0, 2137.9285714285716], [2952.0060240963853, 2138.0], [2952.1111111111113, 2139.0], [2953.0, 2139.8888888888887], [2953.008547008547, 2140.0], [2953.5, 2141.0], [2954.0, 2141.5], [2954.0588235294117, 2142.0], [2955.0, 2142.9411764705883], [2955.0178571428573, 2143.0], [2956.0, 2143.9821428571427], [2956.008695652174, 2144.0], [2957.0, 2144.991304347826], [2957.0142857142855, 2145.0], [2958.0, 2145.9857142857145], [2958.019230769231, 2146.0], [2959.0, 2146.980769230769], [2959.0526315789475, 2147.0], [2960.0, 2147.9473684210525], [2961.0, 2148.0], [2962.0, 2148.991452991453], [2962.018181818182, 2149.0], [2963.0, 2149.981818181818], [2963.3333333333335, 2150.0], [2964.0, 2150.6666666666665], [2965.0, 2150.990740740741], [2965.0526315789475, 2151.0], [2966.0, 2151.9473684210525], [2967.0, 2151.9947368421053], [2967.015625, 2152.0], [2968.0, 2152.984375], [2969.0, 2152.9956896551726], [2969.0188679245284, 2153.0], [2970.0, 2153.9811320754716], [2970.5, 2154.0], [2971.0, 2154.5], [2972.0, 2154.987012987013], [2973.0, 2155.0], [2974.0, 2155.9882352941177], [2974.3333333333335, 2156.0], [2975.0, 2156.6666666666665], [2976.0, 2156.990099009901], [2977.0, 2157.0], [2978.0, 2157.978260869565], [2979.0, 2157.9957627118642], [2979.0204081632655, 2158.0], [2980.0, 2158.9795918367345], [2981.0, 2158.994680851064], [2981.035714285714, 2159.0], [2982.0, 2159.964285714286], [2983.0, 2159.994708994709], [2983.0625, 2160.0], [2984.0, 2160.9375], [2985.0, 2160.9918032786886], [2985.25, 2161.0], [2986.0, 2161.75], [2987.0, 2161.9912280701756], [2988.0, 2161.9959677419356], [2988.0243902439024, 2162.0], [2989.0, 2162.9756097560976], [2990.0, 2162.995327102804], [2990.1, 2163.0], [2991.0, 2163.9], [2992.0, 2163.9912280701756], [2992.5, 2164.0], [2993.0, 2164.5], [2994.0, 2164.983333333333], [2995.0, 2164.9950495049507], [2995.25, 2165.0], [2996.0, 2165.75], [2997.0, 2165.9880952380954], [2998.0, 2165.995633187773], [2998.0714285714284, 2166.0], [2999.0, 2166.9285714285716], [3000.0, 2166.9880952380954], [3001.0, 2166.995670995671], [3001.0416666666665, 2167.0], [3002.0, 2167.9583333333335], [3003.0, 2167.9880952380954], [3004.0, 2167.9951219512195], [3004.2, 2168.0], [3005.0, 2168.8], [3006.0, 2168.985294117647], [3007.0, 2168.9941520467837], [3008.0, 2168.9958506224066], [3008.1111111111113, 2169.0], [3009.0, 2169.8888888888887], [3010.0, 2169.986301369863], [3011.0, 2169.993902439024], [3012.0, 2169.9957805907175], [3012.3333333333335, 2170.0], [3013.0, 2170.6666666666665], [3014.0, 2170.9756097560976], [3015.0, 2170.9904761904763], [3016.0, 2170.9930555555557], [3017.0, 2170.9954954954956], [3017.3333333333335, 2171.0], [3018.0, 2171.6666666666665], [3019.0, 2171.9473684210525], [3020.0, 2171.9803921568628], [3021.0, 2171.9861111111113], [3022.0, 2171.991666666667], [3023.0, 2171.9953703703704], [3024.0, 2172.0], [3025.0, 2172.6666666666665], [3026.0, 2172.8333333333335], [3027.0, 2172.95], [3028.0, 2172.9866666666667], [3029.0, 2172.9921259842517], [3030.0, 2172.9944134078214], [3031.0, 2172.9953917050693], [3031.3333333333335, 2173.0], [3032.0, 2173.6666666666665], [3033.0, 2173.9756097560976], [3034.0, 2173.9814814814813], [3035.0, 2173.9901960784314], [3036.0, 2173.9950980392155], [3036.090909090909, 2174.0], [3037.0, 2174.909090909091], [3038.0, 2174.986301369863], [3039.0, 2174.994117647059], [3040.0, 2174.995901639344], [3040.0625, 2175.0], [3041.0, 2175.9375], [3042.0, 2175.9937888198756], [3042.0416666666665, 2176.0], [3043.0, 2176.9583333333335], [3044.0, 2176.992424242424], [3044.25, 2177.0], [3045.0, 2177.75], [3046.0, 2178.0], [3047.0, 2178.993902439024], [3047.0128205128203, 2179.0], [3048.0, 2179.9871794871797], [3048.0344827586205, 2180.0], [3049.0, 2180.9655172413795], [3049.0071942446043, 2181.0], [3050.0, 2182.0], [3050.0588235294117, 2183.0], [3051.0, 2183.9411764705883], [3051.0041493775934, 2184.0], [3051.006711409396, 2185.0], [3051.0285714285715, 2186.0], [3052.0, 2186.9714285714285], [3052.004255319149, 2187.0], [3052.0058479532163, 2188.0], [3052.0045871559632, 2189.0], [3052.0046082949307, 2190.0], [3052.0058479532163, 2191.0], [3052.0042194092825, 2192.0], [3052.0, 2192.0714285714284], [3051.0714285714284, 2193.0], [3051.0133333333333, 2194.0], [3051.0068493150684, 2195.0], [3051.0045871559632, 2196.0], [3051.0, 2196.0384615384614], [3050.0384615384614, 2197.0], [3050.0048076923076, 2198.0], [3050.0, 2198.0344827586205], [3049.0344827586205, 2199.0], [3049.0073529411766, 2200.0], [3049.0, 2200.0625], [3048.0625, 2201.0], [3048.004761904762, 2202.0], [3048.0, 2202.014705882353], [3047.014705882353, 2203.0], [3047.0, 2204.0], [3046.0128205128203, 2205.0], [3046.0, 2205.0454545454545], [3045.0454545454545, 2206.0], [3045.004784688995, 2207.0], [3045.0, 2207.027777777778], [3044.027777777778, 2208.0], [3044.0, 2208.5], [3043.5, 2209.0], [3043.008130081301, 2210.0], [3043.0, 2210.1111111111113], [3042.1111111111113, 2211.0], [3042.008547008547, 2212.0], [3042.0, 2212.0555555555557], [3041.0555555555557, 2213.0], [3041.006451612903, 2214.0], [3041.0, 2215.0], [3040.037037037037, 2216.0], [3040.009090909091, 2217.0], [3040.0048780487805, 2218.0], [3040.0, 2219.0], [3039.090909090909, 2220.0], [3039.03125, 2221.0], [3039.04, 2222.0], [3039.0555555555557, 2223.0], [3039.0714285714284, 2224.0], [3040.0, 2225.0], [3040.005128205128, 2226.0], [3040.009090909091, 2227.0], [3040.1428571428573, 2228.0], [3041.0, 2228.8571428571427], [3041.01, 2229.0], [3041.5, 2230.0], [3042.0, 2230.5], [3042.029411764706, 2231.0], [3043.0, 2231.970588235294], [3043.012195121951, 2232.0], [3044.0, 2232.987804878049], [3044.0112359550562, 2233.0], [3045.0, 2233.9887640449438], [3045.019230769231, 2234.0], [3046.0, 2234.980769230769], [3046.02, 2235.0], [3047.0, 2235.98], [3047.2, 2236.0], [3048.0, 2236.8], [3049.0, 2236.9944134078214], [3049.0135135135133, 2237.0], [3050.0, 2237.9864864864867], [3051.0, 2238.0], [3052.0, 2238.9859154929577], [3052.1, 2239.0], [3053.0, 2239.9], [3054.0, 2239.9841269841268], [3055.0, 2239.9945652173915], [3055.0625, 2240.0], [3056.0, 2240.9375], [3057.0, 2240.9896907216494], [3058.0, 2240.9953488372093], [3058.0625, 2241.0], [3059.0, 2241.9375], [3060.0, 2241.9897959183672], [3061.0, 2241.9933774834435], [3062.0, 2242.0], [3063.0, 2242.9655172413795], [3064.0, 2242.987804878049], [3065.0, 2242.9922480620153], [3066.0, 2242.995614035088], [3066.1428571428573, 2243.0], [3067.0, 2243.8571428571427], [3068.0, 2243.96], [3069.0, 2243.986301369863], [3070.0, 2243.994764397906], [3071.0, 2244.0], [3072.0, 2244.8], [3073.0, 2244.978260869565], [3074.0, 2244.993006993007], [3075.0, 2244.995652173913], [3075.5, 2245.0], [3076.0, 2245.5], [3077.0, 2245.969696969697], [3078.0, 2245.991666666667], [3079.0, 2245.994382022472], [3079.5, 2246.0], [3080.0, 2246.5], [3081.0, 2246.9767441860463], [3082.0, 2246.9924812030076], [3083.0, 2246.994680851064], [3084.0, 2247.0], [3085.0, 2247.9821428571427], [3086.0, 2247.9904761904763], [3087.0, 2247.9947916666665], [3087.1666666666665, 2248.0], [3088.0, 2248.8333333333335], [3089.0, 2248.980769230769], [3090.0, 2248.9908256880735], [3091.0, 2248.9948186528495], [3091.2, 2249.0], [3092.0, 2249.8], [3093.0, 2249.972972972973], [3094.0, 2249.983333333333], [3095.0, 2249.9942528735633], [3096.0, 2249.995867768595], [3096.1, 2250.0], [3097.0, 2250.9], [3098.0, 2250.962962962963], [3099.0, 2250.9861111111113], [3100.0, 2250.993865030675], [3101.0, 2250.9958158995814], [3101.5, 2251.0], [3102.0, 2251.5], [3103.0, 2251.8571428571427], [3104.0, 2251.969696969697], [3105.0, 2251.987012987013], [3106.0, 2251.991666666667], [3107.0, 2251.9941520467837], [3108.0, 2251.9944134078214], [3109.0, 2251.995951417004], [3110.0, 2252.0], [3111.0, 2252.6666666666665], [3112.0, 2252.5], [3113.0, 2252.75], [3114.0, 2252.9285714285716], [3115.0, 2252.9444444444443], [3116.0, 2252.8888888888887], [3117.0, 2252.8888888888887], [3118.0, 2252.9333333333334], [3119.0, 2252.9655172413795], [3120.0, 2252.9], [3121.0, 2252.5], [3122.0, 2252.0], [3123.0, 2252.0], [3124.0, 2251.995283018868], [3125.0, 2251.9945355191257], [3126.0, 2251.99], [3127.0, 2251.9841269841268], [3128.0, 2251.9777777777776], [3129.0, 2251.8571428571427], [3129.8571428571427, 2251.0], [3130.0, 2250.9955947136564], [3131.0, 2250.9926470588234], [3132.0, 2250.978723404255], [3133.0, 2250.8], [3133.8, 2250.0], [3134.0, 2249.9944444444445], [3135.0, 2249.974358974359], [3136.0, 2249.6666666666665], [3136.6666666666665, 2249.0], [3137.0, 2248.993006993007], [3138.0, 2248.8], [3138.8, 2248.0], [3139.0, 2247.9882352941177], [3140.0, 2247.0], [3141.0, 2246.962962962963], [3141.962962962963, 2246.0], [3142.0, 2245.9876543209875], [3142.9876543209875, 2245.0], [3143.0, 2244.9931506849316], [3144.0, 2244.0], [3144.9937888198756, 2243.0], [3145.0, 2242.9866666666667], [3145.9866666666667, 2242.0], [3146.0, 2241.909090909091], [3146.909090909091, 2241.0], [3146.9937106918237, 2240.0], [3147.0, 2239.9523809523807], [3147.9523809523807, 2239.0], [3147.994652406417, 2238.0], [3148.0, 2237.875], [3148.875, 2237.0], [3148.9756097560976, 2236.0], [3148.9896907216494, 2235.0], [3148.994652406417, 2234.0], [3148.9954954954956, 2233.0], [3148.9960784313726, 2232.0], [3149.0, 2231.0], [3149.75, 2230.0], [3149.8333333333335, 2229.0], [3149.6666666666665, 2228.0], [3149.0, 2227.3333333333335], [3148.996062992126, 2227.0], [3148.9954128440368, 2226.0], [3148.993670886076, 2225.0], [3148.9897959183672, 2224.0], [3148.9666666666667, 2223.0], [3148.75, 2222.0], [3148.0, 2221.25], [3147.996, 2221.0], [3147.9945355191257, 2220.0], [3147.9791666666665, 2219.0], [3147.8, 2218.0], [3147.0, 2217.2], [3146.995614035088, 2217.0], [3146.9915966386557, 2216.0], [3146.9473684210525, 2215.0], [3146.0, 2214.0526315789475], [3145.995535714286, 2214.0], [3145.9910714285716, 2213.0], [3145.9583333333335, 2212.0], [3145.0, 2211.0416666666665], [3144.9953051643192, 2211.0], [3144.974358974359, 2210.0], [3144.0, 2209.0], [3143.9918032786886, 2208.0], [3143.9, 2207.0], [3143.0, 2206.1], [3142.992537313433, 2206.0], [3142.923076923077, 2205.0], [3142.0, 2204.076923076923], [3141.9944751381217, 2204.0], [3141.9615384615386, 2203.0], [3141.0, 2202.0384615384614], [3140.9927536231885, 2202.0], [3140.8, 2201.0], [3140.0, 2200.2], [3139.992424242424, 2200.0], [3139.75, 2199.0], [3139.0, 2198.25], [3138.9655172413795, 2198.0], [3138.0, 2197.0344827586205], [3137.9921259842517, 2197.0], [3137.6666666666665, 2196.0], [3137.0, 2195.3333333333335], [3136.964285714286, 2195.0], [3136.0, 2194.035714285714], [3135.9836065573772, 2194.0], [3135.0, 2193.0163934426228], [3134.9937888198756, 2193.0], [3134.5, 2192.0], [3134.0, 2191.5], [3133.0, 2191.0], [3132.8, 2190.0], [3132.0, 2189.2], [3131.875, 2189.0], [3131.0, 2188.125], [3130.5, 2188.0], [3130.0, 2187.5], [3129.8333333333335, 2187.0], [3129.0, 2186.1666666666665], [3128.0, 2186.0048780487805], [3127.9922480620153, 2186.0], [3127.0, 2185.0077519379847], [3126.9915966386557, 2185.0], [3126.0, 2184.0084033613443], [3125.9850746268658, 2184.0], [3125.0, 2183.0149253731342], [3124.923076923077, 2183.0], [3124.0, 2182.076923076923], [3123.0, 2182.0], [3122.0, 2181.0], [3121.0, 2180.0087719298244], [3120.9523809523807, 2180.0], [3120.0, 2179.0476190476193], [3119.9285714285716, 2179.0], [3119.0, 2178.0714285714284], [3118.875, 2178.0], [3118.0, 2177.125], [3117.0, 2177.0], [3116.0, 2176.0093457943926], [3115.9885057471265, 2176.0], [3115.0, 2175.0114942528735], [3114.9935064935066, 2175.0], [3114.0, 2174.0064935064934], [3113.9883720930234, 2174.0], [3113.0, 2173.0116279069766], [3112.9908256880735, 2173.0], [3112.0, 2172.0], [3111.96875, 2171.0], [3111.0, 2170.03125], [3110.9894736842107, 2170.0], [3110.0, 2169.0105263157893], [3109.9944444444445, 2169.0], [3109.96875, 2168.0], [3109.5, 2167.0], [3109.0, 2166.5], [3108.9903846153848, 2166.0], [3108.8333333333335, 2165.0], [3108.0, 2164.1666666666665], [3107.9957081545062, 2164.0], [3107.9953917050693, 2163.0], [3107.9944751381217, 2162.0], [3107.9927536231885, 2161.0], [3107.9841269841268, 2160.0], [3107.9830508474574, 2159.0], [3107.9908256880735, 2158.0], [3107.9953488372093, 2157.0], [3108.0, 2156.0], [3108.8571428571427, 2155.0], [3108.987951807229, 2154.0], [3109.0, 2153.6666666666665], [3109.6666666666665, 2153.0], [3109.9887640449438, 2152.0], [3109.995614035088, 2151.0], [3110.0, 2150.9583333333335], [3110.9583333333335, 2150.0], [3111.0, 2149.0], [3111.993548387097, 2148.0], [3112.0, 2147.962962962963], [3112.962962962963, 2147.0], [3113.0, 2146.9333333333334], [3113.9333333333334, 2146.0], [3114.0, 2145.9583333333335], [3114.9583333333335, 2145.0], [3115.0, 2144.923076923077], [3115.923076923077, 2144.0], [3116.0, 2143.6666666666665], [3116.6666666666665, 2143.0], [3117.0, 2142.9375], [3117.9375, 2142.0], [3118.0, 2141.9880952380954], [3118.9880952380954, 2141.0], [3119.0, 2140.9915966386557], [3119.9915966386557, 2140.0], [3120.0, 2139.994117647059], [3121.0, 2139.9], [3121.9, 2139.0], [3122.0, 2138.9848484848485], [3122.9848484848485, 2138.0], [3123.0, 2137.991304347826], [3124.0, 2137.5], [3124.5, 2137.0], [3125.0, 2136.985294117647], [3125.985294117647, 2136.0], [3126.0, 2135.9949494949497], [3127.0, 2135.8333333333335], [3127.8333333333335, 2135.0], [3128.0, 2134.9904761904763], [3129.0, 2134.875], [3129.875, 2134.0], [3130.0, 2133.9883720930234], [3130.9883720930234, 2133.0], [3131.0, 2132.995535714286], [3132.0, 2132.9859154929577], [3133.0, 2132.6666666666665], [3133.6666666666665, 2132.0], [3134.0, 2131.9887640449438], [3135.0, 2131.0], [3136.0, 2130.972222222222], [3137.0, 2130.0], [3138.0, 2129.9887640449438], [3138.9887640449438, 2129.0], [3139.0, 2128.9948186528495], [3140.0, 2128.9375], [3140.9375, 2128.0], [3141.0, 2127.9928057553957], [3142.0, 2127.8], [3142.8, 2127.0], [3143.0, 2126.9772727272725], [3143.9772727272725, 2126.0], [3144.0, 2125.9920634920636], [3145.0, 2125.0], [3146.0, 2124.875], [3146.875, 2124.0], [3147.0, 2123.6666666666665], [3147.6666666666665, 2123.0], [3148.0, 2122.0], [3148.9922480620153, 2121.0], [3149.0, 2120.970588235294], [3149.970588235294, 2120.0], [3150.0, 2119.0], [3150.9864864864867, 2118.0], [3150.9951456310678, 2117.0], [3151.0, 2116.0], [3151.95, 2115.0], [3151.9795918367345, 2114.0], [3151.9864864864867, 2113.0], [3151.989247311828, 2112.0], [3151.9906542056074, 2111.0], [3151.9772727272725, 2110.0], [3151.9473684210525, 2109.0], [3151.75, 2108.0], [3151.0, 2107.25], [3150.9955555555557, 2107.0], [3150.992700729927, 2106.0], [3150.9666666666667, 2105.0], [3150.8, 2104.0], [3150.0, 2103.2], [3149.9945355191257, 2103.0], [3149.96875, 2102.0], [3149.0, 2101.03125], [3148.996, 2101.0], [3148.9928057553957, 2100.0], [3148.8333333333335, 2099.0], [3148.0, 2098.1666666666665], [3147.993902439024, 2098.0], [3147.9714285714285, 2097.0], [3147.0, 2096.0285714285715], [3146.9953051643192, 2096.0], [3146.9821428571427, 2095.0], [3146.0, 2094.0178571428573], [3145.9953051643192, 2094.0], [3145.9841269841268, 2093.0], [3145.75, 2092.0], [3145.0, 2091.25], [3144.987951807229, 2091.0], [3144.0, 2090.012048192771], [3143.9957264957266, 2090.0], [3143.9876543209875, 2089.0], [3143.75, 2088.0], [3143.0, 2087.25], [3142.9921259842517, 2087.0], [3142.875, 2086.0], [3142.0, 2085.125], [3141.9913793103447, 2085.0], [3141.9285714285716, 2084.0], [3141.0, 2083.0714285714284], [3140.995327102804, 2083.0], [3140.9761904761904, 2082.0], [3140.0, 2081.0], [3139.9944444444445, 2080.0], [3139.984375, 2079.0], [3139.8571428571427, 2078.0], [3139.0, 2077.1428571428573], [3138.9942857142855, 2077.0], [3138.9814814814813, 2076.0], [3138.95, 2075.0], [3138.8333333333335, 2074.0], [3138.0, 2073.1666666666665], [3137.9954954954956, 2073.0], [3137.9928057553957, 2072.0], [3137.992366412214, 2071.0], [3137.992366412214, 2070.0], [3137.990990990991, 2069.0], [3137.9861111111113, 2068.0], [3137.9814814814813, 2067.0], [3137.9868421052633, 2066.0], [3137.9939759036147, 2065.0], [3137.9955156950673, 2064.0], [3137.9958158995814, 2063.0], [3138.0, 2062.875], [3138.875, 2062.0], [3138.990566037736, 2061.0], [3138.995670995671, 2060.0], [3139.0, 2059.96], [3139.96, 2059.0], [3139.9896907216494, 2058.0], [3139.9954954954956, 2057.0], [3140.0, 2056.986301369863], [3140.986301369863, 2056.0], [3141.0, 2055.962962962963], [3141.962962962963, 2055.0], [3141.995238095238, 2054.0], [3142.0, 2053.984375], [3142.984375, 2053.0], [3143.0, 2052.9666666666667], [3143.9666666666667, 2052.0], [3144.0, 2051.9830508474574], [3144.9830508474574, 2051.0], [3145.0, 2050.9444444444443], [3145.9444444444443, 2050.0], [3146.0, 2049.9333333333334], [3146.9333333333334, 2049.0], [3147.0, 2048.990291262136], [3148.0, 2048.0], [3149.0, 2047.5], [3149.5, 2047.0], [3150.0, 2046.9583333333333], [3150.9583333333335, 2046.0], [3151.0, 2045.995024875622], [3152.0, 2045.9722222222222], [3152.972222222222, 2045.0], [3153.0, 2044.9928571428572], [3154.0, 2044.8], [3154.8, 2044.0], [3155.0, 2043.9948186528497], [3156.0, 2043.9864864864865], [3157.0, 2043.0], [3158.0, 2042.9883720930231], [3159.0, 2042.9285714285713], [3160.0, 2042.0], [3161.0, 2041.9944751381215], [3162.0, 2041.9846153846154], [3163.0, 2041.8], [3163.8, 2041.0], [3164.0, 2040.9960317460318], [3165.0, 2040.9952153110048], [3166.0, 2040.9930555555557], [3167.0, 2040.9814814814815], [3168.0, 2040.9], [3169.0, 2040.75], [3170.0, 2040.5], [3170.5, 2040.0], [3171.0, 2039.9959677419354], [3172.0, 2039.995283018868], [3173.0, 2039.9945945945947], [3174.0, 2039.9951923076924], [3175.0, 2039.9953051643192], [3176.0, 2039.9948717948719], [3177.0, 2039.9936305732483], [3178.0, 2039.9948979591836], [3179.0, 2039.9956140350878], [3180.0, 2040.0], [3181.0, 2040.0], [3182.0, 2040.0], [3183.0, 2040.888888888889], [3184.0, 2040.9814814814815], [3185.0, 2040.9918699186992], [3186.0, 2040.9934210526317], [3187.0, 2040.9957081545065], [3187.1, 2041.0], [3188.0, 2041.9], [3189.0, 2041.9885057471265], [3190.0, 2041.9945054945056], [3191.0, 2041.99604743083], [3191.0384615384614, 2042.0], [3192.0, 2042.9615384615386], [3193.0, 2042.9944444444445], [3193.3333333333335, 2043.0], [3194.0, 2043.6666666666667], [3195.0, 2043.9795918367347], [3196.0, 2043.9945355191257], [3196.0344827586205, 2044.0], [3197.0, 2044.9655172413793], [3198.0, 2044.9944751381215], [3198.090909090909, 2045.0], [3199.0, 2045.909090909091], [3200.0, 2045.9920634920634], [3200.0384615384614, 2046.0], [3201.0, 2046.9615384615386], [3202.0, 2046.9949238578681], [3202.035714285714, 2047.0], [3203.0, 2047.9642857142858], [3204.0, 2047.9943181818182], [3204.0158730158732, 2048.0], [3205.0, 2048.9841269841268], [3205.0555555555557, 2049.0], [3206.0, 2049.9444444444443], [3207.0, 2049.9942528735633], [3207.0476190476193, 2050.0], [3208.0, 2050.9523809523807], [3209.0, 2051.0], [3210.0, 2051.99358974359], [3210.025641025641, 2052.0], [3211.0, 2052.974358974359], [3212.0, 2053.0], [3213.0, 2053.9933333333333], [3213.009433962264, 2054.0], [3214.0, 2054.990566037736], [3214.0526315789475, 2055.0], [3215.0, 2055.9473684210525], [3215.5, 2056.0], [3216.0, 2056.5], [3216.5, 2057.0], [3217.0, 2057.5], [3218.0, 2057.9939393939394], [3218.0158730158732, 2058.0], [3219.0, 2058.9841269841268], [3219.0208333333335, 2059.0], [3220.0, 2059.9791666666665], [3220.03125, 2060.0], [3221.0, 2060.96875], [3221.2, 2061.0], [3222.0, 2061.8], [3222.1111111111113, 2062.0], [3223.0, 2062.8888888888887], [3223.2, 2063.0], [3224.0, 2063.8], [3225.0, 2063.9947368421053], [3225.005649717514, 2064.0], [3225.5, 2065.0], [3226.0, 2065.5], [3226.5, 2066.0], [3227.0, 2066.5], [3228.0, 2066.9932432432433], [3228.007633587786, 2067.0], [3229.0, 2067.992366412214], [3229.0066666666667, 2068.0], [3230.0, 2068.9933333333333], [3230.010101010101, 2069.0], [3231.0, 2069.989898989899], [3231.0114942528735, 2070.0], [3232.0, 2070.9885057471265], [3232.0102040816328, 2071.0], [3233.0, 2071.9897959183672], [3233.0222222222224, 2072.0], [3234.0, 2072.9777777777776], [3234.04, 2073.0], [3235.0, 2073.96], [3235.032258064516, 2074.0], [3236.0, 2074.967741935484], [3236.2, 2075.0], [3237.0, 2075.8], [3238.0, 2076.0], [3239.0, 2076.994082840237], [3239.009090909091, 2077.0], [3240.0, 2077.990909090909], [3240.0476190476193, 2078.0], [3241.0, 2078.9523809523807], [3241.090909090909, 2079.0], [3242.0, 2079.909090909091], [3243.0, 2080.0], [3244.0, 2080.9895833333335], [3244.032258064516, 2081.0], [3245.0, 2081.967741935484], [3245.1666666666665, 2082.0], [3246.0, 2082.8333333333335], [3247.0, 2082.9936305732485], [3247.0344827586205, 2083.0], [3248.0, 2083.9655172413795], [3248.1428571428573, 2084.0], [3249.0, 2084.8571428571427], [3250.0, 2084.9936305732485], [3250.0526315789475, 2085.0], [3251.0, 2085.9473684210525], [3252.0, 2085.9951923076924], [3252.0106382978724, 2086.0], [3253.0, 2086.9893617021276], [3253.1111111111113, 2087.0], [3254.0, 2087.8888888888887], [3255.0, 2087.993288590604], [3255.076923076923, 2088.0], [3256.0, 2088.923076923077], [3257.0, 2089.0], [3258.0, 2089.987012987013], [3258.5, 2090.0], [3259.0, 2090.5], [3260.0, 2090.9886363636365], [3260.25, 2091.0], [3261.0, 2091.75], [3262.0, 2091.9940476190477], [3262.027777777778, 2092.0], [3263.0, 2092.972222222222], [3264.0, 2092.9950980392155], [3264.0128205128203, 2093.0], [3265.0, 2093.9871794871797], [3266.0, 2093.9958158995814], [3266.0169491525426, 2094.0], [3267.0, 2094.9830508474574], [3267.1428571428573, 2095.0], [3268.0, 2095.8571428571427], [3269.0, 2095.9941520467837], [3269.025, 2096.0], [3270.0, 2096.975], [3271.0, 2097.0], [3272.0, 2097.989010989011], [3272.25, 2098.0], [3273.0, 2098.75], [3274.0, 2098.992366412214], [3274.0196078431372, 2099.0], [3275.0, 2099.9803921568628], [3275.090909090909, 2100.0], [3276.0, 2100.909090909091], [3277.0, 2100.9945945945947], [3277.0149253731342, 2101.0], [3278.0, 2101.9850746268658], [3278.090909090909, 2102.0], [3279.0, 2102.909090909091], [3280.0, 2102.994652406417], [3280.025641025641, 2103.0], [3281.0, 2103.974358974359], [3281.0666666666666, 2104.0], [3282.0, 2104.9333333333334], [3282.1428571428573, 2105.0], [3283.0, 2105.8571428571427], [3284.0, 2106.0], [3285.0, 2106.9929078014184], [3285.0142857142855, 2107.0], [3286.0, 2107.9857142857145], [3286.0666666666666, 2108.0], [3287.0, 2108.9333333333334], [3287.3333333333335, 2109.0], [3288.0, 2109.6666666666665], [3288.1111111111113, 2110.0], [3289.0, 2110.8888888888887], [3289.0588235294117, 2111.0], [3290.0, 2111.9411764705883], [3290.0526315789475, 2112.0], [3291.0, 2112.9473684210525], [3291.05, 2113.0], [3292.0, 2113.95], [3292.1428571428573, 2114.0], [3293.0, 2114.8571428571427], [3293.0416666666665, 2115.0], [3294.0, 2115.9583333333335], [3294.0079365079364, 2116.0], [3295.0, 2117.0], [3295.076923076923, 2118.0], [3296.0, 2118.923076923077], [3296.0227272727275, 2119.0], [3297.0, 2119.9772727272725], [3297.009259259259, 2120.0], [3297.3333333333335, 2121.0], [3298.0, 2121.6666666666665], [3298.0078125, 2122.0], [3298.1111111111113, 2123.0], [3299.0, 2123.8888888888887], [3299.0084033613443, 2124.0], [3299.5, 2125.0], [3300.0, 2125.5], [3300.0128205128203, 2126.0], [3300.0833333333335, 2127.0], [3301.0, 2128.0], [3301.0062893081763, 2129.0], [3301.0238095238096, 2130.0], [3302.0, 2131.0], [3302.005128205128, 2132.0], [3302.005319148936, 2133.0], [3302.0069444444443, 2134.0], [3302.0091743119265, 2135.0], [3302.0178571428573, 2136.0], [3302.035714285714, 2137.0], [3302.032258064516, 2138.0], [3302.012195121951, 2139.0], [3302.007299270073, 2140.0], [3302.0057471264367, 2141.0], [3302.004739336493, 2142.0], [3302.0044052863436, 2143.0], [3302.0, 2144.0], [3301.0344827586205, 2145.0], [3301.006896551724, 2146.0], [3301.0, 2146.5], [3300.5, 2147.0], [3300.032258064516, 2148.0], [3300.0079365079364, 2149.0], [3300.004329004329, 2150.0], [3300.0, 2150.125], [3299.125, 2151.0], [3299.0071942446043, 2152.0], [3299.0, 2152.030303030303], [3298.030303030303, 2153.0], [3298.0049019607845, 2154.0], [3298.0, 2154.0172413793102], [3297.0172413793102, 2155.0], [3297.0042735042734, 2156.0], [3297.0, 2156.015625], [3296.015625, 2157.0], [3296.0, 2157.0238095238096], [3295.0238095238096, 2158.0], [3295.0, 2158.0243902439024], [3294.0243902439024, 2159.0], [3294.0, 2159.1666666666665], [3293.1666666666665, 2160.0], [3293.0, 2160.3333333333335], [3292.3333333333335, 2161.0], [3292.0, 2161.0227272727275], [3291.0227272727275, 2162.0], [3291.0, 2162.0078125], [3290.0, 2163.0], [3289.0, 2163.25], [3288.25, 2164.0], [3288.0, 2164.0079365079364], [3287.0, 2164.0454545454545], [3286.0454545454545, 2165.0], [3286.0, 2165.005291005291], [3285.0, 2165.0454545454545], [3284.0454545454545, 2166.0], [3284.0, 2166.0039215686274], [3283.0, 2166.004716981132], [3282.0, 2166.0077519379847], [3281.0, 2166.0185185185187], [3280.0, 2166.25], [3279.25, 2167.0], [3279.0, 2167.0039215686274], [3278.0, 2167.00395256917], [3277.0, 2167.0], [3276.0, 2167.004016064257], [3275.0, 2167.004132231405], [3274.0, 2167.0042918454938], [3273.0, 2167.004366812227], [3272.0, 2167.004830917874], [3271.0, 2167.0052631578947], [3270.0, 2167.0040650406504], [3269.5, 2167.0], [3269.0, 2166.5], [3268.0, 2166.1428571428573], [3267.0, 2166.0476190476193], [3266.0, 2166.021739130435], [3265.0, 2166.0119047619046], [3264.0, 2166.0077519379847], [3263.0, 2166.0054945054944], [3262.0, 2166.004366812227], [3261.0, 2166.003968253968], [3260.0, 2166.0], [3259.0, 2165.25], [3258.0, 2165.0454545454545], [3257.0, 2165.009259259259], [3256.0, 2165.005154639175], [3255.0, 2165.0], [3254.0, 2164.1111111111113], [3253.0, 2164.0238095238096], [3252.0, 2164.0095238095237], [3251.0, 2164.0052083333335], [3250.0, 2164.0040322580644], [3249.875, 2164.0], [3249.0, 2163.125], [3248.0, 2163.0263157894738], [3247.0, 2163.009708737864], [3246.0, 2163.0054945054944], [3245.0, 2163.0040322580644], [3244.75, 2163.0], [3244.0, 2162.25], [3243.0, 2162.0588235294117], [3242.0, 2162.015625], [3241.0, 2162.005291005291], [3240.0, 2162.004098360656], [3239.8888888888887, 2162.0], [3239.0, 2161.1111111111113], [3238.0, 2161.027027027027], [3237.0, 2161.0140845070423], [3236.0, 2161.0077519379847], [3235.0, 2161.004672897196], [3234.0, 2161.0], [3233.0, 2160.1111111111113], [3232.0, 2160.0555555555557], [3231.0, 2160.029411764706], [3230.0, 2160.0119047619046], [3229.0, 2160.007692307692], [3228.0, 2160.007299270073], [3227.0, 2160.0071428571428], [3226.0, 2160.00625], [3225.0, 2160.006711409396], [3224.0, 2160.0106382978724], [3223.0, 2160.0227272727275], [3222.0, 2160.0555555555557], [3221.0, 2161.0], [3220.0, 2161.00826446281], [3219.0, 2161.1], [3218.1, 2162.0], [3218.0, 2162.0075187969924], [3217.0, 2162.2], [3216.2, 2163.0], [3216.0, 2163.032258064516], [3215.032258064516, 2164.0], [3215.0, 2164.0149253731342], [3214.0149253731342, 2165.0], [3214.0, 2165.035714285714], [3213.035714285714, 2166.0], [3213.0, 2166.5], [3212.5, 2167.0], [3212.0080645161293, 2168.0], [3212.0, 2168.25], [3211.25, 2169.0], [3211.0138888888887, 2170.0], [3211.004424778761, 2171.0], [3211.0, 2171.090909090909], [3210.090909090909, 2172.0], [3210.0196078431372, 2173.0], [3210.0071428571428, 2174.0], [3210.004524886878, 2175.0], [3210.004016064257, 2176.0], [3210.0, 2177.0], [3209.3333333333335, 2178.0], [3209.1, 2179.0], [3209.1111111111113, 2180.0], [3209.1666666666665, 2181.0], [3209.125, 2182.0], [3209.090909090909, 2183.0], [3209.125, 2184.0], [3209.5, 2185.0], [3210.0, 2185.5], [3210.0039215686274, 2186.0], [3210.004048582996, 2187.0], [3210.0046296296296, 2188.0], [3210.005649717514, 2189.0], [3210.0103092783506, 2190.0], [3210.0196078431372, 2191.0], [3210.0263157894738, 2192.0], [3210.037037037037, 2193.0], [3210.125, 2194.0], [3211.0, 2194.875], [3211.003984063745, 2195.0], [3211.0054347826085, 2196.0], [3211.0073529411766, 2197.0], [3211.010101010101, 2198.0], [3211.02, 2199.0], [3211.0833333333335, 2200.0], [3212.0, 2200.9166666666665], [3212.0039215686274, 2201.0], [3212.0048780487805, 2202.0], [3212.0065359477126, 2203.0], [3212.0131578947367, 2204.0], [3212.037037037037, 2205.0], [3212.3333333333335, 2206.0], [3213.0, 2206.6666666666665], [3213.004524886878, 2207.0], [3213.0073529411766, 2208.0], [3213.025, 2209.0], [3213.090909090909, 2210.0], [3214.0, 2211.0], [3214.0054347826085, 2212.0], [3214.0102040816328, 2213.0], [3214.0344827586205, 2214.0], [3215.0, 2215.0], [3215.0057142857145, 2216.0], [3215.0123456790125, 2217.0], [3215.0333333333333, 2218.0], [3216.0, 2219.0], [3216.0062111801244, 2220.0], [3216.021276595745, 2221.0], [3216.5, 2222.0], [3217.0, 2222.5], [3217.0054054054053, 2223.0], [3217.0128205128203, 2224.0], [3217.125, 2225.0], [3218.0, 2225.875], [3218.0054945054944, 2226.0], [3218.0243902439024, 2227.0], [3219.0, 2227.9756097560976], [3219.004081632653, 2228.0], [3219.0093457943926, 2229.0], [3219.1111111111113, 2230.0], [3220.0, 2230.8888888888887], [3220.00641025641, 2231.0], [3220.1111111111113, 2232.0], [3221.0, 2232.8888888888887], [3221.005681818182, 2233.0], [3221.027027027027, 2234.0], [3222.0, 2234.972972972973], [3222.0060606060606, 2235.0], [3222.25, 2236.0], [3223.0, 2236.75], [3223.0114942528735, 2237.0], [3224.0, 2238.0], [3224.04, 2239.0], [3225.0, 2239.96], [3225.0131578947367, 2240.0], [3226.0, 2240.9868421052633], [3226.005076142132, 2241.0], [3226.0833333333335, 2242.0], [3227.0, 2242.9166666666665], [3227.0588235294117, 2243.0], [3228.0, 2243.9411764705883], [3228.019230769231, 2244.0], [3229.0, 2244.980769230769], [3229.0093457943926, 2245.0], [3230.0, 2245.9906542056074], [3230.008849557522, 2246.0], [3231.0, 2246.991150442478], [3231.0081967213114, 2247.0], [3232.0, 2247.9918032786886], [3232.0063694267515, 2248.0], [3233.0, 2249.0], [3234.0, 2249.992307692308], [3234.009433962264, 2250.0], [3235.0, 2250.990566037736], [3235.0079365079364, 2251.0], [3236.0, 2251.9920634920636], [3236.011111111111, 2252.0], [3237.0, 2252.988888888889], [3237.032258064516, 2253.0], [3238.0, 2253.967741935484], [3238.0243902439024, 2254.0], [3239.0, 2254.9756097560976], [3239.029411764706, 2255.0], [3240.0, 2255.970588235294], [3240.1666666666665, 2256.0], [3241.0, 2256.8333333333335], [3241.5, 2257.0], [3242.0, 2257.5], [3242.1428571428573, 2258.0], [3243.0, 2258.8571428571427], [3244.0, 2259.0], [3245.0, 2259.992307692308], [3245.0078125, 2260.0], [3246.0, 2260.9921875], [3246.005988023952, 2261.0], [3247.0, 2262.0], [3248.0, 2262.9933333333333], [3248.007633587786, 2263.0], [3249.0, 2263.992366412214], [3249.0049504950493, 2264.0], [3249.1, 2265.0], [3250.0, 2265.9], [3250.125, 2266.0], [3251.0, 2266.875], [3251.0833333333335, 2267.0], [3252.0, 2267.9166666666665], [3252.0106382978724, 2268.0], [3253.0, 2268.9893617021276], [3253.005319148936, 2269.0], [3253.25, 2270.0], [3254.0, 2270.75], [3254.0588235294117, 2271.0], [3255.0, 2271.9411764705883], [3255.0069444444443, 2272.0], [3255.1111111111113, 2273.0], [3256.0, 2273.8888888888887], [3256.009433962264, 2274.0], [3257.0, 2275.0], [3257.0625, 2276.0], [3258.0, 2276.9375], [3258.0060240963853, 2277.0], [3258.027027027027, 2278.0], [3259.0, 2279.0], [3259.0142857142855, 2280.0], [3260.0, 2280.9857142857145], [3260.004424778761, 2281.0], [3260.0204081632655, 2282.0], [3260.25, 2283.0], [3261.0, 2283.75], [3261.0048543689322, 2284.0], [3261.0114942528735, 2285.0], [3261.125, 2286.0], [3262.0, 2286.875], [3262.0052631578947, 2287.0], [3262.0263157894738, 2288.0], [3262.2, 2289.0], [3263.0, 2290.0], [3263.0050505050503, 2291.0], [3263.009009009009, 2292.0], [3263.0232558139537, 2293.0], [3263.1666666666665, 2294.0], [3264.0, 2294.8333333333335], [3264.0042918454938, 2295.0], [3264.0055555555555, 2296.0], [3264.00625, 2297.0], [3264.0078740157483, 2298.0], [3264.0116279069766, 2299.0], [3264.018181818182, 2300.0], [3264.029411764706, 2301.0], [3264.125, 2302.0], [3264.5, 2303.0], [3264.5, 2304.0], [3264.1666666666665, 2305.0], [3264.0833333333335, 2306.0], [3264.076923076923, 2307.0], [3264.0666666666666, 2308.0], [3264.0666666666666, 2309.0], [3264.1, 2310.0], [3264.1428571428573, 2311.0], [3264.0588235294117, 2312.0], [3264.0151515151515, 2313.0], [3264.0080645161293, 2314.0], [3264.0054347826085, 2315.0], [3264.0042918454938, 2316.0], [3264.0039215686274, 2317.0], [3264.0, 2317.3333333333335], [3263.3333333333335, 2318.0], [3263.1, 2319.0], [3263.025, 2320.0], [3263.006134969325, 2321.0], [3263.0, 2322.0], [3262.0625, 2323.0], [3262.0131578947367, 2324.0], [3262.0061728395062, 2325.0], [3262.0, 2326.0], [3261.1428571428573, 2327.0], [3261.0227272727275, 2328.0], [3261.005347593583, 2329.0], [3261.0, 2329.090909090909], [3260.090909090909, 2330.0], [3260.009009009009, 2331.0], [3260.0, 2332.0], [3259.030303030303, 2333.0], [3259.0064935064934, 2334.0], [3259.0, 2334.5], [3258.5, 2335.0], [3258.025641025641, 2336.0], [3258.005681818182, 2337.0], [3258.0, 2337.0588235294117], [3257.0588235294117, 2338.0], [3257.005076142132, 2339.0], [3257.0, 2339.027027027027], [3256.027027027027, 2340.0], [3256.0049751243782, 2341.0], [3256.0, 2341.021739130435], [3255.021739130435, 2342.0], [3255.0046948356808, 2343.0], [3255.0, 2343.02], [3254.02, 2344.0], [3254.0045454545457, 2345.0], [3254.0, 2345.0333333333333], [3253.0333333333333, 2346.0], [3253.0, 2346.5], [3252.5, 2347.0], [3252.005988023952, 2348.0], [3252.0, 2348.0123456790125], [3251.0123456790125, 2349.0], [3251.0, 2349.090909090909], [3250.090909090909, 2350.0], [3250.0055248618783, 2351.0], [3250.0, 2351.0169491525426], [3249.0169491525426, 2352.0], [3249.0, 2352.0555555555557], [3248.0555555555557, 2353.0], [3248.0, 2353.029411764706], [3247.029411764706, 2354.0], [3247.0, 2354.0666666666666], [3246.0666666666666, 2355.0], [3246.0, 2355.3333333333335], [3245.3333333333335, 2356.0], [3245.0, 2356.0526315789475], [3244.0526315789475, 2357.0], [3244.0, 2357.0119047619046], [3243.0119047619046, 2358.0], [3243.0, 2358.0079365079364], [3242.0079365079364, 2359.0], [3242.0, 2359.00625], [3241.0, 2359.076923076923], [3240.076923076923, 2360.0], [3240.0, 2360.0062893081763], [3239.0, 2360.076923076923], [3238.076923076923, 2361.0], [3238.0, 2361.0128205128203], [3237.0, 2362.0], [3236.0, 2362.0055865921786], [3235.0, 2362.0163934426228], [3234.0, 2363.0], [3233.0, 2363.0078125], [3232.0, 2363.019230769231], [3231.0, 2363.0285714285715], [3230.0, 2363.0625], [3229.0625, 2364.0], [3229.0, 2364.0039215686274], [3228.0, 2364.005076142132], [3227.0, 2364.0055248618783], [3226.0, 2364.004830917874], [3225.0, 2364.0044843049327], [3224.0, 2364.004672897196], [3223.0, 2364.005347593583], [3222.0, 2364.004424778761], [3221.5, 2364.0], [3221.0, 2363.5], [3220.0, 2363.05], [3219.0, 2363.02], [3218.0, 2363.0133333333333], [3217.0, 2363.0068027210887], [3216.0, 2363.0], [3215.0, 2362.0243902439024], [3214.0, 2362.0074074074073], [3213.0, 2362.004098360656], [3212.8888888888887, 2362.0], [3212.0, 2361.1111111111113], [3211.0, 2361.008695652174], [3210.8571428571427, 2361.0], [3210.0, 2360.1428571428573], [3209.0, 2360.010101010101], [3208.5, 2360.0], [3208.0, 2359.5], [3207.0, 2359.0227272727275], [3206.0, 2359.005154639175], [3205.9655172413795, 2359.0], [3205.0, 2358.0344827586205], [3204.0, 2358.0], [3203.0, 2357.0103092783506], [3202.8333333333335, 2357.0], [3202.0, 2356.1666666666665], [3201.0, 2356.0073529411766], [3200.8571428571427, 2356.0], [3200.0, 2355.1428571428573], [3199.0, 2355.006711409396], [3198.980769230769, 2355.0], [3198.0, 2354.019230769231], [3197.9, 2354.0], [3197.0, 2353.1], [3196.0, 2353.005617977528], [3195.9864864864867, 2353.0], [3195.0, 2352.0135135135133], [3194.6666666666665, 2352.0], [3194.0, 2351.3333333333335], [3193.0, 2351.006097560976], [3192.992424242424, 2351.0], [3192.0, 2350.007575757576], [3191.984375, 2350.0], [3191.0, 2349.015625], [3190.8888888888887, 2349.0], [3190.0, 2348.1111111111113], [3189.0, 2348.005154639175], [3188.9935064935066, 2348.0], [3188.0, 2347.0064935064934], [3187.9928571428572, 2347.0], [3187.0, 2346.0071428571428], [3186.9894736842107, 2346.0], [3186.0, 2345.0105263157893], [3185.964285714286, 2345.0], [3185.0, 2344.035714285714], [3184.970588235294, 2344.0], [3184.0, 2343.029411764706], [3183.9777777777776, 2343.0], [3183.0, 2342.0222222222224], [3182.923076923077, 2342.0], [3182.0, 2341.076923076923], [3181.9666666666667, 2341.0], [3181.0, 2340.0333333333333], [3180.984375, 2340.0], [3180.0, 2339.015625], [3179.978723404255, 2339.0], [3179.0, 2338.021276595745], [3178.9791666666665, 2338.0], [3178.0, 2337.0208333333335], [3177.9919354838707, 2337.0], [3177.0, 2336.0080645161293], [3176.9896907216494, 2336.0], [3176.0, 2335.0103092783506], [3175.9896907216494, 2335.0], [3175.0, 2334.0103092783506], [3174.9942528735633, 2334.0], [3174.6666666666665, 2333.0], [3174.0, 2332.3333333333335], [3173.75, 2332.0], [3173.0, 2331.25], [3172.6666666666665, 2331.0], [3172.0, 2330.3333333333335], [3171.96, 2330.0], [3171.0, 2329.04], [3170.96875, 2329.0], [3170.0, 2328.03125], [3169.96, 2328.0], [3169.0, 2327.04], [3168.984375, 2327.0], [3168.0, 2326.015625], [3167.9866666666667, 2326.0], [3167.0, 2325.0133333333333], [3166.9761904761904, 2325.0], [3166.0, 2324.0238095238096], [3165.9777777777776, 2324.0], [3165.0, 2323.0222222222224], [3164.972222222222, 2323.0], [3164.0, 2322.027777777778], [3163.909090909091, 2322.0], [3163.0, 2321.090909090909], [3162.75, 2321.0], [3162.0, 2320.25], [3161.0, 2320.0059523809523], [3160.985507246377, 2320.0], [3160.0, 2319.014492753623], [3159.8333333333335, 2319.0], [3159.0, 2318.1666666666665], [3158.0, 2318.0051813471505], [3157.9655172413795, 2318.0], [3157.0, 2317.0344827586205], [3156.0, 2317.005], [3155.969696969697, 2317.0], [3155.0, 2316.030303030303], [3154.0, 2316.00625], [3153.5, 2316.0], [3153.0, 2315.5], [3152.0, 2315.0243902439024], [3151.0, 2315.005988023952], [3150.0, 2315.0042735042734], [3149.6666666666665, 2315.0], [3149.0, 2314.3333333333335], [3148.0, 2314.090909090909], [3147.0, 2314.027777777778], [3146.0, 2314.0113636363635], [3145.0, 2314.0102040816328], [3144.0, 2314.010989010989], [3143.0, 2314.008547008547], [3142.0, 2314.007042253521], [3141.0, 2314.0079365079364], [3140.0, 2314.0114942528735], [3139.0, 2314.0142857142855], [3138.0, 2314.014705882353], [3137.0, 2314.025641025641], [3136.0, 2314.0714285714284], [3135.0, 2314.1666666666665], [3134.0, 2314.3333333333335], [3133.3333333333335, 2315.0], [3133.0, 2315.004016064257], [3132.0, 2315.0048780487805], [3131.0, 2315.0072463768115], [3130.0, 2315.0093457943926], [3129.0, 2315.0208333333335], [3128.0, 2315.125], [3127.0, 2316.0], [3126.0, 2316.0044052863436], [3125.0, 2316.006896551724], [3124.0, 2316.0188679245284], [3123.0, 2316.076923076923], [3122.0, 2316.3333333333335], [3121.3333333333335, 2317.0], [3121.0, 2317.0048543689322], [3120.0, 2317.0081967213114], [3119.0, 2317.0416666666665], [3118.0, 2317.5], [3117.5, 2318.0], [3117.0, 2318.004329004329], [3116.0, 2318.0116279069766], [3115.0, 2318.0526315789475], [3114.0, 2318.5], [3113.5, 2319.0], [3113.0, 2319.0051813471505], [3112.0, 2319.014705882353], [3111.0, 2319.1666666666665], [3110.1666666666665, 2320.0], [3110.0, 2320.004048582996], [3109.0, 2320.0063694267515], [3108.0, 2320.0384615384614], [3107.0384615384614, 2321.0], [3107.0, 2321.0040322580644], [3106.0, 2321.007042253521], [3105.0, 2321.0263157894738], [3104.0, 2322.0], [3103.0, 2322.0080645161293], [3102.0, 2322.076923076923], [3101.076923076923, 2323.0], [3101.0, 2323.0043103448274], [3100.0, 2323.009009009009], [3099.0, 2323.3333333333335], [3098.3333333333335, 2324.0], [3098.0, 2324.0064935064934], [3097.0, 2324.029411764706], [3096.029411764706, 2325.0], [3096.0, 2325.004716981132], [3095.0, 2325.0153846153844], [3094.0, 2326.0], [3093.0, 2326.0117647058823], [3092.0, 2326.1428571428573], [3091.1428571428573, 2327.0], [3091.0, 2327.0098039215686], [3090.0, 2327.5], [3089.5, 2328.0], [3089.0, 2328.008849557522], [3088.0, 2328.25], [3087.25, 2329.0], [3087.0, 2329.0138888888887], [3086.0138888888887, 2330.0], [3086.0, 2330.004739336493], [3085.0, 2330.0185185185187], [3084.0185185185187, 2331.0], [3084.0, 2331.005376344086], [3083.0, 2331.1111111111113], [3082.1111111111113, 2332.0], [3082.0, 2332.007042253521], [3081.0, 2332.1666666666665], [3080.1666666666665, 2333.0], [3080.0, 2333.0169491525426], [3079.0169491525426, 2334.0], [3079.0, 2334.0057142857145], [3078.0, 2334.0588235294117], [3077.0588235294117, 2335.0], [3077.0, 2335.009433962264], [3076.009433962264, 2336.0], [3076.0, 2336.0046948356808], [3075.0, 2336.027777777778], [3074.027777777778, 2337.0], [3074.0, 2337.0054945054944], [3073.0, 2337.1], [3072.1, 2338.0], [3072.0, 2338.0169491525426], [3071.0169491525426, 2339.0], [3071.0, 2339.0042918454938], [3070.0, 2339.016666666667], [3069.016666666667, 2340.0], [3069.0, 2340.0060606060606], [3068.0, 2340.1], [3067.1, 2341.0], [3067.0, 2341.0063694267515], [3066.0, 2341.0588235294117], [3065.0588235294117, 2342.0], [3065.0, 2342.0067567567567], [3064.0, 2342.3333333333335], [3063.3333333333335, 2343.0], [3063.0, 2343.009090909091], [3062.0, 2343.0588235294117], [3061.0588235294117, 2344.0], [3061.0, 2344.005681818182], [3060.0, 2344.0625], [3059.0625, 2345.0], [3059.0, 2345.0042372881358], [3058.0, 2345.0075187969924], [3057.0, 2345.032258064516], [3056.0, 2346.0], [3055.0, 2346.0123456790125], [3054.0, 2346.0625], [3053.0, 2346.5], [3052.5, 2347.0], [3052.0, 2347.0045871559632], [3051.0, 2347.008849557522], [3050.0, 2347.0151515151515], [3049.0, 2347.0133333333333], [3048.0, 2347.012048192771], [3047.0, 2347.0153846153844], [3046.0, 2347.035714285714], [3045.0, 2347.04], [3044.0, 2347.019230769231], [3043.0, 2347.0079365079364], [3042.0, 2347.0067567567567], [3041.0, 2347.0042918454938], [3040.9655172413795, 2347.0], [3040.0, 2346.0344827586205], [3039.0, 2346.006097560976], [3038.5, 2346.0], [3038.0, 2345.5], [3037.0, 2345.0333333333333], [3036.0, 2345.006134969325], [3035.983870967742, 2345.0], [3035.0, 2344.016129032258], [3034.909090909091, 2344.0], [3034.0, 2343.090909090909], [3033.0, 2343.0059523809523], [3032.9912280701756, 2343.0], [3032.0, 2342.0087719298244], [3031.9871794871797, 2342.0], [3031.0, 2341.0128205128203], [3030.9411764705883, 2341.0], [3030.0, 2340.0588235294117], [3029.9850746268658, 2340.0], [3029.0, 2339.0149253731342], [3028.991304347826, 2339.0], [3028.0, 2338.008695652174], [3027.9941520467837, 2338.0], [3027.923076923077, 2337.0], [3027.0, 2336.076923076923], [3026.923076923077, 2336.0], [3026.0, 2335.076923076923], [3025.9924812030076, 2335.0], [3025.9, 2334.0], [3025.0, 2333.1], [3024.987804878049, 2333.0], [3024.0, 2332.012195121951], [3023.9960784313726, 2332.0], [3023.9936305732485, 2331.0], [3023.9761904761904, 2330.0], [3023.0, 2329.0238095238096], [3022.9957805907175, 2329.0], [3022.9887640449438, 2328.0], [3022.8, 2327.0], [3022.0, 2326.2], [3021.9957081545062, 2326.0], [3021.9945355191257, 2325.0], [3021.9868421052633, 2324.0], [3021.909090909091, 2323.0], [3021.5, 2322.0], [3021.0, 2321.5], [3020.996062992126, 2321.0], [3020.995652173913, 2320.0], [3020.994652406417, 2319.0], [3020.991452991453, 2318.0], [3020.985507246377, 2317.0], [3020.9859154929577, 2316.0], [3020.991304347826, 2315.0], [3020.9857142857145, 2314.0], [3020.9850746268658, 2313.0], [3020.989898989899, 2312.0], [3020.9920634920636, 2311.0], [3020.9926470588234, 2310.0], [3020.9931972789113, 2309.0], [3020.992307692308, 2308.0], [3020.994082840237, 2307.0], [3020.995215311005, 2306.0], [3020.9957627118642, 2305.0], [3020.9956896551726, 2304.0], [3020.995951417004, 2303.0], [3020.996, 2302.0], [3020.9958847736625, 2301.0], [3020.995918367347, 2300.0], [3020.995951417004, 2299.0], [3020.9957264957266, 2298.0], [3020.995475113122, 2297.0], [3020.994764397906, 2296.0], [3020.9913793103447, 2295.0], [3020.9850746268658, 2294.0], [3020.975, 2293.0], [3020.875, 2292.0], [3020.0, 2291.125], [3019.996015936255, 2291.0], [3019.993670886076, 2290.0], [3019.9861111111113, 2289.0], [3019.8, 2288.0], [3019.0, 2287.2], [3018.9928057553957, 2287.0], [3018.9583333333335, 2286.0], [3018.0, 2285.0416666666665], [3017.994623655914, 2285.0], [3017.9655172413795, 2284.0], [3017.0, 2283.0344827586205], [3016.9944134078214, 2283.0], [3016.9333333333334, 2282.0], [3016.0, 2281.0666666666666], [3015.9871794871797, 2281.0], [3015.0, 2280.0128205128203], [3014.9934210526317, 2280.0], [3014.5, 2279.0], [3014.0, 2278.5], [3013.8888888888887, 2278.0], [3013.0, 2277.1111111111113], [3012.9, 2277.0], [3012.0, 2276.1], [3011.9333333333334, 2276.0], [3011.0, 2275.0666666666666], [3010.923076923077, 2275.0], [3010.0, 2274.076923076923], [3009.0, 2274.0], [3008.0, 2273.0071942446043], [3007.9841269841268, 2273.0], [3007.0, 2272.0158730158732], [3006.5, 2272.0], [3006.0, 2271.5], [3005.0, 2271.0103092783506], [3004.875, 2271.0], [3004.0, 2270.125], [3003.0, 2270.00826446281], [3002.0, 2270.0], [3001.0, 2269.0151515151515], [3000.0, 2269.0062111801244], [2999.0, 2269.0044444444443], [2998.0, 2269.0], [2997.0, 2268.3333333333335], [2996.0, 2268.1666666666665], [2995.0, 2268.0588235294117], [2994.0, 2268.125], [2993.125, 2269.0], [2993.0, 2269.004], [2992.0, 2269.0052631578947], [2991.0, 2269.0104166666665], [2990.0, 2269.0434782608695], [2989.0434782608695, 2270.0], [2989.0, 2270.004081632653], [2988.0, 2270.008474576271], [2987.0, 2270.1], [2986.1, 2271.0], [2986.0, 2271.0078125], [2985.0, 2271.1428571428573], [2984.1428571428573, 2272.0], [2984.0, 2272.008474576271], [2983.0, 2272.5], [2982.5, 2273.0], [2982.0, 2273.0344827586205], [2981.0344827586205, 2274.0], [2981.0, 2274.0057142857145], [2980.0, 2274.5], [2979.5, 2275.0], [2979.0, 2275.5], [2978.5, 2276.0], [2978.0, 2276.0714285714284], [2977.0714285714284, 2277.0], [2977.0, 2277.0434782608695], [2976.0434782608695, 2278.0], [2976.0, 2278.0526315789475], [2975.0526315789475, 2279.0], [2975.0, 2279.0555555555557], [2974.0555555555557, 2280.0], [2974.0, 2280.02], [2973.02, 2281.0], [2973.0, 2281.1428571428573], [2972.1428571428573, 2282.0], [2972.0, 2283.0], [2971.006134969325, 2284.0], [2971.0, 2284.0116279069766], [2970.0116279069766, 2285.0], [2970.0, 2285.0526315789475], [2969.0526315789475, 2286.0], [2969.0, 2287.0], [2968.0061728395062, 2288.0], [2968.0, 2288.0163934426228], [2967.0163934426228, 2289.0], [2967.0, 2289.5], [2966.5, 2290.0], [2966.007692307692, 2291.0], [2966.0, 2291.0208333333335], [2965.0208333333335, 2292.0], [2965.0, 2293.0], [2964.0114942528735, 2294.0], [2964.0, 2294.25], [2963.25, 2295.0], [2963.005681818182, 2296.0], [2963.0, 2296.030303030303], [2962.030303030303, 2297.0], [2962.0051813471505, 2298.0], [2962.0, 2298.0204081632655], [2961.0204081632655, 2299.0], [2961.0, 2299.3333333333335], [2960.3333333333335, 2300.0], [2960.0093457943926, 2301.0], [2960.0, 2301.5], [2959.5, 2302.0], [2959.0086206896553, 2303.0], [2959.0, 2303.05], [2958.05, 2304.0], [2958.006134969325, 2305.0], [2958.0, 2305.0666666666666], [2957.0666666666666, 2306.0], [2957.0048076923076, 2307.0], [2957.0, 2307.015625], [2956.015625, 2308.0], [2956.0, 2309.0], [2955.0158730158732, 2310.0], [2955.0, 2310.3333333333335], [2954.3333333333335, 2311.0], [2954.006451612903, 2312.0], [2954.0, 2312.0434782608695], [2953.0434782608695, 2313.0], [2953.0061728395062, 2314.0], [2953.0, 2314.0172413793102], [2952.0172413793102, 2315.0], [2952.0, 2315.3333333333335], [2951.3333333333335, 2316.0], [2951.0125, 2317.0], [2951.0, 2317.25], [2950.25, 2318.0], [2950.0059523809523, 2319.0], [2950.0, 2319.0243902439024], [2949.0243902439024, 2320.0], [2949.0046511627907, 2321.0], [2949.0, 2321.0188679245284], [2948.0188679245284, 2322.0], [2948.0, 2322.1666666666665], [2947.1666666666665, 2323.0], [2947.0057142857145, 2324.0], [2947.0, 2324.0333333333333], [2946.0333333333333, 2325.0], [2946.0052083333335, 2326.0], [2946.0, 2326.0163934426228], [2945.0163934426228, 2327.0], [2945.0, 2327.25], [2944.25, 2328.0], [2944.0087719298244, 2329.0], [2944.0, 2329.25], [2943.25, 2330.0], [2943.008695652174, 2331.0], [2943.0, 2331.090909090909], [2942.090909090909, 2332.0], [2942.008333333333, 2333.0], [2942.0, 2334.0], [2941.015625, 2335.0], [2941.0049261083745, 2336.0], [2941.0, 2336.125], [2940.125, 2337.0], [2940.016129032258, 2338.0], [2940.004739336493, 2339.0], [2940.0, 2340.0], [2940.0, 2341.0], [2939.25, 2342.0], [2939.5, 2343.0], [2940.0, 2344.0], [2940.004385964912, 2345.0], [2940.0135135135133, 2346.0], [2940.1666666666665, 2347.0], [2941.0, 2347.8333333333335], [2941.009009009009, 2348.0], [2941.5, 2349.0], [2942.0, 2349.5], [2942.0196078431372, 2350.0], [2943.0, 2350.9803921568628], [2943.030303030303, 2351.0], [2944.0, 2351.969696969697], [2944.04, 2352.0], [2945.0, 2352.96], [2945.1428571428573, 2353.0], [2946.0, 2353.8571428571427], [2947.0, 2353.9948979591836], [2947.0081967213114, 2354.0], [2948.0, 2354.9918032786886], [2948.125, 2355.0], [2949.0, 2355.875], [2950.0, 2355.9906542056074], [2950.1666666666665, 2356.0], [2951.0, 2356.8333333333335], [2952.0, 2356.987804878049], [2953.0, 2356.995475113122], [2953.0666666666666, 2357.0], [2954.0, 2357.9333333333334], [2955.0, 2357.991150442478], [2956.0, 2357.9957081545062], [2956.1428571428573, 2358.0], [2957.0, 2358.8571428571427], [2958.0, 2358.964285714286], [2959.0, 2358.991304347826], [2960.0, 2358.9945945945947], [2961.0, 2359.0], [2962.0, 2359.8333333333335], [2963.0, 2359.9444444444443], [2964.0, 2359.9827586206898], [2965.0, 2359.9936305732485], [2966.0, 2359.9947368421053], [2967.0, 2359.995535714286], [2968.0, 2360.0], [2969.0, 2360.9333333333334], [2970.0, 2360.9777777777776], [2971.0, 2360.9859154929577], [2972.0, 2360.9910714285716], [2973.0, 2360.9951923076924], [2974.0, 2361.0], [2975.0, 2361.923076923077], [2976.0, 2361.9821428571427], [2977.0, 2361.9951219512195], [2977.125, 2362.0], [2978.0, 2362.875], [2979.0, 2362.972972972973], [2980.0, 2362.9919354838707], [2980.3333333333335, 2363.0], [2981.0, 2363.6666666666665], [2982.0, 2363.9896907216494], [2983.0, 2363.995614035088], [2983.0434782608695, 2364.0], [2984.0, 2364.9565217391305], [2985.0, 2364.9933774834435], [2985.0113636363635, 2365.0], [2986.0, 2365.9886363636365], [2987.0, 2365.995575221239], [2987.016666666667, 2366.0], [2988.0, 2366.983333333333], [2988.0333333333333, 2367.0], [2989.0, 2367.9666666666667], [2989.25, 2368.0], [2990.0, 2368.75], [2991.0, 2368.994350282486], [2991.013698630137, 2369.0], [2992.0, 2369.986301369863], [2992.0119047619046, 2370.0], [2993.0, 2370.9880952380954], [2993.0153846153844, 2371.0], [2994.0, 2371.9846153846156], [2994.0151515151515, 2372.0], [2995.0, 2372.9848484848485], [2995.0055865921786, 2373.0], [2995.1666666666665, 2374.0], [2996.0, 2374.8333333333335], [2996.0454545454545, 2375.0], [2997.0, 2375.9545454545455], [2997.027777777778, 2376.0], [2998.0, 2376.972222222222], [2998.0060240963853, 2377.0], [2998.0416666666665, 2378.0], [2999.0, 2378.9583333333335], [2999.0072463768115, 2379.0], [2999.5, 2380.0], [3000.0, 2380.5], [3000.0102040816328, 2381.0], [3000.0476190476193, 2382.0], [3001.0, 2382.9523809523807], [3001.0046082949307, 2383.0], [3001.0128205128203, 2384.0], [3002.0, 2385.0], [3002.009259259259, 2386.0], [3002.025641025641, 2387.0], [3002.076923076923, 2388.0], [3003.0, 2388.923076923077], [3003.0042194092825, 2389.0], [3003.009433962264, 2390.0], [3003.019230769231, 2391.0], [3003.0208333333335, 2392.0], [3003.030303030303, 2393.0], [3003.0666666666666, 2394.0], [3004.0, 2395.0], [3004.0041152263375, 2396.0], [3004.0041152263375, 2397.0], [3004.0040650406504, 2398.0], [3004.003984063745, 2399.0], [3004.0039215686274, 2400.0], [3004.0, 2401.0], [3003.0833333333335, 2402.0], [3003.019230769231, 2403.0], [3003.009900990099, 2404.0], [3003.0061728395062, 2405.0], [3003.0050505050503, 2406.0], [3003.0, 2406.5], [3002.5, 2407.0], [3002.0175438596493, 2408.0], [3002.0075187969924, 2409.0], [3002.004464285714, 2410.0], [3002.0, 2410.03125], [3001.03125, 2411.0], [3001.0046511627907, 2412.0], [3001.0, 2412.027777777778], [3000.027777777778, 2413.0], [3000.0054347826085, 2414.0], [3000.0, 2414.2], [2999.2, 2415.0], [2999.0062111801244, 2416.0], [2999.0, 2416.0185185185187], [2998.0185185185187, 2417.0], [2998.0, 2418.0], [2997.0, 2419.0], [2996.006134969325, 2420.0], [2996.0, 2420.0091743119265], [2995.0091743119265, 2421.0], [2995.0, 2421.03125], [2994.03125, 2422.0], [2994.0, 2422.032258064516], [2993.032258064516, 2423.0], [2993.0, 2423.01], [2992.01, 2424.0], [2992.0, 2424.0169491525426], [2991.0169491525426, 2425.0], [2991.0, 2425.0104166666665], [2990.0104166666665, 2426.0], [2990.0, 2426.0051020408164], [2989.0, 2426.0833333333335], [2988.0833333333335, 2427.0], [2988.0, 2427.0333333333333], [2987.0333333333333, 2428.0], [2987.0, 2428.009708737864], [2986.0, 2428.3333333333335], [2985.3333333333335, 2429.0], [2985.0, 2429.021276595745], [2984.021276595745, 2430.0], [2984.0, 2430.006993006993], [2983.0, 2430.076923076923], [2982.076923076923, 2431.0], [2982.0, 2431.006097560976], [2981.0, 2431.0666666666666], [2980.0666666666666, 2432.0], [2980.0, 2432.0096153846152], [2979.0, 2433.0], [2978.0, 2433.0074074074073], [2977.0, 2433.090909090909], [2976.090909090909, 2434.0], [2976.0, 2434.008547008547], [2975.0, 2434.0666666666666], [2974.0666666666666, 2435.0], [2974.0, 2435.004672897196], [2973.0, 2435.0149253731342], [2972.0149253731342, 2436.0], [2972.0, 2436.0041841004186], [2971.0, 2436.0112359550562], [2970.0, 2436.0625], [2969.0625, 2437.0], [2969.0, 2437.004672897196], [2968.0, 2437.0208333333335], [2967.0, 2437.25], [2966.25, 2438.0], [2966.0, 2438.0049751243782], [2965.0, 2438.011111111111], [2964.0, 2438.1428571428573], [2963.1428571428573, 2439.0], [2963.0, 2439.005319148936], [2962.0, 2439.012658227848], [2961.0, 2439.0526315789475], [2960.0526315789475, 2440.0], [2960.0, 2440.0041152263375], [2959.0, 2440.006711409396], [2958.0, 2440.0112359550562], [2957.0, 2440.037037037037], [2956.0, 2441.0], [2955.0, 2441.0057803468208], [2954.0, 2441.010752688172], [2953.0, 2441.016129032258], [2952.0, 2441.090909090909], [2951.0, 2442.0], [2950.0, 2442.0041493775934], [2949.0, 2442.0054054054053], [2948.0, 2442.0070921985816], [2947.0, 2442.0232558139537], [2946.0, 2442.0588235294117], [2945.0, 2442.0833333333335], [2944.0, 2442.125], [2943.0, 2443.0], [2942.0, 2443.004424778761], [2941.0, 2443.0045454545457], [2940.0, 2443.004784688995], [2939.0, 2443.0060240963853], [2938.0, 2443.0078125], [2937.0, 2443.0062893081763], [2936.0, 2443.005376344086], [2935.0, 2443.0051813471505], [2934.0, 2443.005025125628], [2933.0, 2443.005154639175], [2932.0, 2443.0052631578947], [2931.0, 2443.003984063745], [2930.5, 2443.0], [2930.0, 2442.5], [2929.0, 2442.3333333333335], [2928.0, 2442.0714285714284], [2927.0, 2442.0123456790125], [2926.0, 2442.005649717514], [2925.0, 2442.0], [2924.0, 2441.1428571428573], [2923.0, 2441.027777777778], [2922.0, 2441.0069444444443], [2921.6666666666665, 2441.0], [2921.0, 2440.3333333333335], [2920.0, 2440.0208333333335], [2919.0, 2440.005128205128], [2918.9836065573772, 2440.0], [2918.0, 2439.0163934426228], [2917.6666666666665, 2439.0], [2917.0, 2438.3333333333335], [2916.0, 2438.0095238095237], [2915.5, 2438.0], [2915.0, 2437.5], [2914.0, 2437.007633587786], [2913.987951807229, 2437.0], [2913.0, 2436.012048192771], [2912.9166666666665, 2436.0], [2912.0, 2435.0833333333335], [2911.875, 2435.0], [2911.0, 2434.125], [2910.962962962963, 2434.0], [2910.0, 2433.037037037037], [2909.9655172413795, 2433.0], [2909.0, 2432.0344827586205], [2908.9411764705883, 2432.0], [2908.0, 2431.0588235294117], [2907.9885057471265, 2431.0], [2907.0, 2430.0114942528735], [2906.9953051643192, 2430.0], [2906.875, 2429.0], [2906.0, 2428.125], [2905.99173553719, 2428.0], [2905.9411764705883, 2427.0], [2905.0, 2426.0588235294117], [2904.9945355191257, 2426.0], [2904.95, 2425.0], [2904.0, 2424.05], [2903.9941520467837, 2424.0], [2903.9791666666665, 2423.0], [2903.8333333333335, 2422.0], [2903.0, 2421.1666666666665], [2902.9951456310678, 2421.0], [2902.9895833333335, 2420.0], [2902.9803921568628, 2419.0], [2902.974358974359, 2418.0], [2902.9, 2417.0], [2902.0, 2416.0], [2901.995169082126, 2415.0], [2901.992957746479, 2414.0], [2901.993103448276, 2413.0], [2901.991666666667, 2412.0], [2901.9887640449438, 2411.0], [2901.9903846153848, 2410.0], [2901.993902439024, 2409.0], [2901.9942857142855, 2408.0], [2901.9936305732485, 2407.0], [2901.9942528735633, 2406.0], [2901.9953051643192, 2405.0], [2901.995951417004, 2404.0], [2901.9960784313726, 2403.0], [2901.9960784313726, 2402.0], [2902.0, 2401.5], [2902.5, 2401.0], [2902.6666666666665, 2400.0], [2902.5, 2399.0], [2902.5, 2398.0], [2902.5, 2397.0], [2902.0, 2396.0], [2901.9959349593496, 2395.0], [2901.9944134078214, 2394.0], [2901.9886363636365, 2393.0], [2901.9285714285716, 2392.0], [2901.0, 2391.0], [2900.989247311828, 2390.0], [2900.0, 2389.0], [2899.9736842105262, 2388.0], [2899.0, 2387.0263157894738], [2898.987012987013, 2387.0], [2898.0, 2386.012987012987], [2897.9927536231885, 2386.0], [2897.0, 2385.0072463768115], [2896.9924812030076, 2385.0], [2896.0, 2384.0075187969924], [2895.990291262136, 2384.0], [2895.0, 2383.009708737864], [2894.96, 2383.0], [2894.0, 2382.04], [2893.0, 2382.0068027210887], [2892.909090909091, 2382.0], [2892.0, 2381.090909090909], [2891.0, 2381.0087719298244], [2890.0, 2381.0], [2889.0, 2380.030303030303], [2888.0, 2380.0061728395062], [2887.0, 2380.0042372881358], [2886.6666666666665, 2380.0], [2886.0, 2379.3333333333335], [2885.0, 2379.0526315789475], [2884.0, 2379.0158730158732], [2883.0, 2379.0098039215686], [2882.0, 2379.0069444444443], [2881.0, 2379.0064935064934], [2880.0, 2379.004830917874], [2879.0, 2379.0046082949307], [2878.0, 2379.0043103448274], [2877.0, 2379.005347593583], [2876.0, 2379.005319148936], [2875.0, 2379.0062111801244], [2874.0, 2379.007462686567], [2873.0, 2379.0102040816328], [2872.0, 2379.0208333333335], [2871.0, 2379.035714285714], [2870.0, 2379.0526315789475], [2869.0, 2379.5], [2868.5, 2380.0], [2868.0, 2380.0042372881358], [2867.0, 2380.005], [2866.0, 2380.0078125], [2865.0, 2380.0151515151515], [2864.0, 2380.076923076923], [2863.0, 2381.0], [2862.0, 2381.0040650406504], [2861.0, 2381.005617977528], [2860.0, 2381.0116279069766], [2859.0, 2381.0285714285715], [2858.0, 2381.0454545454545], [2857.0, 2381.1111111111113], [2856.1111111111113, 2382.0], [2856.0, 2382.003937007874], [2855.0, 2382.0048076923076], [2854.0, 2382.0066666666667], [2853.0, 2382.0064935064934], [2852.0, 2382.0128205128203], [2851.0, 2382.021739130435], [2850.0, 2382.0208333333335], [2849.0, 2382.014705882353], [2848.0, 2382.0153846153844], [2847.0, 2382.027027027027], [2846.0, 2382.0285714285715], [2845.0, 2382.0112359550562], [2844.0, 2382.00625], [2843.0, 2382.008849557522], [2842.0, 2382.005649717514], [2841.0, 2382.0040322580644], [2840.9375, 2382.0], [2840.0, 2381.0625], [2839.0, 2381.027027027027], [2838.0, 2381.0158730158732], [2837.0, 2381.0067567567567], [2836.0, 2381.0], [2835.0, 2380.0454545454545], [2834.0, 2380.010101010101], [2833.0, 2380.0], [2832.0, 2379.012987012987], [2831.0, 2379.0046082949307], [2830.9285714285716, 2379.0], [2830.0, 2378.0714285714284], [2829.0, 2378.008695652174], [2828.964285714286, 2378.0], [2828.0, 2377.035714285714], [2827.0, 2377.005882352941], [2826.9565217391305, 2377.0], [2826.0, 2376.0434782608695], [2825.8333333333335, 2376.0], [2825.0, 2375.1666666666665], [2824.0, 2375.006134969325], [2823.970588235294, 2375.0], [2823.0, 2374.029411764706], [2822.909090909091, 2374.0], [2822.0, 2373.090909090909], [2821.9444444444443, 2373.0], [2821.0, 2372.0555555555557], [2820.0, 2372.0057803468208], [2819.994708994709, 2372.0], [2819.8333333333335, 2371.0], [2819.0, 2370.1666666666665], [2818.9615384615386, 2370.0], [2818.0, 2369.0384615384614], [2817.9444444444443, 2369.0], [2817.0, 2368.0555555555557], [2816.9876543209875, 2368.0], [2816.0, 2367.0], [2815.9473684210525, 2366.0], [2815.0, 2365.0526315789475], [2814.9954954954956, 2365.0], [2814.986301369863, 2364.0], [2814.5, 2363.0], [2814.0, 2362.5], [2813.9859154929577, 2362.0], [2813.8571428571427, 2361.0], [2813.0, 2360.1428571428573], [2812.9958158995814, 2360.0], [2812.9941520467837, 2359.0], [2812.9883720930234, 2358.0], [2812.9, 2357.0], [2812.0, 2356.1], [2811.9960784313726, 2356.0], [2812.0, 2355.0], [2812.0, 2354.0], [2811.9950495049507, 2353.0], [2811.9958158995814, 2352.0], [2812.0, 2351.0], [2812.8333333333335, 2350.0], [2812.875, 2349.0], [2812.9583333333335, 2348.0], [2812.987951807229, 2347.0], [2812.9954954954956, 2346.0], [2813.0, 2345.5], [2813.5, 2345.0], [2813.964285714286, 2344.0], [2813.9940476190477, 2343.0], [2814.0, 2342.9333333333334], [2814.9333333333334, 2342.0], [2814.990990990991, 2341.0], [2814.995633187773, 2340.0], [2815.0, 2339.9523809523807], [2815.9523809523807, 2339.0], [2815.994382022472, 2338.0], [2816.0, 2337.98], [2816.98, 2337.0], [2816.9950495049507, 2336.0], [2817.0, 2335.9615384615386], [2817.9615384615386, 2335.0], [2818.0, 2334.6666666666665], [2818.6666666666665, 2334.0], [2818.992537313433, 2333.0], [2819.0, 2332.969696969697], [2819.969696969697, 2332.0], [2819.995327102804, 2331.0], [2820.0, 2330.980769230769], [2820.980769230769, 2330.0], [2821.0, 2329.972972972973], [2821.972972972973, 2329.0], [2822.0, 2328.8], [2822.8, 2328.0], [2822.9928057553957, 2327.0], [2823.0, 2326.9880952380954], [2823.9880952380954, 2326.0], [2824.0, 2325.990099009901], [2824.990099009901, 2325.0], [2825.0, 2324.9880952380954], [2825.9880952380954, 2324.0], [2826.0, 2323.9736842105262], [2826.9736842105262, 2323.0], [2827.0, 2322.9714285714285], [2827.9714285714285, 2322.0], [2828.0, 2321.9931972789113], [2828.9931972789113, 2321.0], [2829.0, 2320.9927536231885], [2829.9927536231885, 2320.0], [2830.0, 2319.9953703703704], [2831.0, 2319.980769230769], [2831.980769230769, 2319.0], [2832.0, 2318.9953917050693], [2833.0, 2318.9411764705883], [2833.9411764705883, 2318.0], [2834.0, 2317.9933774834435], [2835.0, 2317.975], [2836.0, 2317.8], [2836.8, 2317.0], [2837.0, 2316.9937106918237], [2838.0, 2316.96875], [2839.0, 2316.9166666666665], [2840.0, 2316.6666666666665], [2840.6666666666665, 2316.0], [2841.0, 2315.995983935743], [2842.0, 2316.0], [2843.0, 2316.8333333333335], [2844.0, 2316.962962962963], [2845.0, 2316.9666666666667], [2846.0, 2316.9714285714285], [2847.0, 2316.987951807229], [2848.0, 2316.995475113122], [2848.1428571428573, 2317.0], [2849.0, 2317.8571428571427], [2850.0, 2317.980769230769], [2851.0, 2317.9953703703704], [2851.016129032258, 2318.0], [2852.0, 2318.983870967742], [2853.0, 2319.0], [2854.0, 2319.978260869565], [2855.0, 2319.9948186528495], [2855.05, 2320.0], [2856.0, 2320.95], [2857.0, 2321.0], [2858.0, 2321.990740740741], [2858.5, 2322.0], [2859.0, 2322.5], [2860.0, 2322.991869918699], [2860.021739130435, 2323.0], [2861.0, 2323.978260869565], [2862.0, 2324.0], [2863.0, 2324.987012987013], [2863.125, 2325.0], [2864.0, 2325.875], [2865.0, 2325.994974874372], [2865.0232558139537, 2326.0], [2866.0, 2326.9767441860463], [2867.0, 2326.995215311005], [2867.0163934426228, 2327.0], [2868.0, 2327.9836065573772], [2869.0, 2328.0], [2870.0, 2328.9803921568628], [2871.0, 2328.995238095238], [2871.0625, 2329.0], [2872.0, 2329.9375], [2873.0, 2329.9931506849316], [2874.0, 2329.9958847736625], [2874.25, 2330.0], [2875.0, 2330.75], [2876.0, 2330.9777777777776], [2877.0, 2330.9893617021276], [2878.0, 2330.993006993007], [2879.0, 2330.995169082126], [2880.0, 2330.995744680851], [2881.0, 2330.9953703703704], [2882.0, 2330.9941520467837], [2883.0, 2330.9887640449438], [2884.0, 2330.96875], [2885.0, 2330.5], [2885.5, 2330.0], [2886.0, 2329.9954545454543], [2887.0, 2329.978260869565], [2887.978260869565, 2329.0], [2888.0, 2328.990990990991], [2889.0, 2328.0], [2890.0, 2327.8333333333335], [2890.8333333333335, 2327.0], [2891.0, 2326.75], [2891.75, 2326.0], [2892.0, 2325.6666666666665], [2892.6666666666665, 2325.0], [2892.9932432432433, 2324.0], [2893.0, 2323.972222222222], [2893.972222222222, 2323.0], [2894.0, 2322.0], [2894.987012987013, 2321.0], [2895.0, 2320.0], [2895.980769230769, 2319.0], [2895.995535714286, 2318.0], [2896.0, 2317.9473684210525], [2896.9473684210525, 2317.0], [2896.987012987013, 2316.0], [2896.9949494949497, 2315.0], [2897.0, 2314.75], [2897.75, 2314.0], [2897.9714285714285, 2313.0], [2897.9836065573772, 2312.0], [2897.992957746479, 2311.0], [2897.99604743083, 2310.0], [2897.9956896551726, 2309.0], [2897.9960784313726, 2308.0], [2898.0, 2307.5], [2898.5, 2307.0], [2898.75, 2306.0], [2898.6666666666665, 2305.0], [2898.75, 2304.0], [2898.909090909091, 2303.0], [2898.6666666666665, 2302.0], [2898.0, 2301.3333333333335], [2897.9960784313726, 2301.0], [2897.9958847736625, 2300.0], [2897.9957805907175, 2299.0], [2897.994680851064, 2298.0], [2897.993865030675, 2297.0], [2897.994350282486, 2296.0], [2897.990566037736, 2295.0], [2897.987341772152, 2294.0], [2897.9903846153848, 2293.0], [2897.9886363636365, 2292.0], [2897.9767441860463, 2291.0], [2897.96875, 2290.0], [2897.978260869565, 2289.0], [2897.984375, 2288.0], [2897.9841269841268, 2287.0], [2897.9897959183672, 2286.0], [2897.994708994709, 2285.0], [2897.9954337899544, 2284.0], [2897.99604743083, 2283.0], [2898.0, 2282.75], [2898.75, 2282.0], [2898.967741935484, 2281.0], [2898.9897959183672, 2280.0], [2898.9945355191257, 2279.0], [2899.0, 2278.8571428571427], [2899.8571428571427, 2278.0], [2899.981818181818, 2277.0], [2899.9924812030076, 2276.0], [2900.0, 2275.0], [2900.9791666666665, 2274.0], [2900.994382022472, 2273.0], [2901.0, 2272.5], [2901.5, 2272.0], [2901.98, 2271.0], [2901.9954337899544, 2270.0], [2902.0, 2269.9565217391305], [2902.9565217391305, 2269.0], [2902.9918032786886, 2268.0], [2903.0, 2267.6666666666665], [2903.6666666666665, 2267.0], [2903.9919354838707, 2266.0], [2904.0, 2265.75], [2904.75, 2265.0], [2904.9861111111113, 2264.0], [2904.9955947136564, 2263.0], [2905.0, 2262.9868421052633], [2905.9868421052633, 2262.0], [2906.0, 2261.6666666666665], [2906.6666666666665, 2261.0], [2906.9857142857145, 2260.0], [2907.0, 2259.5], [2907.5, 2259.0], [2907.9934210526317, 2258.0], [2908.0, 2257.970588235294], [2908.970588235294, 2257.0], [2908.995475113122, 2256.0], [2909.0, 2255.9846153846156], [2909.9846153846156, 2255.0], [2910.0, 2254.970588235294], [2910.970588235294, 2254.0], [2911.0, 2253.5], [2911.5, 2253.0], [2911.9913793103447, 2252.0], [2912.0, 2251.9880952380954], [2912.9880952380954, 2251.0], [2913.0, 2250.9885057471265], [2913.9885057471265, 2250.0], [2914.0, 2249.981818181818], [2914.981818181818, 2249.0], [2915.0, 2248.9444444444443], [2915.9444444444443, 2248.0], [2916.0, 2247.9814814814813], [2916.9814814814813, 2247.0], [2917.0, 2246.9875], [2917.9875, 2246.0], [2918.0, 2245.9944444444445], [2919.0, 2245.95], [2919.95, 2245.0], [2920.0, 2244.9918032786886], [2921.0, 2244.0], [2922.0, 2243.986301369863], [2923.0, 2243.875], [2923.875, 2243.0], [2924.0, 2242.987951807229], [2925.0, 2242.9], [2925.9, 2242.0], [2926.0, 2241.995633187773], [2927.0, 2241.9912280701756], [2928.0, 2241.9], [2928.9, 2241.0], [2929.0, 2240.995215311005], [2930.0, 2240.99358974359], [2931.0, 2240.9803921568628], [2932.0, 2240.75], [2932.75, 2240.0], [2933.0, 2239.995867768595], [2934.0, 2239.9939393939394], [2935.0, 2239.9850746268658], [2936.0, 2239.9], [2937.0, 2239.0], [2938.0, 2238.995238095238], [2939.0, 2238.9927536231885], [2940.0, 2238.9655172413795], [2941.0, 2238.75], [2941.75, 2238.0], [2942.0, 2237.995744680851], [2943.0, 2237.991452991453], [2944.0, 2237.9615384615386], [2945.0, 2237.5], [2945.5, 2237.0], [2946.0, 2236.9947368421053], [2947.0, 2236.9821428571427], [2948.0, 2236.5], [2948.5, 2236.0], [2949.0, 2235.9954545454543], [2950.0, 2235.9811320754716], [2950.9811320754716, 2235.0], [2951.0, 2234.9957264957266], [2952.0, 2234.9876543209875], [2953.0, 2234.0], [2954.0, 2233.9756097560976], [2954.9756097560976, 2233.0], [2955.0, 2232.9950248756218], [2956.0, 2232.9333333333334], [2956.9333333333334, 2232.0], [2957.0, 2231.9756097560976], [2957.9756097560976, 2231.0], [2958.0, 2230.99375], [2959.0, 2230.75], [2959.75, 2230.0], [2960.0, 2229.75], [2960.75, 2229.0], [2961.0, 2228.8333333333335], [2961.8333333333335, 2228.0], [2962.0, 2227.8888888888887], [2962.8888888888887, 2227.0], [2963.0, 2226.5], [2963.5, 2226.0], [2963.9941860465115, 2225.0], [2964.0, 2224.992366412214], [2964.992366412214, 2224.0], [2965.0, 2223.9166666666665], [2965.9166666666665, 2223.0], [2965.994011976048, 2222.0], [2966.0, 2221.96], [2966.96, 2221.0], [2966.9937888198756, 2220.0], [2967.0, 2219.8], [2967.8, 2219.0], [2967.9913793103447, 2218.0], [2967.995575221239, 2217.0], [2967.9957983193276, 2216.0], [2967.995867768595, 2215.0], [2967.9958158995814, 2214.0], [2967.995744680851, 2213.0], [2967.9944751381217, 2212.0], [2967.9871794871797, 2211.0], [2967.8333333333335, 2210.0], [2967.0, 2209.1666666666665], [2966.9935064935066, 2209.0], [2966.5, 2208.0], [2966.0, 2207.5], [2965.9714285714285, 2207.0], [2965.0, 2206.0285714285715], [2964.9861111111113, 2206.0], [2964.0, 2205.0138888888887], [2963.9894736842107, 2205.0], [2963.0, 2204.0105263157893], [2962.991869918699, 2204.0], [2962.0, 2203.008130081301], [2961.987341772152, 2203.0], [2961.0, 2202.012658227848], [2960.9545454545455, 2202.0], [2960.0, 2201.0454545454545], [2959.75, 2201.0], [2959.0, 2200.25], [2958.0, 2200.0062893081763], [2957.974358974359, 2200.0], [2957.0, 2199.025641025641], [2956.5, 2199.0], [2956.0, 2198.5], [2955.0, 2198.006451612903], [2954.8888888888887, 2198.0], [2954.0, 2197.1111111111113], [2953.0, 2197.0078125], [2952.9333333333334, 2197.0], [2952.0, 2196.0666666666666], [2951.0, 2196.007462686567], [2950.6666666666665, 2196.0], [2950.0, 2195.3333333333335], [2949.0, 2195.0140845070423], [2948.5, 2195.0], [2948.0, 2194.5], [2947.0, 2194.0140845070423], [2946.0, 2194.005882352941], [2945.0, 2194.0], [2944.0, 2193.0222222222224], [2943.0, 2193.0060240963853], [2942.0, 2193.0], [2941.0, 2192.0714285714284], [2940.0, 2192.0140845070423], [2939.0, 2192.005376344086], [2938.0, 2192.0041493775934], [2937.0, 2192.0], [2936.0, 2191.076923076923], [2935.0, 2191.029411764706], [2934.0, 2191.0263157894738], [2933.0, 2191.018181818182], [2932.0, 2191.0123456790125], [2931.0, 2191.0131578947367], [2930.0, 2191.0172413793102], [2929.0, 2191.0285714285715], [2928.0, 2191.0333333333333], [2927.0, 2191.0714285714284], [2926.0, 2191.5], [2925.5, 2192.0], [2925.0, 2192.00395256917], [2924.0, 2192.0045662100456], [2923.0, 2192.0067567567567], [2922.0, 2192.0163934426228], [2921.0, 2192.0526315789475], [2920.0, 2192.1666666666665], [2919.1666666666665, 2193.0], [2919.0, 2193.004048582996], [2918.0, 2193.0058139534885], [2917.0, 2193.009090909091], [2916.0, 2193.010989010989], [2915.0, 2193.0238095238096], [2914.0, 2193.1666666666665], [2913.1666666666665, 2194.0], [2913.0, 2194.0039215686274], [2912.0, 2194.0], [2911.0, 2194.004081632653], [2910.0, 2194.0049261083745], [2909.0, 2194.0065789473683], [2908.0, 2194.006134969325], [2907.0, 2194.005025125628], [2906.0, 2194.005128205128], [2905.0, 2194.005076142132], [2904.0, 2194.0039215686274], [2903.909090909091, 2194.0], [2903.0, 2193.090909090909], [2902.0, 2193.0416666666665], [2901.0, 2193.0232558139537], [2900.0, 2193.0089285714284], [2899.0, 2193.004098360656], [2898.9, 2193.0], [2898.0, 2192.1], [2897.0, 2192.016129032258], [2896.0, 2192.0043103448274], [2895.980769230769, 2192.0], [2895.0, 2191.019230769231], [2894.0, 2191.0054054054053], [2893.8333333333335, 2191.0], [2893.0, 2190.1666666666665], [2892.0, 2190.0133333333333], [2891.8333333333335, 2190.0], [2891.0, 2189.1666666666665], [2890.0, 2189.006329113924], [2889.8571428571427, 2189.0], [2889.0, 2188.1428571428573], [2888.0, 2188.0073529411766], [2887.9830508474574, 2188.0], [2887.0, 2187.0169491525426], [2886.909090909091, 2187.0], [2886.0, 2186.090909090909], [2885.0, 2186.005917159763], [2884.975, 2186.0], [2884.0, 2185.025], [2883.8, 2185.0], [2883.0, 2184.2], [2882.75, 2184.0], [2882.0, 2183.25], [2881.0, 2183.006134969325], [2880.9910714285716, 2183.0], [2880.0, 2182.0089285714284], [2879.994318181818, 2182.0], [2879.6666666666665, 2181.0], [2879.0, 2180.3333333333335], [2878.8, 2180.0], [2878.0, 2179.2], [2877.5, 2179.0], [2877.0, 2178.5], [2876.9473684210525, 2178.0], [2876.0, 2177.0526315789475], [2875.992, 2177.0], [2875.0, 2176.008], [2874.9950980392155, 2176.0], [2874.9777777777776, 2175.0], [2874.0, 2174.0], [2873.9934640522874, 2173.0], [2873.923076923077, 2172.0], [2873.0, 2171.076923076923], [2872.9958158995814, 2171.0], [2872.995238095238, 2170.0], [2872.991304347826, 2169.0], [2872.989010989011, 2168.0], [2872.993288590604, 2167.0], [2872.9945945945947, 2166.0], [2872.9954545454543, 2165.0], [2872.9957081545062, 2164.0], [2873.0, 2163.8571428571427], [2873.8571428571427, 2163.0], [2873.987012987013, 2162.0], [2873.9938271604938, 2161.0], [2874.0, 2160.8333333333335], [2874.8333333333335, 2160.0], [2874.9941520467837, 2159.0], [2875.0, 2158.9615384615386], [2875.9615384615386, 2158.0], [2875.994871794872, 2157.0], [2876.0, 2156.9473684210525], [2876.9473684210525, 2156.0], [2877.0, 2155.9375], [2877.9375, 2155.0], [2877.995614035088, 2154.0], [2878.0, 2153.9882352941177], [2878.9882352941177, 2153.0], [2879.0, 2152.989010989011], [2879.989010989011, 2152.0], [2880.0, 2151.9906542056074], [2880.9906542056074, 2151.0], [2881.0, 2150.9882352941177], [2881.9882352941177, 2150.0], [2882.0, 2149.9841269841268], [2882.9841269841268, 2149.0], [2883.0, 2148.9935064935066], [2884.0, 2148.0], [2885.0, 2147.5], [2885.5, 2147.0], [2886.0, 2146.962962962963],
gitextract_w7ya3lpo/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── dependabot.yml
│ └── workflows/
│ └── wheels.yml
├── .gitignore
├── CITATION.cff
├── CMakeLists.txt
├── LICENSE.md
├── README.md
├── benchmark_runner.py
├── pyproject.toml
├── src/
│ └── simplification/
│ ├── __init__.py
│ ├── cutil.pyx
│ ├── rdp_p.pxd
│ ├── stdbool.h
│ └── util.py
└── tests/
├── coords.json
├── coords_complex.json
├── cprofile_rust_cython.py
├── cprofile_rust_cython_complex.py
├── cprofile_rust_cython_shapely.py
└── test_simplification.py
SYMBOL INDEX (18 symbols across 2 files)
FILE: src/simplification/util.py
class _FFIArray (line 48) | class _FFIArray(Structure):
method from_param (line 58) | def from_param(cls, seq):
method __init__ (line 63) | def __init__(self, seq, data_type=c_double):
class _CoordResult (line 76) | class _CoordResult(Structure):
function _void_array_to_nested_list (line 82) | def _void_array_to_nested_list(res, _func, _args):
FILE: tests/test_simplification.py
class PolylineTests (line 14) | class PolylineTests(unittest.TestCase):
method setUp (line 17) | def setUp(self):
method testNumpy_optional_error (line 516) | def testNumpy_optional_error(self):
method testSimplify_rdp_numpy (line 521) | def testSimplify_rdp_numpy(self):
method testSimplify_rdp (line 527) | def testSimplify_rdp(self):
method testSimplify_vw (line 534) | def testSimplify_vw(self):
method testCSimplify_rdp (line 541) | def testCSimplify_rdp(self):
method testCSimplify_rdp_idx (line 548) | def testCSimplify_rdp_idx(self):
method testCSimplify_vw (line 555) | def testCSimplify_vw(self):
method testCSimplify_vw_idx (line 562) | def testCSimplify_vw_idx(self):
method testCSimplify_vw_preserve (line 569) | def testCSimplify_vw_preserve(self):
method testCEmpty_rdp (line 586) | def testCEmpty_rdp(self):
method testCEmpty_vw (line 591) | def testCEmpty_vw(self):
Condensed preview — 23 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,935K chars).
[
{
"path": ".gitattributes",
"chars": 108,
"preview": "*.sh linguist-language=Java\nci/* linguist-vendored\ncutil.cpp linguist-vendored\ncutil.html linguist-vendored\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 582,
"preview": "---\nname: Bug report\nabout: Report a bug\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n# Describe the bug\nA clear and concise"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 242,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n# Please don'"
},
{
"path": ".github/dependabot.yml",
"chars": 770,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"github-actions\"\n directory: \"/\"\n schedule:\n interval: \"weekly\"\n "
},
{
"path": ".github/workflows/wheels.yml",
"chars": 6941,
"preview": "name: Build and test wheels, release on new tag\n\npermissions:\n id-token: write\n attestations: write\n contents: read\n\n"
},
{
"path": ".gitignore",
"chars": 15,
"preview": "tests/output_*\n"
},
{
"path": "CITATION.cff",
"chars": 599,
"preview": "cff-version: 1.1.0\nmessage: \"If you use this software, please cite it using these metadata.\"\nabstract: \"Simplification: "
},
{
"path": "CMakeLists.txt",
"chars": 1816,
"preview": "cmake_minimum_required(VERSION 3.21)\nproject(${SKBUILD_PROJECT_NAME} LANGUAGES C)\n\n# Define source directory\nset(SIMPLIF"
},
{
"path": "LICENSE.md",
"chars": 1550,
"preview": "# Blue Oak Model License\n\nVersion 1.0.0\n\n## Purpose\n\nThis license gives everyone as much permission to work with this so"
},
{
"path": "README.md",
"chars": 5476,
"preview": "[](https://github.com/"
},
{
"path": "benchmark_runner.py",
"chars": 1143,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\nStandalone benchmark runner\n\"\"\"\n\nimport cProfile\nimport pstats\nimport "
},
{
"path": "pyproject.toml",
"chars": 1807,
"preview": "[project]\nname = \"simplification\"\nversion = \"0.7.15\"\ndescription = \"Fast linestring simplification using RDP or Visvalin"
},
{
"path": "src/simplification/__init__.py",
"chars": 243,
"preview": "import importlib.metadata\n\ntry:\n # __package__ allows for the case where __name__ is \"__main__\"\n __version__ = imp"
},
{
"path": "src/simplification/cutil.pyx",
"chars": 6172,
"preview": "#cython: boundscheck=False\n#cython: wraparound=False\n#cython: optimize.use_switch=True\n#cython: optimize.unpack_method_c"
},
{
"path": "src/simplification/rdp_p.pxd",
"chars": 689,
"preview": "cdef extern from \"header.h\":\n struct ExternalArray:\n void* data\n size_t len\n\ncdef extern from \"header.h"
},
{
"path": "src/simplification/stdbool.h",
"chars": 68,
"preview": "#pragma once\n\n#define false 0\n#define true 1\n\n#define bool int\n"
},
{
"path": "src/simplification/util.py",
"chars": 4591,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\nffi.py\n\nCreated by Stephan Hügel on 2016-08-3\n\nThis file is part of simplification.\n\"\"\"\n\nimp"
},
{
"path": "tests/coords.json",
"chars": 68527,
"preview": "[\n [\n -94.043147,\n 32.69303\n ],\n [\n -94.043147,\n 32.693031\n ],\n [\n -94"
},
{
"path": "tests/coords_complex.json",
"chars": 5789046,
"preview": "[[3369.0, 1994.25], [3368.25, 1995.0], [3368.0714285714284, 1996.0], [3368.027027027027, 1997.0], [3368.0142857142855, 1"
},
{
"path": "tests/cprofile_rust_cython.py",
"chars": 274,
"preview": "# this tests numpy array simplification using VW\n\nfrom simplification.cutil import simplify_coords_vw\nimport json\nimport"
},
{
"path": "tests/cprofile_rust_cython_complex.py",
"chars": 490,
"preview": "# this tests numpy array simplification using RDP\n# 216804 --> 3061 points (98.5% reduction)\n# 50ms per VW operation on "
},
{
"path": "tests/cprofile_rust_cython_shapely.py",
"chars": 387,
"preview": "# this tests numpy array simplification using VW\n# 216804 --> 3061 points (98.5% reduction)\n# 300ms per RDP operation on"
},
{
"path": "tests/test_simplification.py",
"chars": 35041,
"preview": "# -*- coding: utf-8 -*-\n\nimport unittest\nimport numpy as np\nimport numpy\nfrom simplification.util import simplify_coords"
}
]
About this extraction
This page contains the full source code of the urschrei/simplification GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 23 files (5.7 MB), approximately 1.5M tokens, and a symbol index with 18 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.